{I" class:ETI"ProcessedAsset;FI"logical_path;TI",type_station/editables/entity_editor.js;FI" pathname;TI"U/workspace/app/assets/javascripts/type_station/editables/entity_editor.js.coffee;FI"content_type;TI"application/javascript;TI" mtime;Tl+˙ĂVI" length;Tiµ(I" digest;TI"%de79e78cddfe05ffde178dacb37fe755;FI" source;TI"µ((function() { var buildFields, createEntityCall, deleteEntityCall, handleCreateEditEntity, handleDeleteEntity, handleMoveEntity, moveEntityCall; moveEntityCall = function(url, direction) { return $.ajax({ type: "PATCH", url: url, dataType: 'json', contentType: 'application/json', data: JSON.stringify({ direction: direction }), success: function(data, status) { return window.location.reload(); } }); }; deleteEntityCall = function(url) { return $.ajax({ type: "DELETE", url: url, dataType: 'json', contentType: 'application/json', data: {}, success: function(data, status) { return window.location.reload(); } }); }; createEntityCall = function(url, data) { return $.ajax({ type: "POST", url: url, dataType: 'json', contentType: 'application/json', data: JSON.stringify(data), success: function(data, status) { return window.location.reload(); } }); }; buildFields = function(editor) { var defaultValues, field, fields, i, input, inputs, j, label, len, len1, modelValues, o, select; fields = editor.data.fields; inputs = ''; defaultValues = {}; for (i = 0, len = fields.length; i < len; i++) { field = fields[i]; if (field["default"]) { defaultValues[field.name] = field["default"]; } } modelValues = editor.data.action === 'edit' ? editor.data.values : defaultValues; for (j = 0, len1 = fields.length; j < len1; j++) { field = fields[j]; if (field.label) { label = ""; input = (function() { var l, len2, len3, m, ref, ref1; switch (field.type) { case "text": return ""; case "textarea": return ""; case "html": return ""; case "select": select = ""; return select; case "multiple_select": select = ""; return select; } })(); inputs += "
" + label + "
" + input + "
"; } else { inputs += ""; } } return inputs; }; handleDeleteEntity = function(editor) { return vex.dialog.confirm({ message: 'Are you sure you want to delete this?', callback: function(value) { if (value) { return deleteEntityCall(editor.data.url); } } }); }; handleMoveEntity = function(editor) { return moveEntityCall(editor.data.url, editor.data.options.direction); }; handleCreateEditEntity = function(editor) { var self, vex_message, vex_message_type; self = editor; vex.dialog.buttons.YES.text = self.data.action === 'edit' ? 'Save' : 'Create'; vex_message_type = self.data.type === 'TypeStation::Page' ? 'Page' : self.data.type; vex_message = (self.data.action === 'edit' ? 'Edit' : 'Create') + " " + (vex_message_type || 'Page'); return vex.dialog.open({ message: vex_message, input: buildFields(self), afterOpen: function($vexContent) { return $("select.multiple_select", $vexContent).chosen(); }, callback: function(data) { var check_value, contents, field, json, k, model, v, valid; if (data) { if (self.data.action === 'edit') { model = self.ts.getModel(self.data.url); valid = true; for (k in data) { v = data[k]; field = self.fields[k]; if (valid) { switch (field.type) { case 'html': valid = true; break; default: check_value = v.replace(/[\'\"\=\|\@\{\}\.\,\:\;\/\&\?\!\(\)]/g, ''); if (check_value.length > 0) { if (check_value.length > 1) { try { valid = !$(check_value).is('*'); } catch (_error) { valid = false; } } } } } else { break; } } if (valid) { return vex.dialog.confirm({ message: 'Are you sure you want to save changes?', callback: function(value) { if (value) { self.ts.save(); for (k in data) { v = data[k]; model.set(k, { field: k, value: v, type: self.fields[k].type }); } return model.save(function() { return window.location.reload(); }); } } }); } else { vex.dialog.buttons.YES.text = 'Ok'; return vex.dialog.alert({ message: 'Unable to save: Invalid inputs please check and try again', callback: function() { return self.$el.click(); } }); } } else { json = {}; contents = []; valid = true; for (k in data) { v = data[k]; field = self.fields[k]; if (valid) { switch (field.type) { case 'html': valid = true; break; default: check_value = v.replace(/[\'\"\=\|\@\{\}\.\,\:\;\/\&\?\!\(\)]/g, ''); if (check_value.length > 0) { if (check_value.length > 1) { try { valid = !$(check_value).is('*'); } catch (_error) { valid = false; } } } } } else { break; } contents.push({ field: k, value: v, type: field.type }); } json['contents'] = contents; if (self.data.parent_id) { json['parent_id'] = self.data.parent_id; } if (self.data.type) { json['_type'] = self.data.type; } if (valid) { if (self.ts.isChanged()) { vex.dialog.buttons.YES.text = 'Save'; return vex.dialog.confirm({ message: 'You have unsaved changes, Do you want to save them before creating this?', callback: function(value) { if (value) { self.ts.save(); return createEntityCall(self.data.create_url, json); } } }); } else { return createEntityCall(self.data.create_url, json); } } else { vex.dialog.buttons.YES.text = 'Ok'; return vex.dialog.alert({ message: 'Unable to save: Invalid inputs please check and try again', callback: function() { return self.$el.click(); } }); } } } } }); }; this.TypeStation.EntityEditor = (function() { function EntityEditor(ts, $el, data1) { var field, i, len, ref; this.ts = ts; this.$el = $el; this.data = data1; vex.defaultOptions.className = 'vex-theme-os'; this.fields = {}; ref = this.data.fields; for (i = 0, len = ref.length; i < len; i++) { field = ref[i]; this.fields[field.name] = field; } } EntityEditor.prototype.enable = function() { var self; this.disable(); self = this; return this.$el.on('click', function() { switch (self.data.action) { case 'edit': case 'create': return handleCreateEditEntity(self); case 'move': return handleMoveEntity(self); case 'delete': return handleDeleteEntity(self); } }); }; EntityEditor.prototype.disable = function() { return this.$el.off('click'); }; return EntityEditor; })(); }).call(this); ;TI"dependency_digest;TI"%69711aae9e08039ec62194218b5eba6c;FI"required_paths;T[I"U/workspace/app/assets/javascripts/type_station/editables/entity_editor.js.coffee;FI"dependency_paths;T[{I" path;TI"U/workspace/app/assets/javascripts/type_station/editables/entity_editor.js.coffee;F@I"2016-02-16T11:20:31+00:00;T@I"%fcb8dbd047a26cf43f152585fd3240f1;FI" _version;TI"%64e62ddc273c2f5847f30d698ca14b67;F