CSS & JavaScript Toolbox - Version 11.3

Version Description

  • Fixed: URL Assignment tab is now working as expected.
  • Fixed: Inverter functionality was not being displayed in the frontend.
Download this release

Release Info

Developer wipeoutmedia
Plugin Icon 128x128 CSS & JavaScript Toolbox
Version 11.3
Comparing to
See all releases

Code changes from version 11.2 to 11.3

controllers/blocks-coupling.php CHANGED
@@ -523,7 +523,9 @@ class CJTBlocksCouplingController extends CJTController {
523
  // Request URI.
524
  $requestURI = $_SERVER['REQUEST_URI'];
525
  // Final URL.
526
- $url = "{$protocol}{$host}{$port}{$requestURI}";
 
 
527
  return $url;
528
  }
529
 
523
  // Request URI.
524
  $requestURI = $_SERVER['REQUEST_URI'];
525
  // Final URL.
526
+ //$url = "{$protocol}{$host}{$port}{$requestURI}";
527
+ // Removing port segment from the URL as it is causing bugs.
528
+ $url = "{$protocol}{$host}{$requestURI}";
529
  return $url;
530
  }
531
 
css-js-toolbox.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: CSS & JavaScript Toolbox
4
  Plugin URI: https://css-javascript-toolbox.com/
5
  Description: Easily add CSS, JavaScript, HTML and PHP code to unique CJT code blocks and assign them anywhere on your website.
6
- Version: 11.2
7
  Author: Wipeout Media
8
  Author URI: https://css-javascript-toolbox.com
9
  License:
3
  Plugin Name: CSS & JavaScript Toolbox
4
  Plugin URI: https://css-javascript-toolbox.com/
5
  Description: Easily add CSS, JavaScript, HTML and PHP code to unique CJT code blocks and assign them anywhere on your website.
6
+ Version: 11.3
7
  Author: Wipeout Media
8
  Author URI: https://css-javascript-toolbox.com
9
  License:
readme.txt CHANGED
@@ -7,8 +7,8 @@ License: GPLv2 or later
7
  License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
8
  Requires at least: 4.9 or higher
9
  Requires PHP: 7 or higher
10
- Tested up to: 5.5
11
- Stable tag: 11.2
12
 
13
  Add CSS, JavaScript, and even HTML and PHP to our unique code blocks, then choose exactly where you want the code to run. Supports Gutenberg.
14
 
@@ -138,6 +138,10 @@ Due to the overwhelming amount of emails we get for users requesting support for
138
  21. See Code Block information at a glance (CJT PLUS ONLY)
139
 
140
  == Changelog ==
 
 
 
 
141
  = 11.2 =
142
  * Added: New links for CJT PLUS license validation
143
 
7
  License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
8
  Requires at least: 4.9 or higher
9
  Requires PHP: 7 or higher
10
+ Tested up to: 5.7
11
+ Stable tag: 11.3
12
 
13
  Add CSS, JavaScript, and even HTML and PHP to our unique code blocks, then choose exactly where you want the code to run. Supports Gutenberg.
14
 
138
  21. See Code Block information at a glance (CJT PLUS ONLY)
139
 
140
  == Changelog ==
141
+ = 11.3 =
142
+ * Fixed: URL Assignment tab is now working as expected.
143
+ * Fixed: Inverter functionality was not being displayed in the frontend.
144
+
145
  = 11.2 =
146
  * Added: New links for CJT PLUS license validation
147
 
views/blocks/block/public/js/jquery.block/jquery.block.js CHANGED
@@ -978,7 +978,7 @@
978
 
979
  // Move State and Location buttons to be before block name
980
  this.flaggedActionsToolbox = model.box.find('.cjt-toolbox.flagged-actions-toolbox')
