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);