PluginProbe
Boxzilla – WordPress Popup Builder / 3.0
Boxzilla – WordPress Popup Builder v3.0
3.4.11 3.4.10 3.4.9 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 trunk 3.0 3.0.1 3.0.2 3.0.3 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 All 72 releases
boxzilla / assets / browserify / admin / _admin.js

_admin.js in Boxzilla – WordPress Popup Builder 3.0, at assets/browserify/admin/_admin.js

118 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 'use strict';
2
3 var $ = window.jQuery;
4 var Option = require('./_option.js');
5 var optionControls = document.getElementById('boxzilla-box-options-controls');
6 var $optionControls = $(optionControls);
7
8 // sanity check, are we on the correct page?
9 if( $optionControls.length === 0 ) {
10 return;
11 }
12
13 var EventEmitter = require('wolfy87-eventemitter');
14 var events = new EventEmitter();
15 var Designer = require('./_designer.js')($, Option, events);
16 var rowTemplate = wp.template('rule-row-template');
17 var i18n = boxzilla_i18n;
18
19 // events
20 $optionControls.on('click', ".boxzilla-add-rule", addRuleFields);
21 $optionControls.on('click', ".boxzilla-remove-rule", removeRule);
22 $optionControls.on('change', ".boxzilla-rule-condition", setContextualHelpers);
23 $optionControls.find('.boxzilla-auto-show-trigger').on('change', toggleTriggerOptions );
24
25 $(window).load(function() {
26 if( typeof(window.tinyMCE) === "undefined" ) {
27 document.getElementById('notice-notinymce').style.display = '';
28 }
29 });
30
31 // call contextual helper method for each row
32 $('.boxzilla-rule-row').each(setContextualHelpers);
33
34 function toggleTriggerOptions() {
35 $optionControls.find('.boxzilla-trigger-options').toggle( this.value !== '' );
36 }
37
38 function removeRule() {
39 $(this).parents('tr').remove();
40 }
41
42 function setContextualHelpers() {
43
44 var context = ( this.tagName.toLowerCase() === "tr" ) ? this : $(this).parents('tr').get(0);
45 var condition = context.querySelector('.boxzilla-rule-condition').value;
46 var valueInput = context.querySelector('.boxzilla-rule-value');
47 var qualifierInput = context.querySelector('.boxzilla-rule-qualifier');
48 var betterInput = valueInput.cloneNode(true);
49 var $betterInput = $(betterInput);
50
51 // remove previously added helpers
52 $(context.querySelectorAll('.boxzilla-helper')).remove();
53
54 // prepare better input
55 betterInput.removeAttribute('name');
56 betterInput.className = betterInput.className + ' boxzilla-helper';
57 valueInput.parentNode.insertBefore(betterInput, valueInput.nextSibling);
58 $betterInput.change(function() { valueInput.value = this.value; });
59
60 betterInput.style.display = '';
61 valueInput.style.display = 'none';
62 qualifierInput.style.display = '';
63
64 // change placeholder for textual help
65 switch(condition) {
66 default:
67 betterInput.placeholder = i18n.enterCommaSeparatedValues;
68 break;
69
70 case '':
71 case 'everywhere':
72 qualifierInput.value = '';
73 valueInput.value = '';
74 betterInput.style.display = 'none';
75 qualifierInput.style.display = 'none';
76 break;
77
78 case 'is_single':
79 case 'is_post':
80 betterInput.placeholder = i18n.enterCommaSeparatedPosts;
81 $betterInput.suggest(ajaxurl + "?action=boxzilla_autocomplete&type=post", {multiple:true, multipleSep: ","});
82 break;
83
84 case 'is_page':
85 betterInput.placeholder = i18n.enterCommaSeparatedPages;
86 $betterInput.suggest(ajaxurl + "?action=boxzilla_autocomplete&type=page", {multiple:true, multipleSep: ","});
87 break;
88
89 case 'is_post_type':
90 betterInput.placeholder = i18n.enterCommaSeparatedPostTypes;
91 $betterInput.suggest(ajaxurl + "?action=boxzilla_autocomplete&type=post_type", {multiple:true, multipleSep: ","});
92 break;
93
94 case 'is_url':
95 betterInput.placeholder = i18n.enterCommaSeparatedRelativeUrls;
96 break;
97
98 case 'is_post_in_category':
99 $betterInput.suggest(ajaxurl + "?action=boxzilla_autocomplete&type=category", {multiple:true, multipleSep: ","});
100 break;
101 }
102 }
103
104 function addRuleFields() {
105 var data = {
106 'key': optionControls.querySelectorAll('.boxzilla-rule-row').length
107 };
108 var html = rowTemplate(data);
109 $(document.getElementById('boxzilla-box-rules')).after(html);
110 return false;
111 }
112
113 module.exports = {
114 'Designer': Designer,
115 'Option': Option,
116 'events': events
117 };
118