Minimal Coming Soon & Maintenance Mode - Version 1.50

Version Description

  • 2018-01-05
  • added admin bar status/menu
  • added site description option
  • added show some love option
  • added 2 pointers
  • a lot of small improvements
  • new logo
  • work started on PRO version
Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 Minimal Coming Soon & Maintenance Mode
Version 1.50
Comparing to
See all releases

Code changes from version 1.45 to 1.50

framework/admin/css/admin.css CHANGED
@@ -46,8 +46,11 @@
46
  }
47
  .signals-logo {
48
  float: left;
49
- border-radius: 100%;
50
  margin-right: 10px;
 
 
 
 
51
  }
52
  .signals-body {
53
  padding: 30px 20px 30px 20px;
@@ -200,6 +203,28 @@
200
  #arrange-items li .dashicons {
201
  padding-right: 10px;
202
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  .sortable-ghost {
204
  border: 1px dashed #333;
205
  }
@@ -324,7 +349,7 @@ textarea.signals-form-control {
324
  }
325
  .signals-form-group {
326
  margin-bottom: 21px;
327
- padding-bottom: 14px;
328
  border-bottom: 1px solid #f1f1f1;
329
  }
330
  .signals-form-group:last-child {
@@ -428,18 +453,26 @@ textarea.signals-form-input-lg {
428
 
429
  /* Alerts & Buttons */
430
 
 
 
 
 
431
  .signals-alert {
432
  color: #ce8f22;
433
  background-color: #fffcee;
434
  background-image: none;
435
  box-shadow: none;
436
  text-shadow: none;
437
- padding: 9px 19px 9px 15px;
438
  border-radius: 3px 3px 3px 3px;
439
  border: 1px solid #F0DBB4;
440
- margin-bottom: 20px;
441
  -webkit-transition: all 0.2s linear 0s;
442
  transition: all 0.2s linear 0s;
 
 
 
 
 
 
443
  }
444
  .signals-alert-success {
445
  color: #438a85;
@@ -523,7 +556,7 @@ textarea.signals-form-input-lg {
523
  display: block;
524
  font-size: 12px;
525
  color: #898989;
526
- padding-bottom: 6px;
527
  }
528
  .signals-upload-element span.signals-preview-area img {
529
  display: inline-block;
46
  }
47
  .signals-logo {
48
  float: left;
 
49
  margin-right: 10px;
50
+ max-width: 48px;
51
+ height: auto;
52
+ margin-top: 2px;
53
+ display: inline-block;
54
  }
55
  .signals-body {
56
  padding: 30px 20px 30px 20px;
203
  #arrange-items li .dashicons {
204
  padding-right: 10px;
205
  }
206
+
207
+ #arrange-items li .actions-right {
208
+ text-align: right;
209
+ display: inline-block;
210
+ width: 50%;
211
+ }
212
+
213
+ #arrange-items li .actions-right .dashicons {
214
+ padding: 0 0 0 10px;
215
+ }
216
+
217
+ #arrange-items li .actions-right a {
218
+ color: #666666;
219
+ }
220
+
221
+ #arrange-items li .actions-left {
222
+ text-align: left;
223
+ display: inline-block;
224
+ width: 50%;
225
+ }
226
+
227
+
228
  .sortable-ghost {
229
  border: 1px dashed #333;
230
  }
349
  }
350
  .signals-form-group {
351
  margin-bottom: 21px;
352
+ padding-bottom: 10px;
353
  border-bottom: 1px solid #f1f1f1;
354
  }
