58 |
58 |
this.clipboard.setText(this.pass);
|
59 |
59 |
this.copy.show();
|
60 |
60 |
} catch (err) {
|
61 |
|
console.error(err);
|
62 |
61 |
this.copy.hide();
|
63 |
62 |
}
|
64 |
63 |
},
|
... | ... | |
407 |
406 |
return true;
|
408 |
407 |
},
|
409 |
408 |
|
|
409 |
set_valid_current_for: function(t, val) {
|
|
410 |
var found = this.flavors[0];
|
|
411 |
_.each(this.flavors, function(flv) {
|
|
412 |
if (flv.get(t) == val) {
|
|
413 |
found = flv;
|
|
414 |
}
|
|
415 |
});
|
|
416 |
|
|
417 |
this.set_current(found);
|
|
418 |
},
|
|
419 |
|
410 |
420 |
set_current: function(flv) {
|
411 |
|
//console.log(flv);
|
412 |
|
//if (!this.flavor_is_valid(flv)) { flv = undefined };
|
413 |
|
|
|
421 |
|
|
422 |
if (!flv) {
|
|
423 |
// user clicked on invalid combination
|
|
424 |
// force the first available choice for the
|
|
425 |
// type of option he last clicked
|
|
426 |
this.set_valid_current_for.apply(this, this.last_choice);
|
|
427 |
return;
|
|
428 |
}
|
|
429 |
|
414 |
430 |
this.current_flavor = flv;
|
415 |
431 |
this.trigger("change");
|
416 |
432 |
this.update_selected_flavor();
|
... | ... | |
428 |
444 |
update_disabled_flavors: function() {
|
429 |
445 |
this.$(".flavor-options.disk li").removeClass("disabled");
|
430 |
446 |
if (!this.unavailable_values) { return }
|
431 |
|
|
432 |
|
this.$(".flavor-options.disk li").each(_.bind(function(i, el){
|
433 |
|
var el_value = $(el).data("value") * 1024;
|
|
447 |
|
|
448 |
this.$("#create-vm-flavor-options .flavor-options.disk li").each(_.bind(function(i, el){
|
|
449 |
var el_value = $(el).data("value") * 1000;
|
434 |
450 |
if (this.unavailable_values.disk.indexOf(el_value) > -1) {
|
435 |
451 |
$(el).addClass("disabled");
|
436 |
452 |
};
|
... | ... | |
440 |
456 |
create_flavors: function() {
|
441 |
457 |
var flavors = this.get_active_flavors();
|
442 |
458 |
var valid_flavors = this.get_valid_flavors();
|
|
459 |
this.__added_flavors = {'cpu':[], 'ram':[], 'disk':[]};
|
443 |
460 |
|
444 |
461 |
_.each(flavors, _.bind(function(flv){
|
445 |
462 |
this.add_flavor(flv);
|
... | ... | |
454 |
471 |
el.parent().find(".option").removeClass("selected");
|
455 |
472 |
el.addClass("selected");
|
456 |
473 |
|
457 |
|
if (el.hasClass("mem")) { this.last_choice = "mem" }
|
458 |
|
if (el.hasClass("cpu")) { this.last_choice = "cpu" }
|
459 |
|
if (el.hasClass("disk")) { this.last_choice = "disk" }
|
|
474 |
if (el.hasClass("mem")) { self.last_choice = ["ram", $(this).data("value")] }
|
|
475 |
if (el.hasClass("cpu")) { self.last_choice = ["cpu", $(this).data("value")] }
|
|
476 |
if (el.hasClass("disk")) { self.last_choice = ["disk", $(this).data("value")] }
|
460 |
477 |
|
461 |
478 |
self.update_selected_from_ui();
|
462 |
479 |
})
|
... | ... | |
480 |
497 |
this.$(".option.mem.value-" + flv.get("ram")).addClass("selected");
|
481 |
498 |
this.$(".option.disk.value-" + flv.get("disk")).addClass("selected");
|
482 |
499 |
},
|
483 |
|
|
|
500 |
|
|
501 |
__added_flavors: {'cpu':[], 'ram':[], 'disk':[]},
|
484 |
502 |
add_flavor: function(flv) {
|
485 |
503 |
var values = {'cpu': flv.get('cpu'), 'mem': flv.get('ram'), 'disk': flv.get('disk')};
|
486 |
504 |
|
487 |
505 |
disabled = "";
|
488 |
|
|
489 |
|
if (this.$('li.option.cpu.value-{0}'.format(values.cpu)).length == 0) {
|
|
506 |
|
|
507 |
if (this.__added_flavors.cpu.indexOf(values.cpu) == -1) {
|
490 |
508 |
var cpu = $(('<li class="option cpu value-{0} {1}">' +
|
491 |
509 |
'<span class="value">{0}</span>' +
|
492 |
510 |
'<span class="metric">x</span></li>').format(values.cpu, disabled)).data('value', values.cpu);
|
493 |
|
|
494 |
511 |
this.cpus.append(cpu);
|
|
512 |
this.__added_flavors.cpu.push(values.cpu);
|
495 |
513 |
}
|
496 |
|
if (this.$('li.option.mem.value-{0}'.format(values.mem)).length == 0) {
|
|
514 |
|
|
515 |
if (this.__added_flavors.ram.indexOf(values.mem) == -1) {
|
497 |
516 |
var mem = $(('<li class="option mem value-{0}">' +
|
498 |
517 |
'<span class="value">{0}</span>' +
|
499 |
518 |
'<span class="metric">MB</span></li>').format(values.mem)).data('value', values.mem);
|
500 |
|
|
501 |
519 |
this.mems.append(mem);
|
|
520 |
this.__added_flavors.ram.push(values.mem);
|
502 |
521 |
}
|
503 |
|
if (this.$('li.option.disk.value-{0}'.format(values.disk)).length == 0) {
|
|
522 |
|
|
523 |
if (this.__added_flavors.disk.indexOf(values.disk) == -1) {
|
504 |
524 |
var disk = $(('<li class="option disk value-{0}">' +
|
505 |
525 |
'<span class="value">{0}</span>' +
|
506 |
526 |
'<span class="metric">GB</span></li>').format(values.disk)).data('value', values.disk);
|
507 |
|
|
508 |
527 |
this.disks.append(disk);
|
|
528 |
this.__added_flavors.disk.push(values.disk)
|
509 |
529 |
}
|
|
530 |
|
510 |
531 |
|
511 |
532 |
},
|
512 |
533 |
|
... | ... | |
528 |
549 |
this.flavors = [];
|
529 |
550 |
this.flavors_data = {'cpu':[], 'mem':[], 'disk':[]};
|
530 |
551 |
this.update_flavors_data();
|
531 |
|
this.reset_flavors();
|
532 |
552 |
},
|
533 |
553 |
|
534 |
554 |
get: function() {
|
... | ... | |
711 |
731 |
this.submit_btn = this.$(".create-controls .submit")
|
712 |
732 |
|
713 |
733 |
this.init_handlers();
|
714 |
|
this.update_layout();
|
715 |
|
|
716 |
734 |
},
|
717 |
735 |
|
718 |
736 |
init_handlers: function() {
|