Chris@0
|
1 /**
|
Chris@0
|
2 * DO NOT EDIT THIS FILE.
|
Chris@0
|
3 * See the following change record for more information,
|
Chris@0
|
4 * https://www.drupal.org/node/2815083
|
Chris@0
|
5 * @preserve
|
Chris@0
|
6 **/
|
Chris@0
|
7
|
Chris@0
|
8 (function ($, Drupal, drupalSettings) {
|
Chris@0
|
9 Drupal.behaviors.fieldUIFieldStorageAddForm = {
|
Chris@0
|
10 attach: function attach(context) {
|
Chris@0
|
11 var $form = $(context).find('[data-drupal-selector="field-ui-field-storage-add-form"]').once('field_ui_add');
|
Chris@0
|
12 if ($form.length) {
|
Chris@0
|
13 $form.find('.js-form-item-label label,' + '.js-form-item-field-name label,' + '.js-form-item-existing-storage-label label').addClass('js-form-required form-required');
|
Chris@0
|
14
|
Chris@0
|
15 var $newFieldType = $form.find('select[name="new_storage_type"]');
|
Chris@0
|
16 var $existingStorageName = $form.find('select[name="existing_storage_name"]');
|
Chris@0
|
17 var $existingStorageLabel = $form.find('input[name="existing_storage_label"]');
|
Chris@0
|
18
|
Chris@0
|
19 $newFieldType.on('change', function () {
|
Chris@0
|
20 if ($(this).val() !== '') {
|
Chris@0
|
21 $existingStorageName.val('').trigger('change');
|
Chris@0
|
22 }
|
Chris@0
|
23 });
|
Chris@0
|
24
|
Chris@0
|
25 $existingStorageName.on('change', function () {
|
Chris@0
|
26 var value = $(this).val();
|
Chris@0
|
27 if (value !== '') {
|
Chris@0
|
28 $newFieldType.val('').trigger('change');
|
Chris@0
|
29
|
Chris@0
|
30 if (typeof drupalSettings.existingFieldLabels[value] !== 'undefined') {
|
Chris@0
|
31 $existingStorageLabel.val(drupalSettings.existingFieldLabels[value]);
|
Chris@0
|
32 }
|
Chris@0
|
33 }
|
Chris@0
|
34 });
|
Chris@0
|
35 }
|
Chris@0
|
36 }
|
Chris@0
|
37 };
|
Chris@0
|
38
|
Chris@0
|
39 Drupal.behaviors.fieldUIDisplayOverview = {
|
Chris@0
|
40 attach: function attach(context, settings) {
|
Chris@0
|
41 $(context).find('table#field-display-overview').once('field-display-overview').each(function () {
|
Chris@0
|
42 Drupal.fieldUIOverview.attach(this, settings.fieldUIRowsData, Drupal.fieldUIDisplayOverview);
|
Chris@0
|
43 });
|
Chris@0
|
44 }
|
Chris@0
|
45 };
|
Chris@0
|
46
|
Chris@0
|
47 Drupal.fieldUIOverview = {
|
Chris@0
|
48 attach: function attach(table, rowsData, rowHandlers) {
|
Chris@0
|
49 var tableDrag = Drupal.tableDrag[table.id];
|
Chris@0
|
50
|
Chris@0
|
51 tableDrag.onDrop = this.onDrop;
|
Chris@0
|
52 tableDrag.row.prototype.onSwap = this.onSwap;
|
Chris@0
|
53
|
Chris@0
|
54 $(table).find('tr.draggable').each(function () {
|
Chris@0
|
55 var row = this;
|
Chris@0
|
56 if (row.id in rowsData) {
|
Chris@0
|
57 var data = rowsData[row.id];
|
Chris@0
|
58 data.tableDrag = tableDrag;
|
Chris@0
|
59
|
Chris@0
|
60 var rowHandler = new rowHandlers[data.rowHandler](row, data);
|
Chris@0
|
61 $(row).data('fieldUIRowHandler', rowHandler);
|
Chris@0
|
62 }
|
Chris@0
|
63 });
|
Chris@0
|
64 },
|
Chris@0
|
65 onChange: function onChange() {
|
Chris@0
|
66 var $trigger = $(this);
|
Chris@0
|
67 var $row = $trigger.closest('tr');
|
Chris@0
|
68 var rowHandler = $row.data('fieldUIRowHandler');
|
Chris@0
|
69
|
Chris@0
|
70 var refreshRows = {};
|
Chris@0
|
71 refreshRows[rowHandler.name] = $trigger.get(0);
|
Chris@0
|
72
|
Chris@0
|
73 var region = rowHandler.getRegion();
|
Chris@0
|
74 if (region !== rowHandler.region) {
|
Chris@0
|
75 $row.find('select.js-field-parent').val('');
|
Chris@0
|
76
|
Chris@0
|
77 $.extend(refreshRows, rowHandler.regionChange(region));
|
Chris@0
|
78
|
Chris@0
|
79 rowHandler.region = region;
|
Chris@0
|
80 }
|
Chris@0
|
81
|
Chris@0
|
82 Drupal.fieldUIOverview.AJAXRefreshRows(refreshRows);
|
Chris@0
|
83 },
|
Chris@0
|
84 onDrop: function onDrop() {
|
Chris@0
|
85 var dragObject = this;
|
Chris@0
|
86 var row = dragObject.rowObject.element;
|
Chris@0
|
87 var $row = $(row);
|
Chris@0
|
88 var rowHandler = $row.data('fieldUIRowHandler');
|
Chris@0
|
89 if (typeof rowHandler !== 'undefined') {
|
Chris@0
|
90 var regionRow = $row.prevAll('tr.region-message').get(0);
|
Chris@0
|
91 var region = regionRow.className.replace(/([^ ]+[ ]+)*region-([^ ]+)-message([ ]+[^ ]+)*/, '$2');
|
Chris@0
|
92
|
Chris@0
|
93 if (region !== rowHandler.region) {
|
Chris@0
|
94 var refreshRows = rowHandler.regionChange(region);
|
Chris@0
|
95
|
Chris@0
|
96 rowHandler.region = region;
|
Chris@0
|
97
|
Chris@0
|
98 Drupal.fieldUIOverview.AJAXRefreshRows(refreshRows);
|
Chris@0
|
99 }
|
Chris@0
|
100 }
|
Chris@0
|
101 },
|
Chris@0
|
102 onSwap: function onSwap(draggedRow) {
|
Chris@0
|
103 var rowObject = this;
|
Chris@0
|
104 $(rowObject.table).find('tr.region-message').each(function () {
|
Chris@0
|
105 var $this = $(this);
|
Chris@0
|
106
|
Chris@0
|
107 if ($this.prev('tr').get(0) === rowObject.group[rowObject.group.length - 1]) {
|
Chris@0
|
108 if (rowObject.method !== 'keyboard' || rowObject.direction === 'down') {
|
Chris@0
|
109 rowObject.swap('after', this);
|
Chris@0
|
110 }
|
Chris@0
|
111 }
|
Chris@0
|
112
|
Chris@0
|
113 if ($this.next('tr').is(':not(.draggable)') || $this.next('tr').length === 0) {
|
Chris@0
|
114 $this.removeClass('region-populated').addClass('region-empty');
|
Chris@0
|
115 } else if ($this.is('.region-empty')) {
|
Chris@0
|
116 $this.removeClass('region-empty').addClass('region-populated');
|
Chris@0
|
117 }
|
Chris@0
|
118 });
|
Chris@0
|
119 },
|
Chris@0
|
120 AJAXRefreshRows: function AJAXRefreshRows(rows) {
|
Chris@0
|
121 var rowNames = [];
|
Chris@0
|
122 var ajaxElements = [];
|
Chris@14
|
123 Object.keys(rows || {}).forEach(function (rowName) {
|
Chris@14
|
124 rowNames.push(rowName);
|
Chris@14
|
125 ajaxElements.push(rows[rowName]);
|
Chris@14
|
126 });
|
Chris@0
|
127
|
Chris@0
|
128 if (rowNames.length) {
|
Chris@17
|
129 $(ajaxElements).after(Drupal.theme.ajaxProgressThrobber());
|
Chris@0
|
130
|
Chris@0
|
131 $('input[name=refresh_rows]').val(rowNames.join(' '));
|
Chris@0
|
132 $('input[data-drupal-selector="edit-refresh"]').trigger('mousedown');
|
Chris@0
|
133
|
Chris@0
|
134 $(ajaxElements).prop('disabled', true);
|
Chris@0
|
135 }
|
Chris@0
|
136 }
|
Chris@0
|
137 };
|
Chris@0
|
138
|
Chris@0
|
139 Drupal.fieldUIDisplayOverview = {};
|
Chris@0
|
140
|
Chris@0
|
141 Drupal.fieldUIDisplayOverview.field = function (row, data) {
|
Chris@0
|
142 this.row = row;
|
Chris@0
|
143 this.name = data.name;
|
Chris@0
|
144 this.region = data.region;
|
Chris@0
|
145 this.tableDrag = data.tableDrag;
|
Chris@0
|
146 this.defaultPlugin = data.defaultPlugin;
|
Chris@0
|
147
|
Chris@0
|
148 this.$pluginSelect = $(row).find('.field-plugin-type');
|
Chris@0
|
149 this.$pluginSelect.on('change', Drupal.fieldUIOverview.onChange);
|
Chris@0
|
150
|
Chris@0
|
151 this.$regionSelect = $(row).find('select.field-region');
|
Chris@0
|
152 this.$regionSelect.on('change', Drupal.fieldUIOverview.onChange);
|
Chris@0
|
153
|
Chris@0
|
154 return this;
|
Chris@0
|
155 };
|
Chris@0
|
156
|
Chris@0
|
157 Drupal.fieldUIDisplayOverview.field.prototype = {
|
Chris@0
|
158 getRegion: function getRegion() {
|
Chris@0
|
159 return this.$regionSelect.val();
|
Chris@0
|
160 },
|
Chris@0
|
161 regionChange: function regionChange(region) {
|
Chris@0
|
162 region = region.replace(/-/g, '_');
|
Chris@0
|
163
|
Chris@0
|
164 this.$regionSelect.val(region);
|
Chris@0
|
165
|
Chris@17
|
166 if (this.region === 'hidden') {
|
Chris@17
|
167 var value = typeof this.defaultPlugin !== 'undefined' ? this.defaultPlugin : this.$pluginSelect.find('option').val();
|
Chris@0
|
168
|
Chris@17
|
169 if (typeof value !== 'undefined') {
|
Chris@17
|
170 this.$pluginSelect.val(value);
|
Chris@17
|
171 }
|
Chris@0
|
172 }
|
Chris@0
|
173
|
Chris@0
|
174 var refreshRows = {};
|
Chris@0
|
175 refreshRows[this.name] = this.$pluginSelect.get(0);
|
Chris@0
|
176
|
Chris@0
|
177 return refreshRows;
|
Chris@0
|
178 }
|
Chris@0
|
179 };
|
Chris@0
|
180 })(jQuery, Drupal, drupalSettings); |