355
  .signals-form-group:last-child {
453
 
454
  /* Alerts & Buttons */
455
 
456
+ .signals-alert .notice-dismiss {
457
+ top: 6px;
458
+ }
459
+
460
  .signals-alert {
461
  color: #ce8f22;
462
  background-color: #fffcee;
463
  background-image: none;
464
  box-shadow: none;
465
  text-shadow: none;
 
466
  border-radius: 3px 3px 3px 3px;
467
  border: 1px solid #F0DBB4;
 
468
  -webkit-transition: all 0.2s linear 0s;
469
  transition: all 0.2s linear 0s;
470
+ display: block;
471
+ max-width: 1360px;
472
+ box-sizing: border-box;
473
+ padding: 15px;
474
+ margin: 0px 0 20px 0;
475
+ position: relative;
476
  }
477
  .signals-alert-success {
478
  color: #438a85;
556
  display: block;
557
  font-size: 12px;
558
  color: #898989;
559
+ margin: 10px;
560
  }
561
  .signals-upload-element span.signals-preview-area img {
562
  display: inline-block;
framework/admin/img/facebook.png DELETED
Binary file
framework/admin/img/lrg-icon.png DELETED
Binary file
framework/admin/img/mm-icon.png ADDED
Binary file
framework/admin/img/twitter.png DELETED
Binary file
framework/admin/init.php CHANGED
@@ -8,30 +8,14 @@
8
  * @package Signals_Maintenance_Mode
9
  */
10
 
11
- function csmm_meta_links( $links, $file ) {
12
-
13
- if ( strpos( $file, 'minimal-coming-soon-maintenance-mode.php' ) !== false ) {
14
- $new_links = array(
15
- '<a href="https://wordpress.org/support/plugin/minimal-coming-soon-maintenance-mode" target="_blank">' . __( 'Support', 'signals' ) . '</a>'
16
- );
17
-
18
- $links = array_merge( $links, $new_links );
19
- }
20
-
21
- return $links;
22
-
23
- }
24
- add_filter( 'plugin_row_meta', 'csmm_meta_links', 10, 2 ); // Add plugin meta links
25
-
26
-
27
 
28
  // Menu for the support and about panel
29
  function csmm_add_menu() {
30
 
31
- if( is_admin() && current_user_can( 'manage_options' ) ) {
32
  // Adding to the plugin panel link to the settings menu
33
  $signals_csmm_menu = add_options_page (
34
- __( 'Coming Soon & Maintenance Mode', 'signals' ),
35
  __( 'Maintenance Mode', 'signals' ),
36
  'manage_options',
37
  'maintenance_mode_options',
@@ -46,7 +30,6 @@ function csmm_add_menu() {
46
  add_action( 'admin_menu', 'csmm_add_menu' );
47
 
48
 
49
-
50
  // Registering JS and CSS files over here
51
  function csmm_admin_scripts() {
52
 
@@ -55,7 +38,8 @@ function csmm_admin_scripts() {
55
  wp_register_script( 'csmm-webfonts', '//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js', false );
56
  wp_register_script( 'csmm-admin-editor', SIGNALS_CSMM_URL . '/framework/admin/js/editor/ace.js', false, csmm_get_plugin_version(), true );
57
  wp_register_script( 'csmm-admin-color', SIGNALS_CSMM_URL . '/framework/admin/js/colorpicker/jscolor.js', false, csmm_get_plugin_version(), true );
58
- wp_register_script( 'csmm-admin-base', SIGNALS_CSMM_URL . '/framework/admin/js/admin.js', 'jquery', csmm_get_plugin_version(), true );
 
59
 
60
  // Calling the files
61
  wp_enqueue_style( 'csmm-admin-base' );
@@ -63,6 +47,7 @@ function csmm_admin_scripts() {
63
  wp_enqueue_script( 'csmm-webfonts' );
64
  wp_enqueue_script( 'csmm-admin-editor' );
65
  wp_enqueue_script( 'csmm-admin-color' );
 
66
  wp_enqueue_script( 'csmm-admin-base' );
67
 
68
  // For the upload option using media uploader
@@ -75,6 +60,89 @@ function csmm_load_scripts() {
75
  add_action( 'admin_enqueue_scripts', 'csmm_admin_scripts' );
76
  }
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  function csmm_plugin_admin_init() {
79
  if (!is_admin()) {
80
  return;
@@ -87,8 +155,14 @@ function csmm_plugin_admin_init() {
87
  $meta['first_install'] = current_time('timestamp');
88
  update_option('signals_csmm_meta', $meta);
89
  }
 
 
 
 
 
90
  } // csmm_plugin_admin_init
 
91
  add_action( 'init', 'csmm_plugin_admin_init' );
92
 
93
  // Including file for the management panel
94
- require SIGNALS_CSMM_PATH . 'framework/admin/settings.php';
8
  * @package Signals_Maintenance_Mode
9
  */
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  // Menu for the support and about panel
13
  function csmm_add_menu() {
14
 
15
+ if(current_user_can('manage_options')) {
16
  // Adding to the plugin panel link to the settings menu
17
  $signals_csmm_menu = add_options_page (
18
+ __( 'Minimal Coming Soon & Maintenance Mode', 'signals' ),
19
  __( 'Maintenance Mode', 'signals' ),
20
  'manage_options',
21
  'maintenance_mode_options',
30
  add_action( 'admin_menu', 'csmm_add_menu' );
31
 
32
 
 
33
  // Registering JS and CSS files over here
34
  function csmm_admin_scripts() {
35
 
38
  wp_register_script( 'csmm-webfonts', '//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js', false );
39
  wp_register_script( 'csmm-admin-editor', SIGNALS_CSMM_URL . '/framework/admin/js/editor/ace.js', false, csmm_get_plugin_version(), true );
40
  wp_register_script( 'csmm-admin-color', SIGNALS_CSMM_URL . '/framework/admin/js/colorpicker/jscolor.js', false, csmm_get_plugin_version(), true );
41
+ wp_register_script('csmm-admin-plugins', SIGNALS_CSMM_URL . '/framework/admin/js/plugins.js', 'jquery', csmm_get_plugin_version(), true);
42
+ wp_register_script('csmm-admin-base', SIGNALS_CSMM_URL . '/framework/admin/js/admin.js', 'jquery', csmm_get_plugin_version(), true);
43
 
44
  // Calling the files
45
  wp_enqueue_style( 'csmm-admin-base' );
47
  wp_enqueue_script( 'csmm-webfonts' );
48
  wp_enqueue_script( 'csmm-admin-editor' );
49
  wp_enqueue_script( 'csmm-admin-color' );
50
+ wp_enqueue_script( 'csmm-admin-plugins' );
51
  wp_enqueue_script( 'csmm-admin-base' );
52
 
53
  // For the upload option using media uploader
60
  add_action( 'admin_enqueue_scripts', 'csmm_admin_scripts' );
61
  }
62
 
63
+
64
+ // add settings link to plugins page
65
+ function csmm_plugin_action_links($links) {
66
+ $settings_link = '<a href="' . admin_url('options-general.php?page=maintenance_mode_options') . '" title="Minimal Coming Soon &amp; Maintenance Mode Settings">Settings</a>';
67
+
68
+ array_unshift($links, $settings_link);
69
+
70
+ return $links;
71
+ } // csmm_plugin_action_links
72
+
73
+
74
+ // add links to plugin's description in plugins table
75
+ function csmm_plugin_meta_links($links, $file) {
76
+ $support_link = '<a target="_blank" href="https://wordpress.org/support/plugin/minimal-coming-soon-maintenance-mode" title="Get help">Support</a>';
77
+
78
+ if ($file == CSMM_BASENAME) {
79
+ $links[] = $support_link;
80
+ }
81
+
82
+ return $links;
83
+ } // csmm_plugin_meta_links
84
+
85
+
86
+ // permanently dismiss a pointer
87
+ function csmm_dismiss_pointer_ajax() {
88
+ check_ajax_referer('csmm_dismiss_pointer');
89
+
90
+ $disabled_pointers = get_option(CSMM_POINTERS);
91
+ $pointer = trim($_POST['pointer']);
92
+
93
+ $disabled_pointers[$pointer] = true;
94
+ update_option(CSMM_POINTERS, $disabled_pointers);
95
+
96
+ wp_send_json_success();
97
+ } // dismiss_pointer_ajax
98
+
99
+
100
+ // reset all pointers to default state - visible
101
+ function csmm_get_pointers() {
102
+ $pointers = array();
103
+
104
+ $pointers['welcome'] = array('target' => '#menu-settings', 'edge' => 'left', 'align' => 'right', 'content' => 'Thank you for installing the <b style="font-weight: 800;">Minimal Coming Soon &amp; Maintenance Mode</b> plugin! Please open <a href="' . admin_url('options-general.php?page=maintenance_mode_options'). '">Settings - Maintenance Mode</a> to create a beautiful coming soon or maintenance mode page.');
105
+ $pointers['getting_started'] = array('target' => '#main-status', 'edge' => 'bottom', 'align' => 'left', 'content' => 'Make sure you <b>enable Maintenance Mode</b> so it\'s visible to your visitors. If you just want to preview it, use the preview button on the bottom of the page.');
106
+
107
+ return $pointers;
108
+ } // csmm_get_pointers
109
+
110
+
111
+ function csmm_enqueue_pointers($hook) {
112
+ $pointers = array();
113
+ $all_pointers = csmm_get_pointers();
114
+ $disabled_pointers = get_option(CSMM_POINTERS);
115
+
116
+ // auto remove welcome pointer when options are opened
117
+ // disabled
118
+ if (false && empty($disabled_pointers['welcome']) && 'settings_page_maintenance_mode_options' == $hook) {
119
+ $disabled_pointers['welcome'] = true;
120
+ update_option(CSMM_POINTERS, $disabled_pointers);
121
+ }
122
+
123
+ // temp remove
124
+ if ('settings_page_maintenance_mode_options' == $hook) {
125
+ $disabled_pointers['welcome'] = true;
126
+ }
127
+
128
+ foreach ($all_pointers as $tmp_key => $tmp_val) {
129
+ if (empty($disabled_pointers[$tmp_key])) {
130
+ $pointers[$tmp_key] = $tmp_val;
131
+ }
132
+ } // foreach
133
+
134
+ if (empty($pointers)) {
135
+ return;
136
+ }
137
+
138
+ $pointers['_nonce_dismiss_pointer'] = wp_create_nonce('csmm_dismiss_pointer');
139
+ wp_enqueue_script('wp-pointer');
140
+ wp_enqueue_script('csmm-pointers', SIGNALS_CSMM_URL . '/framework/admin/js/pointers.js', array('jquery'), csmm_get_plugin_version(), true);
141
+ wp_enqueue_style('wp-pointer');
142
+ wp_localize_script('wp-pointer', 'csmm_pointers', $pointers);
143
+ } // csmm_enqueue_pointers
144
+
145
+
146
  function csmm_plugin_admin_init() {
147
  if (!is_admin()) {
148
  return;
155
  $meta['first_install'] = current_time('timestamp');
156
  update_option('signals_csmm_meta', $meta);
157
  }
158
+
159
+ add_filter('plugin_action_links_' . CSMM_BASENAME, 'csmm_plugin_action_links');
160
+ add_filter('plugin_row_meta', 'csmm_plugin_meta_links', 10, 2);
161
+
162
+ add_action('admin_enqueue_scripts', 'csmm_enqueue_pointers', 100, 1);
163
  } // csmm_plugin_admin_init
164
+
165
  add_action( 'init', 'csmm_plugin_admin_init' );
166
 
167
  // Including file for the management panel
168
+ require_once SIGNALS_CSMM_PATH . 'framework/admin/settings.php';
framework/admin/js/admin.js CHANGED
@@ -1,39 +1,3 @@
1
- /**
2
- * Jquery Cookie v1.3.1
3
- * -----------------------------------------------------
4
- * https://github.com/carhartl/jquery-cookie
5
- */
6
-
7
- !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){function n(e){return e}function o(e){return decodeURIComponent(e.replace(t," "))}function i(e){0===e.indexOf('"')&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return r.json?JSON.parse(e):e}catch(n){}}var t=/\+/g,r=e.cookie=function(t,c,a){if(void 0!==c){if(a=e.extend({},r.defaults,a),"number"==typeof a.expires){var u=a.expires,f=a.expires=new Date;f.setDate(f.getDate()+u)}return c=r.json?JSON.stringify(c):String(c),document.cookie=[r.raw?t:encodeURIComponent(t),"=",r.raw?c:encodeURIComponent(c),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}for(var d=r.raw?n:o,p=document.cookie.split("; "),s=t?void 0:{},m=0,x=p.length;x>m;m++){var l=p[m].split("="),g=d(l.shift()),v=d(l.join("="));if(t&&t===g){s=i(v);break}t||(s[g]=i(v))}return s};r.defaults={},e.removeCookie=function(n,o){return void 0!==e.cookie(n)?(e.cookie(n,"",e.extend({},o,{expires:-1})),!0):!1}});
8
-
9
-
10
- /**
11
- * Jquery blockUI v2.66
12
- * -----------------------------------------------------
13
- * http://malsup.com/jquery/block/
14
- */
15
-
16
- (function(){"use strict";function e(e){function a(i,a){var l,h;var m=i==window;var g=a&&a.message!==undefined?a.message:undefined;a=e.extend({},e.blockUI.defaults,a||{});if(a.ignoreIfBlocked&&e(i).data("blockUI.isBlocked"))return;a.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,a.overlayCSS||{});l=e.extend({},e.blockUI.defaults.css,a.css||{});if(a.onOverlayClick)a.overlayCSS.cursor="pointer";h=e.extend({},e.blockUI.defaults.themedCSS,a.themedCSS||{});g=g===undefined?a.message:g;if(m&&o)f(window,{fadeOut:0});if(g&&typeof g!="string"&&(g.parentNode||g.jquery)){var y=g.jquery?g[0]:g;var b={};e(i).data("blockUI.history",b);b.el=y;b.parent=y.parentNode;b.display=y.style.display;b.position=y.style.position;if(b.parent)b.parent.removeChild(y)}e(i).data("blockUI.onUnblock",a.onUnblock);var w=a.baseZ;var E,S,x,T;if(n||a.forceIframe)E=e('<iframe class="blockUI" style="z-index:'+w++ +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+a.iframeSrc+'"></iframe>');else E=e('<div class="blockUI" style="display:none"></div>');if(a.theme)S=e('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+w++ +';display:none"></div>');else S=e('<div class="blockUI blockOverlay" style="z-index:'+w++ +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');if(a.theme&&m){T='<div class="blockUI '+a.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(w+10)+';display:none;position:fixed">';if(a.title){T+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(a.title||"&nbsp;")+"</div>"}T+='<div class="ui-widget-content ui-dialog-content"></div>';T+="</div>"}else if(a.theme){T='<div class="blockUI '+a.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(w+10)+';display:none;position:absolute">';if(a.title){T+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(a.title||"&nbsp;")+"</div>"}T+='<div class="ui-widget-content ui-dialog-content"></div>';T+="</div>"}else if(m){T='<div class="blockUI '+a.blockMsgClass+' blockPage" style="z-index:'+(w+10)+';display:none;position:fixed"></div>'}else{T='<div class="blockUI '+a.blockMsgClass+' blockElement" style="z-index:'+(w+10)+';display:none;position:absolute"></div>'}x=e(T);if(g){if(a.theme){x.css(h);x.addClass("ui-widget-content")}else x.css(l)}if(!a.theme)S.css(a.overlayCSS);S.css("position",m?"fixed":"absolute");if(n||a.forceIframe)E.css("opacity",0);var N=[E,S,x],C=m?e("body"):e(i);e.each(N,function(){this.appendTo(C)});if(a.theme&&a.draggable&&e.fn.draggable){x.draggable({handle:".ui-dialog-titlebar",cancel:"li"})}var k=s&&(!e.support.boxModel||e("object,embed",m?null:i).length>0);if(r||k){if(m&&a.allowBodyStretch&&e.support.boxModel)e("html,body").css("height","100%");if((r||!e.support.boxModel)&&!m){var L=v(i,"borderTopWidth"),A=v(i,"borderLeftWidth");var O=L?"(0 - "+L+")":0;var M=A?"(0 - "+A+")":0}e.each(N,function(e,t){var n=t[0].style;n.position="absolute";if(e<2){if(m)n.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+a.quirksmodeOffsetHack+') + "px"');else n.setExpression("height",'this.parentNode.offsetHeight + "px"');if(m)n.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');else n.setExpression("width",'this.parentNode.offsetWidth + "px"');if(M)n.setExpression("left",M);if(O)n.setExpression("top",O)}else if(a.centerY){if(m)n.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');n.marginTop=0}else if(!a.centerY&&m){var r=a.css&&a.css.top?parseInt(a.css.top,10):0;var i="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+r+') + "px"';n.setExpression("top",i)}})}if(g){if(a.theme)x.find(".ui-widget-content").append(g);else x.append(g);if(g.jquery||g.nodeType)e(g).show()}if((n||a.forceIframe)&&a.showOverlay)E.show();if(a.fadeIn){var _=a.onBlock?a.onBlock:t;var D=a.showOverlay&&!g?_:t;var P=g?_:t;if(a.showOverlay)S._fadeIn(a.fadeIn,D);if(g)x._fadeIn(a.fadeIn,P)}else{if(a.showOverlay)S.show();if(g)x.show();if(a.onBlock)a.onBlock()}c(1,i,a);if(m){o=x[0];u=e(a.focusableElements,o);if(a.focusInput)setTimeout(p,20)}else d(x[0],a.centerX,a.centerY);if(a.timeout){var H=setTimeout(function(){if(m)e.unblockUI(a);else e(i).unblock(a)},a.timeout);e(i).data("blockUI.timeout",H)}}function f(t,n){var r;var i=t==window;var s=e(t);var a=s.data("blockUI.history");var f=s.data("blockUI.timeout");if(f){clearTimeout(f);s.removeData("blockUI.timeout")}n=e.extend({},e.blockUI.defaults,n||{});c(0,t,n);if(n.onUnblock===null){n.onUnblock=s.data("blockUI.onUnblock");s.removeData("blockUI.onUnblock")}var h;if(i)h=e("body").children().filter(".blockUI").add("body > .blockUI");else h=s.find(">.blockUI");if(n.cursorReset){if(h.length>1)h[1].style.cursor=n.cursorReset;if(h.length>2)h[2].style.cursor=n.cursorReset}if(i)o=u=null;if(n.fadeOut){r=h.length;h.stop().fadeOut(n.fadeOut,function(){if(--r===0)l(h,a,n,t)})}else l(h,a,n,t)}function l(t,n,r,i){var s=e(i);if(s.data("blockUI.isBlocked"))return;t.each(function(e,t){if(this.parentNode)this.parentNode.removeChild(this)});if(n&&n.el){n.el.style.display=n.display;n.el.style.position=n.position;if(n.parent)n.parent.appendChild(n.el);s.removeData("blockUI.history")}if(s.data("blockUI.static")){s.css("position","static")}if(typeof r.onUnblock=="function")r.onUnblock(i,r);var o=e(document.body),u=o.width(),a=o[0].style.width;o.width(u-1).width(u);o[0].style.width=a}function c(t,n,r){var i=n==window,s=e(n);if(!t&&(i&&!o||!i&&!s.data("blockUI.isBlocked")))return;s.data("blockUI.isBlocked",t);if(!i||!r.bindEvents||t&&!r.showOverlay)return;var u="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";if(t)e(document).bind(u,r,h);else e(document).unbind(u,h)}function h(t){if(t.type==="keydown"&&t.keyCode&&t.keyCode==9){if(o&&t.data.constrainTabKey){var n=u;var r=!t.shiftKey&&t.target===n[n.length-1];var i=t.shiftKey&&t.target===n[0];if(r||i){setTimeout(function(){p(i)},10);return false}}}var s=t.data;var a=e(t.target);if(a.hasClass("blockOverlay")&&s.onOverlayClick)s.onOverlayClick(t);if(a.parents("div."+s.blockMsgClass).length>0)return true;return a.parents().children().filter("div.blockUI").length===0}function p(e){if(!u)return;var t=u[e===true?u.length-1:0];if(t)t.focus()}function d(e,t,n){var r=e.parentNode,i=e.style;var s=(r.offsetWidth-e.offsetWidth)/2-v(r,"borderLeftWidth");var o=(r.offsetHeight-e.offsetHeight)/2-v(r,"borderTopWidth");if(t)i.left=s>0?s+"px":"0";if(n)i.top=o>0?o+"px":"0"}function v(t,n){return parseInt(e.css(t,n),10)||0}e.fn._fadeIn=e.fn.fadeIn;var t=e.noop||function(){};var n=/MSIE/.test(navigator.userAgent);var r=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent);var i=document.documentMode||0;var s=e.isFunction(document.createElement("div").style.setExpression);e.blockUI=function(e){a(window,e)};e.unblockUI=function(e){f(window,e)};e.growlUI=function(t,n,r,i){var s=e('<div class="growlUI"></div>');if(t)s.append("<h1>"+t+"</h1>");if(n)s.append("<h2>"+n+"</h2>");if(r===undefined)r=3e3;var o=function(t){t=t||{};e.blockUI({message:s,fadeIn:typeof t.fadeIn!=="undefined"?t.fadeIn:700,fadeOut:typeof t.fadeOut!=="undefined"?t.fadeOut:1e3,timeout:typeof t.timeout!=="undefined"?t.timeout:r,centerY:false,showOverlay:false,onUnblock:i,css:e.blockUI.defaults.growlCSS})};o();var u=s.css("opacity");s.mouseover(function(){o({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop();t.fadeTo(300,1)}).mouseout(function(){e(".blockMsg").fadeOut(1e3)})};e.fn.block=function(t){if(this[0]===window){e.blockUI(t);return this}var n=e.extend({},e.blockUI.defaults,t||{});this.each(function(){var t=e(this);if(n.ignoreIfBlocked&&t.data("blockUI.isBlocked"))return;t.unblock({fadeOut:0})});return this.each(function(){if(e.css(this,"position")=="static"){this.style.position="relative";e(this).data("blockUI.static",true)}this.style.zoom=1;a(this,t)})};e.fn.unblock=function(t){if(this[0]===window){e.unblockUI(t);return this}return this.each(function(){f(this,t)})};e.blockUI.version=2.66;e.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:true,theme:false,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#fff",border:"1px solid #ff0000",backgroundColor:"#ff0000",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#fff",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:false,baseZ:1e3,centerX:true,centerY:true,allowBodyStretch:true,bindEvents:true,constrainTabKey:true,fadeIn:200,fadeOut:400,timeout:0,showOverlay:true,focusInput:true,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:false};var o=null;var u=[]}if(typeof define==="function"&&define.amd&&define.amd.jQuery){define(["jquery"],e)}else{e(jQuery)}})();
17
-
18
-
19
- /**
20
- * Switchery
21
- * -----------------------------------------------------
22
- * https://github.com/abpetkov/switchery
23
- */
24
-
25
- (function(){function require(path,parent,orig){var resolved=require.resolve(path);if(null==resolved){orig=orig||path;parent=parent||"root";var err=new Error('Failed to require "'+orig+'" from "'+parent+'"');err.path=orig;err.parent=parent;err.require=true;throw err}var module=require.modules[resolved];if(!module._resolving&&!module.exports){var mod={};mod.exports={};mod.client=mod.component=true;module._resolving=true;module.call(this,mod.exports,require.relative(resolved),mod);delete module._resolving;module.exports=mod.exports}return module.exports}require.modules={};require.aliases={};require.resolve=function(path){if(path.charAt(0)==="/")path=path.slice(1);var paths=[path,path+".js",path+".json",path+"/index.js",path+"/index.json"];for(var i=0;i<paths.length;i++){var path=paths[i];if(require.modules.hasOwnProperty(path))return path;if(require.aliases.hasOwnProperty(path))return require.aliases[path]}};require.normalize=function(curr,path){var segs=[];if("."!=path.charAt(0))return path;curr=curr.split("/");path=path.split("/");for(var i=0;i<path.length;++i){if(".."==path[i]){curr.pop()}else if("."!=path[i]&&""!=path[i]){segs.push(path[i])}}return curr.concat(segs).join("/")};require.register=function(path,definition){require.modules[path]=definition};require.alias=function(from,to){if(!require.modules.hasOwnProperty(from)){throw new Error('Failed to alias "'+from+'", it does not exist')}require.aliases[to]=from};require.relative=function(parent){var p=require.normalize(parent,"..");function lastIndexOf(arr,obj){var i=arr.length;while(i--){if(arr[i]===obj)return i}return-1}function localRequire(path){var resolved=localRequire.resolve(path);return require(resolved,parent,path)}localRequire.resolve=function(path){var c=path.charAt(0);if("/"==c)return path.slice(1);if("."==c)return require.normalize(p,path);var segs=parent.split("/");var i=lastIndexOf(segs,"deps")+1;if(!i)i=0;path=segs.slice(0,i+1).join("/")+"/deps/"+path;return path};localRequire.exists=function(path){return require.modules.hasOwnProperty(localRequire.resolve(path))};return localRequire};require.register("abpetkov-transitionize/transitionize.js",function(exports,require,module){module.exports=Transitionize;function Transitionize(element,props){if(!(this instanceof Transitionize))return new Transitionize(element,props);this.element=element;this.props=props||{};this.init()}Transitionize.prototype.isSafari=function(){return/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)};Transitionize.prototype.init=function(){var transitions=[];for(var key in this.props){transitions.push(key+" "+this.props[key])}this.element.style.transition=transitions.join(", ");if(this.isSafari())this.element.style.webkitTransition=transitions.join(", ")}});require.register("ftlabs-fastclick/lib/fastclick.js",function(exports,require,module){function FastClick(layer){"use strict";var oldOnClick,self=this;this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=10;this.layer=layer;if(!layer||!layer.nodeType){throw new TypeError("Layer must be a document node")}this.onClick=function(){return FastClick.prototype.onClick.apply(self,arguments)};this.onMouse=function(){return FastClick.prototype.onMouse.apply(self,arguments)};this.onTouchStart=function(){return FastClick.prototype.onTouchStart.apply(self,arguments)};this.onTouchMove=function(){return FastClick.prototype.onTouchMove.apply(self,arguments)};this.onTouchEnd=function(){return FastClick.prototype.onTouchEnd.apply(self,arguments)};this.onTouchCancel=function(){return FastClick.prototype.onTouchCancel.apply(self,arguments)};if(FastClick.notNeeded(layer)){return}if(this.deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}FastClick.prototype.deviceIsAndroid=navigator.userAgent.indexOf("Android")>0;FastClick.prototype.deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent);FastClick.prototype.deviceIsIOS4=FastClick.prototype.deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent);FastClick.prototype.deviceIsIOSWithBadTarget=FastClick.prototype.deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if(this.deviceIsIOS&&target.type==="file"||target.disabled){return true}break;case"label":case"video":return true}return/\bneedsclick\b/.test(target.className)};FastClick.prototype.needsFocus=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return!this.deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return!target.disabled&&!target.readOnly;default:return/\bneedsfocus\b/.test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){"use strict";var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){"use strict";if(this.deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){"use strict";var length;if(this.deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){"use strict";var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){"use strict";if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){"use strict";var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(this.deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!this.deviceIsIOS4){if(touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if(event.timeStamp-this.lastClickTime<200){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){"use strict";var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){"use strict";if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){"use strict";if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){"use strict";var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if(event.timeStamp-this.lastClickTime<200){this.cancelNextClick=true;return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(this.deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(this.deviceIsAndroid){return false}targetElement=forElement}}else if(this.needsFocus(targetElement)){if(event.timeStamp-trackingClickStart>100||this.deviceIsIOS&&window.top!==window&&targetTagName==="input"){this.targetElement=null;return false}this.focus(targetElement);if(!this.deviceIsIOS4||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}if(this.deviceIsIOS&&!this.deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){"use strict";if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){"use strict";var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){"use strict";var layer=this.layer;if(this.deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){"use strict";var metaViewport;var chromeVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(FastClick.prototype.deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&window.innerWidth<=window.screen.width){return true}}}else{return true}}if(layer.style.msTouchAction==="none"){return true}return false};FastClick.attach=function(layer){"use strict";return new FastClick(layer)};if(typeof define!=="undefined"&&define.amd){define(function(){"use strict";return FastClick})}else if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}});require.register("switchery/switchery.js",function(exports,require,module){var transitionize=require("transitionize"),fastclick=require("fastclick");module.exports=Switchery;var defaults={color:"#64bd63",secondaryColor:"#dfdfdf",className:"switchery",disabled:false,disabledOpacity:.5,speed:"0.4s"};function Switchery(element,options){if(!(this instanceof Switchery))return new Switchery(element,options);this.element=element;this.options=options||{};for(var i in defaults){if(this.options[i]==null){this.options[i]=defaults[i]}}if(this.element!=null&&this.element.type=="checkbox")this.init()}Switchery.prototype.hide=function(){this.element.style.display="none"};Switchery.prototype.show=function(){var switcher=this.create();this.insertAfter(this.element,switcher)};Switchery.prototype.create=function(){this.switcher=document.createElement("span");this.jack=document.createElement("small");this.switcher.appendChild(this.jack);this.switcher.className=this.options.className;return this.switcher};Switchery.prototype.insertAfter=function(reference,target){reference.parentNode.insertBefore(target,reference.nextSibling)};Switchery.prototype.isChecked=function(){return this.element.checked};Switchery.prototype.isDisabled=function(){return this.options.disabled||this.element.disabled};Switchery.prototype.setPosition=function(clicked){var checked=this.isChecked(),switcher=this.switcher,jack=this.jack;if(clicked&&checked)checked=false;else if(clicked&&!checked)checked=true;if(checked===true){this.element.checked=true;if(window.getComputedStyle)jack.style.left=parseInt(window.getComputedStyle(switcher).width)-parseInt(window.getComputedStyle(jack).width)+"px";else jack.style.left=parseInt(switcher.currentStyle["width"])-parseInt(jack.currentStyle["width"])+"px";if(this.options.color)this.colorize();this.setSpeed()}else{jack.style.left=0;this.element.checked=false;this.switcher.style.boxShadow="inset 0 0 0 0 "+this.options.secondaryColor;this.switcher.style.borderColor=this.options.secondaryColor;this.switcher.style.backgroundColor=this.options.secondaryColor!==defaults.secondaryColor?this.options.secondaryColor:"#fff";this.setSpeed()}};Switchery.prototype.setSpeed=function(){var switcherProp={},jackProp={left:this.options.speed.replace(/[a-z]/,"")/2+"s"};if(this.isChecked()){switcherProp={border:this.options.speed,"box-shadow":this.options.speed,"background-color":this.options.speed.replace(/[a-z]/,"")*3+"s"}}else{switcherProp={border:this.options.speed,"box-shadow":this.options.speed}}transitionize(this.switcher,switcherProp);transitionize(this.jack,jackProp)};Switchery.prototype.colorize=function(){this.switcher.style.backgroundColor=this.options.color;this.switcher.style.borderColor=this.options.color;this.switcher.style.boxShadow="inset 0 0 0 16px "+this.options.color};Switchery.prototype.handleOnchange=function(state){if(typeof Event==="function"||!document.fireEvent){var event=document.createEvent("HTMLEvents");event.initEvent("change",true,true);this.element.dispatchEvent(event)}else{this.element.fireEvent("onchange")}};Switchery.prototype.handleChange=function(){var self=this,el=this.element;if(el.addEventListener){el.addEventListener("change",function(){self.setPosition()})}else{el.attachEvent("onchange",function(){self.setPosition()})}};Switchery.prototype.handleClick=function(){var self=this,switcher=this.switcher,parent=self.element.parentNode.tagName.toLowerCase(),labelParent=parent==="label"?false:true;if(this.isDisabled()===false){fastclick(switcher);if(switcher.addEventListener){switcher.addEventListener("click",function(){self.setPosition(labelParent);self.handleOnchange(self.element.checked)})}else{switcher.attachEvent("onclick",function(){self.setPosition(labelParent);self.handleOnchange(self.element.checked)})}}else{this.element.disabled=true;this.switcher.style.opacity=this.options.disabledOpacity}};Switchery.prototype.markAsSwitched=function(){this.element.setAttribute("data-switchery",true)};Switchery.prototype.markedAsSwitched=function(){return this.element.getAttribute("data-switchery")};Switchery.prototype.init=function(){this.hide();this.show();this.setPosition();this.markAsSwitched();this.handleChange();this.handleClick()}});require.alias("abpetkov-transitionize/transitionize.js","switchery/deps/transitionize/transitionize.js");require.alias("abpetkov-transitionize/transitionize.js","switchery/deps/transitionize/index.js");require.alias("abpetkov-transitionize/transitionize.js","transitionize/index.js");require.alias("abpetkov-transitionize/transitionize.js","abpetkov-transitionize/index.js");require.alias("ftlabs-fastclick/lib/fastclick.js","switchery/deps/fastclick/lib/fastclick.js");require.alias("ftlabs-fastclick/lib/fastclick.js","switchery/deps/fastclick/index.js");require.alias("ftlabs-fastclick/lib/fastclick.js","fastclick/index.js");require.alias("ftlabs-fastclick/lib/fastclick.js","ftlabs-fastclick/index.js");require.alias("switchery/switchery.js","switchery/index.js");if(typeof exports=="object"){module.exports=require("switchery")}else if(typeof define=="function"&&define.amd){define(function(){return require("switchery")})}else{this["Switchery"]=require("switchery")}})();
26
-
27
-
28
- /**
29
- * Sortable
30
- * -----------------------------------------------------
31
- * https://github.com/RubaXa/Sortable
32
- */
33
-
34
- !function(a){"use strict";"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){"use strict";function a(a,b){this.el=a,this.options=b=s({},b),a[J]=this;var d={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0};for(var e in d)!(e in b)&&(b[e]=d[e]);var g=b.group;g&&"object"==typeof g||(g=b.group={name:g}),["pull","put"].forEach(function(a){a in g||(g[a]=!0)}),b.groups=" "+g.name+(g.put.join?" "+g.put.join(" "):"")+" ";for(var h in this)"_"===h.charAt(0)&&(this[h]=c(this,this[h]));f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),f(a,"dragover",this),f(a,"dragenter",this),R.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){v&&v.state!==a&&(i(v,"display",a?"none":""),!a&&v.state&&w.insertBefore(v,t),v.state=a)}function c(a,b){var c=Q.call(arguments,2);return b.bind?b.bind.apply(b,[a].concat(c)):function(){return b.apply(a,c.concat(Q.call(arguments)))}}function d(a,b,c){if(a){c=c||L,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");do if(">*"===d&&a.parentNode===c||(""===d||a.nodeName.toUpperCase()==d)&&(!b.length||((" "+a.className+" ").match(e)||[]).length==b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function e(a){a.dataTransfer.dropEffect="move",a.preventDefault()}function f(a,b,c){a.addEventListener(b,c,!1)}function g(a,b,c){a.removeEventListener(b,c,!1)}function h(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(I," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(I," ")}}function i(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return L.defaultView&&L.defaultView.getComputedStyle?c=L.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function j(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function k(a,b,c,d,e,f,g){var h=L.createEvent("Event"),i=(a||b[J]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=v,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function l(a,b,c,d,e,f){var g,h,i=a[J],j=i.options.onMove;return j&&(g=L.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),h=j.call(i,g)),h}function m(a){a.draggable=!1}function n(){O=!1}function o(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return b.clientY-(d.top+d.height)>5&&c}function p(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function q(a){for(var b=0;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&b++;return b}function r(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function s(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H={},I=/\s+/g,J="Sortable"+(new Date).getTime(),K=window,L=K.document,M=K.parseInt,N=!!("draggable"in L.createElement("div")),O=!1,P=Math.abs,Q=[].slice,R=[],S=r(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(z!==c&&(y=b.scroll,z=c,y===!0)){y=c;do if(y.offsetWidth<y.scrollWidth||y.offsetHeight<y.scrollHeight)break;while(y=y.parentNode)}y&&(d=y,e=y.getBoundingClientRect(),f=(P(e.right-j)<=h)-(P(e.left-j)<=h),g=(P(e.bottom-k)<=h)-(P(e.top-k)<=h)),f||g||(f=(h>=l-j)-(h>=j),g=(h>=m-k)-(h>=k),(f||g)&&(d=K)),(H.vx!==f||H.vy!==g||H.el!==d)&&(H.el=d,H.vx=f,H.vy=g,clearInterval(H.pid),d&&(H.pid=setInterval(function(){d===K?K.scrollTo(K.pageXOffset+f*i,K.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30);return a.prototype={constructor:a,_onTapStart:function(a){var b=this,c=this.el,e=this.options,f=a.type,g=a.touches&&a.touches[0],h=(g||a).target,i=h,j=e.filter;if(!("mousedown"===f&&0!==a.button||e.disabled)&&(h=d(h,e.draggable,c))){if(C=q(h),"function"==typeof j){if(j.call(this,a,h,this))return k(b,i,"filter",h,c,C),void a.preventDefault()}else if(j&&(j=j.split(",").some(function(a){return a=d(i,a.trim(),c),a?(k(b,a,"filter",h,c,C),!0):void 0})))return void a.preventDefault();(!e.handle||d(i,e.handle,c))&&this._prepareDragStart(a,g,h)}},_prepareDragStart:function(a,b,c){var d,e=this,g=e.el,h=e.options,i=g.ownerDocument;c&&!t&&c.parentNode===g&&(F=a,w=g,t=c,x=t.nextSibling,E=h.group,d=function(){e._disableDelayedDrag(),t.draggable=!0,h.ignore.split(",").forEach(function(a){j(t,a.trim(),m)}),e._triggerDragStart(b)},f(i,"mouseup",e._onDrop),f(i,"touchend",e._onDrop),f(i,"touchcancel",e._onDrop),h.delay?(f(i,"mousemove",e._disableDelayedDrag),f(i,"touchmove",e._disableDelayedDrag),e._dragStartTimer=setTimeout(d,h.delay)):d())},_disableDelayedDrag:function(){var a=this.el.ownerDocument;clearTimeout(this._dragStartTimer),g(a,"mousemove",this._disableDelayedDrag),g(a,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(a){a?(F={target:t,clientX:a.clientX,clientY:a.clientY},this._onDragStart(F,"touch")):N?(f(t,"dragend",this),f(w,"dragstart",this._onDragStart)):this._onDragStart(F,!0);try{L.selection?L.selection.empty():window.getSelection().removeAllRanges()}catch(b){}},_dragStarted:function(){w&&t&&(h(t,this.options.ghostClass,!0),a.active=this,k(this,w,"start",t,w,C))},_emulateDragOver:function(){if(G){i(u,"display","none");var a=L.elementFromPoint(G.clientX,G.clientY),b=a,c=" "+this.options.group.name,d=R.length;if(b)do{if(b[J]&&b[J].options.groups.indexOf(c)>-1){for(;d--;)R[d]({clientX:G.clientX,clientY:G.clientY,target:a,rootEl:b});break}a=b}while(b=b.parentNode);i(u,"display","")}},_onTouchMove:function(a){if(F){var b=a.touches?a.touches[0]:a,c=b.clientX-F.clientX,d=b.clientY-F.clientY,e=a.touches?"translate3d("+c+"px,"+d+"px,0)":"translate("+c+"px,"+d+"px)";G=b,i(u,"webkitTransform",e),i(u,"mozTransform",e),i(u,"msTransform",e),i(u,"transform",e),a.preventDefault()}},_onDragStart:function(a,b){var c=a.dataTransfer,d=this.options;if(this._offUpEvents(),"clone"==E.pull&&(v=t.cloneNode(!0),i(v,"display","none"),w.insertBefore(v,t)),b){var e,g=t.getBoundingClientRect(),h=i(t);u=t.cloneNode(!0),i(u,"top",g.top-M(h.marginTop,10)),i(u,"left",g.left-M(h.marginLeft,10)),i(u,"width",g.width),i(u,"height",g.height),i(u,"opacity","0.8"),i(u,"position","fixed"),i(u,"zIndex","100000"),w.appendChild(u),e=u.getBoundingClientRect(),i(u,"width",2*g.width-e.width),i(u,"height",2*g.height-e.height),"touch"===b?(f(L,"touchmove",this._onTouchMove),f(L,"touchend",this._onDrop),f(L,"touchcancel",this._onDrop)):(f(L,"mousemove",this._onTouchMove),f(L,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,150)}else c&&(c.effectAllowed="move",d.setData&&d.setData.call(this,c,t)),f(L,"drop",this);setTimeout(this._dragStarted,0)},_onDragOver:function(a){var c,e,f,g=this.el,h=this.options,j=h.group,k=j.put,m=E===j,p=h.sort;if(void 0!==a.preventDefault&&(a.preventDefault(),!h.dragoverBubble&&a.stopPropagation()),E&&!h.disabled&&(m?p||(f=!w.contains(t)):E.pull&&k&&(E.name===j.name||k.indexOf&&~k.indexOf(E.name)))&&(void 0===a.rootEl||a.rootEl===this.el)){if(S(a,h,this.el),O)return;if(c=d(a.target,h.draggable,g),e=t.getBoundingClientRect(),f)return b(!0),void(v||x?w.insertBefore(t,v||x):p||w.appendChild(t));if(0===g.children.length||g.children[0]===u||g===a.target&&(c=o(g,a))){if(c){if(c.animated)return;r=c.getBoundingClientRect()}b(m),l(w,g,t,e,c,r)!==!1&&(g.appendChild(t),this._animate(e,t),c&&this._animate(r,c))}else if(c&&!c.animated&&c!==t&&void 0!==c.parentNode[J]){A!==c&&(A=c,B=i(c));var q,r=c.getBoundingClientRect(),s=r.right-r.left,y=r.bottom-r.top,z=/left|right|inline/.test(B.cssFloat+B.display),C=c.offsetWidth>t.offsetWidth,D=c.offsetHeight>t.offsetHeight,F=(z?(a.clientX-r.left)/s:(a.clientY-r.top)/y)>.5,G=c.nextElementSibling,H=l(w,g,t,e,c,r);H!==!1&&(O=!0,setTimeout(n,30),b(m),q=1===H||-1===H?1===H:z?c.previousElementSibling===t&&!C||F&&C:G!==t&&!D||F&&D,q&&!G?g.appendChild(t):c.parentNode.insertBefore(t,q?G:c),this._animate(e,t),this._animate(r,c))}}},_animate:function(a,b){var c=this.options.animation;if(c){var d=b.getBoundingClientRect();i(b,"transition","none"),i(b,"transform","translate3d("+(a.left-d.left)+"px,"+(a.top-d.top)+"px,0)"),b.offsetWidth,i(b,"transition","all "+c+"ms"),i(b,"transform","translate3d(0,0,0)"),clearTimeout(b.animated),b.animated=setTimeout(function(){i(b,"transition",""),i(b,"transform",""),b.animated=!1},c)}},_offUpEvents:function(){var a=this.el.ownerDocument;g(L,"touchmove",this._onTouchMove),g(a,"mouseup",this._onDrop),g(a,"touchend",this._onDrop),g(a,"touchcancel",this._onDrop)},_onDrop:function(b){var c=this.el,d=this.options;clearInterval(this._loopId),clearInterval(H.pid),clearTimeout(this._dragStartTimer),g(L,"drop",this),g(L,"mousemove",this._onTouchMove),g(c,"dragstart",this._onDragStart),this._offUpEvents(),b&&(b.preventDefault(),!d.dropBubble&&b.stopPropagation(),u&&u.parentNode.removeChild(u),t&&(g(t,"dragend",this),m(t),h(t,this.options.ghostClass,!1),w!==t.parentNode?(D=q(t),k(null,t.parentNode,"sort",t,w,C,D),k(this,w,"sort",t,w,C,D),k(null,t.parentNode,"add",t,w,C,D),k(this,w,"remove",t,w,C,D)):(v&&v.parentNode.removeChild(v),t.nextSibling!==x&&(D=q(t),k(this,w,"update",t,w,C,D),k(this,w,"sort",t,w,C,D))),a.active&&(k(this,w,"end",t,w,C,D),this.save())),w=t=u=x=v=y=z=F=G=A=B=E=a.active=null)},handleEvent:function(a){var b=a.type;"dragover"===b||"dragenter"===b?t&&(this._onDragOver(a),e(a)):("drop"===b||"dragend"===b)&&this._onDrop(a)},toArray:function(){for(var a,b=[],c=this.el.children,e=0,f=c.length,g=this.options;f>e;e++)a=c[e],d(a,g.draggable,this.el)&&b.push(a.getAttribute(g.dataIdAttr)||p(a));return b},sort:function(a){var b={},c=this.el;this.toArray().forEach(function(a,e){var f=c.children[e];d(f,this.options.draggable,c)&&(b[a]=f)},this),a.forEach(function(a){b[a]&&(c.removeChild(b[a]),c.appendChild(b[a]))})},save:function(){var a=this.options.store;a&&a.set(this)},closest:function(a,b){return d(a,b||this.options.draggable,this.el)},option:function(a,b){var c=this.options;return void 0===b?c[a]:void(c[a]=b)},destroy:function(){var a=this.el;a[J]=null,g(a,"mousedown",this._onTapStart),g(a,"touchstart",this._onTapStart),g(a,"dragover",this),g(a,"dragenter",this),Array.prototype.forEach.call(a.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),R.splice(R.indexOf(this._onDragOver),1),this._onDrop(),this.el=a=null}},a.utils={on:f,off:g,css:i,find:j,bind:c,is:function(a,b){return!!d(a,b,a)},extend:s,throttle:r,closest:d,toggleClass:h,index:q},a.version="1.2.1",a.create=function(b,c){return new a(b,c)},a});
35
-
36
-
37
  /**
38
  * application.js
39
  * -----------------------------------------------------
@@ -140,6 +104,9 @@ function getUploader( $text, $target ) {
140
 
141
  // on dom ready
142
  $( document ).ready( function() {
 
 
 
143
 
144
  $( document ).on( 'click', '#mm_subscribe', function(e) {
145
  e.preventDefault();
@@ -257,13 +224,30 @@ function getUploader( $text, $target ) {
257
  } );
258
  } );
259
 
260
- // for the plugin navigation
261
- var $state = $.cookie( 'signals_csmm_menu' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
 
 
 
 
263
  if( $state ) {
264
  $( '.signals-main-menu li a' ).removeClass( 'active' );
265
  $( 'a[href="' + $state + '"]' ).addClass( 'active' );
266
-
267
  $( $state ).show();
268
  } else {
269
  $( '.signals-main-menu li:first a' ).addClass( 'active' );
@@ -292,6 +276,29 @@ function getUploader( $text, $target ) {
292
  $( '.signals-main-menu' ).slideToggle();
293
  } );
294
 
295
- } );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296
 
297
  } )( jQuery );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  /**
2
  * application.js
3
  * -----------------------------------------------------
104
 
105
  // on dom ready
106
  $( document ).ready( function() {
107
+
108
+ // hide nags from other plugins
109
+ $('#wpbody-content .update-nag, #wpbody-content .notice-error, #wpbody-content .notice-info').hide();
110
 
111
  $( document ).on( 'click', '#mm_subscribe', function(e) {
112
  e.preventDefault();
224
  } );
225
  } );
226
 
227
+
228
+ $('.csmm-change-tab').on('click', function(e) {
229
+ e.preventDefault();
230
+
231
+ tab_name = $(this).attr('href');
232
+ csmm_change_tab(tab_name);
233
+
234
+ return false;
235
+ });
236
+
237
+
238
+ function csmm_change_tab(tab_name) {
239
+ tab_name = '#' + tab_name.replace('#', '');
240
+
241
+ $('.signals-main-menu li a[href=' + tab_name + ']').trigger('click');
242
+ window.scrollTo(0, 0);
243
+ } // csmm_change_tab
244
 
245
+
246
+ // tabs
247
+ var $state = $.cookie( 'signals_csmm_menu' );
248
  if( $state ) {
249
  $( '.signals-main-menu li a' ).removeClass( 'active' );
250
  $( 'a[href="' + $state + '"]' ).addClass( 'active' );
 
251
  $( $state ).show();
252
  } else {
253
  $( '.signals-main-menu li:first a' ).addClass( 'active' );
276
  $( '.signals-main-menu' ).slideToggle();
277
  } );
278
 
279
+
280
+ // dismiss notice
281
+ $('.signals-alert .notice-dismiss').on('click', function(e) {
282
+ e.preventDefault();
283
+
284
+ $(this).parents('.signals-alert').hide();
285
+
286
+ return false;
287
+ });
288
+
289
+
290
+ // alert user of unsaved changes when doing preview
291
+ old_settings = $('form.signals-admin-form *').not('.skip-save').serialize();
292
+ $('#csmm-preview').on('click', function(e) {
293
+ if ($('form.signals-admin-form *').not('.skip-save').serialize() != old_settings) {
294
+ if (!confirm('There are unsaved changes that will not be visible in the preview. Please save changes first.\nContinue?')) {
295
+ e.preventDefault();
296
+ return false;
297
+ }
298
+ }
299
+
300
+ return true;
301
+ });
302
+ }); // on ready
303
 
304
  } )( jQuery );
framework/admin/js/colorpicker/arrow.gif DELETED
Binary file
framework/admin/js/colorpicker/cross.gif DELETED
Binary file
framework/admin/js/colorpicker/hs.png DELETED
Binary file
framework/admin/js/colorpicker/hv.png DELETED
Binary file
framework/admin/js/plugins.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Jquery Cookie v1.3.1
3
+ * -----------------------------------------------------
4
+ * https://github.com/carhartl/jquery-cookie
5
+ */
6
+
7
+ !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){function n(e){return e}function o(e){return decodeURIComponent(e.replace(t," "))}function i(e){0===e.indexOf('"')&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return r.json?JSON.parse(e):e}catch(n){}}var t=/\+/g,r=e.cookie=function(t,c,a){if(void 0!==c){if(a=e.extend({},r.defaults,a),"number"==typeof a.expires){var u=a.expires,f=a.expires=new Date;f.setDate(f.getDate()+u)}return c=r.json?JSON.stringify(c):String(c),document.cookie=[r.raw?t:encodeURIComponent(t),"=",r.raw?c:encodeURIComponent(c),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure":""].join("")}for(var d=r.raw?n:o,p=document.cookie.split("; "),s=t?void 0:{},m=0,x=p.length;x>m;m++){var l=p[m].split("="),g=d(l.shift()),v=d(l.join("="));if(t&&t===g){s=i(v);break}t||(s[g]=i(v))}return s};r.defaults={},e.removeCookie=function(n,o){return void 0!==e.cookie(n)?(e.cookie(n,"",e.extend({},o,{expires:-1})),!0):!1}});
8
+
9
+
10
+ /**
11
+ * Jquery blockUI v2.66
12
+ * -----------------------------------------------------
13
+ * http://malsup.com/jquery/block/
14
+ */
15
+
16
+ (function(){"use strict";function e(e){function a(i,a){var l,h;var m=i==window;var g=a&&a.message!==undefined?a.message:undefined;a=e.extend({},e.blockUI.defaults,a||{});if(a.ignoreIfBlocked&&e(i).data("blockUI.isBlocked"))return;a.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,a.overlayCSS||{});l=e.extend({},e.blockUI.defaults.css,a.css||{});if(a.onOverlayClick)a.overlayCSS.cursor="pointer";h=e.extend({},e.blockUI.defaults.themedCSS,a.themedCSS||{});g=g===undefined?a.message:g;if(m&&o)f(window,{fadeOut:0});if(g&&typeof g!="string"&&(g.parentNode||g.jquery)){var y=g.jquery?g[0]:g;var b={};e(i).data("blockUI.history",b);b.el=y;b.parent=y.parentNode;b.display=y.style.display;b.position=y.style.position;if(b.parent)b.parent.removeChild(y)}e(i).data("blockUI.onUnblock",a.onUnblock);var w=a.baseZ;var E,S,x,T;if(n||a.forceIframe)E=e('<iframe class="blockUI" style="z-index:'+w++ +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+a.iframeSrc+'"></iframe>');else E=e('<div class="blockUI" style="display:none"></div>');if(a.theme)S=e('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+w++ +';display:none"></div>');else S=e('<div class="blockUI blockOverlay" style="z-index:'+w++ +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');if(a.theme&&m){T='<div class="blockUI '+a.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(w+10)+';display:none;position:fixed">';if(a.title){T+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(a.title||"&nbsp;")+"</div>"}T+='<div class="ui-widget-content ui-dialog-content"></div>';T+="</div>"}else if(a.theme){T='<div class="blockUI '+a.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(w+10)+';display:none;position:absolute">';if(a.title){T+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(a.title||"&nbsp;")+"</div>"}T+='<div class="ui-widget-content ui-dialog-content"></div>';T+="</div>"}else if(m){T='<div class="blockUI '+a.blockMsgClass+' blockPage" style="z-index:'+(w+10)+';display:none;position:fixed"></div>'}else{T='<div class="blockUI '+a.blockMsgClass+' blockElement" style="z-index:'+(w+10)+';display:none;position:absolute"></div>'}x=e(T);if(g){if(a.theme){x.css(h);x.addClass("ui-widget-content")}else x.css(l)}if(!a.theme)S.css(a.overlayCSS);S.css("position",m?"fixed":"absolute");if(n||a.forceIframe)E.css("opacity",0);var N=[E,S,x],C=m?e("body"):e(i);e.each(N,function(){this.appendTo(C)});if(a.theme&&a.draggable&&e.fn.draggable){x.draggable({handle:".ui-dialog-titlebar",cancel:"li"})}var k=s&&(!e.support.boxModel||e("object,embed",m?null:i).length>0);if(r||k){if(m&&a.allowBodyStretch&&e.support.boxModel)e("html,body").css("height","100%");if((r||!e.support.boxModel)&&!m){var L=v(i,"borderTopWidth"),A=v(i,"borderLeftWidth");var O=L?"(0 - "+L+")":0;var M=A?"(0 - "+A+")":0}e.each(N,function(e,t){var n=t[0].style;n.position="absolute";if(e<2){if(m)n.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+a.quirksmodeOffsetHack+') + "px"');else n.setExpression("height",'this.parentNode.offsetHeight + "px"');if(m)n.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');else n.setExpression("width",'this.parentNode.offsetWidth + "px"');if(M)n.setExpression("left",M);if(O)n.setExpression("top",O)}else if(a.centerY){if(m)n.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');n.marginTop=0}else if(!a.centerY&&m){var r=a.css&&a.css.top?parseInt(a.css.top,10):0;var i="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+r+') + "px"';n.setExpression("top",i)}})}if(g){if(a.theme)x.find(".ui-widget-content").append(g);else x.append(g);if(g.jquery||g.nodeType)e(g).show()}if((n||a.forceIframe)&&a.showOverlay)E.show();if(a.fadeIn){var _=a.onBlock?a.onBlock:t;var D=a.showOverlay&&!g?_:t;var P=g?_:t;if(a.showOverlay)S._fadeIn(a.fadeIn,D);if(g)x._fadeIn(a.fadeIn,P)}else{if(a.showOverlay)S.show();if(g)x.show();if(a.onBlock)a.onBlock()}c(1,i,a);if(m){o=x[0];u=e(a.focusableElements,o);if(a.focusInput)setTimeout(p,20)}else d(x[0],a.centerX,a.centerY);if(a.timeout){var H=setTimeout(function(){if(m)e.unblockUI(a);else e(i).unblock(a)},a.timeout);e(i).data("blockUI.timeout",H)}}function f(t,n){var r;var i=t==window;var s=e(t);var a=s.data("blockUI.history");var f=s.data("blockUI.timeout");if(f){clearTimeout(f);s.removeData("blockUI.timeout")}n=e.extend({},e.blockUI.defaults,n||{});c(0,t,n);if(n.onUnblock===null){n.onUnblock=s.data("blockUI.onUnblock");s.removeData("blockUI.onUnblock")}var h;if(i)h=e("body").children().filter(".blockUI").add("body > .blockUI");else h=s.find(">.blockUI");if(n.cursorReset){if(h.length>1)h[1].style.cursor=n.cursorReset;if(h.length>2)h[2].style.cursor=n.cursorReset}if(i)o=u=null;if(n.fadeOut){r=h.length;h.stop().fadeOut(n.fadeOut,function(){if(--r===0)l(h,a,n,t)})}else l(h,a,n,t)}function l(t,n,r,i){var s=e(i);if(s.data("blockUI.isBlocked"))return;t.each(function(e,t){if(this.parentNode)this.parentNode.removeChild(this)});if(n&&n.el){n.el.style.display=n.display;n.el.style.position=n.position;if(n.parent)n.parent.appendChild(n.el);s.removeData("blockUI.history")}if(s.data("blockUI.static")){s.css("position","static")}if(typeof r.onUnblock=="function")r.onUnblock(i,r);var o=e(document.body),u=o.width(),a=o[0].style.width;o.width(u-1).width(u);o[0].style.width=a}function c(t,n,r){var i=n==window,s=e(n);if(!t&&(i&&!o||!i&&!s.data("blockUI.isBlocked")))return;s.data("blockUI.isBlocked",t);if(!i||!r.bindEvents||t&&!r.showOverlay)return;var u="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";if(t)e(document).bind(u,r,h);else e(document).unbind(u,h)}function h(t){if(t.type==="keydown"&&t.keyCode&&t.keyCode==9){if(o&&t.data.constrainTabKey){var n=u;var r=!t.shiftKey&&t.target===n[n.length-1];var i=t.shiftKey&&t.target===n[0];if(r||i){setTimeout(function(){p(i)},10);return false}}}var s=t.data;var a=e(t.target);if(a.hasClass("blockOverlay")&&s.onOverlayClick)s.onOverlayClick(t);if(a.parents("div."+s.blockMsgClass).length>0)return true;return a.parents().children().filter("div.blockUI").length===0}function p(e){if(!u)return;var t=u[e===true?u.length-1:0];if(t)t.focus()}function d(e,t,n){var r=e.parentNode,i=e.style;var s=(r.offsetWidth-e.offsetWidth)/2-v(r,"borderLeftWidth");var o=(r.offsetHeight-e.offsetHeight)/2-v(r,"borderTopWidth");if(t)i.left=s>0?s+"px":"0";if(n)i.top=o>0?o+"px":"0"}function v(t,n){return parseInt(e.css(t,n),10)||0}e.fn._fadeIn=e.fn.fadeIn;var t=e.noop||function(){};var n=/MSIE/.test(navigator.userAgent);var r=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent);var i=document.documentMode||0;var s=e.isFunction(document.createElement("div").style.setExpression);e.blockUI=function(e){a(window,e)};e.unblockUI=function(e){f(window,e)};e.growlUI=function(t,n,r,i){var s=e('<div class="growlUI"></div>');if(t)s.append("<h1>"+t+"</h1>");if(n)s.append("<h2>"+n+"</h2>");if(r===undefined)r=3e3;var o=function(t){t=t||{};e.blockUI({message:s,fadeIn:typeof t.fadeIn!=="undefined"?t.fadeIn:700,fadeOut:typeof t.fadeOut!=="undefined"?t.fadeOut:1e3,timeout:typeof t.timeout!=="undefined"?t.timeout:r,centerY:false,showOverlay:false,onUnblock:i,css:e.blockUI.defaults.growlCSS})};o();var u=s.css("opacity");s.mouseover(function(){o({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop();t.fadeTo(300,1)}).mouseout(function(){e(".blockMsg").fadeOut(1e3)})};e.fn.block=function(t){if(this[0]===window){e.blockUI(t);return this}var n=e.extend({},e.blockUI.defaults,t||{});this.each(function(){var t=e(this);if(n.ignoreIfBlocked&&t.data("blockUI.isBlocked"))return;t.unblock({fadeOut:0})});return this.each(function(){if(e.css(this,"position")=="static"){this.style.position="relative";e(this).data("blockUI.static",true)}this.style.zoom=1;a(this,t)})};e.fn.unblock=function(t){if(this[0]===window){e.unblockUI(t);return this}return this.each(function(){f(this,t)})};e.blockUI.version=2.66;e.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:true,theme:false,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#fff",border:"1px solid #ff0000",backgroundColor:"#ff0000",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#fff",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:false,baseZ:1e3,centerX:true,centerY:true,allowBodyStretch:true,bindEvents:true,constrainTabKey:true,fadeIn:200,fadeOut:400,timeout:0,showOverlay:true,focusInput:true,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:false};var o=null;var u=[]}if(typeof define==="function"&&define.amd&&define.amd.jQuery){define(["jquery"],e)}else{e(jQuery)}})();
17
+
18
+
19
+ /**
20
+ * Switchery
21
+ * -----------------------------------------------------
22
+ * https://github.com/abpetkov/switchery
23
+ */
24
+
25
+ (function(){function require(path,parent,orig){var resolved=require.resolve(path);if(null==resolved){orig=orig||path;parent=parent||"root";var err=new Error('Failed to require "'+orig+'" from "'+parent+'"');err.path=orig;err.parent=parent;err.require=true;throw err}var module=require.modules[resolved];if(!module._resolving&&!module.exports){var mod={};mod.exports={};mod.client=mod.component=true;module._resolving=true;module.call(this,mod.exports,require.relative(resolved),mod);delete module._resolving;module.exports=mod.exports}return module.exports}require.modules={};require.aliases={};require.resolve=function(path){if(path.charAt(0)==="/")path=path.slice(1);var paths=[path,path+".js",path+".json",path+"/index.js",path+"/index.json"];for(var i=0;i<paths.length;i++){var path=paths[i];if(require.modules.hasOwnProperty(path))return path;if(require.aliases.hasOwnProperty(path))return require.aliases[path]}};require.normalize=function(curr,path){var segs=[];if("."!=path.charAt(0))return path;curr=curr.split("/");path=path.split("/");for(var i=0;i<path.length;++i){if(".."==path[i]){curr.pop()}else if("."!=path[i]&&""!=path[i]){segs.push(path[i])}}return curr.concat(segs).join("/")};require.register=function(path,definition){require.modules[path]=definition};require.alias=function(from,to){if(!require.modules.hasOwnProperty(from)){throw new Error('Failed to alias "'+from+'", it does not exist')}require.aliases[to]=from};require.relative=function(parent){var p=require.normalize(parent,"..");function lastIndexOf(arr,obj){var i=arr.length;while(i--){if(arr[i]===obj)return i}return-1}function localRequire(path){var resolved=localRequire.resolve(path);return require(resolved,parent,path)}localRequire.resolve=function(path){var c=path.charAt(0);if("/"==c)return path.slice(1);if("."==c)return require.normalize(p,path);var segs=parent.split("/");var i=lastIndexOf(segs,"deps")+1;if(!i)i=0;path=segs.slice(0,i+1).join("/")+"/deps/"+path;return path};localRequire.exists=function(path){return require.modules.hasOwnProperty(localRequire.resolve(path))};return localRequire};require.register("abpetkov-transitionize/transitionize.js",function(exports,require,module){module.exports=Transitionize;function Transitionize(element,props){if(!(this instanceof Transitionize))return new Transitionize(element,props);this.element=element;this.props=props||{};this.init()}Transitionize.prototype.isSafari=function(){return/Safari/.test(navigator.userAgent)&&/Apple Computer/.test(navigator.vendor)};Transitionize.prototype.init=function(){var transitions=[];for(var key in this.props){transitions.push(key+" "+this.props[key])}this.element.style.transition=transitions.join(", ");if(this.isSafari())this.element.style.webkitTransition=transitions.join(", ")}});require.register("ftlabs-fastclick/lib/fastclick.js",function(exports,require,module){function FastClick(layer){"use strict";var oldOnClick,self=this;this.trackingClick=false;this.trackingClickStart=0;this.targetElement=null;this.touchStartX=0;this.touchStartY=0;this.lastTouchIdentifier=0;this.touchBoundary=10;this.layer=layer;if(!layer||!layer.nodeType){throw new TypeError("Layer must be a document node")}this.onClick=function(){return FastClick.prototype.onClick.apply(self,arguments)};this.onMouse=function(){return FastClick.prototype.onMouse.apply(self,arguments)};this.onTouchStart=function(){return FastClick.prototype.onTouchStart.apply(self,arguments)};this.onTouchMove=function(){return FastClick.prototype.onTouchMove.apply(self,arguments)};this.onTouchEnd=function(){return FastClick.prototype.onTouchEnd.apply(self,arguments)};this.onTouchCancel=function(){return FastClick.prototype.onTouchCancel.apply(self,arguments)};if(FastClick.notNeeded(layer)){return}if(this.deviceIsAndroid){layer.addEventListener("mouseover",this.onMouse,true);layer.addEventListener("mousedown",this.onMouse,true);layer.addEventListener("mouseup",this.onMouse,true)}layer.addEventListener("click",this.onClick,true);layer.addEventListener("touchstart",this.onTouchStart,false);layer.addEventListener("touchmove",this.onTouchMove,false);layer.addEventListener("touchend",this.onTouchEnd,false);layer.addEventListener("touchcancel",this.onTouchCancel,false);if(!Event.prototype.stopImmediatePropagation){layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;if(type==="click"){rmv.call(layer,type,callback.hijacked||callback,capture)}else{rmv.call(layer,type,callback,capture)}};layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;if(type==="click"){adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){if(!event.propagationStopped){callback(event)}}),capture)}else{adv.call(layer,type,callback,capture)}}}if(typeof layer.onclick==="function"){oldOnClick=layer.onclick;layer.addEventListener("click",function(event){oldOnClick(event)},false);layer.onclick=null}}FastClick.prototype.deviceIsAndroid=navigator.userAgent.indexOf("Android")>0;FastClick.prototype.deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent);FastClick.prototype.deviceIsIOS4=FastClick.prototype.deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent);FastClick.prototype.deviceIsIOSWithBadTarget=FastClick.prototype.deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled){return true}break;case"input":if(this.deviceIsIOS&&target.type==="file"||target.disabled){return true}break;case"label":case"video":return true}return/\bneedsclick\b/.test(target.className)};FastClick.prototype.needsFocus=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"textarea":return true;case"select":return!this.deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return false}return!target.disabled&&!target.readOnly;default:return/\bneedsfocus\b/.test(target.className)}};FastClick.prototype.sendClick=function(targetElement,event){"use strict";var clickEvent,touch;if(document.activeElement&&document.activeElement!==targetElement){document.activeElement.blur()}touch=event.changedTouches[0];clickEvent=document.createEvent("MouseEvents");clickEvent.initMouseEvent(this.determineEventType(targetElement),true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);clickEvent.forwardedTouchEvent=true;targetElement.dispatchEvent(clickEvent)};FastClick.prototype.determineEventType=function(targetElement){"use strict";if(this.deviceIsAndroid&&targetElement.tagName.toLowerCase()==="select"){return"mousedown"}return"click"};FastClick.prototype.focus=function(targetElement){"use strict";var length;if(this.deviceIsIOS&&targetElement.setSelectionRange&&targetElement.type.indexOf("date")!==0&&targetElement.type!=="time"){length=targetElement.value.length;targetElement.setSelectionRange(length,length)}else{targetElement.focus()}};FastClick.prototype.updateScrollParent=function(targetElement){"use strict";var scrollParent,parentElement;scrollParent=targetElement.fastClickScrollParent;if(!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement;targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}if(scrollParent){scrollParent.fastClickLastScrollTop=scrollParent.scrollTop}};FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){"use strict";if(eventTarget.nodeType===Node.TEXT_NODE){return eventTarget.parentNode}return eventTarget};FastClick.prototype.onTouchStart=function(event){"use strict";var targetElement,touch,selection;if(event.targetTouches.length>1){return true}targetElement=this.getTargetElementFromEventTarget(event.target);touch=event.targetTouches[0];if(this.deviceIsIOS){selection=window.getSelection();if(selection.rangeCount&&!selection.isCollapsed){return true}if(!this.deviceIsIOS4){if(touch.identifier===this.lastTouchIdentifier){event.preventDefault();return false}this.lastTouchIdentifier=touch.identifier;this.updateScrollParent(targetElement)}}this.trackingClick=true;this.trackingClickStart=event.timeStamp;this.targetElement=targetElement;this.touchStartX=touch.pageX;this.touchStartY=touch.pageY;if(event.timeStamp-this.lastClickTime<200){event.preventDefault()}return true};FastClick.prototype.touchHasMoved=function(event){"use strict";var touch=event.changedTouches[0],boundary=this.touchBoundary;if(Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary){return true}return false};FastClick.prototype.onTouchMove=function(event){"use strict";if(!this.trackingClick){return true}if(this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event)){this.trackingClick=false;this.targetElement=null}return true};FastClick.prototype.findControl=function(labelElement){"use strict";if(labelElement.control!==undefined){return labelElement.control}if(labelElement.htmlFor){return document.getElementById(labelElement.htmlFor)}return labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")};FastClick.prototype.onTouchEnd=function(event){"use strict";var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick){return true}if(event.timeStamp-this.lastClickTime<200){this.cancelNextClick=true;return true}this.cancelNextClick=false;this.lastClickTime=event.timeStamp;trackingClickStart=this.trackingClickStart;this.trackingClick=false;this.trackingClickStart=0;if(this.deviceIsIOSWithBadTarget){touch=event.changedTouches[0];targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement;targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent}targetTagName=targetElement.tagName.toLowerCase();if(targetTagName==="label"){forElement=this.findControl(targetElement);if(forElement){this.focus(targetElement);if(this.deviceIsAndroid){return false}targetElement=forElement}}else if(this.needsFocus(targetElement)){if(event.timeStamp-trackingClickStart>100||this.deviceIsIOS&&window.top!==window&&targetTagName==="input"){this.targetElement=null;return false}this.focus(targetElement);if(!this.deviceIsIOS4||targetTagName!=="select"){this.targetElement=null;event.preventDefault()}return false}if(this.deviceIsIOS&&!this.deviceIsIOS4){scrollParent=targetElement.fastClickScrollParent;if(scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop){return true}}if(!this.needsClick(targetElement)){event.preventDefault();this.sendClick(targetElement,event)}return false};FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=false;this.targetElement=null};FastClick.prototype.onMouse=function(event){"use strict";if(!this.targetElement){return true}if(event.forwardedTouchEvent){return true}if(!event.cancelable){return true}if(!this.needsClick(this.targetElement)||this.cancelNextClick){if(event.stopImmediatePropagation){event.stopImmediatePropagation()}else{event.propagationStopped=true}event.stopPropagation();event.preventDefault();return false}return true};FastClick.prototype.onClick=function(event){"use strict";var permitted;if(this.trackingClick){this.targetElement=null;this.trackingClick=false;return true}if(event.target.type==="submit"&&event.detail===0){return true}permitted=this.onMouse(event);if(!permitted){this.targetElement=null}return permitted};FastClick.prototype.destroy=function(){"use strict";var layer=this.layer;if(this.deviceIsAndroid){layer.removeEventListener("mouseover",this.onMouse,true);layer.removeEventListener("mousedown",this.onMouse,true);layer.removeEventListener("mouseup",this.onMouse,true)}layer.removeEventListener("click",this.onClick,true);layer.removeEventListener("touchstart",this.onTouchStart,false);layer.removeEventListener("touchmove",this.onTouchMove,false);layer.removeEventListener("touchend",this.onTouchEnd,false);layer.removeEventListener("touchcancel",this.onTouchCancel,false)};FastClick.notNeeded=function(layer){"use strict";var metaViewport;var chromeVersion;if(typeof window.ontouchstart==="undefined"){return true}chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1];if(chromeVersion){if(FastClick.prototype.deviceIsAndroid){metaViewport=document.querySelector("meta[name=viewport]");if(metaViewport){if(metaViewport.content.indexOf("user-scalable=no")!==-1){return true}if(chromeVersion>31&&window.innerWidth<=window.screen.width){return true}}}else{return true}}if(layer.style.msTouchAction==="none"){return true}return false};FastClick.attach=function(layer){"use strict";return new FastClick(layer)};if(typeof define!=="undefined"&&define.amd){define(function(){"use strict";return FastClick})}else if(typeof module!=="undefined"&&module.exports){module.exports=FastClick.attach;module.exports.FastClick=FastClick}else{window.FastClick=FastClick}});require.register("switchery/switchery.js",function(exports,require,module){var transitionize=require("transitionize"),fastclick=require("fastclick");module.exports=Switchery;var defaults={color:"#64bd63",secondaryColor:"#dfdfdf",className:"switchery",disabled:false,disabledOpacity:.5,speed:"0.4s"};function Switchery(element,options){if(!(this instanceof Switchery))return new Switchery(element,options);this.element=element;this.options=options||{};for(var i in defaults){if(this.options[i]==null){this.options[i]=defaults[i]}}if(this.element!=null&&this.element.type=="checkbox")this.init()}Switchery.prototype.hide=function(){this.element.style.display="none"};Switchery.prototype.show=function(){var switcher=this.create();this.insertAfter(this.element,switcher)};Switchery.prototype.create=function(){this.switcher=document.createElement("span");this.jack=document.createElement("small");this.switcher.appendChild(this.jack);this.switcher.className=this.options.className;return this.switcher};Switchery.prototype.insertAfter=function(reference,target){reference.parentNode.insertBefore(target,reference.nextSibling)};Switchery.prototype.isChecked=function(){return this.element.checked};Switchery.prototype.isDisabled=function(){return this.options.disabled||this.element.disabled};Switchery.prototype.setPosition=function(clicked){var checked=this.isChecked(),switcher=this.switcher,jack=this.jack;if(clicked&&checked)checked=false;else if(clicked&&!checked)checked=true;if(checked===true){this.element.checked=true;if(window.getComputedStyle)jack.style.left=parseInt(window.getComputedStyle(switcher).width)-parseInt(window.getComputedStyle(jack).width)+"px";else jack.style.left=parseInt(switcher.currentStyle["width"])-parseInt(jack.currentStyle["width"])+"px";if(this.options.color)this.colorize();this.setSpeed()}else{jack.style.left=0;this.element.checked=false;this.switcher.style.boxShadow="inset 0 0 0 0 "+this.options.secondaryColor;this.switcher.style.borderColor=this.options.secondaryColor;this.switcher.style.backgroundColor=this.options.secondaryColor!==defaults.secondaryColor?this.options.secondaryColor:"#fff";this.setSpeed()}};Switchery.prototype.setSpeed=function(){var switcherProp={},jackProp={left:this.options.speed.replace(/[a-z]/,"")/2+"s"};if(this.isChecked()){switcherProp={border:this.options.speed,"box-shadow":this.options.speed,"background-color":this.options.speed.replace(/[a-z]/,"")*3+"s"}}else{switcherProp={border:this.options.speed,"box-shadow":this.options.speed}}transitionize(this.switcher,switcherProp);transitionize(this.jack,jackProp)};Switchery.prototype.colorize=function(){this.switcher.style.backgroundColor=this.options.color;this.switcher.style.borderColor=this.options.color;this.switcher.style.boxShadow="inset 0 0 0 16px "+this.options.color};Switchery.prototype.handleOnchange=function(state){if(typeof Event==="function"||!document.fireEvent){var event=document.createEvent("HTMLEvents");event.initEvent("change",true,true);this.element.dispatchEvent(event)}else{this.element.fireEvent("onchange")}};Switchery.prototype.handleChange=function(){var self=this,el=this.element;if(el.addEventListener){el.addEventListener("change",function(){self.setPosition()})}else{el.attachEvent("onchange",function(){self.setPosition()})}};Switchery.prototype.handleClick=function(){var self=this,switcher=this.switcher,parent=self.element.parentNode.tagName.toLowerCase(),labelParent=parent==="label"?false:true;if(this.isDisabled()===false){fastclick(switcher);if(switcher.addEventListener){switcher.addEventListener("click",function(){self.setPosition(labelParent);self.handleOnchange(self.element.checked)})}else{switcher.attachEvent("onclick",function(){self.setPosition(labelParent);self.handleOnchange(self.element.checked)})}}else{this.element.disabled=true;this.switcher.style.opacity=this.options.disabledOpacity}};Switchery.prototype.markAsSwitched=function(){this.element.setAttribute("data-switchery",true)};Switchery.prototype.markedAsSwitched=function(){return this.element.getAttribute("data-switchery")};Switchery.prototype.init=function(){this.hide();this.show();this.setPosition();this.markAsSwitched();this.handleChange();this.handleClick()}});require.alias("abpetkov-transitionize/transitionize.js","switchery/deps/transitionize/transitionize.js");require.alias("abpetkov-transitionize/transitionize.js","switchery/deps/transitionize/index.js");require.alias("abpetkov-transitionize/transitionize.js","transitionize/index.js");require.alias("abpetkov-transitionize/transitionize.js","abpetkov-transitionize/index.js");require.alias("ftlabs-fastclick/lib/fastclick.js","switchery/deps/fastclick/lib/fastclick.js");require.alias("ftlabs-fastclick/lib/fastclick.js","switchery/deps/fastclick/index.js");require.alias("ftlabs-fastclick/lib/fastclick.js","fastclick/index.js");require.alias("ftlabs-fastclick/lib/fastclick.js","ftlabs-fastclick/index.js");require.alias("switchery/switchery.js","switchery/index.js");if(typeof exports=="object"){module.exports=require("switchery")}else if(typeof define=="function"&&define.amd){define(function(){return require("switchery")})}else{this["Switchery"]=require("switchery")}})();
26
+
27
+
28
+ /**
29
+ * Sortable
30
+ * -----------------------------------------------------
31
+ * https://github.com/RubaXa/Sortable
32
+ */
33
+
34
+ !function(a){"use strict";"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){"use strict";function a(a,b){this.el=a,this.options=b=s({},b),a[J]=this;var d={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0};for(var e in d)!(e in b)&&(b[e]=d[e]);var g=b.group;g&&"object"==typeof g||(g=b.group={name:g}),["pull","put"].forEach(function(a){a in g||(g[a]=!0)}),b.groups=" "+g.name+(g.put.join?" "+g.put.join(" "):"")+" ";for(var h in this)"_"===h.charAt(0)&&(this[h]=c(this,this[h]));f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),f(a,"dragover",this),f(a,"dragenter",this),R.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){v&&v.state!==a&&(i(v,"display",a?"none":""),!a&&v.state&&w.insertBefore(v,t),v.state=a)}function c(a,b){var c=Q.call(arguments,2);return b.bind?b.bind.apply(b,[a].concat(c)):function(){return b.apply(a,c.concat(Q.call(arguments)))}}function d(a,b,c){if(a){c=c||L,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");do if(">*"===d&&a.parentNode===c||(""===d||a.nodeName.toUpperCase()==d)&&(!b.length||((" "+a.className+" ").match(e)||[]).length==b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function e(a){a.dataTransfer.dropEffect="move",a.preventDefault()}function f(a,b,c){a.addEventListener(b,c,!1)}function g(a,b,c){a.removeEventListener(b,c,!1)}function h(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(I," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(I," ")}}function i(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return L.defaultView&&L.defaultView.getComputedStyle?c=L.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function j(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function k(a,b,c,d,e,f,g){var h=L.createEvent("Event"),i=(a||b[J]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=v,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function l(a,b,c,d,e,f){var g,h,i=a[J],j=i.options.onMove;return j&&(g=L.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),h=j.call(i,g)),h}function m(a){a.draggable=!1}function n(){O=!1}function o(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return b.clientY-(d.top+d.height)>5&&c}function p(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function q(a){for(var b=0;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&b++;return b}function r(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function s(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H={},I=/\s+/g,J="Sortable"+(new Date).getTime(),K=window,L=K.document,M=K.parseInt,N=!!("draggable"in L.createElement("div")),O=!1,P=Math.abs,Q=[].slice,R=[],S=r(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(z!==c&&(y=b.scroll,z=c,y===!0)){y=c;do if(y.offsetWidth<y.scrollWidth||y.offsetHeight<y.scrollHeight)break;while(y=y.parentNode)}y&&(d=y,e=y.getBoundingClientRect(),f=(P(e.right-j)<=h)-(P(e.left-j)<=h),g=(P(e.bottom-k)<=h)-(P(e.top-k)<=h)),f||g||(f=(h>=l-j)-(h>=j),g=(h>=m-k)-(h>=k),(f||g)&&(d=K)),(H.vx!==f||H.vy!==g||H.el!==d)&&(H.el=d,H.vx=f,H.vy=g,clearInterval(H.pid),d&&(H.pid=setInterval(function(){d===K?K.scrollTo(K.pageXOffset+f*i,K.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30);return a.prototype={constructor:a,_onTapStart:function(a){var b=this,c=this.el,e=this.options,f=a.type,g=a.touches&&a.touches[0],h=(g||a).target,i=h,j=e.filter;if(!("mousedown"===f&&0!==a.button||e.disabled)&&(h=d(h,e.draggable,c))){if(C=q(h),"function"==typeof j){if(j.call(this,a,h,this))return k(b,i,"filter",h,c,C),void a.preventDefault()}else if(j&&(j=j.split(",").some(function(a){return a=d(i,a.trim(),c),a?(k(b,a,"filter",h,c,C),!0):void 0})))return void a.preventDefault();(!e.handle||d(i,e.handle,c))&&this._prepareDragStart(a,g,h)}},_prepareDragStart:function(a,b,c){var d,e=this,g=e.el,h=e.options,i=g.ownerDocument;c&&!t&&c.parentNode===g&&(F=a,w=g,t=c,x=t.nextSibling,E=h.group,d=function(){e._disableDelayedDrag(),t.draggable=!0,h.ignore.split(",").forEach(function(a){j(t,a.trim(),m)}),e._triggerDragStart(b)},f(i,"mouseup",e._onDrop),f(i,"touchend",e._onDrop),f(i,"touchcancel",e._onDrop),h.delay?(f(i,"mousemove",e._disableDelayedDrag),f(i,"touchmove",e._disableDelayedDrag),e._dragStartTimer=setTimeout(d,h.delay)):d())},_disableDelayedDrag:function(){var a=this.el.ownerDocument;clearTimeout(this._dragStartTimer),g(a,"mousemove",this._disableDelayedDrag),g(a,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(a){a?(F={target:t,clientX:a.clientX,clientY:a.clientY},this._onDragStart(F,"touch")):N?(f(t,"dragend",this),f(w,"dragstart",this._onDragStart)):this._onDragStart(F,!0);try{L.selection?L.selection.empty():window.getSelection().removeAllRanges()}catch(b){}},_dragStarted:function(){w&&t&&(h(t,this.options.ghostClass,!0),a.active=this,k(this,w,"start",t,w,C))},_emulateDragOver:function(){if(G){i(u,"display","none");var a=L.elementFromPoint(G.clientX,G.clientY),b=a,c=" "+this.options.group.name,d=R.length;if(b)do{if(b[J]&&b[J].options.groups.indexOf(c)>-1){for(;d--;)R[d]({clientX:G.clientX,clientY:G.clientY,target:a,rootEl:b});break}a=b}while(b=b.parentNode);i(u,"display","")}},_onTouchMove:function(a){if(F){var b=a.touches?a.touches[0]:a,c=b.clientX-F.clientX,d=b.clientY-F.clientY,e=a.touches?"translate3d("+c+"px,"+d+"px,0)":"translate("+c+"px,"+d+"px)";G=b,i(u,"webkitTransform",e),i(u,"mozTransform",e),i(u,"msTransform",e),i(u,"transform",e),a.preventDefault()}},_onDragStart:function(a,b){var c=a.dataTransfer,d=this.options;if(this._offUpEvents(),"clone"==E.pull&&(v=t.cloneNode(!0),i(v,"display","none"),w.insertBefore(v,t)),b){var e,g=t.getBoundingClientRect(),h=i(t);u=t.cloneNode(!0),i(u,"top",g.top-M(h.marginTop,10)),i(u,"left",g.left-M(h.marginLeft,10)),i(u,"width",g.width),i(u,"height",g.height),i(u,"opacity","0.8"),i(u,"position","fixed"),i(u,"zIndex","100000"),w.appendChild(u),e=u.getBoundingClientRect(),i(u,"width",2*g.width-e.width),i(u,"height",2*g.height-e.height),"touch"===b?(f(L,"touchmove",this._onTouchMove),f(L,"touchend",this._onDrop),f(L,"touchcancel",this._onDrop)):(f(L,"mousemove",this._onTouchMove),f(L,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,150)}else c&&(c.effectAllowed="move",d.setData&&d.setData.call(this,c,t)),f(L,"drop",this);setTimeout(this._dragStarted,0)},_onDragOver:function(a){var c,e,f,g=this.el,h=this.options,j=h.group,k=j.put,m=E===j,p=h.sort;if(void 0!==a.preventDefault&&(a.preventDefault(),!h.dragoverBubble&&a.stopPropagation()),E&&!h.disabled&&(m?p||(f=!w.contains(t)):E.pull&&k&&(E.name===j.name||k.indexOf&&~k.indexOf(E.name)))&&(void 0===a.rootEl||a.rootEl===this.el)){if(S(a,h,this.el),O)return;if(c=d(a.target,h.draggable,g),e=t.getBoundingClientRect(),f)return b(!0),void(v||x?w.insertBefore(t,v||x):p||w.appendChild(t));if(0===g.children.length||g.children[0]===u||g===a.target&&(c=o(g,a))){if(c){if(c.animated)return;r=c.getBoundingClientRect()}b(m),l(w,g,t,e,c,r)!==!1&&(g.appendChild(t),this._animate(e,t),c&&this._animate(r,c))}else if(c&&!c.animated&&c!==t&&void 0!==c.parentNode[J]){A!==c&&(A=c,B=i(c));var q,r=c.getBoundingClientRect(),s=r.right-r.left,y=r.bottom-r.top,z=/left|right|inline/.test(B.cssFloat+B.display),C=c.offsetWidth>t.offsetWidth,D=c.offsetHeight>t.offsetHeight,F=(z?(a.clientX-r.left)/s:(a.clientY-r.top)/y)>.5,G=c.nextElementSibling,H=l(w,g,t,e,c,r);H!==!1&&(O=!0,setTimeout(n,30),b(m),q=1===H||-1===H?1===H:z?c.previousElementSibling===t&&!C||F&&C:G!==t&&!D||F&&D,q&&!G?g.appendChild(t):c.parentNode.insertBefore(t,q?G:c),this._animate(e,t),this._animate(r,c))}}},_animate:function(a,b){var c=this.options.animation;if(c){var d=b.getBoundingClientRect();i(b,"transition","none"),i(b,"transform","translate3d("+(a.left-d.left)+"px,"+(a.top-d.top)+"px,0)"),b.offsetWidth,i(b,"transition","all "+c+"ms"),i(b,"transform","translate3d(0,0,0)"),clearTimeout(b.animated),b.animated=setTimeout(function(){i(b,"transition",""),i(b,"transform",""),b.animated=!1},c)}},_offUpEvents:function(){var a=this.el.ownerDocument;g(L,"touchmove",this._onTouchMove),g(a,"mouseup",this._onDrop),g(a,"touchend",this._onDrop),g(a,"touchcancel",this._onDrop)},_onDrop:function(b){var c=this.el,d=this.options;clearInterval(this._loopId),clearInterval(H.pid),clearTimeout(this._dragStartTimer),g(L,"drop",this),g(L,"mousemove",this._onTouchMove),g(c,"dragstart",this._onDragStart),this._offUpEvents(),b&&(b.preventDefault(),!d.dropBubble&&b.stopPropagation(),u&&u.parentNode.removeChild(u),t&&(g(t,"dragend",this),m(t),h(t,this.options.ghostClass,!1),w!==t.parentNode?(D=q(t),k(null,t.parentNode,"sort",t,w,C,D),k(this,w,"sort",t,w,C,D),k(null,t.parentNode,"add",t,w,C,D),k(this,w,"remove",t,w,C,D)):(v&&v.parentNode.removeChild(v),t.nextSibling!==x&&(D=q(t),k(this,w,"update",t,w,C,D),k(this,w,"sort",t,w,C,D))),a.active&&(k(this,w,"end",t,w,C,D),this.save())),w=t=u=x=v=y=z=F=G=A=B=E=a.active=null)},handleEvent:function(a){var b=a.type;"dragover"===b||"dragenter"===b?t&&(this._onDragOver(a),e(a)):("drop"===b||"dragend"===b)&&this._onDrop(a)},toArray:function(){for(var a,b=[],c=this.el.children,e=0,f=c.length,g=this.options;f>e;e++)a=c[e],d(a,g.draggable,this.el)&&b.push(a.getAttribute(g.dataIdAttr)||p(a));return b},sort:function(a){var b={},c=this.el;this.toArray().forEach(function(a,e){var f=c.children[e];d(f,this.options.draggable,c)&&(b[a]=f)},this),a.forEach(function(a){b[a]&&(c.removeChild(b[a]),c.appendChild(b[a]))})},save:function(){var a=this.options.store;a&&a.set(this)},closest:function(a,b){return d(a,b||this.options.draggable,this.el)},option:function(a,b){var c=this.options;return void 0===b?c[a]:void(c[a]=b)},destroy:function(){var a=this.el;a[J]=null,g(a,"mousedown",this._onTapStart),g(a,"touchstart",this._onTapStart),g(a,"dragover",this),g(a,"dragenter",this),Array.prototype.forEach.call(a.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),R.splice(R.indexOf(this._onDragOver),1),this._onDrop(),this.el=a=null}},a.utils={on:f,off:g,css:i,find:j,bind:c,is:function(a,b){return!!d(a,b,a)},extend:s,throttle:r,closest:d,toggleClass:h,index:q},a.version="1.2.1",a.create=function(b,c){return new a(b,c)},a});
35
+
36
+
framework/admin/js/pointers.js ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * CSMM
3
+ * Backend GUI pointers
4
+ * (c) Web factory Ltd, 2016 - 2018
5
+ */
6
+
7
+ jQuery(document).ready(function($){
8
+ if (typeof csmm_pointers == 'undefined') {
9
+ return;
10
+ }
11
+
12
+ $.each(csmm_pointers, function(index, pointer) {
13
+ if (index.charAt(0) == '_') {
14
+ return true;
15
+ }
16
+ $(pointer.target).pointer({
17
+ content: '<h3>Minimal Coming Soon &amp; Maintenance Mode</h3><p>' + pointer.content + '</p>',
18
+ pointerWidth: 380,
19
+ position: {
20
+ edge: pointer.edge,
21
+ align: pointer.align
22
+ },
23
+ close: function() {
24
+ $.post(ajaxurl, {
25
+ pointer: index,
26
+ _ajax_nonce: csmm_pointers._nonce_dismiss_pointer,
27
+ action: 'csmm_dismiss_pointer'
28
+ });
29
+ }
30
+ }).pointer('open');
31
+ });
32
+ });
framework/admin/settings.php CHANGED
@@ -26,6 +26,13 @@ function csmm_admin_settings() {
26
  else :
27
  $tmp_options['status'] = '2';
28
  endif;
 
 
 
 
 
 
 
29
 
30
 
31
  // Checking whether the user logged in option is checked or not
@@ -78,8 +85,10 @@ function csmm_admin_settings() {
78
 
79
  // Saving the record to the database
80
  $update_options = array(
81
- 'status' => $tmp_options['status'],
82
- 'title' => strip_tags( $_POST['signals_csmm_title'] ),
 
 
83
  'header_text' => strip_tags( $_POST['signals_csmm_header'] ),
84
  'secondary_text' => strip_tags( $_POST['signals_csmm_secondary'] ),
85
  'antispam_text' => strip_tags( $_POST['signals_csmm_antispam'] ),
@@ -142,19 +151,30 @@ function csmm_admin_settings() {
142
 
143
  // Updating the options in the database and showing message to the user
144
  update_option( 'signals_csmm_options', $update_options );
145
- $signals_csmm_err = '<div class="signals-alert signals-alert-info"><strong>Great!</strong> Options have been updated.</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  }
147
 
148
 
149
  // Grab options from the database
150
  $signals_csmm_options = csmm_get_options();
151
 
152
-
153
- // Grabbing admin_email from the database
154
- $user = wp_get_current_user();
155
- $signals_admin_email = $user->user_email;
156
-
157
-
158
  // View template for the settings panel
159
  require 'views/settings.php';
160
  } // csmm_admin_settings
@@ -219,6 +239,7 @@ function csmm_ajax_support() {
219
  }
220
  add_action( 'wp_ajax_signals_csmm_support', 'csmm_ajax_support' );
221
  add_action( 'wp_ajax_csmm_rate_hide', 'csmm_rate_hide' );
 
222
 
223
  function csmm_rate_hide() {
224
  set_transient('csmm_rate_hide', true, DAY_IN_SECONDS * 700);
26
  else :
27
  $tmp_options['status'] = '2';
28
  endif;
29
+
30
+ // Checking whether the love option is checked or not
31
+ if ( isset( $_POST['signals_csmm_love'] ) ) :
32
+ $tmp_options['love'] = absint( $_POST['signals_csmm_love'] );
33
+ else :
34
+ $tmp_options['love'] = '0';
35
+ endif;
36
 
37
 
38
  // Checking whether the user logged in option is checked or not
85
 
86
  // Saving the record to the database
87
  $update_options = array(
88
+ 'status' => $tmp_options['status'],
89
+ 'love' => $tmp_options['love'],
90
+ 'title' => strip_tags( $_POST['signals_csmm_title'] ),
91
+ 'description' => strip_tags( $_POST['signals_csmm_description'] ),
92
  'header_text' => strip_tags( $_POST['signals_csmm_header'] ),
93
  'secondary_text' => strip_tags( $_POST['signals_csmm_secondary'] ),
94
  'antispam_text' => strip_tags( $_POST['signals_csmm_antispam'] ),
151
 
152
  // Updating the options in the database and showing message to the user
153
  update_option( 'signals_csmm_options', $update_options );
154
+ $signals_csmm_err = '<div class="signals-alert signals-alert-info"><strong>Great!</strong> Options have been updated.<button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>';
155
+
156
+ if (function_exists('w3tc_pgcache_flush')) {
157
+ w3tc_pgcache_flush();
158
+ }
159
+ if (function_exists('wp_cache_clear_cache')) {
160
+ wp_cache_clear_cache();
161
+ }
162
+ if (class_exists('Endurance_Page_Cache')) {
163
+ $epc = new Endurance_Page_Cache;
164
+ $epc->purge_all();
165
+ }
166
+ if (class_exists('SG_CachePress_Supercacher') && method_exists('SG_CachePress_Supercacher', 'purge_cache')) {
167
+ SG_CachePress_Supercacher::purge_cache(true);
168
+ }
169
+ if (isset($GLOBALS['wp_fastest_cache']) && method_exists($GLOBALS['wp_fastest_cache'], 'deleteCache')) {
170
+ $GLOBALS['wp_fastest_cache']->deleteCache(true);
171
+ }
172
  }
173
 
174
 
175
  // Grab options from the database
176
  $signals_csmm_options = csmm_get_options();
177
 
 
 
 
 
 
 
178
  // View template for the settings panel
179
  require 'views/settings.php';
180
  } // csmm_admin_settings
239
  }
240
  add_action( 'wp_ajax_signals_csmm_support', 'csmm_ajax_support' );
241
  add_action( 'wp_ajax_csmm_rate_hide', 'csmm_rate_hide' );
242
+ add_action( 'wp_ajax_csmm_dismiss_pointer', 'csmm_dismiss_pointer_ajax');
243
 
244
  function csmm_rate_hide() {
245
  set_transient('csmm_rate_hide', true, DAY_IN_SECONDS * 700);
framework/admin/views/header.php CHANGED
@@ -12,9 +12,9 @@
12
  <div class="signals-cnt-fix">
13
  <div class="signals-fix-wp38">
14
  <div class="signals-header signals-clearfix">
15
- <img src="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/img/lrg-icon.png" class="signals-logo">
16
  <p>
17
- <strong><?php _e( 'Maintenance Mode', 'signals' ); ?></strong>
18
  <span><?php _e( 'by', 'signals' ); ?> <a href="http://www.webfactoryltd.com/" target="_blank"><?php _e( 'Web Factory Ltd', 'signals' ); ?></a></span>
19
  </p>
20
 
12
  <div class="signals-cnt-fix">
13
  <div class="signals-fix-wp38">
14
  <div class="signals-header signals-clearfix">
15
+ <img src="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/img/mm-icon.png" class="signals-logo">
16
  <p>
17
+ <strong><?php _e( 'Minimal Coming Soon &amp; Maintenance Mode', 'signals' ); ?></strong>
18
  <span><?php _e( 'by', 'signals' ); ?> <a href="http://www.webfactoryltd.com/" target="_blank"><?php _e( 'Web Factory Ltd', 'signals' ); ?></a></span>
19
  </p>
20
 
framework/admin/views/settings-advanced.php CHANGED
@@ -20,7 +20,7 @@
20
  <input type="checkbox" class="signals-form-ios" id="signals_csmm_disable" name="signals_csmm_disable" value="1"<?php checked( '1', $signals_csmm_options['disable_settings'] ); ?>>
21
 
22
  <p class="signals-form-help-block"><?php _e( 'If you enable this option, the plugin will ignore everything except the HTML you provide.', 'signals' ); ?></p>
23
- <p class="signals-form-help-block"><?php _e( 'Basically, you will have a blank template which you can fill with your provided html content. Only basic css gets added by the plugin which does the task of browser styling reset. You should style your html content either inline or by inserting styling in the custom css section. In short, use this option only if you know what you are doing.', 'signals' ); ?></p>
24
  </div>
25
 
26
  <div class="signals-form-group">
@@ -29,7 +29,7 @@
29
  <textarea name="signals_csmm_html" id="signals_csmm_html" rows="8" placeholder="<?php _e( 'Custom HTML for the plugin', 'signals' ); ?>"><?php echo stripslashes( $signals_csmm_options['custom_html'] ); ?></textarea>
30
 
31
  <p class="signals-form-help-block"><?php echo __( 'Custom HTML for the plugin goes over here. Please note that ', 'signals' ) . '<i style="color: #f96773">' . __( '[html], [head], [title], [meta], [body], and similar tags', 'signals' ) . '</i>' . __( ' are not required. Only provide content HTML for the page.', 'signals' ); ?></p>
32
- <p class="signals-form-help-block"><?php _e( 'To insert subscription form anywhere in the html, simply use the placeholder <strong>{{form}}</strong> and you are done. This should only be used if you have enabled the above option to use custom HTML only.', 'signals' ); ?></p>
33
  </div>
34
 
35
  <div class="signals-form-group">
20
  <input type="checkbox" class="signals-form-ios" id="signals_csmm_disable" name="signals_csmm_disable" value="1"<?php checked( '1', $signals_csmm_options['disable_settings'] ); ?>>
21
 
22
  <p class="signals-form-help-block"><?php _e( 'If you enable this option, the plugin will ignore everything except the HTML you provide.', 'signals' ); ?></p>
23
+ <p class="signals-form-help-block"><?php _e( 'Basically, you will have a blank template which you can fill with your provided HTML content. Only basic CSS gets added by the plugin which does the task of browser styling reset. You should style your HTML content either inline or by inserting styling in the custom CSS section. In short, use this option only if you know what you are doing.', 'signals' ); ?></p>
24
  </div>
25
 
26
  <div class="signals-form-group">
29
  <textarea name="signals_csmm_html" id="signals_csmm_html" rows="8" placeholder="<?php _e( 'Custom HTML for the plugin', 'signals' ); ?>"><?php echo stripslashes( $signals_csmm_options['custom_html'] ); ?></textarea>
30
 
31
  <p class="signals-form-help-block"><?php echo __( 'Custom HTML for the plugin goes over here. Please note that ', 'signals' ) . '<i style="color: #f96773">' . __( '[html], [head], [title], [meta], [body], and similar tags', 'signals' ) . '</i>' . __( ' are not required. Only provide content HTML for the page.', 'signals' ); ?></p>
32
+ <p class="signals-form-help-block"><?php _e( 'To insert subscription form anywhere in the HTML, simply use the placeholder <strong>{{form}}</strong> and you are done. This should only be used if you have enabled the above option to use custom HTML only.', 'signals' ); ?></p>
33
  </div>
34
 
35
  <div class="signals-form-group">
framework/admin/views/settings-basic.php CHANGED
@@ -16,19 +16,19 @@
16
 
17
  <div class="signals-section-content">
18
  <div class="signals-double-group signals-clearfix">
19
- <div class="signals-form-group">
20
  <label for="signals_csmm_status" class="signals-strong"><?php _e( 'Enable Maintenance Mode?', 'signals' ); ?></label>
21
  <input type="checkbox" class="signals-form-ios" name="signals_csmm_status" id="signals_csmm_status" value="1"<?php checked( '1', $signals_csmm_options['status'] ); ?>>
22
 
23
  <p class="signals-form-help-block"><?php _e( 'Set the plugin status. Do you want to enable <strong>Maintenance Mode</strong> for your website?', 'signals' ); ?></p>
24
  </div>
 
 
 
 
25
 
26
- <div class="signals-form-group">
27
- <label for="signals_csmm_title" class="signals-strong"><?php _e( 'Page Title', 'signals' ); ?></label>
28
- <input type="text" name="signals_csmm_title" id="signals_csmm_title" value="<?php echo esc_attr_e( stripslashes( $signals_csmm_options['title'] ) ); ?>" placeholder="<?php esc_attr_e( 'Please provide a Page Title', 'signals' ); ?>" class="signals-form-control">
29
-
30
- <p class="signals-form-help-block"><?php _e( 'Provide title for the maintenance page.', 'signals' ); ?></p>
31
- </div>
32
  </div>
33
 
34
  <div class="signals-double-group signals-clearfix">
@@ -46,6 +46,22 @@
46
  <p class="signals-form-help-block"><?php _e( 'Do you want to exclude search engines from viewing maintenance page? This will enable search engines to view your regular website and not the Maintenance Mode page even if the plugin is enabled.', 'signals' ); ?></p>
47
  </div>
48
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
  <div class="signals-double-group signals-clearfix">
51
  <div class="signals-form-group">
@@ -56,7 +72,7 @@
56
  </div>
57
 
58
  <div class="signals-form-group">
59
- <label for="signals_csmm_secondary" class="signals-strong"><?php _e( 'Secondary Text', 'signals' ); ?></label>
60
  <textarea name="signals_csmm_secondary" id="signals_csmm_secondary" rows="3" placeholder="<?php esc_attr_e( 'Secondary text for the maintenance page', 'signals' ); ?>"><?php echo esc_textarea( stripslashes( $signals_csmm_options['secondary_text'] ) ); ?></textarea>
61
 
62
  <p class="signals-form-help-block"><?php _e( 'Provide secondary text for the maintenance page. It is not recommended to leave this blank.', 'signals' ); ?></p>
@@ -85,28 +101,19 @@
85
  <ul id="arrange-items">
86
  <?php
87
 
88
- if ( isset( $signals_csmm_options['arrange'] ) && '' != ( $signals_csmm_options['arrange'] ) ) {
89
  $signals_arrange = explode( ',', $signals_csmm_options['arrange'] );
90
-
91
- // list items
92
- foreach ( $signals_arrange as $signals_item ) {
93
- if ( 'html' == $signals_item ) {
94
- echo '<li data-id="' . $signals_item . '"><span class="dashicons dashicons-menu"></span> ' . __( 'Custom HTML', 'signals' ) . '</li>';
95
- } else {
96
- echo '<li data-id="' . $signals_item . '"><span class="dashicons dashicons-menu"></span> ' . ucfirst( $signals_item ) . '</li>';
97
- }
98
- }
99
- } else {
100
-
101
- ?>
102
-
103
- <li data-id="logo"><span class="dashicons dashicons-sort"></span> <?php _e( 'Logo', 'signals' ); ?></li>
104
- <li data-id="header"><span class="dashicons dashicons-sort"></span> <?php _e( 'Header Text', 'signals' ); ?></li>
105
- <li data-id="secondary"><span class="dashicons dashicons-sort"></span> <?php _e( 'Secondary Text', 'signals' ); ?></li>
106
- <li data-id="form"><span class="dashicons dashicons-sort"></span> <?php _e( 'Form', 'signals' ); ?></li>
107
- <li data-id="html"><span class="dashicons dashicons-sort"></span> <?php _e( 'Custom HTML', 'signals' ); ?></li>
108
-
109
- <?php } // arrange ?>
110
  </ul>
111
 
112
  <input type="hidden" name="signals_csmm_arrange" id="signals_csmm_arrange" value="<?php echo esc_attr_e( $signals_csmm_options['arrange'] ); ?>">
@@ -116,7 +123,7 @@
116
  <label for="signals_csmm_analytics" class="signals-strong"><?php _e( 'Analytics Code', 'signals' ); ?></label>
117
  <textarea name="signals_csmm_analytics" id="signals_csmm_analytics" rows="5" placeholder="<?php esc_attr_e( 'Analytics code for the maintenance page', 'signals' ); ?>"><?php echo esc_textarea( stripslashes( $signals_csmm_options['analytics'] ) ); ?></textarea>
118
 
119
- <p class="signals-form-help-block"><?php _e( 'Provide analytics code for the maintenance page. It\'s good to have tracking installed :)', 'signals' ); ?></p>
120
  </div>
121
  </div>
122
  </div>
16
 
17
  <div class="signals-section-content">
18
  <div class="signals-double-group signals-clearfix">
19
+ <div id="main-status" class="signals-form-group">
20
  <label for="signals_csmm_status" class="signals-strong"><?php _e( 'Enable Maintenance Mode?', 'signals' ); ?></label>
21
  <input type="checkbox" class="signals-form-ios" name="signals_csmm_status" id="signals_csmm_status" value="1"<?php checked( '1', $signals_csmm_options['status'] ); ?>>
22
 
23
  <p class="signals-form-help-block"><?php _e( 'Set the plugin status. Do you want to enable <strong>Maintenance Mode</strong> for your website?', 'signals' ); ?></p>
24
  </div>
25
+
26
+ <div id="love-status" class="signals-form-group">
27
+ <label for="signals_csmm_love" class="signals-strong"><?php _e( 'Show Some Love', 'signals' ); ?></label>
28
+ <input type="checkbox" class="signals-form-ios" name="signals_csmm_love" id="signals_csmm_love" value="1"<?php checked( '1', $signals_csmm_options['love'] ); ?>>
29
 
30
+ <p class="signals-form-help-block"><?php _e( 'Please help others learn about this free plugin by placing a small link in the footer. Thank you very much!', 'signals' ); ?></p>
31
+ </div>
 
 
 
 
32
  </div>
33
 
34
  <div class="signals-double-group signals-clearfix">
46
  <p class="signals-form-help-block"><?php _e( 'Do you want to exclude search engines from viewing maintenance page? This will enable search engines to view your regular website and not the Maintenance Mode page even if the plugin is enabled.', 'signals' ); ?></p>
47
  </div>
48
  </div>
49
+
50
+ <div class="signals-double-group signals-clearfix">
51
+ <div class="signals-form-group">
52
+ <label for="signals_csmm_title" class="signals-strong"><?php _e( 'Page Title', 'signals' ); ?></label>
53
+ <input type="text" name="signals_csmm_title" id="signals_csmm_title" value="<?php echo esc_attr_e( stripslashes( $signals_csmm_options['title'] ) ); ?>" placeholder="<?php esc_attr_e( 'Please provide the Page Title', 'signals' ); ?>" class="signals-form-control">
54
+
55
+ <p class="signals-form-help-block"><?php _e( 'Provide title for the maintenance page, for SEO.', 'signals' ); ?></p>
56
+ </div>
57
+
58
+ <div class="signals-form-group">
59
+ <label for="signals_csmm_description" class="signals-strong"><?php _e( 'Page Description', 'signals' ); ?></label>
60
+ <input type="text" name="signals_csmm_description" id="signals_csmm_description" value="<?php echo esc_attr_e( stripslashes( $signals_csmm_options['description'] ) ); ?>" placeholder="<?php esc_attr_e( 'Please provide the Page Description', 'signals' ); ?>" class="signals-form-control">
61
+
62
+ <p class="signals-form-help-block"><?php _e( 'Provide description for the maintenance page, for SEO', 'signals' ); ?></p>
63
+ </div>
64
+ </div>
65
 
66
  <div class="signals-double-group signals-clearfix">
67
  <div class="signals-form-group">
72
  </div>
73
 
74
  <div class="signals-form-group">
75
+ <label for="signals_csmm_secondary" class="signals-strong"><?php _e( 'Content', 'signals' ); ?></label>
76
  <textarea name="signals_csmm_secondary" id="signals_csmm_secondary" rows="3" placeholder="<?php esc_attr_e( 'Secondary text for the maintenance page', 'signals' ); ?>"><?php echo esc_textarea( stripslashes( $signals_csmm_options['secondary_text'] ) ); ?></textarea>
77
 
78
  <p class="signals-form-help-block"><?php _e( 'Provide secondary text for the maintenance page. It is not recommended to leave this blank.', 'signals' ); ?></p>
101
  <ul id="arrange-items">
102
  <?php
103
 
104
+ if (!empty( $signals_csmm_options['arrange'])) {
105
  $signals_arrange = explode( ',', $signals_csmm_options['arrange'] );
106
+ } else {
107
+ $signals_arrange = array('logo', 'header', 'secondary', 'form', 'html');
108
+ }
109
+ $section_names = array('logo' => 'Logo', 'header' => 'Header', 'secondary' => 'Content', 'form' => 'Form', 'html' => 'Custom HTML');
110
+ $section_links = array('logo' => 'design', 'header' => 'design', 'secondary' => 'design', 'form' => 'form', 'html' => 'advanced');
111
+
112
+ // list items
113
+ foreach ( $signals_arrange as $signals_item ) {
114
+ echo '<li data-id="' . $signals_item . '"><div class="actions-left"><span class="dashicons dashicons-menu"></span> ' . $section_names[$signals_item] . '</div><div class="actions-right"><a href="#' . $section_links[$signals_item] . '" class="js-action csmm-change-tab" title="Edit element"><span class="dashicons dashicons-edit"></span></a></div></li>';
115
+ }
116
+ ?>
 
 
 
 
 
 
 
 
 
117
  </ul>
118
 
119
  <input type="hidden" name="signals_csmm_arrange" id="signals_csmm_arrange" value="<?php echo esc_attr_e( $signals_csmm_options['arrange'] ); ?>">
123
  <label for="signals_csmm_analytics" class="signals-strong"><?php _e( 'Analytics Code', 'signals' ); ?></label>
124
  <textarea name="signals_csmm_analytics" id="signals_csmm_analytics" rows="5" placeholder="<?php esc_attr_e( 'Analytics code for the maintenance page', 'signals' ); ?>"><?php echo esc_textarea( stripslashes( $signals_csmm_options['analytics'] ) ); ?></textarea>
125
 
126
+ <p class="signals-form-help-block"><?php _e( 'Copy&amp;paste the complete analytics code, including the opening and closing <i>&lt;script&gt;</i> tags.', 'signals' ); ?></p>
127
  </div>
128
  </div>
129
  </div>
framework/admin/views/settings-design.php CHANGED
@@ -90,7 +90,7 @@
90
  <div class="signals-double-group signals-clearfix">
91
  <div class="signals-form-group">
92
  <label for="signals_csmm_width" class="signals-strong"><?php _e( 'Content Width (in px)', 'signals' ); ?></label>
93
- <input type="number" name="signals_csmm_width" id="signals_csmm_width" value="<?php esc_attr_e( $signals_csmm_options['content_width'] ); ?>" placeholder="<?php _e( 'Set content width for the page', 'signals' ); ?>" class="signals-form-control">
94
 
95
  <p class="signals-form-help-block"><?php _e( 'Set maximum width of the content (in pixels) for the maintenance page. Provide only numeric value. Example: Entering 400 will set the width of the content to 400px. Defaults to 440px.', 'signals' ); ?></p>
96
  </div>
@@ -155,7 +155,7 @@
155
  </div>
156
 
157
  <div class="signals-form-group">
158
- <label for="signals_csmm_secondary_font" class="signals-strong"><?php _e( 'Secondary Font', 'signals' ); ?></label>
159
 
160
  <select name="signals_csmm_secondary_font" id="signals_csmm_secondary_font" class="signals-google-fonts">
161
  <option value="Arial"<?php selected( 'Arial', $signals_csmm_options['secondary_font'] ); ?>>Arial</option>
@@ -176,8 +176,8 @@
176
  ?>
177
  </select>
178
 
179
- <h3><?php _e( 'This is how the secondary font is going to look!', 'signals' ); ?></h3>
180
- <p class="signals-form-help-block"><?php _e( 'Font for the secondary text. Listing a total of 668 Google web fonts.', 'signals' ); ?></p>
181
  </div>
182
  </div>
183
 
@@ -200,7 +200,7 @@
200
  </div>
201
 
202
  <div class="signals-form-group">
203
- <label for="signals_csmm_secondary_size" class="signals-strong"><?php _e( 'Secondary Text Size', 'signals' ); ?></label>
204
 
205
  <select name="signals_csmm_secondary_size" id="signals_csmm_secondary_size">
206
  <?php
@@ -213,7 +213,7 @@
213
  ?>
214
  </select>
215
 
216
- <p class="signals-form-help-block"><?php _e( 'Font size for the secondary text.', 'signals' ); ?></p>
217
  </div>
218
  </div>
219
 
@@ -226,10 +226,10 @@
226
  </div>
227
 
228
  <div class="signals-form-group">
229
- <label for="signals_csmm_secondary_color" class="signals-strong"><?php _e( 'Secondary Text Color', 'signals' ); ?></label>
230
- <input type="text" name="signals_csmm_secondary_color" id="signals_csmm_secondary_color" value="<?php esc_attr_e( $signals_csmm_options['secondary_font_color'] ); ?>" placeholder="<?php _e( 'Font color for the Secondary text', 'signals' ); ?>" class="jscolor signals-form-control color {required:false}">
231
 
232
- <p class="signals-form-help-block"><?php _e( 'Select font color for the secondary text.', 'signals' ); ?></p>
233
  </div>
234
  </div>
235
 
90
  <div class="signals-double-group signals-clearfix">
91
  <div class="signals-form-group">
92
  <label for="signals_csmm_width" class="signals-strong"><?php _e( 'Content Width (in px)', 'signals' ); ?></label>
93
+ <input style="width: 80px;" type="number" name="signals_csmm_width" id="signals_csmm_width" value="<?php esc_attr_e( $signals_csmm_options['content_width'] ); ?>" placeholder="<?php _e( 'Set content width for the page', 'signals' ); ?>" class="signals-form-control">
94
 
95
  <p class="signals-form-help-block"><?php _e( 'Set maximum width of the content (in pixels) for the maintenance page. Provide only numeric value. Example: Entering 400 will set the width of the content to 400px. Defaults to 440px.', 'signals' ); ?></p>
96
  </div>
155
  </div>
156
 
157
  <div class="signals-form-group">
158
+ <label for="signals_csmm_secondary_font" class="signals-strong"><?php _e( 'Content Font', 'signals' ); ?></label>
159
 
160
  <select name="signals_csmm_secondary_font" id="signals_csmm_secondary_font" class="signals-google-fonts">
161
  <option value="Arial"<?php selected( 'Arial', $signals_csmm_options['secondary_font'] ); ?>>Arial</option>
176
  ?>
177
  </select>
178
 
179
+ <h3><?php _e( 'This is how the content font is going to look!', 'signals' ); ?></h3>
180
+ <p class="signals-form-help-block"><?php _e( 'Font for the content text. Listing a total of 668 Google web fonts.', 'signals' ); ?></p>
181
  </div>
182
  </div>
183
 
200
  </div>
201
 
202
  <div class="signals-form-group">
203
+ <label for="signals_csmm_secondary_size" class="signals-strong"><?php _e( 'Content Text Size', 'signals' ); ?></label>
204
 
205
  <select name="signals_csmm_secondary_size" id="signals_csmm_secondary_size">
206
  <?php
213
  ?>
214
  </select>
215
 
216
+ <p class="signals-form-help-block"><?php _e( 'Font size for the content text.', 'signals' ); ?></p>
217
  </div>
218
  </div>
219
 
226
  </div>
227
 
228
  <div class="signals-form-group">
229
+ <label for="signals_csmm_secondary_color" class="signals-strong"><?php _e( 'Content Text Color', 'signals' ); ?></label>
230
+ <input type="text" name="signals_csmm_secondary_color" id="signals_csmm_secondary_color" value="<?php esc_attr_e( $signals_csmm_options['secondary_font_color'] ); ?>" placeholder="<?php _e( 'Font color for the content text', 'signals' ); ?>" class="jscolor signals-form-control color {required:false}">
231
 
232
+ <p class="signals-form-help-block"><?php _e( 'Select font color for the content text.', 'signals' ); ?></p>
233
  </div>
234
  </div>
235
 
framework/admin/views/settings-support.php CHANGED
@@ -17,9 +17,9 @@
17
  <div class="signals-section-content signals-support-form">
18
  <div class="signals-ajax-response"></div>
19
 
20
- <div class="signals-form-group">
21
  <label for="signals_support_email" class="signals-strong"><?php _e( 'Email Address', 'signals' ); ?></label>
22
- <input type="text" name="signals_support_email" id="signals_support_email" value="<?php echo esc_attr_e( $signals_admin_email ); ?>" placeholder="<?php _e( 'Please provide your email address', 'signals' ); ?>" class="signals-form-control">
23
 
24
  <p class="signals-form-help-block"><?php _e( 'You will receive support response on this email address.', 'signals' ); ?></p>
25
  </div>
@@ -31,7 +31,7 @@
31
  <p class="signals-form-help-block"><?php _e( 'Please explain the issue you are facing with the plugin. Provide as much detail as possible.', 'signals' ); ?></p>
32
  </div>
33
 
34
- <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0">
35
  <label for="" class="signals-strong">Additional data</label>
36
  <?php
37
  $theme = wp_get_theme();
@@ -47,7 +47,7 @@
47
  <p class="signals-form-help-block">Our support agents need this info to provide faster &amp; better support. The data above will be added to your message.</p>
48
  </div>
49
 
50
- <button class="signals-btn signals-create-ticket"><strong><?php _e( 'Ask for Support', 'signals' ); ?></strong></button>
51
  </div>
52
  </div>
53
  </div><!-- #support -->
17
  <div class="signals-section-content signals-support-form">
18
  <div class="signals-ajax-response"></div>
19
 
20
+ <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0;">
21
  <label for="signals_support_email" class="signals-strong"><?php _e( 'Email Address', 'signals' ); ?></label>
22
+ <input type="text" name="signals_support_email" id="signals_support_email" value="" placeholder="<?php _e( 'Your best email address', 'signals' ); ?>" class="signals-form-control">
23
 
24
  <p class="signals-form-help-block"><?php _e( 'You will receive support response on this email address.', 'signals' ); ?></p>
25
  </div>
31
  <p class="signals-form-help-block"><?php _e( 'Please explain the issue you are facing with the plugin. Provide as much detail as possible.', 'signals' ); ?></p>
32
  </div>
33
 
34
+ <div class="signals-form-group" style="border-bottom: none; padding-bottom: 0;">
35
  <label for="" class="signals-strong">Additional data</label>
36
  <?php
37
  $theme = wp_get_theme();
47
  <p class="signals-form-help-block">Our support agents need this info to provide faster &amp; better support. The data above will be added to your message.</p>
48
  </div>
49
 
50
+ <button class="signals-btn signals-create-ticket"><strong><?php _e( 'Send Support Message', 'signals' ); ?></strong></button>
51
  </div>
52
  </div>
53
  </div><!-- #support -->
framework/admin/views/settings.php CHANGED
@@ -40,7 +40,7 @@ require_once 'header.php';
40
 
41
  <div class="signals-float-left">
42
  <div class="signals-mobile-menu">
43
- <a href="javascript:void;">
44
  <img src="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/img/toggle.png" />
45
  </a>
46
  </div>
@@ -72,7 +72,7 @@ require_once 'header.php';
72
  <div class="signals-tile-body">
73
  <p class="signals-form-help-block" style="margin: 0; padding: 0 20px 0 10px;">
74
  <button type="submit" name="signals_csmm_submit" class="signals-btn signals-btn-red"><strong><?php _e( 'Save Changes', 'signals' ); ?></strong></button>
75
- <a style="margin: 0 0 0 15px;" href="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/preview.php" class="signals-btn" target="_blank"><strong><?php _e( 'Preview Maintenance Page', 'signals' ); ?></strong></a>
76
  </p>
77
  </div><!-- .signals-tile-body -->
78
  </div><!-- .signals-fixed-save-btn -->
40
 
41
  <div class="signals-float-left">
42
  <div class="signals-mobile-menu">
43
+ <a href="#">
44
  <img src="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/img/toggle.png" />
45
  </a>
46
  </div>
72
  <div class="signals-tile-body">
73
  <p class="signals-form-help-block" style="margin: 0; padding: 0 20px 0 10px;">
74
  <button type="submit" name="signals_csmm_submit" class="signals-btn signals-btn-red"><strong><?php _e( 'Save Changes', 'signals' ); ?></strong></button>
75
+ <a id="csmm-preview" style="margin: 0 0 0 15px;" href="<?php echo SIGNALS_CSMM_URL; ?>/framework/admin/preview.php" class="signals-btn" target="_blank"><strong><?php _e( 'Preview Maintenance Page', 'signals' ); ?></strong></a>
76
  </p>
77
  </div><!-- .signals-tile-body -->
78
  </div><!-- .signals-fixed-save-btn -->
framework/init.php ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class CSMM {
4
+ static function init() {
5
+ if (is_admin()) {
6
+ add_action('admin_action_csmm_change_status', array(__CLASS__, 'change_status'));
7
+ }
8
+
9
+ // admin bar notice for frontend & backend
10
+ add_action('wp_before_admin_bar_render', array(__CLASS__, 'admin_bar'));
11
+ add_action('wp_head', array(__CLASS__, 'admin_bar_style'));
12
+ add_action('admin_head', array(__CLASS__, 'admin_bar_style'));
13
+ }
14
+
15
+ static function admin_bar_style() {
16
+ // admin bar has to be anabled, user an admin and custom filter true
17
+ if (false === is_admin_bar_showing() || false === current_user_can('administrator') || false === apply_filters('csmm_show_admin_bar', true)) {
18
+ return;
19
+ }
20
+
21
+ // no sense in loading a new CSS file for 2 lines of CSS
22
+ $custom_css = '<style type="text/css">#wpadminbar i.csmm-status-dot { font-size: 17px; margin-top: -7px; color: #02ca02; height: 17px; display: inline-block; } #wpadminbar i.csmm-status-dot-enabled { color: #64bd63; } #wpadminbar i.csmm-status-dot-disabled { color: #FE2D2D; } #wpadminbar #csmm-status-wrapper { display: inline; border: 1px solid rgba(240,245,250,0.7); padding: 0; margin: 0 0 0 5px; background: rgb(35, 40, 45); } #wpadminbar .csmm-status-btn { padding: 0 7px; color: #fff; } #wpadminbar #csmm-status-wrapper.off #csmm-status-off { background: #FE2D2D;} #wpadminbar #csmm-status-wrapper.on #csmm-status-on { background: #64bd63; }#wp-admin-bar-csmm img.logo { height: 17px; margin-bottom: 4px; padding-right: 3px; } #wp-admin-bar-csmm a img { height: 17px; margin-bottom: -2px; padding-right: 3px; }</style>';
23
+
24
+ echo $custom_css;
25
+ } // admin_bar_style
26
+
27
+
28
+ // add admin bar menu and status
29
+ static function admin_bar() {
30
+ global $wp_admin_bar;
31
+
32
+ // only show to admins
33
+ if (false === current_user_can('administrator') || false === apply_filters('csmm_show_admin_bar', true)) {
34
+ return;
35
+ }
36
+
37
+ $options = csmm_get_options();
38
+
39
+ if (isset($_POST['signals_csmm_submit'])) {
40
+ $options['status'] = (string) (int) !empty($_POST['signals_csmm_status']);
41
+ }
42
+
43
+ if ($options['status'] == '1') {
44
+ $main_label = '<img src="' . SIGNALS_CSMM_URL . '/framework/admin/img/mm-icon.png" alt="' . __('Maintenance mode is enabled', 'under-construction-page') . '" title="' . __('Maintenance mode is enabled', 'under-construction-page') . '"> <span class="ab-label">' . __('Maintenance Mode', 'under-construction-page') . ' <i class="csmm-status-dot csmm-status-dot-enabled">&#9679;</i></span>';
45
+ $class = 'csmm-enabled';
46
+ $action_url = add_query_arg(array('action' => 'csmm_change_status', 'new_status' => 'disabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
47
+ $action = __('Maintenance mode', 'under-construction-page');
48
+ $action .= '<a href="' . $action_url . '" id="csmm-status-wrapper" class="on"><span id="csmm-status-off" class="csmm-status-btn">OFF</span><span id="csmm-status-on" class="csmm-status-btn">ON</span></a>';
49
+ } else {
50
+ $main_label = '<img src="' . SIGNALS_CSMM_URL . '/framework/admin/img/mm-icon.png" alt="' . __('Maintenance mode is disabled', 'under-construction-page') . '" title="' . __('Maintenance mode is disabled', 'under-construction-page') . '"> <span class="ab-label">' . __('Maintenance Mode', 'under-construction-page') . ' <i class="csmm-status-dot csmm-status-dot-disabled">&#9679;</i></span>';
51
+ $class = 'csmm-disabled';
52
+ $action_url = add_query_arg(array('action' => 'csmm_change_status', 'new_status' => 'enabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
53
+ $action = __('Maintenance mode', 'under-construction-page');
54
+ $action .= '<a href="' . $action_url . '" id="csmm-status-wrapper" class="off"><span id="csmm-status-off" class="csmm-status-btn">OFF</span><span id="csmm-status-on" class="csmm-status-btn">ON</span></a>';
55
+ }
56
+
57
+ $wp_admin_bar->add_menu(array(
58
+ 'parent' => '',
59
+ 'id' => 'csmm',
60
+ 'title' => $main_label,
61
+ 'href' => admin_url('options-general.php?page=maintenance_mode_options'),
62
+ 'meta' => array('class' => $class)
63
+ ));
64
+ $wp_admin_bar->add_node( array(
65
+ 'id' => 'csmm-status',
66
+ 'title' => $action,
67
+ 'href' => false,
68
+ 'parent'=> 'csmm'
69
+ ));
70
+ $wp_admin_bar->add_node( array(
71
+ 'id' => 'csmm-settings',
72
+ 'title' => 'Settings',
73
+ 'href' => admin_url('options-general.php?page=maintenance_mode_options'),
74
+ 'parent' => 'csmm'
75
+ ));
76
+ } // admin_bar
77
+
78
+
79
+ // change status via admin bar
80
+ static function change_status() {
81
+ if (empty($_GET['new_status'])) {
82
+ wp_redirect(admin_url());
83
+ exit;
84
+ }
85
+
86
+ $options = csmm_get_options();
87
+
88
+ if ($_GET['new_status'] == 'enabled') {
89
+ $options['status'] = '1';
90
+ } else {
91
+ $options['status'] = '2';
92
+ }
93
+
94
+ update_option('signals_csmm_options', $options);
95
+
96
+ if (!empty($_GET['redirect'])) {
97
+ wp_redirect($_GET['redirect']);
98
+ } else {
99
+ wp_redirect(admin_url());
100
+ }
101
+
102
+ exit;
103
+ } // change_status
104
+ } // class csmm
105
+
106
+ add_action('init', array('CSMM', 'init'));
framework/langs/en_US.mo DELETED
Binary file
framework/langs/en_US.po DELETED
@@ -1,903 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Minimal Coming Soon & Maintenance Mode\n"
4
- "POT-Creation-Date: 2015-08-10 07:21+0530\n"
5
- "PO-Revision-Date: 2015-08-10 07:21+0530\n"
6
- "Last-Translator: 69signals <ping@69signals.com>\n"
7
- "Language-Team: 69signals <ping@69signals.com>\n"
8
- "Language: en_US\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.7\n"
13
- "X-Poedit-Basepath: .\n"
14
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
- "X-Poedit-SourceCharset: UTF-8\n"
16
- "X-Poedit-KeywordsList: __;_e\n"
17
- "X-Poedit-SearchPath-0: .\n"
18
-
19
- #: framework/admin/init.php:15 framework/admin/views/settings.php:40
20
- msgid "Support"
21
- msgstr ""
22
-
23
- #: framework/admin/init.php:16
24
- msgid "Hire Us"
25
- msgstr ""
26
-
27
- #: framework/admin/init.php:35
28
- msgid "Coming Soon & Maintenance Mode"
29
- msgstr ""
30
-
31
- #: framework/admin/init.php:36 framework/admin/views/header.php:18
32
- msgid "Maintenance Mode"
33
- msgstr ""
34
-
35
- #: framework/admin/settings.php:171
36
- msgid "Please fill in both the fields to create your support ticket."
37
- msgstr ""
38
-
39
- #: framework/admin/settings.php:190
40
- msgid "We have received your support ticket. We will get back to you shortly!"
41
- msgstr ""
42
-
43
- #: framework/admin/settings.php:196
44
- msgid ""
45
- "There was an error creating the support ticket. You can try again later or "
46
- "send us an email directly to <strong>support@69signals.com</strong>"
47
- msgstr ""
48
-
49
- #: framework/admin/views/header.php:19
50
- msgid "by"
51
- msgstr ""
52
-
53
- #: framework/admin/views/header.php:19
54
- msgid "69signals"
55
- msgstr ""
56
-
57
- #: framework/admin/views/settings-about.php:15
58
- msgid "We are a Creative Digital Marketplace."
59
- msgstr ""
60
-
61
- #: framework/admin/views/settings-about.php:16
62
- msgid ""
63
- "We love to weave the web, simple but amazing. We create flawless web and "
64
- "mobile applications. Our perfectly crafted products will make you believe us."
65
- msgstr ""
66
-
67
- #: framework/admin/views/settings-about.php:26
68
- #: framework/admin/views/settings-about.php:35
69
- msgid "OFFERS"
70
- msgstr ""
71
-
72
- #: framework/admin/views/settings-about.php:46
73
- msgid "Show us some love. Connect with us via Social channels."
74
- msgstr ""
75
-
76
- #: framework/admin/views/settings-advanced.php:15
77
- msgid "ADVANCED"
78
- msgstr ""
79
-
80
- #: framework/admin/views/settings-advanced.php:16
81
- msgid ""
82
- "You can add custom HTML & CSS in this section. Making wrong changes over "
83
- "here will affect the working of the plugin."
84
- msgstr ""
85
-
86
- #: framework/admin/views/settings-advanced.php:20
87
- msgid "Use Custom HTML only"
88
- msgstr ""
89
-
90
- #: framework/admin/views/settings-advanced.php:23
91
- msgid ""
92
- "If you enable this option, the plugin will ignore everything except the HTML "
93
- "you provide."
94
- msgstr ""
95
-
96
- #: framework/admin/views/settings-advanced.php:24
97
- msgid ""
98
- "Basically, you will have a blank template which you can fill with your "
99
- "provided html content. Only basic css gets added by the plugin which does "
100
- "the task of browser styling reset. You should style your html content either "
101
- "inline or by inserting styling in the custom css section. In short, use this "
102
- "option only if you know what you are doing."
103
- msgstr ""
104
-
105
- #: framework/admin/views/settings-advanced.php:28
106
- #: framework/admin/views/settings-basic.php:95
107
- #: framework/admin/views/settings-basic.php:108
108
- msgid "Custom HTML"
109
- msgstr ""
110
-
111
- #: framework/admin/views/settings-advanced.php:30
112
- msgid "Custom HTML for the plugin"
113
- msgstr ""
114
-
115
- #: framework/admin/views/settings-advanced.php:32
116
- msgid "Custom HTML for the plugin goes over here. Please note that "
117
- msgstr ""
118
-
119
- #: framework/admin/views/settings-advanced.php:32
120
- msgid "[html], [head], [title], [meta], [body], and similar tags"
121
- msgstr ""
122
-
123
- #: framework/admin/views/settings-advanced.php:32
124
- msgid " are not required. Only provide content HTML for the page."
125
- msgstr ""
126
-
127
- #: framework/admin/views/settings-advanced.php:33
128
- msgid ""
129
- "To insert subscription form anywhere in the html, simply use the placeholder "
130
- "<strong>{{form}}</strong> and you are done. This should only be used if you "
131
- "have enabled the above option to use custom HTML only."
132
- msgstr ""
133
-
134
- #: framework/admin/views/settings-advanced.php:37
135
- msgid "Custom CSS"
136
- msgstr ""
137
-
138
- #: framework/admin/views/settings-advanced.php:39
139
- msgid "Custom CSS for the plugin"
140
- msgstr ""
141
-
142
- #: framework/admin/views/settings-advanced.php:41
143
- msgid "Custom CSS for the plugin goes over here."
144
- msgstr ""
145
-
146
- #: framework/admin/views/settings-basic.php:15
147
- msgid "BASIC"
148
- msgstr ""
149
-
150
- #: framework/admin/views/settings-basic.php:16
151
- msgid ""
152
- "Configure the core settings. Make sure you configure these options carefully "
153
- "as they are important for the working of the plugin."
154
- msgstr ""
155
-
156
- #: framework/admin/views/settings-basic.php:21
157
- msgid "Enable Maintenance Mode?"
158
- msgstr ""
159
-
160
- #: framework/admin/views/settings-basic.php:24
161
- msgid ""
162
- "Set the plugin status. Do you want to enable <strong>Maintenance Mode</"
163
- "strong> for your website?"
164
- msgstr ""
165
-
166
- #: framework/admin/views/settings-basic.php:28
167
- msgid "Page Title"
168
- msgstr ""
169
-
170
- #: framework/admin/views/settings-basic.php:31
171
- msgid "Provide title for the maintenance page."
172
- msgstr ""
173
-
174
- #: framework/admin/views/settings-basic.php:37
175
- #: framework/admin/views/settings-basic.php:105
176
- msgid "Header Text"
177
- msgstr ""
178
-
179
- #: framework/admin/views/settings-basic.php:40
180
- msgid ""
181
- "Provide header text for the maintenance page. It is not recommended to leave "
182
- "this blank."
183
- msgstr ""
184
-
185
- #: framework/admin/views/settings-basic.php:44
186
- #: framework/admin/views/settings-basic.php:106
187
- msgid "Secondary Text"
188
- msgstr ""
189
-
190
- #: framework/admin/views/settings-basic.php:47
191
- msgid ""
192
- "Provide secondary text for the maintenance page. It is not recommended to "
193
- "leave this blank."
194
- msgstr ""
195
-
196
- #: framework/admin/views/settings-basic.php:53
197
- msgid "Anti Spam Text"
198
- msgstr ""
199
-
200
- #: framework/admin/views/settings-basic.php:56
201
- msgid "Provide anti-spam text for the maintenance page."
202
- msgstr ""
203
-
204
- #: framework/admin/views/settings-basic.php:60
205
- msgid "Custom login URL"
206
- msgstr ""
207
-
208
- #: framework/admin/views/settings-basic.php:63
209
- msgid ""
210
- "In case you are using any plugin for custom login, provide your custom login "
211
- "URL over here. This plugin should be able to detect your custom login "
212
- "automatically in most of the situations. In case it fails to do so, you can "
213
- "provide the custom login URL over here."
214
- msgstr ""
215
-
216
- #: framework/admin/views/settings-basic.php:69
217
- msgid "Show normal website to logged in users?"
218
- msgstr ""
219
-
220
- #: framework/admin/views/settings-basic.php:72
221
- msgid ""
222
- "Enable this option if you want logged in users to view the website normally "
223
- "while visitors see the maintenance page."
224
- msgstr ""
225
-
226
- #: framework/admin/views/settings-basic.php:76
227
- msgid "Exclude Search Engines?"
228
- msgstr ""
229
-
230
- #: framework/admin/views/settings-basic.php:79
231
- msgid ""
232
- "Do you want to exclude search engines from viewing maintenance page? This "
233
- "will enable search engines to view your regular website and not the "
234
- "Maintenance Mode page even if the plugin is enabled."
235
- msgstr ""
236
-
237
- #: framework/admin/views/settings-basic.php:83
238
- msgid "Arrange Elements"
239
- msgstr ""
240
-
241
- #: framework/admin/views/settings-basic.php:84
242
- msgid ""
243
- "Select the order in which you would like to display the sections on the "
244
- "maintenance page. To change the order, simply drag the items and arrange as "
245
- "per your preference."
246
- msgstr ""
247
-
248
- #: framework/admin/views/settings-basic.php:104
249
- #: framework/admin/views/settings-design.php:22
250
- msgid "Logo"
251
- msgstr ""
252
-
253
- #: framework/admin/views/settings-basic.php:107
254
- #: framework/admin/views/settings.php:37
255
- msgid "Form"
256
- msgstr ""
257
-
258
- #: framework/admin/views/settings-basic.php:117
259
- msgid "Analytics Code"
260
- msgstr ""
261
-
262
- #: framework/admin/views/settings-basic.php:120
263
- msgid ""
264
- "Provide analytics code for the maintenance page. It's good to have tracking "
265
- "installed :)"
266
- msgstr ""
267
-
268
- #: framework/admin/views/settings-design.php:15
269
- msgid "DESIGN"
270
- msgstr ""
271
-
272
- #: framework/admin/views/settings-design.php:16
273
- msgid ""
274
- "Design settings for the plugin. You have the option to modify every aspect "
275
- "of the maintenance page design as per your requirements."
276
- msgstr ""
277
-
278
- #: framework/admin/views/settings-design.php:27
279
- #: framework/admin/views/settings-design.php:48
280
- #: framework/admin/views/settings-design.php:69
281
- msgid "Select an image or upload a new one"
282
- msgstr ""
283
-
284
- #: framework/admin/views/settings-design.php:31
285
- #: framework/admin/views/settings-design.php:52
286
- #: framework/admin/views/settings-design.php:73
287
- msgid "Select"
288
- msgstr ""
289
-
290
- #: framework/admin/views/settings-design.php:35
291
- #: framework/admin/views/settings-design.php:56
292
- #: framework/admin/views/settings-design.php:77
293
- msgid "Remove"
294
- msgstr ""
295
-
296
- #: framework/admin/views/settings-design.php:43
297
- msgid "Favicon"
298
- msgstr ""
299
-
300
- #: framework/admin/views/settings-design.php:64
301
- msgid "Background Cover Image"
302
- msgstr ""
303
-
304
- #: framework/admin/views/settings-design.php:85
305
- msgid "Content Overlay"
306
- msgstr ""
307
-
308
- #: framework/admin/views/settings-design.php:88
309
- msgid ""
310
- "If enabled, applies transparent background to the content section of the "
311
- "maintenance page."
312
- msgstr ""
313
-
314
- #: framework/admin/views/settings-design.php:93
315
- msgid "Content Width (in px)"
316
- msgstr ""
317
-
318
- #: framework/admin/views/settings-design.php:94
319
- msgid "Set content width for the page"
320
- msgstr ""
321
-
322
- #: framework/admin/views/settings-design.php:96
323
- msgid ""
324
- "Set maximum width of the content (in pixels) for the maintenance page. "
325
- "Provide only numeric value. Example: Entering 400 will set the width of the "
326
- "content to 400px. Defaults to 440px."
327
- msgstr ""
328
-
329
- #: framework/admin/views/settings-design.php:100
330
- msgid "Background Color"
331
- msgstr ""
332
-
333
- #: framework/admin/views/settings-design.php:101
334
- msgid "Background color for the page"
335
- msgstr ""
336
-
337
- #: framework/admin/views/settings-design.php:103
338
- msgid ""
339
- "Select background color for the page. If the background cover image is set, "
340
- "this option will be ignored."
341
- msgstr ""
342
-
343
- #: framework/admin/views/settings-design.php:109
344
- msgid "Content Position"
345
- msgstr ""
346
-
347
- #: framework/admin/views/settings-design.php:111
348
- #: framework/admin/views/settings-design.php:122
349
- msgid "Left"
350
- msgstr ""
351
-
352
- #: framework/admin/views/settings-design.php:112
353
- #: framework/admin/views/settings-design.php:123
354
- msgid "Center"
355
- msgstr ""
356
-
357
- #: framework/admin/views/settings-design.php:113
358
- #: framework/admin/views/settings-design.php:124
359
- msgid "Right"
360
- msgstr ""
361
-
362
- #: framework/admin/views/settings-design.php:116
363
- msgid ""
364
- "For the position of the content on the maintenance page. Does not work if "
365
- "the width is set to maximum which is 1170px."
366
- msgstr ""
367
-
368
- #: framework/admin/views/settings-design.php:120
369
- msgid "Content Alignment"
370
- msgstr ""
371
-
372
- #: framework/admin/views/settings-design.php:127
373
- msgid ""
374
- "For the alignment of the text on the maintenance page. Make it left, center, "
375
- "or right."
376
- msgstr ""
377
-
378
- #: framework/admin/views/settings-design.php:133
379
- msgid "Header Font"
380
- msgstr ""
381
-
382
- #: framework/admin/views/settings-design.php:154
383
- #: framework/admin/views/settings-design.php:180
384
- msgid "This is how this font is going to look!"
385
- msgstr ""
386
-
387
- #: framework/admin/views/settings-design.php:155
388
- msgid "Font for the header text. Listing a total of 668 Google web fonts."
389
- msgstr ""
390
-
391
- #: framework/admin/views/settings-design.php:159
392
- msgid "Secondary Font"
393
- msgstr ""
394
-
395
- #: framework/admin/views/settings-design.php:181
396
- msgid "Font for the secondary text. Listing a total of 668 Google web fonts."
397
- msgstr ""
398
-
399
- #: framework/admin/views/settings-design.php:187
400
- msgid "Header Text Size"
401
- msgstr ""
402
-
403
- #: framework/admin/views/settings-design.php:194
404
- #: framework/admin/views/settings-design.php:211
405
- #: framework/admin/views/settings-design.php:246
406
- #: framework/admin/views/settings-form.php:51
407
- #: framework/admin/views/settings-form.php:68
408
- msgid "px"
409
- msgstr ""
410
-
411
- #: framework/admin/views/settings-design.php:200
412
- msgid "Font size for the header text."
413
- msgstr ""
414
-
415
- #: framework/admin/views/settings-design.php:204
416
- msgid "Secondary Text Size"
417
- msgstr ""
418
-
419
- #: framework/admin/views/settings-design.php:217
420
- msgid "Font size for the secondary text."
421
- msgstr ""
422
-
423
- #: framework/admin/views/settings-design.php:223
424
- msgid "Header Text Color"
425
- msgstr ""
426
-
427
- #: framework/admin/views/settings-design.php:224
428
- msgid "Font color for the Header text"
429
- msgstr ""
430
-
431
- #: framework/admin/views/settings-design.php:226
432
- msgid "Select font color for the header text."
433
- msgstr ""
434
-
435
- #: framework/admin/views/settings-design.php:230
436
- msgid "Secondary Text Color"
437
- msgstr ""
438
-
439
- #: framework/admin/views/settings-design.php:231
440
- msgid "Font color for the Secondary text"
441
- msgstr ""
442
-
443
- #: framework/admin/views/settings-design.php:233
444
- msgid "Select font color for the secondary text."
445
- msgstr ""
446
-
447
- #: framework/admin/views/settings-design.php:239
448
- msgid "Antispam Text Size"
449
- msgstr ""
450
-
451
- #: framework/admin/views/settings-design.php:252
452
- msgid "Font size for the antispam text."
453
- msgstr ""
454
-
455
- #: framework/admin/views/settings-design.php:256
456
- msgid "Antispam Text Color"
457
- msgstr ""
458
-
459
- #: framework/admin/views/settings-design.php:257
460
- msgid "Font color for the Antispam text"
461
- msgstr ""
462
-
463
- #: framework/admin/views/settings-design.php:259
464
- msgid "Select font color for the antispam text."
465
- msgstr ""
466
-
467
- #: framework/admin/views/settings-email.php:15
468
- msgid "EMAIL"
469
- msgstr ""
470
-
471
- #: framework/admin/views/settings-email.php:16
472
- msgid ""
473
- "Email settings for the plugin. You can configure your MailChimp account API "
474
- "with this plugin to store collected emails in an list."
475
- msgstr ""
476
-
477
- #: framework/admin/views/settings-email.php:20
478
- msgid "MailChimp API"
479
- msgstr ""
480
-
481
- #: framework/admin/views/settings-email.php:23
482
- msgid "Provide your MailChimp API over here."
483
- msgstr ""
484
-
485
- #: framework/admin/views/settings-email.php:23
486
- msgid "Click here"
487
- msgstr ""
488
-
489
- #: framework/admin/views/settings-email.php:23
490
- msgid ""
491
- "to know how to get this information. In case you don't want to enable "
492
- "subscription option, just leave this field blank."
493
- msgstr ""
494
-
495
- #: framework/admin/views/settings-email.php:27
496
- msgid "MailChimp List"
497
- msgstr ""
498
-
499
- #: framework/admin/views/settings-email.php:42
500
- msgid ""
501
- "There was an error communicating with the MailChimp server. Please make sure "
502
- "that the API Key used is correct and try again."
503
- msgstr ""
504
-
505
- #: framework/admin/views/settings-email.php:44
506
- msgid ""
507
- "It seems that there is no list created for this account. Why not create one "
508
- "on the MailChimp website and then try here."
509
- msgstr ""
510
-
511
- #: framework/admin/views/settings-email.php:53
512
- msgid ""
513
- "Select your MailChimp list in which you would like to store the subscribers "
514
- "data."
515
- msgstr ""
516
-
517
- #: framework/admin/views/settings-email.php:56
518
- msgid ""
519
- "Provide your MailChimp API key in the above box and click on `Save Changes` "
520
- "option. Your lists will appear over here."
521
- msgstr ""
522
-
523
- #: framework/admin/views/settings-email.php:64
524
- msgid "Message: No Email"
525
- msgstr ""
526
-
527
- #: framework/admin/views/settings-email.php:67
528
- msgid ""
529
- "Provide error message to show if the user forgets to provide email address."
530
- msgstr ""
531
-
532
- #: framework/admin/views/settings-email.php:71
533
- msgid "Message: Already Subscribed"
534
- msgstr ""
535
-
536
- #: framework/admin/views/settings-email.php:74
537
- msgid ""
538
- "Provide message to show if the user is already subscribed to the mailing "
539
- "list."
540
- msgstr ""
541
-
542
- #: framework/admin/views/settings-email.php:80
543
- msgid "Message: General Error"
544
- msgstr ""
545
-
546
- #: framework/admin/views/settings-email.php:83
547
- msgid ""
548
- "Provide general error message to show if anything goes wrong while "
549
- "subscribing."
550
- msgstr ""
551
-
552
- #: framework/admin/views/settings-email.php:87
553
- msgid "Message: Successfully Subscribed"
554
- msgstr ""
555
-
556
- #: framework/admin/views/settings-email.php:90
557
- msgid "Provide message to show when the user gets subscribed successfully."
558
- msgstr ""
559
-
560
- #: framework/admin/views/settings-form.php:15
561
- msgid "FORM"
562
- msgstr ""
563
-
564
- #: framework/admin/views/settings-form.php:16
565
- msgid ""
566
- "Form design settings for the plugin. These settings affect the appearance of "
567
- "the Mail Chimp subscription form. You can customize styles for the input "
568
- "field and button."
569
- msgstr ""
570
-
571
- #: framework/admin/views/settings-form.php:21
572
- msgid "Input Text"
573
- msgstr ""
574
-
575
- #: framework/admin/views/settings-form.php:22
576
- msgid "Text for the Input field"
577
- msgstr ""
578
-
579
- #: framework/admin/views/settings-form.php:24
580
- msgid ""
581
- "Enter the text which you would like to use as a placeholder text for the "
582
- "text input field."
583
- msgstr ""
584
-
585
- #: framework/admin/views/settings-form.php:28
586
- msgid "Button Text"
587
- msgstr ""
588
-
589
- #: framework/admin/views/settings-form.php:29
590
- msgid "Text for the Button"
591
- msgstr ""
592
-
593
- #: framework/admin/views/settings-form.php:31
594
- msgid ""
595
- "Enter the text for the button. Usually, it will be \"Subscribe\" or "
596
- "something like that."
597
- msgstr ""
598
-
599
- #: framework/admin/views/settings-form.php:36
600
- msgid "Ignore Default Form Styles?"
601
- msgstr ""
602
-
603
- #: framework/admin/views/settings-form.php:39
604
- msgid ""
605
- "Enable this option if you would like to use your custom form styles. The "
606
- "settings below will only be applicable when this option is turned on."
607
- msgstr ""
608
-
609
- #: framework/admin/views/settings-form.php:44
610
- msgid "Input Text Size"
611
- msgstr ""
612
-
613
- #: framework/admin/views/settings-form.php:57
614
- msgid "Font size for the text input field."
615
- msgstr ""
616
-
617
- #: framework/admin/views/settings-form.php:61
618
- msgid "Button Text Size"
619
- msgstr ""
620
-
621
- #: framework/admin/views/settings-form.php:74
622
- msgid "Font size for the button text."
623
- msgstr ""
624
-
625
- #: framework/admin/views/settings-form.php:80
626
- msgid "Input Text Color"
627
- msgstr ""
628
-
629
- #: framework/admin/views/settings-form.php:81
630
- msgid "Font color for the Input text"
631
- msgstr ""
632
-
633
- #: framework/admin/views/settings-form.php:83
634
- msgid "Select font color for the input text field."
635
- msgstr ""
636
-
637
- #: framework/admin/views/settings-form.php:87
638
- msgid "Button Text Color"
639
- msgstr ""
640
-
641
- #: framework/admin/views/settings-form.php:88
642
- msgid "Font color for the Button text"
643
- msgstr ""
644
-
645
- #: framework/admin/views/settings-form.php:90
646
- msgid "Select font color for the button text."
647
- msgstr ""
648
-
649
- #: framework/admin/views/settings-form.php:96
650
- #: framework/admin/views/settings-form.php:112
651
- msgid "Input Background Color"
652
- msgstr ""
653
-
654
- #: framework/admin/views/settings-form.php:97
655
- msgid "Background color for the Input field"
656
- msgstr ""
657
-
658
- #: framework/admin/views/settings-form.php:99
659
- msgid "Select background color for the input text field."
660
- msgstr ""
661
-
662
- #: framework/admin/views/settings-form.php:103
663
- #: framework/admin/views/settings-form.php:119
664
- msgid "Button Background Color"
665
- msgstr ""
666
-
667
- #: framework/admin/views/settings-form.php:104
668
- msgid "Background color for the Button"
669
- msgstr ""
670
-
671
- #: framework/admin/views/settings-form.php:106
672
- msgid "Select background color for the button."
673
- msgstr ""
674
-
675
- #: framework/admin/views/settings-form.php:112
676
- #: framework/admin/views/settings-form.php:144
677
- msgid "FOCUS"
678
- msgstr ""
679
-
680
- #: framework/admin/views/settings-form.php:113
681
- msgid "Background color for the Input field when it gets clicked"
682
- msgstr ""
683
-
684
- #: framework/admin/views/settings-form.php:115
685
- msgid "Select background color for the input text field when it gets clicked."
686
- msgstr ""
687
-
688
- #: framework/admin/views/settings-form.php:119
689
- #: framework/admin/views/settings-form.php:151
690
- msgid "HOVER"
691
- msgstr ""
692
-
693
- #: framework/admin/views/settings-form.php:120
694
- msgid "Background color for the Button on hover"
695
- msgstr ""
696
-
697
- #: framework/admin/views/settings-form.php:122
698
- msgid "Select background color for the button on mouse hover."
699
- msgstr ""
700
-
701
- #: framework/admin/views/settings-form.php:128
702
- #: framework/admin/views/settings-form.php:144
703
- msgid "Input Border Color"
704
- msgstr ""
705
-
706
- #: framework/admin/views/settings-form.php:129
707
- msgid "Border color for the Input field"
708
- msgstr ""
709
-
710
- #: framework/admin/views/settings-form.php:131
711
- msgid "Select border color for the input field."
712
- msgstr ""
713
-
714
- #: framework/admin/views/settings-form.php:135
715
- #: framework/admin/views/settings-form.php:151
716
- msgid "Button Border Color"
717
- msgstr ""
718
-
719
- #: framework/admin/views/settings-form.php:136
720
- msgid "Border color for the Button"
721
- msgstr ""
722
-
723
- #: framework/admin/views/settings-form.php:138
724
- msgid "Select border color for the button."
725
- msgstr ""
726
-
727
- #: framework/admin/views/settings-form.php:145
728
- msgid "Border color for the Input field when it gets clicked"
729
- msgstr ""
730
-
731
- #: framework/admin/views/settings-form.php:147
732
- msgid "Select border color for the input field when it gets clicked."
733
- msgstr ""
734
-
735
- #: framework/admin/views/settings-form.php:152
736
- msgid "Border color for the Button on hover"
737
- msgstr ""
738
-
739
- #: framework/admin/views/settings-form.php:154
740
- msgid "Select border color for the button on mouse hover."
741
- msgstr ""
742
-
743
- #: framework/admin/views/settings-form.php:160
744
- msgid "Success Message Background Color"
745
- msgstr ""
746
-
747
- #: framework/admin/views/settings-form.php:161
748
- msgid "Background color for the success message"
749
- msgstr ""
750
-
751
- #: framework/admin/views/settings-form.php:163
752
- msgid "Select background color for the success message."
753
- msgstr ""
754
-
755
- #: framework/admin/views/settings-form.php:167
756
- msgid "Success Message Text Color"
757
- msgstr ""
758
-
759
- #: framework/admin/views/settings-form.php:168
760
- msgid "Text color for the success message"
761
- msgstr ""
762
-
763
- #: framework/admin/views/settings-form.php:170
764
- msgid "Select text color for the success message."
765
- msgstr ""
766
-
767
- #: framework/admin/views/settings-form.php:176
768
- msgid "Error Message Background Color"
769
- msgstr ""
770
-
771
- #: framework/admin/views/settings-form.php:177
772
- msgid "Background color for the error message"
773
- msgstr ""
774
-
775
- #: framework/admin/views/settings-form.php:179
776
- msgid "Select background color for the error message."
777
- msgstr ""
778
-
779
- #: framework/admin/views/settings-form.php:183
780
- msgid "Error Message Text Color"
781
- msgstr ""
782
-
783
- #: framework/admin/views/settings-form.php:184
784
- msgid "Text color for the error message"
785
- msgstr ""
786
-
787
- #: framework/admin/views/settings-form.php:186
788
- msgid "Select text color for the error message."
789
- msgstr ""
790
-
791
- #: framework/admin/views/settings-preview.php:15
792
- msgid "PREVIEW"
793
- msgstr ""
794
-
795
- #: framework/admin/views/settings-preview.php:16
796
- msgid ""
797
- "You can preview the maintenance page to see how it will look once the "
798
- "maintenance mode is turned on. Clicking the button below will open the "
799
- "preview in a new window."
800
- msgstr ""
801
-
802
- #: framework/admin/views/settings-preview.php:19
803
- msgid "Preview Maintenance Page"
804
- msgstr ""
805
-
806
- #: framework/admin/views/settings-support.php:15
807
- msgid "SUPPORT"
808
- msgstr ""
809
-
810
- #: framework/admin/views/settings-support.php:16
811
- msgid ""
812
- "Getting help is just a click away now. Report issue using the form below and "
813
- "we will get back to you at your admin email address. If the below support "
814
- "form is not working for you, kindly send us an email at "
815
- msgstr ""
816
-
817
- #: framework/admin/views/settings-support.php:16
818
- msgid " explaining the issue you are facing with the plugin."
819
- msgstr ""
820
-
821
- #: framework/admin/views/settings-support.php:22
822
- msgid "Email Address"
823
- msgstr ""
824
-
825
- #: framework/admin/views/settings-support.php:23
826
- msgid "Please provide your email address"
827
- msgstr ""
828
-
829
- #: framework/admin/views/settings-support.php:25
830
- msgid "You will receive support response at this email address."
831
- msgstr ""
832
-
833
- #: framework/admin/views/settings-support.php:29
834
- msgid "Issue / Feedback"
835
- msgstr ""
836
-
837
- #: framework/admin/views/settings-support.php:30
838
- #: framework/admin/views/settings-support.php:32
839
- msgid ""
840
- "Please explain the issue you are facing with the plugin. Provide as much "
841
- "detail as possible."
842
- msgstr ""
843
-
844
- #: framework/admin/views/settings-support.php:35
845
- msgid "Ask for Support"
846
- msgstr ""
847
-
848
- #: framework/admin/views/settings.php:34
849
- msgid "Basic"
850
- msgstr ""
851
-
852
- #: framework/admin/views/settings.php:35
853
- msgid "Email"
854
- msgstr ""
855
-
856
- #: framework/admin/views/settings.php:36
857
- msgid "Design"
858
- msgstr ""
859
-
860
- #: framework/admin/views/settings.php:38
861
- msgid "Advanced"
862
- msgstr ""
863
-
864
- #: framework/admin/views/settings.php:39
865
- msgid "Preview"
866
- msgstr ""
867
-
868
- #: framework/admin/views/settings.php:41
869
- msgid "About"
870
- msgstr ""
871
-
872
- #: framework/admin/views/settings.php:64
873
- msgid "Save Changes"
874
- msgstr ""
875
-
876
- #: framework/public/include/functions.php:37
877
- msgid "Maintainance Mode"
878
- msgstr ""
879
-
880
- #: framework/public/include/functions.php:38
881
- msgid "Enter your email address.."
882
- msgstr ""
883
-
884
- #: framework/public/include/functions.php:39
885
- msgid "Subscribe"
886
- msgstr ""
887
-
888
- #: framework/public/include/functions.php:42
889
- #: framework/public/include/functions.php:44
890
- msgid "Oops! Something went wrong."
891
- msgstr ""
892
-
893
- #: framework/public/include/functions.php:43
894
- msgid "You are already subscribed!"
895
- msgstr ""
896
-
897
- #: framework/public/include/functions.php:45
898
- msgid "Thank you! We'll be in touch!"
899
- msgstr ""
900
-
901
- #: framework/public/views/blank.php:62 framework/public/views/html.php:68
902
- msgid "Please provide your email address."
903
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
framework/langs/index.php DELETED
@@ -1 +0,0 @@
1
- <?php // silence is golden
 
framework/public/css/public.css CHANGED
@@ -165,4 +165,21 @@ a:focus {
165
  }
166
  .signals-alert-danger {
167
  background-color: #e08283;
168
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  }
166
  .signals-alert-danger {
167
  background-color: #e08283;
168
+ }
169
+
170
+ #linkback {
171
+ text-align: center;
172
+ margin: 20px auto 0 auto;
173
+ font-size: small;
174
+ opacity: 0.8;
175
+ width: 600px;
176
+ background-color: rgba(0,0,0,0.33);
177
+ color: #ffffff;
178
+ padding: 5px;
179
+ border-radius: 10px;
180
+ }
181
+
182
+ #linkback a {
183
+ color: #ffffff;
184
+ text-decoration: underline;
185
+ }
framework/public/img/mm-favicon.png CHANGED
Binary file
framework/public/img/mm-logo.jpg CHANGED
Binary file
framework/public/img/mm-logo.png ADDED
Binary file
framework/public/include/functions.php CHANGED
@@ -12,22 +12,6 @@ function csmm_render_template( $options ) {
12
  ob_end_clean();
13
  }
14
 
15
- if (function_exists('w3tc_pgcache_flush')) {
16
- w3tc_pgcache_flush();
17
- }
18
- if (function_exists('wp_cache_clean_cache')) {
19
- global $file_prefix;
20
- wp_cache_clean_cache($file_prefix);
21
- }
22
- if (function_exists('wp_cache_clear_cache')) {
23
- wp_cache_clear_cache();
24
- }
25
- if (class_exists('Endurance_Page_Cache')) {
26
- $epc = new Endurance_Page_Cache;
27
- $epc->purge_all();
28
- }
29
-
30
-
31
  /**
32
  * Using the nocache_headers() to ensure that different nocache headers are sent to different browsers.
33
  * We don't want any browser to cache the maintainance page.
@@ -56,13 +40,36 @@ function csmm_render_template( $options ) {
56
  require_once SIGNALS_CSMM_PATH . 'framework/public/views/html.php';
57
  }
58
 
59
-
60
  ob_flush();
61
  exit();
62
-
63
  }
64
 
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  // To check the referrer
67
  function csmm_check_referrer() {
68
 
12
  ob_end_clean();
13
  }
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  /**
16
  * Using the nocache_headers() to ensure that different nocache headers are sent to different browsers.
17
  * We don't want any browser to cache the maintainance page.
40
  require_once SIGNALS_CSMM_PATH . 'framework/public/views/html.php';
41
  }
42
 
 
43
  ob_flush();
44
  exit();
 
45
  }
46
 
47
 
48
+ function csmm_linkback() {
49
+ $options = csmm_get_options();
50
+ $out = '';
51
+
52
+ if (empty($options['love'])) {
53
+ return $out;
54
+ }
55
+
56
+ $out .= '<div id="linkback"><p>';
57
+ $tmp = md5(get_site_url());
58
+ if ($tmp[0] < '4') {
59
+ $out .= 'Create stunning <a href="https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/" target="_blank">coming soon pages for WordPress</a>. Completely free.';
60
+ } elseif ($tmp[0] < '8') {
61
+ $out .= 'Create <a href="https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/" target="_blank">free maintenance mode pages for WordPress</a> like this one in under a minute.';
62
+ } elseif ($tmp[0] < 'c') {
63
+ $out .= 'Join more than 50,000 happy people using the <a href="https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/" target="_blank">free Coming Soon &amp; Maintenance Mode plugin for WordPress</a>.';
64
+ } else {
65
+ $out .= 'Create free <a href="https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/" target="_blank">maintenance mode pages for WordPress</a>.';
66
+ }
67
+ $out .='</p></div>';
68
+
69
+ return $out;
70
+ } // csmm_linkback
71
+
72
+
73
  // To check the referrer
74
  function csmm_check_referrer() {
75
 
framework/public/init.php CHANGED
@@ -128,4 +128,3 @@ function csmm_subscribe_hide() {
128
 
129
  wp_send_json_success();
130
  } // csmm_subscribe_hide
131
-
128
 
129
  wp_send_json_success();
130
  } // csmm_subscribe_hide
 
framework/public/views/html.php CHANGED
@@ -13,14 +13,13 @@
13
  <meta charset="<?php bloginfo( 'charset' ); ?>">
14
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
15
  <meta name="viewport" content="width=device-width, initial-scale=1">
 
 
16
  <title><?php echo stripslashes( $options['title'] ); ?></title>
17
  <?php if ( isset( $options['favicon'] ) && ! empty( $options['favicon'] ) ) : ?>
18
  <link rel="shortcut icon" href="<?php echo esc_url_raw( $options['favicon'] ); ?>" />
19
  <?php endif; ?>
20
  <link rel="profile" href="https://gmpg.org/xfn/11">
21
- <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
22
- <link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> Atom Feed" href="<?php bloginfo('atom_url'); ?>" />
23
- <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
24
  <link rel="stylesheet" type="text/css" href="<?php echo SIGNALS_CSMM_URL; ?>/framework/public/css/public.css" />
25
  <script src='//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'></script>
26
  <script>
@@ -125,7 +124,7 @@
125
  $signals_arrange['html'] = stripslashes( $options['custom_html'] );
126
 
127
  // Let's show the sections now!
128
- if ( isset( $options['arrange'] ) && '' != $options['arrange'] ) {
129
  $signals_sections = explode( ',', $options['arrange'] );
130
  } else {
131
  $signals_sections = array( 'logo', 'header', 'secondary', 'form', 'html' );
@@ -139,6 +138,7 @@
139
 
140
  ?>
141
  </div><!-- .content -->
 
142
  </div><!-- .s-container -->
143
  </div><!-- .maintenance-mode -->
144
 
13
  <meta charset="<?php bloginfo( 'charset' ); ?>">
14
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
15
  <meta name="viewport" content="width=device-width, initial-scale=1">
16
+ <meta name="description" content="<?php echo stripslashes( $options['description'] ); ?>">
17
+ <meta name="generator" content="Free Coming Soon & Maintenance Mode plugin for WordPress">
18
  <title><?php echo stripslashes( $options['title'] ); ?></title>
19
  <?php if ( isset( $options['favicon'] ) && ! empty( $options['favicon'] ) ) : ?>
20
  <link rel="shortcut icon" href="<?php echo esc_url_raw( $options['favicon'] ); ?>" />
21
  <?php endif; ?>
22
  <link rel="profile" href="https://gmpg.org/xfn/11">
 
 
 
23
  <link rel="stylesheet" type="text/css" href="<?php echo SIGNALS_CSMM_URL; ?>/framework/public/css/public.css" />
24
  <script src='//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'></script>
25
  <script>
124
  $signals_arrange['html'] = stripslashes( $options['custom_html'] );
125
 
126
  // Let's show the sections now!
127
+ if (!empty($options['arrange'])) {
128
  $signals_sections = explode( ',', $options['arrange'] );
129
  } else {
130
  $signals_sections = array( 'logo', 'header', 'secondary', 'form', 'html' );
138
 
139
  ?>
140
  </div><!-- .content -->
141
+ <?php echo csmm_linkback(); ?>
142
  </div><!-- .s-container -->
143
  </div><!-- .maintenance-mode -->
144
 
minimal-coming-soon-maintenance-mode.php CHANGED
@@ -1,19 +1,17 @@
1
  <?php
2
-
3
  /**
4
  * Plugin Name: Minimal Coming Soon & Maintenance Mode
5
  * Plugin URI: https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/
6
- * Description: Simply awesome coming soon & maintenance mode plugin for WordPress. Super-simple to use. MailChimp support built-in.
7
- * Version: 1.45
8
  * Author: WebFactory
9
- * Author URI: http://www.webfactoryltd.com
10
  * License: GPLv3
11
  * License URI: http://www.gnu.org/licenses/gpl-3.0.txt
12
- * Text Domain: signals
13
  *
14
  *
15
  * Minimal Coming Soon & Maintenance Mode Plugin
16
- * Copyright (C) 2016 - 2017, Web Factory Ltd - support@webfactoryltd.com
17
  *
18
  * This program is free software: you can redistribute it and/or modify
19
  * it under the terms of the GNU General Public License as published by
@@ -32,20 +30,25 @@
32
  * If this file is called directly, abort.
33
  */
34
 
35
- if ( ! defined( 'WPINC' ) ) {
36
  die;
37
  }
38
 
39
 
40
  /* Constants we will be using throughout the plugin. */
41
- define( 'SIGNALS_CSMM_URL', plugins_url('', __FILE__ ) );
42
- define( 'SIGNALS_CSMM_PATH', plugin_dir_path( __FILE__ ) );
 
 
 
43
 
44
 
45
  function csmm_default_options() {
46
  $default_options = array(
47
  'status' => '2',
48
  'title' => 'Site is under maintenance',
 
 
49
  'header_text' => 'Sorry, we\'re doing some maintenance',
50
  'secondary_text' => 'We are doing some maintenance on our site. It won\'t take long, we promise. Come back and visit us again in a few days. Thank you for your patience!',
51
  'antispam_text' => 'And yes, we hate spam too!',
@@ -62,7 +65,7 @@ function csmm_default_options() {
62
  'message_wrong' => 'Oops! Something went wrong.',
63
  'message_done' => 'Thank you! We\'ll be in touch!',
64
 
65
- 'logo' => SIGNALS_CSMM_URL . '/framework/public/img/mm-logo.jpg',
66
  'favicon' => SIGNALS_CSMM_URL . '/framework/public/img/mm-favicon.png',
67
  'bg_cover' => SIGNALS_CSMM_URL . '/framework/public/img/mountain-bg.jpg',
68
  'content_overlay' => 1,
@@ -107,6 +110,7 @@ function csmm_default_options() {
107
  return $default_options;
108
  } // csmm_default_options
109
 
 
110
  function csmm_get_options() {
111
  $signals_csmm_options = get_option('signals_csmm_options', array());
112
  $signals_csmm_options = array_merge(csmm_default_options(), $signals_csmm_options);
@@ -152,29 +156,32 @@ register_activation_hook( __FILE__, 'csmm_plugin_activation');
152
 
153
  /* Hook for the plugin deactivation. */
154
  function csmm_plugin_deactivation() {
155
-
156
- // Silence is golden
157
- // We might use this in future versions
158
-
159
  }
160
  register_deactivation_hook( __FILE__, 'csmm_plugin_deactivation' );
161
 
162
 
163
- /**
164
- * Including files necessary for the management panel of the plugin.
165
- * Basically, support panel and option to insert custom .css is provided.
166
- */
167
 
168
- if ( is_admin() ) {
169
- require SIGNALS_CSMM_PATH . 'framework/admin/init.php';
170
- }
 
 
 
171
 
172
 
173
  /**
174
- * Let's start the plugin now.
175
- * All the widgets are included and registered using the right hook.
176
  */
177
 
 
 
 
 
 
 
178
  require SIGNALS_CSMM_PATH . 'framework/public/init.php';
179
 
180
 
1
  <?php
 
2
  /**
3
  * Plugin Name: Minimal Coming Soon & Maintenance Mode
4
  * Plugin URI: https://wordpress.org/plugins/minimal-coming-soon-maintenance-mode/
5
+ * Description: Simply awesome coming soon & maintenance mode plugin. Super-simple to use. MailChimp support built-in.
6
+ * Version: 1.50
7
  * Author: WebFactory
8
+ * Author URI: https://www.webfactoryltd.com
9
  * License: GPLv3
10
  * License URI: http://www.gnu.org/licenses/gpl-3.0.txt
 
11
  *
12
  *
13
  * Minimal Coming Soon & Maintenance Mode Plugin
14
+ * Copyright (C) 2016 - 2018, Web Factory Ltd - support@webfactoryltd.com
15
  *
16
  * This program is free software: you can redistribute it and/or modify
17
  * it under the terms of the GNU General Public License as published by
30
  * If this file is called directly, abort.
31
  */
32
 
33
+ if (!defined('WPINC')) {
34
  die;
35
  }
36
 
37
 
38
  /* Constants we will be using throughout the plugin. */
39
+ define('CSMM_BASENAME', plugin_basename(__FILE__));
40
+ define('SIGNALS_CSMM_URL', plugins_url('', __FILE__));
41
+ define('SIGNALS_CSMM_PATH', plugin_dir_path(__FILE__));
42
+ define('CSMM_POINTERS', 'csmm_pointers');
43
+
44
 
45
 
46
  function csmm_default_options() {
47
  $default_options = array(
48
  'status' => '2',
49
  'title' => 'Site is under maintenance',
50
+ 'description' => 'We are doing some maintenance on our site. Please come back later.',
51
+ 'love' => '0',
52
  'header_text' => 'Sorry, we\'re doing some maintenance',
53
  'secondary_text' => 'We are doing some maintenance on our site. It won\'t take long, we promise. Come back and visit us again in a few days. Thank you for your patience!',
54
  'antispam_text' => 'And yes, we hate spam too!',
65
  'message_wrong' => 'Oops! Something went wrong.',
66
  'message_done' => 'Thank you! We\'ll be in touch!',
67
 
68
+ 'logo' => SIGNALS_CSMM_URL . '/framework/public/img/mm-logo.png',
69
  'favicon' => SIGNALS_CSMM_URL . '/framework/public/img/mm-favicon.png',
70
  'bg_cover' => SIGNALS_CSMM_URL . '/framework/public/img/mountain-bg.jpg',
71
  'content_overlay' => 1,
110
  return $default_options;
111
  } // csmm_default_options
112
 
113
+
114
  function csmm_get_options() {
115
  $signals_csmm_options = get_option('signals_csmm_options', array());
116
  $signals_csmm_options = array_merge(csmm_default_options(), $signals_csmm_options);
156
 
157
  /* Hook for the plugin deactivation. */
158
  function csmm_plugin_deactivation() {
159
+ delete_option(CSMM_POINTERS);
 
 
 
160
  }
161
  register_deactivation_hook( __FILE__, 'csmm_plugin_deactivation' );
162
 
163
 
164
+ function csmm_plugin_page() {
165
+ $current_screen = get_current_screen();
 
 
166
 
167
+ if ($current_screen->id == 'maintenance_mode_options') {
168
+ return true;
169
+ } else {
170
+ return false;
171
+ }
172
+ } // csmm_plugin_page
173
 
174
 
175
  /**
176
+ * Include files necessary for the management panel of the plugin.
 
177
  */
178
 
179
+ require SIGNALS_CSMM_PATH . 'framework/init.php';
180
+
181
+ if (is_admin()) {
182
+ require SIGNALS_CSMM_PATH . 'framework/admin/init.php';
183
+ }
184
+
185
  require SIGNALS_CSMM_PATH . 'framework/public/init.php';
186
 
187
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: coming soon, coming soon page, launch page, maintenance mode, mailchimp
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
- Stable tag: 1.45
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -12,17 +12,20 @@ Simple & flexible Coming Soon & Maintenance Mode plugin - sets up in under a min
12
 
13
 
14
  == Description ==
15
- The Minimal Coming Soon & Maintenance Mode plugin allows you to **quickly & easily** set up a Coming Soon, Maintenance Mode or Launch Page for your website.
16
 
17
  It's simple + flexible and works with any WordPress theme & plugin, plus you'll have full control over the frontend of the website and can modify almost every aspect of it per your preference. Easily connects with MailChimp so that you can **collect emails** from visitors.
18
 
19
 
20
  = Plugin Features =
21
 
 
22
  * Works with all WordPress themes and plugins
23
  * Completely customizable look and feel including background color, cover image, fonts etc
 
24
  * Each and every element of the maintenance page can be configured
25
  * Option to preview the maintenance page before activation
 
26
  * Rearrange position of the page elements to your liking
27
  * W3 Total Cache and WP Super Cache Support
28
  * Easily add Custom CSS and HTML
@@ -74,6 +77,16 @@ Yes and no. When activated it enables itself across the entire WP-MU network.
74
 
75
  == Changelog ==
76
 
 
 
 
 
 
 
 
 
 
 
77
  = 1.45 =
78
  * 2017-12-13
79
  * 40k users - early December
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
+ Stable tag: 1.50
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
12
 
13
 
14
  == Description ==
15
+ The <a href="https://comingsoonwp.com/">Minimal Coming Soon & Maintenance Mode</a> plugin allows you to **quickly & easily** set up a Coming Soon, Maintenance Mode or Launch Page for your website.
16
 
17
  It's simple + flexible and works with any WordPress theme & plugin, plus you'll have full control over the frontend of the website and can modify almost every aspect of it per your preference. Easily connects with MailChimp so that you can **collect emails** from visitors.
18
 
19
 
20
  = Plugin Features =
21
 
22
+ * check out <a href="https://comingsoonwp.com/themes/">30+ themes</a> that come with the PRO version
23
  * Works with all WordPress themes and plugins
24
  * Completely customizable look and feel including background color, cover image, fonts etc
25
+ * includes <a href="https://comingsoonwp.com/">400,000 premium images</a> in PRO version
26
  * Each and every element of the maintenance page can be configured
27
  * Option to preview the maintenance page before activation
28
+ * <a href="https://comingsoonwp.com/">SEO preview and analysis tools</a> are available in the PRO version
29
  * Rearrange position of the page elements to your liking
30
  * W3 Total Cache and WP Super Cache Support
31
  * Easily add Custom CSS and HTML
77
 
78
  == Changelog ==
79
 
80
+ = 1.50 =
81
+ * 2018-01-05
82
+ * added admin bar status/menu
83
+ * added site description option
84
+ * added show some love option
85
+ * added 2 pointers
86
+ * a lot of small improvements
87
+ * new logo
88
+ * work started on PRO version
89
+
90
  = 1.45 =
91
  * 2017-12-13
92
  * 40k users - early December