diff --git a/src/sunstone/public/app/tabs/vms-tab.js b/src/sunstone/public/app/tabs/vms-tab.js index c76a212634..c2765832b6 100644 --- a/src/sunstone/public/app/tabs/vms-tab.js +++ b/src/sunstone/public/app/tabs/vms-tab.js @@ -11,7 +11,8 @@ define(function(require) { require('./vms-tab/dialogs/deploy'), require('./vms-tab/dialogs/migrate'), require('./vms-tab/dialogs/resize'), - require('./vms-tab/dialogs/attach-disk') + require('./vms-tab/dialogs/attach-disk'), + require('./vms-tab/dialogs/attach-nic') ]; var _panels = [ diff --git a/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic.js b/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic.js new file mode 100644 index 0000000000..1a0b60b598 --- /dev/null +++ b/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic.js @@ -0,0 +1,85 @@ +define(function(require) { + /* + DEPENDENCIES + */ + + var BaseDialog = require('utils/dialogs/dialog'); + var TemplateHTML = require('hbs!./attach-nic/html'); + var Sunstone = require('sunstone'); + var Notifier = require('utils/notifier'); + var Tips = require('utils/tips'); + var NicTab = require('tabs/templates-tab/form-panels/create/wizard-tabs/network/nic-tab'); + var WizardFields = require('utils/wizard-fields'); + + /* + CONSTANTS + */ + + var DIALOG_ID = require('./attach-nic/dialogId'); + var TAB_ID = require('../tabId') + + /* + CONSTRUCTOR + */ + + function Dialog() { + this.dialogId = DIALOG_ID; + + this.nicTab = new NicTab(DIALOG_ID + 'NickTab'); + + BaseDialog.call(this); + }; + + Dialog.DIALOG_ID = DIALOG_ID; + Dialog.prototype = Object.create(BaseDialog.prototype); + Dialog.prototype.constructor = Dialog; + Dialog.prototype.html = _html; + Dialog.prototype.onShow = _onShow; + Dialog.prototype.setup = _setup; + Dialog.prototype.setElement = _setElement; + + return Dialog; + + /* + FUNCTION DEFINITIONS + */ + + function _html() { + return TemplateHTML({ + 'dialogId': this.dialogId, + 'nicTabHTML': this.nicTab.html() + }); + } + + function _setup(context) { + var that = this; + that.nicTab.setup(); + + Tips.setup(context); + + $('#' + DIALOG_ID + 'Form', context).submit(function() { + var templateJSON = that.nicTab.retrieve(context); + var obj = { + "NIC": templateJSON + } + + Sunstone.runAction('VM.attachnic', that.element.ID, obj); + + Sunstone.getDialog(DIALOG_ID).hide(); + Sunstone.getDialog(DIALOG_ID).reset(); + return false; + }); + + return false; + } + + function _onShow(context) { + this.nicTab.onShow(context); + $("#vm_id", context).val(this.element.ID); + return false; + } + + function _setElement(element) { + this.element = element + } +}); diff --git a/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic/dialogId.js b/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic/dialogId.js new file mode 100644 index 0000000000..d413c12cd8 --- /dev/null +++ b/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic/dialogId.js @@ -0,0 +1,3 @@ +define(function(require) { + return 'attachNICVMDialog'; +}); diff --git a/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic/html.hbs b/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic/html.hbs new file mode 100644 index 0000000000..b977df681d --- /dev/null +++ b/src/sunstone/public/app/tabs/vms-tab/dialogs/attach-nic/html.hbs @@ -0,0 +1,24 @@ +