diff --git a/src/sunstone/public/app/opennebula/acl.js b/src/sunstone/public/app/opennebula/acl.js index f51052a7db..0200c2358f 100644 --- a/src/sunstone/public/app/opennebula/acl.js +++ b/src/sunstone/public/app/opennebula/acl.js @@ -29,6 +29,9 @@ define(function(require) { }, "list" : function(params) { OpenNebulaAction.list(params, RESOURCE); + }, + "getName": function(id){ + return ""; } } diff --git a/src/sunstone/public/app/tabs/clusters-tab/actions.js b/src/sunstone/public/app/tabs/clusters-tab/actions.js index 64ce2b5ad9..0706eddcc8 100644 --- a/src/sunstone/public/app/tabs/clusters-tab/actions.js +++ b/src/sunstone/public/app/tabs/clusters-tab/actions.js @@ -22,6 +22,7 @@ define(function(require) { var OpenNebulaResource = require('opennebula/cluster'); var OpenNebulaAction = require('opennebula/action'); var CommonActions = require('utils/common-actions'); + var Navigation = require('utils/navigation'); var RESOURCE = "Cluster"; var XML_ROOT = "CLUSTER"; @@ -61,7 +62,9 @@ define(function(require) { Sunstone.hideFormPanel(TAB_ID); Sunstone.runAction("Cluster.refresh"); - Notifier.notifyCustom(Locale.tr("Cluster created"), " ID: " + response[XML_ROOT].ID, false); + Notifier.notifyCustom(Locale.tr("Cluster created"), + Navigation.link(" ID: " + response[XML_ROOT].ID, TAB_ID, response[XML_ROOT].ID), + false); }, error: function(request, response){ Sunstone.hideFormPanelLoading(TAB_ID); diff --git a/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js b/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js index af189451ba..59323639ea 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js +++ b/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js @@ -27,6 +27,7 @@ define(function(require) { var OpenNebulaAction = require('opennebula/action'); var Sunstone = require('sunstone'); var Notifier = require('utils/notifier'); + var Navigation = require('utils/navigation'); /* TEMPLATES @@ -153,7 +154,9 @@ define(function(require) { data: dataJSON, success: function(request, response) { OpenNebulaAction.clear_cache("VM"); - Notifier.notifyCustom(Locale.tr("VM imported"), " ID: " + response.VM.ID, false); + Notifier.notifyCustom(Locale.tr("VM imported"), + Navigation.link(" ID: " + response.VM.ID, "vms-tab", response.VM.ID), + false); // Delete row (shouldn't be there in next monitorization) that.dataTableWildHosts.fnDeleteRow(wild_row); diff --git a/src/sunstone/public/app/tabs/images-tab/actions.js b/src/sunstone/public/app/tabs/images-tab/actions.js index 4c7bda28a2..9f72b35667 100644 --- a/src/sunstone/public/app/tabs/images-tab/actions.js +++ b/src/sunstone/public/app/tabs/images-tab/actions.js @@ -22,6 +22,7 @@ define(function(require) { var OpenNebula = require('opennebula'); var OpenNebulaAction = require('opennebula/action'); var CommonActions = require('utils/common-actions'); + var Navigation = require('utils/navigation'); var RESOURCE = "Image"; var XML_ROOT = "IMAGE"; @@ -126,7 +127,9 @@ define(function(require) { call: OpenNebulaResource.clone, callback: function(request, response) { OpenNebulaAction.clear_cache("IMAGE"); - Notifier.notifyCustom(Locale.tr("Image created"), " ID: " + response.IMAGE.ID, false); + Notifier.notifyCustom(Locale.tr("Image created"), + Navigation.link(" ID: " + response.IMAGE.ID, TAB_ID, response.IMAGE.ID), + false); }, error: Notifier.onError, notify: true diff --git a/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js b/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js index 563c2dd6a3..9ab18fd5cf 100644 --- a/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js +++ b/src/sunstone/public/app/tabs/marketplaceapps-tab/actions.js @@ -22,6 +22,7 @@ define(function(require) { var OpenNebulaResource = require('opennebula/marketplaceapp'); var OpenNebula = require('opennebula'); var OpenNebulaAction = require('opennebula/action'); + var Navigation = require('utils/navigation'); var RESOURCE = "MarketPlaceApp"; var XML_ROOT = "MARKETPLACEAPP"; @@ -63,7 +64,9 @@ define(function(require) { if (image.error != undefined){ Notifier.notifyError(image.error.message); } else { - Notifier.notifyCustom(Locale.tr("Image created"), " ID: " + image.ID, false); + Notifier.notifyCustom(Locale.tr("Image created"), + Navigation.link(" ID: " + image.ID, "images-tab", image.ID), + false); } }); }; @@ -73,7 +76,9 @@ define(function(require) { if (vmTemplate.error != undefined) { Notifier.notifyError(vmTemplate.error.message); } else if (vmTemplate.ID != -1) { - Notifier.notifyCustom(Locale.tr("VM Template created"), " ID: " + vmTemplate.ID, false); + Notifier.notifyCustom(Locale.tr("VM Template created"), + Navigation.link(" ID: " + vmTemplate.ID, "templates-tab", vmTemplate.ID), + false); } }); }; diff --git a/src/sunstone/public/app/tabs/oneflow-templates-tab/actions.js b/src/sunstone/public/app/tabs/oneflow-templates-tab/actions.js index 5c42e53e23..b249b86575 100644 --- a/src/sunstone/public/app/tabs/oneflow-templates-tab/actions.js +++ b/src/sunstone/public/app/tabs/oneflow-templates-tab/actions.js @@ -21,6 +21,7 @@ define(function(require) { var OpenNebulaResource = require('opennebula/servicetemplate'); var CommonActions = require('utils/common-actions'); var OpenNebulaAction = require('opennebula/action'); + var Navigation = require('utils/navigation'); var TAB_ID = require('./tabId'); var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId'); @@ -66,7 +67,9 @@ define(function(require) { Sunstone.hideFormPanel(); OpenNebulaAction.clear_cache("SERVICE"); - Notifier.notifyCustom(Locale.tr("Service created"), " ID: " + response.DOCUMENT.ID, false); + Notifier.notifyCustom(Locale.tr("Service created"), + Navigation.link(" ID: " + response.DOCUMENT.ID, "oneflow-services-tab", response.DOCUMENT.ID), + false); }, elements: function(opts) { return Sunstone.getDataTable(TAB_ID).elements(opts); diff --git a/src/sunstone/public/app/tabs/secgroups-tab/panels/info/html.hbs b/src/sunstone/public/app/tabs/secgroups-tab/panels/info/html.hbs index 4e2df8c356..29446ef0ce 100644 --- a/src/sunstone/public/app/tabs/secgroups-tab/panels/info/html.hbs +++ b/src/sunstone/public/app/tabs/secgroups-tab/panels/info/html.hbs @@ -60,7 +60,7 @@ {{PROTOCOL}} {{RULE_TYPE}} {{RANGE}} - {{NETWORK}} + {{{NETWORK}}} {{ICMP_TYPE}} {{/each}} diff --git a/src/sunstone/public/app/tabs/secgroups-tab/utils/common.js b/src/sunstone/public/app/tabs/secgroups-tab/utils/common.js index 265b82d1de..93b6700c67 100644 --- a/src/sunstone/public/app/tabs/secgroups-tab/utils/common.js +++ b/src/sunstone/public/app/tabs/secgroups-tab/utils/common.js @@ -24,6 +24,7 @@ define(function(require) { */ var Locale = require('utils/locale'); + var Navigation = require('utils/navigation'); /* @param {Object} rule Object representing the rule as returned by OpenNebula @@ -91,7 +92,7 @@ define(function(require) { var network = ""; if(rule.NETWORK_ID != undefined && rule.NETWORK_ID != ""){ - network += (Locale.tr("Virtual Network") + " " + rule.NETWORK_ID); + network += Navigation.link(Locale.tr("Virtual Network") + " " + rule.NETWORK_ID, "vnets-tab", rule.NETWORK_ID); } if(rule.SIZE != undefined && rule.SIZE != ""){ diff --git a/src/sunstone/public/app/tabs/templates-tab/actions-common.js b/src/sunstone/public/app/tabs/templates-tab/actions-common.js index 8fca2ad97b..2580fe9db0 100644 --- a/src/sunstone/public/app/tabs/templates-tab/actions-common.js +++ b/src/sunstone/public/app/tabs/templates-tab/actions-common.js @@ -21,6 +21,7 @@ define(function(require) { var OpenNebulaResource = require('opennebula/template'); var CommonActions = require('utils/common-actions'); var OpenNebulaAction = require('opennebula/action'); + var Navigation = require('utils/navigation'); var XML_ROOT = "VMTEMPLATE" @@ -157,7 +158,9 @@ define(function(require) { Sunstone.hideFormPanel(); OpenNebulaAction.clear_cache("VM"); - Notifier.notifyCustom(Locale.tr("VM created"), " ID: " + response, false); + Notifier.notifyCustom(Locale.tr("VM created"), + Navigation.link(" ID: " + response, "vms-tab", response), + false); }, elements: function(opts) { return Sunstone.getDataTable(TAB_ID).elements(opts); @@ -202,7 +205,9 @@ define(function(require) { Sunstone.hideFormPanel(); OpenNebulaAction.clear_cache("VM"); - Notifier.notifyCustom(Locale.tr("VM created"), " ID: " + response, false); + Notifier.notifyCustom(Locale.tr("VM created"), + Navigation.link(" ID: " + response, "vms-tab", response), + false); }, error: function(request, response){ // without tab id param to work for both templates and vms tab @@ -226,7 +231,9 @@ define(function(require) { call: OpenNebulaResource.clone, callback: function(request, response) { OpenNebulaAction.clear_cache("VMTEMPLATE"); - Notifier.notifyCustom(Locale.tr("VM Template created"), " ID: " + response.VMTEMPLATE.ID, false); + Notifier.notifyCustom(Locale.tr("VM Template created"), + Navigation.link(" ID: " + response.VMTEMPLATE.ID, "templates-tab", response.VMTEMPLATE.ID), + false); }, error: Notifier.onError, notify: true @@ -237,7 +244,9 @@ define(function(require) { call: OpenNebulaResource.clone_recursive, callback : function(request, response) { OpenNebulaAction.clear_cache("VMTEMPLATE"); - Notifier.notifyCustom(Locale.tr("VM Template created"), " ID: " + response.VMTEMPLATE.ID, false); + Notifier.notifyCustom(Locale.tr("VM Template created"), + Navigation.link(" ID: " + response.VMTEMPLATE.ID, "templates-tab", response.VMTEMPLATE.ID), + false); }, error: Notifier.onError, notify: true diff --git a/src/sunstone/public/app/tabs/vdcs-tab/actions.js b/src/sunstone/public/app/tabs/vdcs-tab/actions.js index bfdb2bd91e..d1e378abd6 100644 --- a/src/sunstone/public/app/tabs/vdcs-tab/actions.js +++ b/src/sunstone/public/app/tabs/vdcs-tab/actions.js @@ -21,6 +21,7 @@ define(function(require) { var DataTable = require('./datatable'); var OpenNebulaResource = require('opennebula/vdc'); var CommonActions = require('utils/common-actions'); + var Navigation = require('utils/navigation'); var TAB_ID = require('./tabId'); var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId'); @@ -100,7 +101,9 @@ define(function(require) { // actions end, showing "outdated" information Sunstone.runAction(RESOURCE+'.refresh'); - Notifier.notifyCustom(Locale.tr("VDC created"), " ID: " + response.VDC.ID, false); + Notifier.notifyCustom(Locale.tr("VDC created"), + Navigation.link(" ID: " + response.VDC.ID, "vdcs-tab", response.VDC.ID), + false); }, error: function(request, response){ Sunstone.hideFormPanelLoading(TAB_ID); diff --git a/src/sunstone/public/app/tabs/vms-tab/panels/network.js b/src/sunstone/public/app/tabs/vms-tab/panels/network.js index a1286d8752..612ab2946d 100644 --- a/src/sunstone/public/app/tabs/vms-tab/panels/network.js +++ b/src/sunstone/public/app/tabs/vms-tab/panels/network.js @@ -375,7 +375,7 @@ define(function(require) { var new_tr = '\ ' + this.SECURITY_GROUP_ID + '\ - ' + this.SECURITY_GROUP_NAME + '\ + ' + Navigation.link(this.SECURITY_GROUP_NAME, "secgroups-tab", this.SECURITY_GROUP_ID) + '\ ' + rule_st.PROTOCOL + '\ ' + rule_st.RULE_TYPE + '\ ' + rule_st.RANGE + '\ diff --git a/src/sunstone/public/app/tabs/vms-tab/panels/placement.js b/src/sunstone/public/app/tabs/vms-tab/panels/placement.js index f33d71ceba..29a603bd39 100644 --- a/src/sunstone/public/app/tabs/vms-tab/panels/placement.js +++ b/src/sunstone/public/app/tabs/vms-tab/panels/placement.js @@ -21,7 +21,7 @@ define(function(require) { var Locale = require('utils/locale'); var Humanize = require('utils/humanize'); - var OpenNebulaVM = require('opennebula/vm'); + var OpenNebula = require('opennebula'); var TemplateUtils = require('utils/template-utils'); var Navigation = require('utils/navigation'); @@ -115,9 +115,9 @@ define(function(require) { html += ' \ ' + history[i].SEQ + '\ ' + Navigation.link(history[i].HOSTNAME, "hosts-tab", history[i].HID) + '\ - ' + Navigation.link(history[i].DS_ID, "datastores-tab", history[i].DS_ID) + '\ - ' + OpenNebulaVM.migrateActionStr(parseInt(history[i].ACTION, 10)) + '\ - ' + OpenNebulaVM.migrateReasonStr(parseInt(history[i].REASON, 10)) + '\ + ' + Navigation.link(OpenNebula.Datastore.getName(history[i].DS_ID), "datastores-tab", history[i].DS_ID) + '\ + ' + OpenNebula.VM.migrateActionStr(parseInt(history[i].ACTION, 10)) + '\ + ' + OpenNebula.VM.migrateReasonStr(parseInt(history[i].REASON, 10)) + '\ ' + Humanize.prettyTime(history[i].STIME) + '\ ' + Humanize.prettyDuration(dtime) + '\ ' + Humanize.prettyDuration(dtime2) + '\ diff --git a/src/sunstone/public/app/tabs/vnets-tab/panels/info.js b/src/sunstone/public/app/tabs/vnets-tab/panels/info.js index 140d3febd1..0774481ef9 100644 --- a/src/sunstone/public/app/tabs/vnets-tab/panels/info.js +++ b/src/sunstone/public/app/tabs/vnets-tab/panels/info.js @@ -24,6 +24,7 @@ define(function(require) { var PermissionsTable = require('utils/panel/permissions-table'); var RenameTr = require('utils/panel/rename-tr'); var OpenNebulaNetwork = require('opennebula/network'); + var Navigation = require('utils/navigation'); /* TEMPLATES @@ -94,7 +95,7 @@ define(function(require) { reservationTrHTML = '\ '+Locale.tr("Reservation parent")+'\ - '+this.element.PARENT_NETWORK_ID+'\ + '+Navigation.link(OpenNebulaNetwork.getName(this.element.PARENT_NETWORK_ID), "vnets-tab", this.element.PARENT_NETWORK_ID)+'\ \ '; diff --git a/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js b/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js index 6fa6cef8fd..f4de5853b9 100644 --- a/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js +++ b/src/sunstone/public/app/tabs/vnets-tab/panels/leases.js @@ -87,13 +87,13 @@ define(function(require) { } } else if (lease.VM != undefined) { //used by a VM col0HTML = ''; - col1HTML = Locale.tr("VM:") + lease.VM; + col1HTML = Navigation.link(Locale.tr("VM:") + lease.VM, "vms-tab", lease.VM); } else if (lease.VNET != undefined) { //used by a VNET col0HTML = ''; - col1HTML = Locale.tr("NET:") + lease.VNET; + col1HTML = Navigation.link(Locale.tr("NET:") + lease.VNET, "vnets-tab", lease.VNET); } else if (lease.VROUTER != undefined) { //used by a VR col0HTML = ''; - col1HTML = Locale.tr("VR:") + lease.VROUTER; + col1HTML = Navigation.link(Locale.tr("VR:") + lease.VROUTER, "vrouters-tab", lease.VROUTER); } else { col0HTML = ''; col1HTML = '--'; diff --git a/src/sunstone/public/app/tabs/vrouter-templates-tab/form-panels/instantiate.js b/src/sunstone/public/app/tabs/vrouter-templates-tab/form-panels/instantiate.js index 7e06241c30..66b3e8318c 100644 --- a/src/sunstone/public/app/tabs/vrouter-templates-tab/form-panels/instantiate.js +++ b/src/sunstone/public/app/tabs/vrouter-templates-tab/form-panels/instantiate.js @@ -31,6 +31,7 @@ define(function(require) { var OpenNebulaAction = require('opennebula/action'); var Notifier = require('utils/notifier'); var Config = require('sunstone-config'); + var Navigation = require('utils/navigation'); /* TEMPLATES @@ -141,7 +142,9 @@ define(function(require) { 'template': tmpl }; - Notifier.notifyCustom(Locale.tr("Virtual Router created"), " ID: " + response.VROUTER.ID, false); + Notifier.notifyCustom(Locale.tr("Virtual Router created"), + Navigation.link(" ID: " + response.VROUTER.ID, "vrouters-tab", response.VROUTER.ID), + false); OpenNebulaVirtualRouter.instantiate({ data:{ diff --git a/src/sunstone/public/app/utils/common-actions.js b/src/sunstone/public/app/utils/common-actions.js index 4c1abc2c00..71682feded 100644 --- a/src/sunstone/public/app/utils/common-actions.js +++ b/src/sunstone/public/app/utils/common-actions.js @@ -18,6 +18,7 @@ define(function(require) { var Sunstone = require('sunstone'); var Notifier = require('utils/notifier'); var Locale = require('utils/locale'); + var Navigation = require('utils/navigation'); /* CONSTRUCTOR @@ -154,7 +155,13 @@ define(function(require) { Sunstone.hideFormPanel(that.tabId); that.refresh(); - Notifier.notifyCustom(that.createdStr, " ID: " + response[that.xmlRoot].ID, false); + if (response[that.xmlRoot].ID != undefined){ + Notifier.notifyCustom(that.createdStr, + Navigation.link(" ID: " + response[that.xmlRoot].ID, that.tabId, response[that.xmlRoot].ID), + false); + }else{ + Notifier.notifyCustom(that.createdStr, "", false); + } }, error: function(request, response) { Sunstone.hideFormPanelLoading(that.tabId);