981
- .insertBefore(model.box.find('.postbox-header .hndle .block-name'))
982
  .CJTToolBox({
983
 
984
  context : this,
@@ -990,7 +990,7 @@
990
 
991
  // Move State and Location buttons to be before block name
992
  this.editBlockActionsToolbox = model.box.find('.cjt-toolbox.edit-block-toolbox')
993
- .insertAfter(model.box.find('.postbox-header .hndle .block-name'))
994
  .CJTToolBox({
995
 
996
  context : this,
978
 
979
  // Move State and Location buttons to be before block name
980
  this.flaggedActionsToolbox = model.box.find('.cjt-toolbox.flagged-actions-toolbox')
981
+ .insertBefore(model.box.find('.hndle .block-name'))
982
  .CJTToolBox({
983
 
984
  context : this,
990
 
991
  // Move State and Location buttons to be before block name
992
  this.editBlockActionsToolbox = model.box.find('.cjt-toolbox.edit-block-toolbox')
993
+ .insertAfter(model.box.find('.hndle .block-name'))
994
  .CJTToolBox({
995
 
996
  context : this,
views/blocks/cjt-block/public/css/block.css CHANGED
@@ -126,7 +126,7 @@ a.acc-header.ui-accordion-header-active {color: #652200 !important;}
126
  * Advanced Tab jQuery Accordion
127
  */
128
  .advanced-accordion {border: 1px solid #ccc; height: 317px;}
129
- .advanced-accordion .ui-accordion-content {height: 250px; padding: 0px !important; background: none !important; border: none !important}}
130
  .advanced-accordion .ui-accordion-header-active {color: #005DA4 !important;}
131
  .advanced-accordion textarea {
132
  height: 242px;
126
  * Advanced Tab jQuery Accordion
127
  */
128
  .advanced-accordion {border: 1px solid #ccc; height: 317px;}
129
+ .advanced-accordion .ui-accordion-content {height: 250px; padding: 0px !important; background: none !important; border: none !important;}
130
  .advanced-accordion .ui-accordion-header-active {color: #005DA4 !important;}
131
  .advanced-accordion textarea {
132
  height: 242px;
views/blocks/cjt-block/public/js/jquery.assignpanel/jquery.assignpanel.js CHANGED
@@ -1,23 +1,23 @@
1
  /**
2
- *
3
  */
4
 
5
  /**
6
- *
7
  */
8
  (function($) {
9
-
10
  /**
11
  * Hold the items per page to load
12
  * at a time.
13
- *
14
  * The variable is set the first time
15
  * getIPerPage method is called.
16
- *
17
  * @
18
  */
19
  var iPerPage = null;
20
-
21
  /**
22
  * jQuery namespace.
23
  */
@@ -30,110 +30,110 @@
30
  if (assigmentPanelElement.CJTBlockAssignmentPanel === undefined) {
31
  // Define assigment panel plugin.
32
  assigmentPanelElement.CJTBlockAssignmentPanel = new function() {
33
-
34
  /**
35
  * Assigment panel jQuery pLugin reference
36
- *
37
  */
38
  var apjp = this;
39
-
40
  /**
41
  * put your comment there...
42
- *
43
  * @type Array
44
  */
45
  this.objectsList = [ 'pages', 'posts', 'categories', 'pinPoint' ];
46
-
47
  // Allow Pluggable buttons
48
  $( assigmentPanelElement ).trigger( 'cjtblockassigninitobjectslist', [ this ] );
49
-
50
  /**
51
  * put your comment there...
52
- *
53
  * @type CJTBLockPlugin
54
  */
55
  this.block = options.block;
56
 
57
  /**
58
- *
59
  */
60
  this.buttons = ( function() {
61
-
62
  var buttons = {};
63
 
64
  $.each( apjp.objectsList,
65
-
66
- function( index, name )
67
  {
68
  buttons[ name ] = [];
69
  }
70
  );
71
-
72
  return buttons;
73
-
74
  } )();
75
-
76
  /**
77
- *
78
  */
79
  this.checkboxDisabled = (this.block.state == 'restore')
80
-
81
  /**
82
- *
83
  */
84
  this.loadAssignedOnlyMode = this.checkboxDisabled;
85
-
86
  /**
87
- *
88
  */
89
  this.jElement = $(assigmentPanelElement);
90
-
91
  /**
92
  * Hold reference for 'this' object to
93
  * be accessed by 'private' methods when called
94
  * from DOM element event handler.
95
- *
96
  */
97
  var assignPanel = this;
98
-
99
  /**
100
  * put your comment there...
101
- *
102
  * @type Object
103
  */
104
  var map = ( function() {
105
-
106
  var map = {};
107
 
108
  $.each( apjp.objectsList,
109
-
110
- function( index, name )
111
  {
112
  map[ name ] = { };
113
  }
114
  );
115
 
116
  return map;
117
-
118
  } )();;
119
-
120
  /**
121
  * put your comment there...
122
- *
123
  */
124
  var mdlBlock = this.block.block;
125
-
126
  /**
127
- *
128
  */
129
- var _onadvancedaccordionchanged = function(event, ui) {
130
  // Activate textarea under the current selected item content!
131
  ui.newContent.find('textarea').focus();
132
  };
133
 
134
  /**
135
  * put your comment there...
136
- *
137
  * @param event
138
  */
139
  var _ondetectlistscroll = function(event) {
@@ -159,11 +159,11 @@
159
 
160
  /**
161
  *
162
- *
163
  * @param event
164
  * @param ui
165
  */
166
- var _onobjectlistactivate = function(event, ui) {
167
  // Initialize.
168
  var item = ui.item;
169
  // Process only elements that list assignment panel objects.
@@ -176,7 +176,7 @@
176
  var params = list.data('params');
177
  // Load first page.
178
  list.get(0).getCJTBlockAPOP(true).success($.proxy(
179
- function(response) {
180
  // Mark item as activated after the page
181
  // is successfully loaded.
182
  item.data('objectListActivated', true);
@@ -196,7 +196,7 @@
196
 
197
  /**
198
  * put your comment there...
199
- *
200
  * @param event
201
  */
202
  var _onobjectstatechanged = function() {
@@ -217,22 +217,22 @@
217
  delete map[groupName][objectId];
218
  }
219
  else {
220
- map[groupName][objectId] = item;
221
  }
222
  }
223
-
224
  // Set Assignment Counter
225
  var assignmentCounterElement = options.block.infoBar.find('.block-assignment-count a');
226
  var assignmentCount = parseInt(assignmentCounterElement.text());
227
-
228
  assignmentCounterElement.text(assignmentCount + (item.value ? 1 : -1));
229
  };
230
-
231
  /**
232
  * put your comment there...
233
- *
234
  * @param event
235
- *
236
  * @returns {Boolean}
237
  */
238
  var _onselectchilds = function(event) {
@@ -241,34 +241,34 @@
241
  var checkbox = overlay.parent().find('.select-childs');
242
  var state = checkbox.prop('checked') ? '' : 'checked';
243
  var boolState = state == 'checked' ? true : false;
244
-
245
  // Work only if select-child checkbox is interactive!
246
  if (checkbox.attr('disabled') != 'disabled') {
247
-
248
  // Revert checkbox state.
249
  checkbox.prop('checked', state);
250
-
251
  /**
252
  * Clone state to parent checkbox.
253
  * Clone state to all child checkboxes
254
  */
255
  var checkboxes = $.merge( checkbox.parent().find('>label>input:checkbox').get(),
256
  checkbox.parent().find('.children input:checkbox').get());
257
-
258
  $(checkboxes).each(
259
-
260
  function() {
261
-
262
  let panelCheckbox = $(this);
263
-
264
  if (panelCheckbox.prop('checked') != boolState) {
265
-
266
  panelCheckbox.prop('checked', state).trigger('change');
267
  }
268
-
269
  }
270
  );
271
-
272
  }
273
  // For link to behave inactive.
274
  return false;
@@ -276,7 +276,7 @@
276
 
277
  /**
278
  * put your comment there...
279
- *
280
  * @param index
281
  * @param typeParams
282
  * @param initialize
@@ -285,7 +285,7 @@
285
  var getAPOP = function(index, typeParams, initialize, page) {
286
  // Initialize.
287
  var server = CJTBlocksPage.server;
288
- // Use modeBlockId instead of original block id to be used in case of
289
  // DISPLAY-REVISION mode or any other modes added in the future.
290
  var blockId = assignPanel.modeBlockId ? assignPanel.modeBlockId : assignPanel.block.block.get('id');
291
  var requestData = {
@@ -309,7 +309,7 @@
309
  // Cache only 'assigned' items.
310
  if (item.assigned === true) {
311
  map[typeParams.group][item.id] = {value : 1, sync : 1};
312
- }
313
  }, this)
314
  );
315
  }, this)
@@ -319,27 +319,27 @@
319
  };
320
 
321
  /**
322
- *
323
  */
324
  this.activateTab = function(type) {
325
  // Activate the AUX tab by default.
326
  assignPanel.jElement.find('li.type-' + type + '>a').trigger('click');
327
  assignPanel.jElement.tabs({collapsible : false});
328
  };
329
-
330
  /**
331
  * Get items count to load per
332
  * page.
333
- *
334
  * The items to load per page is calculated by
335
  * determing the maximum height that the objects-list element
336
  * can reach divided by the single item height.
337
- *
338
  * The maximum objects-list height is determined by
339
  * the available screen-height - the other elements
340
  * (TAB Nav, margins, padding, etc...).
341
  * above and bottom the objects-list.
342
- *
343
  */
344
  this.getIPerPage = function() {
345
  // Calculate iPerPage only if not calculated.
@@ -362,7 +362,7 @@
362
  };
363
 
364
  /**
365
- *
366
  */
367
  this.list_displayItems = function(list, data) {
368
  // Initialize.
@@ -404,7 +404,7 @@
404
  .appendTo(itemLi);
405
  // Checkbox title and link
406
  if (item.link) {
407
- $('<a href="' + item.link + '" target="_blank">' + item.title + '</a>').appendTo(title);
408
  }
409
  else {
410
  title.text(item.title)
@@ -426,10 +426,10 @@
426
  }, this)
427
  );
428
  }
429
-
430
  /**
431
  * APOP -- Assigment Pabel Objects page
432
- *
433
  */
434
  this.list_GetAPOP = function(initialize, page) {
435
  // Initialize.
@@ -485,17 +485,17 @@
485
  );
486
  return promise;
487
  };
488
-
489
  /**
490
- *
491
  */
492
  this.getMap = function() {
493
- return map;
494
  }
495
-
496
  /**
497
  * put your comment there...
498
- *
499
  */
500
  this.getTypeObject = function() {
501
  // Default type object.
@@ -519,10 +519,10 @@
519
  // Returs.
520
  return type;
521
  }
522
-
523
  /**
524
  * put your comment there...
525
- *
526
  */
527
  var onBlockSaved = function() {
528
  // Syncronize the map.
@@ -546,7 +546,7 @@
546
  };
547
 
548
  /**
549
- *
550
  */
551
  this.setMapGroup = function(name, mapList) {
552
  map[name] = mapList;
@@ -555,7 +555,7 @@
555
  /// CONSTRUCTTOR ///
556
  var blockId = mdlBlock.get('id');
557
  var typeObjectDefaults = this.getTypeObject();
558
-
559
  // Initialize all 'objects-list'
560
  this.jElement.find('.objects-list-button').each(
561
  $.proxy(function(index, objectListEle) {
@@ -612,10 +612,10 @@
612
  this.buttons[listParams['group']].push(objectListEle);
613
  }, this)
614
  );
615
-
616
  // Initialize assign panel attachec components
617
  $( assigmentPanelElement ).trigger( 'cjtassignpanelattachedcomponents', [ assignPanel ] );
618
-
619
  // Initialize Assigment Panel tab.
620
  this.jElement.tabs(
621
  {
@@ -626,16 +626,16 @@
626
  // Trigger real event handler.
627
  _onobjectlistactivate(event, ui);
628
  }
629
-
630
  } );
631
-
632
  this.jElement.tabs( 'option', 'active', this.jElement.find( '>.ui-tabs-panel' ).length - 1 );
633
-
634
  // Create custom posts toggle widget.
635
  var cpContainer = this.jElement.find('#custom-posts-container-' + blockId);
636
  // Toggle custom post list when the header link is clicked.
637
  cpContainer.find('.objects-list-button>a.custom-post-item-header').click($.proxy(
638
- function(event) {
639
  // Initialize.
640
  var button = $(event.target).parent();
641
  var list = button.next();
@@ -653,14 +653,16 @@
653
  return false;
654
  }, this)
655
  );
656
-
657
  // Initialize Advanced tab accordion.
658
  mdlBlock.box.find('#advanced-accordion-' + blockId).accordion({
659
- change : _onadvancedaccordionchanged,
 
 
660
  header: '.acc-header'
661
  }
662
  );
663
-
664
  // Syncronize assign panel map when block saved.
665
  options.block.onBlockSaved = onBlockSaved;
666
  }
1
  /**
2
+ *
3
  */
4
 
5
  /**
6
+ *
7
  */
8
  (function($) {
9
+
10
  /**
11
  * Hold the items per page to load
12
  * at a time.
13
+ *
14
  * The variable is set the first time
15
  * getIPerPage method is called.
16
+ *
17
  * @
18
  */
19
  var iPerPage = null;
20
+
21
  /**
22
  * jQuery namespace.
23
  */
30
  if (assigmentPanelElement.CJTBlockAssignmentPanel === undefined) {
31
  // Define assigment panel plugin.
32
  assigmentPanelElement.CJTBlockAssignmentPanel = new function() {
33
+
34
  /**
35
  * Assigment panel jQuery pLugin reference
36
+ *
37
  */
38
  var apjp = this;
39
+
40
  /**
41
  * put your comment there...
42
+ *
43
  * @type Array
44
  */
45
  this.objectsList = [ 'pages', 'posts', 'categories', 'pinPoint' ];
46
+
47
  // Allow Pluggable buttons
48
  $( assigmentPanelElement ).trigger( 'cjtblockassigninitobjectslist', [ this ] );
49
+
50
  /**
51
  * put your comment there...
52
+ *
53
  * @type CJTBLockPlugin
54
  */
55
  this.block = options.block;
56
 
57
  /**
58
+ *
59
  */
60
  this.buttons = ( function() {
61
+
62
  var buttons = {};
63
 
64
  $.each( apjp.objectsList,
65
+
66
+ function( index, name )
67
  {
68
  buttons[ name ] = [];
69
  }
70
  );
71
+
72
  return buttons;
73
+
74
  } )();
75
+
76
  /**
77
+ *
78
  */
79
  this.checkboxDisabled = (this.block.state == 'restore')
80
+
81
  /**
82
+ *
83
  */
84
  this.loadAssignedOnlyMode = this.checkboxDisabled;
85
+
86
  /**
87
+ *
88
  */
89
  this.jElement = $(assigmentPanelElement);
90
+
91
  /**
92
  * Hold reference for 'this' object to
93
  * be accessed by 'private' methods when called
94
  * from DOM element event handler.
95
+ *
96
  */
97
  var assignPanel = this;
98
+
99
  /**
100
  * put your comment there...
101
+ *
102
  * @type Object
103
  */
104
  var map = ( function() {
105
+
106
  var map = {};
107
 
108
  $.each( apjp.objectsList,
109
+
110
+ function( index, name )
111
  {
112
  map[ name ] = { };
113
  }
114
  );
115
 
116
  return map;
117
+
118
  } )();;
119
+
120
  /**
121
  * put your comment there...
122
+ *
123
  */
124
  var mdlBlock = this.block.block;
125
+
126
  /**
127
+ *
128
  */
129
+ var _onadvancedaccordionchanged = function (event, ui) {
130
  // Activate textarea under the current selected item content!
131
  ui.newContent.find('textarea').focus();
132
  };
133
 
134
  /**
135
  * put your comment there...
136
+ *
137
  * @param event
138
  */
139
  var _ondetectlistscroll = function(event) {
159
 
160
  /**
161
  *
162
+ *
163
  * @param event
164
  * @param ui
165
  */
166
+ var _onobjectlistactivate = function (event, ui) {
167
  // Initialize.
168
  var item = ui.item;
169
  // Process only elements that list assignment panel objects.
176
  var params = list.data('params');
177
  // Load first page.
178
  list.get(0).getCJTBlockAPOP(true).success($.proxy(
179
+ function (response) {
180
  // Mark item as activated after the page
181
  // is successfully loaded.
182
  item.data('objectListActivated', true);
196
 
197
  /**
198
  * put your comment there...
199
+ *
200
  * @param event
201
  */
202
  var _onobjectstatechanged = function() {
217
  delete map[groupName][objectId];
218
  }
219
  else {
220
+ map[groupName][objectId] = item;
221
  }
222
  }
223
+
224
  // Set Assignment Counter
225
  var assignmentCounterElement = options.block.infoBar.find('.block-assignment-count a');
226
  var assignmentCount = parseInt(assignmentCounterElement.text());
227
+
228
  assignmentCounterElement.text(assignmentCount + (item.value ? 1 : -1));
229
  };
230
+
231
  /**
232
  * put your comment there...
233
+ *
234
  * @param event
235
+ *
236
  * @returns {Boolean}
237
  */
238
  var _onselectchilds = function(event) {
241
  var checkbox = overlay.parent().find('.select-childs');
242
  var state = checkbox.prop('checked') ? '' : 'checked';
243
  var boolState = state == 'checked' ? true : false;
244
+
245
  // Work only if select-child checkbox is interactive!
246
  if (checkbox.attr('disabled') != 'disabled') {
247
+
248
  // Revert checkbox state.
249
  checkbox.prop('checked', state);
250
+
251
  /**
252
  * Clone state to parent checkbox.
253
  * Clone state to all child checkboxes
254
  */
255
  var checkboxes = $.merge( checkbox.parent().find('>label>input:checkbox').get(),
256
  checkbox.parent().find('.children input:checkbox').get());
257
+
258
  $(checkboxes).each(
259
+
260
  function() {
261
+
262
  let panelCheckbox = $(this);
263
+
264
  if (panelCheckbox.prop('checked') != boolState) {
265
+
266
  panelCheckbox.prop('checked', state).trigger('change');
267
  }
268
+
269
  }
270
  );
271
+
272
  }
273
  // For link to behave inactive.
274
  return false;
276
 
277
  /**
278
  * put your comment there...
279
+ *
280
  * @param index
281
  * @param typeParams
282
  * @param initialize
285
  var getAPOP = function(index, typeParams, initialize, page) {
286
  // Initialize.
287
  var server = CJTBlocksPage.server;
288
+ // Use modeBlockId instead of original block id to be used in case of
289
  // DISPLAY-REVISION mode or any other modes added in the future.
290
  var blockId = assignPanel.modeBlockId ? assignPanel.modeBlockId : assignPanel.block.block.get('id');
291
  var requestData = {
309
  // Cache only 'assigned' items.
310
  if (item.assigned === true) {
311
  map[typeParams.group][item.id] = {value : 1, sync : 1};
312
+ }
313
  }, this)
314
  );
315
  }, this)
319
  };
320
 
321
  /**
322
+ *
323
  */
324
  this.activateTab = function(type) {
325
  // Activate the AUX tab by default.
326
  assignPanel.jElement.find('li.type-' + type + '>a').trigger('click');
327
  assignPanel.jElement.tabs({collapsible : false});
328
  };
329
+
330
  /**
331
  * Get items count to load per
332
  * page.
333
+ *
334
  * The items to load per page is calculated by
335
  * determing the maximum height that the objects-list element
336
  * can reach divided by the single item height.
337
+ *
338
  * The maximum objects-list height is determined by
339
  * the available screen-height - the other elements
340
  * (TAB Nav, margins, padding, etc...).
341
  * above and bottom the objects-list.
342
+ *
343
  */
344
  this.getIPerPage = function() {
345
  // Calculate iPerPage only if not calculated.
362
  };
363
 
364
  /**
365
+ *
366
  */
367
  this.list_displayItems = function(list, data) {
368
  // Initialize.
404
  .appendTo(itemLi);
405
  // Checkbox title and link
406
  if (item.link) {
407
+ $('<a href="' + item.link + '" target="_blank">' + item.title + '</a>').appendTo(title);
408
  }
409
  else {
410
  title.text(item.title)
426
  }, this)
427
  );
428
  }
429
+
430
  /**
431
  * APOP -- Assigment Pabel Objects page
432
+ *
433
  */
434
  this.list_GetAPOP = function(initialize, page) {
435
  // Initialize.
485
  );
486
  return promise;
487
  };
488
+
489
  /**
490
+ *
491
  */
492
  this.getMap = function() {
493
+ return map;
494
  }
495
+
496
  /**
497
  * put your comment there...
498
+ *
499
  */
500
  this.getTypeObject = function() {
501
  // Default type object.
519
  // Returs.
520
  return type;
521
  }
522
+
523
  /**
524
  * put your comment there...
525
+ *
526
  */
527
  var onBlockSaved = function() {
528
  // Syncronize the map.
546
  };
547
 
548
  /**
549
+ *
550
  */
551
  this.setMapGroup = function(name, mapList) {
552
  map[name] = mapList;
555
  /// CONSTRUCTTOR ///
556
  var blockId = mdlBlock.get('id');
557
  var typeObjectDefaults = this.getTypeObject();
558
+
559
  // Initialize all 'objects-list'
560
  this.jElement.find('.objects-list-button').each(
561
  $.proxy(function(index, objectListEle) {
612
  this.buttons[listParams['group']].push(objectListEle);
613
  }, this)
614
  );
615
+
616
  // Initialize assign panel attachec components
617
  $( assigmentPanelElement ).trigger( 'cjtassignpanelattachedcomponents', [ assignPanel ] );
618
+
619
  // Initialize Assigment Panel tab.
620
  this.jElement.tabs(
621
  {
626
  // Trigger real event handler.
627
  _onobjectlistactivate(event, ui);
628
  }
629
+
630
  } );
631
+
632
  this.jElement.tabs( 'option', 'active', this.jElement.find( '>.ui-tabs-panel' ).length - 1 );
633
+
634
  // Create custom posts toggle widget.
635
  var cpContainer = this.jElement.find('#custom-posts-container-' + blockId);
636
  // Toggle custom post list when the header link is clicked.
637
  cpContainer.find('.objects-list-button>a.custom-post-item-header').click($.proxy(
638
+ function (event) {
639
  // Initialize.
640
  var button = $(event.target).parent();
641
  var list = button.next();
653
  return false;
654
  }, this)
655
  );
656
+
657
  // Initialize Advanced tab accordion.
658
  mdlBlock.box.find('#advanced-accordion-' + blockId).accordion({
659
+ change: _onadvancedaccordionchanged,
660
+ collapsible: true,
661
+ active: false,
662
  header: '.acc-header'
663
  }
664
  );
665
+
666
  // Syncronize assign panel map when block saved.
667
  options.block.onBlockSaved = onBlockSaved;
668
  }
views/blocks/manager/tmpl/blocks.html.tmpl CHANGED
@@ -36,10 +36,8 @@ $isCJTPLUSInstalled = file_exists(WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . 'css-jav
36
  if ( ! class_exists( 'CJTPlus' ) ) : ?>
37
 
38
  <div id="cjt-banner-bar-center">
39
- <p style="font-size:16px;font-weight:600"><strong>CJT PLUS v11:</strong> - Launch special - save 50%</p>
40
- <p>CJT PLUS version 11 now has another 8 new Hooks for even more flexibility.<br>
41
- Many icon buttons are now textual buttons, with counters to help you keep tab of the stats.<br>
42
- Vertical editor toolbar has also had a revamp. <a href="https://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/welcome-to-cjt-plus-version-11/" target="_blank">Click to see a quick video of CJT PLUS v11</a>.</p>
43
  </div>
44
 
45
  <?php endif; ?>
36
  if ( ! class_exists( 'CJTPlus' ) ) : ?>
37
 
38
  <div id="cjt-banner-bar-center">
39
+ <p style="font-size:16px;font-weight:600"><strong>IMPORTANT NOTICE</strong></p>
40
+ <p>CJT Free will soon have features removed and added to CJT PLUS.<br>The Adv tab (URLs and Expressions) and some other features will be removed.<br>CJT PLUS relies on funding for continued development. <a href="https://<?php echo cssJSToolbox::CJT_WEB_SITE_DOMAIN ?>/pricing" target="_blank">Purchase CJT PLUS</a></p>
 
 
41
  </div>
42
 
43
  <?php endif; ?>
views/blocks/metabox/public/js/jquery.block/jquery.block.js CHANGED
@@ -1,68 +1,68 @@
1
  /**
2
- *
3
  */
4
 
5
  /**
6
- *
7
  */
8
  (function($) {
9
-
10
  /**
11
  * Override CJTBlockPlugin class.
12
- *
13
  * @param node
14
  * @param args
15
  */
16
  CJTBlockPlugin = function(node, args) {
17
-
18
  // Code has been removed to CJTe Editor Toolbox extension
19
  // .
20
  // .
21
  // .
22
-
23
-
24
  this._onclosepanelwindow = function() {
25
-
26
  var codeArea = this.block.box.find('.cjcontainer');
27
  var panelArea = this.block.box.find('.cjpageblock');
28
-
29
  codeArea.css('margin-right', '0px');
30
  panelArea.css('width', '0px').hide();
31
-
32
  return false;
33
  };
34
-
35
-
36
  /**
37
- *
38
  */
39
  this._onPaneledItems = function(event) {
40
-
41
  var link = $(event.target);
42
  var windowName = link.prop('href').match(/#(.+)/)[1];
43
  var panelWindow = this.block.box.find('.cjt-panel-item.cjt-panel-window-' + windowName);
44
  var codeArea = this.block.box.find('.cjcontainer');
45
  var panelArea = this.block.box.find('.cjpageblock');
46
  var closeButton = panelArea.find('.close-panel-window');
47
-
48
  closeButton.show();
49
-
50
  // Hide all panel windows
51
  panelArea.find('.cjt-panel-item').hide();
52
-
53
  panelWindow.show();
54
-
55
  codeArea.css('margin-right', '310px');
56
  panelArea.css('width', '300px').show();
57
-
58
  };
59
-
60
  // Initialize base class.
61
  this.initCJTPluginBase(node, args);
62
-
63
  } // End class.
64
-
65
  // Extend CJTBlockPlugin class.
66
  CJTBlockPlugin.prototype = new CJTBlockPluginBase();
67
-
68
  })(jQuery);
1
  /**
2
+ *
3
  */
4
 
5
  /**
6
+ *
7
  */
8
  (function($) {
9
+
10
  /**
11
  * Override CJTBlockPlugin class.
12
+ *
13
  * @param node
14
  * @param args
15
  */
16
  CJTBlockPlugin = function(node, args) {
17
+
18
  // Code has been removed to CJTe Editor Toolbox extension
19
  // .
20
  // .
21
  // .
22
+
23
+
24
  this._onclosepanelwindow = function() {
25
+
26
  var codeArea = this.block.box.find('.cjcontainer');
27
  var panelArea = this.block.box.find('.cjpageblock');
28
+
29
  codeArea.css('margin-right', '0px');
30
  panelArea.css('width', '0px').hide();
31
+
32
  return false;
33
  };
34
+
35
+
36
  /**
37
+ *
38
  */
39
  this._onPaneledItems = function(event) {
40
+
41
  var link = $(event.target);
42
  var windowName = link.prop('href').match(/#(.+)/)[1];
43
  var panelWindow = this.block.box.find('.cjt-panel-item.cjt-panel-window-' + windowName);
44
  var codeArea = this.block.box.find('.cjcontainer');
45
  var panelArea = this.block.box.find('.cjpageblock');
46
  var closeButton = panelArea.find('.close-panel-window');
47
+
48
  closeButton.show();
49
+
50
  // Hide all panel windows
51
  panelArea.find('.cjt-panel-item').hide();
52
+
53
  panelWindow.show();
54
+
55
  codeArea.css('margin-right', '310px');
56
  panelArea.css('width', '300px').show();
57
+
58
  };
59
+
60
  // Initialize base class.
61
  this.initCJTPluginBase(node, args);
62
+
63
  } // End class.
64
+
65
  // Extend CJTBlockPlugin class.
66
  CJTBlockPlugin.prototype = new CJTBlockPluginBase();
67
+
68
  })(jQuery);