summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/site/DocumentModal.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/ui/site/DocumentModal.js')
-rw-r--r--public/assets/javascripts/ui/site/DocumentModal.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/public/assets/javascripts/ui/site/DocumentModal.js b/public/assets/javascripts/ui/site/DocumentModal.js
new file mode 100644
index 0000000..6f16169
--- /dev/null
+++ b/public/assets/javascripts/ui/site/DocumentModal.js
@@ -0,0 +1,49 @@
+
+var DocumentModal = ModalFormView.extend({
+ el: ".mediaDrawer.editDocument",
+ createAction: "/api/docs/new",
+ updateAction: "/api/docs/edit",
+ destroyAction: "/api/docs/destroy",
+
+ load: function(name, isNew){
+ this.reset()
+
+ if (isNew || name === "new") {
+ name = sanitize(name)
+ if (name !== "new") {
+ this.$("[name='new_name']").val( name.replace(/\s+/g,"-") )
+ this.$("[name='displayName']").val( capitalize(name.replace(/-/g," ")) )
+ }
+ this.action = this.createAction
+ return this.show()
+ }
+
+ this.action = this.updateAction
+
+ $.get("/api/docs", { name: name }, $.proxy(function(data){
+ if (data.isNew) {
+ this.action = this.createAction
+ }
+
+ for (var i in data) {
+ this.$("[name='" + i + "']").val(data[i])
+ }
+ this.$("[name='new_name']").val(name)
+
+ this.show()
+ }, this))
+ },
+
+ success: function(res){
+ window.location.pathname = "/about/" + res.name
+ },
+
+ destroy: function(name, cb){
+ $.ajax({
+ type: "delete",
+ url: this.destroyAction,
+ data: { name: name, _csrf: $("[name=_csrf]").val() }
+ }).complete(cb || function(){})
+ },
+
+})