Anton Shestakov <engored@ya.ru>, Sun, 05 Apr 2015 03:47:35 +0800
Highlights about security.
static/js/framework/views/inline.js
Permissions: -rw-r--r--
var InlineEditorView = Backbone.View.extend({ initialize: function(options) { renderInput: function(options) { this.$input = $('<input>').attr('type', 'text').addClass('input-xlarge').val(options.target.text()); this.$input.keyup(function(e) { view.$saveButton.click(); view.$cancelButton.click(); this.$el.append(this.$input, this.$saveButton, this.$cancelButton); options.target.after(this.$el); renderTextarea: function(options) { this.$input = $('<textarea>').addClass('input-xlarge').attr('rows', 3).text(options.target.text()); this.$input.keyup(function(e) { view.$saveButton.click(); view.$cancelButton.click(); this.$el.append(this.$input, this.$saveButton, this.$cancelButton); options.target.after(this.$el); render: function(options) { this.$saveButton = $('<button>').addClass('btn btn-small btn-success').html('<i class="icon-white icon-ok"></i>'); this.$cancelButton = $('<button>').addClass('btn btn-small').html('<i class="icon-remove"></i>'); this.$el = $('<div>').addClass('inline-editor input-append'); this.$cancelButton.click(function() { this.$saveButton.click(function() { view.trigger('save', view.$input.val()); return this.renderInput(options); return this.renderTextarea(options); var CollectionViewWithInlineEditor = CollectionView.extend({ bindInlineEditable: function(model, selector) { model.$item.delegate(selector, 'click', function(e) { var attribute = $this.attr('data-model-attribute'); var inlineEditor = new InlineEditorView({ type: $this.attr('data-input-type') || 'input' inlineEditor.on('save', function(value) { model.adhoc(data).then(function() {