field-bar.js
2 months ago
field-settings.js
2 months ago
main-layout.js
2 months ago
metabox.js
2 months ago
sidebar-layout.js
2 months ago
field-bar.js
73 lines
| 1 | import Backbone from 'backbone'; |
| 2 | import wp from 'wp'; |
| 3 | import $ from 'jquery'; |
| 4 | import FieldSettingsView from "./field-settings"; |
| 5 | |
| 6 | export default Backbone.View.extend({ |
| 7 | |
| 8 | className: 'pp-builder-element', |
| 9 | |
| 10 | template: wp.template('pp-form-builder-field-bar'), |
| 11 | |
| 12 | events: { |
| 13 | "click .pp-builder-element-expand-button.pp-settings": "reveal_settings", |
| 14 | "click .pp-builder-element-expand-button.pp-delete": "delete_field", |
| 15 | "click .pp-builder-element-expand-button.pp-clone": "clone_field" |
| 16 | }, |
| 17 | |
| 18 | reveal_settings(e) { |
| 19 | e.preventDefault(); |
| 20 | |
| 21 | $(e.target).parent('a').trigger('blur'); |
| 22 | const fieldType = this.model.get('fieldType'); |
| 23 | let activeSettingsView = new FieldSettingsView({fieldType, model: this.model}); |
| 24 | activeSettingsView.render(); |
| 25 | $('body').append(activeSettingsView.$el); |
| 26 | |
| 27 | var cache = $('.pp-form-control-wpeditor'); |
| 28 | if (cache.length > 0) { |
| 29 | cache.each(function () { |
| 30 | var id = $(this).attr('id'); |
| 31 | $('#' + id).pp_wp_editor({mode: 'tmce'}); |
| 32 | |
| 33 | tinymce.get(id).on('keyup change undo redo SetContent', function () { |
| 34 | this.save(); |
| 35 | }); |
| 36 | }); |
| 37 | } |
| 38 | }, |
| 39 | |
| 40 | delete_field(e) { |
| 41 | e.preventDefault(); |
| 42 | if (confirm(pp_form_builder.confirm_delete)) { |
| 43 | $(e.target).parent('a').trigger('blur'); |
| 44 | this.remove(); |
| 45 | this.collection.remove(this.model); |
| 46 | } |
| 47 | }, |
| 48 | |
| 49 | clone_field(e) { |
| 50 | e.preventDefault(); |
| 51 | $(e.target).parent('a').trigger('blur'); |
| 52 | this.collection.add( |
| 53 | this.model.clone(), |
| 54 | { |
| 55 | at: this.collection.indexOf(this.model) |
| 56 | } |
| 57 | ); |
| 58 | }, |
| 59 | |
| 60 | render() { |
| 61 | const fieldType = this.model.get('fieldType'); |
| 62 | const fieldTitle = typeof pp_form_builder_combined_fields[fieldType] !== 'undefined' && |
| 63 | pp_form_builder_combined_fields[fieldType]["fieldTitle"] !== 'undefined' ? pp_form_builder_combined_fields[fieldType]["fieldTitle"] : |
| 64 | this.model.get('fieldTitle'); |
| 65 | |
| 66 | this.$el.html(this.template({ |
| 67 | fieldType: fieldType, |
| 68 | fieldTitle: fieldTitle, |
| 69 | fieldIcon: this.model.get('fieldIcon'), |
| 70 | fieldBarTitle: this.model.get('fieldBarTitle') |
| 71 | })).data('modelCID', this.model.cid); |
| 72 | } |
| 73 | }); |