PluginProbe
Hello Plus / 1.7.3
Hello Plus v1.7.3
trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.6.0 1.6.1 1.6.2 1.7.0 1.7.1 1.7.2 1.7.3 All 30 releases
hello-plus / modules / forms / assets / js / editor / fields-map-control.js

fields-map-control.js in Hello Plus 1.7.3, at modules/forms/assets/js/editor/fields-map-control.js

78 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 module.exports = elementor.modules.controls.Repeater.extend( {
2 onBeforeRender() {
3 this.$el.hide();
4 },
5
6 updateMap( fields ) {
7 const self = this,
8 savedMapObject = {};
9
10 self.collection.each( function( model ) {
11 savedMapObject[ model.get( 'remote_id' ) ] = model.get( 'local_id' );
12 } );
13
14 self.collection.reset();
15
16 fields.forEach( function( field ) {
17 const model = {
18 remote_id: field.remote_id,
19 remote_label: field.remote_label,
20 remote_type: field.remote_type ? field.remote_type : '',
21 remote_required: field.remote_required ? field.remote_required : false,
22 local_id: savedMapObject[ field.remote_id ] ? savedMapObject[ field.remote_id ] : '',
23 };
24
25 self.collection.add( model );
26 } );
27
28 self.render();
29 },
30
31 onRender() {
32 elementor.modules.controls.Base.prototype.onRender.apply( this, arguments );
33
34 const self = this;
35
36 self.children.each( function( view ) {
37 const localFieldsControl = view.children.last(),
38 options = {
39 '': '- ' + __( 'None', 'elementor' ) + ' -',
40 };
41 let label = view.model.get( 'remote_label' );
42
43 if ( view.model.get( 'remote_required' ) ) {
44 label += '<span class="elementor-required">*</span>';
45 }
46
47 self.elementSettingsModel.get( 'form_fields' ).models.forEach( function( model, index ) {
48 // If it's an email field, add only email fields from thr form
49 const remoteType = view.model.get( 'remote_type' );
50
51 if ( 'text' !== remoteType && remoteType !== model.get( 'field_type' ) ) {
52 return;
53 }
54
55 options[ model.get( 'custom_id' ) ] = model.get( 'field_label' ) || 'Field #' + ( index + 1 );
56 } );
57
58 localFieldsControl.model.set( 'label', label );
59 localFieldsControl.model.set( 'options', options );
60 localFieldsControl.render();
61
62 view.$el.find( '.elementor-repeater-row-tools' ).hide();
63 view.$el.find( '.elementor-repeater-row-controls' )
64 .removeClass( 'elementor-repeater-row-controls' )
65 .find( '.elementor-control' )
66 .css( {
67 paddingBottom: 0,
68 } );
69 } );
70
71 self.$el.find( '.elementor-button-wrapper' ).remove();
72
73 if ( self.children.length ) {
74 self.$el.show();
75 }
76 },
77 } );
78