From f3accec0209813cdf3cae45596f2ac1f83328428 Mon Sep 17 00:00:00 2001 From: Sergio Betanzos Date: Thu, 4 Mar 2021 15:54:11 +0100 Subject: [PATCH] B #3204: Fix support-tab (#915) --- .../etc/sunstone-views/kvm/admin.yaml | 13 ------- .../etc/sunstone-views/kvm/groupadmin.yaml | 13 ------- src/sunstone/etc/sunstone-views/kvm/user.yaml | 13 ------- .../etc/sunstone-views/mixed/admin.yaml | 13 ------- .../etc/sunstone-views/mixed/groupadmin.yaml | 13 ------- .../etc/sunstone-views/mixed/user.yaml | 13 ------- .../etc/sunstone-views/vcenter/admin.yaml | 13 ------- .../sunstone-views/vcenter/groupadmin.yaml | 13 ------- .../etc/sunstone-views/vcenter/user.yaml | 13 ------- src/sunstone/public/app/sunstone-config.js | 30 ++++++++++++--- src/sunstone/public/app/sunstone.js | 38 +++---------------- .../public/app/tabs/official-support-tab.js | 5 +-- .../app/tabs/official-support-tab/actions.js | 2 - .../tabs/official-support-tab/utils/common.js | 2 - src/sunstone/public/app/tabs/support-tab.js | 1 + .../public/app/tabs/support-tab/actions.js | 34 ++++------------- .../public/app/tabs/support-tab/datatable.js | 13 +++---- .../app/tabs/support-tab/panels/info.js | 2 - .../public/app/tabs/support-tab/subheader.hbs | 3 +- 19 files changed, 45 insertions(+), 202 deletions(-) diff --git a/src/sunstone/etc/sunstone-views/kvm/admin.yaml b/src/sunstone/etc/sunstone-views/kvm/admin.yaml index 75490c35a9..7cbe4f1ef3 100644 --- a/src/sunstone/etc/sunstone-views/kvm/admin.yaml +++ b/src/sunstone/etc/sunstone-views/kvm/admin.yaml @@ -36,7 +36,6 @@ enabled_tabs: - vdcs-tab - acls-tab - settings-tab - - support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -891,18 +890,6 @@ tabs: SecurityGroup.delete: true SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/kvm/groupadmin.yaml b/src/sunstone/etc/sunstone-views/kvm/groupadmin.yaml index 67f58ee89d..0624c30802 100644 --- a/src/sunstone/etc/sunstone-views/kvm/groupadmin.yaml +++ b/src/sunstone/etc/sunstone-views/kvm/groupadmin.yaml @@ -36,7 +36,6 @@ enabled_tabs: #- vdcs-tab #- acls-tab - settings-tab - #- support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -888,18 +887,6 @@ tabs: SecurityGroup.delete: false SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/kvm/user.yaml b/src/sunstone/etc/sunstone-views/kvm/user.yaml index 51c54747ad..8ecc15c242 100644 --- a/src/sunstone/etc/sunstone-views/kvm/user.yaml +++ b/src/sunstone/etc/sunstone-views/kvm/user.yaml @@ -36,7 +36,6 @@ enabled_tabs: #- vdcs-tab #- acls-tab - settings-tab - #- support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -884,18 +883,6 @@ tabs: SecurityGroup.delete: true SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/mixed/admin.yaml b/src/sunstone/etc/sunstone-views/mixed/admin.yaml index 24f7bd40bc..0706d77679 100644 --- a/src/sunstone/etc/sunstone-views/mixed/admin.yaml +++ b/src/sunstone/etc/sunstone-views/mixed/admin.yaml @@ -36,7 +36,6 @@ enabled_tabs: - vdcs-tab - acls-tab - settings-tab - - support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -893,18 +892,6 @@ tabs: SecurityGroup.delete: true SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml b/src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml index 0e76f7d62b..557ddd82d7 100644 --- a/src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml +++ b/src/sunstone/etc/sunstone-views/mixed/groupadmin.yaml @@ -36,7 +36,6 @@ enabled_tabs: #- vdcs-tab #- acls-tab - settings-tab - #- support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -892,18 +891,6 @@ tabs: SecurityGroup.delete: false SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/mixed/user.yaml b/src/sunstone/etc/sunstone-views/mixed/user.yaml index a64356b877..fb961cae30 100644 --- a/src/sunstone/etc/sunstone-views/mixed/user.yaml +++ b/src/sunstone/etc/sunstone-views/mixed/user.yaml @@ -36,7 +36,6 @@ enabled_tabs: #- vdcs-tab #- acls-tab - settings-tab - #- support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -885,18 +884,6 @@ tabs: SecurityGroup.delete: true SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/vcenter/admin.yaml b/src/sunstone/etc/sunstone-views/vcenter/admin.yaml index 331c0cfb06..ea731bc2b2 100644 --- a/src/sunstone/etc/sunstone-views/vcenter/admin.yaml +++ b/src/sunstone/etc/sunstone-views/vcenter/admin.yaml @@ -36,7 +36,6 @@ enabled_tabs: - vdcs-tab - acls-tab - settings-tab - - support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -888,18 +887,6 @@ tabs: SecurityGroup.delete: true SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/vcenter/groupadmin.yaml b/src/sunstone/etc/sunstone-views/vcenter/groupadmin.yaml index 52df7942e0..61bd49bf75 100644 --- a/src/sunstone/etc/sunstone-views/vcenter/groupadmin.yaml +++ b/src/sunstone/etc/sunstone-views/vcenter/groupadmin.yaml @@ -36,7 +36,6 @@ enabled_tabs: #- vdcs-tab #- acls-tab - settings-tab - #- support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -889,18 +888,6 @@ tabs: SecurityGroup.delete: false SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/etc/sunstone-views/vcenter/user.yaml b/src/sunstone/etc/sunstone-views/vcenter/user.yaml index 195d3ed357..7eb7339e9a 100644 --- a/src/sunstone/etc/sunstone-views/vcenter/user.yaml +++ b/src/sunstone/etc/sunstone-views/vcenter/user.yaml @@ -36,7 +36,6 @@ enabled_tabs: #- vdcs-tab #- acls-tab - settings-tab - #- support-tab - vmgroup-tab features: # True to show showback monthly reports, and VM cost @@ -882,18 +881,6 @@ tabs: SecurityGroup.delete: true SecurityGroup.edit_labels: true SecurityGroup.menu_labels: true - support-tab: - panel_tabs: - support_info_tab: true - table_columns: - #- 0 # Checkbox - - 1 # ID - - 2 # Subject - - 3 # Created at - - 4 # Status - actions: - Support.refresh: true - Support.create_dialog: true settings-tab: panel_tabs: settings_info_tab: true diff --git a/src/sunstone/public/app/sunstone-config.js b/src/sunstone/public/app/sunstone-config.js index c3aaadf50a..7cf57f3b53 100644 --- a/src/sunstone/public/app/sunstone-config.js +++ b/src/sunstone/public/app/sunstone-config.js @@ -18,10 +18,24 @@ define(function(require) { require("jquery"); // Clone the local config object in a private var var _config = $.extend(true, {}, config); + + var inmutableTabs = ['official-support-tab', 'support-tab'] + + function enabledTabs () { + return _config["view"]["enabled_tabs"].concat(inmutableTabs) + } + + function allTabs () { + return Object.keys(_config["view"]["tabs"]).concat(inmutableTabs) + } + + function isInmutableTab (tabName) { + return inmutableTabs.indexOf(tabName) !== -1 + } + var Config = { "isTabEnabled": function(tabName) { - var enabled = _config["view"]["enabled_tabs"].indexOf(tabName) != -1; - return enabled; + return enabledTabs().indexOf(tabName) !== -1 }, "changeFilter": function(bool) { @@ -33,6 +47,9 @@ define(function(require) { }, "isTabActionEnabled": function(tabName, actionName, panelName) { + // exception with inmutable tabs + if (isInmutableTab(tabName)) { return true } + var enabled = false; var configTab = _config["view"]["tabs"][tabName]; @@ -48,6 +65,9 @@ define(function(require) { }, "isTabPanelEnabled": function(tabName, panelTabName) { + // exception with inmutable tabs + if (isInmutableTab(tabName)) { return true } + if (_config["view"]["tabs"][tabName]) { var enabled = _config["view"]["tabs"][tabName]["panel_tabs"][panelTabName]; return enabled; @@ -163,16 +183,14 @@ define(function(require) { "link_logo": (_config["view"]["link_logo"] || false), "text_link_logo": (_config["view"]["text_link_logo"] || false), "vmLogos": (_config["vm_logos"]), - "enabledTabs": _config["view"]["enabled_tabs"], + "enabledTabs": enabledTabs(), "onedConf": _config["oned_conf"], "confirmVMActions": _config["view"]["confirm_vms"], "scaleFactor": _config["view"]["features"]["instantiate_cpu_factor"], "filterView": _config["view"]["filter-view"], "doCountAnimation": _config["view"]["do_count_animation"], - "allTabs": function() { - return Object.keys(_config["view"]["tabs"]); - }, + "allTabs": allTabs, "thresholds":{ "min":_config["user_config"]["threshold_min"], "low":_config["user_config"]["threshold_low"], diff --git a/src/sunstone/public/app/sunstone.js b/src/sunstone/public/app/sunstone.js index 61361f5601..14c9d9d578 100644 --- a/src/sunstone/public/app/sunstone.js +++ b/src/sunstone/public/app/sunstone.js @@ -135,9 +135,6 @@ define(function(require) { $.each(Config.allTabs(), function(i, tabName){ _addAction(i, tabName); }); - - //add actions official support - _addAction(null, "official-support-tab"); }; var _addDialogs = function(dialogs) { @@ -190,30 +187,6 @@ define(function(require) { }); } } - var support_tab = "support-tab"; - var official_support_tab = "official-support-tab"; - if(SunstoneCfg && - SunstoneCfg.tabs && - !SunstoneCfg.tabs[support_tab] - ){ - SunstoneCfg.tabs[support_tab] = { - actions: { - "Support.create_dialog": true, - "Support.refresh": true - }, - panels_tabs:{ - "support_info_tab": true - }, - table_columns: [1,2,3,4] - }; - _addMainTab(support_tab); - _insertTab(support_tab); - _setupDataTable(support_tab); - } - - //Separate the logic be supported with the banner - _addMainTab(official_support_tab); - _insertTab(official_support_tab); _setupTabs(); }; @@ -262,14 +235,13 @@ define(function(require) { } else { liItem = "
  • " + "" + title + "" + "
  • "; $("div#menu ul#navigation").append(liItem); - if(config && config.user_config){ - if(tabName === "support-tab" && config.user_config.default_view === "cloud"){ - _addAction(null, "official-support-tab"); + if (config && config.user_config && tabName === "support-tab") { + if (config.user_config.default_view === "cloud") { $(".sunstone-header").addClass("support_place").append(title); - $("#support-tab").remove(); } - if(config.user_config.default_view !== "admin"){ - $("#support-tab").remove(); + + if (config.user_config.default_view !== "admin") { + $("#support-tab, #official-support-tab").remove(); } } } diff --git a/src/sunstone/public/app/tabs/official-support-tab.js b/src/sunstone/public/app/tabs/official-support-tab.js index efb9f28a65..89e87aa3c3 100644 --- a/src/sunstone/public/app/tabs/official-support-tab.js +++ b/src/sunstone/public/app/tabs/official-support-tab.js @@ -16,10 +16,7 @@ define(function(require) { var Actions = require("./official-support-tab/actions"); - var Notifier = require("utils/notifier"); var SupportUtils = require("./official-support-tab/utils/common"); - var Sunstone = require("sunstone"); - var Locale = require("utils/locale"); var TAB_ID = require("./official-support-tab/tabId"); var Tab = { @@ -31,7 +28,7 @@ define(function(require) { return Tab; - function _setup(context) { + function _setup() { SupportUtils.checkValidateOfficialSupport(); SupportUtils.checkLastVersionSupport(); $(".support_not_connected > button").on("click", function(e){ diff --git a/src/sunstone/public/app/tabs/official-support-tab/actions.js b/src/sunstone/public/app/tabs/official-support-tab/actions.js index 5ddce01c33..9e1760437d 100644 --- a/src/sunstone/public/app/tabs/official-support-tab/actions.js +++ b/src/sunstone/public/app/tabs/official-support-tab/actions.js @@ -15,8 +15,6 @@ /* -------------------------------------------------------------------------- */ define(function(require) { - var Sunstone = require("sunstone"); - var Notifier = require("utils/notifier"); var OpenNebulaSupport = require("opennebula/support"); var SupportUtils = require("../support-tab/utils/common"); diff --git a/src/sunstone/public/app/tabs/official-support-tab/utils/common.js b/src/sunstone/public/app/tabs/official-support-tab/utils/common.js index 4ef8df5e2b..6cfefe2ac0 100644 --- a/src/sunstone/public/app/tabs/official-support-tab/utils/common.js +++ b/src/sunstone/public/app/tabs/official-support-tab/utils/common.js @@ -23,8 +23,6 @@ define(function(require) { var TAB_ID = require("../../support-tab/tabId"); - var support_interval_function; - function _show_support_connect() { $(".support_info").hide(); $("#"+Sunstone.getDataTable(TAB_ID).dataTableId+"Container", "#"+TAB_ID).hide(); diff --git a/src/sunstone/public/app/tabs/support-tab.js b/src/sunstone/public/app/tabs/support-tab.js index 462849c495..7f3944981b 100644 --- a/src/sunstone/public/app/tabs/support-tab.js +++ b/src/sunstone/public/app/tabs/support-tab.js @@ -89,6 +89,7 @@ define(function(require) { url: "support/credentials", type: "POST", data: JSON.stringify(data), + contentType: false, success: function(){ $(".submit_support_credentials_button", context).removeAttr("disabled"); $(".submit_support_credentials_button", context).html(Locale.tr("Sign in")); diff --git a/src/sunstone/public/app/tabs/support-tab/actions.js b/src/sunstone/public/app/tabs/support-tab/actions.js index f713be4b86..bdd8ee6c53 100644 --- a/src/sunstone/public/app/tabs/support-tab/actions.js +++ b/src/sunstone/public/app/tabs/support-tab/actions.js @@ -24,26 +24,7 @@ define(function(require) { var TAB_ID = require("./tabId"); var CREATE_DIALOG_ID = require("./form-panels/create/formPanelId"); var UPLOAD_DIALOG_ID = require("./dialogs/upload/dialogId"); - var majorVersion = function(version){ - var r = 0; - if(version && version.length){ - var major = version.substring(0, version.lastIndexOf(".")); - if(major && major.length){ - r = parseFloat(major); - } - } - return r; - }; - var minorVersion = function(version){ - var r = 0; - if(version && version.length){ - var minor = version.substring(version.lastIndexOf(".")+1); - if(minor && minor.length){ - r = parseFloat(minor); - } - } - return r; - }; + var _actions = { "Support.list" : { type: "list", @@ -76,7 +57,7 @@ define(function(require) { Sunstone.runAction(RESOURCE+".list", {force: true}); } }, - error: function(request, error_json) { + error: function() { SupportUtils.showSupportConnect(); } }, @@ -89,14 +70,14 @@ define(function(require) { Sunstone.insertPanels(TAB_ID, response); } }, - error: function(request, error_json) { + error: function() { SupportUtils.showSupportConnect(); } }, "Support.create" : { type: "create", call: OpenNebulaSupport.create, - callback: function(request, response){ + callback: function(){ Sunstone.resetFormPanel(TAB_ID, CREATE_DIALOG_ID); Sunstone.hideFormPanel(TAB_ID); Sunstone.runAction("Support.refresh"); @@ -120,13 +101,12 @@ define(function(require) { "Support.update" : { type: "single", call: OpenNebulaSupport.update, - callback: function(request, response){ + callback: function(){ Sunstone.runAction("Support.refresh"); Notifier.notifyMessage("Comment added correctly"); }, - error: function(request, response){ + error: function(){ Sunstone.runAction("Support.refresh"); - //Notifier.onError(request, response); Notifier.notifyError("Comment failed to be added"); } }, @@ -142,7 +122,7 @@ define(function(require) { Sunstone.runAction("Support.refresh"); }, error: function(response){ - if (response.status=="401") { + if (response.status === "401") { Notifier.notifyError("Support credentials are incorrect"); } else { Notifier.notifyError(response.responseText); diff --git a/src/sunstone/public/app/tabs/support-tab/datatable.js b/src/sunstone/public/app/tabs/support-tab/datatable.js index afbfeff9e0..0a63d843d3 100644 --- a/src/sunstone/public/app/tabs/support-tab/datatable.js +++ b/src/sunstone/public/app/tabs/support-tab/datatable.js @@ -20,8 +20,6 @@ define(function(require) { */ var TabDataTable = require('utils/tab-datatable'); - var SunstoneConfig = require('sunstone-config'); - var Locale = require('utils/locale'); /* CONSTANTS @@ -49,16 +47,17 @@ define(function(require) { "aoColumnDefs": [ {"bSortable": false, "aTargets": ["check"]}, {"sWidth": "35px", "aTargets": [0]}, - {"bVisible": true, "aTargets": SunstoneConfig.tabTableColumns(TAB_NAME)}, + {"bVisible": true, "aTargets": [1, 2, 3, 4]}, {"bVisible": false, "aTargets": ['_all']} ] }; this.columns = [ - "ID", - "Subject", - "Requested", - "Status" + // Checkbox // 0 + "ID", // 1 + "Subject", // 2 + "Requested",// 3 + "Status" // 4 ]; diff --git a/src/sunstone/public/app/tabs/support-tab/panels/info.js b/src/sunstone/public/app/tabs/support-tab/panels/info.js index 50bc319335..e1846759d8 100644 --- a/src/sunstone/public/app/tabs/support-tab/panels/info.js +++ b/src/sunstone/public/app/tabs/support-tab/panels/info.js @@ -19,9 +19,7 @@ define(function(require) { DEPENDENCIES */ - var Locale = require('utils/locale'); var Sunstone = require('sunstone'); - var TemplateInfo = require('hbs!./info/html'); /* diff --git a/src/sunstone/public/app/tabs/support-tab/subheader.hbs b/src/sunstone/public/app/tabs/support-tab/subheader.hbs index e469d36cb3..c80b8be212 100644 --- a/src/sunstone/public/app/tabs/support-tab/subheader.hbs +++ b/src/sunstone/public/app/tabs/support-tab/subheader.hbs @@ -80,5 +80,4 @@ -
    -

    This tab can be disabled in the sunstone views configuration files

    +
    \ No newline at end of file