diff --git a/src/sunstone/public/app/tabs/support-tab.js b/src/sunstone/public/app/tabs/support-tab.js index deed0a337d..accd1de580 100644 --- a/src/sunstone/public/app/tabs/support-tab.js +++ b/src/sunstone/public/app/tabs/support-tab.js @@ -20,7 +20,7 @@ define(function(require) { ]; var _formPanels = [ - //require('./support-tab/form-panels/create') + require('./support-tab/form-panels/create') ]; var Tab = { diff --git a/src/sunstone/public/app/tabs/support-tab/actions.js b/src/sunstone/public/app/tabs/support-tab/actions.js index d2e4b1575f..8d10781e32 100644 --- a/src/sunstone/public/app/tabs/support-tab/actions.js +++ b/src/sunstone/public/app/tabs/support-tab/actions.js @@ -6,7 +6,7 @@ define(function(require) { var RESOURCE = "Support"; var TAB_ID = require('./tabId'); - //var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId'); + var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId'); var _actions = { "Support.list" : { @@ -60,42 +60,30 @@ define(function(require) { SupportUtils.showSupportConnect(); } }, - /*TODO "Support.create" : { type: "create", call: OpenNebulaSupport.create, callback: function(request, response){ - $("a[href=back]", $("#support-tab")).trigger("click"); - popFormDialog("create_support_request_form", $("#support-tab")); - + Sunstone.resetFormPanel(TAB_ID, CREATE_DIALOG_ID); + Sunstone.hideFormPanel(TAB_ID); Sunstone.runAction("Support.refresh"); - //addTemplateElement(request, response); - //notifyCustom(tr("Request created"), " ID: " + response.VMTEMPLATE.ID, false) }, error: function(request, error_json){ - popFormDialog("create_support_request_form", $("#support-tab")); if (error_json.error.http_status=="403") { - notifyError(error_json.error.message); + Sunstone.hideFormPanelLoading(TAB_ID); + Notifier.notifyError(error_json.error.message); } else { - $("a[href=back]", $("#support-tab")).trigger("click"); + Sunstone.hideFormPanel(TAB_ID); SupportUtils.showSupportConnect(); } } - }, - "Support.create_dialog" : { type: "custom", call: function(){ - Sunstone.popUpFormPanel( - "create_support_request_form", - "support-tab", - "create", - false, - function(context){}); + Sunstone.showFormPanel(TAB_ID, CREATE_DIALOG_ID, "create"); } }, - */ "Support.update" : { type: "single", call: OpenNebulaSupport.update, diff --git a/src/sunstone/public/app/tabs/support-tab/form-panels/create.js b/src/sunstone/public/app/tabs/support-tab/form-panels/create.js new file mode 100644 index 0000000000..4512ee9e18 --- /dev/null +++ b/src/sunstone/public/app/tabs/support-tab/form-panels/create.js @@ -0,0 +1,79 @@ +define(function(require) { + /* + DEPENDENCIES + */ + + require('foundation.tab'); + var BaseFormPanel = require('utils/form-panels/form-panel'); + var Sunstone = require('sunstone'); + + /* + TEMPLATES + */ + + var TemplateWizardHTML = require('hbs!./create/wizard'); + + /* + CONSTANTS + */ + + var FORM_PANEL_ID = require('./create/formPanelId'); + var TAB_ID = require('../tabId'); + + /* + CONSTRUCTOR + */ + + function FormPanel() { + this.formPanelId = FORM_PANEL_ID; + this.tabId = TAB_ID; + this.actions = { + 'create': { + 'title': "Submit a Request", + 'buttonText': "Submit", + 'resetButton': true + } + }; + + BaseFormPanel.call(this); + } + + FormPanel.FORM_PANEL_ID = FORM_PANEL_ID; + FormPanel.prototype = Object.create(BaseFormPanel.prototype); + FormPanel.prototype.constructor = FormPanel; + FormPanel.prototype.htmlWizard = _htmlWizard; + FormPanel.prototype.submitWizard = _submitWizard; + FormPanel.prototype.onShow = _onShow; + FormPanel.prototype.setup = _setup; + + return FormPanel; + + /* + FUNCTION DEFINITIONS + */ + + function _htmlWizard() { + return TemplateWizardHTML({ + 'formPanelId': this.formPanelId + }); + } + + function _onShow(context) { + } + + function _setup(context) { + return false; + } + + function _submitWizard(context) { + var template = { + "subject" : $('#subject', context).val(), + "description" : $('#description', context).val(), + "opennebula_version" : $('#opennebula_version', context).val(), + "severity" : $('#severity', context).val(), + }; + + Sunstone.runAction("Support.create", template); + return false; + } +}); diff --git a/src/sunstone/public/app/tabs/support-tab/form-panels/create/formPanelId.js b/src/sunstone/public/app/tabs/support-tab/form-panels/create/formPanelId.js new file mode 100644 index 0000000000..741c595bde --- /dev/null +++ b/src/sunstone/public/app/tabs/support-tab/form-panels/create/formPanelId.js @@ -0,0 +1,3 @@ +define(function(require){ + return 'createSupportRequestForm'; +}); \ No newline at end of file diff --git a/src/sunstone/public/app/tabs/support-tab/form-panels/create/wizard.hbs b/src/sunstone/public/app/tabs/support-tab/form-panels/create/wizard.hbs new file mode 100644 index 0000000000..0a3a71d986 --- /dev/null +++ b/src/sunstone/public/app/tabs/support-tab/form-panels/create/wizard.hbs @@ -0,0 +1,31 @@ +
\ No newline at end of file