From c6d00e9a159883b1c541eb177c07c99bb91fb1e4 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Tue, 18 Nov 2014 23:31:48 -0800 Subject: [PATCH] delete working for deployments, confirmation dialog --- .../xoslib/dashboards/xosAdminDashboard.html | 4 ++ .../core/xoslib/static/css/xosAdminSite.css | 4 +- .../core/xoslib/static/js/xoslib/xosHelper.js | 54 +++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/planetstack/core/xoslib/dashboards/xosAdminDashboard.html b/planetstack/core/xoslib/dashboards/xosAdminDashboard.html index 99050e1..b5dacc9 100644 --- a/planetstack/core/xoslib/dashboards/xosAdminDashboard.html +++ b/planetstack/core/xoslib/dashboards/xosAdminDashboard.html @@ -22,6 +22,10 @@ +
+ Are you sure about this? +
+
diff --git a/planetstack/core/xoslib/static/css/xosAdminSite.css b/planetstack/core/xoslib/static/css/xosAdminSite.css index 118a7b0..f09bbcf 100644 --- a/planetstack/core/xoslib/static/css/xosAdminSite.css +++ b/planetstack/core/xoslib/static/css/xosAdminSite.css @@ -99,4 +99,6 @@ display: none; } - +#xos-confirm-dialog { + display: none; +} diff --git a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js index 6de351b..98dfb88 100644 --- a/planetstack/core/xoslib/static/js/xoslib/xosHelper.js +++ b/planetstack/core/xoslib/static/js/xoslib/xosHelper.js @@ -28,6 +28,23 @@ XOSApplication = Marionette.Application.extend({ successTemplate: "#xos-success-template", logMessageCount: 0, + confirmDialog: function(view, event) { + $("#xos-confirm-dialog").dialog({ + autoOpen: false, + modal: true, + buttons : { + "Confirm" : function() { + $(this).dialog("close"); + view.trigger(event); + }, + "Cancel" : function() { + $(this).dialog("close"); + } + } + }); + $("#xos-confirm-dialog").dialog("open"); + }, + hideError: function() { if (this.logWindowId) { } else { @@ -169,8 +186,13 @@ XOSDetailView = Marionette.ItemView.extend({ events: {"click button.btn-xos-save-continue": "submitContinueClicked", "click button.btn-xos-save-leave": "submitLeaveClicked", "click button.btn-xos-save-another": "submitAddAnotherClicked", + "click button.btn-xos-delete": "deleteClicked", "change input": "inputChanged"}, + initialize: function() { + this.on('deleteConfirmed', this.deleteConfirmed); + }, + /* inputChanged is watching the onChange events of the input controls. We do this to track when this view is 'dirty', so we can throw up a warning if the user tries to change his slices without saving first. @@ -193,6 +215,19 @@ XOSDetailView = Marionette.ItemView.extend({ this.app.showSuccess(result); }, + destroyError: function(model, result, xhr, infoMsgId) { + result["what"] = "destroy " + model.__proto__.modelName; + result["infoMsgId"] = infoMsgId; + this.app.showError(result); + }, + + destroySuccess: function(model, result, xhr, infoMsgId) { + result = {status: xhr.xhr.status, statusText: xhr.xhr.statusText}; + result["what"] = "destroy " + model.__proto__.modelName; + result["infoMsgId"] = infoMsgId; + this.app.showSuccess(result); + }, + submitContinueClicked: function(e) { console.log("saveContinue"); e.preventDefault(); @@ -229,6 +264,25 @@ XOSDetailView = Marionette.ItemView.extend({ this.dirty = false; }, + destroyModel: function() { + this.app.hideError(); + var infoMsgId = this.app.showInformational( {what: "destroy " + this.model.__proto__.modelName, status: "", statusText: "in progress..."} ); + var that = this; + this.model.destroy({error: function(model, result, xhr) { that.destroyError(model,result,xhr,infoMsgId);}, + success: function(model, result, xhr) { that.destroySuccess(model,result,xhr,infoMsgId);}}); + }, + + deleteClicked: function(e) { + e.preventDefault(); + this.app.confirmDialog(this, "deleteConfirmed"); + }, + + deleteConfirmed: function() { + modelName = this.model.modelName; + this.destroyModel(); + this.app.navigate("list", modelName); + }, + tabClick: function(tabId, regionName) { region = this.app[regionName]; if (this.currentTabRegion != undefined) { -- 2.43.0