wpDataTables Lite - Version 2.1.23

Version Description

  • Improvement: Reduce plugin size by removing unnecessary files
  • Bugfix: Fixed CSS conflicts with Gravity forms.
  • Other small bug fixes and stability improvements.
Download this release

Release Info

Developer wpDataTables
Plugin Icon 128x128 wpDataTables Lite
Version 2.1.23
Comparing to
See all releases

Code changes from version 2.1.22 to 2.1.23

Files changed (72) hide show
  1. assets/css/bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.css +0 -229
  2. assets/css/bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.min.css +0 -9
  3. assets/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  4. assets/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  5. assets/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  6. assets/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  7. assets/css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  8. assets/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  9. assets/css/images/ui-icons_222222_256x240.png +0 -0
  10. assets/css/images/ui-icons_2e83ff_256x240.png +0 -0
  11. assets/css/images/ui-icons_454545_256x240.png +0 -0
  12. assets/css/images/ui-icons_888888_256x240.png +0 -0
  13. assets/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  14. assets/css/jquery-ui.css +0 -1177
  15. assets/css/jquery-ui.min.css +0 -7
  16. assets/css/jquery.tagsinput.min.css +0 -1
  17. assets/css/minimal.png +0 -0
  18. assets/css/minimal@2x.png +0 -0
  19. assets/css/wpdatatables-excel.min.css +0 -67
  20. assets/css/wpdatatables_admin.css +0 -896
  21. assets/img/bootstrap-colorpicker/alpha-horizontal.png +0 -0
  22. assets/img/bootstrap-colorpicker/alpha.png +0 -0
  23. assets/img/bootstrap-colorpicker/hue-horizontal.png +0 -0
  24. assets/img/bootstrap-colorpicker/hue.png +0 -0
  25. assets/img/bootstrap-colorpicker/saturation.png +0 -0
  26. assets/img/buttonplus.png +0 -0
  27. assets/js/bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.min.js +0 -5
  28. assets/js/colorpicker/bg.png +0 -0
  29. assets/js/colorpicker/hue.png +0 -0
  30. assets/js/colorpicker/jquery.modcoder.excolor.js +0 -13
  31. assets/js/colorpicker/ok.png +0 -0
  32. assets/js/colorpicker/sel.gif +0 -0
  33. assets/js/colorpicker/shbg.png +0 -0
  34. assets/js/colorpicker/slider.gif +0 -0
  35. assets/js/colorpicker/transp.gif +0 -0
  36. assets/js/colorpicker/transp0.gif +0 -0
  37. assets/js/fileupload/jquery.fileupload-jquery-ui.js +0 -144
  38. assets/js/fileupload/jquery.fileupload-process.js +0 -172
  39. assets/js/fileupload/jquery.fileupload-ui.js +0 -699
  40. assets/js/fileupload/jquery.fileupload.js +0 -1367
  41. assets/js/fileupload/jquery.iframe-transport.js +0 -208
  42. assets/js/icheck/icheck.min.js +0 -11
  43. assets/js/image-picker/image-picker.min.js +0 -7
  44. assets/js/jquery-datatables/jquery.dataTables.rowGrouping.min.js +693 -1
  45. assets/js/php-datatables/wpdatatables.funcs.js +0 -334
  46. assets/js/php-datatables/wpdatatables.funcs.min.js +0 -1
  47. assets/js/popup/jquery.remodal.min.js +0 -4
  48. assets/js/selecter/jquery.fs.selecter.min.js +0 -9
  49. assets/js/wpdatatables/wdt.chartWizard.js +16 -4
  50. assets/js/wpdatatables/wdt.excel.min.js +0 -1
  51. assets/js/wpdatatables/wpdatatables_admin.js +0 -39
  52. assets/js/wpdatatables/wpdatatables_chart_wizard.js +0 -51
  53. assets/js/wpdatatables/wpdatatables_edit_table.js +0 -902
  54. assets/js/wpdatatables/wpdatatables_mce.js +0 -133
  55. config/config.inc.php +1 -1
  56. controllers/wdt_admin.php +10 -5
  57. readme.txt +6 -1
  58. source/class.wdttools.php +0 -2
  59. templates/addons.inc.php +0 -29
  60. templates/admin/addons/addons.inc.php +4 -0
  61. templates/admin/dashboard/dashboard.inc.php +6 -12
  62. templates/browse.inc.php +0 -107
  63. templates/chart_wizard.inc.php +0 -144
  64. templates/constructor.inc.php +0 -49
  65. templates/edit_table.inc.php +0 -804
  66. templates/frontend/excel_table_main.inc.php +0 -39
  67. templates/frontend/filter_form.inc.php +0 -37
  68. templates/settings.inc.php +0 -637
  69. templates/wpdatatables_excel_table_main.inc.php +0 -36
  70. templates/wpdatatables_table_main.inc.php +0 -47
  71. templates/wrap_template.inc.php +0 -7
  72. wpdatatables.php +1 -1
assets/css/bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.css DELETED
@@ -1,229 +0,0 @@
1
- /*!
2
- * Bootstrap Colorpicker v2.5.1
3
- * https://itsjavi.com/bootstrap-colorpicker/
4
- *
5
- * Originally written by (c) 2012 Stefan Petre
6
- * Licensed under the Apache License v2.0
7
- * http://www.apache.org/licenses/LICENSE-2.0.txt
8
- *
9
- */
10
- .colorpicker-saturation {
11
- width: 100px;
12
- height: 100px;
13
- background-image: url("../../../img/bootstrap-colorpicker/saturation.png");
14
- cursor: crosshair;
15
- float: left;
16
- }
17
- .colorpicker-saturation i {
18
- display: block;
19
- height: 5px;
20
- width: 5px;
21
- border: 1px solid #000;
22
- -webkit-border-radius: 5px;
23
- -moz-border-radius: 5px;
24
- border-radius: 5px;
25
- position: absolute;
26
- top: 0;
27
- left: 0;
28
- margin: -4px 0 0 -4px;
29
- }
30
- .colorpicker-saturation i b {
31
- display: block;
32
- height: 5px;
33
- width: 5px;
34
- border: 1px solid #fff;
35
- -webkit-border-radius: 5px;
36
- -moz-border-radius: 5px;
37
- border-radius: 5px;
38
- }
39
- .colorpicker-hue,
40
- .colorpicker-alpha {
41
- width: 15px;
42
- height: 100px;
43
- float: left;
44
- cursor: row-resize;
45
- margin-left: 4px;
46
- margin-bottom: 4px;
47
- }
48
- .colorpicker-hue i,
49
- .colorpicker-alpha i {
50
- display: block;
51
- height: 1px;
52
- background: #000;
53
- border-top: 1px solid #fff;
54
- position: absolute;
55
- top: 0;
56
- left: 0;
57
- width: 100%;
58
- margin-top: -1px;
59
- }
60
- .colorpicker-hue {
61
- background-image: url("../../../img/bootstrap-colorpicker/hue.png");
62
- }
63
- .colorpicker-alpha {
64
- background-image: url("../../../img/bootstrap-colorpicker/alpha.png");
65
- display: none;
66
- }
67
- .colorpicker-saturation,
68
- .colorpicker-hue,
69
- .colorpicker-alpha {
70
- background-size: contain;
71
- }
72
- .colorpicker {
73
- padding: 4px;
74
- min-width: 130px;
75
- margin-top: 1px;
76
- -webkit-border-radius: 4px;
77
- -moz-border-radius: 4px;
78
- border-radius: 4px;
79
- z-index: 2500;
80
- }
81
- .colorpicker:before,
82
- .colorpicker:after {
83
- display: table;
84
- content: "";
85
- line-height: 0;
86
- }
87
- .colorpicker:after {
88
- clear: both;
89
- }
90
- .colorpicker:before {
91
- content: '';
92
- display: inline-block;
93
- border-left: 7px solid transparent;
94
- border-right: 7px solid transparent;
95
- border-bottom: 7px solid #ccc;
96
- border-bottom-color: rgba(0, 0, 0, 0.2);
97
- position: absolute;
98
- top: -7px;
99
- left: 6px;
100
- }
101
- .colorpicker:after {
102
- content: '';
103
- display: inline-block;
104
- border-left: 6px solid transparent;
105
- border-right: 6px solid transparent;
106
- border-bottom: 6px solid #ffffff;
107
- position: absolute;
108
- top: -6px;
109
- left: 7px;
110
- }
111
- .colorpicker div {
112
- position: relative;
113
- }
114
- .colorpicker.colorpicker-with-alpha {
115
- min-width: 140px;
116
- }
117
- .colorpicker.colorpicker-with-alpha .colorpicker-alpha {
118
- display: block;
119
- }
120
- .colorpicker-color {
121
- height: 10px;
122
- margin-top: 5px;
123
- clear: both;
124
- background-image: url("../../../img/bootstrap-colorpicker/alpha.png");
125
- background-position: 0 100%;
126
- }
127
- .colorpicker-color div {
128
- height: 10px;
129
- }
130
- .colorpicker-selectors {
131
- display: none;
132
- height: 10px;
133
- margin-top: 5px;
134
- clear: both;
135
- }
136
- .colorpicker-selectors i {
137
- cursor: pointer;
138
- float: left;
139
- height: 10px;
140
- width: 10px;
141
- }
142
- .colorpicker-selectors i + i {
143
- margin-left: 3px;
144
- }
145
- .colorpicker-element .input-group-addon i,
146
- .colorpicker-element .add-on i {
147
- display: inline-block;
148
- cursor: pointer;
149
- height: 16px;
150
- vertical-align: text-top;
151
- width: 16px;
152
- }
153
- .colorpicker.colorpicker-inline {
154
- position: relative;
155
- display: inline-block;
156
- float: none;
157
- z-index: auto;
158
- }
159
- .colorpicker.colorpicker-horizontal {
160
- width: 110px;
161
- min-width: 110px;
162
- height: auto;
163
- }
164
- .colorpicker.colorpicker-horizontal .colorpicker-saturation {
165
- margin-bottom: 4px;
166
- }
167
- .colorpicker.colorpicker-horizontal .colorpicker-color {
168
- width: 100px;
169
- }
170
- .colorpicker.colorpicker-horizontal .colorpicker-hue,
171
- .colorpicker.colorpicker-horizontal .colorpicker-alpha {
172
- width: 100px;
173
- height: 15px;
174
- float: left;
175
- cursor: col-resize;
176
- margin-left: 0px;
177
- margin-bottom: 4px;
178
- }
179
- .colorpicker.colorpicker-horizontal .colorpicker-hue i,
180
- .colorpicker.colorpicker-horizontal .colorpicker-alpha i {
181
- display: block;
182
- height: 15px;
183
- background: #ffffff;
184
- position: absolute;
185
- top: 0;
186
- left: 0;
187
- width: 1px;
188
- border: none;
189
- margin-top: 0px;
190
- }
191
- .colorpicker.colorpicker-horizontal .colorpicker-hue {
192
- background-image: url("../../../img/bootstrap-colorpicker/hue-horizontal.png");
193
- }
194
- .colorpicker.colorpicker-horizontal .colorpicker-alpha {
195
- background-image: url("../../../img/bootstrap-colorpicker/alpha-horizontal.png");
196
- }
197
- .colorpicker-right:before {
198
- left: auto;
199
- right: 6px;
200
- }
201
- .colorpicker-right:after {
202
- left: auto;
203
- right: 7px;
204
- }
205
- .colorpicker-no-arrow:before {
206
- border-right: 0;
207
- border-left: 0;
208
- }
209
- .colorpicker-no-arrow:after {
210
- border-right: 0;
211
- border-left: 0;
212
- }
213
- .colorpicker.colorpicker-visible,
214
- .colorpicker-alpha.colorpicker-visible,
215
- .colorpicker-saturation.colorpicker-visible,
216
- .colorpicker-hue.colorpicker-visible,
217
- .colorpicker-selectors.colorpicker-visible {
218
- display: block;
219
- }
220
- .colorpicker.colorpicker-hidden,
221
- .colorpicker-alpha.colorpicker-hidden,
222
- .colorpicker-saturation.colorpicker-hidden,
223
- .colorpicker-hue.colorpicker-hidden,
224
- .colorpicker-selectors.colorpicker-hidden {
225
- display: none;
226
- }
227
- .colorpicker-inline.colorpicker-visible {
228
- display: inline-block;
229
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.min.css DELETED
@@ -1,9 +0,0 @@
1
- /*!
2
- * Bootstrap Colorpicker v2.5.1
3
- * https://itsjavi.com/bootstrap-colorpicker/
4
- *
5
- * Originally written by (c) 2012 Stefan Petre
6
- * Licensed under the Apache License v2.0
7
- * http://www.apache.org/licenses/LICENSE-2.0.txt
8
- *
9
- */.colorpicker-saturation{width:100px;height:100px;background-image:url(../../../img/bootstrap-colorpicker/saturation.png);cursor:crosshair;float:left}.colorpicker-saturation i{display:block;height:5px;width:5px;border:1px solid #000;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;position:absolute;top:0;left:0;margin:-4px 0 0 -4px}.colorpicker-saturation i b{display:block;height:5px;width:5px;border:1px solid #fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.colorpicker-alpha,.colorpicker-hue{width:15px;height:100px;float:left;cursor:row-resize;margin-left:4px;margin-bottom:4px}.colorpicker-alpha i,.colorpicker-hue i{display:block;height:1px;background:#000;border-top:1px solid #fff;position:absolute;top:0;left:0;width:100%;margin-top:-1px}.colorpicker-hue{background-image:url(../../../img/bootstrap-colorpicker/hue.png)}.colorpicker-alpha{background-image:url(../../../img/bootstrap-colorpicker/alpha.png);display:none}.colorpicker-alpha,.colorpicker-hue,.colorpicker-saturation{background-size:contain}.colorpicker{padding:4px;min-width:130px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;z-index:2500}.colorpicker:after,.colorpicker:before{display:table;content:"";line-height:0}.colorpicker:after{clear:both}.colorpicker:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);position:absolute;top:-7px;left:6px}.colorpicker:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;top:-6px;left:7px}.colorpicker div{position:relative}.colorpicker.colorpicker-with-alpha{min-width:140px}.colorpicker.colorpicker-with-alpha .colorpicker-alpha{display:block}.colorpicker-color{height:10px;margin-top:5px;clear:both;background-image:url(../../../img/bootstrap-colorpicker/alpha.png);background-position:0 100%}.colorpicker-color div{height:10px}.colorpicker-selectors{display:none;height:10px;margin-top:5px;clear:both}.colorpicker-selectors i{cursor:pointer;float:left;height:10px;width:10px}.colorpicker-selectors i+i{margin-left:3px}.colorpicker-element .add-on i,.colorpicker-element .input-group-addon i{display:inline-block;cursor:pointer;height:16px;vertical-align:text-top;width:16px}.colorpicker.colorpicker-inline{position:relative;display:inline-block;float:none;z-index:auto}.colorpicker.colorpicker-horizontal{width:110px;min-width:110px;height:auto}.colorpicker.colorpicker-horizontal .colorpicker-saturation{margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-color{width:100px}.colorpicker.colorpicker-horizontal .colorpicker-alpha,.colorpicker.colorpicker-horizontal .colorpicker-hue{width:100px;height:15px;float:left;cursor:col-resize;margin-left:0;margin-bottom:4px}.colorpicker.colorpicker-horizontal .colorpicker-alpha i,.colorpicker.colorpicker-horizontal .colorpicker-hue i{display:block;height:15px;background:#fff;position:absolute;top:0;left:0;width:1px;border:none;margin-top:0}.colorpicker.colorpicker-horizontal .colorpicker-hue{background-image:url(../../../img/bootstrap-colorpicker/hue-horizontal.png)}.colorpicker.colorpicker-horizontal .colorpicker-alpha{background-image:url(../../../img/bootstrap-colorpicker/alpha-horizontal.png)}.colorpicker-right:before{left:auto;right:6px}.colorpicker-right:after{left:auto;right:7px}.colorpicker-no-arrow:before{border-right:0;border-left:0}.colorpicker-no-arrow:after{border-right:0;border-left:0}.colorpicker-alpha.colorpicker-visible,.colorpicker-hue.colorpicker-visible,.colorpicker-saturation.colorpicker-visible,.colorpicker-selectors.colorpicker-visible,.colorpicker.colorpicker-visible{display:block}.colorpicker-alpha.colorpicker-hidden,.colorpicker-hue.colorpicker-hidden,.colorpicker-saturation.colorpicker-hidden,.colorpicker-selectors.colorpicker-hidden,.colorpicker.colorpicker-hidden{display:none}.colorpicker-inline.colorpicker-visible{display:inline-block}
 
 
 
 
 
 
 
 
 
assets/css/images/ui-bg_glass_55_fbf9ee_1x400.png DELETED
Binary file
assets/css/images/ui-bg_glass_65_ffffff_1x400.png DELETED
Binary file
assets/css/images/ui-bg_glass_75_dadada_1x400.png DELETED
Binary file
assets/css/images/ui-bg_glass_75_e6e6e6_1x400.png DELETED
Binary file
assets/css/images/ui-bg_glass_95_fef1ec_1x400.png DELETED
Binary file
assets/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png DELETED
Binary file
assets/css/images/ui-icons_222222_256x240.png DELETED
Binary file
assets/css/images/ui-icons_2e83ff_256x240.png DELETED
Binary file
assets/css/images/ui-icons_454545_256x240.png DELETED
Binary file
assets/css/images/ui-icons_888888_256x240.png DELETED
Binary file
assets/css/images/ui-icons_cd0a0a_256x240.png DELETED
Binary file
assets/css/jquery-ui.css DELETED
@@ -1,1177 +0,0 @@
1
- /*! jQuery UI - v1.10.3 - 2013-05-03
2
- * http://jqueryui.com
3
- * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright 2013 jQuery Foundation and other contributors Licensed MIT */
6
-
7
- /* Layout helpers
8
- ----------------------------------*/
9
- .ui-helper-hidden {
10
- display: none;
11
- }
12
- .ui-helper-hidden-accessible {
13
- border: 0;
14
- clip: rect(0 0 0 0);
15
- height: 1px;
16
- margin: -1px;
17
- overflow: hidden;
18
- padding: 0;
19
- position: absolute;
20
- width: 1px;
21
- }
22
- .ui-helper-reset {
23
- margin: 0;
24
- padding: 0;
25
- border: 0;
26
- outline: 0;
27
- line-height: 1.3;
28
- text-decoration: none;
29
- font-size: 100%;
30
- list-style: none;
31
- }
32
- .ui-helper-clearfix:before,
33
- .ui-helper-clearfix:after {
34
- content: "";
35
- display: table;
36
- border-collapse: collapse;
37
- }
38
- .ui-helper-clearfix:after {
39
- clear: both;
40
- }
41
- .ui-helper-clearfix {
42
- min-height: 0; /* support: IE7 */
43
- }
44
- .ui-helper-zfix {
45
- width: 100%;
46
- height: 100%;
47
- top: 0;
48
- left: 0;
49
- position: absolute;
50
- opacity: 0;
51
- filter:Alpha(Opacity=0);
52
- }
53
-
54
- .ui-front {
55
- z-index: 100;
56
- }
57
-
58
-
59
- /* Interaction Cues
60
- ----------------------------------*/
61
- .ui-state-disabled {
62
- cursor: default !important;
63
- }
64
-
65
-
66
- /* Icons
67
- ----------------------------------*/
68
-
69
- /* states and images */
70
- .ui-icon {
71
- display: block;
72
- text-indent: -99999px;
73
- overflow: hidden;
74
- background-repeat: no-repeat;
75
- }
76
-
77
-
78
- /* Misc visuals
79
- ----------------------------------*/
80
-
81
- /* Overlays */
82
- .ui-widget-overlay {
83
- position: fixed;
84
- top: 0;
85
- left: 0;
86
- width: 100%;
87
- height: 100%;
88
- }
89
- .ui-accordion .ui-accordion-header {
90
- display: block;
91
- cursor: pointer;
92
- position: relative;
93
- margin-top: 2px;
94
- padding: .5em .5em .5em .7em;
95
- min-height: 0; /* support: IE7 */
96
- }
97
- .ui-accordion .ui-accordion-icons {
98
- padding-left: 2.2em;
99
- }
100
- .ui-accordion .ui-accordion-noicons {
101
- padding-left: .7em;
102
- }
103
- .ui-accordion .ui-accordion-icons .ui-accordion-icons {
104
- padding-left: 2.2em;
105
- }
106
- .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
107
- position: absolute;
108
- left: .5em;
109
- top: 50%;
110
- margin-top: -8px;
111
- }
112
- .ui-accordion .ui-accordion-content {
113
- padding: 1em 2.2em;
114
- border-top: 0;
115
- overflow: auto;
116
- }
117
- .ui-autocomplete {
118
- position: absolute;
119
- top: 0;
120
- left: 0;
121
- cursor: default;
122
- }
123
- .ui-button {
124
- display: inline-block;
125
- position: relative;
126
- padding: 0;
127
- line-height: normal;
128
- margin-right: .1em;
129
- cursor: pointer;
130
- vertical-align: middle;
131
- text-align: center;
132
- overflow: visible; /* removes extra width in IE */
133
- }
134
- .ui-button,
135
- .ui-button:link,
136
- .ui-button:visited,
137
- .ui-button:hover,
138
- .ui-button:active {
139
- text-decoration: none;
140
- }
141
- /* to make room for the icon, a width needs to be set here */
142
- .ui-button-icon-only {
143
- width: 2.2em;
144
- }
145
- /* button elements seem to need a little more width */
146
- button.ui-button-icon-only {
147
- width: 2.4em;
148
- }
149
- .ui-button-icons-only {
150
- width: 3.4em;
151
- }
152
- button.ui-button-icons-only {
153
- width: 3.7em;
154
- }
155
-
156
- /* button text element */
157
- .ui-button .ui-button-text {
158
- display: block;
159
- line-height: normal;
160
- }
161
- .ui-button-text-only .ui-button-text {
162
- padding: .4em 1em;
163
- }
164
- .ui-button-icon-only .ui-button-text,
165
- .ui-button-icons-only .ui-button-text {
166
- padding: .4em;
167
- text-indent: -9999999px;
168
- }
169
- .ui-button-text-icon-primary .ui-button-text,
170
- .ui-button-text-icons .ui-button-text {
171
- padding: .4em 1em .4em 2.1em;
172
- }
173
- .ui-button-text-icon-secondary .ui-button-text,
174
- .ui-button-text-icons .ui-button-text {
175
- padding: .4em 2.1em .4em 1em;
176
- }
177
- .ui-button-text-icons .ui-button-text {
178
- padding-left: 2.1em;
179
- padding-right: 2.1em;
180
- }
181
- /* no icon support for input elements, provide padding by default */
182
- input.ui-button {
183
- padding: .4em 1em;
184
- }
185
-
186
- /* button icon element(s) */
187
- .ui-button-icon-only .ui-icon,
188
- .ui-button-text-icon-primary .ui-icon,
189
- .ui-button-text-icon-secondary .ui-icon,
190
- .ui-button-text-icons .ui-icon,
191
- .ui-button-icons-only .ui-icon {
192
- position: absolute;
193
- top: 50%;
194
- margin-top: -8px;
195
- }
196
- .ui-button-icon-only .ui-icon {
197
- left: 50%;
198
- margin-left: -8px;
199
- }
200
- .ui-button-text-icon-primary .ui-button-icon-primary,
201
- .ui-button-text-icons .ui-button-icon-primary,
202
- .ui-button-icons-only .ui-button-icon-primary {
203
- left: .5em;
204
- }
205
- .ui-button-text-icon-secondary .ui-button-icon-secondary,
206
- .ui-button-text-icons .ui-button-icon-secondary,
207
- .ui-button-icons-only .ui-button-icon-secondary {
208
- right: .5em;
209
- }
210
-
211
- /* button sets */
212
- .ui-buttonset {
213
- margin-right: 7px;
214
- }
215
- .ui-buttonset .ui-button {
216
- margin-left: 0;
217
- margin-right: -.3em;
218
- }
219
-
220
- /* workarounds */
221
- /* reset extra padding in Firefox, see h5bp.com/l */
222
- input.ui-button::-moz-focus-inner,
223
- button.ui-button::-moz-focus-inner {
224
- border: 0;
225
- padding: 0;
226
- }
227
- .ui-datepicker {
228
- width: 17em;
229
- padding: .2em .2em 0;
230
- display: none;
231
- }
232
- .ui-datepicker .ui-datepicker-header {
233
- position: relative;
234
- padding: .2em 0;
235
- }
236
- .ui-datepicker .ui-datepicker-prev,
237
- .ui-datepicker .ui-datepicker-next {
238
- position: absolute;
239
- top: 2px;
240
- width: 1.8em;
241
- height: 1.8em;
242
- }
243
- .ui-datepicker .ui-datepicker-prev-hover,
244
- .ui-datepicker .ui-datepicker-next-hover {
245
- top: 1px;
246
- }
247
- .ui-datepicker .ui-datepicker-prev {
248
- left: 2px;
249
- }
250
- .ui-datepicker .ui-datepicker-next {
251
- right: 2px;
252
- }
253
- .ui-datepicker .ui-datepicker-prev-hover {
254
- left: 1px;
255
- }
256
- .ui-datepicker .ui-datepicker-next-hover {
257
- right: 1px;
258
- }
259
- .ui-datepicker .ui-datepicker-prev span,
260
- .ui-datepicker .ui-datepicker-next span {
261
- display: block;
262
- position: absolute;
263
- left: 50%;
264
- margin-left: -8px;
265
- top: 50%;
266
- margin-top: -8px;
267
- }
268
- .ui-datepicker .ui-datepicker-title {
269
- margin: 0 2.3em;
270
- line-height: 1.8em;
271
- text-align: center;
272
- }
273
- .ui-datepicker .ui-datepicker-title select {
274
- font-size: 1em;
275
- margin: 1px 0;
276
- }
277
- .ui-datepicker select.ui-datepicker-month-year {
278
- width: 100%;
279
- }
280
- .ui-datepicker select.ui-datepicker-month,
281
- .ui-datepicker select.ui-datepicker-year {
282
- width: 49%;
283
- }
284
- .ui-datepicker table {
285
- width: 100%;
286
- font-size: .9em;
287
- border-collapse: collapse;
288
- margin: 0 0 .4em;
289
- }
290
- .ui-datepicker th {
291
- padding: .7em .3em;
292
- text-align: center;
293
- font-weight: bold;
294
- border: 0;
295
- }
296
- .ui-datepicker td {
297
- border: 0;
298
- padding: 1px;
299
- }
300
- .ui-datepicker td span,
301
- .ui-datepicker td a {
302
- display: block;
303
- padding: .2em;
304
- text-align: right;
305
- text-decoration: none;
306
- }
307
- .ui-datepicker .ui-datepicker-buttonpane {
308
- background-image: none;
309
- margin: .7em 0 0 0;
310
- padding: 0 .2em;
311
- border-left: 0;
312
- border-right: 0;
313
- border-bottom: 0;
314
- }
315
- .ui-datepicker .ui-datepicker-buttonpane button {
316
- float: right;
317
- margin: .5em .2em .4em;
318
- cursor: pointer;
319
- padding: .2em .6em .3em .6em;
320
- width: auto;
321
- overflow: visible;
322
- }
323
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
324
- float: left;
325
- }
326
-
327
- /* with multiple calendars */
328
- .ui-datepicker.ui-datepicker-multi {
329
- width: auto;
330
- }
331
- .ui-datepicker-multi .ui-datepicker-group {
332
- float: left;
333
- }
334
- .ui-datepicker-multi .ui-datepicker-group table {
335
- width: 95%;
336
- margin: 0 auto .4em;
337
- }
338
- .ui-datepicker-multi-2 .ui-datepicker-group {
339
- width: 50%;
340
- }
341
- .ui-datepicker-multi-3 .ui-datepicker-group {
342
- width: 33.3%;
343
- }
344
- .ui-datepicker-multi-4 .ui-datepicker-group {
345
- width: 25%;
346
- }
347
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
348
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
349
- border-left-width: 0;
350
- }
351
- .ui-datepicker-multi .ui-datepicker-buttonpane {
352
- clear: left;
353
- }
354
- .ui-datepicker-row-break {
355
- clear: both;
356
- width: 100%;
357
- font-size: 0;
358
- }
359
-
360
- /* RTL support */
361
- .ui-datepicker-rtl {
362
- direction: rtl;
363
- }
364
- .ui-datepicker-rtl .ui-datepicker-prev {
365
- right: 2px;
366
- left: auto;
367
- }
368
- .ui-datepicker-rtl .ui-datepicker-next {
369
- left: 2px;
370
- right: auto;
371
- }
372
- .ui-datepicker-rtl .ui-datepicker-prev:hover {
373
- right: 1px;
374
- left: auto;
375
- }
376
- .ui-datepicker-rtl .ui-datepicker-next:hover {
377
- left: 1px;
378
- right: auto;
379
- }
380
- .ui-datepicker-rtl .ui-datepicker-buttonpane {
381
- clear: right;
382
- }
383
- .ui-datepicker-rtl .ui-datepicker-buttonpane button {
384
- float: left;
385
- }
386
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
387
- .ui-datepicker-rtl .ui-datepicker-group {
388
- float: right;
389
- }
390
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
391
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
392
- border-right-width: 0;
393
- border-left-width: 1px;
394
- }
395
- .ui-dialog {
396
- position: absolute;
397
- top: 0;
398
- left: 0;
399
- padding: .2em;
400
- outline: 0;
401
- }
402
- .ui-dialog .ui-dialog-titlebar {
403
- padding: .4em 1em;
404
- position: relative;
405
- }
406
- .ui-dialog .ui-dialog-title {
407
- float: left;
408
- margin: .1em 0;
409
- white-space: nowrap;
410
- width: 90%;
411
- overflow: hidden;
412
- text-overflow: ellipsis;
413
- }
414
- .ui-dialog .ui-dialog-titlebar-close {
415
- position: absolute;
416
- right: .3em;
417
- top: 50%;
418
- width: 21px;
419
- margin: -10px 0 0 0;
420
- padding: 1px;
421
- height: 20px;
422
- }
423
- .ui-dialog .ui-dialog-content {
424
- position: relative;
425
- border: 0;
426
- padding: .5em 1em;
427
- background: none;
428
- overflow: auto;
429
- }
430
- .ui-dialog .ui-dialog-buttonpane {
431
- text-align: left;
432
- border-width: 1px 0 0 0;
433
- background-image: none;
434
- margin-top: .5em;
435
- padding: .3em 1em .5em .4em;
436
- }
437
- .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
438
- float: right;
439
- }
440
- .ui-dialog .ui-dialog-buttonpane button {
441
- margin: .5em .4em .5em 0;
442
- cursor: pointer;
443
- }
444
- .ui-dialog .ui-resizable-se {
445
- width: 12px;
446
- height: 12px;
447
- right: -5px;
448
- bottom: -5px;
449
- background-position: 16px 16px;
450
- }
451
- .ui-draggable .ui-dialog-titlebar {
452
- cursor: move;
453
- }
454
- .ui-menu {
455
- list-style: none;
456
- padding: 2px;
457
- margin: 0;
458
- display: block;
459
- outline: none;
460
- }
461
- .ui-menu .ui-menu {
462
- margin-top: -3px;
463
- position: absolute;
464
- }
465
- .ui-menu .ui-menu-item {
466
- margin: 0;
467
- padding: 0;
468
- width: 100%;
469
- /* support: IE10, see #8844 */
470
- list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
471
- }
472
- .ui-menu .ui-menu-divider {
473
- margin: 5px -2px 5px -2px;
474
- height: 0;
475
- font-size: 0;
476
- line-height: 0;
477
- border-width: 1px 0 0 0;
478
- }
479
- .ui-menu .ui-menu-item a {
480
- text-decoration: none;
481
- display: block;
482
- padding: 2px .4em;
483
- line-height: 1.5;
484
- min-height: 0; /* support: IE7 */
485
- font-weight: normal;
486
- }
487
- .ui-menu .ui-menu-item a.ui-state-focus,
488
- .ui-menu .ui-menu-item a.ui-state-active {
489
- font-weight: normal;
490
- margin: -1px;
491
- }
492
-
493
- .ui-menu .ui-state-disabled {
494
- font-weight: normal;
495
- margin: .4em 0 .2em;
496
- line-height: 1.5;
497
- }
498
- .ui-menu .ui-state-disabled a {
499
- cursor: default;
500
- }
501
-
502
- /* icon support */
503
- .ui-menu-icons {
504
- position: relative;
505
- }
506
- .ui-menu-icons .ui-menu-item a {
507
- position: relative;
508
- padding-left: 2em;
509
- }
510
-
511
- /* left-aligned */
512
- .ui-menu .ui-icon {
513
- position: absolute;
514
- top: .2em;
515
- left: .2em;
516
- }
517
-
518
- /* right-aligned */
519
- .ui-menu .ui-menu-icon {
520
- position: static;
521
- float: right;
522
- }
523
- .ui-progressbar {
524
- height: 2em;
525
- text-align: left;
526
- overflow: hidden;
527
- }
528
- .ui-progressbar .ui-progressbar-value {
529
- margin: -1px;
530
- height: 100%;
531
- }
532
- .ui-progressbar .ui-progressbar-overlay {
533
- background: url("images/animated-overlay.gif");
534
- height: 100%;
535
- filter: alpha(opacity=25);
536
- opacity: 0.25;
537
- }
538
- .ui-progressbar-indeterminate .ui-progressbar-value {
539
- background-image: none;
540
- }
541
- .ui-resizable {
542
- position: relative;
543
- }
544
- .ui-resizable-handle {
545
- position: absolute;
546
- font-size: 0.1px;
547
- display: block;
548
- }
549
- .ui-resizable-disabled .ui-resizable-handle,
550
- .ui-resizable-autohide .ui-resizable-handle {
551
- display: none;
552
- }
553
- .ui-resizable-n {
554
- cursor: n-resize;
555
- height: 7px;
556
- width: 100%;
557
- top: -5px;
558
- left: 0;
559
- }
560
- .ui-resizable-s {
561
- cursor: s-resize;
562
- height: 7px;
563
- width: 100%;
564
- bottom: -5px;
565
- left: 0;
566
- }
567
- .ui-resizable-e {
568
- cursor: e-resize;
569
- width: 7px;
570
- right: -5px;
571
- top: 0;
572
- height: 100%;
573
- }
574
- .ui-resizable-w {
575
- cursor: w-resize;
576
- width: 7px;
577
- left: -5px;
578
- top: 0;
579
- height: 100%;
580
- }
581
- .ui-resizable-se {
582
- cursor: se-resize;
583
- width: 12px;
584
- height: 12px;
585
- right: 1px;
586
- bottom: 1px;
587
- }
588
- .ui-resizable-sw {
589
- cursor: sw-resize;
590
- width: 9px;
591
- height: 9px;
592
- left: -5px;
593
- bottom: -5px;
594
- }
595
- .ui-resizable-nw {
596
- cursor: nw-resize;
597
- width: 9px;
598
- height: 9px;
599
- left: -5px;
600
- top: -5px;
601
- }
602
- .ui-resizable-ne {
603
- cursor: ne-resize;
604
- width: 9px;
605
- height: 9px;
606
- right: -5px;
607
- top: -5px;
608
- }
609
- .ui-selectable-helper {
610
- position: absolute;
611
- z-index: 100;
612
- border: 1px dotted black;
613
- }
614
- .ui-slider {
615
- position: relative;
616
- text-align: left;
617
- }
618
- .ui-slider .ui-slider-handle {
619
- position: absolute;
620
- z-index: 2;
621
- width: 1.2em;
622
- height: 1.2em;
623
- cursor: default;
624
- }
625
- .ui-slider .ui-slider-range {
626
- position: absolute;
627
- z-index: 1;
628
- font-size: .7em;
629
- display: block;
630
- border: 0;
631
- background-position: 0 0;
632
- }
633
-
634
- /* For IE8 - See #6727 */
635
- .ui-slider.ui-state-disabled .ui-slider-handle,
636
- .ui-slider.ui-state-disabled .ui-slider-range {
637
- filter: inherit;
638
- }
639
-
640
- .ui-slider-horizontal {
641
- height: .8em;
642
- }
643
- .ui-slider-horizontal .ui-slider-handle {
644
- top: -.3em;
645
- margin-left: -.6em;
646
- }
647
- .ui-slider-horizontal .ui-slider-range {
648
- top: 0;
649
- height: 100%;
650
- }
651
- .ui-slider-horizontal .ui-slider-range-min {
652
- left: 0;
653
- }
654
- .ui-slider-horizontal .ui-slider-range-max {
655
- right: 0;
656
- }
657
-
658
- .ui-slider-vertical {
659
- width: .8em;
660
- height: 100px;
661
- }
662
- .ui-slider-vertical .ui-slider-handle {
663
- left: -.3em;
664
- margin-left: 0;
665
- margin-bottom: -.6em;
666
- }
667
- .ui-slider-vertical .ui-slider-range {
668
- left: 0;
669
- width: 100%;
670
- }
671
- .ui-slider-vertical .ui-slider-range-min {
672
- bottom: 0;
673
- }
674
- .ui-slider-vertical .ui-slider-range-max {
675
- top: 0;
676
- }
677
- .ui-spinner {
678
- position: relative;
679
- display: inline-block;
680
- overflow: hidden;
681
- padding: 0;
682
- vertical-align: middle;
683
- }
684
- .ui-spinner-input {
685
- border: none;
686
- background: none;
687
- color: inherit;
688
- padding: 0;
689
- margin: .2em 0;
690
- vertical-align: middle;
691
- margin-left: .4em;
692
- margin-right: 22px;
693
- }
694
- .ui-spinner-button {
695
- width: 16px;
696
- height: 50%;
697
- font-size: .5em;
698
- padding: 0;
699
- margin: 0;
700
- text-align: center;
701
- position: absolute;
702
- cursor: default;
703
- display: block;
704
- overflow: hidden;
705
- right: 0;
706
- }
707
- /* more specificity required here to overide default borders */
708
- .ui-spinner a.ui-spinner-button {
709
- border-top: none;
710
- border-bottom: none;
711
- border-right: none;
712
- }
713
- /* vertical centre icon */
714
- .ui-spinner .ui-icon {
715
- position: absolute;
716
- margin-top: -8px;
717
- top: 50%;
718
- left: 0;
719
- }
720
- .ui-spinner-up {
721
- top: 0;
722
- }
723
- .ui-spinner-down {
724
- bottom: 0;
725
- }
726
-
727
- /* TR overrides */
728
- .ui-spinner .ui-icon-triangle-1-s {
729
- /* need to fix icons sprite */
730
- background-position: -65px -16px;
731
- }
732
- .ui-tabs {
733
- position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
734
- padding: .2em;
735
- }
736
- .ui-tabs .ui-tabs-nav {
737
- margin: 0;
738
- padding: .2em .2em 0;
739
- }
740
- .ui-tabs .ui-tabs-nav li {
741
- list-style: none;
742
- float: left;
743
- position: relative;
744
- top: 0;
745
- margin: 1px .2em 0 0;
746
- border-bottom-width: 0;
747
- padding: 0;
748
- white-space: nowrap;
749
- }
750
- .ui-tabs .ui-tabs-nav li a {
751
- float: left;
752
- padding: .5em 1em;
753
- text-decoration: none;
754
- }
755
- .ui-tabs .ui-tabs-nav li.ui-tabs-active {
756
- margin-bottom: -1px;
757
- padding-bottom: 1px;
758
- }
759
- .ui-tabs .ui-tabs-nav li.ui-tabs-active a,
760
- .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
761
- .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
762
- cursor: text;
763
- }
764
- .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
765
- .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
766
- cursor: pointer;
767
- }
768
- .ui-tabs .ui-tabs-panel {
769
- display: block;
770
- border-width: 0;
771
- padding: 1em 1.4em;
772
- background: none;
773
- }
774
- .ui-tooltip {
775
- padding: 8px;
776
- position: absolute;
777
- z-index: 9999;
778
- max-width: 300px;
779
- -webkit-box-shadow: 0 0 5px #aaa;
780
- box-shadow: 0 0 5px #aaa;
781
- }
782
- body .ui-tooltip {
783
- border-width: 2px;
784
- }
785
-
786
- /* Component containers
787
- ----------------------------------*/
788
- .ui-widget {
789
- font-family: Verdana,Arial,sans-serif;
790
- font-size: 1.1em;
791
- }
792
- .ui-widget .ui-widget {
793
- font-size: 1em;
794
- }
795
- .ui-widget input,
796
- .ui-widget select,
797
- .ui-widget textarea,
798
- .ui-widget button {
799
- font-family: Verdana,Arial,sans-serif;
800
- font-size: 1em;
801
- }
802
- .ui-widget-content {
803
- border: 1px solid #aaaaaa;
804
- background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
805
- color: #222222;
806
- }
807
- .ui-widget-content a {
808
- color: #222222;
809
- }
810
- .ui-widget-header {
811
- border: 1px solid #aaaaaa;
812
- background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
813
- color: #222222;
814
- font-weight: bold;
815
- }
816
- .ui-widget-header a {
817
- color: #222222;
818
- }
819
-
820
- /* Interaction states
821
- ----------------------------------*/
822
- .ui-state-default,
823
- .ui-widget-content .ui-state-default,
824
- .ui-widget-header .ui-state-default {
825
- border: 1px solid #d3d3d3;
826
- background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
827
- font-weight: normal;
828
- color: #555555;
829
- }
830
- .ui-state-default a,
831
- .ui-state-default a:link,
832
- .ui-state-default a:visited {
833
- color: #555555;
834
- text-decoration: none;
835
- }
836
- .ui-state-hover,
837
- .ui-widget-content .ui-state-hover,
838
- .ui-widget-header .ui-state-hover,
839
- .ui-state-focus,
840
- .ui-widget-content .ui-state-focus,
841
- .ui-widget-header .ui-state-focus {
842
- border: 1px solid #999999;
843
- background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
844
- font-weight: normal;
845
- color: #212121;
846
- }
847
- .ui-state-hover a,
848
- .ui-state-hover a:hover,
849
- .ui-state-hover a:link,
850
- .ui-state-hover a:visited {
851
- color: #212121;
852
- text-decoration: none;
853
- }
854
- .ui-state-active,
855
- .ui-widget-content .ui-state-active,
856
- .ui-widget-header .ui-state-active {
857
- border: 1px solid #aaaaaa;
858
- background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
859
- font-weight: normal;
860
- color: #212121;
861
- }
862
- .ui-state-active a,
863
- .ui-state-active a:link,
864
- .ui-state-active a:visited {
865
- color: #212121;
866
- text-decoration: none;
867
- }
868
-
869
- /* Interaction Cues
870
- ----------------------------------*/
871
- .ui-state-highlight,
872
- .ui-widget-content .ui-state-highlight,
873
- .ui-widget-header .ui-state-highlight {
874
- border: 1px solid #fcefa1;
875
- background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
876
- color: #363636;
877
- }
878
- .ui-state-highlight a,
879
- .ui-widget-content .ui-state-highlight a,
880
- .ui-widget-header .ui-state-highlight a {
881
- color: #363636;
882
- }
883
- .ui-state-error,
884
- .ui-widget-content .ui-state-error,
885
- .ui-widget-header .ui-state-error {
886
- border: 1px solid #cd0a0a;
887
- background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
888
- color: #cd0a0a;
889
- }
890
- .ui-state-error a,
891
- .ui-widget-content .ui-state-error a,
892
- .ui-widget-header .ui-state-error a {
893
- color: #cd0a0a;
894
- }
895
- .ui-state-error-text,
896
- .ui-widget-content .ui-state-error-text,
897
- .ui-widget-header .ui-state-error-text {
898
- color: #cd0a0a;
899
- }
900
- .ui-priority-primary,
901
- .ui-widget-content .ui-priority-primary,
902
- .ui-widget-header .ui-priority-primary {
903
- font-weight: bold;
904
- }
905
- .ui-priority-secondary,
906
- .ui-widget-content .ui-priority-secondary,
907
- .ui-widget-header .ui-priority-secondary {
908
- opacity: .7;
909
- filter:Alpha(Opacity=70);
910
- font-weight: normal;
911
- }
912
- .ui-state-disabled,
913
- .ui-widget-content .ui-state-disabled,
914
- .ui-widget-header .ui-state-disabled {
915
- opacity: .35;
916
- filter:Alpha(Opacity=35);
917
- background-image: none;
918
- }
919
- .ui-state-disabled .ui-icon {
920
- filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
921
- }
922
-
923
- /* Icons
924
- ----------------------------------*/
925
-
926
- /* states and images */
927
- .ui-icon {
928
- width: 16px;
929
- height: 16px;
930
- }
931
- .ui-icon,
932
- .ui-widget-content .ui-icon {
933
- background-image: url(images/ui-icons_222222_256x240.png);
934
- }
935
- .ui-widget-header .ui-icon {
936
- background-image: url(images/ui-icons_222222_256x240.png);
937
- }
938
- .ui-state-default .ui-icon {
939
- background-image: url(images/ui-icons_888888_256x240.png);
940
- }
941
- .ui-state-hover .ui-icon,
942
- .ui-state-focus .ui-icon {
943
- background-image: url(images/ui-icons_454545_256x240.png);
944
- }
945
- .ui-state-active .ui-icon {
946
- background-image: url(images/ui-icons_454545_256x240.png);
947
- }
948
- .ui-state-highlight .ui-icon {
949
- background-image: url(images/ui-icons_2e83ff_256x240.png);
950
- }
951
- .ui-state-error .ui-icon,
952
- .ui-state-error-text .ui-icon {
953
- background-image: url(images/ui-icons_cd0a0a_256x240.png);
954
- }
955
-
956
- /* positioning */
957
- .ui-icon-blank { background-position: 16px 16px; }
958
- .ui-icon-carat-1-n { background-position: 0 0; }
959
- .ui-icon-carat-1-ne { background-position: -16px 0; }
960
- .ui-icon-carat-1-e { background-position: -32px 0; }
961
- .ui-icon-carat-1-se { background-position: -48px 0; }
962
- .ui-icon-carat-1-s { background-position: -64px 0; }
963
- .ui-icon-carat-1-sw { background-position: -80px 0; }
964
- .ui-icon-carat-1-w { background-position: -96px 0; }
965
- .ui-icon-carat-1-nw { background-position: -112px 0; }
966
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
967
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
968
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
969
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
970
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
971
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
972
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
973
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
974
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
975
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
976
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
977
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
978
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
979
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
980
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
981
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
982
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
983
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
984
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
985
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
986
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
987
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
988
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
989
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
990
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
991
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
992
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
993
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
994
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
995
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
996
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
997
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
998
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
999
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1000
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1001
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1002
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1003
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1004
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1005
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1006
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1007
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1008
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1009
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1010
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1011
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1012
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1013
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1014
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1015
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1016
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1017
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1018
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1019
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1020
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1021
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1022
- .ui-icon-arrow-4 { background-position: 0 -80px; }
1023
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1024
- .ui-icon-extlink { background-position: -32px -80px; }
1025
- .ui-icon-newwin { background-position: -48px -80px; }
1026
- .ui-icon-refresh { background-position: -64px -80px; }
1027
- .ui-icon-shuffle { background-position: -80px -80px; }
1028
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
1029
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1030
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
1031
- .ui-icon-folder-open { background-position: -16px -96px; }
1032
- .ui-icon-document { background-position: -32px -96px; }
1033
- .ui-icon-document-b { background-position: -48px -96px; }
1034
- .ui-icon-note { background-position: -64px -96px; }
1035
- .ui-icon-mail-closed { background-position: -80px -96px; }
1036
- .ui-icon-mail-open { background-position: -96px -96px; }
1037
- .ui-icon-suitcase { background-position: -112px -96px; }
1038
- .ui-icon-comment { background-position: -128px -96px; }
1039
- .ui-icon-person { background-position: -144px -96px; }
1040
- .ui-icon-print { background-position: -160px -96px; }
1041
- .ui-icon-trash { background-position: -176px -96px; }
1042
- .ui-icon-locked { background-position: -192px -96px; }
1043
- .ui-icon-unlocked { background-position: -208px -96px; }
1044
- .ui-icon-bookmark { background-position: -224px -96px; }
1045
- .ui-icon-tag { background-position: -240px -96px; }
1046
- .ui-icon-home { background-position: 0 -112px; }
1047
- .ui-icon-flag { background-position: -16px -112px; }
1048
- .ui-icon-calendar { background-position: -32px -112px; }
1049
- .ui-icon-cart { background-position: -48px -112px; }
1050
- .ui-icon-pencil { background-position: -64px -112px; }
1051
- .ui-icon-clock { background-position: -80px -112px; }
1052
- .ui-icon-disk { background-position: -96px -112px; }
1053
- .ui-icon-calculator { background-position: -112px -112px; }
1054
- .ui-icon-zoomin { background-position: -128px -112px; }
1055
- .ui-icon-zoomout { background-position: -144px -112px; }
1056
- .ui-icon-search { background-position: -160px -112px; }
1057
- .ui-icon-wrench { background-position: -176px -112px; }
1058
- .ui-icon-gear { background-position: -192px -112px; }
1059
- .ui-icon-heart { background-position: -208px -112px; }
1060
- .ui-icon-star { background-position: -224px -112px; }
1061
- .ui-icon-link { background-position: -240px -112px; }
1062
- .ui-icon-cancel { background-position: 0 -128px; }
1063
- .ui-icon-plus { background-position: -16px -128px; }
1064
- .ui-icon-plusthick { background-position: -32px -128px; }
1065
- .ui-icon-minus { background-position: -48px -128px; }
1066
- .ui-icon-minusthick { background-position: -64px -128px; }
1067
- .ui-icon-close { background-position: -80px -128px; }
1068
- .ui-icon-closethick { background-position: -96px -128px; }
1069
- .ui-icon-key { background-position: -112px -128px; }
1070
- .ui-icon-lightbulb { background-position: -128px -128px; }
1071
- .ui-icon-scissors { background-position: -144px -128px; }
1072
- .ui-icon-clipboard { background-position: -160px -128px; }
1073
- .ui-icon-copy { background-position: -176px -128px; }
1074
- .ui-icon-contact { background-position: -192px -128px; }
1075
- .ui-icon-image { background-position: -208px -128px; }
1076
- .ui-icon-video { background-position: -224px -128px; }
1077
- .ui-icon-script { background-position: -240px -128px; }
1078
- .ui-icon-alert { background-position: 0 -144px; }
1079
- .ui-icon-info { background-position: -16px -144px; }
1080
- .ui-icon-notice { background-position: -32px -144px; }
1081
- .ui-icon-help { background-position: -48px -144px; }
1082
- .ui-icon-check { background-position: -64px -144px; }
1083
- .ui-icon-bullet { background-position: -80px -144px; }
1084
- .ui-icon-radio-on { background-position: -96px -144px; }
1085
- .ui-icon-radio-off { background-position: -112px -144px; }
1086
- .ui-icon-pin-w { background-position: -128px -144px; }
1087
- .ui-icon-pin-s { background-position: -144px -144px; }
1088
- .ui-icon-play { background-position: 0 -160px; }
1089
- .ui-icon-pause { background-position: -16px -160px; }
1090
- .ui-icon-seek-next { background-position: -32px -160px; }
1091
- .ui-icon-seek-prev { background-position: -48px -160px; }
1092
- .ui-icon-seek-end { background-position: -64px -160px; }
1093
- .ui-icon-seek-start { background-position: -80px -160px; }
1094
- /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1095
- .ui-icon-seek-first { background-position: -80px -160px; }
1096
- .ui-icon-stop { background-position: -96px -160px; }
1097
- .ui-icon-eject { background-position: -112px -160px; }
1098
- .ui-icon-volume-off { background-position: -128px -160px; }
1099
- .ui-icon-volume-on { background-position: -144px -160px; }
1100
- .ui-icon-power { background-position: 0 -176px; }
1101
- .ui-icon-signal-diag { background-position: -16px -176px; }
1102
- .ui-icon-signal { background-position: -32px -176px; }
1103
- .ui-icon-battery-0 { background-position: -48px -176px; }
1104
- .ui-icon-battery-1 { background-position: -64px -176px; }
1105
- .ui-icon-battery-2 { background-position: -80px -176px; }
1106
- .ui-icon-battery-3 { background-position: -96px -176px; }
1107
- .ui-icon-circle-plus { background-position: 0 -192px; }
1108
- .ui-icon-circle-minus { background-position: -16px -192px; }
1109
- .ui-icon-circle-close { background-position: -32px -192px; }
1110
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1111
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1112
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1113
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1114
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1115
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1116
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1117
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1118
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
1119
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
1120
- .ui-icon-circle-check { background-position: -208px -192px; }
1121
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1122
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1123
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
1124
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1125
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1126
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
1127
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1128
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1129
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1130
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1131
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1132
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1133
-
1134
-
1135
- /* Misc visuals
1136
- ----------------------------------*/
1137
-
1138
- /* Corner radius */
1139
- .ui-corner-all,
1140
- .ui-corner-top,
1141
- .ui-corner-left,
1142
- .ui-corner-tl {
1143
- border-top-left-radius: 4px;
1144
- }
1145
- .ui-corner-all,
1146
- .ui-corner-top,
1147
- .ui-corner-right,
1148
- .ui-corner-tr {
1149
- border-top-right-radius: 4px;
1150
- }
1151
- .ui-corner-all,
1152
- .ui-corner-bottom,
1153
- .ui-corner-left,
1154
- .ui-corner-bl {
1155
- border-bottom-left-radius: 4px;
1156
- }
1157
- .ui-corner-all,
1158
- .ui-corner-bottom,
1159
- .ui-corner-right,
1160
- .ui-corner-br {
1161
- border-bottom-right-radius: 4px;
1162
- }
1163
-
1164
- /* Overlays */
1165
- .ui-widget-overlay {
1166
- background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1167
- opacity: .3;
1168
- filter: Alpha(Opacity=30);
1169
- }
1170
- .ui-widget-shadow {
1171
- margin: -8px 0 0 -8px;
1172
- padding: 8px;
1173
- background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
1174
- opacity: .3;
1175
- filter: Alpha(Opacity=30);
1176
- border-radius: 8px;
1177
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/jquery-ui.min.css DELETED
@@ -1,7 +0,0 @@
1
- /*! jQuery UI - v1.11.4 - 2016-01-21
2
- * http://jqueryui.com
3
- * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
5
- * Copyright jQuery Foundation and other contributors; Licensed MIT */
6
-
7
- .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
 
 
 
 
 
 
 
assets/css/jquery.tagsinput.min.css DELETED
@@ -1 +0,0 @@
1
- div.tagsinput{border:1px solid #CCC;background:#FFF;padding:5px;width:300px;height:100px;overflow-y:auto}div.tagsinput span.tag{border:1px solid #a5d24a;-moz-border-radius:2px;-webkit-border-radius:2px;display:block;float:left;padding:5px;text-decoration:none;background:#cde69c;color:#638421;margin-right:5px;margin-bottom:5px;font-family:helvetica;font-size:13px}div.tagsinput span.tag a{font-weight:700;color:#82ad2b;text-decoration:none;font-size:11px}div.tagsinput input{width:80px;margin:0 5px 5px 0;font-family:helvetica;font-size:13px;border:1px solid transparent;padding:5px;background:0 0;color:#000;outline:0}div.tagsinput div{display:block;float:left}.tags_clear{clear:both;width:100%;height:0}.not_valid{background:#FBD8DB!important;color:#90111A!important}
 
assets/css/minimal.png DELETED
Binary file
assets/css/minimal@2x.png DELETED
Binary file
assets/css/wpdatatables-excel.min.css DELETED
@@ -1,67 +0,0 @@
1
- div.wpExcelTable {
2
- clear:both;
3
- }
4
-
5
- .wpExcelTable_search_filter {
6
- float: left;
7
- margin-bottom: 20px;
8
- }
9
-
10
- .wpExcelTable .wdtAttachmentEditorHolder {
11
- position: absolute;
12
- top: 0;
13
- left: 0;
14
- z-index: 100;
15
- background-color: #fff;
16
- padding: 5px;
17
- border: 2px solid #CCC;
18
- }
19
-
20
- .wpExcelTable .wdtAttachmentEditorHolder span.delete_file {
21
- padding-left: 10px;
22
- }
23
-
24
- .wpExcelTable .invalid_editor_value > textarea {
25
- background-color: #ff4c42!important;
26
- }
27
-
28
- .wpExcelTable .overlayed_elm {
29
- position: relative;
30
- pointer-events: none;
31
- }
32
-
33
- .wpExcelTable .overlayed_elm>* {
34
- opacity: .3;
35
- }
36
-
37
- .wpExcelTable > .handsontable:first-child .overlayed_elm:after {
38
- color: inherit;
39
- font-size: 34px;
40
- left: 50%;
41
- margin-left: -15px;
42
- margin-top: -20px;
43
- opacity: 1;
44
- position: absolute;
45
- top: 50%;
46
- -webkit-animation: spin 2s infinite linear;
47
- -moz-animation: spin 2s infinite linear;
48
- -o-animation: spin 2s infinite linear;
49
- animation: spin 2s infinite linear;
50
- }
51
-
52
- .wpExcelTable > .handsontable:first-child .overlayed_elm:after {
53
- display: inline-block;
54
- font-family: WPDataTablesIcons!important;
55
- font-style: normal;
56
- font-weight: 400;
57
- text-align: center;
58
- text-decoration: none;
59
- vertical-align: middle;
60
- -webkit-font-smoothing: antialiased;
61
- }
62
-
63
- .wpExcelTable > .handsontable:first-child .overlayed_elm:after {
64
- font-family: dashicons!important;
65
- content: "\f463"
66
- }
67
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/wpdatatables_admin.css DELETED
@@ -1,896 +0,0 @@
1
- .toplevel_page_wpdatatables-administration .wp-list-table .column-id, .wpdatatables_page_wpdatatables-charts .wp-list-table .column-id { width: 5%; }
2
-
3
- .toplevel_page_wpdatatables-administration .wp-list-table .column-title { width: 45%; }
4
- .toplevel_page_wpdatatables-administration .wp-list-table .column-table_type { width: 10%; }
5
- .toplevel_page_wpdatatables-administration .wp-list-table .column-shortcode { width: 10%; }
6
- .toplevel_page_wpdatatables-administration .wp-list-table button.button { margin: 3px; }
7
-
8
- .toplevel_page_wpdatatables-administration .wrap > h2,
9
- .toplevel_page_wpdatatables-administration #wpDataTablesSettings > h3 {
10
- padding-left: 10px;
11
- }
12
-
13
- #wpDataTablesSettings .form-table.wpDataTables .picker .picker-label {
14
- float: none;
15
- margin-left: 30px;
16
- }
17
-
18
- .toplevel_page_wpdatatables-administration .form-table td,
19
- .toplevel_page_wpdatatables-administration .form-table th {
20
- padding: 15px 10px;
21
- }
22
-
23
- .toplevel_page_wpdatatables-administration .form-table th {
24
- width: 200px;
25
- }
26
-
27
- .toplevel_page_wpdatatables-administration tr.fixcolumns_row {
28
- display: none;
29
- }
30
-
31
- .toplevel_page_wpdatatables-administration tr.autorefresh_row {
32
- display: none;
33
- }
34
-
35
- .toplevel_page_wpdatatables-administration tr.mysqlquery_row {
36
- display: none;
37
- }
38
-
39
- .toplevel_page_wpdatatables-administration tr.inputfile_row {
40
- display: none;
41
- }
42
-
43
- .toplevel_page_wpdatatables-administration tr.charttitle_row {
44
- display: none;
45
- }
46
-
47
- .toplevel_page_wpdatatables-administration tr.serverside_row {
48
- display: none;
49
- }
50
-
51
- .toplevel_page_wpdatatables-administration tr.step2_row {
52
- display: none;
53
- }
54
-
55
- .toplevel_page_wpdatatables-administration tr.chart_row {
56
- display: none;
57
- }
58
-
59
- .toplevel_page_wpdatatables-administration tr.table_editable_row {
60
- display: none;
61
- }
62
-
63
- .toplevel_page_wpdatatables-administration tr.table_mysql_name_row {
64
- // display: none;
65
- }
66
-
67
- .toplevel_page_wpdatatables-administration tr.editor_roles_row {
68
- display: none;
69
- }
70
-
71
- .toplevel_page_wpdatatables-administration tr.responsive_table_column_row {
72
- display: none;
73
- }
74
-
75
- .toplevel_page_wpdatatables-administration tr.editing_own_rows_row {
76
- display: none;
77
- }
78
-
79
- .toplevel_page_wpdatatables-administration tr.sum_row {
80
- display: none;
81
- }
82
-
83
- .toplevel_page_wpdatatables-administration tr.skip_ts_row {
84
- display: none;
85
- }
86
-
87
- .toplevel_page_wpdatatables-administration table tr.error,
88
- .wpdatatables_page_wpdatatables-addnew table tr.error {
89
- background-color: #faa;
90
- }
91
-
92
- #wdtPlaceholdersTable {
93
- background-color: #f5f5f5;
94
- margin-top: 10px;
95
- border-radius: 4px;
96
- }
97
-
98
- #wdtPlaceholdersTable thead {
99
- background-color: #e3e3e3;
100
- }
101
-
102
- .toplevel_page_wpdatatables-administration table.column_table {
103
- border: 1px solid #ddd;
104
- background-color: #f8f8f8;
105
- margin: 5px;
106
- table-layout: fixed;
107
- -webkit-border-radius: 7px;
108
- border-radius: 7px;
109
- width: 320px;
110
- }
111
-
112
- .toplevel_page_wpdatatables-administration #wpTableEditorRoles{
113
- margin: 5px;
114
- padding: 5px;
115
- }
116
-
117
- .toplevel_page_wpdatatables-administration table.column_table td {
118
- padding: 5px;
119
- }
120
-
121
- .toplevel_page_wpdatatables-administration table.column_table td:first-child {
122
- width: 100px;
123
- }
124
-
125
- .toplevel_page_wpdatatables-administration table.column_table td:last-child {
126
- width: 100%;
127
- }
128
-
129
- .toplevel_page_wpdatatables-administration td.columnsBlock table td {
130
- margin: 3px;
131
- }
132
-
133
- .toplevel_page_wpdatatables-administration table.column_table tr.columnHeaderRow {
134
- background: #2ea2cc;
135
- text-align: center;
136
- cursor: pointer;
137
- padding: 20px;
138
- margin: 10px;
139
- color: #fff;
140
- font-size: 21px;
141
- font-weight: bold;
142
- line-height: 1.3em;
143
- text-shadow: -1px -1px #aa3030;
144
- font-weight: normal;
145
- }
146
-
147
- .toplevel_page_wpdatatables-administration table.column_table.formula_column tr.columnHeaderRow {
148
- background: #1ea1ac;
149
- text-align: center;
150
- cursor: pointer;
151
- padding: 20px;
152
- margin: 10px;
153
- color: #fff;
154
- font-size: 21px;
155
- font-weight: bold;
156
- line-height: 1.3em;
157
- text-shadow: -1px -1px #aa3030;
158
- font-weight: normal;
159
- }
160
-
161
- .toplevel_page_wpdatatables-administration table.column_table.formula_column button.removeColumnBlock {
162
- float: right;
163
- padding: 3px;
164
- }
165
-
166
- .toplevel_page_wpdatatables-administration table.column_table tr.columnHeaderRow:hover {
167
- background: #1e92bc;
168
- }
169
-
170
- .toplevel_page_wpdatatables-administration table.column_table tr.columnHeaderRow td {
171
- border-color: #0074a2;
172
- border-radius: 5px;
173
- margin-bottom: 15px;
174
- }
175
-
176
- .toplevel_page_wpdatatables-administration td.columnsBlock table td {
177
- vertical-align: top;
178
- }
179
-
180
- #wdt_formula_editor_block {
181
- position: relative;
182
- overflow: hidden;
183
- width: 100%;
184
- }
185
-
186
- #wdt_formula_editor_columns {
187
- float: left;
188
- width: 300px;
189
- margin: 4px;
190
- padding: 3px;
191
- }
192
-
193
- #wdt_formula_editor_block b {
194
- display: block;
195
- margin: 2px;
196
- }
197
-
198
- #wdt_formula_editor_columns div.columns_container {
199
- max-height: 150px;
200
- overflow-y: scroll;
201
- }
202
-
203
- #wdt_formula_editor_columns div.column_block {
204
- border: 1px solid #ddd;
205
- border-radius: 3px;
206
- background: rgb(255,255,255);
207
- background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(244,244,244,1) 100%);
208
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(244,244,244,1)));
209
- background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%);
210
- background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%);
211
- background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%);
212
- background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%);
213
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 );
214
- padding: 3px;
215
- padding-left: 6px;
216
- padding-right: 6px;
217
- height: 20px;
218
- margin: 3px;
219
- cursor: pointer;
220
- }
221
-
222
- #wdt_formula_editor_columns div.column_block:hover {
223
- border: 1px solid #ddd;
224
- border-radius: 3px;
225
- background: rgb(255,255,255);
226
- background: -moz-linear-gradient(top, rgba(244,244,244,1) 0%, rgba(255,255,255,1) 100%);
227
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(244,244,244,1)));
228
- background: -webkit-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%);
229
- background: -o-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%);
230
- background: -ms-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%);
231
- background: linear-gradient(to bottom, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%);
232
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='ffffff',GradientType=0 );
233
- }
234
-
235
- #wdt_formula_editor_operators {
236
- width: 70px;
237
- margin: 4px;
238
- padding: 3px;
239
- float: left;
240
- max-height: 150px;
241
- overflow-y: scroll;
242
- }
243
-
244
- #wdt_formula_preview_block div.preview_container {
245
- margin-top: 10px;
246
- padding: 5px;
247
- border-radius: 3px;
248
- border: 1px solid #ccc;
249
- background-color: #f0f0b8;
250
- display: none;
251
- }
252
-
253
- #wdt_formula_editor_operators button {
254
- width: 50px;
255
- margin: 3px;
256
- }
257
-
258
- #wdt_formula_editor_textblock {
259
- float: left;
260
- width: 300px;
261
- margin: 4px;
262
- padding: 3px;
263
- }
264
-
265
- #wdt_formula_edit {
266
- width: 100%;
267
- height: 150px;
268
- overflow: scroll;
269
- }
270
-
271
- .toplevel_page_wpdatatables-administration #wdtPreloadLayer {
272
- position: absolute;
273
- height: 100%;
274
- width: 100%;
275
- background-color:rgba(255,255,255,0.7);
276
- text-align: center;
277
- display: none;
278
- }
279
-
280
- .toplevel_page_wpdatatables-administration .columnsBlock .selecter {
281
- max-width: 100% !important;
282
- }
283
-
284
- .toplevel_page_wpdatatables-administration tr.wpMySQLParam {
285
- display: none;
286
- }
287
-
288
- #wdtPreloadLayer {
289
- position: absolute;
290
- height: 100%;
291
- width: 100%;
292
- background-color:rgba(255,255,255,0.7);
293
- text-align: center;
294
- display: none;
295
- z-index: 100;
296
- }
297
-
298
- .toplevel_page_wpdatatables-administration div.tipper-content {
299
- max-width: 150px !important;
300
- white-space: normal;
301
- }
302
-
303
- #wpbody-content .selecter {
304
- width: 25em;
305
- }
306
-
307
- /* UI Dialog */
308
- .toplevel_page_wpdatatables-administration .ui-dialog .ui-dialog-titlebar.ui-widget-header {
309
- background-color: transparent;
310
- background-image: none;
311
- border-radius: 0px !important;
312
- border-width: 0px 0px 1px 0px;
313
- margin: -0.2em -0.2em 0 -0.2em;
314
- }
315
-
316
- .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close {
317
- background-color: transparent !important;
318
- background-image: none !important;
319
- border-radius: 0px !important;
320
- border-style: none !important;
321
- color: #333333;
322
- font-size: 16px !important;
323
- height: auto !important;
324
- margin-top: -12px !important;
325
- opacity: 0.5;
326
- width: auto !important;
327
- }
328
-
329
- .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close:hover {
330
- opacity: 1;
331
- }
332
-
333
- .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close span {
334
- display: none !important;
335
- }
336
-
337
- .toplevel_page_wpdatatables-administration .ui-button {
338
- background-color: #fdfdfd !important;
339
- border-color: #cccccc !important;
340
- background-image: none !important;
341
- color: #333333;
342
- border-radius: 3px !important;
343
- -webkit-box-shadow: none !important;
344
- -moz-box-shadow: none !important;
345
- box-shadow: none !important;
346
- }
347
-
348
- .toplevel_page_wpdatatables-administration .ui-button:hover,
349
- .toplevel_page_wpdatatables-administration .ui-button:focus,
350
- .toplevel_page_wpdatatables-administration .ui-button.ui-state-hover,
351
- .toplevel_page_wpdatatables-administration .ui-button.ui-state-active {
352
- background-color: #f5f5f5 !important;
353
- border-color: #a1a1a1 !important;
354
- color: #000000;
355
- -webkit-box-shadow: none !important;
356
- -moz-box-shadow: none !important;
357
- box-shadow: none !important;
358
- }
359
-
360
- /* Remodal */
361
- .remodal.wpDataTables.wdtRemodal {
362
- max-width: 500px;
363
- padding-bottom: 20px;
364
- text-align: center;
365
- }
366
-
367
- /* Icons */
368
- #toplevel_page_wpdatatables-administration div.wp-menu-image:before,
369
- .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close:before {
370
- display: inline-block;
371
- font-family: 'WPDataTablesIcons' !important;
372
- font-style: normal;
373
- font-weight: normal;
374
- text-align: center;
375
- text-decoration: none;
376
- vertical-align: middle;
377
- -webkit-font-smoothing: antialiased;
378
- }
379
-
380
- #toplevel_page_wpdatatables-administration div.wp-menu-image:before {
381
- content: "\e016";
382
- }
383
-
384
- .toplevel_page_wpdatatables-administration .ui-dialog-titlebar-close:before {
385
- content: "\e005" !important;
386
- }
387
-
388
- .toplevel_page_wpdatatables-administration button.showHint {
389
- padding: 3px;
390
- line-height: 13px;
391
- height: 20px;
392
- margin-left: 5px
393
- }
394
-
395
- button.wpDataTablesDuplicateTable .dashicons {
396
- margin-top: 3px;
397
- }
398
-
399
- button.wpDataTablesManualEdit .dashicons {
400
- margin-top: 3px;
401
- }
402
-
403
- .pull-right {
404
- float: right;
405
- }
406
-
407
-
408
- /** Constructor classes **/
409
-
410
- td.columnsContainer div.columnBlock {
411
- float: left;
412
- padding-right: 5px;
413
- }
414
- /** Constructor classes **/
415
-
416
- td.columnsContainer div.columnBlock {
417
- float: left;
418
- padding-right: 5px;
419
- }
420
-
421
- .constructorStep div.post_blocks,
422
- .constructorStep div.mysql_table_blocks {
423
- margin: 5px;
424
- }
425
-
426
- .constructorStep div.post_where_blocks,
427
- .constructorStep div.post_where_blocks {
428
- margin: 5px;
429
- }
430
-
431
- textarea.previewWPQuery {
432
- border: 1px solid #ccc;
433
- padding: 5px;
434
- border-radius: 5px;
435
- height: 250px !important;
436
- margin-bottom: 10px !important;
437
- width: 100%;
438
- }
439
-
440
- div.previewWPTable table {
441
- margin: 5px;
442
- border: 1px solid #ccc;
443
- }
444
-
445
- div.previewWPTable table thead th {
446
- padding: 3px;
447
- border: 1px solid #ccc;
448
- background-color: #eee;
449
- }
450
-
451
- div.previewWPTable table tbody td {
452
- padding: 3px;
453
- border: 1px solid #ccc;
454
- }
455
-
456
- .columnsContainer div.columnBlock table {
457
- border: 1px solid #ddd;
458
- border-radius: 3px;
459
- margin: 3px;
460
- }
461
-
462
- .columnsContainer div.columnBlock table td {
463
- padding: 4px;
464
- }
465
-
466
-
467
- .columnsContainer div.columnBlock button.removeColumnBlock {
468
- float:right;
469
- padding: 3px;
470
- }
471
-
472
- .constructorStep button.addColumnBlock {
473
- padding: 4px 4px 3px 3px;
474
- }
475
-
476
- td.columnBlockHeader {
477
- background-color: #F0F0F0;
478
- border-radius: 3px;
479
- cursor: pointer;
480
- }
481
-
482
- td.columnBlockHeader:hover {
483
- background-color: #E0E0E0;
484
- }
485
-
486
- .constructorStep div.columnBlock {
487
- background-color: #FDFDFD;
488
- }
489
-
490
- table.wdt_file_based_preview input.error {
491
- border: 2px solid red;
492
- }
493
-
494
- #wpDataTablesSettings div.columnPossibleValues > input {
495
- display: none !important;
496
- }
497
-
498
-
499
- div.remodal.addColumn div.columnPossibleValues > input {
500
- display: none !important;
501
- }
502
-
503
- div.wdtRemodal span.error {
504
- font-weight: bold;
505
- color: red;
506
- }
507
-
508
- div.chart_wizard_breadcrumbs {
509
- padding: 1px;
510
- position: relative;
511
- overflow: hidden;
512
- }
513
-
514
- div.chart_wizard_breadcrumbs_block {
515
- border: 1px solid #ddd;
516
- border-radius: 3px;
517
- background: rgb(255,255,255); /* Old browsers */
518
- background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(244,244,244,1) 100%); /* FF3.6+ */
519
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(244,244,244,1))); /* Chrome,Safari4+ */
520
- background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Chrome10+,Safari5.1+ */
521
- background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Opera 11.10+ */
522
- background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* IE10+ */
523
- background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* W3C */
524
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
525
- padding: 3px;
526
- padding-left: 6px;
527
- padding-right: 6px;
528
- height: 20px;
529
- float: left;
530
- margin: 3px;
531
- cursor: pointer;
532
- }
533
-
534
- div.chart_wizard_breadcrumbs_block:hover {
535
- background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(250,250,250,1) 100%); /* FF3.6+ */
536
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(250,250,250,1))); /* Chrome,Safari4+ */
537
- background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* Chrome10+,Safari5.1+ */
538
- background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* Opera 11.10+ */
539
- background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* IE10+ */
540
- background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(250,250,250,1) 100%); /* W3C */
541
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
542
- border-bottom-width: 1px;
543
- }
544
-
545
- div.chart_wizard_breadcrumbs_block.active {
546
- background: -moz-linear-gradient(top, rgba(230,230,230,1) 0%, rgba(250,250,250,1) 100%); /* FF3.6+ */
547
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(230,230,230,1)), color-stop(100%,rgba(250,250,250,1))); /* Chrome,Safari4+ */
548
- background: -webkit-linear-gradient(top, rgba(230,230,230,1) 0%,rgba(250,250,250,1) 100%); /* Chrome10+,Safari5.1+ */
549
- background: -o-linear-gradient(top, rgba(230,230,230,1) 0%,rgba(250,250,250,1) 100%); /* Opera 11.10+ */
550
- background: -ms-linear-gradient(top, rgba(230,230,230,1) 0%,rgba(250,250,250,1) 100%); /* IE10+ */
551
- background: linear-gradient(to bottom, rgba(230,230,230,1) 0%,rgba(250,250,250,1) 100%); /* W3C */
552
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
553
- border-bottom-width: 1px;
554
- font-weight: 600;
555
- }
556
-
557
- span.chart_wizard_breadcrumbs_separator {
558
- float: left;
559
- margin: 3px;
560
- height: 26px;
561
- line-height: 26px;
562
- }
563
-
564
- div.chart_column_picker_container {
565
- position: relative;
566
- width: 100%;
567
- overflow: hidden;
568
- }
569
-
570
- div.chart_column_picker_container div.existing_columns {
571
- float: left;
572
- width: 40%;
573
- margin: 4px;
574
- padding: 3px;
575
- border: 1px solid #ddd;
576
- border-radius: 3px;
577
- }
578
-
579
- div.chart_column_picker_container div.picker_column {
580
- float: left;
581
- width: 100px;
582
- margin: 4px;
583
- padding: 3px;
584
- }
585
-
586
- div.chart_column_picker_container div.picker_column button {
587
- width: 100px;
588
- margin: 3px;
589
- }
590
-
591
- div.chart_column_picker_container div.chosen_columns {
592
- float: left;
593
- width: 40%;
594
- margin: 4px;
595
- padding: 3px;
596
- border: 1px solid #ddd;
597
- border-radius: 3px;
598
- }
599
-
600
- div.chart_column_picker_container div.chart_column_block {
601
- border: 1px solid #ddd;
602
- border-radius: 3px;
603
- background: rgb(255,255,255); /* Old browsers */
604
- background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(244,244,244,1) 100%); /* FF3.6+ */
605
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(244,244,244,1))); /* Chrome,Safari4+ */
606
- background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Chrome10+,Safari5.1+ */
607
- background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* Opera 11.10+ */
608
- background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* IE10+ */
609
- background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(244,244,244,1) 100%); /* W3C */
610
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
611
- padding: 3px;
612
- padding-left: 6px;
613
- padding-right: 6px;
614
- height: 20px;
615
- margin: 3px;
616
- cursor: pointer;
617
- }
618
-
619
- div.chart_column_picker_container div.chart_column_block:hover {
620
- border: 1px solid #ddd;
621
- border-radius: 3px;
622
- background: rgb(255,255,255); /* Old browsers */
623
- background: -moz-linear-gradient(top, rgba(244,244,244,1) 0%, rgba(255,255,255,1) 100%); /* FF3.6+ */
624
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(244,244,244,1))); /* Chrome,Safari4+ */
625
- background: -webkit-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* Chrome10+,Safari5.1+ */
626
- background: -o-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* Opera 11.10+ */
627
- background: -ms-linear-gradient(top, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* IE10+ */
628
- background: linear-gradient(to bottom, rgba(244,244,244,1) 0%,rgba(255,255,255,1) 100%); /* W3C */
629
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='ffffff',GradientType=0 ); /* IE6-9 */
630
- }
631
-
632
- div.chart_column_picker_container div.chart_column_block.selected {
633
- border: 1px solid #c5c5c5;
634
- border-radius: 3px;
635
- background: rgb(255,255,255); /* Old browsers */
636
- background: -moz-linear-gradient(top, rgba(233,233,233,1) 0%, rgba(211,211,211,1) 100%); /* FF3.6+ */
637
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(233,233,233,1)), color-stop(100%,rgba(211,211,211,1))); /* Chrome,Safari4+ */
638
- background: -webkit-linear-gradient(top, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* Chrome10+,Safari5.1+ */
639
- background: -o-linear-gradient(top, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* Opera 11.10+ */
640
- background: -ms-linear-gradient(top, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* IE10+ */
641
- background: linear-gradient(to bottom, rgba(233,233,233,1) 0%,rgba(211,211,211,1) 100%); /* W3C */
642
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */
643
- }
644
-
645
- div.chart_column_picker_container div.existing_columns_container,
646
- div.chart_column_picker_container div.chosen_columns_container {
647
- max-height: 200px;
648
- overflow-y: scroll;
649
- }
650
-
651
- #pickRangeTableContainer { width: 100%; max-height: 400px; overflow: scroll; }
652
- .remodal.wpDataTables.wdtRemodal.pickRange { max-width: 900px; }
653
-
654
- div.pickRange table.rangePickerTable td { padding: 3px }
655
-
656
- div.pickRange table.rangePickerTable td.selected { background-color:#ddd; }
657
-
658
- div.pickRange table.rangePickerTable tr:hover {
659
- cursor: pointer;
660
- background-color: #eee;
661
- }
662
-
663
- #rangePickedInfo { padding: 3px; font-size: 10px; }
664
-
665
- div.columns_block_selecter_buttons { margin: 5px }
666
-
667
- div.wpDataTables div.strings_error,
668
- div.wpDataTables div.min_columns_error,
669
- div.wpDataTables div.max_columns_error {
670
- font-weight: bold;
671
- color: red;
672
- margin: 5px;
673
- padding: 3px;
674
- border: 1px solid red;
675
- border-radius: 3px;
676
- background-color: #fdd;
677
- }
678
-
679
- .wpDataTables #series_settings_container div.chart_series_block {
680
- margin: 3px;
681
- position: relative;
682
- overflow: hidden;
683
- }
684
-
685
- .wpDataTables #series_settings_container div.chart_series_block .chart_series_label {
686
- margin: 3px;
687
- float: left;
688
- }
689
-
690
- .wpDataTables #series_settings_container div.chart_series_block .chart_series_color {
691
- margin: 3px;
692
- float: left;
693
- }
694
-
695
- #wdt_chart_shortcode_container {
696
- font-size: 15px;
697
- padding: 10px;
698
- background-color: #ffd;
699
- border-radius: 3px;
700
- border: 1px solid #dda;
701
- font-weight: bold;
702
- text-align: center;
703
- }
704
-
705
- div.mce-widget button i.mce-i-wpdatatable:before{
706
- content: "\e016";
707
- font-family: 'WPDataTablesIcons' !important;
708
- }
709
-
710
- div.mce-widget button i.mce-i-wpdatachart:before{
711
- content: "\f185";
712
- font: 400 20px/1 dashicons;
713
- }
714
-
715
- #google_chart_type { display: none !important; }
716
- #highcharts_chart_type { display: none !important; }
717
-
718
- #formattingRules { padding: 10px }
719
-
720
- #wpDataTablesSettings td.columnsBlock input.possibleValues {
721
- display: none !important;
722
- }
723
-
724
- #wpDataTablesSettings td.columnsBlock button.generatePossibleValues {
725
- height: auto;
726
- white-space: normal;
727
- line-height: 20px;
728
- }
729
-
730
- #wdtConfigureTableToolsBlock {
731
- margin: 5px;
732
- padding-top: 10px;
733
- display: none;
734
- }
735
-
736
- #wdtConfigureTableToolsBlock label {
737
- display: block;
738
- margin: 3px;
739
- }
740
-
741
- #wdtSaveConfirmationPopover {
742
- position: absolute;
743
- background-color: rgba(78, 125, 1,0.7);
744
- padding: 8px;
745
- border-radius: 4px;
746
- color: #fff;
747
- top: -40px;
748
- display: none;
749
- }
750
-
751
- div.addons_container {
752
- position: relative;
753
- background: #fff;
754
- border: 1px solid #ccc;
755
- padding: 10px;
756
- overflow: hidden;
757
- }
758
-
759
- div.wdt_addon_thumb {
760
- width: 250px;
761
- height: 180px;
762
- background-color: #ddd;
763
- position: relative;
764
- opacity: 0.75;
765
- transition: opacity 0.2s ease;
766
- }
767
-
768
- div.wdt_addon_thumb:hover {
769
- opacity: 1;
770
- }
771
-
772
- div.wdt_addon {
773
- float: left;
774
- width: 250px;
775
- height: 315px;
776
- margin: 10px;
777
- padding: 10px;
778
- border: 1px solid #eaeaea;
779
- background-color: #f7f7f7;
780
- }
781
-
782
- div.wdt_addon_title {
783
- position: absolute;
784
- bottom: 0;
785
- background: rgba(0,0,0,0.5);
786
- width: 100%;
787
- height: 40px;
788
- padding: 0;
789
- }
790
-
791
- div.wdt_addon_title h3 {
792
- color: #fff;
793
- margin: 0;
794
- margin-left: 10px;
795
- margin-top: 10px;
796
- }
797
-
798
- div.wdt_addon_title h3 a {
799
- color: #fff;
800
- text-decoration: none;
801
- transition: color 0.2s ease;
802
- }
803
-
804
- div.wdt_addon_title h3 a:hover {
805
- color: #ddd;
806
- text-decoration: underline;
807
- }
808
-
809
- /* @Miljko */
810
-
811
- div.dt-button-info {
812
- position: fixed;
813
- top: 50%;
814
- left: 50%;
815
- width: 400px;
816
- margin-top: -100px;
817
- margin-left: -200px;
818
- background-color: white;
819
- border: 2px solid #111;
820
- box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
821
- border-radius: 3px;
822
- text-align: center;
823
- z-index: 21;
824
- }
825
- div.dt-button-info h2 {
826
- padding: 0.5em;
827
- margin: 0;
828
- font-weight: normal;
829
- border-bottom: 1px solid #ddd;
830
- background-color: #f3f3f3;
831
- }
832
- div.dt-button-info > div {
833
- padding: 1em;
834
- }
835
-
836
- div.ui-tabs.ui-widget.ui-widget-content.ui-corner-all.settings {
837
- background:none;
838
- background-image: none;
839
- border-radius: 0;
840
- border:none;
841
- }
842
- div.ui-tabs-panel.ui-widget-content.ui-corner-bottom.settings {
843
- padding: 1em 0;
844
- }
845
- ul.ui-tabs-nav.ui-helper-reset.ui-helper-clearfix.ui-widget-header.ui-corner-all.settings {
846
- border: none;
847
- border-bottom: 1px solid #ccc;
848
- margin: 0;
849
- padding-top: 9px;
850
- padding-bottom: 0;
851
- line-height: inherit;
852
- background: none;
853
- }
854
-
855
- li.ui-state-default.ui-corner-top.settings.ui-tabs-active{
856
- background: #f1f1f1;
857
- color: #000;
858
- border: 1px solid #d3d3d3;
859
- border-bottom: 1px solid #f1f1f1;
860
- }
861
- li.ui-state-default.ui-corner-top.settings.ui-state-hover {
862
- border: 1px solid #d3d3d3;
863
- }
864
- li.ui-state-default.ui-corner-top.settings {
865
- float: left;
866
- border-top-left-radius: 0;
867
- border-top-right-radius: 0;
868
- margin-left: .5em;
869
- line-height: 24px;
870
- background: #e5e5e5;
871
- border-bottom:1px solid #e5e5e5;
872
-
873
- }
874
- .ui-state-default.settings a, .ui-state-default.settings a:link, .ui-state-default.settings a:visited {
875
- color: #555;
876
- }
877
- .ui-state-active.settings a, .ui-state-active.settings a:link, .ui-state-active.settings a:visited {
878
- color: #000;
879
- }
880
- div.wdtDuplicateTableName {
881
- margin: 30px 0;
882
- }
883
- div.manual_duplicate {
884
- margin: 20px 0;
885
- }
886
- .manual_duplicate>.dashicons-info {
887
- cursor: pointer;
888
- }
889
-
890
- .duplicate_explain {
891
- border: 1px solid #cccccc;
892
- border-radius: 3px;
893
- padding: 0px 10px;
894
- margin-top: 20px;
895
- text-align: justify;
896
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/img/bootstrap-colorpicker/alpha-horizontal.png DELETED
Binary file
assets/img/bootstrap-colorpicker/alpha.png DELETED
Binary file
assets/img/bootstrap-colorpicker/hue-horizontal.png DELETED
Binary file
assets/img/bootstrap-colorpicker/hue.png DELETED
Binary file
assets/img/bootstrap-colorpicker/saturation.png DELETED
Binary file
assets/img/buttonplus.png DELETED
File without changes
assets/js/bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.min.js DELETED
@@ -1,5 +0,0 @@
1
- /*!
2
- * Bootstrap Colorpicker v2.5.1
3
- * https://itsjavi.com/bootstrap-colorpicker/
4
- */
5
- !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):jQuery&&!jQuery.fn.colorpicker&&b(jQuery)}(this,function(a){"use strict";var b=function(c,d,e,f,g){this.fallbackValue=e?e&&"undefined"!=typeof e.h?e:this.value={h:0,s:0,b:0,a:1}:null,this.fallbackFormat=f?f:"rgba",this.hexNumberSignPrefix=g===!0,this.value=this.fallbackValue,this.origFormat=null,this.predefinedColors=d?d:{},this.colors=a.extend({},b.webColors,this.predefinedColors),c&&("undefined"!=typeof c.h?this.value=c:this.setColor(String(c))),this.value||(this.value={h:0,s:0,b:0,a:1})};b.webColors={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32",transparent:"transparent"},b.prototype={constructor:b,colors:{},predefinedColors:{},getValue:function(){return this.value},setValue:function(a){this.value=a},_sanitizeNumber:function(a){return"number"==typeof a?a:isNaN(a)||null===a||""===a||void 0===a?1:""===a?0:"undefined"!=typeof a.toLowerCase?(a.match(/^\./)&&(a="0"+a),Math.ceil(100*parseFloat(a))/100):1},isTransparent:function(a){return!(!a||!("string"==typeof a||a instanceof String))&&(a=a.toLowerCase().trim(),"transparent"===a||a.match(/#?00000000/)||a.match(/(rgba|hsla)\(0,0,0,0?\.?0\)/))},rgbaIsTransparent:function(a){return 0===a.r&&0===a.g&&0===a.b&&0===a.a},setColor:function(a){if(a=a.toLowerCase().trim()){if(this.isTransparent(a))return this.value={h:0,s:0,b:0,a:0},!0;var b=this.parse(a);b?(this.value=this.value={h:b.h,s:b.s,b:b.b,a:b.a},this.origFormat||(this.origFormat=b.format)):this.fallbackValue&&(this.value=this.fallbackValue)}return!1},setHue:function(a){this.value.h=1-a},setSaturation:function(a){this.value.s=a},setBrightness:function(a){this.value.b=1-a},setAlpha:function(a){this.value.a=Math.round(parseInt(100*(1-a),10)/100*100)/100},toRGB:function(a,b,c,d){0===arguments.length&&(a=this.value.h,b=this.value.s,c=this.value.b,d=this.value.a),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Math.abs(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],{r:Math.round(255*e),g:Math.round(255*f),b:Math.round(255*g),a:d}},toHex:function(a,b,c,d){0===arguments.length&&(a=this.value.h,b=this.value.s,c=this.value.b,d=this.value.a);var e=this.toRGB(a,b,c,d);if(this.rgbaIsTransparent(e))return"transparent";var f=(this.hexNumberSignPrefix?"#":"")+((1<<24)+(parseInt(e.r)<<16)+(parseInt(e.g)<<8)+parseInt(e.b)).toString(16).slice(1);return f},toHSL:function(a,b,c,d){0===arguments.length&&(a=this.value.h,b=this.value.s,c=this.value.b,d=this.value.a);var e=a,f=(2-b)*c,g=b*c;return g/=f>0&&f<=1?f:2-f,f/=2,g>1&&(g=1),{h:isNaN(e)?0:e,s:isNaN(g)?0:g,l:isNaN(f)?0:f,a:isNaN(d)?0:d}},toAlias:function(a,b,c,d){var e,f=0===arguments.length?this.toHex():this.toHex(a,b,c,d),g="alias"===this.origFormat?f:this.toString(this.origFormat,!1);for(var h in this.colors)if(e=this.colors[h].toLowerCase().trim(),e===f||e===g)return h;return!1},RGBtoHSB:function(a,b,c,d){a/=255,b/=255,c/=255;var e,f,g,h;return g=Math.max(a,b,c),h=g-Math.min(a,b,c),e=0===h?null:g===a?(b-c)/h:g===b?(c-a)/h+2:(a-b)/h+4,e=(e+360)%6*60/360,f=0===h?0:h/g,{h:this._sanitizeNumber(e),s:f,b:g,a:this._sanitizeNumber(d)}},HueToRGB:function(a,b,c){return c<0?c+=1:c>1&&(c-=1),6*c<1?a+(b-a)*c*6:2*c<1?b:3*c<2?a+(b-a)*(2/3-c)*6:a},HSLtoRGB:function(a,b,c,d){b<0&&(b=0);var e;e=c<=.5?c*(1+b):c+b-c*b;var f=2*c-e,g=a+1/3,h=a,i=a-1/3,j=Math.round(255*this.HueToRGB(f,e,g)),k=Math.round(255*this.HueToRGB(f,e,h)),l=Math.round(255*this.HueToRGB(f,e,i));return[j,k,l,this._sanitizeNumber(d)]},parse:function(b){if(0===arguments.length)return!1;var c,d,e=this,f=!1,g="undefined"!=typeof this.colors[b];return g&&(b=this.colors[b].toLowerCase().trim()),a.each(this.stringParsers,function(a,h){var i=h.re.exec(b);return c=i&&h.parse.apply(e,[i]),!c||(f={},d=g?"alias":h.format?h.format:e.getValidFallbackFormat(),f=d.match(/hsla?/)?e.RGBtoHSB.apply(e,e.HSLtoRGB.apply(e,c)):e.RGBtoHSB.apply(e,c),f instanceof Object&&(f.format=d),!1)}),f},getValidFallbackFormat:function(){var a=["rgba","rgb","hex","hsla","hsl"];return this.origFormat&&a.indexOf(this.origFormat)!==-1?this.origFormat:this.fallbackFormat&&a.indexOf(this.fallbackFormat)!==-1?this.fallbackFormat:"rgba"},toString:function(a,c){a=a||this.origFormat||this.fallbackFormat,c=c||!1;var d=!1;switch(a){case"rgb":return d=this.toRGB(),this.rgbaIsTransparent(d)?"transparent":"rgb("+d.r+","+d.g+","+d.b+")";case"rgba":return d=this.toRGB(),"rgba("+d.r+","+d.g+","+d.b+","+d.a+")";case"hsl":return d=this.toHSL(),"hsl("+Math.round(360*d.h)+","+Math.round(100*d.s)+"%,"+Math.round(100*d.l)+"%)";case"hsla":return d=this.toHSL(),"hsla("+Math.round(360*d.h)+","+Math.round(100*d.s)+"%,"+Math.round(100*d.l)+"%,"+d.a+")";case"hex":return this.toHex();case"alias":return d=this.toAlias(),d===!1?this.toString(this.getValidFallbackFormat()):c&&!(d in b.webColors)&&d in this.predefinedColors?this.predefinedColors[d]:d;default:return d}},stringParsers:[{re:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*?\)/,format:"rgb",parse:function(a){return[a[1],a[2],a[3],1]}},{re:/rgb\(\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*?\)/,format:"rgb",parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],1]}},{re:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba\(\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/hsl\(\s*(\d*(?:\.\d+)?)\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*?\)/,format:"hsl",parse:function(a){return[a[1]/360,a[2]/100,a[3]/100,a[4]]}},{re:/hsla\(\s*(\d*(?:\.\d+)?)\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"hsla",parse:function(a){return[a[1]/360,a[2]/100,a[3]/100,a[4]]}},{re:/#?([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,format:"hex",parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16),1]}},{re:/#?([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,format:"hex",parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16),1]}}],colorNameToHex:function(a){return"undefined"!=typeof this.colors[a.toLowerCase()]&&this.colors[a.toLowerCase()]}};var c={horizontal:!1,inline:!1,color:!1,format:!1,input:"input",container:!1,component:".add-on, .input-group-addon",fallbackColor:!1,fallbackFormat:"hex",hexNumberSignPrefix:!0,sliders:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setHue"},alpha:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setAlpha"}},slidersHorz:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:100,maxTop:0,callLeft:"setHue",callTop:!1},alpha:{maxLeft:100,maxTop:0,callLeft:"setAlpha",callTop:!1}},template:'<div class="colorpicker dropdown-menu"><div class="colorpicker-saturation"><i><b></b></i></div><div class="colorpicker-hue"><i></i></div><div class="colorpicker-alpha"><i></i></div><div class="colorpicker-color"><div /></div><div class="colorpicker-selectors"></div></div>',align:"right",customClass:null,colorSelectors:null},d=function(b,d){this.element=a(b).addClass("colorpicker-element"),this.options=a.extend(!0,{},c,this.element.data(),d),this.component=this.options.component,this.component=this.component!==!1&&this.element.find(this.component),this.component&&0===this.component.length&&(this.component=!1),this.container=this.options.container===!0?this.element:this.options.container,this.container=this.container!==!1&&a(this.container),this.input=this.element.is("input")?this.element:!!this.options.input&&this.element.find(this.options.input),this.input&&0===this.input.length&&(this.input=!1),this.color=this.createColor(this.options.color!==!1?this.options.color:this.getValue()),this.format=this.options.format!==!1?this.options.format:this.color.origFormat,this.options.color!==!1&&(this.updateInput(this.color),this.updateData(this.color));var e=this.picker=a(this.options.template);if(this.options.customClass&&e.addClass(this.options.customClass),this.options.inline?e.addClass("colorpicker-inline colorpicker-visible"):e.addClass("colorpicker-hidden"),this.options.horizontal&&e.addClass("colorpicker-horizontal"),["rgba","hsla","alias"].indexOf(this.format)===-1&&this.options.format!==!1&&"transparent"!==this.getValue()||e.addClass("colorpicker-with-alpha"),"right"===this.options.align&&e.addClass("colorpicker-right"),this.options.inline===!0&&e.addClass("colorpicker-no-arrow"),this.options.colorSelectors){var f=this,g=f.picker.find(".colorpicker-selectors");g.length>0&&(a.each(this.options.colorSelectors,function(b,c){var d=a("<i />").addClass("colorpicker-selectors-color").css("background-color",c).data("class",b).data("alias",b);d.on("mousedown.colorpicker touchstart.colorpicker",function(b){b.preventDefault(),f.setValue("alias"===f.format?a(this).data("alias"):a(this).css("background-color"))}),g.append(d)}),g.show().addClass("colorpicker-visible"))}e.on("mousedown.colorpicker touchstart.colorpicker",a.proxy(function(a){a.target===a.currentTarget&&a.preventDefault()},this)),e.find(".colorpicker-saturation, .colorpicker-hue, .colorpicker-alpha").on("mousedown.colorpicker touchstart.colorpicker",a.proxy(this.mousedown,this)),e.appendTo(this.container?this.container:a("body")),this.input!==!1&&(this.input.on({"keyup.colorpicker":a.proxy(this.keyup,this)}),this.input.on({"change.colorpicker":a.proxy(this.change,this)}),this.component===!1&&this.element.on({"focus.colorpicker":a.proxy(this.show,this)}),this.options.inline===!1&&this.element.on({"focusout.colorpicker":a.proxy(this.hide,this)})),this.component!==!1&&this.component.on({"click.colorpicker":a.proxy(this.show,this)}),this.input===!1&&this.component===!1&&this.element.on({"click.colorpicker":a.proxy(this.show,this)}),this.input!==!1&&this.component!==!1&&"color"===this.input.attr("type")&&this.input.on({"click.colorpicker":a.proxy(this.show,this),"focus.colorpicker":a.proxy(this.show,this)}),this.update(),a(a.proxy(function(){this.element.trigger("create")},this))};d.Color=b,d.prototype={constructor:d,destroy:function(){this.picker.remove(),this.element.removeData("colorpicker","color").off(".colorpicker"),this.input!==!1&&this.input.off(".colorpicker"),this.component!==!1&&this.component.off(".colorpicker"),this.element.removeClass("colorpicker-element"),this.element.trigger({type:"destroy"})},reposition:function(){if(this.options.inline!==!1||this.options.container)return!1;var a=this.container&&this.container[0]!==window.document.body?"position":"offset",b=this.component||this.element,c=b[a]();"right"===this.options.align&&(c.left-=this.picker.outerWidth()-b.outerWidth()),this.picker.css({top:c.top+b.outerHeight(),left:c.left})},show:function(b){this.isDisabled()||(this.picker.addClass("colorpicker-visible").removeClass("colorpicker-hidden"),this.reposition(),a(window).on("resize.colorpicker",a.proxy(this.reposition,this)),!b||this.hasInput()&&"color"!==this.input.attr("type")||b.stopPropagation&&b.preventDefault&&(b.stopPropagation(),b.preventDefault()),!this.component&&this.input||this.options.inline!==!1||a(window.document).on({"mousedown.colorpicker":a.proxy(this.hide,this)}),this.element.trigger({type:"showPicker",color:this.color}))},hide:function(b){return("undefined"==typeof b||!b.target||!(a(b.currentTarget).parents(".colorpicker").length>0||a(b.target).parents(".colorpicker").length>0))&&(this.picker.addClass("colorpicker-hidden").removeClass("colorpicker-visible"),a(window).off("resize.colorpicker",this.reposition),a(window.document).off({"mousedown.colorpicker":this.hide}),this.update(),void this.element.trigger({type:"hidePicker",color:this.color}))},updateData:function(a){return a=a||this.color.toString(this.format,!1),this.element.data("color",a),a},updateInput:function(a){return a=a||this.color.toString(this.format,!1),this.input!==!1&&(this.input.prop("value",a),this.input.trigger("change")),a},updatePicker:function(a){"undefined"!=typeof a&&(this.color=this.createColor(a));var b=this.options.horizontal===!1?this.options.sliders:this.options.slidersHorz,c=this.picker.find("i");if(0!==c.length)return this.options.horizontal===!1?(b=this.options.sliders,c.eq(1).css("top",b.hue.maxTop*(1-this.color.value.h)).end().eq(2).css("top",b.alpha.maxTop*(1-this.color.value.a))):(b=this.options.slidersHorz,c.eq(1).css("left",b.hue.maxLeft*(1-this.color.value.h)).end().eq(2).css("left",b.alpha.maxLeft*(1-this.color.value.a))),c.eq(0).css({top:b.saturation.maxTop-this.color.value.b*b.saturation.maxTop,left:this.color.value.s*b.saturation.maxLeft}),this.picker.find(".colorpicker-saturation").css("backgroundColor",(this.options.hexNumberSignPrefix?"":"#")+this.color.toHex(this.color.value.h,1,1,1)),this.picker.find(".colorpicker-alpha").css("backgroundColor",(this.options.hexNumberSignPrefix?"":"#")+this.color.toHex()),this.picker.find(".colorpicker-color, .colorpicker-color div").css("backgroundColor",this.color.toString(this.format,!0)),a},updateComponent:function(a){var b;if(b="undefined"!=typeof a?this.createColor(a):this.color,this.component!==!1){var c=this.component.find("i").eq(0);c.length>0?c.css({backgroundColor:b.toString(this.format,!0)}):this.component.css({backgroundColor:b.toString(this.format,!0)})}return b.toString(this.format,!1)},update:function(a){var b;return this.getValue(!1)===!1&&a!==!0||(b=this.updateComponent(),this.updateInput(b),this.updateData(b),this.updatePicker()),b},setValue:function(a){this.color=this.createColor(a),this.update(!0),this.element.trigger({type:"changeColor",color:this.color,value:a})},createColor:function(a){return new b(a?a:null,this.options.colorSelectors,this.options.fallbackColor?this.options.fallbackColor:this.color,this.options.fallbackFormat,this.options.hexNumberSignPrefix)},getValue:function(a){a="undefined"==typeof a?this.options.fallbackColor:a;var b;return b=this.hasInput()?this.input.val():this.element.data("color"),void 0!==b&&""!==b&&null!==b||(b=a),b},hasInput:function(){return this.input!==!1},isDisabled:function(){return!!this.hasInput()&&this.input.prop("disabled")===!0},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),this.element.trigger({type:"disable",color:this.color,value:this.getValue()}),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),this.element.trigger({type:"enable",color:this.color,value:this.getValue()}),!0)},currentSlider:null,mousePointer:{left:0,top:0},mousedown:function(b){!b.pageX&&!b.pageY&&b.originalEvent&&b.originalEvent.touches&&(b.pageX=b.originalEvent.touches[0].pageX,b.pageY=b.originalEvent.touches[0].pageY),b.stopPropagation(),b.preventDefault();var c=a(b.target),d=c.closest("div"),e=this.options.horizontal?this.options.slidersHorz:this.options.sliders;if(!d.is(".colorpicker")){if(d.is(".colorpicker-saturation"))this.currentSlider=a.extend({},e.saturation);else if(d.is(".colorpicker-hue"))this.currentSlider=a.extend({},e.hue);else{if(!d.is(".colorpicker-alpha"))return!1;this.currentSlider=a.extend({},e.alpha)}var f=d.offset();this.currentSlider.guide=d.find("i")[0].style,this.currentSlider.left=b.pageX-f.left,this.currentSlider.top=b.pageY-f.top,this.mousePointer={left:b.pageX,top:b.pageY},a(window.document).on({"mousemove.colorpicker":a.proxy(this.mousemove,this),"touchmove.colorpicker":a.proxy(this.mousemove,this),"mouseup.colorpicker":a.proxy(this.mouseup,this),"touchend.colorpicker":a.proxy(this.mouseup,this)}).trigger("mousemove")}return!1},mousemove:function(a){!a.pageX&&!a.pageY&&a.originalEvent&&a.originalEvent.touches&&(a.pageX=a.originalEvent.touches[0].pageX,a.pageY=a.originalEvent.touches[0].pageY),a.stopPropagation(),a.preventDefault();var b=Math.max(0,Math.min(this.currentSlider.maxLeft,this.currentSlider.left+((a.pageX||this.mousePointer.left)-this.mousePointer.left))),c=Math.max(0,Math.min(this.currentSlider.maxTop,this.currentSlider.top+((a.pageY||this.mousePointer.top)-this.mousePointer.top)));return this.currentSlider.guide.left=b+"px",this.currentSlider.guide.top=c+"px",this.currentSlider.callLeft&&this.color[this.currentSlider.callLeft].call(this.color,b/this.currentSlider.maxLeft),this.currentSlider.callTop&&this.color[this.currentSlider.callTop].call(this.color,c/this.currentSlider.maxTop),this.options.format!==!1||"setAlpha"!==this.currentSlider.callTop&&"setAlpha"!==this.currentSlider.callLeft||(1!==this.color.value.a?(this.format="rgba",this.color.origFormat="rgba"):(this.format="hex",this.color.origFormat="hex")),this.update(!0),this.element.trigger({type:"changeColor",color:this.color}),!1},mouseup:function(b){return b.stopPropagation(),b.preventDefault(),a(window.document).off({"mousemove.colorpicker":this.mousemove,"touchmove.colorpicker":this.mousemove,"mouseup.colorpicker":this.mouseup,"touchend.colorpicker":this.mouseup}),!1},change:function(a){this.keyup(a)},keyup:function(a){38===a.keyCode?(this.color.value.a<1&&(this.color.value.a=Math.round(100*(this.color.value.a+.01))/100),this.update(!0)):40===a.keyCode?(this.color.value.a>0&&(this.color.value.a=Math.round(100*(this.color.value.a-.01))/100),this.update(!0)):(this.color=this.createColor(this.input.val()),this.color.origFormat&&this.options.format===!1&&(this.format=this.color.origFormat),this.getValue(!1)!==!1&&(this.updateData(),this.updateComponent(),this.updatePicker())),this.element.trigger({type:"changeColor",color:this.color,value:this.input.val()})}},a.colorpicker=d,a.fn.colorpicker=function(b){var c=Array.prototype.slice.call(arguments,1),e=1===this.length,f=null,g=this.each(function(){var e=a(this),g=e.data("colorpicker"),h="object"==typeof b?b:{};g||(g=new d(this,h),e.data("colorpicker",g)),"string"==typeof b?a.isFunction(g[b])?f=g[b].apply(g,c):(c.length&&(g[b]=c[0]),f=g[b]):f=e});return e?f:g},a.fn.colorpicker.constructor=d});
 
 
 
 
 
assets/js/colorpicker/bg.png DELETED
Binary file
assets/js/colorpicker/hue.png DELETED
Binary file
assets/js/colorpicker/jquery.modcoder.excolor.js DELETED
@@ -1,13 +0,0 @@
1
- /*!
2
- * ExColor for jQuery, V. 1.2
3
- * http://modcoder.org/
4
- *
5
- * Settings wizard http://modcoder.org/?ptab=jquery&item=excolor#wizard
6
- *
7
- * Copyright 2011, ModCoder
8
- * Dual licensed under the MIT or GPL Version 2 licenses.
9
- *
10
- * Date: Thu May 12 21:36:33 2011
11
- */
12
-
13
- eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('H.57.58=J(C){O C=H.59({4f:0,4g:0,4h:0,3X:1E,4i:1F,3Y:1F,26:\'3s\',4j:\'3s\',2v:\'5a\',4k:1E,2g:1E,2w:4,3t:\'#5b\',4l:\'5c\',2X:1E,2Y:\'3s\',2Z:\'3Z\',30:\'3s\',40:\'12\',4m:\'12\',4n:J(){O a=\'\'}},C);2h P.5d(J(){O j=\'2i\',1X=\'2i\',2J=0,2x=0,2y=0,2z=0,31=0,14=0,4o=0,1s=0,S=0,2K=0,2A=0,1n=1,1o=1,1N=0,2j=0,1R=0,1S=0,1T=0,28=0,32=0,33=0,41=0,1d=P,34=H(P).1U(),2L=1F,1Y=0,1w=0,17=0,3u=1F,1x=\'\',1b=\'\',U=\'\',5e=0,1y=0;1X=H(\'5f\');35(O i=0;i<1X.29;i++){j=\'\'+H(1X[i]).5g(\'2a\');j=j.5h();j=j.4p(\'5i.5j.5k.5l\');I(j.29==2){U=j[0]}}O k=1t 2k();O l=1t 2k();O m=1t 2k();O n=1t 2k();O o=1t 2k();O p=1t 2k();O q=1t 2k();O t=1t 2k();k.2a=U+\'4q.1e\';l.2a=U+\'1N.1e\';m.2a=U+\'4r.2b\';n.2a=U+\'S.2b\';o.2a=U+\'42.2b\';p.2a=U+\'4s.2b\';q.2a=U+\'1O.1e\';t.2a=U+\'2M.1e\';1X=\'2i\';j=\'2i\';H(1d).2l(J(){1G(17);17=1p(J(){1w=1E},1h)}).2m(J(){1G(17);17=1p(J(){1w=1F},1h)});I(C.3X){H(1d).5m(\'<4t V="18:0;19:0 \'+H(1d).36()+\'X 0 0;1Z:37-38;T:12;M:12;2n-W:5n;"></4t>\')}O u=\'\',2o=\'\',3v=\'\',2g=\'\',2X=\'\';I(C.4k){u=\'-43-T-1P:3w;-3x-T-1P:3w;-3y-T-1P:3w;T-1P:3w;\';2o=\'-43-T-1P:2N;-3x-T-1P:2N;-3y-T-1P:2N;T-1P:2N;\';3v=\'-43-T-1P: 0 1Q 1Q 1Q;-3x-T-1P: 0 1Q 1Q 1Q;-3y-T-1P: 0 1Q 1Q 1Q;T-1P: 0 1Q 1Q 1Q;\'}I(C.2g){2g=\'44-2g:0 \'+C.2w+\'X \'+(C.2w*2)+\'X 0 \'+C.3t+\';-3y-44-2g:0 \'+C.2w+\'X \'+(C.2w*2)+\'X 0 \'+C.3t+\';-3x-44-2g:0 \'+C.2w+\'X \'+(C.2w*2)+\'X 0 \'+C.3t+\';\'}I(C.2X){2X=\'M-1I:0 0;M-Y:1q-Y;M-21:1c(\'+U+\'4s.2b);\'}O w=1t 2B(0,1,2,3,4,5,6,7,8,9);w[8]=8;w[46]=46;O y=1t 2B();y[\'0\']=1;y[\'1\']=1;y[\'2\']=1;y[\'3\']=1;y[\'4\']=1;y[\'5\']=1;y[\'6\']=1;y[\'7\']=1;y[\'8\']=1;y[\'9\']=1;y[\'A\']=1;y[\'B\']=1;y[\'C\']=1;y[\'D\']=1;y[\'E\']=1;y[\'F\']=1;y[\'a\']=1;y[\'b\']=1;y[\'c\']=1;y[\'d\']=1;y[\'e\']=1;y[\'f\']=1;O z=1t 2B();z[0]=\'5o 5p\';z[8]=\'5q\';z[5r]=\'3z v\';z[5s]=\'3z v\';z[5t]=\'3z c\';z[67]=\'3z c\';O A=\' \'+1a.5u();A=A.4p(\'.\');A=\'5v\'+A[1];O B=H(1d).3A().1U();H(1d).3A().4u(\'&5w;<1J 2c="5x" 4v="4v" 1i="\'+A+\'" 39="1K" V="1Z:12;3a:3B;Z:\'+(H(1d).36()-4)+\'X;W:\'+(H(1d).36()-4)+\'X;M:12;\'+2o+\'T:1u 1V \'+C.26+\';" />\');H(1d).5y().1L().5z(\'4w\'+A).N(\'1I\',\'3b\').N(\'5A\',\'45\').5B(\'1j\');1p(J(){O a=H(\'1j > .4w\'+A);H(1d).3A().1z(\'#\'+A).N(\'Z\',(H(a).36()-2)+\'X\');H(a).2d()},5C);1Y=H(1d).3A().1z(\'#\'+A).2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)}).4x(J(){H(1d).4x()});I(C.3X){1p(J(){H(1Y).1L()},5D)}3C();J 3C(){1x=H.2p(H(1d).L()+\'\');1b=\'\';I(1x==\'\'){H(1Y).L(\'\').N(\'M\',\'1c(\'+U+\'2M.1e) Y\');H(14).1z(\'1J\').L(\'\')}1g{35(O i=0;i<1x.29;i++){I(1x.22(i)!=\'#\'&&(1x.22(i)+\'\')2O y){I(1b.29<6){1b+=1x.22(i)+\'\'}}}3c(1b.29){1k 0:1b=\'5E\'+1b;1f;1k 1:1b=\'4y\'+1b;1f;1k 2:1b=\'4z\'+1b;1f;1k 3:1b=\'4A\'+1b;1f;1k 4:1b=\'4B\'+1b;1f;1k 5:1b=\'0\'+1b;1f}1x=47(1b);1x=3D(1x[\'r\'],1x[\'g\'],1x[\'b\']);S=48-1a.1r(1x[\'h\']*1/3);I(S<0){S=0}I(S>1v){S=1v}1n=1x[\'s\'];1o=1x[\'v\'];H(1Y).N(\'M\',\'#\'+1b)}I(C.3Y){H(1d).N(\'T-1A\',\'#\'+1b)}};J 3d(){I(!2L){2h 1F}H(1N).2d();H(2A).2d();H(1y).2d();1w=1E;3c(C.40){1k\'4C\':H(14).4D({Z:\'3e\',W:\'3e\'},C.2v,J(){3f();H(14).2d()});1f;1k\'4E\':H(14).5F(C.2v,J(){3f();H(14).2d()});1f;1k\'4F\':H(14).49(C.2v,0,J(){3f();H(14).2d()});1f;4G:3f();H(14).2d();1f}2L=1F};J 3f(){I(3u){O a=\'#\'+3g(H(1R).L()*1,H(1S).L()*1,H(1T).L()*1);I(H.2p(H(1R).L())==\'\'&&H.2p(H(1S).L())==\'\'&&H.2p(H(1T).L())==\'\'){H(1Y).N(\'M\',\'1c(\'+U+\'2M.1e) Y\');H(1d).L(\'\')}1g{H(1Y).N(\'M\',a);I(C.3Y){H(1d).N(\'T-1A\',a)}H(1d).L(a)}3u=1F;C.4n()}};J 3E(){O a=3D(H(1R).L()*1,H(1S).L()*1,H(1T).L()*1);S=-1*(1a.1r(a[\'h\']*1/3)-48);I(S<0){S=0}I(S>1v){S=1v}1n=a[\'s\'];1o=a[\'v\'];H(1N).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');2C();3h();H(28).L(3g(H(1R).L()*1,H(1S).L()*1,H(1T).L()*1))};J 2P(){O a=1E,1l=\'\';1l=H.2p(H(28).L());3c(1l.29){1k 1:1l=\'4y\'+1l;1f;1k 2:1l=\'4z\'+1l;1f;1k 3:1l=\'4A\'+1l;1f;1k 4:1l=\'4B\'+1l;1f;1k 5:1l=\'0\'+1l;1f}I(1l.29>0){35(O i=0;i<1l.29;i++){I(!((1l.22(i)+\'\')2O y)){a=1F}}}I(a){I(1l==\'\'){S=1v;1n=0;1o=0}1g{O b=47(1l);H(1R).L(b[\'r\']);H(1S).L(b[\'g\']);H(1T).L(b[\'b\']);O b=3D(b[\'r\'],b[\'g\'],b[\'b\']);S=-1*(1a.1r(b[\'h\']*1/3)-48);I(S<0){S=0}I(S>1v){S=1v}1n=b[\'s\'];1o=b[\'v\']}H(1N).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');2C();3h();I(1l==\'\'){H(2j).N(\'M-21\',\'1c(\'+U+\'2M.1e)\').N(\'M-Y\',\'Y\');H(1Y).L(\'\').N(\'M\',\'1c(\'+U+\'2M.1e) Y\');H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) -2D 0 1q-Y\');H(14).1z(\'1J\').L(\'\')}}};J 2E(){O a=2Q(-1*(S-1v)*3,1n,1o,\'4H\');H(1R).L(1a.1r(a[\'r\'])*1);H(1S).L(1a.1r(a[\'g\'])*1);H(1T).L(1a.1r(a[\'b\'])*1);H(28).L(3g(a[\'r\'],a[\'g\'],a[\'b\']))};J 2Q(a,b,c,d){O h=a/3F;O s=b/1h;O v=c/1h;O e=1t 2B();O f,2e,2q,3i,3j,2r,2s;I(s==0){e[\'r\']=v*1B;e[\'g\']=v*1B;e[\'b\']=v*1B}1g{f=h*6;2e=1a.5G(f);2q=v*(1-s);3i=v*(1-s*(f-2e));3j=v*(1-s*(1-(f-2e)));I(2e==0){2r=v;2s=3j;2F=2q}1g I(2e==1){2r=3i;2s=v;2F=2q}1g I(2e==2){2r=2q;2s=v;2F=3j}1g I(2e==3){2r=2q;2s=3i;2F=v}1g I(2e==4){2r=3j;2s=2q;2F=v}1g{2r=v;2s=2q;2F=3i};e[\'r\']=1a.1r(2r*1B);e[\'g\']=1a.1r(2s*1B);e[\'b\']=1a.1r(2F*1B)}I(d==\'3k\'){2h 3g(e[\'r\'],e[\'g\'],e[\'b\'])}1g I(d==\'4H\'){2h(e)}1g{2h(e)}};J 47(h){O a=1t 4a();a=h;a.4I();h=a;O i,x=\'5H\',c=\'\';O b=1t 2B();I(h){h=h.4I();35(i=0;i<6;i+=2){3c(i){1k 0:b[\'r\']=(16*x.2R(h.22(i))+x.2R(h.22(i+1)))*1;1f;1k 2:b[\'g\']=(16*x.2R(h.22(i))+x.2R(h.22(i+1)))*1;1f;1k 4:b[\'b\']=(16*x.2R(h.22(i))+x.2R(h.22(i+1)))*1;1f}}}2h b};J 3D(a,c,d){O e=0,2f=0,2S=0,h=0,s=0,b=0;O f=1t 2B();h=0.0;e=1a.4J(1a.4J(a,c),d);2f=1a.4K(1a.4K(a,c),d);2S=(2f-e);b=2f;I(2f!=0.0){s=1B.0*2S/2f}1g{s=0.0}I(s!=0.0){I(a==2f){h=(c-d)/2S}1g{I(c==2f){h=2.0+(d-a)/2S}1g{I(d==2f){h=4.0+(a-c)/2S}}}}1g{h=-1.0}h=h*60;I(h<0.0){h=h+3F.0}f[\'h\']=1a.1r(h);f[\'s\']=1a.1r(s*1h/1B);f[\'v\']=1a.1r(b*1h/1B);I(f[\'h\']>3F){f[\'h\']=3F}I(f[\'s\']>1h){f[\'s\']=1h}I(f[\'v\']>1h){f[\'v\']=1h}2h f};J 3g(r,g,b){O a=1t 2B();a[0]=r;a[1]=g;a[2]=b;O c=[\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\',\'a\',\'b\',\'c\',\'d\',\'e\',\'f\'];O d=\'\';35(O i=0;i<a.29;i++){4b=4L(a[i]);d+=c[4L(4b/16)]+c[4b%16]}2h d};J 2C(){H(1N).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');H(2A).N(\'Q\',(1C.Q+1a.1r(1n*1.3)-4)+\'X\').N(\'10\',(1C.10+H(2K).W()-4-1a.1r(1o*1.3))+\'X\')};J 3h(){H(2K).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1h,1h,\'3k\'));H(2j).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1n,1o,\'3k\')).N(\'M-21\',\'12\');H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\')};1p(J(){34=H(1d).1U()},5I);J 4M(){O b=-1*C.4f*20,2T=C.4m,3G,2U;I(3H(2T*1)){3G=2U=\'\'}1g{2T=2T*1;3G=\'z-4N:\'+2T+\';\';2U=\'z-4N:\'+(2T+1)+\';\'}O c=\'<K 1i="5J" V="Z:5K;W:5L;1D:Q;M:12;T:1u 1V \'+C.26+\';18:0;19:0;\'+u+\'"><K 1i="4O" V="Z:5M;W:5N;T:1u 1V 3Z;1D:Q;19:0;18:0;\'+u+\'"></K></K>\';3C();H(\'1j\').4u(\'<K V="1Z:12;\'+3G+\'Z:4P;W:4Q;1I:3b;4R:45;19:0;18:0;\'+3v+2g+\'" 1i="3I" 1i="5O"><K 1i="5P" V="W:3J;Z:5Q;18:0;19:1M 5R 1M 1M;1D:Q;4R:45;M-1A:\'+C.4l+\';T:1u 1V \'+C.26+\';\'+2X+3v+\'"><K 1i="5S" V="Z:3J;W:3J;1D:Q;M:12;19:0;18:0;T:12;"><K 1i="4S" V="Z:4T;W:4T;T:5T 1V \'+C.4j+\';19:0;18:0;\'+u+\'"><K V="Z:3K;W:3K;1D:Q;M-21:1c(\'+U+\'4r.2b);M-1I:0 0;M-Y:1q-Y;T:1u 1V 3Z;19:0;18:0;"></K></K></K><K 1i="5U" V="Z:2D;W:3K;1D:Q;19:2G 5V 3e 1M;18:0;T:12;"><K 1i="4U" V="Z:2D;W:3K;1D:Q;M:1c(\'+U+\'S.2b) \'+b+\'X 0 1q-Y;18:0;19:0;T:12;"></K></K><K 1i="5W" V="1D:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;Z:4V;W:3J;18:0;19:0;T:12;">\'+c+\'<K 2c="3L" V="1D:Q;19:4W 0 0 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">R</b><1J V="2n-W:23;19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="4X" 2c="3r 2V" 39="1K" 1H="3" 3Q="3" /></K><K 2c="3L" V="1D:Q;19:2N 0 0 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">G</b><1J V="2n-W:23;19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="4Y" 2c="3r 2V" 39="1K" 1H="3" 3Q="3" /></K><K 2c="3L" V="1D:Q;19:2N 0 0 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">B</b><1J V="19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="4Z" 2c="3r 2V" 39="1K" 1H="3" 3Q="3" /></K><K 2c="3L" V="1D:Q;19:4W 0;18:0;T:12;"><b V="1Z:37-38;Z:23;1K-2t:Q;1m-1H:1M;1m-3l: 3m, 3n, 3o, 3p-3q;1m-3M:3N;1A:\'+C.30+\';2n-W:23;">#</b><1J V="19:1u 0;18:0;1A:\'+C.2Y+\';T:1u 1V \'+C.26+\';M:\'+C.2Z+\';Z:3O;1m-1H:1M;1K-2t:3P;\'+2o+\'" 1i="51" 2c="3r" 39="1K" 1H="6" 3Q="6" /></K><K V="Z:4V;W:2G;19:0;18:0;T:12;1D:Q;"><K 1i="52" V="18:0;19:0;Z:3R;W:2G;1D:Q;3a:3B;M-21:1c(\'+U+\'42.2b);M-1I: 0 0;M-Y:1q-Y;"></K><K 1i="53" V="18:0;19:0;Z:2G;W:2G;1D:5X;3a:3B;M-21:1c(\'+U+\'42.2b);M-1I: -3R 0;M-Y:1q-Y;"></K></K></K></K></K><K V="1Z:12;\'+2U+\'Z:4c;W:4c;1I:3b;M: 1c(\'+U+\'4q.1e) \'+(-1*C.4h*11)+\'X 0 1q-Y;18:0;19:0;T:12;" 1i="2H"></K><K V="1Z:12;\'+2U+\'Z:2D;W:4c;1I:3b;M: 1c(\'+U+\'1N.1e) \'+(-1*C.4g*20)+\'X 0 1q-Y;18:0;19:0;T:12;3a:n-5Y;" 1i="2I"></K><K 1i="4d" V="T:1u 1V \'+C.26+\';1Z:12;\'+2U+\'19:0;18:0;1m-1H:1u;2n-W:1u;Z:2D;W:5Z;M:1c(\'+U+\'1O.1e) 0 0 1q-Y;1I:3b;3a:3B;\'+2o+\'"></K>\');34=H(1d).1U();14=H(\'1j > K#3I\').N(\'Q\',34.Q+\'X\').N(\'10\',(34.10+H(1d).36())+\'X\').2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)});28=H(14).1z(\'1J#51\');1y=H(\'1j > K#4d\');1N=H(\'1j > K#2I\');2A=H(\'1j > K#2H\');3c(C.40){1k\'4C\':H(14).N(\'Z\',\'3e\').N(\'W\',\'3e\').1L().4D({Z:\'4P\',W:\'4Q\'},C.2v,J(){H(P).1L();H(\'1j > K#2I, 1j > K#2H\').1L();H(1y).1L()});1f;1k\'4E\':H(14).61(C.2v,J(){H(P).1L();H(\'1j > K#2I, 1j > K#2H\').1L();H(1y).1L()});1f;1k\'4F\':H(\'1j > K#3I, 1j > K#2I, 1j > K#2H, 1j > K#4d\').49(1,0,J(){H(P).1L().49(C.2v,1)});1f;4G:H(14).1L();H(1y).1L();H(\'1j > K#2I, 1j > K#2H\').1L();1f}31=H(14).1z(\'K#4U\');2K=H(14).1z(\'K#4S K\');2j=H(14).1z(\'#4O\');1R=H(14).1z(\'1J#4X\');1S=H(14).1z(\'1J#4Y\');1T=H(14).1z(\'1J#4Z\');33=H(14).1z(\'#52\');41=H(14).1z(\'#53\');4o=H(14).1U();1C=H(2K).1U();1s=H(31).1U();H(1y).1W(J(){I(H.2p(H(1R).L())==\'\'&&H.2p(H(1S).L())==\'\'&&H.2p(H(1T).L())==\'\'){H(2j).N(\'M-21\',\'12\');H(P).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');2E()}1g{H(2j).N(\'M-21\',\'1c(\'+U+\'2M.1e)\').N(\'M-Y\',\'Y\');H(14).1z(\'1J\').L(\'\');H(P).N(\'M\',\'1c(\'+U+\'1O.1e) -2D 0 1q-Y\')}}).N(\'Q\',(1s.Q-1)+\'X\').N(\'10\',(1s.10-15)+\'X\').2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)});H(1N).2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)});H(2A).2l(J(){1G(17);17=1p(J(){1w=1E},50)}).2m(J(){1G(17);17=1p(J(){1w=1F},50)}).62(J(e){H(33).1W()});H(2A).3S(J(e){2y=H(P).1U();2J=e.2W-2y.Q;2x=e.24-2y.10;j=P;H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');e.25()}).1W(J(e){});H(1N).3S(J(e){2z=H(P).1U();2J=e.2W-2z.Q;2x=e.24-2z.10;1X=P;H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');e.25()});H(31).3S(J(e){I(e.24>=(1s.10+5)&&e.24<=((1s.10+H(31).W())-6)){S=e.24-1s.10-5;I(S<0)S=0;I(S>1v)S=1v;H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');2C();3h();2E();2z=H(1N).1U();2J=e.2W-2z.Q;2x=e.24-2z.10;1X=1N;e.25()}});H(2K).3S(J(e){1n=1a.1r((e.2W-1C.Q-1)/1.3);I(1n>1h){1n=1h}I(1n<1){1n=1}1o=-1*(1a.1r((e.24-1C.10-1)/1.3)-1h);I(1o>1h){1o=1h}I(1o<1){1o=1}H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\');2C();H(2j).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1n,1o,\'3k\')).N(\'M-21\',\'12\');2E();j=2A;2y=H(j).1U();2J=e.2W-2y.Q;2x=e.24-2y.10;e.25()});H(14).1z(\'1J.3r\').63(J(a){I(H(P).4e(\'2V\')){I(!((4a.54(a.3T)*1)2O w)&&!(a.3T 2O z)){a.25()}}1g{I(!(4a.54(a.3T)2O y)&&!(a.3T 2O z)){a.25()}}}).64(J(){I(H(P).4e(\'2V\')){I(H(P).L()==\'\'){H(P).L(\'0\')}I(3H(H(P).L()*1)){H(P).L(\'0\')}I(H(P).L()*1>1B){H(P).L(\'1B\')}I(H(P).L()*1<0){H(P).L(\'0\')}3E()}1g{2P()}}).55(J(){I(H(P).4e(\'2V\')){I(H(P).L()==\'\'){H(P).L(\'0\')}I(3H(H(P).L()*1)){H(P).L(\'0\')}I(H(P).L()*1>1B){H(P).L(\'1B\')}I(H(P).L()*1<0){H(P).L(\'0\')}3E()}1g{2P()}});28[0].3U=28[0].3V=J(e){1G(32);32=1p(J(){2P()},1h)};1R[0].3U=1R[0].3V=1S[0].3U=1S[0].3V=1T[0].3U=1T[0].3V=J(e){I(H(P).L()==\'\'){H(P).L(\'0\')}I(3H(H(P).L()*1)){H(P).L(\'0\')}I(H(P).L()*1>1B){H(P).L(\'1B\')}I(H(P).L()*1<0){H(P).L(\'0\')}1G(32);32=1p(J(){3E()},1h)};H(33).1W(J(){3u=1E;3d()}).2l(J(){H(P).N(\'M-1I\',\'0 -2G\')}).2m(J(){H(P).N(\'M-1I\',\'0 0\')});H(41).1W(J(){3d()}).2l(J(){H(P).N(\'M-1I\',\'-3R -2G\')}).2m(J(){H(P).N(\'M-1I\',\'-3R 0\')});2C();H(28).L(1b);2P();2L=1E;I(1b==\'\'){H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) -2D 0 1q-Y\')}1g{H(1y).N(\'M\',\'1c(\'+U+\'1O.1e) 0 0 1q-Y\')}};H(65).66(J(e){j=\'2i\';1X=\'2i\'}).68(J(e){I(j!=\'2i\'){e.25();O a=0,2u=0;a=e.2W-2J;I(a<(1C.Q-4)){a=1C.Q-4}I(a>(1C.Q+3W)){a=1C.Q+3W}2u=e.24-2x;I(2u<(1C.10-4)){2u=1C.10-4}I(2u>(1C.10+3W)){2u=1C.10+3W}H(j).N(\'Q\',a+\'X\').N(\'10\',2u+\'X\');1o=-1*(1a.1r((2u-1C.10+5)/1.3)-1h)+1;1n=1a.1r((a-1C.Q+5)/1.3);I(1o==1){1o=0}I(1n==1){1n=0}H(2j).N(\'M-1A\',\'#\'+2Q(-1*(S-1v)*3,1n,1o,\'3k\')).N(\'M-21\',\'12\');2E()}I(1X!=\'2i\'){e.25();S=e.24-1s.10-2x;I(S<0){S=0}I(S>1v){S=1v}H(1X).N(\'Q\',1s.Q+\'X\').N(\'10\',(1s.10+S)+\'X\');3h();2E()}}).69(J(a){I(a.56==\'27\'){a.25();3d()}I(a.56==\'13\'){a.25();H(33).1W()}}).1W(J(){I(!1w){3d()}});H(1d).1W(J(){I(!2L){H(\'1j > K#2I, 1j > K#2H, 1j > K#3I\').6a().2d();1p(J(){4M()},50)}}).55(J(){I(2L){3C();2E();2C();H(28).L(1b);2P()}});H(1Y).1W(J(){H(1d).1W()});I(C.4i){H(1Y).1W()}})};',62,383,'|||||||||||||||||||||||||||||||||||||||||||jQuery|if|function|div|val|background|css|var|this|left||hue|border|root_path|style|height|px|repeat|width|top||none||wrapper|||click_to|margin|padding|Math|inputhex|url|aitem|gif|break|else|100|id|body|case|hexistr|font|saturation|brightness|setTimeout|no|round|pos_huebox|new|1px|119|click_flag|parsex|switcher|find|color|255|pos_sbbox|float|true|false|clearTimeout|size|position|input|text|show|10px|slider|transp0|radius|7px|inp_r|inp_g|inp_b|offset|solid|click|moved_slider|isample|display||image|charAt|13px|pageY|preventDefault|border_color||inp_hex|length|src|png|class|remove|var_i|maxrgb|shadow|return|mel|colsample|Image|mouseenter|mouseleave|line|rad3px|trim|var_1|var_r|var_g|align|tty|anim_speed|shadow_size|correct_y|pos_sel|pos_slider|sb_sel|Array|init_positions|20px|update_inputs|var_b|15px|modcoder_picker|modcoder_slider|correct_x|sbbox|opened|transp|3px|in|hex_valid_and_draw|hsb2rgb_hex|indexOf|delta|cz_index|zindex2|modcoder_rgb|pageX|backlight|input_text_color|input_background_color|label_color|huebox|hexto|ok_but|aitem_pos|for|outerHeight|inline|block|type|cursor|absolute|switch|action_exit|0px|action_ok|rgb2hex|init_colors|var_2|var_3|hex|family|Verdana|Arial|Helvetica|Sans|serif|modcoder_input|black|shadow_color|userok|radwrap|5px|moz|webkit|ctrl|parent|pointer|init_color|rgb2hsv|draw_rgb|360|zindex1|isNaN|modcoder_colorpicker|140px|130px|modcoder_dataitem|weight|bold|49px|center|maxlength|47px|mousedown|which|onpaste|oninput|125|color_box|show_color_on_border|white|effect|close_but|ok|khtml|box|hidden||hex2rgb|120|fadeTo|String|dec|11px|modcoder_switcher|hasClass|hue_bar|hue_slider|sb_slider|demo_mode|sb_border_color|round_corners|background_color|z_index|callback_on_ok|pos_wrap|split|sel|bg|shbg|span|append|readonly|mds|focus|00000|0000|000|00|zoom|animate|slide|fade|default|rgb|toUpperCase|min|max|parseInt|run_modcoder_colorpicker|index|modcoder_sample|265px|162px|overflow|modcoder_grad|132px|modcoder_hue|66px|6px|modcoder_r|modcoder_g|modcoder_b||modcoder_hex|modcoder_ok|modcoder_close|fromCharCode|keyup|keyCode|fn|modcoder_excolor|extend|slow|8a8a8a|silver|each|looper|script|attr|toLowerCase|jquery|modcoder|excolor|js|wrap|auto|system|keys|backspace|118|86|99|random|mc|nbsp|modcoder_excolor_clrbox|clone|addClass|visibility|appendTo|300|150|000000|slideUp|floor|0123456789ABCDEF|200|modcoder_sample_wrapper|62px|30px|60px|28px|modcoder_colorpicker_class|modcoder_colorpicker_wrapper|244px|9px|modcoder_grad_wrap|4px|modcoder_hue_wrap|8px|modcoder_data|right|resize|12px||slideDown|dblclick|keypress|change|document|mouseup||mousemove|keydown|stop'.split('|'),0,{}))
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/colorpicker/ok.png DELETED
Binary file
assets/js/colorpicker/sel.gif DELETED
Binary file
assets/js/colorpicker/shbg.png DELETED
Binary file
assets/js/colorpicker/slider.gif DELETED
Binary file
assets/js/colorpicker/transp.gif DELETED
Binary file
assets/js/colorpicker/transp0.gif DELETED
Binary file
assets/js/fileupload/jquery.fileupload-jquery-ui.js DELETED
@@ -1,144 +0,0 @@
1
- /*
2
- * jQuery File Upload jQuery UI Plugin 8.7.0
3
- * https://github.com/blueimp/jQuery-File-Upload
4
- *
5
- * Copyright 2013, Sebastian Tschan
6
- * https://blueimp.net
7
- *
8
- * Licensed under the MIT license:
9
- * http://www.opensource.org/licenses/MIT
10
- */
11
-
12
- /*jslint nomen: true, unparam: true */
13
- /*global define, window */
14
-
15
- (function (factory) {
16
- 'use strict';
17
- if (typeof define === 'function' && define.amd) {
18
- // Register as an anonymous AMD module:
19
- define(['jquery', './jquery.fileupload-ui'], factory);
20
- } else {
21
- // Browser globals:
22
- factory(window.jQuery);
23
- }
24
- }(function ($) {
25
- 'use strict';
26
-
27
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
28
-
29
- options: {
30
- progress: function (e, data) {
31
- if (data.context) {
32
- data.context.find('.progress').progressbar(
33
- 'option',
34
- 'value',
35
- parseInt(data.loaded / data.total * 100, 10)
36
- );
37
- }
38
- },
39
- progressall: function (e, data) {
40
- var $this = $(this);
41
- $this.find('.fileupload-progress')
42
- .find('.progress').progressbar(
43
- 'option',
44
- 'value',
45
- parseInt(data.loaded / data.total * 100, 10)
46
- ).end()
47
- .find('.progress-extended').each(function () {
48
- $(this).html(
49
- ($this.data('blueimp-fileupload') ||
50
- $this.data('fileupload'))
51
- ._renderExtendedProgress(data)
52
- );
53
- });
54
- }
55
- },
56
-
57
- _renderUpload: function (func, files) {
58
- var node = this._super(func, files),
59
- showIconText = $(window).width() > 480;
60
- node.find('.progress').empty().progressbar();
61
- node.find('.start').button({
62
- icons: {primary: 'ui-icon-circle-arrow-e'},
63
- text: showIconText
64
- });
65
- node.find('.cancel').button({
66
- icons: {primary: 'ui-icon-cancel'},
67
- text: showIconText
68
- });
69
- if (node.hasClass('fade')) {
70
- node.hide();
71
- }
72
- return node;
73
- },
74
-
75
- _renderDownload: function (func, files) {
76
- var node = this._super(func, files),
77
- showIconText = $(window).width() > 480;
78
- node.find('.delete').button({
79
- icons: {primary: 'ui-icon-trash'},
80
- text: showIconText
81
- });
82
- if (node.hasClass('fade')) {
83
- node.hide();
84
- }
85
- return node;
86
- },
87
-
88
- _transition: function (node) {
89
- var deferred = $.Deferred();
90
- if (node.hasClass('fade')) {
91
- node.fadeToggle(
92
- this.options.transitionDuration,
93
- this.options.transitionEasing,
94
- function () {
95
- deferred.resolveWith(node);
96
- }
97
- );
98
- } else {
99
- deferred.resolveWith(node);
100
- }
101
- return deferred;
102
- },
103
-
104
- _create: function () {
105
- this._super();
106
- this.element
107
- .find('.fileupload-buttonbar')
108
- .find('.fileinput-button').each(function () {
109
- var input = $(this).find('input:file').detach();
110
- $(this)
111
- .button({icons: {primary: 'ui-icon-plusthick'}})
112
- .append(input);
113
- })
114
- .end().find('.start')
115
- .button({icons: {primary: 'ui-icon-circle-arrow-e'}})
116
- .end().find('.cancel')
117
- .button({icons: {primary: 'ui-icon-cancel'}})
118
- .end().find('.delete')
119
- .button({icons: {primary: 'ui-icon-trash'}})
120
- .end().find('.progress').progressbar();
121
- },
122
-
123
- _destroy: function () {
124
- this.element
125
- .find('.fileupload-buttonbar')
126
- .find('.fileinput-button').each(function () {
127
- var input = $(this).find('input:file').detach();
128
- $(this)
129
- .button('destroy')
130
- .append(input);
131
- })
132
- .end().find('.start')
133
- .button('destroy')
134
- .end().find('.cancel')
135
- .button('destroy')
136
- .end().find('.delete')
137
- .button('destroy')
138
- .end().find('.progress').progressbar('destroy');
139
- this._super();
140
- }
141
-
142
- });
143
-
144
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/fileupload/jquery.fileupload-process.js DELETED
@@ -1,172 +0,0 @@
1
- /*
2
- * jQuery File Upload Processing Plugin 1.3.0
3
- * https://github.com/blueimp/jQuery-File-Upload
4
- *
5
- * Copyright 2012, Sebastian Tschan
6
- * https://blueimp.net
7
- *
8
- * Licensed under the MIT license:
9
- * http://www.opensource.org/licenses/MIT
10
- */
11
-
12
- /*jslint nomen: true, unparam: true */
13
- /*global define, window */
14
-
15
- (function (factory) {
16
- 'use strict';
17
- if (typeof define === 'function' && define.amd) {
18
- // Register as an anonymous AMD module:
19
- define([
20
- 'jquery',
21
- './jquery.fileupload'
22
- ], factory);
23
- } else {
24
- // Browser globals:
25
- factory(
26
- window.jQuery
27
- );
28
- }
29
- }(function ($) {
30
- 'use strict';
31
-
32
- var originalAdd = $.blueimp.fileupload.prototype.options.add;
33
-
34
- // The File Upload Processing plugin extends the fileupload widget
35
- // with file processing functionality:
36
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
37
-
38
- options: {
39
- // The list of processing actions:
40
- processQueue: [
41
- /*
42
- {
43
- action: 'log',
44
- type: 'debug'
45
- }
46
- */
47
- ],
48
- add: function (e, data) {
49
- var $this = $(this);
50
- data.process(function () {
51
- return $this.fileupload('process', data);
52
- });
53
- originalAdd.call(this, e, data);
54
- }
55
- },
56
-
57
- processActions: {
58
- /*
59
- log: function (data, options) {
60
- console[options.type](
61
- 'Processing "' + data.files[data.index].name + '"'
62
- );
63
- }
64
- */
65
- },
66
-
67
- _processFile: function (data, originalData) {
68
- var that = this,
69
- dfd = $.Deferred().resolveWith(that, [data]),
70
- chain = dfd.promise();
71
- this._trigger('process', null, data);
72
- $.each(data.processQueue, function (i, settings) {
73
- var func = function (data) {
74
- if (originalData.errorThrown) {
75
- return $.Deferred()
76
- .rejectWith(that, [originalData]).promise();
77
- }
78
- return that.processActions[settings.action].call(
79
- that,
80
- data,
81
- settings
82
- );
83
- };
84
- chain = chain.pipe(func, settings.always && func);
85
- });
86
- chain
87
- .done(function () {
88
- that._trigger('processdone', null, data);
89
- that._trigger('processalways', null, data);
90
- })
91
- .fail(function () {
92
- that._trigger('processfail', null, data);
93
- that._trigger('processalways', null, data);
94
- });
95
- return chain;
96
- },
97
-
98
- // Replaces the settings of each processQueue item that
99
- // are strings starting with an "@", using the remaining
100
- // substring as key for the option map,
101
- // e.g. "@autoUpload" is replaced with options.autoUpload:
102
- _transformProcessQueue: function (options) {
103
- var processQueue = [];
104
- $.each(options.processQueue, function () {
105
- var settings = {},
106
- action = this.action,
107
- prefix = this.prefix === true ? action : this.prefix;
108
- $.each(this, function (key, value) {
109
- if ($.type(value) === 'string' &&
110
- value.charAt(0) === '@') {
111
- settings[key] = options[
112
- value.slice(1) || (prefix ? prefix +
113
- key.charAt(0).toUpperCase() + key.slice(1) : key)
114
- ];
115
- } else {
116
- settings[key] = value;
117
- }
118
-
119
- });
120
- processQueue.push(settings);
121
- });
122
- options.processQueue = processQueue;
123
- },
124
-
125
- // Returns the number of files currently in the processsing queue:
126
- processing: function () {
127
- return this._processing;
128
- },
129
-
130
- // Processes the files given as files property of the data parameter,
131
- // returns a Promise object that allows to bind callbacks:
132
- process: function (data) {
133
- var that = this,
134
- options = $.extend({}, this.options, data);
135
- if (options.processQueue && options.processQueue.length) {
136
- this._transformProcessQueue(options);
137
- if (this._processing === 0) {
138
- this._trigger('processstart');
139
- }
140
- $.each(data.files, function (index) {
141
- var opts = index ? $.extend({}, options) : options,
142
- func = function () {
143
- if (data.errorThrown) {
144
- return $.Deferred()
145
- .rejectWith(that, [data]).promise();
146
- }
147
- return that._processFile(opts, data);
148
- };
149
- opts.index = index;
150
- that._processing += 1;
151
- that._processingQueue = that._processingQueue.pipe(func, func)
152
- .always(function () {
153
- that._processing -= 1;
154
- if (that._processing === 0) {
155
- that._trigger('processstop');
156
- }
157
- });
158
- });
159
- }
160
- return this._processingQueue;
161
- },
162
-
163
- _create: function () {
164
- this._super();
165
- this._processing = 0;
166
- this._processingQueue = $.Deferred().resolveWith(this)
167
- .promise();
168
- }
169
-
170
- });
171
-
172
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/fileupload/jquery.fileupload-ui.js DELETED
@@ -1,699 +0,0 @@
1
- /*
2
- * jQuery File Upload User Interface Plugin 9.0.0
3
- * https://github.com/blueimp/jQuery-File-Upload
4
- *
5
- * Copyright 2010, Sebastian Tschan
6
- * https://blueimp.net
7
- *
8
- * Licensed under the MIT license:
9
- * http://www.opensource.org/licenses/MIT
10
- */
11
-
12
- /*jslint nomen: true, unparam: true, regexp: true */
13
- /*global define, window, URL, webkitURL, FileReader */
14
-
15
- (function (factory) {
16
- 'use strict';
17
- if (typeof define === 'function' && define.amd) {
18
- // Register as an anonymous AMD module:
19
- define([
20
- 'jquery',
21
- 'tmpl',
22
- './jquery.fileupload-image',
23
- './jquery.fileupload-audio',
24
- './jquery.fileupload-video',
25
- './jquery.fileupload-validate'
26
- ], factory);
27
- } else {
28
- // Browser globals:
29
- factory(
30
- window.jQuery,
31
- window.tmpl
32
- );
33
- }
34
- }(function ($, tmpl, loadImage) {
35
- 'use strict';
36
-
37
- $.blueimp.fileupload.prototype._specialOptions.push(
38
- 'filesContainer',
39
- 'uploadTemplateId',
40
- 'downloadTemplateId'
41
- );
42
-
43
- // The UI version extends the file upload widget
44
- // and adds complete user interface interaction:
45
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
46
-
47
- options: {
48
- // By default, files added to the widget are uploaded as soon
49
- // as the user clicks on the start buttons. To enable automatic
50
- // uploads, set the following option to true:
51
- autoUpload: false,
52
- // The ID of the upload template:
53
- uploadTemplateId: 'template-upload',
54
- // The ID of the download template:
55
- downloadTemplateId: 'template-download',
56
- // The container for the list of files. If undefined, it is set to
57
- // an element with class "files" inside of the widget element:
58
- filesContainer: undefined,
59
- // By default, files are appended to the files container.
60
- // Set the following option to true, to prepend files instead:
61
- prependFiles: false,
62
- // The expected data type of the upload response, sets the dataType
63
- // option of the $.ajax upload requests:
64
- dataType: 'json',
65
-
66
- // Function returning the current number of files,
67
- // used by the maxNumberOfFiles validation:
68
- getNumberOfFiles: function () {
69
- return this.filesContainer.children()
70
- .not('.processing').length;
71
- },
72
-
73
- // Callback to retrieve the list of files from the server response:
74
- getFilesFromResponse: function (data) {
75
- if (data.result && $.isArray(data.result.files)) {
76
- return data.result.files;
77
- }
78
- return [];
79
- },
80
-
81
- // The add callback is invoked as soon as files are added to the fileupload
82
- // widget (via file input selection, drag & drop or add API call).
83
- // See the basic file upload widget for more information:
84
- add: function (e, data) {
85
- if (e.isDefaultPrevented()) {
86
- return false;
87
- }
88
- var $this = $(this),
89
- that = $this.data('blueimp-fileupload') ||
90
- $this.data('fileupload'),
91
- options = that.options;
92
- data.context = that._renderUpload(data.files)
93
- .data('data', data)
94
- .addClass('processing');
95
- options.filesContainer[
96
- options.prependFiles ? 'prepend' : 'append'
97
- ](data.context);
98
- that._forceReflow(data.context);
99
- $.when(
100
- that._transition(data.context),
101
- data.process(function () {
102
- return $this.fileupload('process', data);
103
- })
104
- ).always(function () {
105
- data.context.each(function (index) {
106
- $(this).find('.size').text(
107
- that._formatFileSize(data.files[index].size)
108
- );
109
- }).removeClass('processing');
110
- that._renderPreviews(data);
111
- }).done(function () {
112
- data.context.find('.start').prop('disabled', false);
113
- if ((that._trigger('added', e, data) !== false) &&
114
- (options.autoUpload || data.autoUpload) &&
115
- data.autoUpload !== false) {
116
- data.submit();
117
- }
118
- }).fail(function () {
119
- if (data.files.error) {
120
- data.context.each(function (index) {
121
- var error = data.files[index].error;
122
- if (error) {
123
- $(this).find('.error').text(error);
124
- }
125
- });
126
- }
127
- });
128
- },
129
- // Callback for the start of each file upload request:
130
- send: function (e, data) {
131
- if (e.isDefaultPrevented()) {
132
- return false;
133
- }
134
- var that = $(this).data('blueimp-fileupload') ||
135
- $(this).data('fileupload');
136
- if (data.context && data.dataType &&
137
- data.dataType.substr(0, 6) === 'iframe') {
138
- // Iframe Transport does not support progress events.
139
- // In lack of an indeterminate progress bar, we set
140
- // the progress to 100%, showing the full animated bar:
141
- data.context
142
- .find('.progress').addClass(
143
- !$.support.transition && 'progress-animated'
144
- )
145
- .attr('aria-valuenow', 100)
146
- .children().first().css(
147
- 'width',
148
- '100%'
149
- );
150
- }
151
- return that._trigger('sent', e, data);
152
- },
153
- // Callback for successful uploads:
154
- done: function (e, data) {
155
- if (e.isDefaultPrevented()) {
156
- return false;
157
- }
158
- var that = $(this).data('blueimp-fileupload') ||
159
- $(this).data('fileupload'),
160
- getFilesFromResponse = data.getFilesFromResponse ||
161
- that.options.getFilesFromResponse,
162
- files = getFilesFromResponse(data),
163
- template,
164
- deferred;
165
- if (data.context) {
166
- data.context.each(function (index) {
167
- var file = files[index] ||
168
- {error: 'Empty file upload result'};
169
- deferred = that._addFinishedDeferreds();
170
- that._transition($(this)).done(
171
- function () {
172
- var node = $(this);
173
- template = that._renderDownload([file])
174
- .replaceAll(node);
175
- that._forceReflow(template);
176
- that._transition(template).done(
177
- function () {
178
- data.context = $(this);
179
- that._trigger('completed', e, data);
180
- that._trigger('finished', e, data);
181
- deferred.resolve();
182
- }
183
- );
184
- }
185
- );
186
- });
187
- } else {
188
- template = that._renderDownload(files)[
189
- that.options.prependFiles ? 'prependTo' : 'appendTo'
190
- ](that.options.filesContainer);
191
- that._forceReflow(template);
192
- deferred = that._addFinishedDeferreds();
193
- that._transition(template).done(
194
- function () {
195
- data.context = $(this);
196
- that._trigger('completed', e, data);
197
- that._trigger('finished', e, data);
198
- deferred.resolve();
199
- }
200
- );
201
- }
202
- },
203
- // Callback for failed (abort or error) uploads:
204
- fail: function (e, data) {
205
- if (e.isDefaultPrevented()) {
206
- return false;
207
- }
208
- var that = $(this).data('blueimp-fileupload') ||
209
- $(this).data('fileupload'),
210
- template,
211
- deferred;
212
- if (data.context) {
213
- data.context.each(function (index) {
214
- if (data.errorThrown !== 'abort') {
215
- var file = data.files[index];
216
- file.error = file.error || data.errorThrown ||
217
- true;
218
- deferred = that._addFinishedDeferreds();
219
- that._transition($(this)).done(
220
- function () {
221
- var node = $(this);
222
- template = that._renderDownload([file])
223
- .replaceAll(node);
224
- that._forceReflow(template);
225
- that._transition(template).done(
226
- function () {
227
- data.context = $(this);
228
- that._trigger('failed', e, data);
229
- that._trigger('finished', e, data);
230
- deferred.resolve();
231
- }
232
- );
233
- }
234
- );
235
- } else {
236
- deferred = that._addFinishedDeferreds();
237
- that._transition($(this)).done(
238
- function () {
239
- $(this).remove();
240
- that._trigger('failed', e, data);
241
- that._trigger('finished', e, data);
242
- deferred.resolve();
243
- }
244
- );
245
- }
246
- });
247
- } else if (data.errorThrown !== 'abort') {
248
- data.context = that._renderUpload(data.files)[
249
- that.options.prependFiles ? 'prependTo' : 'appendTo'
250
- ](that.options.filesContainer)
251
- .data('data', data);
252
- that._forceReflow(data.context);
253
- deferred = that._addFinishedDeferreds();
254
- that._transition(data.context).done(
255
- function () {
256
- data.context = $(this);
257
- that._trigger('failed', e, data);
258
- that._trigger('finished', e, data);
259
- deferred.resolve();
260
- }
261
- );
262
- } else {
263
- that._trigger('failed', e, data);
264
- that._trigger('finished', e, data);
265
- that._addFinishedDeferreds().resolve();
266
- }
267
- },
268
- // Callback for upload progress events:
269
- progress: function (e, data) {
270
- if (e.isDefaultPrevented()) {
271
- return false;
272
- }
273
- var progress = Math.floor(data.loaded / data.total * 100);
274
- if (data.context) {
275
- data.context.each(function () {
276
- $(this).find('.progress')
277
- .attr('aria-valuenow', progress)
278
- .children().first().css(
279
- 'width',
280
- progress + '%'
281
- );
282
- });
283
- }
284
- },
285
- // Callback for global upload progress events:
286
- progressall: function (e, data) {
287
- if (e.isDefaultPrevented()) {
288
- return false;
289
- }
290
- var $this = $(this),
291
- progress = Math.floor(data.loaded / data.total * 100),
292
- globalProgressNode = $this.find('.fileupload-progress'),
293
- extendedProgressNode = globalProgressNode
294
- .find('.progress-extended');
295
- if (extendedProgressNode.length) {
296
- extendedProgressNode.html(
297
- ($this.data('blueimp-fileupload') || $this.data('fileupload'))
298
- ._renderExtendedProgress(data)
299
- );
300
- }
301
- globalProgressNode
302
- .find('.progress')
303
- .attr('aria-valuenow', progress)
304
- .children().first().css(
305
- 'width',
306
- progress + '%'
307
- );
308
- },
309
- // Callback for uploads start, equivalent to the global ajaxStart event:
310
- start: function (e) {
311
- if (e.isDefaultPrevented()) {
312
- return false;
313
- }
314
- var that = $(this).data('blueimp-fileupload') ||
315
- $(this).data('fileupload');
316
- that._resetFinishedDeferreds();
317
- that._transition($(this).find('.fileupload-progress')).done(
318
- function () {
319
- that._trigger('started', e);
320
- }
321
- );
322
- },
323
- // Callback for uploads stop, equivalent to the global ajaxStop event:
324
- stop: function (e) {
325
- if (e.isDefaultPrevented()) {
326
- return false;
327
- }
328
- var that = $(this).data('blueimp-fileupload') ||
329
- $(this).data('fileupload'),
330
- deferred = that._addFinishedDeferreds();
331
- $.when.apply($, that._getFinishedDeferreds())
332
- .done(function () {
333
- that._trigger('stopped', e);
334
- });
335
- that._transition($(this).find('.fileupload-progress')).done(
336
- function () {
337
- $(this).find('.progress')
338
- .attr('aria-valuenow', '0')
339
- .children().first().css('width', '0%');
340
- $(this).find('.progress-extended').html('&nbsp;');
341
- deferred.resolve();
342
- }
343
- );
344
- },
345
- processstart: function (e) {
346
- if (e.isDefaultPrevented()) {
347
- return false;
348
- }
349
- $(this).addClass('fileupload-processing');
350
- },
351
- processstop: function (e) {
352
- if (e.isDefaultPrevented()) {
353
- return false;
354
- }
355
- $(this).removeClass('fileupload-processing');
356
- },
357
- // Callback for file deletion:
358
- destroy: function (e, data) {
359
- if (e.isDefaultPrevented()) {
360
- return false;
361
- }
362
- var that = $(this).data('blueimp-fileupload') ||
363
- $(this).data('fileupload'),
364
- removeNode = function () {
365
- that._transition(data.context).done(
366
- function () {
367
- $(this).remove();
368
- that._trigger('destroyed', e, data);
369
- }
370
- );
371
- };
372
- if (data.url) {
373
- data.dataType = data.dataType || that.options.dataType;
374
- $.ajax(data).done(removeNode);
375
- } else {
376
- removeNode();
377
- }
378
- }
379
- },
380
-
381
- _resetFinishedDeferreds: function () {
382
- this._finishedUploads = [];
383
- },
384
-
385
- _addFinishedDeferreds: function (deferred) {
386
- if (!deferred) {
387
- deferred = $.Deferred();
388
- }
389
- this._finishedUploads.push(deferred);
390
- return deferred;
391
- },
392
-
393
- _getFinishedDeferreds: function () {
394
- return this._finishedUploads;
395
- },
396
-
397
- // Link handler, that allows to download files
398
- // by drag & drop of the links to the desktop:
399
- _enableDragToDesktop: function () {
400
- var link = $(this),
401
- url = link.prop('href'),
402
- name = link.prop('download'),
403
- type = 'application/octet-stream';
404
- link.bind('dragstart', function (e) {
405
- try {
406
- e.originalEvent.dataTransfer.setData(
407
- 'DownloadURL',
408
- [type, name, url].join(':')
409
- );
410
- } catch (ignore) {}
411
- });
412
- },
413
-
414
- _formatFileSize: function (bytes) {
415
- if (typeof bytes !== 'number') {
416
- return '';
417
- }
418
- if (bytes >= 1000000000) {
419
- return (bytes / 1000000000).toFixed(2) + ' GB';
420
- }
421
- if (bytes >= 1000000) {
422
- return (bytes / 1000000).toFixed(2) + ' MB';
423
- }
424
- return (bytes / 1000).toFixed(2) + ' KB';
425
- },
426
-
427
- _formatBitrate: function (bits) {
428
- if (typeof bits !== 'number') {
429
- return '';
430
- }
431
- if (bits >= 1000000000) {
432
- return (bits / 1000000000).toFixed(2) + ' Gbit/s';
433
- }
434
- if (bits >= 1000000) {
435
- return (bits / 1000000).toFixed(2) + ' Mbit/s';
436
- }
437
- if (bits >= 1000) {
438
- return (bits / 1000).toFixed(2) + ' kbit/s';
439
- }
440
- return bits.toFixed(2) + ' bit/s';
441
- },
442
-
443
- _formatTime: function (seconds) {
444
- var date = new Date(seconds * 1000),
445
- days = Math.floor(seconds / 86400);
446
- days = days ? days + 'd ' : '';
447
- return days +
448
- ('0' + date.getUTCHours()).slice(-2) + ':' +
449
- ('0' + date.getUTCMinutes()).slice(-2) + ':' +
450
- ('0' + date.getUTCSeconds()).slice(-2);
451
- },
452
-
453
- _formatPercentage: function (floatValue) {
454
- return (floatValue * 100).toFixed(2) + ' %';
455
- },
456
-
457
- _renderExtendedProgress: function (data) {
458
- return this._formatBitrate(data.bitrate) + ' | ' +
459
- this._formatTime(
460
- (data.total - data.loaded) * 8 / data.bitrate
461
- ) + ' | ' +
462
- this._formatPercentage(
463
- data.loaded / data.total
464
- ) + ' | ' +
465
- this._formatFileSize(data.loaded) + ' / ' +
466
- this._formatFileSize(data.total);
467
- },
468
-
469
- _renderTemplate: function (func, files) {
470
- if (!func) {
471
- return $();
472
- }
473
- var result = func({
474
- files: files,
475
- formatFileSize: this._formatFileSize,
476
- options: this.options
477
- });
478
- if (result instanceof $) {
479
- return result;
480
- }
481
- return $(this.options.templatesContainer).html(result).children();
482
- },
483
-
484
- _renderPreviews: function (data) {
485
- data.context.find('.preview').each(function (index, elm) {
486
- $(elm).append(data.files[index].preview);
487
- });
488
- },
489
-
490
- _renderUpload: function (files) {
491
- return this._renderTemplate(
492
- this.options.uploadTemplate,
493
- files
494
- );
495
- },
496
-
497
- _renderDownload: function (files) {
498
- return this._renderTemplate(
499
- this.options.downloadTemplate,
500
- files
501
- ).find('a[download]').each(this._enableDragToDesktop).end();
502
- },
503
-
504
- _startHandler: function (e) {
505
- e.preventDefault();
506
- var button = $(e.currentTarget),
507
- template = button.closest('.template-upload'),
508
- data = template.data('data');
509
- button.prop('disabled', true);
510
- if (data && data.submit) {
511
- data.submit();
512
- }
513
- },
514
-
515
- _cancelHandler: function (e) {
516
- e.preventDefault();
517
- var template = $(e.currentTarget)
518
- .closest('.template-upload,.template-download'),
519
- data = template.data('data') || {};
520
- if (!data.jqXHR) {
521
- data.context = data.context || template;
522
- data.errorThrown = 'abort';
523
- this._trigger('fail', e, data);
524
- } else {
525
- data.jqXHR.abort();
526
- }
527
- },
528
-
529
- _deleteHandler: function (e) {
530
- e.preventDefault();
531
- var button = $(e.currentTarget);
532
- this._trigger('destroy', e, $.extend({
533
- context: button.closest('.template-download'),
534
- type: 'DELETE'
535
- }, button.data()));
536
- },
537
-
538
- _forceReflow: function (node) {
539
- return $.support.transition && node.length &&
540
- node[0].offsetWidth;
541
- },
542
-
543
- _transition: function (node) {
544
- var dfd = $.Deferred();
545
- if ($.support.transition && node.hasClass('fade') && node.is(':visible')) {
546
- node.bind(
547
- $.support.transition.end,
548
- function (e) {
549
- // Make sure we don't respond to other transitions events
550
- // in the container element, e.g. from button elements:
551
- if (e.target === node[0]) {
552
- node.unbind($.support.transition.end);
553
- dfd.resolveWith(node);
554
- }
555
- }
556
- ).toggleClass('in');
557
- } else {
558
- node.toggleClass('in');
559
- dfd.resolveWith(node);
560
- }
561
- return dfd;
562
- },
563
-
564
- _initButtonBarEventHandlers: function () {
565
- var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),
566
- filesList = this.options.filesContainer;
567
- this._on(fileUploadButtonBar.find('.start'), {
568
- click: function (e) {
569
- e.preventDefault();
570
- filesList.find('.start').click();
571
- }
572
- });
573
- this._on(fileUploadButtonBar.find('.cancel'), {
574
- click: function (e) {
575
- e.preventDefault();
576
- filesList.find('.cancel').click();
577
- }
578
- });
579
- this._on(fileUploadButtonBar.find('.delete'), {
580
- click: function (e) {
581
- e.preventDefault();
582
- filesList.find('.toggle:checked')
583
- .closest('.template-download')
584
- .find('.delete').click();
585
- fileUploadButtonBar.find('.toggle')
586
- .prop('checked', false);
587
- }
588
- });
589
- this._on(fileUploadButtonBar.find('.toggle'), {
590
- change: function (e) {
591
- filesList.find('.toggle').prop(
592
- 'checked',
593
- $(e.currentTarget).is(':checked')
594
- );
595
- }
596
- });
597
- },
598
-
599
- _destroyButtonBarEventHandlers: function () {
600
- this._off(
601
- this.element.find('.fileupload-buttonbar')
602
- .find('.start, .cancel, .delete'),
603
- 'click'
604
- );
605
- this._off(
606
- this.element.find('.fileupload-buttonbar .toggle'),
607
- 'change.'
608
- );
609
- },
610
-
611
- _initEventHandlers: function () {
612
- this._super();
613
- this._on(this.options.filesContainer, {
614
- 'click .start': this._startHandler,
615
- 'click .cancel': this._cancelHandler,
616
- 'click .delete': this._deleteHandler
617
- });
618
- this._initButtonBarEventHandlers();
619
- },
620
-
621
- _destroyEventHandlers: function () {
622
- this._destroyButtonBarEventHandlers();
623
- this._off(this.options.filesContainer, 'click');
624
- this._super();
625
- },
626
-
627
- _enableFileInputButton: function () {
628
- this.element.find('.fileinput-button input')
629
- .prop('disabled', false)
630
- .parent().removeClass('disabled');
631
- },
632
-
633
- _disableFileInputButton: function () {
634
- this.element.find('.fileinput-button input')
635
- .prop('disabled', true)
636
- .parent().addClass('disabled');
637
- },
638
-
639
- _initTemplates: function () {
640
- var options = this.options;
641
- options.templatesContainer = this.document[0].createElement(
642
- options.filesContainer.prop('nodeName')
643
- );
644
- if (tmpl) {
645
- if (options.uploadTemplateId) {
646
- options.uploadTemplate = tmpl(options.uploadTemplateId);
647
- }
648
- if (options.downloadTemplateId) {
649
- options.downloadTemplate = tmpl(options.downloadTemplateId);
650
- }
651
- }
652
- },
653
-
654
- _initFilesContainer: function () {
655
- var options = this.options;
656
- if (options.filesContainer === undefined) {
657
- options.filesContainer = this.element.find('.files');
658
- } else if (!(options.filesContainer instanceof $)) {
659
- options.filesContainer = $(options.filesContainer);
660
- }
661
- },
662
-
663
- _initSpecialOptions: function () {
664
- this._super();
665
- this._initFilesContainer();
666
- this._initTemplates();
667
- },
668
-
669
- _create: function () {
670
- this._super();
671
- this._resetFinishedDeferreds();
672
- if (!$.support.fileInput) {
673
- this._disableFileInputButton();
674
- }
675
- },
676
-
677
- enable: function () {
678
- var wasDisabled = false;
679
- if (this.options.disabled) {
680
- wasDisabled = true;
681
- }
682
- this._super();
683
- if (wasDisabled) {
684
- this.element.find('input, button').prop('disabled', false);
685
- this._enableFileInputButton();
686
- }
687
- },
688
-
689
- disable: function () {
690
- if (!this.options.disabled) {
691
- this.element.find('input, button').prop('disabled', true);
692
- this._disableFileInputButton();
693
- }
694
- this._super();
695
- }
696
-
697
- });
698
-
699
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/fileupload/jquery.fileupload.js DELETED
@@ -1,1367 +0,0 @@
1
- /*
2
- * jQuery File Upload Plugin 5.34.0
3
- * https://github.com/blueimp/jQuery-File-Upload
4
- *
5
- * Copyright 2010, Sebastian Tschan
6
- * https://blueimp.net
7
- *
8
- * Licensed under the MIT license:
9
- * http://www.opensource.org/licenses/MIT
10
- */
11
-
12
- /*jslint nomen: true, unparam: true, regexp: true */
13
- /*global define, window, document, location, File, Blob, FormData */
14
-
15
- (function (factory) {
16
- 'use strict';
17
- if (typeof define === 'function' && define.amd) {
18
- // Register as an anonymous AMD module:
19
- define([
20
- 'jquery',
21
- 'jquery.ui.widget'
22
- ], factory);
23
- } else {
24
- // Browser globals:
25
- factory(window.jQuery);
26
- }
27
- }(function ($) {
28
- 'use strict';
29
-
30
- // Detect file input support, based on
31
- // http://viljamis.com/blog/2012/file-upload-support-on-mobile/
32
- $.support.fileInput = !(new RegExp(
33
- // Handle devices which give false positives for the feature detection:
34
- '(Android (1\\.[0156]|2\\.[01]))' +
35
- '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +
36
- '|(w(eb)?OSBrowser)|(webOS)' +
37
- '|(Kindle/(1\\.0|2\\.[05]|3\\.0))'
38
- ).test(window.navigator.userAgent) ||
39
- // Feature detection for all other devices:
40
- $('<input type="file">').prop('disabled'));
41
-
42
- // The FileReader API is not actually used, but works as feature detection,
43
- // as e.g. Safari supports XHR file uploads via the FormData API,
44
- // but not non-multipart XHR file uploads:
45
- $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader);
46
- $.support.xhrFormDataFileUpload = !!window.FormData;
47
-
48
- // Detect support for Blob slicing (required for chunked uploads):
49
- $.support.blobSlice = window.Blob && (Blob.prototype.slice ||
50
- Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
51
-
52
- // The fileupload widget listens for change events on file input fields defined
53
- // via fileInput setting and paste or drop events of the given dropZone.
54
- // In addition to the default jQuery Widget methods, the fileupload widget
55
- // exposes the "add" and "send" methods, to add or directly send files using
56
- // the fileupload API.
57
- // By default, files added via file input selection, paste, drag & drop or
58
- // "add" method are uploaded immediately, but it is possible to override
59
- // the "add" callback option to queue file uploads.
60
- $.widget('blueimp.fileupload', {
61
-
62
- options: {
63
- // The drop target element(s), by the default the complete document.
64
- // Set to null to disable drag & drop support:
65
- dropZone: $(document),
66
- // The paste target element(s), by the default the complete document.
67
- // Set to null to disable paste support:
68
- pasteZone: $(document),
69
- // The file input field(s), that are listened to for change events.
70
- // If undefined, it is set to the file input fields inside
71
- // of the widget element on plugin initialization.
72
- // Set to null to disable the change listener.
73
- fileInput: undefined,
74
- // By default, the file input field is replaced with a clone after
75
- // each input field change event. This is required for iframe transport
76
- // queues and allows change events to be fired for the same file
77
- // selection, but can be disabled by setting the following option to false:
78
- replaceFileInput: true,
79
- // The parameter name for the file form data (the request argument name).
80
- // If undefined or empty, the name property of the file input field is
81
- // used, or "files[]" if the file input name property is also empty,
82
- // can be a string or an array of strings:
83
- paramName: undefined,
84
- // By default, each file of a selection is uploaded using an individual
85
- // request for XHR type uploads. Set to false to upload file
86
- // selections in one request each:
87
- singleFileUploads: true,
88
- // To limit the number of files uploaded with one XHR request,
89
- // set the following option to an integer greater than 0:
90
- limitMultiFileUploads: undefined,
91
- // Set the following option to true to issue all file upload requests
92
- // in a sequential order:
93
- sequentialUploads: false,
94
- // To limit the number of concurrent uploads,
95
- // set the following option to an integer greater than 0:
96
- limitConcurrentUploads: undefined,
97
- // Set the following option to true to force iframe transport uploads:
98
- forceIframeTransport: false,
99
- // Set the following option to the location of a redirect url on the
100
- // origin server, for cross-domain iframe transport uploads:
101
- redirect: undefined,
102
- // The parameter name for the redirect url, sent as part of the form
103
- // data and set to 'redirect' if this option is empty:
104
- redirectParamName: undefined,
105
- // Set the following option to the location of a postMessage window,
106
- // to enable postMessage transport uploads:
107
- postMessage: undefined,
108
- // By default, XHR file uploads are sent as multipart/form-data.
109
- // The iframe transport is always using multipart/form-data.
110
- // Set to false to enable non-multipart XHR uploads:
111
- multipart: true,
112
- // To upload large files in smaller chunks, set the following option
113
- // to a preferred maximum chunk size. If set to 0, null or undefined,
114
- // or the browser does not support the required Blob API, files will
115
- // be uploaded as a whole.
116
- maxChunkSize: undefined,
117
- // When a non-multipart upload or a chunked multipart upload has been
118
- // aborted, this option can be used to resume the upload by setting
119
- // it to the size of the already uploaded bytes. This option is most
120
- // useful when modifying the options object inside of the "add" or
121
- // "send" callbacks, as the options are cloned for each file upload.
122
- uploadedBytes: undefined,
123
- // By default, failed (abort or error) file uploads are removed from the
124
- // global progress calculation. Set the following option to false to
125
- // prevent recalculating the global progress data:
126
- recalculateProgress: true,
127
- // Interval in milliseconds to calculate and trigger progress events:
128
- progressInterval: 100,
129
- // Interval in milliseconds to calculate progress bitrate:
130
- bitrateInterval: 500,
131
- // By default, uploads are started automatically when adding files:
132
- autoUpload: true,
133
-
134
- // Error and info messages:
135
- messages: {
136
- uploadedBytes: 'Uploaded bytes exceed file size'
137
- },
138
-
139
- // Translation function, gets the message key to be translated
140
- // and an object with context specific data as arguments:
141
- i18n: function (message, context) {
142
- message = this.messages[message] || message.toString();
143
- if (context) {
144
- $.each(context, function (key, value) {
145
- message = message.replace('{' + key + '}', value);
146
- });
147
- }
148
- return message;
149
- },
150
-
151
- // Additional form data to be sent along with the file uploads can be set
152
- // using this option, which accepts an array of objects with name and
153
- // value properties, a function returning such an array, a FormData
154
- // object (for XHR file uploads), or a simple object.
155
- // The form of the first fileInput is given as parameter to the function:
156
- formData: function (form) {
157
- return form.serializeArray();
158
- },
159
-
160
- // The add callback is invoked as soon as files are added to the fileupload
161
- // widget (via file input selection, drag & drop, paste or add API call).
162
- // If the singleFileUploads option is enabled, this callback will be
163
- // called once for each file in the selection for XHR file uploads, else
164
- // once for each file selection.
165
- //
166
- // The upload starts when the submit method is invoked on the data parameter.
167
- // The data object contains a files property holding the added files
168
- // and allows you to override plugin options as well as define ajax settings.
169
- //
170
- // Listeners for this callback can also be bound the following way:
171
- // .bind('fileuploadadd', func);
172
- //
173
- // data.submit() returns a Promise object and allows to attach additional
174
- // handlers using jQuery's Deferred callbacks:
175
- // data.submit().done(func).fail(func).always(func);
176
- add: function (e, data) {
177
- if (e.isDefaultPrevented()) {
178
- return false;
179
- }
180
- if (data.autoUpload || (data.autoUpload !== false &&
181
- $(this).fileupload('option', 'autoUpload'))) {
182
- data.process().done(function () {
183
- data.submit();
184
- });
185
- }
186
- },
187
-
188
- // Other callbacks:
189
-
190
- // Callback for the submit event of each file upload:
191
- // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
192
-
193
- // Callback for the start of each file upload request:
194
- // send: function (e, data) {}, // .bind('fileuploadsend', func);
195
-
196
- // Callback for successful uploads:
197
- // done: function (e, data) {}, // .bind('fileuploaddone', func);
198
-
199
- // Callback for failed (abort or error) uploads:
200
- // fail: function (e, data) {}, // .bind('fileuploadfail', func);
201
-
202
- // Callback for completed (success, abort or error) requests:
203
- // always: function (e, data) {}, // .bind('fileuploadalways', func);
204
-
205
- // Callback for upload progress events:
206
- // progress: function (e, data) {}, // .bind('fileuploadprogress', func);
207
-
208
- // Callback for global upload progress events:
209
- // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
210
-
211
- // Callback for uploads start, equivalent to the global ajaxStart event:
212
- // start: function (e) {}, // .bind('fileuploadstart', func);
213
-
214
- // Callback for uploads stop, equivalent to the global ajaxStop event:
215
- // stop: function (e) {}, // .bind('fileuploadstop', func);
216
-
217
- // Callback for change events of the fileInput(s):
218
- // change: function (e, data) {}, // .bind('fileuploadchange', func);
219
-
220
- // Callback for paste events to the pasteZone(s):
221
- // paste: function (e, data) {}, // .bind('fileuploadpaste', func);
222
-
223
- // Callback for drop events of the dropZone(s):
224
- // drop: function (e, data) {}, // .bind('fileuploaddrop', func);
225
-
226
- // Callback for dragover events of the dropZone(s):
227
- // dragover: function (e) {}, // .bind('fileuploaddragover', func);
228
-
229
- // Callback for the start of each chunk upload request:
230
- // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);
231
-
232
- // Callback for successful chunk uploads:
233
- // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);
234
-
235
- // Callback for failed (abort or error) chunk uploads:
236
- // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);
237
-
238
- // Callback for completed (success, abort or error) chunk upload requests:
239
- // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);
240
-
241
- // The plugin options are used as settings object for the ajax calls.
242
- // The following are jQuery ajax settings required for the file uploads:
243
- processData: false,
244
- contentType: false,
245
- cache: false
246
- },
247
-
248
- // A list of options that require reinitializing event listeners and/or
249
- // special initialization code:
250
- _specialOptions: [
251
- 'fileInput',
252
- 'dropZone',
253
- 'pasteZone',
254
- 'multipart',
255
- 'forceIframeTransport'
256
- ],
257
-
258
- _blobSlice: $.support.blobSlice && function () {
259
- var slice = this.slice || this.webkitSlice || this.mozSlice;
260
- return slice.apply(this, arguments);
261
- },
262
-
263
- _BitrateTimer: function () {
264
- this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());
265
- this.loaded = 0;
266
- this.bitrate = 0;
267
- this.getBitrate = function (now, loaded, interval) {
268
- var timeDiff = now - this.timestamp;
269
- if (!this.bitrate || !interval || timeDiff > interval) {
270
- this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;
271
- this.loaded = loaded;
272
- this.timestamp = now;
273
- }
274
- return this.bitrate;
275
- };
276
- },
277
-
278
- _isXHRUpload: function (options) {
279
- return !options.forceIframeTransport &&
280
- ((!options.multipart && $.support.xhrFileUpload) ||
281
- $.support.xhrFormDataFileUpload);
282
- },
283
-
284
- _getFormData: function (options) {
285
- var formData;
286
- if (typeof options.formData === 'function') {
287
- return options.formData(options.form);
288
- }
289
- if ($.isArray(options.formData)) {
290
- return options.formData;
291
- }
292
- if ($.type(options.formData) === 'object') {
293
- formData = [];
294
- $.each(options.formData, function (name, value) {
295
- formData.push({name: name, value: value});
296
- });
297
- return formData;
298
- }
299
- return [];
300
- },
301
-
302
- _getTotal: function (files) {
303
- var total = 0;
304
- $.each(files, function (index, file) {
305
- total += file.size || 1;
306
- });
307
- return total;
308
- },
309
-
310
- _initProgressObject: function (obj) {
311
- var progress = {
312
- loaded: 0,
313
- total: 0,
314
- bitrate: 0
315
- };
316
- if (obj._progress) {
317
- $.extend(obj._progress, progress);
318
- } else {
319
- obj._progress = progress;
320
- }
321
- },
322
-
323
- _initResponseObject: function (obj) {
324
- var prop;
325
- if (obj._response) {
326
- for (prop in obj._response) {
327
- if (obj._response.hasOwnProperty(prop)) {
328
- delete obj._response[prop];
329
- }
330
- }
331
- } else {
332
- obj._response = {};
333
- }
334
- },
335
-
336
- _onProgress: function (e, data) {
337
- if (e.lengthComputable) {
338
- var now = ((Date.now) ? Date.now() : (new Date()).getTime()),
339
- loaded;
340
- if (data._time && data.progressInterval &&
341
- (now - data._time < data.progressInterval) &&
342
- e.loaded !== e.total) {
343
- return;
344
- }
345
- data._time = now;
346
- loaded = Math.floor(
347
- e.loaded / e.total * (data.chunkSize || data._progress.total)
348
- ) + (data.uploadedBytes || 0);
349
- // Add the difference from the previously loaded state
350
- // to the global loaded counter:
351
- this._progress.loaded += (loaded - data._progress.loaded);
352
- this._progress.bitrate = this._bitrateTimer.getBitrate(
353
- now,
354
- this._progress.loaded,
355
- data.bitrateInterval
356
- );
357
- data._progress.loaded = data.loaded = loaded;
358
- data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(
359
- now,
360
- loaded,
361
- data.bitrateInterval
362
- );
363
- // Trigger a custom progress event with a total data property set
364
- // to the file size(s) of the current upload and a loaded data
365
- // property calculated accordingly:
366
- this._trigger(
367
- 'progress',
368
- $.Event('progress', {delegatedEvent: e}),
369
- data
370
- );
371
- // Trigger a global progress event for all current file uploads,
372
- // including ajax calls queued for sequential file uploads:
373
- this._trigger(
374
- 'progressall',
375
- $.Event('progressall', {delegatedEvent: e}),
376
- this._progress
377
- );
378
- }
379
- },
380
-
381
- _initProgressListener: function (options) {
382
- var that = this,
383
- xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
384
- // Accesss to the native XHR object is required to add event listeners
385
- // for the upload progress event:
386
- if (xhr.upload) {
387
- $(xhr.upload).bind('progress', function (e) {
388
- var oe = e.originalEvent;
389
- // Make sure the progress event properties get copied over:
390
- e.lengthComputable = oe.lengthComputable;
391
- e.loaded = oe.loaded;
392
- e.total = oe.total;
393
- that._onProgress(e, options);
394
- });
395
- options.xhr = function () {
396
- return xhr;
397
- };
398
- }
399
- },
400
-
401
- _isInstanceOf: function (type, obj) {
402
- // Cross-frame instanceof check
403
- return Object.prototype.toString.call(obj) === '[object ' + type + ']';
404
- },
405
-
406
- _initXHRData: function (options) {
407
- var that = this,
408
- formData,
409
- file = options.files[0],
410
- // Ignore non-multipart setting if not supported:
411
- multipart = options.multipart || !$.support.xhrFileUpload,
412
- paramName = options.paramName[0];
413
- options.headers = $.extend({}, options.headers);
414
- if (options.contentRange) {
415
- options.headers['Content-Range'] = options.contentRange;
416
- }
417
- if (!multipart || options.blob || !this._isInstanceOf('File', file)) {
418
- options.headers['Content-Disposition'] = 'attachment; filename="' +
419
- encodeURI(file.name) + '"';
420
- }
421
- if (!multipart) {
422
- options.contentType = file.type;
423
- options.data = options.blob || file;
424
- } else if ($.support.xhrFormDataFileUpload) {
425
- if (options.postMessage) {
426
- // window.postMessage does not allow sending FormData
427
- // objects, so we just add the File/Blob objects to
428
- // the formData array and let the postMessage window
429
- // create the FormData object out of this array:
430
- formData = this._getFormData(options);
431
- if (options.blob) {
432
- formData.push({
433
- name: paramName,
434
- value: options.blob
435
- });
436
- } else {
437
- $.each(options.files, function (index, file) {
438
- formData.push({
439
- name: options.paramName[index] || paramName,
440
- value: file
441
- });
442
- });
443
- }
444
- } else {
445
- if (that._isInstanceOf('FormData', options.formData)) {
446
- formData = options.formData;
447
- } else {
448
- formData = new FormData();
449
- $.each(this._getFormData(options), function (index, field) {
450
- formData.append(field.name, field.value);
451
- });
452
- }
453
- if (options.blob) {
454
- formData.append(paramName, options.blob, file.name);
455
- } else {
456
- $.each(options.files, function (index, file) {
457
- // This check allows the tests to run with
458
- // dummy objects:
459
- if (that._isInstanceOf('File', file) ||
460
- that._isInstanceOf('Blob', file)) {
461
- formData.append(
462
- options.paramName[index] || paramName,
463
- file,
464
- file.name
465
- );
466
- }
467
- });
468
- }
469
- }
470
- options.data = formData;
471
- }
472
- // Blob reference is not needed anymore, free memory:
473
- options.blob = null;
474
- },
475
-
476
- _initIframeSettings: function (options) {
477
- var targetHost = $('<a></a>').prop('href', options.url).prop('host');
478
- // Setting the dataType to iframe enables the iframe transport:
479
- options.dataType = 'iframe ' + (options.dataType || '');
480
- // The iframe transport accepts a serialized array as form data:
481
- options.formData = this._getFormData(options);
482
- // Add redirect url to form data on cross-domain uploads:
483
- if (options.redirect && targetHost && targetHost !== location.host) {
484
- options.formData.push({
485
- name: options.redirectParamName || 'redirect',
486
- value: options.redirect
487
- });
488
- }
489
- },
490
-
491
- _initDataSettings: function (options) {
492
- if (this._isXHRUpload(options)) {
493
- if (!this._chunkedUpload(options, true)) {
494
- if (!options.data) {
495
- this._initXHRData(options);
496
- }
497
- this._initProgressListener(options);
498
- }
499
- if (options.postMessage) {
500
- // Setting the dataType to postmessage enables the
501
- // postMessage transport:
502
- options.dataType = 'postmessage ' + (options.dataType || '');
503
- }
504
- } else {
505
- this._initIframeSettings(options);
506
- }
507
- },
508
-
509
- _getParamName: function (options) {
510
- var fileInput = $(options.fileInput),
511
- paramName = options.paramName;
512
- if (!paramName) {
513
- paramName = [];
514
- fileInput.each(function () {
515
- var input = $(this),
516
- name = input.prop('name') || 'files[]',
517
- i = (input.prop('files') || [1]).length;
518
- while (i) {
519
- paramName.push(name);
520
- i -= 1;
521
- }
522
- });
523
- if (!paramName.length) {
524
- paramName = [fileInput.prop('name') || 'files[]'];
525
- }
526
- } else if (!$.isArray(paramName)) {
527
- paramName = [paramName];
528
- }
529
- return paramName;
530
- },
531
-
532
- _initFormSettings: function (options) {
533
- // Retrieve missing options from the input field and the
534
- // associated form, if available:
535
- if (!options.form || !options.form.length) {
536
- options.form = $(options.fileInput.prop('form'));
537
- // If the given file input doesn't have an associated form,
538
- // use the default widget file input's form:
539
- if (!options.form.length) {
540
- options.form = $(this.options.fileInput.prop('form'));
541
- }
542
- }
543
- options.paramName = this._getParamName(options);
544
- if (!options.url) {
545
- options.url = options.form.prop('action') || location.href;
546
- }
547
- // The HTTP request method must be "POST" or "PUT":
548
- options.type = (options.type ||
549
- ($.type(options.form.prop('method')) === 'string' &&
550
- options.form.prop('method')) || ''
551
- ).toUpperCase();
552
- if (options.type !== 'POST' && options.type !== 'PUT' &&
553
- options.type !== 'PATCH') {
554
- options.type = 'POST';
555
- }
556
- if (!options.formAcceptCharset) {
557
- options.formAcceptCharset = options.form.attr('accept-charset');
558
- }
559
- },
560
-
561
- _getAJAXSettings: function (data) {
562
- var options = $.extend({}, this.options, data);
563
- this._initFormSettings(options);
564
- this._initDataSettings(options);
565
- return options;
566
- },
567
-
568
- // jQuery 1.6 doesn't provide .state(),
569
- // while jQuery 1.8+ removed .isRejected() and .isResolved():
570
- _getDeferredState: function (deferred) {
571
- if (deferred.state) {
572
- return deferred.state();
573
- }
574
- if (deferred.isResolved()) {
575
- return 'resolved';
576
- }
577
- if (deferred.isRejected()) {
578
- return 'rejected';
579
- }
580
- return 'pending';
581
- },
582
-
583
- // Maps jqXHR callbacks to the equivalent
584
- // methods of the given Promise object:
585
- _enhancePromise: function (promise) {
586
- promise.success = promise.done;
587
- promise.error = promise.fail;
588
- promise.complete = promise.always;
589
- return promise;
590
- },
591
-
592
- // Creates and returns a Promise object enhanced with
593
- // the jqXHR methods abort, success, error and complete:
594
- _getXHRPromise: function (resolveOrReject, context, args) {
595
- var dfd = $.Deferred(),
596
- promise = dfd.promise();
597
- context = context || this.options.context || promise;
598
- if (resolveOrReject === true) {
599
- dfd.resolveWith(context, args);
600
- } else if (resolveOrReject === false) {
601
- dfd.rejectWith(context, args);
602
- }
603
- promise.abort = dfd.promise;
604
- return this._enhancePromise(promise);
605
- },
606
-
607
- // Adds convenience methods to the data callback argument:
608
- _addConvenienceMethods: function (e, data) {
609
- var that = this,
610
- getPromise = function (data) {
611
- return $.Deferred().resolveWith(that, [data]).promise();
612
- };
613
- data.process = function (resolveFunc, rejectFunc) {
614
- if (resolveFunc || rejectFunc) {
615
- data._processQueue = this._processQueue =
616
- (this._processQueue || getPromise(this))
617
- .pipe(resolveFunc, rejectFunc);
618
- }
619
- return this._processQueue || getPromise(this);
620
- };
621
- data.submit = function () {
622
- if (this.state() !== 'pending') {
623
- data.jqXHR = this.jqXHR =
624
- (that._trigger(
625
- 'submit',
626
- $.Event('submit', {delegatedEvent: e}),
627
- this
628
- ) !== false) && that._onSend(e, this);
629
- }
630
- return this.jqXHR || that._getXHRPromise();
631
- };
632
- data.abort = function () {
633
- if (this.jqXHR) {
634
- return this.jqXHR.abort();
635
- }
636
- return that._getXHRPromise();
637
- };
638
- data.state = function () {
639
- if (this.jqXHR) {
640
- return that._getDeferredState(this.jqXHR);
641
- }
642
- if (this._processQueue) {
643
- return that._getDeferredState(this._processQueue);
644
- }
645
- };
646
- data.progress = function () {
647
- return this._progress;
648
- };
649
- data.response = function () {
650
- return this._response;
651
- };
652
- },
653
-
654
- // Parses the Range header from the server response
655
- // and returns the uploaded bytes:
656
- _getUploadedBytes: function (jqXHR) {
657
- var range = jqXHR.getResponseHeader('Range'),
658
- parts = range && range.split('-'),
659
- upperBytesPos = parts && parts.length > 1 &&
660
- parseInt(parts[1], 10);
661
- return upperBytesPos && upperBytesPos + 1;
662
- },
663
-
664
- // Uploads a file in multiple, sequential requests
665
- // by splitting the file up in multiple blob chunks.
666
- // If the second parameter is true, only tests if the file
667
- // should be uploaded in chunks, but does not invoke any
668
- // upload requests:
669
- _chunkedUpload: function (options, testOnly) {
670
- options.uploadedBytes = options.uploadedBytes || 0;
671
- var that = this,
672
- file = options.files[0],
673
- fs = file.size,
674
- ub = options.uploadedBytes,
675
- mcs = options.maxChunkSize || fs,
676
- slice = this._blobSlice,
677
- dfd = $.Deferred(),
678
- promise = dfd.promise(),
679
- jqXHR,
680
- upload;
681
- if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||
682
- options.data) {
683
- return false;
684
- }
685
- if (testOnly) {
686
- return true;
687
- }
688
- if (ub >= fs) {
689
- file.error = options.i18n('uploadedBytes');
690
- return this._getXHRPromise(
691
- false,
692
- options.context,
693
- [null, 'error', file.error]
694
- );
695
- }
696
- // The chunk upload method:
697
- upload = function () {
698
- // Clone the options object for each chunk upload:
699
- var o = $.extend({}, options),
700
- currentLoaded = o._progress.loaded;
701
- o.blob = slice.call(
702
- file,
703
- ub,
704
- ub + mcs,
705
- file.type
706
- );
707
- // Store the current chunk size, as the blob itself
708
- // will be dereferenced after data processing:
709
- o.chunkSize = o.blob.size;
710
- // Expose the chunk bytes position range:
711
- o.contentRange = 'bytes ' + ub + '-' +
712
- (ub + o.chunkSize - 1) + '/' + fs;
713
- // Process the upload data (the blob and potential form data):
714
- that._initXHRData(o);
715
- // Add progress listeners for this chunk upload:
716
- that._initProgressListener(o);
717
- jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||
718
- that._getXHRPromise(false, o.context))
719
- .done(function (result, textStatus, jqXHR) {
720
- ub = that._getUploadedBytes(jqXHR) ||
721
- (ub + o.chunkSize);
722
- // Create a progress event if no final progress event
723
- // with loaded equaling total has been triggered
724
- // for this chunk:
725
- if (currentLoaded + o.chunkSize - o._progress.loaded) {
726
- that._onProgress($.Event('progress', {
727
- lengthComputable: true,
728
- loaded: ub - o.uploadedBytes,
729
- total: ub - o.uploadedBytes
730
- }), o);
731
- }
732
- options.uploadedBytes = o.uploadedBytes = ub;
733
- o.result = result;
734
- o.textStatus = textStatus;
735
- o.jqXHR = jqXHR;
736
- that._trigger('chunkdone', null, o);
737
- that._trigger('chunkalways', null, o);
738
- if (ub < fs) {
739
- // File upload not yet complete,
740
- // continue with the next chunk:
741
- upload();
742
- } else {
743
- dfd.resolveWith(
744
- o.context,
745
- [result, textStatus, jqXHR]
746
- );
747
- }
748
- })
749
- .fail(function (jqXHR, textStatus, errorThrown) {
750
- o.jqXHR = jqXHR;
751
- o.textStatus = textStatus;
752
- o.errorThrown = errorThrown;
753
- that._trigger('chunkfail', null, o);
754
- that._trigger('chunkalways', null, o);
755
- dfd.rejectWith(
756
- o.context,
757
- [jqXHR, textStatus, errorThrown]
758
- );
759
- });
760
- };
761
- this._enhancePromise(promise);
762
- promise.abort = function () {
763
- return jqXHR.abort();
764
- };
765
- upload();
766
- return promise;
767
- },
768
-
769
- _beforeSend: function (e, data) {
770
- if (this._active === 0) {
771
- // the start callback is triggered when an upload starts
772
- // and no other uploads are currently running,
773
- // equivalent to the global ajaxStart event:
774
- this._trigger('start');
775
- // Set timer for global bitrate progress calculation:
776
- this._bitrateTimer = new this._BitrateTimer();
777
- // Reset the global progress values:
778
- this._progress.loaded = this._progress.total = 0;
779
- this._progress.bitrate = 0;
780
- }
781
- // Make sure the container objects for the .response() and
782
- // .progress() methods on the data object are available
783
- // and reset to their initial state:
784
- this._initResponseObject(data);
785
- this._initProgressObject(data);
786
- data._progress.loaded = data.loaded = data.uploadedBytes || 0;
787
- data._progress.total = data.total = this._getTotal(data.files) || 1;
788
- data._progress.bitrate = data.bitrate = 0;
789
- this._active += 1;
790
- // Initialize the global progress values:
791
- this._progress.loaded += data.loaded;
792
- this._progress.total += data.total;
793
- },
794
-
795
- _onDone: function (result, textStatus, jqXHR, options) {
796
- var total = options._progress.total,
797
- response = options._response;
798
- if (options._progress.loaded < total) {
799
- // Create a progress event if no final progress event
800
- // with loaded equaling total has been triggered:
801
- this._onProgress($.Event('progress', {
802
- lengthComputable: true,
803
- loaded: total,
804
- total: total
805
- }), options);
806
- }
807
- response.result = options.result = result;
808
- response.textStatus = options.textStatus = textStatus;
809
- response.jqXHR = options.jqXHR = jqXHR;
810
- this._trigger('done', null, options);
811
- },
812
-
813
- _onFail: function (jqXHR, textStatus, errorThrown, options) {
814
- var response = options._response;
815
- if (options.recalculateProgress) {
816
- // Remove the failed (error or abort) file upload from
817
- // the global progress calculation:
818
- this._progress.loaded -= options._progress.loaded;
819
- this._progress.total -= options._progress.total;
820
- }
821
- response.jqXHR = options.jqXHR = jqXHR;
822
- response.textStatus = options.textStatus = textStatus;
823
- response.errorThrown = options.errorThrown = errorThrown;
824
- this._trigger('fail', null, options);
825
- },
826
-
827
- _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {
828
- // jqXHRorResult, textStatus and jqXHRorError are added to the
829
- // options object via done and fail callbacks
830
- this._trigger('always', null, options);
831
- },
832
-
833
- _onSend: function (e, data) {
834
- if (!data.submit) {
835
- this._addConvenienceMethods(e, data);
836
- }
837
- var that = this,
838
- jqXHR,
839
- aborted,
840
- slot,
841
- pipe,
842
- options = that._getAJAXSettings(data),
843
- send = function () {
844
- that._sending += 1;
845
- // Set timer for bitrate progress calculation:
846
- options._bitrateTimer = new that._BitrateTimer();
847
- jqXHR = jqXHR || (
848
- ((aborted || that._trigger(
849
- 'send',
850
- $.Event('send', {delegatedEvent: e}),
851
- options
852
- ) === false) &&
853
- that._getXHRPromise(false, options.context, aborted)) ||
854
- that._chunkedUpload(options) || $.ajax(options)
855
- ).done(function (result, textStatus, jqXHR) {
856
- that._onDone(result, textStatus, jqXHR, options);
857
- }).fail(function (jqXHR, textStatus, errorThrown) {
858
- that._onFail(jqXHR, textStatus, errorThrown, options);
859
- }).always(function (jqXHRorResult, textStatus, jqXHRorError) {
860
- that._onAlways(
861
- jqXHRorResult,
862
- textStatus,
863
- jqXHRorError,
864
- options
865
- );
866
- that._sending -= 1;
867
- that._active -= 1;
868
- if (options.limitConcurrentUploads &&
869
- options.limitConcurrentUploads > that._sending) {
870
- // Start the next queued upload,
871
- // that has not been aborted:
872
- var nextSlot = that._slots.shift();
873
- while (nextSlot) {
874
- if (that._getDeferredState(nextSlot) === 'pending') {
875
- nextSlot.resolve();
876
- break;
877
- }
878
- nextSlot = that._slots.shift();
879
- }
880
- }
881
- if (that._active === 0) {
882
- // The stop callback is triggered when all uploads have
883
- // been completed, equivalent to the global ajaxStop event:
884
- that._trigger('stop');
885
- }
886
- });
887
- return jqXHR;
888
- };
889
- this._beforeSend(e, options);
890
- if (this.options.sequentialUploads ||
891
- (this.options.limitConcurrentUploads &&
892
- this.options.limitConcurrentUploads <= this._sending)) {
893
- if (this.options.limitConcurrentUploads > 1) {
894
- slot = $.Deferred();
895
- this._slots.push(slot);
896
- pipe = slot.pipe(send);
897
- } else {
898
- this._sequence = this._sequence.pipe(send, send);
899
- pipe = this._sequence;
900
- }
901
- // Return the piped Promise object, enhanced with an abort method,
902
- // which is delegated to the jqXHR object of the current upload,
903
- // and jqXHR callbacks mapped to the equivalent Promise methods:
904
- pipe.abort = function () {
905
- aborted = [undefined, 'abort', 'abort'];
906
- if (!jqXHR) {
907
- if (slot) {
908
- slot.rejectWith(options.context, aborted);
909
- }
910
- return send();
911
- }
912
- return jqXHR.abort();
913
- };
914
- return this._enhancePromise(pipe);
915
- }
916
- return send();
917
- },
918
-
919
- _onAdd: function (e, data) {
920
- var that = this,
921
- result = true,
922
- options = $.extend({}, this.options, data),
923
- limit = options.limitMultiFileUploads,
924
- paramName = this._getParamName(options),
925
- paramNameSet,
926
- paramNameSlice,
927
- fileSet,
928
- i;
929
- if (!(options.singleFileUploads || limit) ||
930
- !this._isXHRUpload(options)) {
931
- fileSet = [data.files];
932
- paramNameSet = [paramName];
933
- } else if (!options.singleFileUploads && limit) {
934
- fileSet = [];
935
- paramNameSet = [];
936
- for (i = 0; i < data.files.length; i += limit) {
937
- fileSet.push(data.files.slice(i, i + limit));
938
- paramNameSlice = paramName.slice(i, i + limit);
939
- if (!paramNameSlice.length) {
940
- paramNameSlice = paramName;
941
- }
942
- paramNameSet.push(paramNameSlice);
943
- }
944
- } else {
945
- paramNameSet = paramName;
946
- }
947
- data.originalFiles = data.files;
948
- $.each(fileSet || data.files, function (index, element) {
949
- var newData = $.extend({}, data);
950
- newData.files = fileSet ? element : [element];
951
- newData.paramName = paramNameSet[index];
952
- that._initResponseObject(newData);
953
- that._initProgressObject(newData);
954
- that._addConvenienceMethods(e, newData);
955
- result = that._trigger(
956
- 'add',
957
- $.Event('add', {delegatedEvent: e}),
958
- newData
959
- );
960
- return result;
961
- });
962
- return result;
963
- },
964
-
965
- _replaceFileInput: function (input) {
966
- var inputClone = input.clone(true);
967
- $('<form></form>').append(inputClone)[0].reset();
968
- // Detaching allows to insert the fileInput on another form
969
- // without loosing the file input value:
970
- input.after(inputClone).detach();
971
- // Avoid memory leaks with the detached file input:
972
- $.cleanData(input.unbind('remove'));
973
- // Replace the original file input element in the fileInput
974
- // elements set with the clone, which has been copied including
975
- // event handlers:
976
- this.options.fileInput = this.options.fileInput.map(function (i, el) {
977
- if (el === input[0]) {
978
- return inputClone[0];
979
- }
980
- return el;
981
- });
982
- // If the widget has been initialized on the file input itself,
983
- // override this.element with the file input clone:
984
- if (input[0] === this.element[0]) {
985
- this.element = inputClone;
986
- }
987
- },
988
-
989
- _handleFileTreeEntry: function (entry, path) {
990
- var that = this,
991
- dfd = $.Deferred(),
992
- errorHandler = function (e) {
993
- if (e && !e.entry) {
994
- e.entry = entry;
995
- }
996
- // Since $.when returns immediately if one
997
- // Deferred is rejected, we use resolve instead.
998
- // This allows valid files and invalid items
999
- // to be returned together in one set:
1000
- dfd.resolve([e]);
1001
- },
1002
- dirReader;
1003
- path = path || '';
1004
- if (entry.isFile) {
1005
- if (entry._file) {
1006
- // Workaround for Chrome bug #149735
1007
- entry._file.relativePath = path;
1008
- dfd.resolve(entry._file);
1009
- } else {
1010
- entry.file(function (file) {
1011
- file.relativePath = path;
1012
- dfd.resolve(file);
1013
- }, errorHandler);
1014
- }
1015
- } else if (entry.isDirectory) {
1016
- dirReader = entry.createReader();
1017
- dirReader.readEntries(function (entries) {
1018
- that._handleFileTreeEntries(
1019
- entries,
1020
- path + entry.name + '/'
1021
- ).done(function (files) {
1022
- dfd.resolve(files);
1023
- }).fail(errorHandler);
1024
- }, errorHandler);
1025
- } else {
1026
- // Return an empy list for file system items
1027
- // other than files or directories:
1028
- dfd.resolve([]);
1029
- }
1030
- return dfd.promise();
1031
- },
1032
-
1033
- _handleFileTreeEntries: function (entries, path) {
1034
- var that = this;
1035
- return $.when.apply(
1036
- $,
1037
- $.map(entries, function (entry) {
1038
- return that._handleFileTreeEntry(entry, path);
1039
- })
1040
- ).pipe(function () {
1041
- return Array.prototype.concat.apply(
1042
- [],
1043
- arguments
1044
- );
1045
- });
1046
- },
1047
-
1048
- _getDroppedFiles: function (dataTransfer) {
1049
- dataTransfer = dataTransfer || {};
1050
- var items = dataTransfer.items;
1051
- if (items && items.length && (items[0].webkitGetAsEntry ||
1052
- items[0].getAsEntry)) {
1053
- return this._handleFileTreeEntries(
1054
- $.map(items, function (item) {
1055
- var entry;
1056
- if (item.webkitGetAsEntry) {
1057
- entry = item.webkitGetAsEntry();
1058
- if (entry) {
1059
- // Workaround for Chrome bug #149735:
1060
- entry._file = item.getAsFile();
1061
- }
1062
- return entry;
1063
- }
1064
- return item.getAsEntry();
1065
- })
1066
- );
1067
- }
1068
- return $.Deferred().resolve(
1069
- $.makeArray(dataTransfer.files)
1070
- ).promise();
1071
- },
1072
-
1073
- _getSingleFileInputFiles: function (fileInput) {
1074
- fileInput = $(fileInput);
1075
- var entries = fileInput.prop('webkitEntries') ||
1076
- fileInput.prop('entries'),
1077
- files,
1078
- value;
1079
- if (entries && entries.length) {
1080
- return this._handleFileTreeEntries(entries);
1081
- }
1082
- files = $.makeArray(fileInput.prop('files'));
1083
- if (!files.length) {
1084
- value = fileInput.prop('value');
1085
- if (!value) {
1086
- return $.Deferred().resolve([]).promise();
1087
- }
1088
- // If the files property is not available, the browser does not
1089
- // support the File API and we add a pseudo File object with
1090
- // the input value as name with path information removed:
1091
- files = [{name: value.replace(/^.*\\/, '')}];
1092
- } else if (files[0].name === undefined && files[0].fileName) {
1093
- // File normalization for Safari 4 and Firefox 3:
1094
- $.each(files, function (index, file) {
1095
- file.name = file.fileName;
1096
- file.size = file.fileSize;
1097
- });
1098
- }
1099
- return $.Deferred().resolve(files).promise();
1100
- },
1101
-
1102
- _getFileInputFiles: function (fileInput) {
1103
- if (!(fileInput instanceof $) || fileInput.length === 1) {
1104
- return this._getSingleFileInputFiles(fileInput);
1105
- }
1106
- return $.when.apply(
1107
- $,
1108
- $.map(fileInput, this._getSingleFileInputFiles)
1109
- ).pipe(function () {
1110
- return Array.prototype.concat.apply(
1111
- [],
1112
- arguments
1113
- );
1114
- });
1115
- },
1116
-
1117
- _onChange: function (e) {
1118
- var that = this,
1119
- data = {
1120
- fileInput: $(e.target),
1121
- form: $(e.target.form)
1122
- };
1123
- this._getFileInputFiles(data.fileInput).always(function (files) {
1124
- data.files = files;
1125
- if (that.options.replaceFileInput) {
1126
- that._replaceFileInput(data.fileInput);
1127
- }
1128
- if (that._trigger(
1129
- 'change',
1130
- $.Event('change', {delegatedEvent: e}),
1131
- data
1132
- ) !== false) {
1133
- that._onAdd(e, data);
1134
- }
1135
- });
1136
- },
1137
-
1138
- _onPaste: function (e) {
1139
- var items = e.originalEvent && e.originalEvent.clipboardData &&
1140
- e.originalEvent.clipboardData.items,
1141
- data = {files: []};
1142
- if (items && items.length) {
1143
- $.each(items, function (index, item) {
1144
- var file = item.getAsFile && item.getAsFile();
1145
- if (file) {
1146
- data.files.push(file);
1147
- }
1148
- });
1149
- if (this._trigger(
1150
- 'paste',
1151
- $.Event('paste', {delegatedEvent: e}),
1152
- data
1153
- ) !== false) {
1154
- this._onAdd(e, data);
1155
- }
1156
- }
1157
- },
1158
-
1159
- _onDrop: function (e) {
1160
- e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
1161
- var that = this,
1162
- dataTransfer = e.dataTransfer,
1163
- data = {};
1164
- if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
1165
- e.preventDefault();
1166
- this._getDroppedFiles(dataTransfer).always(function (files) {
1167
- data.files = files;
1168
- if (that._trigger(
1169
- 'drop',
1170
- $.Event('drop', {delegatedEvent: e}),
1171
- data
1172
- ) !== false) {
1173
- that._onAdd(e, data);
1174
- }
1175
- });
1176
- }
1177
- },
1178
-
1179
- _onDragOver: function (e) {
1180
- e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
1181
- var dataTransfer = e.dataTransfer;
1182
- if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&
1183
- this._trigger(
1184
- 'dragover',
1185
- $.Event('dragover', {delegatedEvent: e})
1186
- ) !== false) {
1187
- e.preventDefault();
1188
- dataTransfer.dropEffect = 'copy';
1189
- }
1190
- },
1191
-
1192
- _initEventHandlers: function () {
1193
- if (this._isXHRUpload(this.options)) {
1194
- this._on(this.options.dropZone, {
1195
- dragover: this._onDragOver,
1196
- drop: this._onDrop
1197
- });
1198
- this._on(this.options.pasteZone, {
1199
- paste: this._onPaste
1200
- });
1201
- }
1202
- if ($.support.fileInput) {
1203
- this._on(this.options.fileInput, {
1204
- change: this._onChange
1205
- });
1206
- }
1207
- },
1208
-
1209
- _destroyEventHandlers: function () {
1210
- this._off(this.options.dropZone, 'dragover drop');
1211
- this._off(this.options.pasteZone, 'paste');
1212
- this._off(this.options.fileInput, 'change');
1213
- },
1214
-
1215
- _setOption: function (key, value) {
1216
- var reinit = $.inArray(key, this._specialOptions) !== -1;
1217
- if (reinit) {
1218
- this._destroyEventHandlers();
1219
- }
1220
- this._super(key, value);
1221
- if (reinit) {
1222
- this._initSpecialOptions();
1223
- this._initEventHandlers();
1224
- }
1225
- },
1226
-
1227
- _initSpecialOptions: function () {
1228
- var options = this.options;
1229
- if (options.fileInput === undefined) {
1230
- options.fileInput = this.element.is('input[type="file"]') ?
1231
- this.element : this.element.find('input[type="file"]');
1232
- } else if (!(options.fileInput instanceof $)) {
1233
- options.fileInput = $(options.fileInput);
1234
- }
1235
- if (!(options.dropZone instanceof $)) {
1236
- options.dropZone = $(options.dropZone);
1237
- }
1238
- if (!(options.pasteZone instanceof $)) {
1239
- options.pasteZone = $(options.pasteZone);
1240
- }
1241
- },
1242
-
1243
- _getRegExp: function (str) {
1244
- var parts = str.split('/'),
1245
- modifiers = parts.pop();
1246
- parts.shift();
1247
- return new RegExp(parts.join('/'), modifiers);
1248
- },
1249
-
1250
- _isRegExpOption: function (key, value) {
1251
- return key !== 'url' && $.type(value) === 'string' &&
1252
- /^\/.*\/[igm]{0,3}$/.test(value);
1253
- },
1254
-
1255
- _initDataAttributes: function () {
1256
- var that = this,
1257
- options = this.options;
1258
- // Initialize options set via HTML5 data-attributes:
1259
- $.each(
1260
- $(this.element[0].cloneNode(false)).data(),
1261
- function (key, value) {
1262
- if (that._isRegExpOption(key, value)) {
1263
- value = that._getRegExp(value);
1264
- }
1265
- options[key] = value;
1266
- }
1267
- );
1268
- },
1269
-
1270
- _create: function () {
1271
- this._initDataAttributes();
1272
- this._initSpecialOptions();
1273
- this._slots = [];
1274
- this._sequence = this._getXHRPromise(true);
1275
- this._sending = this._active = 0;
1276
- this._initProgressObject(this);
1277
- this._initEventHandlers();
1278
- },
1279
-
1280
- // This method is exposed to the widget API and allows to query
1281
- // the number of active uploads:
1282
- active: function () {
1283
- return this._active;
1284
- },
1285
-
1286
- // This method is exposed to the widget API and allows to query
1287
- // the widget upload progress.
1288
- // It returns an object with loaded, total and bitrate properties
1289
- // for the running uploads:
1290
- progress: function () {
1291
- return this._progress;
1292
- },
1293
-
1294
- // This method is exposed to the widget API and allows adding files
1295
- // using the fileupload API. The data parameter accepts an object which
1296
- // must have a files property and can contain additional options:
1297
- // .fileupload('add', {files: filesList});
1298
- add: function (data) {
1299
- var that = this;
1300
- if (!data || this.options.disabled) {
1301
- return;
1302
- }
1303
- if (data.fileInput && !data.files) {
1304
- this._getFileInputFiles(data.fileInput).always(function (files) {
1305
- data.files = files;
1306
- that._onAdd(null, data);
1307
- });
1308
- } else {
1309
- data.files = $.makeArray(data.files);
1310
- this._onAdd(null, data);
1311
- }
1312
- },
1313
-
1314
- // This method is exposed to the widget API and allows sending files
1315
- // using the fileupload API. The data parameter accepts an object which
1316
- // must have a files or fileInput property and can contain additional options:
1317
- // .fileupload('send', {files: filesList});
1318
- // The method returns a Promise object for the file upload call.
1319
- send: function (data) {
1320
- if (data && !this.options.disabled) {
1321
- if (data.fileInput && !data.files) {
1322
- var that = this,
1323
- dfd = $.Deferred(),
1324
- promise = dfd.promise(),
1325
- jqXHR,
1326
- aborted;
1327
- promise.abort = function () {
1328
- aborted = true;
1329
- if (jqXHR) {
1330
- return jqXHR.abort();
1331
- }
1332
- dfd.reject(null, 'abort', 'abort');
1333
- return promise;
1334
- };
1335
- this._getFileInputFiles(data.fileInput).always(
1336
- function (files) {
1337
- if (aborted) {
1338
- return;
1339
- }
1340
- if (!files.length) {
1341
- dfd.reject();
1342
- return;
1343
- }
1344
- data.files = files;
1345
- jqXHR = that._onSend(null, data).then(
1346
- function (result, textStatus, jqXHR) {
1347
- dfd.resolve(result, textStatus, jqXHR);
1348
- },
1349
- function (jqXHR, textStatus, errorThrown) {
1350
- dfd.reject(jqXHR, textStatus, errorThrown);
1351
- }
1352
- );
1353
- }
1354
- );
1355
- return this._enhancePromise(promise);
1356
- }
1357
- data.files = $.makeArray(data.files);
1358
- if (data.files.length) {
1359
- return this._onSend(null, data);
1360
- }
1361
- }
1362
- return this._getXHRPromise(false, data && data.context);
1363
- }
1364
-
1365
- });
1366
-
1367
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/fileupload/jquery.iframe-transport.js DELETED
@@ -1,208 +0,0 @@
1
- /*
2
- * jQuery Iframe Transport Plugin 1.8.0
3
- * https://github.com/blueimp/jQuery-File-Upload
4
- *
5
- * Copyright 2011, Sebastian Tschan
6
- * https://blueimp.net
7
- *
8
- * Licensed under the MIT license:
9
- * http://www.opensource.org/licenses/MIT
10
- */
11
-
12
- /*jslint unparam: true, nomen: true */
13
- /*global define, window, document */
14
-
15
- (function (factory) {
16
- 'use strict';
17
- if (typeof define === 'function' && define.amd) {
18
- // Register as an anonymous AMD module:
19
- define(['jquery'], factory);
20
- } else {
21
- // Browser globals:
22
- factory(window.jQuery);
23
- }
24
- }(function ($) {
25
- 'use strict';
26
-
27
- // Helper variable to create unique names for the transport iframes:
28
- var counter = 0;
29
-
30
- // The iframe transport accepts four additional options:
31
- // options.fileInput: a jQuery collection of file input fields
32
- // options.paramName: the parameter name for the file form data,
33
- // overrides the name property of the file input field(s),
34
- // can be a string or an array of strings.
35
- // options.formData: an array of objects with name and value properties,
36
- // equivalent to the return data of .serializeArray(), e.g.:
37
- // [{name: 'a', value: 1}, {name: 'b', value: 2}]
38
- // options.initialIframeSrc: the URL of the initial iframe src,
39
- // by default set to "javascript:false;"
40
- $.ajaxTransport('iframe', function (options) {
41
- if (options.async) {
42
- // javascript:false as initial iframe src
43
- // prevents warning popups on HTTPS in IE6:
44
- var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',
45
- form,
46
- iframe,
47
- addParamChar;
48
- return {
49
- send: function (_, completeCallback) {
50
- form = $('<form style="display:none;"></form>');
51
- form.attr('accept-charset', options.formAcceptCharset);
52
- addParamChar = /\?/.test(options.url) ? '&' : '?';
53
- // XDomainRequest only supports GET and POST:
54
- if (options.type === 'DELETE') {
55
- options.url = options.url + addParamChar + '_method=DELETE';
56
- options.type = 'POST';
57
- } else if (options.type === 'PUT') {
58
- options.url = options.url + addParamChar + '_method=PUT';
59
- options.type = 'POST';
60
- } else if (options.type === 'PATCH') {
61
- options.url = options.url + addParamChar + '_method=PATCH';
62
- options.type = 'POST';
63
- }
64
- // IE versions below IE8 cannot set the name property of
65
- // elements that have already been added to the DOM,
66
- // so we set the name along with the iframe HTML markup:
67
- counter += 1;
68
- iframe = $(
69
- '<iframe src="' + initialIframeSrc +
70
- '" name="iframe-transport-' + counter + '"></iframe>'
71
- ).bind('load', function () {
72
- var fileInputClones,
73
- paramNames = $.isArray(options.paramName) ?
74
- options.paramName : [options.paramName];
75
- iframe
76
- .unbind('load')
77
- .bind('load', function () {
78
- var response;
79
- // Wrap in a try/catch block to catch exceptions thrown
80
- // when trying to access cross-domain iframe contents:
81
- try {
82
- response = iframe.contents();
83
- // Google Chrome and Firefox do not throw an
84
- // exception when calling iframe.contents() on
85
- // cross-domain requests, so we unify the response:
86
- if (!response.length || !response[0].firstChild) {
87
- throw new Error();
88
- }
89
- } catch (e) {
90
- response = undefined;
91
- }
92
- // The complete callback returns the
93
- // iframe content document as response object:
94
- completeCallback(
95
- 200,
96
- 'success',
97
- {'iframe': response}
98
- );
99
- // Fix for IE endless progress bar activity bug
100
- // (happens on form submits to iframe targets):
101
- $('<iframe src="' + initialIframeSrc + '"></iframe>')
102
- .appendTo(form);
103
- window.setTimeout(function () {
104
- // Removing the form in a setTimeout call
105
- // allows Chrome's developer tools to display
106
- // the response result
107
- form.remove();
108
- }, 0);
109
- });
110
- form
111
- .prop('target', iframe.prop('name'))
112
- .prop('action', options.url)
113
- .prop('method', options.type);
114
- if (options.formData) {
115
- $.each(options.formData, function (index, field) {
116
- $('<input type="hidden"/>')
117
- .prop('name', field.name)
118
- .val(field.value)
119
- .appendTo(form);
120
- });
121
- }
122
- if (options.fileInput && options.fileInput.length &&
123
- options.type === 'POST') {
124
- fileInputClones = options.fileInput.clone();
125
- // Insert a clone for each file input field:
126
- options.fileInput.after(function (index) {
127
- return fileInputClones[index];
128
- });
129
- if (options.paramName) {
130
- options.fileInput.each(function (index) {
131
- $(this).prop(
132
- 'name',
133
- paramNames[index] || options.paramName
134
- );
135
- });
136
- }
137
- // Appending the file input fields to the hidden form
138
- // removes them from their original location:
139
- form
140
- .append(options.fileInput)
141
- .prop('enctype', 'multipart/form-data')
142
- // enctype must be set as encoding for IE:
143
- .prop('encoding', 'multipart/form-data');
144
- }
145
- form.submit();
146
- // Insert the file input fields at their original location
147
- // by replacing the clones with the originals:
148
- if (fileInputClones && fileInputClones.length) {
149
- options.fileInput.each(function (index, input) {
150
- var clone = $(fileInputClones[index]);
151
- $(input).prop('name', clone.prop('name'));
152
- clone.replaceWith(input);
153
- });
154
- }
155
- });
156
- form.append(iframe).appendTo(document.body);
157
- },
158
- abort: function () {
159
- if (iframe) {
160
- // javascript:false as iframe src aborts the request
161
- // and prevents warning popups on HTTPS in IE6.
162
- // concat is used to avoid the "Script URL" JSLint error:
163
- iframe
164
- .unbind('load')
165
- .prop('src', initialIframeSrc);
166
- }
167
- if (form) {
168
- form.remove();
169
- }
170
- }
171
- };
172
- }
173
- });
174
-
175
- // The iframe transport returns the iframe content document as response.
176
- // The following adds converters from iframe to text, json, html, xml
177
- // and script.
178
- // Please note that the Content-Type for JSON responses has to be text/plain
179
- // or text/html, if the browser doesn't include application/json in the
180
- // Accept header, else IE will show a download dialog.
181
- // The Content-Type for XML responses on the other hand has to be always
182
- // application/xml or text/xml, so IE properly parses the XML response.
183
- // See also
184
- // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
185
- $.ajaxSetup({
186
- converters: {
187
- 'iframe text': function (iframe) {
188
- return iframe && $(iframe[0].body).text();
189
- },
190
- 'iframe json': function (iframe) {
191
- return iframe && $.parseJSON($(iframe[0].body).text());
192
- },
193
- 'iframe html': function (iframe) {
194
- return iframe && $(iframe[0].body).html();
195
- },
196
- 'iframe xml': function (iframe) {
197
- var xmlDoc = iframe && iframe[0];
198
- return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :
199
- $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
200
- $(xmlDoc.body).html());
201
- },
202
- 'iframe script': function (iframe) {
203
- return iframe && $.globalEval($(iframe[0].body).text());
204
- }
205
- }
206
- });
207
-
208
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/icheck/icheck.min.js DELETED
@@ -1,11 +0,0 @@
1
- /*! iCheck v1.0.2 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
2
- (function(f){function A(a,b,d){var c=a[0],g=/er/.test(d)?_indeterminate:/bl/.test(d)?n:k,e=d==_update?{checked:c[k],disabled:c[n],indeterminate:"true"==a.attr(_indeterminate)||"false"==a.attr(_determinate)}:c[g];if(/^(ch|di|in)/.test(d)&&!e)x(a,g);else if(/^(un|en|de)/.test(d)&&e)q(a,g);else if(d==_update)for(var f in e)e[f]?x(a,f,!0):q(a,f,!0);else if(!b||"toggle"==d){if(!b)a[_callback]("ifClicked");e?c[_type]!==r&&q(a,g):x(a,g)}}function x(a,b,d){var c=a[0],g=a.parent(),e=b==k,u=b==_indeterminate,
3
- v=b==n,s=u?_determinate:e?y:"enabled",F=l(a,s+t(c[_type])),B=l(a,b+t(c[_type]));if(!0!==c[b]){if(!d&&b==k&&c[_type]==r&&c.name){var w=a.closest("form"),p='input[name="'+c.name+'"]',p=w.length?w.find(p):f(p);p.each(function(){this!==c&&f(this).data(m)&&q(f(this),b)})}u?(c[b]=!0,c[k]&&q(a,k,"force")):(d||(c[b]=!0),e&&c[_indeterminate]&&q(a,_indeterminate,!1));D(a,e,b,d)}c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"default");g[_add](B||l(a,b)||"");g.attr("role")&&!u&&g.attr("aria-"+(v?n:k),"true");
4
- g[_remove](F||l(a,s)||"")}function q(a,b,d){var c=a[0],g=a.parent(),e=b==k,f=b==_indeterminate,m=b==n,s=f?_determinate:e?y:"enabled",q=l(a,s+t(c[_type])),r=l(a,b+t(c[_type]));if(!1!==c[b]){if(f||!d||"force"==d)c[b]=!1;D(a,e,s,d)}!c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"pointer");g[_remove](r||l(a,b)||"");g.attr("role")&&!f&&g.attr("aria-"+(m?n:k),"false");g[_add](q||l(a,s)||"")}function E(a,b){if(a.data(m)){a.parent().html(a.attr("style",a.data(m).s||""));if(b)a[_callback](b);a.off(".i").unwrap();
5
- f(_label+'[for="'+a[0].id+'"]').add(a.closest(_label)).off(".i")}}function l(a,b,f){if(a.data(m))return a.data(m).o[b+(f?"":"Class")]}function t(a){return a.charAt(0).toUpperCase()+a.slice(1)}function D(a,b,f,c){if(!c){if(b)a[_callback]("ifToggled");a[_callback]("ifChanged")[_callback]("if"+t(f))}}var m="iCheck",C=m+"-helper",r="radio",k="checked",y="un"+k,n="disabled";_determinate="determinate";_indeterminate="in"+_determinate;_update="update";_type="type";_click="click";_touch="touchbegin.i touchend.i";
6
- _add="addClass";_remove="removeClass";_callback="trigger";_label="label";_cursor="cursor";_mobile=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);f.fn[m]=function(a,b){var d='input[type="checkbox"], input[type="'+r+'"]',c=f(),g=function(a){a.each(function(){var a=f(this);c=a.is(d)?c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),g(this),c.each(function(){var c=
7
- f(this);"destroy"==a?E(c,"ifDestroyed"):A(c,!0,a);f.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var e=f.extend({checkedClass:k,disabledClass:n,indeterminateClass:_indeterminate,labelHover:!0},a),l=e.handle,v=e.hoverClass||"hover",s=e.focusClass||"focus",t=e.activeClass||"active",B=!!e.labelHover,w=e.labelHoverClass||"hover",p=(""+e.increaseArea).replace("%","")|0;if("checkbox"==l||l==r)d='input[type="'+l+'"]';-50>p&&(p=-50);g(this);return c.each(function(){var a=f(this);E(a);var c=this,
8
- b=c.id,g=-p+"%",d=100+2*p+"%",d={position:"absolute",top:g,left:g,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},g=_mobile?{position:"absolute",visibility:"hidden"}:p?d:{position:"absolute",opacity:0},l="checkbox"==c[_type]?e.checkboxClass||"icheckbox":e.radioClass||"i"+r,z=f(_label+'[for="'+b+'"]').add(a.closest(_label)),u=!!e.aria,y=m+"-"+Math.random().toString(36).substr(2,6),h='<div class="'+l+'" '+(u?'role="'+c[_type]+'" ':"");u&&z.each(function(){h+=
9
- 'aria-labelledby="';this.id?h+=this.id:(this.id=y,h+=y);h+='"'});h=a.wrap(h+"/>")[_callback]("ifCreated").parent().append(e.insert);d=f('<ins class="'+C+'"/>').css(d).appendTo(h);a.data(m,{o:e,s:a.attr("style")}).css(g);e.inheritClass&&h[_add](c.className||"");e.inheritID&&b&&h.attr("id",m+"-"+b);"static"==h.css("position")&&h.css("position","relative");A(a,!0,_update);if(z.length)z.on(_click+".i mouseover.i mouseout.i "+_touch,function(b){var d=b[_type],e=f(this);if(!c[n]){if(d==_click){if(f(b.target).is("a"))return;
10
- A(a,!1,!0)}else B&&(/ut|nd/.test(d)?(h[_remove](v),e[_remove](w)):(h[_add](v),e[_add](w)));if(_mobile)b.stopPropagation();else return!1}});a.on(_click+".i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[_type];b=b.keyCode;if(d==_click)return!1;if("keydown"==d&&32==b)return c[_type]==r&&c[k]||(c[k]?q(a,k):x(a,k)),!1;if("keyup"==d&&c[_type]==r)!c[k]&&x(a,k);else if(/us|ur/.test(d))h["blur"==d?_remove:_add](s)});d.on(_click+" mousedown mouseup mouseover mouseout "+_touch,function(b){var d=
11
- b[_type],e=/wn|up/.test(d)?t:v;if(!c[n]){if(d==_click)A(a,!1,!0);else{if(/wn|er|in/.test(d))h[_add](e);else h[_remove](e+" "+t);if(z.length&&B&&e==v)z[/ut|nd/.test(d)?_remove:_add](w)}if(_mobile)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto);
 
 
 
 
 
 
 
 
 
 
 
assets/js/image-picker/image-picker.min.js DELETED
@@ -1,7 +0,0 @@
1
- // Image Picker
2
- // by Rodrigo Vera
3
- //
4
- // Version 0.2.4
5
- // Full source at https://github.com/rvera/image-picker
6
- // MIT License, https://github.com/rvera/image-picker/blob/master/LICENSE
7
- (function(){var t,e,i,s,l=function(t,e){return function(){return t.apply(e,arguments)}},n=[].indexOf||function(t){for(var e=0,i=this.length;i>e;e++)if(e in this&&this[e]===t)return e;return-1};jQuery.fn.extend({imagepicker:function(e){return null==e&&(e={}),this.each(function(){var i;return i=jQuery(this),i.data("picker")&&i.data("picker").destroy(),i.data("picker",new t(this,s(e))),null!=e.initialized?e.initialized.call(i.data("picker")):void 0})}}),s=function(t){var e;return e={hide_select:!0,show_label:!1,initialized:void 0,changed:void 0,clicked:void 0,selected:void 0,limit:void 0,limit_reached:void 0},jQuery.extend(e,t)},i=function(t,e){return 0===jQuery(t).not(e).length&&0===jQuery(e).not(t).length},t=function(){function t(t,e){this.opts=null!=e?e:{},this.sync_picker_with_select=l(this.sync_picker_with_select,this),this.select=jQuery(t),this.multiple="multiple"===this.select.attr("multiple"),null!=this.select.data("limit")&&(this.opts.limit=parseInt(this.select.data("limit"))),this.build_and_append_picker()}return t.prototype.destroy=function(){var t,e,i,s;for(s=this.picker_options,e=0,i=s.length;i>e;e++)t=s[e],t.destroy();return this.picker.remove(),this.select.unbind("change"),this.select.removeData("picker"),this.select.show()},t.prototype.build_and_append_picker=function(){var t=this;return this.opts.hide_select&&this.select.hide(),this.select.change(function(){return t.sync_picker_with_select()}),null!=this.picker&&this.picker.remove(),this.create_picker(),this.select.after(this.picker),this.sync_picker_with_select()},t.prototype.sync_picker_with_select=function(){var t,e,i,s,l;for(s=this.picker_options,l=[],e=0,i=s.length;i>e;e++)t=s[e],t.is_selected()?l.push(t.mark_as_selected()):l.push(t.unmark_as_selected());return l},t.prototype.create_picker=function(){return this.picker=jQuery("<ul class='thumbnails image_picker_selector'></ul>"),this.picker_options=[],this.recursively_parse_option_groups(this.select,this.picker),this.picker},t.prototype.recursively_parse_option_groups=function(t,i){var s,l,n,r,c,o,h,a,p,u;for(a=t.children("optgroup"),r=0,o=a.length;o>r;r++)n=a[r],n=jQuery(n),s=jQuery("<ul></ul>"),s.append(jQuery("<li class='group_title'>"+n.attr("label")+"</li>")),i.append(jQuery("<li>").append(s)),this.recursively_parse_option_groups(n,s);for(p=function(){var i,s,n,r;for(n=t.children("option"),r=[],i=0,s=n.length;s>i;i++)l=n[i],r.push(new e(l,this,this.opts));return r}.call(this),u=[],c=0,h=p.length;h>c;c++)l=p[c],this.picker_options.push(l),l.has_image()&&u.push(i.append(l.node));return u},t.prototype.has_implicit_blanks=function(){var t;return function(){var e,i,s,l;for(s=this.picker_options,l=[],e=0,i=s.length;i>e;e++)t=s[e],t.is_blank()&&!t.has_image()&&l.push(t);return l}.call(this).length>0},t.prototype.selected_values=function(){return this.multiple?this.select.val()||[]:[this.select.val()]},t.prototype.toggle=function(t){var e,s,l;return s=this.selected_values(),l=""+t.value(),this.multiple?n.call(this.selected_values(),l)>=0?(e=this.selected_values(),e.splice(jQuery.inArray(l,s),1),this.select.val([]),this.select.val(e)):null!=this.opts.limit&&this.selected_values().length>=this.opts.limit?null!=this.opts.limit_reached&&this.opts.limit_reached.call(this.select):this.select.val(this.selected_values().concat(l)):this.has_implicit_blanks()&&t.is_selected()?this.select.val(""):this.select.val(l),i(s,this.selected_values())||(this.select.change(),null==this.opts.changed)?void 0:this.opts.changed.call(this.select,s,this.selected_values())},t}(),e=function(){function t(t,e,i){this.picker=e,this.opts=null!=i?i:{},this.clicked=l(this.clicked,this),this.option=jQuery(t),this.create_node()}return t.prototype.destroy=function(){return this.node.find(".thumbnail").unbind()},t.prototype.has_image=function(){return null!=this.option.data("img-src")},t.prototype.is_blank=function(){return!(null!=this.value()&&""!==this.value())},t.prototype.is_selected=function(){var t;return t=this.picker.select.val(),this.picker.multiple?jQuery.inArray(this.value(),t)>=0:this.value()===t},t.prototype.mark_as_selected=function(){return this.node.find(".thumbnail").addClass("selected")},t.prototype.unmark_as_selected=function(){return this.node.find(".thumbnail").removeClass("selected")},t.prototype.value=function(){return this.option.val()},t.prototype.label=function(){return this.option.data("img-label")?this.option.data("img-label"):this.option.text()},t.prototype.clicked=function(){return this.picker.toggle(this),null!=this.opts.clicked&&this.opts.clicked.call(this.picker.select,this),null!=this.opts.selected&&this.is_selected()?this.opts.selected.call(this.picker.select,this):void 0},t.prototype.create_node=function(){var t,e;return this.node=jQuery("<li/>"),t=jQuery("<img class='image_picker_image'/>"),t.attr("src",this.option.data("img-src")),e=jQuery("<div class='thumbnail'>"),e.click({option:this},function(t){return t.data.option.clicked()}),e.append(t),this.opts.show_label&&e.append(jQuery("<p/>").html(this.label())),this.node.append(e),this.node},t}()}).call(this);
 
 
 
 
 
 
 
assets/js/jquery-datatables/jquery.dataTables.rowGrouping.min.js CHANGED
@@ -1 +1,693 @@
1
- !function(a){a.fn.columnFilter=function(b){function m(a,b,c,d,e){if("undefined"==typeof b)return new Array;"undefined"==typeof c&&(c=!0),"undefined"==typeof d&&(d=!0),"undefined"==typeof e&&(e=!0);var f;f=1==d?a.aiDisplay:a.aiDisplayMaster;for(var g=new Array,h=0,i=f.length;h<i;h++){var j=f[h],k=x.fnGetData(j),l=k[b];1==e&&0==l.length||1==c&&jQuery.inArray(l,g)>-1||g.push(l)}return g.sort()}function n(a){return z.bUseColVis?a:x.fnSettings().oApi._fnVisibleToColumnIndex(x.fnSettings(),a)}function o(b,g,h,i,j,k,m){var o="text_filter";i&&(o="number_filter"),e=e.replace(/(^\s*)|(\s*$)/g,"");var p=b.fnSettings().aoPreSearchCols[d].sSearch,q="search_init ",r=e;""!=p&&"^"!=p&&(r=i&&"^"==p.charAt(0)?p.substr(1):p,q="");var s=a('<input type="text" class="'+q+o+'" placeholder="'+r+'" />');void 0!=k&&k!=-1&&s.attr("maxlength",k),f.html(s),i?f.wrapInner('<span class="filter_column filter_number" />'):f.wrapInner('<span class="filter_column filter_text" />'),c[d]=e;var t=d;i&&!b.fnSettings().oFeatures.bServerSide?s.keyup(function(){b.fnFilter("^"+this.value,n(t),!0,!1),l()}):s.keyup(function(){if(b.fnSettings().oFeatures.bServerSide&&0!=j){var d=(b.fnSettings().aoPreSearchCols[t].sSearch,a(this).data("dt-iLastFilterLength"));"undefined"==typeof d&&(d=0);var e=this.value.length;if(Math.abs(e-d)<j)return;a(this).data("dt-iLastFilterLength",e)}b.fnFilter(this.value,n(t),g,h),l()}),s.focus(function(){a(this).hasClass("search_init")&&(a(this).removeClass("search_init"),this.value="")}),s.blur(function(){""==this.value&&a(this).addClass("search_init")}),""!=m&&(jQuery.isArray(m)&&(m=m[0]),jQuery(s).val(m),jQuery(s).keyup())}function p(b,c){var e="",g="";""!=c&&(jQuery.isArray(c)?(e=c[0],c[1]&&(g=c[1])):e=c[0]),f.html("");var h=b.attr("id")+"_range_from_"+d,j=a('<input type="text" class="number_range_filter" id="'+h+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.from+'" />');f.append(j);var k=b.attr("id")+"_range_to_"+d,m=a('<input type="text" class="number_range_filter" id="'+k+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.to+'" />');f.append(m),f.wrapInner('<span class="filter_column filter_number_range" />');var o=d;i.push(d),b.dataTableExt.afnFiltering.push(function(c,d,e){if(b.attr("id")!=c.sTableId)return!0;var f=a.parseJSON(a("#"+b.data("described-by")).val()),g="undefined"!=typeof f.number_format?parseInt(f.number_format):1;if(null==document.getElementById(h))return!0;var i=1==g?/\./g:/,/g,j=document.getElementById(h).value.replace(i,""),l=document.getElementById(k).value.replace(i,""),m="-"==d[n(o)]?"0":d[n(o)].replace(i,"");return 1==g&&(j=j.replace(/,/g,"."),l=l.replace(/,/g,"."),m=m.replace(/,/g,".")),""!==j&&(j=1*j),""!==l&&(l=1*l),m=1*m,""===j&&""===l||(""===j&&m<=l||(j<=m&&""===l||j<=m&&m<=l))}),a("#"+h+",#"+k,f).keyup(function(){var a=1*document.getElementById(h).value,c=1*document.getElementById(k).value;0!=a&&0!=c&&a>c||(b.fnDraw(),l())}),""!=e&&(jQuery(j).val(e),jQuery(document).ready(function(){jQuery(j).keyup()})),""!=g&&(jQuery(m).val(g),jQuery(document).ready(function(){jQuery(m).keyup()}))}function q(b,c){var e="",h="";""!=c&&(jQuery.isArray(c)?(e=c[0],c[1]&&(h=c[1])):e=c[0]);var j=g.split(/[}{]/),k=a.parseJSON(a("#"+b.data("described-by")).val()),m=k.datepickFormat.replace(/y/g,"yy").replace(/Y/g,"yyyy").replace(/M/g,"mmm");f.html("");var o=b.attr("id")+"_range_from_"+d,p=a('<input type="text" class="date_range_filter" id="'+o+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.from+'" />'),q=b.attr("id")+"_range_to_"+d,r=a('<input type="text" class="date_range_filter" id="'+q+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.to+'" />');for(ti=0;ti<j.length;ti++)j[ti]==z.sDateFromToken?f.append(p):j[ti]==z.sDateToToken&&f.append(r);f.wrapInner('<span class="filter_column filter_date_range" />'),p.pickadate({format:m,formatSubmit:m,selectYears:!0,selectMonths:!0}),r.pickadate({format:m,formatSubmit:m,selectYears:!0,selectMonths:!0});var s=d;i.push(d),b.dataTableExt.afnFiltering.push(function(c,d,e){if(b.attr("id")!=c.sTableId)return!0;var f=a.datepicker.parseDate(a.datepicker.regional[""].dateFormat,p.val()),g=a.datepicker.parseDate(a.datepicker.regional[""].dateFormat,r.val());if(null==f&&null==g)return!0;var h=null;try{if(null==d[n(s)]||""==d[n(s)])return!1;h=a.datepicker.parseDate(a.datepicker.regional[""].dateFormat,d[n(s)])}catch(a){return!1}return null!=h&&(null==f&&h<=g||(f<=h&&null==g||f<=h&&h<=g))}),a("#"+o+",#"+q,f).change(function(){b.fnDraw(),l()}),""!=e&&(jQuery(p).val(e),jQuery(document).ready(function(){jQuery(p).change()})),""!=h&&(jQuery(r).val(h),jQuery(document).ready(function(){jQuery(r).change()}))}function r(b,c){var e="",h="";""!=c&&(jQuery.isArray(c)?(e=c[0],c[1]&&(h=c[1])):e=c[0]);var j=g.split(/[}{]/),k=a.parseJSON(a("#"+b.data("described-by")).val()),m=k.datepickFormat.replace(/y/g,"yy").replace(/Y/g,"yyyy").replace(/M/g,"mmm"),o=k.timeFormat.replace("H","HH"),p=o.replace("i","mm"),q=parseInt(k.timepickRange)?parseInt(k.timepickRange):5;f.html("");var r=b.attr("id")+"_range_from_"+d,s='<input type="text" class="date_range_filter" id="'+r+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.from+'" />';s+='<div style="display: none !important;"><input type="text" id="'+r+'_date" class="date" rel="'+d+'"/>',s+='<input type="text" id="'+r+'_time" class="time" rel="'+d+'"/></div>';var t=a(s),u=b.attr("id")+"_range_to_"+d,v='<input type="text" class="date_range_filter" id="'+u+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.to+'" />';v+='<div style="display: none !important;"><input type="text" id="'+u+'_date" class="date" rel="'+d+'"/>',v+='<input type="text" id="'+u+'_time" class="time" rel="'+d+'"/></div>';var w=a(v);for(ti=0;ti<j.length;ti++)j[ti]==z.sDateFromToken?f.append(t):j[ti]==z.sDateToToken&&f.append(w);f.wrapInner('<span class="filter_column filter_date_range" />');var x=t.find("input.date").pickadate({format:m,formatSubmit:m,selectYears:!0,selectMonths:!0,container:t.parent(),onSet:function(a){"clear"in a&&t.val("").change(),"select"in a&&y.open()}}).pickadate("picker"),y=t.find("input.time").pickatime({container:t.parent(),interval:q,format:o,onRender:function(){a("<button>"+wpdatatables_frontend_strings.back_to_date+"</button>").on("click",function(){y.close(),x.open()}).prependTo(this.$root.find(".picker__box"))},onSet:function(a){"select"in a&&t.val(x.get()+" "+y.get()).change(),"clear"in a&&t.val("").change()}}).pickatime("picker");t.on("focus",function(){x.open()}).on("click",function(a){a.preventDefault(),a.stopImmediatePropagation(),x.open()});var A=w.find("input.date").pickadate({format:m,formatSubmit:m,selectYears:!0,selectMonths:!0,container:w.parent(),onSet:function(a){"clear"in a&&w.val("").change(),"select"in a&&B.open()}}).pickadate("picker"),B=w.find("input.time").pickatime({container:w.parent(),format:o,interval:q,onRender:function(){a("<button>"+wpdatatables_frontend_strings.back_to_date+"</button>").on("click",function(){B.close(),A.open()}).prependTo(this.$root.find(".picker__box"))},onSet:function(a){"select"in a&&w.val(A.get()+" "+B.get()).change(),"clear"in a&&w.val("").change()}}).pickatime("picker");w.on("focus",function(){A.open()}).on("click",function(a){a.preventDefault(),a.stopImmediatePropagation(),A.open()});var C=d;i.push(d),b.dataTableExt.afnFiltering.push(function(a,c,d){if(b.attr("id")!=a.sTableId)return!0;var e=moment(t.val(),m.toUpperCase()+" "+p).toDate(),f=moment(w.val(),m.toUpperCase()+" "+p).toDate();if("Invalid Date"==e&&"Invalid Date"==f)return!0;var g=null;try{if(null==c[n(C)]||""==c[n(C)])return!1;g=moment(c[n(C)],m.toUpperCase()+" "+p).toDate()}catch(a){return!1}return"Invalid Date"!=g&&("Invalid Date"==e&&g<=f||(e<=g&&"Invalid Date"==f||e<=g&&g<=f))}),a("#"+r+",#"+u,f).change(function(){b.fnDraw(),l()}),""!=e&&(jQuery(t).val(e),jQuery(document).ready(function(){jQuery(t).change()})),""!=h&&(jQuery(w).val(h),jQuery(document).ready(function(){jQuery(w).change()}))}function s(b,c){var e="",h="";""!=c&&(jQuery.isArray(c)?(e=c[0],c[1]&&(h=c[1])):e=c[0]);var j=g.split(/[}{]/),k=a.parseJSON(a("#"+b.data("described-by")).val()),o=(k.datepickFormat.replace(/y/g,"yy").replace(/Y/g,"yyyy").replace(/M/g,"mmm"),k.timeFormat.replace("H","HH")),p=o.replace("i","mm"),q=parseInt(k.timepickRange)?parseInt(k.timepickRange):5;f.html("");var r=b.attr("id")+"_range_from_"+d,s='<input type="text" class="date_range_filter" id="'+r+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.from+'" />',t=a(s),u=b.attr("id")+"_range_to_"+d,v='<input type="text" class="date_range_filter" id="'+u+'" rel="'+d+'" placeholder="'+wpdatatables_frontend_strings.to+'" />',w=a(v);for(ti=0;ti<j.length;ti++)j[ti]==z.sDateFromToken?f.append(t):j[ti]==z.sDateToToken&&f.append(w);f.wrapInner('<span class="filter_column filter_date_range" />');var A=(t.pickatime({container:t.parent(),interval:q,format:o,onSet:function(a){t.change()}}).pickatime("picker"),w.pickatime({container:w.parent(),format:o,interval:q,onSet:function(a){w.change()}}).pickatime("picker"),d);i.push(d),b.dataTableExt.afnFiltering.push(function(a,c,d){if(b.attr("id")!=a.sTableId)return!0;var e=moment(t.val(),p).toDate(),f=moment(w.val(),p).toDate();if("Invalid Date"==e&&"Invalid Date"==f)return!0;var g=null;try{if(null==c[n(A)]||""==c[n(A)])return!1;g=moment(c[n(A)],p).toDate()}catch(a){return!1}return"Invalid Date"!=g&&("Invalid Date"==e&&g<=f||(e<=g&&"Invalid Date"==f||e<=g&&g<=f))}),a("#"+r+",#"+u,f).change(function(){b.fnDraw(),l()}),""!=e&&(jQuery(t).val(e),jQuery(document).ready(function(){jQuery(t).change()})),""!=h&&(jQuery(w).val(h),jQuery(document).ready(function(){jQuery(w).change()}))}function t(b,c,e,f,g,h,i,j){null==c&&(c=m(b.fnSettings(),e,!0,!1,!0));var n=b.fnSettings().aoPreSearchCols[d].sSearch;null!=n&&""!=n||(n=i),""!=j&&jQuery.isArray(j)&&(j=j[0]);var o='<select class="search_init select_filter"><option value="" class="search_init">'+g+"</option>",p=0,q=c.length;for(p=0;p<q;p++)if("object"!=typeof c[p]){var r="";escape(c[p])!=n&&escape(c[p])!=escape(n)||(r="selected "),""!=j&&escape(c[p])==escape(j)&&(r='selected= "selected" '),o+="<option "+r+' value="'+escape(c[p])+'">'+c[p]+"</option>"}else{var r="";h?(c[p].value==n&&(r='selected= "selected" '),""!=j&&c[p].value==j&&(r='selected= "selected" '),o+="<option "+r+'value="'+c[p].value+'">'+c[p].label+"</option>"):(escape(c[p].value)==n&&(r="selected "),""!=j&&c[p].value==j&&(r='selected= "selected" '),o+="<option "+r+'value="'+escape(c[p].value)+'">'+c[p].label+"</option>")}var s=a(o+"</select>");f.html(s),f.wrapInner('<span class="filter_column filter_select" />'),s.selecter(),s.change(function(){""!=a(this).val()?a(this).removeClass("search_init"):a(this).addClass("search_init"),h?b.fnFilter(a(this).val(),e,h):b.fnFilter(unescape(a(this).val()),e),l()}),s.css("display","none !important"),null!=n&&""!=n&&b.fnFilter(unescape(n),e),""!=j&&s.change()}function u(a,b,c,g,h){var i=a.fnSettings();null!=b||""==i.ajax||i.oFeatures.bServerSide||i.aoDrawCallback.push({fn:function(b,d,e){return function(){if(2==i.iDraw&&null!=i.ajax&&""!=i.ajax&&!i.oFeatures.bServerSide)return t(a,null,n(b),d,e,c,g)}}(d,f,e),sName:"column_filter_"+d}),t(a,b,n(d),f,e,c,g,h)}function v(b,c,g,h){jQuery.isArray(h)||(h=[h]),null==c&&(c=m(b.fnSettings(),d,!0,!0,!0));var k,i=d,j="",n=c.length,o=!0;"undefined"!=typeof g&&(o=!(!a(g).is("td")&&!a(g).is("th")));var p=e.replace("%","Perc").replace("&","AND").replace("$","DOL").replace("£","STERL").replace("@","AT").replace(/\s/g,"_").replace(" ","_");p=p.replace(/[^a-zA-Z 0-9]+/g,"");var q=wdtRandString(),r=e;null==z.sFilterButtonText&&void 0==z.sFilterButtonText||(r=z.sFilterButtonText);var t=12,u=Math.floor(n/t);n%t>0&&(u+=1);var v=100/u-2;1==u&&(v=20);var x='<div style="float:left; min-width: '+v+'%; " >';if(o){var A=b.attr("id")+p,B="chkBtnOpen"+A,C=A+"-flt-toggle";j+='<button id="'+B+'" class="checkbox_filter btn" > '+r+"</button>",j+='<div id="'+C+'" title="'+e+'" class="toggle-check ui-widget-content ui-corner-all" >',j+=x}for(k=0;k<n;k++){var p=wdtRandString(),D="";jQuery.inArray(c[k],h)!=-1&&(D='checked="checked" '),j+='<div class="wdt_checkbox_option"><input class="search_init checkbox_filter wdtFilterCheckbox" type="checkbox" id= "'+p+'" name= "'+q+"\" value='"+c[k]+"' "+D+' /> <label for="'+p+'">'+c[k]+"</label></div>",a(document).on("change","#"+p,function(){var c="",d="|",e=a('input:checkbox[name="'+q+'"]:checked').size();a('input:checkbox[name="'+q+'"]:checked').each(function(b){(0==b&&1==e||0!=b&&b==e-1)&&(d=""),c=c.replace(/^\s+|\s+$/g,""),c=c+"^"+a(this).val().replace(/\+/g,"\\+")+"$"+d,d="|"});for(var f=0;f<n;f++)""!=c?a("#"+p).removeClass("search_init"):a("#"+p).addClass("search_init");b.fnFilter(c,i,!0,!1),l()})}if(f.html(j),f.wrapInner('<span class="filter_column filter_checkbox" />'),a("input.wdtFilterCheckbox").iCheck({checkboxClass:"icheckbox_minimal",radioClass:"iradio_minimal",increaseArea:"20%"}).on("ifChanged",function(b){a(b.target).trigger("change")}),navigator.platform.indexOf("iPhone")==-1&&navigator.platform.indexOf("iPod")==-1||a("div.wdt_checkbox_option label").click(function(b){b.preventDefault(),b.stopImmediatePropagation(),a(this).parent().find("input").iCheck("toggle")}),a(document).ready(function(){for(var b in h)a('input.wdtFilterCheckbox[value="'+h[b]+'"]').change()}),o){var E=wdtDialog("",r);E.addClass("wdtFilterDialog"),a("#"+C).appendTo(E).wrap('<div class="wdtCheckboxModalWrap" />'),E.append('<button class="btn" id="wdt_checkbox_reset_'+E.attr("id")+'" href="#">Reset</button>'),E.append('<button class="btn" id="wdt_checkbox_close_'+E.attr("id")+'" href="#">OK</button>'),jQuery("#wdt_checkbox_close_"+E.attr("id")).click(function(a){a.preventDefault(),jQuery.remodal.lookup[E.data("remodal")].close()}),jQuery("#wdt_checkbox_reset_"+E.attr("id")).click(function(c){c.preventDefault(),a('input:checkbox[name="'+q+'"]:checked').each(function(b){a(this).attr("checked",!1).change().iCheck("update"),a(this).addClass("search_init")}),b.fnFilter("",i,!0,!1),l()}),a("#"+B).click(function(b){b.preventDefault(),jQuery.remodal.lookup[E.data("remodal")].open();a(this)})}var F=l;l=function(){a("#"+B);F()}}var c,d,e,f,g=wpdatatables_frontend_strings.from+" {from} "+wpdatatables_frontend_strings.to+" {to}",h=new Array,i=new Array,l=function(){},x=this,y={sPlaceHolder:"foot",sRangeSeparator:"~",iFilteringDelay:500,aoColumns:null,sRangeFormat:"From {from} to {to}",sDateFromToken:"from",sDateToToken:"to"},z=a.extend(y,b);return this.each(function(){if(x.fnSettings().oFeatures.bFilter){c=new Array;var b=x.fnSettings().aoFooter[0],k=x.fnSettings().nTFoot,l="tr";if("head:after"==z.sPlaceHolder){var m=a("tr:first",x.fnSettings().nTHead).detach();x.fnSettings().bSortCellsTop?(m.prependTo(a(x.fnSettings().nTHead)),b=x.fnSettings().aoHeader[1]):(m.appendTo(a(x.fnSettings().nTHead)),b=x.fnSettings().aoHeader[0]),l="tr:last",k=x.fnSettings().nTHead}else if("head:before"==z.sPlaceHolder){if(x.fnSettings().bSortCellsTop){var m=a("tr:first",x.fnSettings().nTHead).detach();m.appendTo(a(x.fnSettings().nTHead)),b=x.fnSettings().aoHeader[1]}else{var m=a("tr:first",x.fnSettings().nTHead).detach();m.appendTo(a(x.fnSettings().nTHead)),b=x.fnSettings().aoHeader[0]}l="tr:first",k=x.fnSettings().nTHead}for(a(b).each(function(b){d=b;var c={type:"text",bRegex:!1,bSmart:!0,iMaxLenght:-1,iFilterLength:0};if(null!=z.aoColumns){if(z.aoColumns.length<d||null==z.aoColumns[d])return;c=z.aoColumns[d]}if(e=a(a(this)[0].cell).text(),null==c.sSelector?f=a(a(this)[0].cell):(f=a(c.sSelector),0==f.length&&(f=a(a(this)[0].cell))),null!=c)switch(g=null!=c.sRangeFormat?c.sRangeFormat:z.sRangeFormat,c.type){case"null":break;case"number":o(x,!0,!1,!0,c.iFilterLength,c.iMaxLenght,c.defaultValue);break;case"select":1!=c.bRegex&&(c.bRegex=!1),u(x,c.values,c.bRegex,c.selected,c.defaultValue);break;case"number-range":p(x,c.defaultValue);break;case"date-range":q(x,c.defaultValue);break;case"datetime-range":r(x,c.defaultValue);break;case"time-range":s(x,c.defaultValue);break;case"checkbox":v(x,c.values,c.sSelector,c.defaultValue);break;case"text":default:bRegex=null!=c.bRegex&&c.bRegex,bSmart=null!=c.bSmart&&c.bSmart,o(x,bRegex,bSmart,!1,c.iFilterLength,c.iMaxLenght,c.defaultValue)}}),j=0;j<i.length;j++){var n=function(){var b=x.attr("id");return"undefined"==typeof a("#"+b+"_range_from_"+i[j]).val()||"undefined"==typeof a("#"+b+"_range_to_"+i[j]).val()?z.sRangeSeparator:a("#"+b+"_range_from_"+i[j]).val()+z.sRangeSeparator+a("#"+b+"_range_to_"+i[j]).val()};h.push(n)}if(x.fnSettings().oFeatures.bServerSide){var t=x.fnSettings().fnServerData;if(x.fnSettings().ajax={url:x.fnSettings().ajax.url,type:"POST",data:function(a){for(j=0;j<i.length;j++){var b=i[j];a.columns[b].search.value=h[j]()}a.sRangeSeparator=z.sRangeSeparator}},null!=t)try{t(sSource,aoData,fnCallback,x.fnSettings())}catch(a){t(sSource,aoData,fnCallback)}}}})}}(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * File: jquery.dataTables.grouping.js
3
+ * Version: 1.2.11.
4
+ * Author: Jovan Popovic
5
+ *
6
+ * https://github.com/djwoodward/jquery-datatables-row-grouping/blob/master/media/js/jquery.dataTables.rowGrouping.js
7
+ * Originally hosted at https://code.google.com/p/jquery-datatables-row-grouping
8
+ *
9
+ * Copyright 2013 Jovan Popovic, all rights reserved.
10
+ *
11
+ * This source file is free software, under either the GPL v2 license or a
12
+ * BSD style license, as supplied with this software.
13
+ *
14
+ * This source file is distributed in the hope that it will be useful, but
15
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
+ * or FITNESS FOR A PARTICULAR PURPOSE.
17
+ * Parameters:
18
+ * @iGroupingColumnIndex Integer Index of the column that will be used for grouping - default 0
19
+ * @sGroupingColumnSortDirection Enumeration Sort direction of the group
20
+ * @iGroupingOrderByColumnIndex Integer Index of the column that will be used for ordering groups
21
+ * @sGroupingClass String Class that will be associated to the group row. Default - "group"
22
+ * @sGroupItemClass String Class that will be associated to the group row of group items. Default - "group-item"
23
+ * @bSetGroupingClassOnTR Boolean If set class will be set to the TR instead of the TD withing the grouping TR
24
+ * @bHideGroupingColumn Boolean Hide column used for grouping once results are grouped. Default - true
25
+ * @bHideGroupingOrderByColumn Boolean Hide column used for ordering groups once results are grouped. Default - true
26
+ * @sGroupBy Enumeration Type of grouping that should be applied. Values "name"(default), "letter", "year"
27
+ * @sGroupLabelPrefix String Prefix that will be added to each group cell
28
+ * @bExpandableGrouping Boolean Attach expand/collapse handlers to the grouping rows
29
+ * @bExpandSingleGroup Boolean Use accordon grouping
30
+ * @iExpandGroupOffset Integer Number of pixels to set scroll position above the currently selected group. If -1 scroll will be alligned to the table
31
+ * General settings
32
+ * @sDateFormat: "dd/MM/yyyy" String Date format used for grouping
33
+ * @sEmptyGroupLabel String Lable that will be placed as group if grouping cells are empty. Default "-"
34
+
35
+ * Parameters used in the second level grouping
36
+ * @iGroupingColumnIndex2 Integer Index of the secondary column that will be used for grouping - default 0
37
+ * @sGroupingColumnSortDirection2 Enumeration Sort direction of the secondary group
38
+ * @iGroupingOrderByColumnIndex2 Integer Index of the column that will be used for ordering secondary groups
39
+ * @sGroupingClass2 String Class that will be associated to the secondary group row. Default "subgroup"
40
+ * @sGroupItemClass2 String Class that will be associated to the secondary group row of group items. Default "subgroup-item"
41
+ * @bHideGroupingColumn2 Boolean Hide column used for secondary grouping once results are grouped. Default - true,
42
+ * @bHideGroupingOrderByColumn2 Boolean Hide column used for ordering secondary groups once results are grouped. Default - true,
43
+ * @sGroupBy2 Enumeration Type of grouping that should be applied to secondary column. Values "name"(default), "letter", "year",
44
+ * @sGroupLabelPrefix2 String Prefix that will be added to each secondary group cell
45
+ * @fnOnGrouped Function Function that is called when grouping is finished. Function has no parameters.
46
+ */
47
+ (function ($) {
48
+
49
+ "use strict";
50
+
51
+ $.fn.rowGrouping = function (options) {
52
+
53
+ function _fnOnGrouped() {
54
+
55
+ }
56
+
57
+ function _fnOnGroupCreated(oGroup, sGroup, iLevel) {
58
+ ///<summary>
59
+ ///Function called when a new grouping row is created(it should be overriden in properties)
60
+ ///</summary>
61
+ }
62
+
63
+ function _fnOnGroupCompleted(oGroup, sGroup, iLevel) {
64
+ ///<summary>
65
+ ///Function called when a new grouping row is created(it should be overriden in properties)
66
+ ///</summary>
67
+ }
68
+
69
+ function _getMonthName(iMonth) {
70
+ var asMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
71
+ return asMonths[iMonth - 1];
72
+ }
73
+
74
+ var defaults = {
75
+
76
+ iGroupingColumnIndex: 0,
77
+ sGroupingColumnSortDirection: "",
78
+ iGroupingOrderByColumnIndex: -1,
79
+ sGroupingClass: "group",
80
+ sGroupItemClass: "group-item",
81
+ bHideGroupingColumn: true,
82
+ bHideGroupingOrderByColumn: true,
83
+ sGroupBy: "name",
84
+ sGroupLabelPrefix: "",
85
+ fnGroupLabelFormat: function (label) { return label; },
86
+ bExpandableGrouping: false,
87
+ bExpandSingleGroup: false,
88
+ iExpandGroupOffset: 100,
89
+ asExpandedGroups: null,
90
+
91
+ sDateFormat: "dd/MM/yyyy",
92
+ sEmptyGroupLabel: "-",
93
+ bSetGroupingClassOnTR: false,
94
+
95
+ iGroupingColumnIndex2: -1,
96
+ sGroupingColumnSortDirection2: "",
97
+ iGroupingOrderByColumnIndex2: -1,
98
+ sGroupingClass2: "subgroup",
99
+ sGroupItemClass2: "subgroup-item",
100
+ bHideGroupingColumn2: true,
101
+ bHideGroupingOrderByColumn2: true,
102
+ sGroupBy2: "name",
103
+ sGroupLabelPrefix2: "",
104
+ fnGroupLabelFormat2: function (label) { return label; },
105
+ bExpandableGrouping2: false,
106
+
107
+ fnOnGrouped: _fnOnGrouped,
108
+
109
+ fnOnGroupCreated: _fnOnGroupCreated,
110
+ fnOnGroupCompleted: _fnOnGroupCompleted,
111
+
112
+ oHideEffect: null, // { method: "hide", duration: "fast", easing: "linear" },
113
+ oShowEffect: null,//{ method: "show", duration: "slow", easing: "linear" }
114
+
115
+ bUseFilteringForGrouping: false // This is still work in progress option
116
+ };
117
+ return this.each(function (index, elem) {
118
+
119
+ var oTable = $(elem).dataTable();
120
+
121
+ var aoGroups = new Array();
122
+ $(this).dataTableExt.aoGroups = aoGroups;
123
+
124
+ function fnCreateGroupRow(sGroupCleaned, sGroup, iColspan) {
125
+ var nGroup = document.createElement('tr');
126
+ var nCell = document.createElement('td');
127
+ nGroup.id = "group-id-" + oTable.attr("id") + "_" + sGroupCleaned;
128
+
129
+ var oGroup = { id: nGroup.id, key: sGroupCleaned, text: sGroup, level: 0, groupItemClass: ".group-item-" + sGroupCleaned, dataGroup: sGroupCleaned, aoSubgroups: new Array() };
130
+
131
+
132
+
133
+ if (properties.bSetGroupingClassOnTR) {
134
+ nGroup.className = properties.sGroupingClass + " " + sGroupCleaned;
135
+ } else {
136
+ nCell.className = properties.sGroupingClass + " " + sGroupCleaned;
137
+ }
138
+
139
+ nCell.colSpan = iColspan;
140
+ nCell.innerHTML = properties.sGroupLabelPrefix + properties.fnGroupLabelFormat(sGroup == "" ? properties.sEmptyGroupLabel : sGroup, oGroup );
141
+ if (properties.bExpandableGrouping) {
142
+
143
+ if (!_fnIsGroupCollapsed(sGroupCleaned)) {
144
+ nCell.className += " expanded-group";
145
+ oGroup.state = "expanded";
146
+ } else {
147
+ nCell.className += " collapsed-group";
148
+ oGroup.state = "collapsed";
149
+ }
150
+ nCell.className += " group-item-expander";
151
+ $(nCell).attr('data-group', oGroup.dataGroup); //Fix provided by mssskhalsa (Issue 5)
152
+ $(nCell).attr("data-group-level", oGroup.level);
153
+ $(nCell).click(_fnOnGroupClick);
154
+ }
155
+ nGroup.appendChild(nCell);
156
+ aoGroups[sGroupCleaned] = oGroup;
157
+ oGroup.nGroup = nGroup;
158
+ properties.fnOnGroupCreated(oGroup, sGroupCleaned, 1);
159
+ return oGroup;
160
+ }
161
+
162
+ function _fnCreateGroup2Row(sGroup2, sGroupLabel, iColspan, oParentGroup) {
163
+
164
+ var nGroup2 = document.createElement('tr');
165
+ nGroup2.id = oParentGroup.id + "_" + sGroup2;
166
+ var nCell2 = document.createElement('td');
167
+ var dataGroup = oParentGroup.dataGroup + '_' + sGroup2;
168
+
169
+ var oGroup = { id: nGroup2.id, key: sGroup2, text: sGroupLabel, level: oParentGroup.level + 1, groupItemClass: ".group-item-" + dataGroup,
170
+ dataGroup: dataGroup, aoSubgroups: new Array()
171
+ };
172
+
173
+ if (properties.bSetGroupingClassOnTR) {
174
+ nGroup2.className = properties.sGroupingClass2 + " " + sGroup2;
175
+ } else {
176
+ nCell2.className = properties.sGroupingClass2 + " " + sGroup2;
177
+ }
178
+
179
+ nCell2.colSpan = iColspan;
180
+ nCell2.innerHTML = properties.sGroupLabelPrefix2 + properties.fnGroupLabelFormat2(sGroupLabel == "" ? properties.sEmptyGroupLabel : sGroupLabel, oGroup);
181
+
182
+ if (properties.bExpandableGrouping) {
183
+
184
+ nGroup2.className += " group-item-" + oParentGroup.dataGroup;
185
+ }
186
+
187
+
188
+ if (properties.bExpandableGrouping && properties.bExpandableGrouping2) {
189
+
190
+ if (!_fnIsGroupCollapsed(oGroup.dataGroup)) {
191
+ nCell2.className += " expanded-group";
192
+ oGroup.state = "expanded";
193
+ } else {
194
+ nCell2.className += " collapsed-group";
195
+ oGroup.state = "collapsed";
196
+ }
197
+ nCell2.className += " group-item-expander";
198
+ $(nCell2).attr('data-group', oGroup.dataGroup);
199
+ $(nCell2).attr("data-group-level", oGroup.level);
200
+ $(nCell2).click(_fnOnGroupClick);
201
+ }
202
+
203
+ nGroup2.appendChild(nCell2);
204
+
205
+ oParentGroup.aoSubgroups[oGroup.dataGroup] = oGroup;
206
+ aoGroups[oGroup.dataGroup] = oGroup;
207
+ oGroup.nGroup = nGroup2;
208
+ properties.fnOnGroupCreated(oGroup, sGroup2, 2);
209
+ return oGroup;
210
+ }
211
+
212
+ function _fnIsGroupCollapsed(sGroup) {
213
+ if (aoGroups[sGroup] != null)
214
+ return (aoGroups[sGroup].state == "collapsed");
215
+ else
216
+ if (sGroup.indexOf("_") > -1)
217
+ true;
218
+ else
219
+ if(bInitialGrouping && (asExpandedGroups==null || asExpandedGroups.length == 0))
220
+ return false;// initially if asExpandedGroups is empty - no one is collapsed
221
+ else
222
+ return ($.inArray(sGroup, asExpandedGroups) == -1); //the last chance check asExpandedGroups
223
+ }
224
+
225
+ function _fnGetYear(x) {
226
+ if(x.length< (iYearIndex+iYearLength) )
227
+ return x;
228
+ else
229
+ return x.substr(iYearIndex, iYearLength);
230
+ }
231
+ function _fnGetGroupByName(x) {
232
+ return x;
233
+ }
234
+
235
+ function _fnGetGroupByLetter(x) {
236
+ return x.substr(0, 1);
237
+ }
238
+
239
+ function _fnGetGroupByYear(x) {
240
+ return _fnGetYear(x);
241
+ //return Date.parseExact(x, properties.sDateFormat).getFullYear();//slooooow
242
+ }
243
+
244
+ function _fnGetGroupByYearMonth(x) {
245
+ //var date = Date.parseExact(x, "dd/MM/yyyy");
246
+ //return date.getFullYear() + " / " + date.getMonthName();
247
+ //return x.substr(iYearIndex, iYearLength) + '/' + x.substr(iMonthIndex, iMonthLength);
248
+ return x.substr(iYearIndex, iYearLength) + ' ' + _getMonthName(x.substr(iMonthIndex, iMonthLength));
249
+ }
250
+
251
+ function _fnGetCleanedGroup(sGroup) {
252
+
253
+ if (typeof sGroup === "undefined" || sGroup === "") return properties.sEmptyGroupLabel;
254
+ return sGroup.toLowerCase().replace(/[^a-zA-Z0-9\u0080-\uFFFF]+/g, "-"); //fix for unicode characters (Issue 23)
255
+ //return sGroup.toLowerCase().replace(/\W+/g, "-"); //Fix provided by bmathews (Issue 7)
256
+ }
257
+
258
+ function _rowGroupingRowFilter(oSettings, aData, iDataIndex) {
259
+ ///<summary>Used to expand/collapse groups with DataTables filtering</summary>
260
+ if (oSettings.nTable.id !== oTable[0].id) return true;
261
+ var sColData = aData[properties.iGroupingColumnIndex];
262
+ if (typeof sColData === "undefined")
263
+ sColData = aData[oSettings.aoColumns[properties.iGroupingColumnIndex].mData];
264
+ if (_fnIsGroupCollapsed(_fnGetCleanedGroup(sColData))) {
265
+ if (oTable.fnIsOpen(oTable.fnGetNodes(iDataIndex)))
266
+ {
267
+ if (properties.fnOnRowClosed != null) {
268
+ properties.fnOnRowClosed(this); // $(this.cells[0].children[0]).attr('src', '../../Images/details.png');
269
+ }
270
+ oTable.fnClose(oTable.fnGetNodes(iDataIndex));
271
+ }
272
+ return false;
273
+ };
274
+ return true;
275
+ } //end of function _rowGroupingRowFilter
276
+
277
+
278
+ function fnExpandGroup(sGroup) {
279
+ ///<summary>Expand group if expanadable grouping is used</summary>
280
+
281
+ aoGroups[sGroup].state = "expanded";
282
+
283
+ $("td[data-group='" + sGroup + "']").removeClass("collapsed-group");
284
+ $("td[data-group='" + sGroup + "']").addClass("expanded-group");
285
+
286
+
287
+ if(properties.bUseFilteringForGrouping)
288
+ {
289
+ oTable.fnDraw();
290
+ return;//Because rows are expanded with _rowGroupingRowFilter function
291
+ }
292
+
293
+ if (jQuery.inArray(sGroup, asExpandedGroups)==-1)
294
+ asExpandedGroups.push(sGroup);
295
+
296
+ if (properties.oHideEffect != null)
297
+ $(".group-item-" + sGroup, oTable)
298
+ [properties.oShowEffect.method](properties.oShowEffect.duration,
299
+ properties.oShowEffect.easing,
300
+ function () { });
301
+ else
302
+ $(".group-item-" + sGroup, oTable).show();
303
+
304
+
305
+ } //end of function fnExpandGroup
306
+
307
+ function fnCollapseGroup(sGroup) {
308
+ ///<summary>Collapse group if expanadable grouping is used</summary>
309
+
310
+ aoGroups[sGroup].state = "collapsed";
311
+ $("td[data-group='" + sGroup + "']").removeClass("expanded-group");
312
+ $("td[data-group='" + sGroup + "']").addClass("collapsed-group");
313
+
314
+ if(properties.bUseFilteringForGrouping)
315
+ {
316
+ oTable.fnDraw();
317
+ return;//Because rows are expanded with _rowGroupingRowFilter function
318
+ }
319
+ //var index = $.inArray(sGroup, asExpandedGroups);
320
+ //asExpandedGroups.splice(index, 1);
321
+
322
+ $('.group-item-' + sGroup).each(function () {
323
+ //Issue 24 - Patch provided by Bob Graham
324
+ if (oTable.fnIsOpen(this)) {
325
+ if (properties.fnOnRowClosed != null) {
326
+ properties.fnOnRowClosed(this); // $(this.cells[0].children[0]).attr('src', '../../Images/details.png');
327
+ }
328
+ oTable.fnClose(this);
329
+ }
330
+ });
331
+
332
+ if (properties.oHideEffect != null)
333
+ $(".group-item-" + sGroup, oTable)
334
+ [properties.oHideEffect.method](properties.oHideEffect.duration,
335
+ properties.oHideEffect.easing,
336
+ function () { });
337
+ else
338
+ $(".group-item-" + sGroup, oTable).hide();
339
+
340
+ } //end of function fnCollapseGroup
341
+
342
+ function _fnOnGroupClick(e) {
343
+ ///<summary>
344
+ ///Function that is called when user click on the group cell in order to
345
+ ///expand of collapse group
346
+ ///</summary>
347
+
348
+ //var sGroup = $(this).attr("rel");
349
+ var sGroup = $(this).attr("data-group");
350
+ var iGroupLevel = $(this).attr("data-group-level");
351
+
352
+ var bIsExpanded = !_fnIsGroupCollapsed(sGroup);
353
+ if (properties.bExpandSingleGroup) {
354
+ if (!bIsExpanded) {
355
+ var sCurrentGroup = $("td.expanded-group").attr("data-group");
356
+ fnCollapseGroup(sCurrentGroup);
357
+ fnExpandGroup(sGroup);
358
+
359
+ if (properties.iExpandGroupOffset != -1) {
360
+ var position = $("#group-id-" + oTable.attr("id") + "_" + sGroup).offset().top - properties.iExpandGroupOffset;
361
+ window.scroll(0, position);
362
+ } else {
363
+ var position = oTable.offset().top;
364
+ window.scroll(0, position);
365
+ }
366
+ }
367
+ } else {
368
+ if (bIsExpanded) {
369
+ fnCollapseGroup(sGroup);
370
+ } else {
371
+ fnExpandGroup(sGroup);
372
+ }
373
+ }
374
+ e.preventDefault();
375
+
376
+ }; //end function _fnOnGroupClick
377
+
378
+
379
+ function _fnDrawCallBackWithGrouping (oSettings) {
380
+
381
+ if (oTable.fnSettings().oFeatures.bServerSide)
382
+ bInitialGrouping = true;
383
+ var bUseSecondaryGrouping = false;
384
+
385
+ if (properties.iGroupingColumnIndex2 != -1)
386
+ bUseSecondaryGrouping = true;
387
+
388
+ //-----Start grouping
389
+
390
+ if (oSettings.aiDisplayMaster.length == 0) { //aiDisplay
391
+ return;
392
+ }
393
+
394
+ var nTrs = $('tbody tr', oTable);
395
+ var iColspan = 0; //nTrs[0].getElementsByTagName('td').length;
396
+ for (var iColIndex = 0; iColIndex < oSettings.aoColumns.length; iColIndex++) {
397
+ if (oSettings.aoColumns[iColIndex].bVisible)
398
+ iColspan += 1;
399
+ }
400
+ var sLastGroup = null;
401
+ var sLastGroup2 = null;
402
+ if (oSettings.aiDisplay.length > 0) {
403
+ for (var i = 0; i < nTrs.length; i++) {
404
+
405
+
406
+ var iDisplayIndex = oSettings._iDisplayStart + i;
407
+ if (oTable.fnSettings().oFeatures.bServerSide)
408
+ iDisplayIndex = i;
409
+ var sGroupData = "";
410
+ var sGroup = null;
411
+ var sGroupData2 = "";
412
+ var sGroup2 = null;
413
+
414
+ //Issue 31 - Start fix provided by Fabien Taysse
415
+ // sGroupData = oSettings.aoData[oSettings.aiDisplay[iDisplayIndex]]._aData[properties.iGroupingColumnIndex];
416
+ // if (sGroupData == undefined)
417
+ // sGroupData = oSettings.aoData[oSettings.aiDisplay[iDisplayIndex]]._aData[oSettings.aoColumns[properties.iGroupingColumnIndex].mData];
418
+ sGroupData = this.fnGetData(nTrs[i], properties.iGroupingColumnIndex);
419
+ //Issue 31 - End fix provided by Fabien Taysse
420
+
421
+ var sGroup = sGroupData;
422
+ if (properties.sGroupBy != "year")
423
+ sGroup = fnGetGroup(sGroupData);
424
+
425
+ if (bUseSecondaryGrouping) {
426
+ sGroupData2 = oSettings.aoData[oSettings.aiDisplay[iDisplayIndex]]._aData[properties.iGroupingColumnIndex2];
427
+ if (sGroupData2 == undefined)
428
+ sGroupData2 = oSettings.aoData[oSettings.aiDisplay[iDisplayIndex]]._aData[oSettings.aoColumns[properties.iGroupingColumnIndex2].mData];
429
+ if (properties.sGroupBy2 != "year")
430
+ sGroup2 = fnGetGroup(sGroupData2);
431
+ }
432
+
433
+
434
+ if (sLastGroup == null || _fnGetCleanedGroup(sGroup) != _fnGetCleanedGroup(sLastGroup)) { // new group encountered (or first of group)
435
+ var sGroupCleaned = _fnGetCleanedGroup(sGroup);
436
+
437
+ if(sLastGroup != null)
438
+ {
439
+ properties.fnOnGroupCompleted(aoGroups[_fnGetCleanedGroup(sLastGroup)]);
440
+ }
441
+ /*
442
+ if (properties.bExpandableGrouping && bInitialGrouping) {
443
+ if (properties.bExpandSingleGroup) {
444
+ if (asExpandedGroups.length == 0)
445
+ asExpandedGroups.push(sGroupCleaned);
446
+ } else {
447
+ asExpandedGroups.push(sGroupCleaned);
448
+ }
449
+ }
450
+ */
451
+ if(properties.bAddAllGroupsAsExpanded && jQuery.inArray(sGroupCleaned,asExpandedGroups) == -1)
452
+ asExpandedGroups.push(sGroupCleaned);
453
+
454
+ var oGroup = fnCreateGroupRow(sGroupCleaned, sGroup, iColspan);
455
+ var nGroup = oGroup.nGroup;
456
+
457
+ if(nTrs[i].parentNode!=null)
458
+ nTrs[i].parentNode.insertBefore(nGroup, nTrs[i]);
459
+ else
460
+ $(nTrs[i]).before(nGroup);
461
+
462
+ sLastGroup = sGroup;
463
+ sLastGroup2 = null; //to reset second level grouping
464
+
465
+
466
+
467
+
468
+
469
+ } // end if (sLastGroup == null || sGroup != sLastGroup)
470
+
471
+ $(nTrs[i]).attr("data-group", aoGroups[sGroupCleaned].dataGroup);
472
+
473
+ $(nTrs[i]).addClass(properties.sGroupItemClass);
474
+ $(nTrs[i]).addClass("group-item-" + sGroupCleaned);
475
+ if (properties.bExpandableGrouping) {
476
+ if (_fnIsGroupCollapsed(sGroupCleaned) && !properties.bUseFilteringForGrouping) {
477
+ $(nTrs[i]).hide();
478
+ }
479
+ }
480
+
481
+
482
+ if (bUseSecondaryGrouping) {
483
+
484
+ if (sLastGroup2 == null || _fnGetCleanedGroup(sGroup2) != _fnGetCleanedGroup(sLastGroup2)) {
485
+ var sGroup2Id = _fnGetCleanedGroup(sGroup) + '-' + _fnGetCleanedGroup(sGroup2);
486
+ var oGroup2 = _fnCreateGroup2Row(sGroup2Id, sGroup2, iColspan, aoGroups[sGroupCleaned])
487
+ var nGroup2 = oGroup2.nGroup;
488
+ nTrs[i].parentNode.insertBefore(nGroup2, nTrs[i]);
489
+
490
+ sLastGroup2 = sGroup2;
491
+ }
492
+
493
+ $(nTrs[i]).attr("data-group", oGroup2.dataGroup)
494
+ .addClass(properties.sGroupItemClass2)
495
+ .addClass("group-item-" + oGroup2.dataGroup);
496
+ } //end if (bUseSecondaryGrouping)
497
+
498
+
499
+
500
+ } // end for (var i = 0; i < nTrs.length; i++)
501
+ }; // if (oSettings.aiDisplay.length > 0)
502
+
503
+ if(sLastGroup != null)
504
+ {
505
+ properties.fnOnGroupCompleted(aoGroups[_fnGetCleanedGroup(sLastGroup)]);
506
+ }
507
+
508
+
509
+ //-----End grouping
510
+ properties.fnOnGrouped(aoGroups);
511
+
512
+ bInitialGrouping = false;
513
+
514
+ }; // end of _fnDrawCallBackWithGrouping = function (oSettings)
515
+
516
+
517
+ //var oTable = this;
518
+ var iYearIndex = 6;
519
+ var iYearLength = 4;
520
+ var asExpandedGroups = new Array();
521
+ var bInitialGrouping = true;
522
+
523
+ var properties = $.extend(defaults, options);
524
+
525
+ if (properties.iGroupingOrderByColumnIndex == -1) {
526
+ properties.bCustomColumnOrdering = false;
527
+ properties.iGroupingOrderByColumnIndex = properties.iGroupingColumnIndex;
528
+ } else {
529
+ properties.bCustomColumnOrdering = true;
530
+ }
531
+
532
+ if (properties.sGroupingColumnSortDirection == "") {
533
+ if (properties.sGroupBy == "year")
534
+ properties.sGroupingColumnSortDirection = "desc";
535
+ else
536
+ properties.sGroupingColumnSortDirection = "asc";
537
+ }
538
+
539
+
540
+ if (properties.iGroupingOrderByColumnIndex2 == -1) {
541
+ properties.bCustomColumnOrdering2 = false;
542
+ properties.iGroupingOrderByColumnIndex2 = properties.iGroupingColumnIndex2;
543
+ } else {
544
+ properties.bCustomColumnOrdering2 = true;
545
+ }
546
+
547
+ if (properties.sGroupingColumnSortDirection2 == "") {
548
+ if (properties.sGroupBy2 == "year")
549
+ properties.sGroupingColumnSortDirection2 = "desc";
550
+ else
551
+ properties.sGroupingColumnSortDirection2 = "asc";
552
+ }
553
+
554
+
555
+
556
+ iYearIndex = properties.sDateFormat.toLowerCase().indexOf('yy');
557
+ iYearLength = properties.sDateFormat.toLowerCase().lastIndexOf('y') - properties.sDateFormat.toLowerCase().indexOf('y') + 1;
558
+
559
+ var iMonthIndex = properties.sDateFormat.toLowerCase().indexOf('mm');
560
+ var iMonthLength = properties.sDateFormat.toLowerCase().lastIndexOf('m') - properties.sDateFormat.toLowerCase().indexOf('m') + 1;
561
+
562
+ var fnGetGroup = _fnGetGroupByName;
563
+ switch (properties.sGroupBy) {
564
+ case "letter": fnGetGroup = _fnGetGroupByLetter;
565
+ break;
566
+ case "year": fnGetGroup = _fnGetGroupByYear;
567
+ break;
568
+ case "month": fnGetGroup = _fnGetGroupByYearMonth;
569
+ break;
570
+ default: fnGetGroup = _fnGetGroupByName;
571
+ break;
572
+ }
573
+
574
+
575
+ if (properties.asExpandedGroups != null) {
576
+ if (properties.asExpandedGroups == "NONE") {
577
+ properties.asExpandedGroups = [];
578
+ asExpandedGroups = properties.asExpandedGroups;
579
+ bInitialGrouping = false;
580
+ } else if (properties.asExpandedGroups == "ALL") {
581
+ properties.bAddAllGroupsAsExpanded = true;
582
+ } else if (properties.asExpandedGroups.constructor == String) {
583
+ var currentGroup = properties.asExpandedGroups;
584
+ properties.asExpandedGroups = new Array();
585
+ properties.asExpandedGroups.push(_fnGetCleanedGroup(currentGroup));
586
+ asExpandedGroups = properties.asExpandedGroups;
587
+ bInitialGrouping = false;
588
+ } else if (properties.asExpandedGroups.constructor == Array) {
589
+ for (var i = 0; i < properties.asExpandedGroups.length; i++) {
590
+ asExpandedGroups.push(_fnGetCleanedGroup(properties.asExpandedGroups[i]));
591
+ if (properties.bExpandSingleGroup)
592
+ break;
593
+ }
594
+ bInitialGrouping = false;
595
+ }
596
+ }else{
597
+ properties.asExpandedGroups = new Array();
598
+ properties.bAddAllGroupsAsExpanded = true;
599
+ }
600
+ if(properties.bExpandSingleGroup){
601
+ var nTrs = $('tbody tr', oTable);
602
+ var sGroupData = oTable.fnGetData(nTrs[0], properties.iGroupingColumnIndex);
603
+
604
+ var sGroup = sGroupData;
605
+ if (properties.sGroupBy != "year")
606
+ sGroup = fnGetGroup(sGroupData);
607
+
608
+ var sGroupCleaned = _fnGetCleanedGroup(sGroup);
609
+ properties.asExpandedGroups = new Array();
610
+ properties.asExpandedGroups.push(sGroupCleaned);
611
+
612
+ }
613
+
614
+ oTable.fnSetColumnVis(properties.iGroupingColumnIndex, !properties.bHideGroupingColumn);
615
+ if (properties.bCustomColumnOrdering) {
616
+ oTable.fnSetColumnVis(properties.iGroupingOrderByColumnIndex, !properties.bHideGroupingOrderByColumn);
617
+ }
618
+ if (properties.iGroupingColumnIndex2 != -1) {
619
+ oTable.fnSetColumnVis(properties.iGroupingColumnIndex2, !properties.bHideGroupingColumn2);
620
+ }
621
+ if (properties.bCustomColumnOrdering2) {
622
+ oTable.fnSetColumnVis(properties.iGroupingOrderByColumnIndex2, !properties.bHideGroupingOrderByColumn2);
623
+ }
624
+ oTable.fnSettings().aoDrawCallback.push({
625
+ "fn": _fnDrawCallBackWithGrouping,
626
+ "sName": "fnRowGrouping"
627
+ });
628
+
629
+ var aaSortingFixed = new Array();
630
+ aaSortingFixed.push([properties.iGroupingOrderByColumnIndex, properties.sGroupingColumnSortDirection]);
631
+ if (properties.iGroupingColumnIndex2 != -1) {
632
+ aaSortingFixed.push([properties.iGroupingOrderByColumnIndex2, properties.sGroupingColumnSortDirection2]);
633
+ } // end of if (properties.iGroupingColumnIndex2 != -1)
634
+
635
+ oTable.fnSettings().aaSortingFixed = aaSortingFixed;
636
+ //Old way
637
+ //oTable.fnSettings().aaSortingFixed = [[properties.iGroupingOrderByColumnIndex, properties.sGroupingColumnSortDirection]];
638
+
639
+ switch (properties.sGroupBy) {
640
+ case "name":
641
+ break;
642
+
643
+
644
+ case "letter":
645
+
646
+ /* Create an array with the values of all the input boxes in a column */
647
+ oTable.fnSettings().aoColumns[properties.iGroupingOrderByColumnIndex].sSortDataType = "rg-letter";
648
+ $.fn.dataTableExt.afnSortData['rg-letter'] = function (oSettings, iColumn) {
649
+ var aData = [];
650
+ $('td:eq(' + iColumn + ')', oSettings.oApi._fnGetTrNodes(oSettings)).each(function () {
651
+ aData.push(_fnGetGroupByLetter(this.innerHTML));
652
+ });
653
+ return aData;
654
+ }
655
+
656
+
657
+ break;
658
+
659
+
660
+ case "year":
661
+ /* Create an array with the values of all the input boxes in a column */
662
+ oTable.fnSettings().aoColumns[properties.iGroupingOrderByColumnIndex].sSortDataType = "rg-date";
663
+ $.fn.dataTableExt.afnSortData['rg-date'] = function (oSettings, iColumn) {
664
+ var aData = [];
665
+ var nTrs = oSettings.oApi._fnGetTrNodes(oSettings);
666
+ for(i = 0; i< nTrs.length; i++)
667
+ {
668
+ aData.push(_fnGetYear( oTable.fnGetData( nTrs[i], iColumn) ));
669
+ }
670
+
671
+ /*
672
+ $('td:eq(' + iColumn + ')', oSettings.oApi._fnGetTrNodes(oSettings)).each(function () {
673
+ aData.push(_fnGetYear(this.innerHTML));
674
+ });
675
+ */
676
+ return aData;
677
+ }
678
+ break;
679
+ default:
680
+ break;
681
+
682
+ } // end of switch (properties.sGroupBy)
683
+
684
+ if(properties.bUseFilteringForGrouping)
685
+ $.fn.dataTableExt.afnFiltering.push(_rowGroupingRowFilter);
686
+
687
+ oTable.fnDraw();
688
+
689
+
690
+
691
+ });
692
+ };
693
+ })(jQuery);
assets/js/php-datatables/wpdatatables.funcs.js DELETED
@@ -1,334 +0,0 @@
1
- jQuery(document).ready(function($) {
2
-
3
-
4
- if( typeof wpdatatables_frontend_strings !== 'undefined' ){
5
- $.fn.DataTable.defaults.oLanguage.sInfo = wpdatatables_frontend_strings.sInfo;
6
- $.fn.DataTable.defaults.oLanguage.sSearch = wpdatatables_frontend_strings.sSearch;
7
- $.fn.DataTable.defaults.oLanguage.lengthMenu = wpdatatables_frontend_strings.lengthMenu;
8
- $.fn.DataTable.defaults.oLanguage.sEmptyTable = wpdatatables_frontend_strings.sEmptyTable;
9
- $.fn.DataTable.defaults.oLanguage.sInfoEmpty = wpdatatables_frontend_strings.sInfoEmpty;
10
- $.fn.DataTable.defaults.oLanguage.sInfoFiltered = wpdatatables_frontend_strings.sInfoFiltered;
11
- $.fn.DataTable.defaults.oLanguage.sInfoPostFix = wpdatatables_frontend_strings.sInfoPostFix;
12
- $.fn.DataTable.defaults.oLanguage.sInfoThousands = wpdatatables_frontend_strings.sInfoThousands;
13
- $.fn.DataTable.defaults.oLanguage.sLengthMenu = wpdatatables_frontend_strings.sLengthMenu;
14
- $.fn.DataTable.defaults.oLanguage.sProcessing = wpdatatables_frontend_strings.sProcessing;
15
- $.fn.DataTable.defaults.oLanguage.sZeroRecords = wpdatatables_frontend_strings.sZeroRecords;
16
- $.fn.DataTable.defaults.oLanguage.oPaginate = wpdatatables_frontend_strings.oPaginate;
17
- $.fn.DataTable.defaults.oLanguage.oAria = wpdatatables_frontend_strings.oAria;
18
- }
19
-
20
-
21
- /* Clear filters */
22
- $.fn.dataTableExt.oApi.fnFilterClear = function ( oSettings )
23
- {
24
- /* Remove global filter */
25
- oSettings.oPreviousSearch.sSearch = "";
26
-
27
- /* Remove the text of the global filter in the input boxes */
28
- if ( typeof oSettings.aanFeatures.f != 'undefined' )
29
- {
30
- var n = oSettings.aanFeatures.f;
31
- for ( var i=0, iLen=n.length ; i<iLen ; i++ )
32
- {
33
- $('input', n[i]).val( '' );
34
- }
35
- }
36
-
37
- /* Remove the search text for the column filters - NOTE - if you have input boxes for these
38
- * filters, these will need to be reset
39
- */
40
- for ( var i=0, iLen=oSettings.aoPreSearchCols.length ; i<iLen ; i++ )
41
- {
42
- oSettings.aoPreSearchCols[i].sSearch = "";
43
- }
44
-
45
- /* Redraw */
46
- oSettings.oApi._fnReDraw( oSettings );
47
- };
48
-
49
- jQuery.extend( jQuery.fn.dataTableExt.oSort, {
50
- "formatted-num-pre": function ( a ) {
51
- if($(a).text()!=''){
52
- a = $(a).text();
53
- }
54
- a = (a==="-") ? -1 : a.replace( /[^\d\-\.]/g, "" );
55
-
56
- if(a!=-1){
57
- while(a.indexOf('.')!=-1){
58
- a = a.replace(".","");
59
- }
60
-
61
- a = a.replace(',','.');
62
-
63
- }
64
-
65
- return parseFloat( a );
66
- },
67
-
68
- "formatted-num-asc": function ( a, b ) {
69
- return a - b;
70
- },
71
-
72
- "formatted-num-desc": function ( a, b ) {
73
- return b - a;
74
- },
75
-
76
- "statuscol-pre": function ( a ) {
77
-
78
- a = $(a).find('div.percents').text();
79
- return parseFloat( a );
80
- },
81
-
82
- "statuscol-asc": function ( a, b ) {
83
- return a - b;
84
- },
85
-
86
- "statuscol-desc": function ( a, b ) {
87
- return b - a;
88
- },
89
-
90
- 'datetime-pre': function( datetime ){
91
- var dateTimeArr = datetime.split(' ');
92
- return jQuery.fn.dataTableExt.oSort['date-pre'](dateTimeArr[0])+wdtPrepareTime( dateTimeArr[1] );
93
- },
94
-
95
- 'datetime-asc': function ( a, b ) {
96
- return a - b;
97
- },
98
-
99
- "datetime-desc": function ( a, b ) {
100
- return b - a;
101
- },
102
-
103
- 'datetime-am-pre': function( datetime ){
104
- // First divide date and time
105
- var dateTimeArr = datetime.split(' ');
106
- return jQuery.fn.dataTableExt.oSort['date-pre'](dateTimeArr[0])+wdtPrepareAmTime(dateTimeArr[1]+' '+dateTimeArr[2]);;
107
- },
108
-
109
- 'datetime-am-asc': function ( a, b ) {
110
- return a - b;
111
- },
112
-
113
- "datetime-am-desc": function ( a, b ) {
114
- return b - a;
115
- },
116
-
117
- 'datetime-eu-pre': function( datetime ){
118
- // First divide date and time
119
- var dateTimeArr = datetime.split(' ');
120
- return (wdtDateEuPre( dateTimeArr[0] )*100000)+wdtPrepareTime(dateTimeArr[1]);
121
- },
122
-
123
- 'datetime-eu-asc': function ( a, b ) {
124
- return a - b;
125
- },
126
-
127
- "datetime-eu-desc": function ( a, b ) {
128
- return b - a;
129
- },
130
-
131
- 'datetime-eu-am-pre': function( datetime ){
132
- // First divide date and time
133
- var dateTimeArr = datetime.split(' ');
134
- return ( wdtDateEuPre( dateTimeArr[0] )*100000 )+wdtPrepareAmTime(dateTimeArr[1]+' '+dateTimeArr[2]);
135
- },
136
-
137
- 'datetime-eu-am-asc': function ( a, b ) {
138
- return a - b;
139
- },
140
-
141
- "datetime-eu-am-desc": function ( a, b ) {
142
- return b - a;
143
- },
144
-
145
- 'datetime-dd-mmm-yyyy-pre': function( datetime ){
146
- // First divide date and time
147
- var dateTimeArr = datetime.split(' ');
148
- return wdtCustomDateDDMMMYYYYToOrd(dateTimeArr[0]+'-'+dateTimeArr[1]+'-'+dateTimeArr[2])+wdtPrepareTime(dateTimeArr[3]);
149
- },
150
-
151
- 'datetime-dd-mmm-yyyy-asc': function ( a, b ) {
152
- return a - b;
153
- },
154
-
155
- "datetime-dd-mmm-yyyy-desc": function ( a, b ) {
156
- return b - a;
157
- },
158
-
159
- 'datetime-dd-mmm-yyyy-am-pre': function( datetime ){
160
- // First divide date and time
161
- var dateTimeArr = datetime.split(' ');
162
- return wdtCustomDateDDMMMYYYYToOrd(dateTimeArr[0]+'-'+dateTimeArr[1]+'-'+dateTimeArr[2])+wdtPrepareAmTime(dateTimeArr[3]+' '+dateTimeArr[4]);
163
- },
164
-
165
- 'datetime-dd-mmm-yyyy-am-asc': function ( a, b ) {
166
- return a - b;
167
- },
168
-
169
- "datetime-dd-mmm-yyyy-am-desc": function ( a, b ) {
170
- return b - a;
171
- },
172
-
173
- 'time-pre': function( time ){
174
- return wdtPrepareTime( time )
175
- },
176
-
177
- 'time-am-pre': function( time ){
178
- return wdtPrepareAmTime( time )
179
- },
180
-
181
- } );
182
-
183
- $.fn.dataTableExt.oApi.fnGetColumnIndex = function ( oSettings, sCol )
184
- {
185
- var cols = oSettings.aoColumns;
186
- for ( var x=0, xLen=cols.length ; x<xLen ; x++ )
187
- {
188
- if ( (typeof(cols[x].sTitle) == 'string') && ( cols[x].sTitle.toLowerCase() == sCol.toLowerCase() ) )
189
- {
190
- return x;
191
- };
192
- }
193
- return -1;
194
- };
195
-
196
- // This will help DataTables magic detect the "dd-MMM-yyyy" format; Unshift so that it's the first data type (so it takes priority over existing)
197
- jQuery.fn.dataTableExt.aTypes.unshift(
198
- function (sData) {
199
- "use strict"; //let's avoid tom-foolery in this function
200
- if (/^([0-2]?\d|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)-\d{4}/i.test(sData)) {
201
- return 'date-dd-mmm-yyyy';
202
- }
203
- return null;
204
- }
205
- );
206
-
207
- // define the sorts
208
- jQuery.fn.dataTableExt.oSort['date-dd-mmm-yyyy-asc'] = function (a, b) {
209
- "use strict"; //let's avoid tom-foolery in this function
210
- var ordA = wdtCustomDateDDMMMYYYYToOrd(a),
211
- ordB = wdtCustomDateDDMMMYYYYToOrd(b);
212
- return (ordA < ordB) ? -1 : ((ordA > ordB) ? 1 : 0);
213
- };
214
-
215
- jQuery.fn.dataTableExt.oSort['date-dd-mmm-yyyy-desc'] = function (a, b) {
216
- "use strict"; //let's avoid tom-foolery in this function
217
- var ordA = wdtCustomDateDDMMMYYYYToOrd(a),
218
- ordB = wdtCustomDateDDMMMYYYYToOrd(b);
219
- return (ordA < ordB) ? 1 : ((ordA > ordB) ? -1 : 0);
220
- };
221
- jQuery.extend( jQuery.fn.dataTableExt.oSort, {
222
- "date-eu-pre": function ( date ) {
223
- return wdtDateEuPre( date );
224
- },
225
-
226
- "date-eu-asc": function ( a, b ) {
227
- return ((a < b) ? -1 : ((a > b) ? 1 : 0));
228
- },
229
-
230
- "date-eu-desc": function ( a, b ) {
231
- return ((a < b) ? 1 : ((a > b) ? -1 : 0));
232
- }
233
- } );
234
-
235
- });
236
-
237
-
238
- var wdtCustomDateDDMMMYYYYToOrd = function (date) {
239
- "use strict"; //let's avoid tom-foolery in this function
240
- // Convert to a number YYYYMMDD which we can use to order
241
- var dateParts = date.split(/-/);
242
- return (dateParts[2] * 10000) + (jQuery.inArray(dateParts[1].toUpperCase(), ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]) * 100) + dateParts[0];
243
- };
244
-
245
- function wdtDateEuPre( date ){
246
- var date = date.replace(" ", "");
247
- if (date.indexOf('.') > 0) {
248
- /*date a, format dd.mn.(yyyy) ; (year is optional)*/
249
- var eu_date = date.split('.');
250
- } else if (date.indexOf('-') > 0) {
251
- /*date a, format dd.mn.(yyyy) ; (year is optional)*/
252
- var eu_date = date.split('-');
253
- } else {
254
- /*date a, format dd/mn/(yyyy) ; (year is optional)*/
255
- var eu_date = date.split('/');
256
- }
257
-
258
- var year = 0;
259
- var month = 0;
260
- var day = 0;
261
-
262
- /*year (optional)*/
263
- if (eu_date[2]) {
264
- year = eu_date[2];
265
- }
266
-
267
- /*month*/
268
- if(eu_date[1]){
269
- month = eu_date[1];
270
- if( month.length < 2 ){ month = 0+month; }
271
- }
272
-
273
- /*day*/
274
- if(eu_date[0]) {
275
- day = eu_date[0];
276
- if( day.length < 2 ){ day = 0+day; }
277
- }
278
-
279
- return (year + month + day) * 1;
280
- }
281
-
282
- function wdtValidateURL(textval) {
283
- var regex = /^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?(||.*)?$/i;
284
- return regex.test(textval);
285
- }
286
-
287
- function wdtPrepareTime( time ){
288
- return moment.duration( time, 'HH:mm').asSeconds()
289
- }
290
-
291
- function wdtPrepareAmTime( time ){
292
- return moment.duration( moment( time, 'hh:mm A').format("HH:mm"), 'HH:mm' ).asSeconds()
293
- }
294
-
295
- function wdtValidateEmail(email) {
296
- var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+(||.*)?$/;
297
- return regex.test(email);
298
- }
299
-
300
- function wdtRandString(n){
301
- if(!n){
302
- n = 5;
303
- }
304
-
305
- var text = '';
306
- var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
307
-
308
- for(var i=0; i < n; i++){
309
- text += possible.charAt(Math.floor(Math.random() * possible.length));
310
- }
311
-
312
- return text;
313
- }
314
-
315
- function wdtFormatNumber(n, c, d, t){
316
- c = isNaN(c = Math.abs(c)) ? 2 : c,
317
- d = d == undefined ? "." : d,
318
- t = t == undefined ? "," : t,
319
- s = n < 0 ? "-" : "",
320
- i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "",
321
- j = (j = i.length) > 3 ? j % 3 : 0;
322
- return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
323
- };
324
-
325
- function wdtUnformatNumber( number, thousandsSeparator, decimalsSeparator, isFloat ){
326
- if( typeof isFloat == 'undefined' ) { isFloat = false; }
327
-
328
- var return_string = number.toString().replace( new RegExp( '\\'+thousandsSeparator, 'g'), '' );
329
-
330
- if( isFloat && decimalsSeparator == ',' ){
331
- return_string = return_string.replace( new RegExp( '\\'+decimalsSeparator ), '.' );
332
- }
333
- return return_string;
334
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/php-datatables/wpdatatables.funcs.min.js DELETED
@@ -1 +0,0 @@
1
- function wdtDateEuPre(a){var a=a.replace(" ","");if(a.indexOf(".")>0)var b=a.split(".");else if(a.indexOf("-")>0)var b=a.split("-");else var b=a.split("/");var c=0,d=0,e=0;return b[2]&&(c=b[2]),b[1]&&(d=b[1],d.length<2&&(d=0+d)),b[0]&&(e=b[0],e.length<2&&(e=0+e)),1*(c+d+e)}function wdtValidateURL(a){var b=/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?(||.*)?$/i;return b.test(a)}function wdtPrepareTime(a){return moment.duration(a,"HH:mm").asSeconds()}function wdtPrepareAmTime(a){return moment.duration(moment(a,"hh:mm A").format("HH:mm"),"HH:mm").asSeconds()}function wdtValidateEmail(a){var b=/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+(||.*)?$/;return b.test(a)}function wdtRandString(a){a||(a=5);for(var b="",c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",d=0;d<a;d++)b+=c.charAt(Math.floor(Math.random()*c.length));return b}function wdtFormatNumber(a,b,c,d){return b=isNaN(b=Math.abs(b))?2:b,c=void 0==c?".":c,d=void 0==d?",":d,s=a<0?"-":"",i=parseInt(a=Math.abs(+a||0).toFixed(b))+"",j=(j=i.length)>3?j%3:0,s+(j?i.substr(0,j)+d:"")+i.substr(j).replace(/(\d{3})(?=\d)/g,"$1"+d)+(b?c+Math.abs(a-i).toFixed(b).slice(2):"")}function wdtUnformatNumber(a,b,c,d){"undefined"==typeof d&&(d=!1);var e=a.toString().replace(new RegExp("\\"+b,"g"),"");return d&&","==c&&(e=e.replace(new RegExp("\\"+c),".")),e}jQuery(document).ready(function(a){"undefined"!=typeof wpdatatables_frontend_strings&&(a.fn.DataTable.defaults.oLanguage.sInfo=wpdatatables_frontend_strings.sInfo,a.fn.DataTable.defaults.oLanguage.sSearch=wpdatatables_frontend_strings.sSearch,a.fn.DataTable.defaults.oLanguage.lengthMenu=wpdatatables_frontend_strings.lengthMenu,a.fn.DataTable.defaults.oLanguage.sEmptyTable=wpdatatables_frontend_strings.sEmptyTable,a.fn.DataTable.defaults.oLanguage.sInfoEmpty=wpdatatables_frontend_strings.sInfoEmpty,a.fn.DataTable.defaults.oLanguage.sInfoFiltered=wpdatatables_frontend_strings.sInfoFiltered,a.fn.DataTable.defaults.oLanguage.sInfoPostFix=wpdatatables_frontend_strings.sInfoPostFix,a.fn.DataTable.defaults.oLanguage.sInfoThousands=wpdatatables_frontend_strings.sInfoThousands,a.fn.DataTable.defaults.oLanguage.sLengthMenu=wpdatatables_frontend_strings.sLengthMenu,a.fn.DataTable.defaults.oLanguage.sProcessing=wpdatatables_frontend_strings.sProcessing,a.fn.DataTable.defaults.oLanguage.sZeroRecords=wpdatatables_frontend_strings.sZeroRecords,a.fn.DataTable.defaults.oLanguage.oPaginate=wpdatatables_frontend_strings.oPaginate,a.fn.DataTable.defaults.oLanguage.oAria=wpdatatables_frontend_strings.oAria),a.fn.dataTableExt.oApi.fnFilterClear=function(b){if(b.oPreviousSearch.sSearch="","undefined"!=typeof b.aanFeatures.f)for(var c=b.aanFeatures.f,d=0,e=c.length;d<e;d++)a("input",c[d]).val("");for(var d=0,e=b.aoPreSearchCols.length;d<e;d++)b.aoPreSearchCols[d].sSearch="";b.oApi._fnReDraw(b)},jQuery.extend(jQuery.fn.dataTableExt.oSort,{"formatted-num-pre":function(b){if(""!=a(b).text()&&(b=a(b).text()),b="-"===b?-1:b.replace(/[^\d\-\.]/g,""),b!=-1){for(;b.indexOf(".")!=-1;)b=b.replace(".","");b=b.replace(",",".")}return parseFloat(b)},"formatted-num-asc":function(a,b){return a-b},"formatted-num-desc":function(a,b){return b-a},"statuscol-pre":function(b){return b=a(b).find("div.percents").text(),parseFloat(b)},"statuscol-asc":function(a,b){return a-b},"statuscol-desc":function(a,b){return b-a},"datetime-pre":function(a){var b=a.split(" ");return jQuery.fn.dataTableExt.oSort["date-pre"](b[0])+wdtPrepareTime(b[1])},"datetime-asc":function(a,b){return a-b},"datetime-desc":function(a,b){return b-a},"datetime-am-pre":function(a){var b=a.split(" ");return jQuery.fn.dataTableExt.oSort["date-pre"](b[0])+wdtPrepareAmTime(b[1]+" "+b[2])},"datetime-am-asc":function(a,b){return a-b},"datetime-am-desc":function(a,b){return b-a},"datetime-eu-pre":function(a){var b=a.split(" ");return 1e5*wdtDateEuPre(b[0])+wdtPrepareTime(b[1])},"datetime-eu-asc":function(a,b){return a-b},"datetime-eu-desc":function(a,b){return b-a},"datetime-eu-am-pre":function(a){var b=a.split(" ");return 1e5*wdtDateEuPre(b[0])+wdtPrepareAmTime(b[1]+" "+b[2])},"datetime-eu-am-asc":function(a,b){return a-b},"datetime-eu-am-desc":function(a,b){return b-a},"datetime-dd-mmm-yyyy-pre":function(a){var b=a.split(" ");return wdtCustomDateDDMMMYYYYToOrd(b[0]+"-"+b[1]+"-"+b[2])+wdtPrepareTime(b[3])},"datetime-dd-mmm-yyyy-asc":function(a,b){return a-b},"datetime-dd-mmm-yyyy-desc":function(a,b){return b-a},"datetime-dd-mmm-yyyy-am-pre":function(a){var b=a.split(" ");return wdtCustomDateDDMMMYYYYToOrd(b[0]+"-"+b[1]+"-"+b[2])+wdtPrepareAmTime(b[3]+" "+b[4])},"datetime-dd-mmm-yyyy-am-asc":function(a,b){return a-b},"datetime-dd-mmm-yyyy-am-desc":function(a,b){return b-a},"time-pre":function(a){return wdtPrepareTime(a)},"time-am-pre":function(a){return wdtPrepareAmTime(a)}}),a.fn.dataTableExt.oApi.fnGetColumnIndex=function(a,b){for(var c=a.aoColumns,d=0,e=c.length;d<e;d++)if("string"==typeof c[d].sTitle&&c[d].sTitle.toLowerCase()==b.toLowerCase())return d;return-1},jQuery.fn.dataTableExt.aTypes.unshift(function(a){"use strict";return/^([0-2]?\d|3[0-1])-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)-\d{4}/i.test(a)?"date-dd-mmm-yyyy":null}),jQuery.fn.dataTableExt.oSort["date-dd-mmm-yyyy-asc"]=function(a,b){"use strict";var c=wdtCustomDateDDMMMYYYYToOrd(a),d=wdtCustomDateDDMMMYYYYToOrd(b);return c<d?-1:c>d?1:0},jQuery.fn.dataTableExt.oSort["date-dd-mmm-yyyy-desc"]=function(a,b){"use strict";var c=wdtCustomDateDDMMMYYYYToOrd(a),d=wdtCustomDateDDMMMYYYYToOrd(b);return c<d?1:c>d?-1:0},jQuery.extend(jQuery.fn.dataTableExt.oSort,{"date-eu-pre":function(a){return wdtDateEuPre(a)},"date-eu-asc":function(a,b){return a<b?-1:a>b?1:0},"date-eu-desc":function(a,b){return a<b?1:a>b?-1:0}})});var wdtCustomDateDDMMMYYYYToOrd=function(a){"use strict";var b=a.split(/-/);return 1e4*b[2]+100*jQuery.inArray(b[1].toUpperCase(),["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"])+b[0]};
 
assets/js/popup/jquery.remodal.min.js DELETED
@@ -1,4 +0,0 @@
1
- /*! Remodal - v0.1.2 - 2014-03-05
2
- * https://github.com/VodkaBears/remodal
3
- * Copyright (c) 2014 VodkaBears; */
4
- !function(a){"use strict";function b(b,e){this.settings=a.extend({},d,e),this.modal=b,this.buildDOM(),this.addEventListeners(),this.index=a[c].lookup.push(this)-1,this.busy=!1}var c="remodal",d={hashTracking:!0};a[c]={lookup:[]};var e,f=function(a){var b=a.css("transition-duration")||a.css("-webkit-transition-duration")||a.css("-moz-transition-duration")||a.css("-o-transition-duration")||a.css("-ms-transition-duration")||0,c=a.css("transition-delay")||a.css("-webkit-transition-delay")||a.css("-moz-transition-delay")||a.css("-o-transition-delay")||a.css("-ms-transition-delay")||0;return 1e3*(parseFloat(b)+parseFloat(c))},g=function(){var a=document.createElement("div");a.style.visibility="hidden",a.style.width="100px",document.body.appendChild(a);var b=a.offsetWidth;a.style.overflow="scroll";var c=document.createElement("div");c.style.width="100%",a.appendChild(c);var d=c.offsetWidth;return a.parentNode.removeChild(a),b-d},h=function(){a("html, body").addClass(c+"_lock"),a(document.body).css("padding-right","+="+g())},i=function(){a("html, body").removeClass(c+"_lock"),a(document.body).css("padding-right","-="+g())};b.prototype.buildDOM=function(){this.body=a(document.body),this.bg=a("."+c+"-bg"),this.modalClose=a("<a href='#'>").addClass(c+"-close"),this.overlay=a("<div>").addClass(c+"-overlay"),this.modal.hasClass(c)||this.modal.addClass(c),this.modal.css("visibility","visible"),this.modal.append(this.modalClose),this.overlay.append(this.modal),this.body.append(this.overlay),this.confirm=this.modal.find("."+c+"-confirm"),this.cancel=this.modal.find("."+c+"-cancel");var b=f(this.overlay),d=f(this.modal),e=f(this.bg);this.td=d>b?d:b,this.td=e>this.td?e:this.td},b.prototype.addEventListeners=function(){this.modalClose.bind("click."+c,function(a){a.preventDefault(),this.close()}.bind(this)),this.cancel.bind("click."+c,function(a){a.preventDefault(),this.modal.trigger("cancel"),this.close()}.bind(this)),this.confirm.bind("click."+c,function(a){a.preventDefault(),this.modal.trigger("confirm"),this.close()}.bind(this)),a(document).bind("keyup."+c,function(a){27===a.keyCode&&this.close()}.bind(this)),this.overlay.bind("click."+c,function(b){var d=a(b.target);d.hasClass(c+"-overlay")&&this.close()}.bind(this))},b.prototype.open=function(){if(!this.busy){this.busy=!0,this.modal.trigger("open");var a=this.modal.attr("data-"+c+"-id");a&&this.settings.hashTracking&&(location.hash=a),e&&e!==this&&(e.overlay.hide(),e.body.removeClass(c+"_active")),e=this,h(),this.overlay.show(),setTimeout(function(){this.body.addClass(c+"_active"),setTimeout(function(){this.busy=!1,this.modal.trigger("opened")}.bind(this),this.td+50)}.bind(this),25)}},b.prototype.close=function(){this.busy||(this.busy=!0,this.modal.trigger("close"),this.settings.hashTracking&&this.modal.attr("data-"+c+"-id")===location.hash.substr(1)&&(location.hash=""),this.body.removeClass(c+"_active"),setTimeout(function(){this.overlay.hide(),i(),this.busy=!1,this.modal.trigger("closed")}.bind(this),this.td+50))},a&&(a.fn[c]=function(d){var e;return this.each(function(f,g){var h=a(g);h.data(c)||(e=new b(h,d),h.data(c,e.index),e.settings.hashTracking&&h.attr("data-"+c+"-id")===location.hash.substr(1)&&e.open())}),e}),a(document).on("click","[data-"+c+"-target]",function(b){b.preventDefault();var d=b.currentTarget,e=d.getAttribute("data-"+c+"-target"),f=a("[data-"+c+"-id="+e+"]");a[c].lookup[f.data(c)].open()}),a(document).find("."+c).each(function(b,d){var e=a(d),f=e.data(c+"-options");f||(f={}),e[c](f)});var j=function(b,d){var f=location.hash.replace("#","");if("undefined"==typeof d&&(d=!0),f){var g=a("[data-"+c+"-id="+f+"]");if(g.length){var h=a[c].lookup[g.data(c)];h&&h.settings.hashTracking&&h.open()}}else d&&e&&!e.busy&&e.settings.hashTracking&&e.close()};a(window).bind("hashchange."+c,j)}(window.jQuery||window.Zepto);
 
 
 
 
assets/js/selecter/jquery.fs.selecter.min.js DELETED
@@ -1,9 +0,0 @@
1
- /*
2
- * Selecter v3.1.9 - 2014-09-02
3
- * A jQuery plugin for replacing default select elements. Part of the Formstone Library.
4
- * http://formstone.it/selecter/
5
- *
6
- * Copyright 2014 Ben Plum; MIT Licensed
7
- */
8
-
9
- !function(a,b){"use strict";function c(b){b=a.extend({},F,b||{}),null===E&&(E=a("body"));for(var c=a(this),e=0,f=c.length;f>e;e++)d(c.eq(e),b);return c}function d(b,c){if(!b.hasClass("selecter-element")){c=a.extend({},c,b.data("selecter-options")),c.multiple=b.prop("multiple"),c.disabled=b.is(":disabled"),c.external&&(c.links=!0);var d=b.find(":selected");c.multiple||""===c.label?c.label="":b.prepend('<option value="" class="selecter-placeholder" selected>'+c.label+"</option>");var g=b.find("option, optgroup"),h=g.filter("option");d=h.filter(":selected");var j=d.length>0?h.index(d):0,k=""!==c.label?c.label:d.text(),q="div";c.tabIndex=b[0].tabIndex,b[0].tabIndex=-1;var s="",t="";t+="<"+q+' class="selecter '+c.customClass,C?t+=" mobile":c.cover&&(t+=" cover"),t+=c.multiple?" multiple":" closed",c.disabled&&(t+=" disabled"),t+='" tabindex="'+c.tabIndex+'">',t+="</"+q+">",c.multiple||(s+='<span class="selecter-selected">',s+=a("<span></span>").text(v(k,c.trim)).html(),s+="</span>"),s+='<div class="selecter-options">',s+="</div>",b.addClass("selecter-element").wrap(t).after(s);var u=b.parent(".selecter"),w=a.extend({$select:b,$allOptions:g,$options:h,$selecter:u,$selected:u.find(".selecter-selected"),$itemsWrapper:u.find(".selecter-options"),index:-1,guid:z++},c);e(w),w.multiple||r(j,w),void 0!==a.fn.scroller&&w.$itemsWrapper.scroller(),w.$selecter.on("touchstart.selecter",".selecter-selected",w,f).on("click.selecter",".selecter-selected",w,i).on("click.selecter",".selecter-item",w,m).on("close.selecter",w,l).data("selecter",w),w.$select.on("change.selecter",w,n),C||(w.$selecter.on("focus.selecter",w,o).on("blur.selecter",w,p),w.$select.on("focus.selecter",w,function(a){a.data.$selecter.trigger("focus")}))}}function e(b){for(var c="",d=b.links?"a":"span",e=0,f=0,g=b.$allOptions.length;g>f;f++){var h=b.$allOptions.eq(f);if("OPTGROUP"===h[0].tagName)c+='<span class="selecter-group',h.is(":disabled")&&(c+=" disabled"),c+='">'+h.attr("label")+"</span>";else{var i=h.val();h.attr("value")||h.attr("value",i),c+="<"+d+' class="selecter-item',h.hasClass("selecter-placeholder")&&(c+=" placeholder"),h.is(":selected")&&(c+=" selected"),h.is(":disabled")&&(c+=" disabled"),c+='" ',c+=b.links?'href="'+i+'"':'data-value="'+i+'"',c+=">"+a("<span></span>").text(v(h.text(),b.trim)).html()+"</"+d+">",e++}}b.$itemsWrapper.html(c),b.$items=b.$selecter.find(".selecter-item")}function f(a){a.stopPropagation();var b=a.data,c=a.originalEvent;y(b.timer),b.touchStartX=c.touches[0].clientX,b.touchStartY=c.touches[0].clientY,b.$selecter.on("touchmove.selecter",".selecter-selected",b,g).on("touchend.selecter",".selecter-selected",b,h)}function g(a){var b=a.data,c=a.originalEvent;(Math.abs(c.touches[0].clientX-b.touchStartX)>10||Math.abs(c.touches[0].clientY-b.touchStartY)>10)&&b.$selecter.off("touchmove.selecter touchend.selecter")}function h(a){var b=a.data;b.$selecter.off("touchmove.selecter touchend.selecter click.selecter"),b.timer=x(b.timer,1e3,function(){b.$selecter.on("click.selecter",".selecter-selected",b,i).on("click.selecter",".selecter-item",b,m)}),i(a)}function i(c){c.preventDefault(),c.stopPropagation();var d=c.data;if(!d.$select.is(":disabled"))if(a(".selecter").not(d.$selecter).trigger("close.selecter",[d]),d.mobile||!C||D)d.$selecter.hasClass("closed")?j(c):d.$selecter.hasClass("open")&&l(c);else{var e=d.$select[0];if(b.document.createEvent){var f=b.document.createEvent("MouseEvents");f.initMouseEvent("mousedown",!1,!0,b,0,0,0,0,0,!1,!1,!1,!1,0,null),e.dispatchEvent(f)}else e.fireEvent&&e.fireEvent("onmousedown")}}function j(a){a.preventDefault(),a.stopPropagation();var b=a.data;if(!b.$selecter.hasClass("open")){{var c=b.$selecter.offset(),d=E.outerHeight(),e=b.$itemsWrapper.outerHeight(!0);b.index>=0?b.$items.eq(b.index).position():{left:0,top:0}}c.top+e>d&&b.$selecter.addClass("bottom"),b.$itemsWrapper.show(),b.$selecter.removeClass("closed").addClass("open"),E.on("click.selecter-"+b.guid,":not(.selecter-options)",b,k),s(b)}}function k(b){b.preventDefault(),b.stopPropagation(),0===a(b.currentTarget).parents(".selecter").length&&l(b)}function l(a){a.preventDefault(),a.stopPropagation();var b=a.data;b.$selecter.hasClass("open")&&(b.$itemsWrapper.hide(),b.$selecter.removeClass("open bottom").addClass("closed"),E.off(".selecter-"+b.guid))}function m(b){b.preventDefault(),b.stopPropagation();var c=a(this),d=b.data;if(!d.$select.is(":disabled")){if(d.$itemsWrapper.is(":visible")){var e=d.$items.index(c);e!==d.index&&(r(e,d),t(d))}d.multiple||l(b)}}function n(b,c){var d=a(this),e=b.data;if(!c&&!e.multiple){var f=e.$options.index(e.$options.filter("[value='"+w(d.val())+"']"));r(f,e),t(e)}}function o(b){b.preventDefault(),b.stopPropagation();var c=b.data;c.$select.is(":disabled")||c.multiple||(c.$selecter.addClass("focus").on("keydown.selecter-"+c.guid,c,q),a(".selecter").not(c.$selecter).trigger("close.selecter",[c]))}function p(b){b.preventDefault(),b.stopPropagation();var c=b.data;c.$selecter.removeClass("focus").off("keydown.selecter-"+c.guid),a(".selecter").not(c.$selecter).trigger("close.selecter",[c])}function q(b){var c=b.data;if(13===b.keyCode)c.$selecter.hasClass("open")&&(l(b),r(c.index,c)),t(c);else if(!(9===b.keyCode||b.metaKey||b.altKey||b.ctrlKey||b.shiftKey)){b.preventDefault(),b.stopPropagation();var d=c.$items.length-1,e=c.index<0?0:c.index;if(a.inArray(b.keyCode,B?[38,40,37,39]:[38,40])>-1)e+=38===b.keyCode||B&&37===b.keyCode?-1:1,0>e&&(e=0),e>d&&(e=d);else{var f,g,h=String.fromCharCode(b.keyCode).toUpperCase();for(g=c.index+1;d>=g;g++)if(f=c.$options.eq(g).text().charAt(0).toUpperCase(),f===h){e=g;break}if(0>e||e===c.index)for(g=0;d>=g;g++)if(f=c.$options.eq(g).text().charAt(0).toUpperCase(),f===h){e=g;break}}e>=0&&(r(e,c),s(c))}}function r(a,b){var c=b.$items.eq(a),d=c.hasClass("selected"),e=c.hasClass("disabled");if(!e)if(b.multiple)d?(b.$options.eq(a).prop("selected",null),c.removeClass("selected")):(b.$options.eq(a).prop("selected",!0),c.addClass("selected"));else if(a>-1&&a<b.$items.length){{var f=c.html();c.data("value")}b.$selected.html(f).removeClass("placeholder"),b.$items.filter(".selected").removeClass("selected"),b.$select[0].selectedIndex=a,c.addClass("selected"),b.index=a}else""!==b.label&&b.$selected.html(b.label)}function s(b){var c=b.$items.eq(b.index),d=b.index>=0&&!c.hasClass("placeholder")?c.position():{left:0,top:0};void 0!==a.fn.scroller?b.$itemsWrapper.scroller("scroll",b.$itemsWrapper.find(".scroller-content").scrollTop()+d.top,0).scroller("reset"):b.$itemsWrapper.scrollTop(b.$itemsWrapper.scrollTop()+d.top)}function t(a){a.links?u(a):(a.callback.call(a.$selecter,a.$select.val(),a.index),a.$select.trigger("change",[!0]))}function u(a){var c=a.$select.val();a.external?b.open(c):b.location.href=c}function v(a,b){return 0===b?a:a.length>b?a.substring(0,b)+"...":a}function w(a){return"string"==typeof a?a.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1"):a}function x(a,b,c,d){return y(a,d),d===!0?setInterval(c,b):setTimeout(c,b)}function y(a){null!==a&&(clearInterval(a),a=null)}var z=0,A=b.navigator.userAgent||b.navigator.vendor||b.opera,B=/Firefox/i.test(A),C=/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(A),D=B&&C,E=null,F={callback:a.noop,cover:!1,customClass:"",label:"",external:!1,links:!1,mobile:!1,trim:0},G={defaults:function(b){return F=a.extend(F,b||{}),a(this)},disable:function(b){return a(this).each(function(c,d){var e=a(d).parent(".selecter").data("selecter");if(e)if("undefined"!=typeof b){var f=e.$items.index(e.$items.filter("[data-value="+b+"]"));e.$items.eq(f).addClass("disabled"),e.$options.eq(f).prop("disabled",!0)}else e.$selecter.hasClass("open")&&e.$selecter.find(".selecter-selected").trigger("click.selecter"),e.$selecter.addClass("disabled"),e.$select.prop("disabled",!0)})},destroy:function(){return a(this).each(function(b,c){var d=a(c).parent(".selecter").data("selecter");d&&(d.$selecter.hasClass("open")&&d.$selecter.find(".selecter-selected").trigger("click.selecter"),void 0!==a.fn.scroller&&d.$selecter.find(".selecter-options").scroller("destroy"),d.$select[0].tabIndex=d.tabIndex,d.$select.find(".selecter-placeholder").remove(),d.$selected.remove(),d.$itemsWrapper.remove(),d.$selecter.off(".selecter"),d.$select.off(".selecter").removeClass("selecter-element").show().unwrap())})},enable:function(b){return a(this).each(function(c,d){var e=a(d).parent(".selecter").data("selecter");if(e)if("undefined"!=typeof b){var f=e.$items.index(e.$items.filter("[data-value="+b+"]"));e.$items.eq(f).removeClass("disabled"),e.$options.eq(f).prop("disabled",!1)}else e.$selecter.removeClass("disabled"),e.$select.prop("disabled",!1)})},refresh:function(){return G.update.apply(a(this))},update:function(){return a(this).each(function(b,c){var d=a(c).parent(".selecter").data("selecter");if(d){var f=d.index;d.$allOptions=d.$select.find("option, optgroup"),d.$options=d.$allOptions.filter("option"),d.index=-1,f=d.$options.index(d.$options.filter(":selected")),e(d),d.multiple||r(f,d)}})}};a.fn.selecter=function(a){return G[a]?G[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?this:c.apply(this,arguments)},a.selecter=function(a){"defaults"===a&&G.defaults.apply(this,Array.prototype.slice.call(arguments,1))}}(jQuery,window);
 
 
 
 
 
 
 
 
 
assets/js/wpdatatables/wdt.chartWizard.js CHANGED
@@ -719,11 +719,17 @@ var wdtChartColumnsData = {};
719
 
720
  } else {
721
  if (editing_chart_data.render_data.options.backgroundColor.fill) {
722
- $('#background-color-container').colorpicker('setValue', editing_chart_data.render_data.options.backgroundColor.fill);
 
 
 
723
  }
724
  $('#border-width').val(editing_chart_data.render_data.options.backgroundColor.strokeWidth);
725
  if (editing_chart_data.render_data.options.backgroundColor.stroke) {
726
- $('#border-color-container').colorpicker('setValue', editing_chart_data.render_data.options.backgroundColor.stroke);
 
 
 
727
  }
728
  $('#border-radius').val(editing_chart_data.render_data.options.backgroundColor.rx);
729
  }
@@ -734,11 +740,17 @@ var wdtChartColumnsData = {};
734
  $('input.plot-border-color').val('');
735
  } else {
736
  if (editing_chart_data.render_data.options.chartArea.backgroundColor.fill) {
737
- $('#plot-background-color-container').colorpicker('setValue', editing_chart_data.render_data.options.chartArea.backgroundColor.fill);
 
 
 
738
  }
739
  $('#plot-border-width').val(editing_chart_data.render_data.options.chartArea.backgroundColor.strokeWidth);
740
  if (editing_chart_data.render_data.options.chartArea.backgroundColor.stroke) {
741
- $('#plot-border-color-container').colorpicker('setValue', editing_chart_data.render_data.options.chartArea.backgroundColor.stroke);
 
 
 
742
  }
743
  }
744
 
719
 
720
  } else {
721
  if (editing_chart_data.render_data.options.backgroundColor.fill) {
722
+ $('#background-color').val(editing_chart_data.render_data.options.backgroundColor.fill)
723
+ .closest('.wdt-color-picker')
724
+ .find('.wpcolorpicker-icon i')
725
+ .css("background", editing_chart_data.render_data.options.backgroundColor.fill);
726
  }
727
  $('#border-width').val(editing_chart_data.render_data.options.backgroundColor.strokeWidth);
728
  if (editing_chart_data.render_data.options.backgroundColor.stroke) {
729
+ $('#border_color').val(editing_chart_data.render_data.options.backgroundColor.stroke)
730
+ .closest('.wdt-color-picker')
731
+ .find('.wpcolorpicker-icon i')
732
+ .css("background", editing_chart_data.render_data.options.backgroundColor.stroke);
733
  }
734
  $('#border-radius').val(editing_chart_data.render_data.options.backgroundColor.rx);
735
  }
740
  $('input.plot-border-color').val('');
741
  } else {
742
  if (editing_chart_data.render_data.options.chartArea.backgroundColor.fill) {
743
+ $('#plot-background-color').val(editing_chart_data.render_data.options.chartArea.backgroundColor.fill)
744
+ .closest('.wdt-color-picker')
745
+ .find('.wpcolorpicker-icon i')
746
+ .css("background", editing_chart_data.render_data.options.chartArea.backgroundColor.fill);
747
  }
748
  $('#plot-border-width').val(editing_chart_data.render_data.options.chartArea.backgroundColor.strokeWidth);
749
  if (editing_chart_data.render_data.options.chartArea.backgroundColor.stroke) {
750
+ $('#plot-border-color').val(editing_chart_data.render_data.options.chartArea.backgroundColor.stroke)
751
+ .closest('.wdt-color-picker')
752
+ .find('.wpcolorpicker-icon i')
753
+ .css("background", editing_chart_data.render_data.options.chartArea.backgroundColor.stroke);
754
  }
755
  }
756
 
assets/js/wpdatatables/wdt.excel.min.js DELETED
@@ -1 +0,0 @@
1
- function wdtStripTags(t,e){var i=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,o=/<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;return e=(((e||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join(""),t.replace(o,"").replace(i,function(t,i){return e.indexOf("<"+i.toLowerCase()+">")>-1?t:""})}!function(t,e){function i(){var e=t.editors.TextEditor.prototype.extend();e.prototype.bindEvents=function(){this.eventManager.addEventListener(this.TEXTAREA,"keydown",function(e){e.which==t.helper.KEY_CODES.ENTER&&t.Dom.stopImmediatePropagation(e)})},t.editors.ExcelMultilineEditor=e,t.editors.registerEditor("wdt.text_multiline",e)}function o(){var e=t.editors.TextEditor.prototype.extend();e.prototype.init=function(){t.editors.TextEditor.prototype.init.apply(this,arguments);var e=this.instance.getSettings();this.time_format=e.timeFormat;var i=this;this.instance.addHook("afterDestroy",function(){i.parentDestroyed=!0,i.destroyElements()})},e.prototype.createElements=function(){t.editors.TextEditor.prototype.createElements.apply(this,arguments),this.TEXTAREA=document.createElement("input"),this.TEXTAREA.className="wdt-datepicker",this.textareaStyle=this.TEXTAREA.style,this.textareaStyle.width=0,this.textareaStyle.height=0,t.Dom.empty(this.TEXTAREA_PARENT),this.TEXTAREA_PARENT.appendChild(this.TEXTAREA)},e.prototype.onBeforeKeyDown=function(e){switch(e.keyCode){case t.helper.KEY_CODES.ESCAPE:this.getActiveEditor().finishEditing(!0);break;case t.helper.KEY_CODES.ARROW_DOWN:case t.helper.KEY_CODES.ARROW_UP:}},e.prototype.beginEditing=function(e){t.editors.TextEditor.prototype.beginEditing.apply(this,arguments)},e.prototype.discardEditor=function(e){t.editors.TextEditor.prototype.discardEditor.apply(this,arguments),this.instance.getCellMeta(this.row,this.col).allowInvalid||e||this.$timePicker.$node.is(":visible")||this.$timePicker.open()},e.prototype.open=function(){this.instance.addHook("beforeKeyDown",this.onBeforeKeyDown),t.editors.TextEditor.prototype.open.apply(this,arguments)},e.prototype.beginEditing=function(){t.editors.TextEditor.prototype.beginEditing.apply(this,arguments)},e.prototype.focus=function(e){t.editors.DateEditor.prototype.focus.apply(this,arguments)},e.prototype.close=function(){this.instance.removeHook("beforeKeyDown",this.onBeforeKeyDown),t.editors.TextEditor.prototype.close.apply(this,arguments)},e.prototype.finishEditing=function(){var e=void 0!==arguments[0]&&arguments[0];void 0!==arguments[1]&&arguments[1];if(e){var i=this.originalValue;void 0!==i&&this.setValue(i)}t.editors.TextEditor.prototype.finishEditing.apply(this,arguments)},e.prototype.prepare=function(e,i,o,r,n,s){if(n&&"0000-00-00"!=n||(n=""),n&&!this.same_display_and_edit_format){var a=this.instance.getSettings();n=moment(n,a.dataSourceDateFormat).format(a.displayDateFormat)}t.editors.DateEditor.prototype.prepare.apply(this,arguments)},e.prototype.saveValue=function(e,i){if(e[0][0]&&!this.same_display_and_edit_format){var o=this.instance.getSettings();e[0][0]=moment(e[0][0],o.displayDateFormat).format(o.dataSourceDateFormat)}t.editors.DateEditor.prototype.saveValue.apply(this,arguments)},t.editors.ExcelTimeEditor=e,t.editors.registerEditor("wdt.date",e)}function r(){var e=t.editors.TextEditor.prototype.extend();e.prototype.init=function(){t.editors.TextEditor.prototype.init.apply(this,arguments);var e=this.instance.getSettings();this.time_format=e.timeFormat;var i=this;this.instance.addHook("afterDestroy",function(){i.parentDestroyed=!0,i.destroyElements()})},e.prototype.createElements=function(){t.editors.TextEditor.prototype.createElements.apply(this,arguments),this.TEXTAREA=document.createElement("input"),this.TEXTAREA.className="wdt-datetimepicker",this.textareaStyle=this.TEXTAREA.style,this.textareaStyle.width=0,this.textareaStyle.height=0,t.Dom.empty(this.TEXTAREA_PARENT),this.TEXTAREA_PARENT.appendChild(this.TEXTAREA)},e.prototype.onBeforeKeyDown=function(e){switch(e.keyCode){case t.helper.KEY_CODES.ESCAPE:this.getActiveEditor().finishEditing(!0);break;case t.helper.KEY_CODES.ARROW_DOWN:case t.helper.KEY_CODES.ARROW_UP:}},e.prototype.beginEditing=function(e){t.editors.TextEditor.prototype.beginEditing.apply(this,arguments)},e.prototype.discardEditor=function(e){t.editors.TextEditor.prototype.discardEditor.apply(this,arguments),this.instance.getCellMeta(this.row,this.col).allowInvalid||e||this.$timePicker.$node.is(":visible")||this.$timePicker.open()},e.prototype.open=function(){this.instance.addHook("beforeKeyDown",this.onBeforeKeyDown),t.editors.TextEditor.prototype.open.apply(this,arguments)},e.prototype.beginEditing=function(){t.editors.TextEditor.prototype.beginEditing.apply(this,arguments)},e.prototype.focus=function(e){t.editors.DateEditor.prototype.focus.apply(this,arguments)},e.prototype.close=function(){this.instance.removeHook("beforeKeyDown",this.onBeforeKeyDown),t.editors.TextEditor.prototype.close.apply(this,arguments)},e.prototype.finishEditing=function(){var e=void 0!==arguments[0]&&arguments[0];void 0!==arguments[1]&&arguments[1];if(e){var i=this.originalValue;void 0!==i&&this.setValue(i)}t.editors.TextEditor.prototype.finishEditing.apply(this,arguments)},e.prototype.prepare=function(e,i,o,r,n,s){if(n&&"0000-00-00 00:00:00"!=n||(n=""),n&&!this.same_display_and_edit_format){var a=this.instance.getSettings();n=moment(n,a.dataSourceDateFormat+" hh:mm:ss").format(a.displayDateFormat+" "+a.momentTimeFormat)}t.editors.DateEditor.prototype.prepare.apply(this,arguments)},e.prototype.saveValue=function(e,i){if(e[0][0]&&!this.same_display_and_edit_format){var o=this.instance.getSettings();e[0][0]=moment(e[0][0],o.displayDateFormat+" "+o.momentTimeFormat).format(o.dataSourceDateFormat+" H:mm:ss")}t.editors.DateEditor.prototype.saveValue.apply(this,arguments)},t.editors.ExcelTimeEditor=e,t.editors.registerEditor("wdt.datetime",e)}function n(){var e=t.editors.TextEditor.prototype.extend();e.prototype.init=function(){t.editors.TextEditor.prototype.init.apply(this,arguments);var e=this.instance.getSettings();this.time_format=e.timeFormat;var i=this;this.instance.addHook("afterDestroy",function(){i.parentDestroyed=!0,i.destroyElements()})},e.prototype.createElements=function(){t.editors.TextEditor.prototype.createElements.apply(this,arguments),this.TEXTAREA=document.createElement("input"),this.TEXTAREA.className="wdt-timepicker",this.textareaStyle=this.TEXTAREA.style,this.textareaStyle.width=0,this.textareaStyle.height=0,t.Dom.empty(this.TEXTAREA_PARENT),this.TEXTAREA_PARENT.appendChild(this.TEXTAREA)},e.prototype.onBeforeKeyDown=function(e){switch(e.keyCode){case t.helper.KEY_CODES.ESCAPE:this.getActiveEditor().finishEditing(!0);break;case t.helper.KEY_CODES.ARROW_DOWN:case t.helper.KEY_CODES.ARROW_UP:}},e.prototype.beginEditing=function(e){t.editors.TextEditor.prototype.beginEditing.apply(this,arguments)},e.prototype.discardEditor=function(e){t.editors.TextEditor.prototype.discardEditor.apply(this,arguments),this.instance.getCellMeta(this.row,this.col).allowInvalid||e||this.$timePicker.$node.is(":visible")||this.$timePicker.open()},e.prototype.open=function(){this.instance.addHook("beforeKeyDown",this.onBeforeKeyDown),t.editors.TextEditor.prototype.open.apply(this,arguments)},e.prototype.beginEditing=function(){t.editors.TextEditor.prototype.beginEditing.apply(this,arguments)},e.prototype.focus=function(e){t.editors.DateEditor.prototype.focus.apply(this,arguments)},e.prototype.close=function(){this.instance.removeHook("beforeKeyDown",this.onBeforeKeyDown),t.editors.TextEditor.prototype.close.apply(this,arguments)},e.prototype.finishEditing=function(){var e=void 0!==arguments[0]&&arguments[0];void 0!==arguments[1]&&arguments[1];if(e){var i=this.originalValue;void 0!==i&&this.setValue(i)}t.editors.TextEditor.prototype.finishEditing.apply(this,arguments)},e.prototype.prepare=function(e,i,o,r,n,s){if(n){var a=this.instance.getSettings();n=moment(n,"H:mm:ss").format(a.momentTimeFormat)}else n="";t.editors.TextEditor.prototype.prepare.apply(this,arguments)},e.prototype.saveValue=function(e,i){if(e[0][0]){var o=this.instance.getSettings();e[0][0]=moment(e[0][0],o.momentTimeFormat).format("H:mm:ss")}t.editors.TextEditor.prototype.saveValue.apply(this,arguments)},t.editors.ExcelTimeEditor=e,t.editors.registerEditor("wdt.time",e)}function s(){var i=t.editors.BaseEditor.prototype.extend();i.prototype.init=function(){this.wdtCustomUploader=wp.media({title:wpdatatables_frontend_strings.select_upload_file,button:{text:wpdatatables_frontend_strings.choose_file},multiple:!1});var t=this,i=this.instance;this.wdtCustomUploader.on("select",function(){var e=t.wdtCustomUploader.state().get("selection").first().toJSON(),o=i.getCellRenderer(t.row,t.col).name,r=e.url;if("wdtImageRenderer"==o)if("image"!=e.type)r="";else{var n=new URI(r);if(n.setQuery({img_width:e.width,img_height:e.height}),r=n.toString(),e.sizes.thumbnail){var s=new URI(e.sizes.thumbnail.url);s.setQuery({img_width:e.sizes.thumbnail.width,img_height:e.sizes.thumbnail.height}),r=s.toString()+"||"+r}}i.setDataAtCell(t.row,t.col,r)}),$browseButton=e('<button class="button-primary">'+wpdatatables_frontend_strings.browse_file+"</button>"),e($browseButton).click(function(t){t.preventDefault(),i.getActiveEditor().wdtCustomUploader.open()}),this.BROWSE_BUTTON=$browseButton[0],this.INPUT_FILE_URL=e('<input type="hidden" />')[0],this.UPLOADED_FILES_ELEMENTS=document.createElement("p"),$editorCnt=e('<div class="wdtAttachmentEditorHolder" ></div>').append(this.UPLOADED_FILES_ELEMENTS,this.BROWSE_BUTTON,this.INPUT_FILE_URL).hide(),this.EDITOR_CONTENT=$editorCnt[0],this.editorContainerStyle=this.EDITOR_CONTENT.style,this.instance.rootElement.appendChild(this.EDITOR_CONTENT)},i.prototype.getValue=function(){return this.INPUT_FILE_URL.value},i.prototype.setValue=function(t){this.INPUT_FILE_URL.value=t;var i="",o=this.instance;if(""!=t){var r=t.split("||")[0];i="wdtImageRenderer"==o.getCellRenderer(this.row,this.col).name?e('<img src="'+r+'" />').css({"max-width":"100px","max-height":"50px"})[0].outerHTML:t.split("/").pop(),i+='<span class="delete_file">[<a href="#">'+wpdatatables_frontend_strings.detach_file+"</a>]</span>"}e(this.UPLOADED_FILES_ELEMENTS).html(i),e(this.UPLOADED_FILES_ELEMENTS).on("click","a",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=o.getActiveEditor();e.setValue("",!1),e.finishEditing(!1,!1)})},i.prototype.open=function(){this.refreshDimensions()},i.prototype.close=function(){this.editorContainerStyle.display="none"},i.prototype.focus=function(){this.BROWSE_BUTTON.focus()},i.prototype.getEditedCell=function(){var t;switch(this.checkEditorSection()){case"top":t=this.instance.view.wt.wtOverlays.topOverlay.clone.wtTable.getCell({row:this.row,col:this.col}),this.editorContainerStyle.zIndex=101;break;case"top-left-corner":t=this.instance.view.wt.wtOverlays.topLeftCornerOverlay.clone.wtTable.getCell({row:this.row,col:this.col}),this.editorContainerStyle.zIndex=103;break;case"bottom-left-corner":t=this.instance.view.wt.wtOverlays.bottomLeftCornerOverlay.clone.wtTable.getCell({row:this.row,col:this.col}),this.editorContainerStyle.zIndex=103;break;case"left":t=this.instance.view.wt.wtOverlays.leftOverlay.clone.wtTable.getCell({row:this.row,col:this.col}),this.editorContainerStyle.zIndex=102;break;case"bottom":t=this.instance.view.wt.wtOverlays.bottomOverlay.clone.wtTable.getCell({row:this.row,col:this.col}),this.editorContainerStyle.zIndex=102;break;default:t=this.instance.getCell(this.row,this.col),this.editorContainerStyle.zIndex=""}return-1!=t&&-2!=t?t:void 0},i.prototype.refreshDimensions=function(){if(this.state===t.EditorState.EDITING)if(this.TD=this.getEditedCell(),this.TD){var e,i=t.Dom.offset(this.TD),o=t.Dom.offset(this.instance.rootElement),r=t.Dom.getScrollableElement(this.TD),n=this.instance.countRows(),s=i.top-o.top-1-(r.scrollTop||0),a=i.left-o.left-1-(r.scrollLeft||0),d=this.instance.getSettings(),l=d.colHeaders?1:0;switch(this.checkEditorSection()){case"top":e=t.Dom.getCssTransform(this.instance.view.wt.wtOverlays.topOverlay.clone.wtTable.holder.parentNode);break;case"left":e=t.Dom.getCssTransform(this.instance.view.wt.wtOverlays.leftOverlay.clone.wtTable.holder.parentNode);break;case"top-left-corner":e=t.Dom.getCssTransform(this.instance.view.wt.wtOverlays.topLeftCornerOverlay.clone.wtTable.holder.parentNode);break;case"bottom-left-corner":e=t.Dom.getCssTransform(this.instance.view.wt.wtOverlays.bottomLeftCornerOverlay.clone.wtTable.holder.parentNode);break;case"bottom":e=t.Dom.getCssTransform(this.instance.view.wt.wtOverlays.bottomOverlay.clone.wtTable.holder.parentNode)}(l&&0===this.instance.getSelected()[0]||d.fixedRowsBottom&&this.instance.getSelected()[0]===n-d.fixedRowsBottom)&&(s+=1),0===this.instance.getSelected()[1]&&(a+=1),e&&-1!=e?this.editorContainerStyle[e[0]]=e[1]:t.Dom.resetCssTransform(this.EDITOR_CONTENT),this.editorContainerStyle.top=s+"px",this.editorContainerStyle.left=a+"px";this.TD.offsetTop,this.instance.view.wt.wtOverlays.topOverlay.getScrollPosition();var p=this.TD.offsetLeft-this.instance.view.wt.wtOverlays.leftOverlay.getScrollPosition(),c=t.Dom.innerWidth(this.TD)-8,h=this.instance.view.maximumVisibleElementWidth(p)-9;this.TD.scrollHeight;this.editorContainerStyle.width=c+"px",this.editorContainerStyle.maxWidth=h+"px",this.editorContainerStyle.display="block"}else this.close(!0)},t.editors.ExcelAttachmentEditor=i,t.editors.registerEditor("wdt.attachment",i)}function a(){var e=t.editors.DropdownEditor.prototype.extend();e.confirmWdtDropdownCellValidate=function(t,e,i,o,r){var n=this.propToCol(o),s=this.getCellMeta(i,n);if(t&&"function"==typeof s.cell_validator){var a=!1;return s.cell_validator(e,function(t){return a=t}),a}return t},e.prototype.open=function(){t.editors.DropdownEditor.prototype.open.apply(this,arguments),this.instance.addHook("afterValidate",e.confirmWdtDropdownCellValidate)},e.prototype.close=function(){t.editors.DropdownEditor.prototype.close.apply(this,arguments),this.instance.removeHook("afterValidate",e.confirmWdtDropdownCellValidate)},t.editors.ExcelDropdownEditor=e,t.editors.registerEditor("wdt.dropdown",e)}function d(){var i=t.editors.ExcelDropdownEditor.prototype.extend();i.onBeforeKeyDown=function(e){switch(e.keyCode){case t.helper.KEY_CODES.ENTER:var o=this.getActiveEditor(),r=o.htEditor.getInstance(),n=r.getSelected();if(n){var s=r.getCell(n[0],n[1]);i.selectDropdownItem(s,r,o)}e.stopImmediatePropagation(),e.preventDefault()}},i.selectDropdownItem=function(t,i,o){var r=e(t),n=r.text();r.children("strong:first-child").length?r.html(n):r.html("<strong>"+n+"</strong>");var s=[];e(i.rootElement).find("td strong:first-child").each(function(){s.push(e(this).text())}),o.setValue(s.join())},i.prototype.open=function(){this.instance.addHook("beforeKeyDown",i.onBeforeKeyDown),t.editors.ExcelDropdownEditor.prototype.open.apply(this,arguments);var o=this.htEditor.getInstance(),r=this,n=o.getSettings();o.removeHook("afterRenderer",o.pluginHookBucket.afterRenderer.slice(-1)[0]),o.removeHook("afterOnCellMouseDown",n.afterOnCellMouseDown),o.updateSettings({afterRenderer:function(i,o,n,s,a){var d=!0===this.getCellMeta(o,n).filteringCaseSensitive;(a=t.helper.stringify(a))&&-1!=(d?e.inArray(a,r.query.split(",")):e.inArray(a.toLowerCase(),r.query.toLowerCase().split(",")))&&(i.innerHTML=a.replace(a,"<strong>"+a+"</strong>"))},afterOnCellMouseDown:function(t,e,n){void 0!==this.getValue()&&i.selectDropdownItem(n,o,r),r.focus()}})},i.prototype.finishEditing=function(i,o){if(this.htEditor&&this.htEditor.isListening()&&this.instance.listen(),this.htEditor){var r=[];e(this.htEditor.getInstance().rootElement).find("td strong:first-child").each(function(){r.push(e(this).text())}),this.setValue(this.TEXTAREA.value)}return t.editors.TextEditor.prototype.finishEditing.apply(this,arguments)},i.prototype.close=function(){t.editors.ExcelDropdownEditor.prototype.close.apply(this,arguments),this.instance.removeHook("beforeKeyDown",i.onBeforeKeyDown)},t.editors.ExcelMultiSelectEditor=i,t.editors.registerEditor("wdt.multi-select",i)}function l(i,o,r,n,s,a,d){if(t.TextRenderer.apply(this,arguments),!a)return o;var l=a.split("||"),p=l[0];if(0==p.length)return o;var c=l.length>1?l[1]:p,h="wdt_link",u="";i.getSettings().readOnly||(h+="_editable",u='title="ctrl+click to open hyperlink:'+p+'"'),e(o).html('<a class="'+h+'" href="'+p+'" target="_blank" '+u+">"+c+"</a>")}function p(i,o,r,n,s,a,d){if(t.TextRenderer.apply(this,arguments),!a)return o;var l=a.split("||"),p=l[0];if(0==p.length)return o;var c=l.length>1?l[1]:p,h="wdt_email",u="";i.getSettings().readOnly||(h+="_editable",u='title="ctrl+click to send email to:'+p+'"'),e(o).html('<a class="'+h+'" href="mailto:'+p+'" '+u+">"+c+"</a>")}function c(e,i,o,r,n,s,a){if(t.TextRenderer.apply(this,arguments),!s)return i;var d=s.split("||"),l=d[0];if(0==l.length)return i;var p=new URI(l),c=p.query(!0),h=p.hasQuery("img_width")?c.img_width:0,u=p.hasQuery("img_height")?c.img_height:0,m="";h>0&&(m+="width:"+h+"px; "),u>0&&(m+="height:"+u+"px;"),m.length>0&&(m='style="'+m+'"');var f="";if(d.length>1&&""!=d[1]){var y=e.getSettings(),E="wdt_link",w="",g=new URI(d[1]);g.removeQuery(["img_width","img_height"]);var v=g.toString();y.readOnly||(E+="_editable",w='title="ctrl+click to open hyperlink:'+v+'"'),f='<a class="'+E+'" href="'+v+'" target="_blank" '+w+">"+('<img class="wpdt-thumb" src="'+l+'" '+m+" />")+"</a>"}else f='<img class="wpdt-thumb" src="'+l+'" '+m+" />";i.innerHTML=f}function h(e,i,o,r,n,s,a){var d=t.helper.stringify(s);return d=wdtStripTags(d,"<br/><br><b><strong><h1><h2><h3><a><i><em><ol><ul><li><img><blockquote><div><hr><p><span><select><option><sup><sub>"),i.innerHTML=d,t.SearchCellDecorator.apply(this,arguments),i}function u(i,o,r,n,s,a,d){if(!a||"0000-00-00"==a)return a="",e(o).html(a),t.AutocompleteRenderer(i,o,r,n,s,a,d),o;var l=i.getSettings();l.dataSourceDateFormat!=l.displayDateFormat&&(a=moment(a,l.dataSourceDateFormat).format(l.displayDateFormat)),t.AutocompleteRenderer(i,o,r,n,s,a,d)}function m(i,o,r,n,s,a,d){if(!a||"0000-00-00 00:00:00"==a)return a="",e(o).html(a),t.AutocompleteRenderer(i,o,r,n,s,a,d),o;var l=i.getSettings();a=l.dataSourceDateFormat!=l.displayDateFormat?moment(a,l.dataSourceDateFormat+" HH:mm:ss").format(l.displayDateFormat+" "+l.momentTimeFormat):moment(a,l.dataSourceDateFormat+" HH:mm:ss").format(l.dataSourceDateFormat+" "+l.momentTimeFormat),t.AutocompleteRenderer(i,o,r,n,s,a,d)}function f(i,o,r,n,s,a,d){if(!a)return a="",e(o).html(a),t.AutocompleteRenderer(i,o,r,n,s,a,d),o;var l=i.getSettings();a=moment(a,"HH:mm:ss").format(l.momentTimeFormat),t.AutocompleteRenderer(i,o,r,n,s,a,d)}var y=t.editors.BaseEditor.prototype.beginEditing;t.editors.BaseEditor.prototype.beginEditing=function(t,e){var i=this.instance.getSettings();if(i.wpDataTablesExcelPlugin&&void 0===t&&!i.readOnly){var o=i.idColumnKey,r=this.instance.getDataAtRowProp(this.row,o),n=this.cellProperties.defaultValue;!r&&n&&(t=n)}y.apply(this,arguments)};var E=t.editors.BaseEditor.prototype.cancelChanges;t.editors.BaseEditor.prototype.cancelChanges=function(){var t=this.instance.getCellMeta(this.row,this.col);if(t.wpDataTablesExcelPlugin){var i=e(document.activeElement).closest("#"+this.instance.rootElement.id+" > div.invalid_editor_value").removeClass("invalid_editor_value");i.length>0&&i.next("div.tooltip:visible").length&&i.tooltip("destroy");var o=this.instance.getCellValidator(this.row,this.col),r=this.instance.getDataAtCell(this.row,this.col);if(o){var n=!1;if("function"==typeof o?o.call(t,r,function(t){return n=t}):o instanceof RegExp&&(n=o.test(r)),n){var s=this.instance.getCell(this.row,this.col),a=e(s),d=t.invalidCellClassName;a.hasClass(d)&&a.removeClass(d)}}}E.apply(this,arguments)},t.wdtLinkValidator=function(t,e){null===t&&(t="");e(""==t||/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?(||.*)?$/i.test(t))},t.wdtEmailValidator=function(t,e){null===t&&(t="");e(""==t||/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+(||.*)?$/.test(t))},t.wdtDateValidator=function(e,i){null===e&&(e=""),""==e?i(!0):t.DateValidator.call(this,e,i)},t.wdtDateTimeValidator=function(t,e){null===t&&(t="");var i=this.instance.getSettings(),o=moment(new Date(t)).isValid(),r=moment(t,i.dataSourceDateFormat+" H:mm:ss",!0).isValid();e(""==t?!0:o&&r)},t.wdtTimeValidator=function(t,e){null===t&&(t="");this.instance.getSettings();var i=moment(t,"H:mm:ss",!0).isValid();e(""==t?!0:i)},t.wdtMultiSelectValidator=function(t,e){var i=!0;if(null===t&&(t=""),this.source){for(var o=t.toLowerCase().split(","),r=this.source.join(",").toLowerCase().split(","),n=0;n<o.length;n++)if(-1==r.indexOf(o[n])){i=!1;break}}else t&&(i=!1);e(i)},function(){i(),o(),r(),n(),s(),a(),d()}(),function(){t.renderers.registerRenderer("text",h),t.renderers.registerRenderer("wdt.date",u),t.renderers.registerRenderer("wdt.datetime",m),t.renderers.registerRenderer("wdt.time",f),t.renderers.registerRenderer("wdt.link",l),t.renderers.registerRenderer("wdt.email",p),t.renderers.registerRenderer("wdt.image",c)}(),function(){t.wdtDateCell={editor:"wdt.date",validator:t.wdtDateValidator,renderer:"wdt.date"},t.wdtTextCell={editor:"text",renderer:"text"},t.wdtDateTimeCell={editor:"wdt.datetime",validator:t.wdtDateTimeValidator,renderer:"wdt.datetime"},t.wdtTimeCell={editor:"wdt.time",validator:t.wdtTimeValidator,renderer:"wdt.time"},t.wdtMultiSelectCell={editor:"wdt.multi-select",validator:t.wdtMultiSelectValidator,renderer:"text"},t.cellTypes.text=t.wdtTextCell,t.cellTypes["wdt.date"]=t.wdtDateCell,t.cellTypes["wdt.datetime"]=t.wdtDateTimeCell,t.cellTypes["wdt.time"]=t.wdtTimeCell,t.cellTypes["wdt.multi-select"]=t.wdtMultiSelectCell}()}(Handsontable,jQuery),"undefined"==typeof wpDataTablesExcelOptions&&(window.wpDtExcelTables={}),function(t){t(function(){t("div.wpExcelTable").handsontable({wpDataTablesExcelPlugin:!0})})}(jQuery);
 
assets/js/wpdatatables/wpdatatables_admin.js DELETED
@@ -1,39 +0,0 @@
1
- /**
2
- * Common JS scripts for wpDataTables admin panel
3
- */
4
-
5
- function wdtAlertDialog(str, title){
6
- var alert_dialog_str = '<div class="remodal wpDataTables wdtRemodal"><h1>'+title+'</h1>';
7
- alert_dialog_str += '<p>'+str+'</p>';
8
- alert_dialog_str += '<button class="remodal-confirm btn" href="#">OK</button></div>';
9
- jQuery(alert_dialog_str).remodal({
10
- type: 'inline',
11
- preloader: false,
12
- modal: true
13
- }).open();
14
- jQuery('#wdtPreloadLayer').hide();
15
- jQuery('.remodal-confirm').focus();
16
- return;
17
- }
18
-
19
- function applySelecter(){
20
- jQuery('select').selecter('destroy');
21
- jQuery('select').selecter();
22
- }
23
-
24
- jQuery(window).load(function(){
25
- postboxes.add_postbox_toggles();
26
-
27
- jQuery(document).on('click','button.showHint',function(e){
28
- e.preventDefault();
29
- e.stopImmediatePropagation();
30
-
31
- if(jQuery(this).parent().find('small.hint').is(':visible')){
32
- jQuery(this).parent().find('small.hint').fadeOut(300);
33
- }else{
34
- jQuery(this).parent().find('small.hint').fadeIn(300);
35
- }
36
-
37
- });
38
-
39
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/wpdatatables/wpdatatables_chart_wizard.js DELETED
@@ -1,51 +0,0 @@
1
- if( typeof constructedChartData == 'undefined' ){
2
- var constructedChartData = {};
3
- }
4
-
5
- var wdtChartColumnsData = {};
6
-
7
- (function($){
8
- var wdtChartPickerDragStart = 0;
9
- var wdtChartPickerDragEnd = 0;
10
- var wdtChartPickerIsDragging = false;
11
-
12
- // Init selecter
13
- $('#chart_render_engine, #wpdatatables_chart_source, #wdt_chart_row_range_type, #wdt_chart_series_setting').selecter();
14
-
15
- // Init remodal popup
16
- $('div.pickRange').remodal({
17
- type: 'inline',
18
- preloader: false,
19
- modal: true
20
- })
21
-
22
- $('#google_chart_type').imagepicker({ show_label: true });
23
- $('#highcharts_chart_type').imagepicker({ show_label: true });
24
-
25
-
26
-
27
- /**
28
- * Pick the chart type
29
- */
30
- $('#chart_render_engine').change(function(e){
31
- e.preventDefault();
32
- $('tr.charts_type').hide();
33
- if($(this).val() != ''){
34
- constructedChartData.chart_engine = $(this).val();
35
- if( $(this).val() == 'google' ){
36
- $('tr.google_charts_type').show();
37
- }
38
- if( $(this).val() == 'highcharts' ){
39
- $('tr.highcharts_charts_type').show();
40
- }
41
- $('#nextStep').show();
42
- }else{
43
- $('#nextStep').hide();
44
- }
45
- });
46
-
47
-
48
-
49
-
50
- })(jQuery);
51
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/wpdatatables/wpdatatables_edit_table.js DELETED
@@ -1,902 +0,0 @@
1
- var columnTypes = [
2
- { name: 'string', value: 'String' },
3
- { name: 'int', value: 'Integer' },
4
- { name: 'float', value: 'Float' },
5
- { name: 'date', value: 'Date' },
6
- { name: 'datetime', value: 'DateTime' },
7
- { name: 'time', value: 'Time' },
8
- { name: 'link', value: 'URL link' },
9
- { name: 'email', value: 'E-mail link' },
10
- { name: 'image', value: 'Image' }
11
- ];
12
-
13
- var filterTypes = [
14
- { name: 'none', value: 'None' },
15
- { name: 'text', value: 'Text' },
16
- { name: 'number', value: 'Number' },
17
- { name: 'number-range', value: 'Number range' },
18
- { name: 'date-range', value: 'Date range' },
19
- { name: 'datetime-range', value: 'Datetime range' },
20
- { name: 'time-range', value: 'Time range' },
21
- { name: 'select', value: 'Select box' },
22
- { name: 'checkbox', value: 'Checkbox' }
23
- ];
24
-
25
- var editorTypes = [
26
- { name: 'none', value: 'None' },
27
- { name: 'text', value: 'One-line edit' },
28
- { name: 'textarea', value: 'Multi-line edit' },
29
- { name: 'mce-editor', value: 'HTML editor' },
30
- { name: 'selectbox', value: 'Single-value selectbox' },
31
- { name: 'multi-selectbox', value: 'Multi-value selectbox' },
32
- { name: 'date', value: 'Date' },
33
- { name: 'datetime', value: 'Datetime' },
34
- { name: 'time', value: 'Time' },
35
- { name: 'link', value: 'URL link' },
36
- { name: 'email', value: 'E-mail link' },
37
- { name: 'attachment', value: 'Attachment' }
38
- ];
39
-
40
- var createColumnsBlock;
41
- var updateColumnPositions;
42
- var custom_uploader;
43
- var aceEditor = null;
44
- var wdtFormulaColumnsCount = 0;
45
- var $currentFormattingRulesContainer = null;
46
- var $currentFormulaContainer = null;
47
- var columnsToDelete = [];
48
- var wdtDateFormat = jQuery('#wdt_date_format').val().replace(/y/g, 'yy').replace(/Y/g, 'yyyy').replace(/M/g, 'mmm');
49
- var $clickedSaveButton = null;
50
- var wdtConfigChanged = false;
51
- var additional_options;
52
-
53
- (function($){
54
-
55
- createColumnsBlock = function( columns, singleColumn ){
56
- var block_html = '';
57
- if( typeof singleColumn === 'undefined' ){ singleColumn = false; }
58
-
59
- var columnsTableTmpl= $.templates("#columnsTableTmpl")
60
- block_html = columnsTableTmpl.render({
61
- columns_data: columns,
62
- filterTypes: filterTypes,
63
- columnTypes: columnTypes,
64
- editorTypes: editorTypes,
65
- singleColumn: singleColumn,
66
- tableEditable: $('#wpTableEditable').is(':checked') || $('#wdt_table_manual').val() == '1' ? 1 : 0,
67
- tableServerSide: $('#wpServerSide').is(':checked') || $('#wdt_table_manual').val() == '1' ? 1 : 0,
68
- tableType: ( $('#wdt_table_manual').val() == '1' )? 'manual': $('#wpTableType').val()
69
- });
70
-
71
- // Also updating colums dropdowns for Editable tables
72
- if( !singleColumn ){
73
- var id_column = $('#wdtIdColumn').val();
74
- var user_id_column = $('#wpUserIdColumn').val();
75
- $('#wdtIdColumn').html('<option value="">'+wpdatatables_edit_strings.choose_id_column+'</option>');
76
- $('#wpUserIdColumn').html('<option value="">'+wpdatatables_edit_strings.choose_user_id_column+'</option>');
77
- wdtFormulaColumnsCount = 0;
78
- for( var i in columns ){
79
- $('#wdtIdColumn').append('<option value="'+columns[i].id+'">'+columns[i].orig_header+'</option>');
80
- $('#wpUserIdColumn').append('<option value="'+columns[i].id+'">'+columns[i].orig_header+'</option>');
81
- if( columns[i].column_type == 'formula' ){ wdtFormulaColumnsCount++; }
82
- }
83
- $('#wdtIdColumn').val( id_column ).selecter('update');
84
- $('#wpUserIdColumn').val( user_id_column ).selecter('update');
85
- }
86
-
87
- return block_html;
88
- }
89
-
90
- function applyColumnsBlock( columns_block ) {
91
- $('tr.step2_row td.columnsBlock').html(columns_block);
92
-
93
- $('tr.step2_row td.columnsBlock input.possibleValues').tagsInput({
94
- 'height':'',
95
- 'width':'auto',
96
- 'defaultText':'',
97
- 'delimiter': ['|'], // Or a string with a single delimiter. Ex: ';'
98
- });
99
- }
100
-
101
- updateColumnPositions = function(){
102
- $('tr.sort_columns_block > td').each(function(){
103
- $(this).find('input.columnPos').val($('tr.sort_columns_block > td').index(this));
104
- });
105
- wdtConfigChanged = true;
106
- }
107
-
108
- function applySortable(){
109
- $('tr.sort_columns_block').sortable({
110
- stop: updateColumnPositions
111
- });
112
- }
113
-
114
- $(document).ready(function(){
115
-
116
- $('#wpTableType').change(function(){
117
- if($(this).val()=='mysql'){
118
- $('tr.mysqlquery_row').show();
119
- $('tr.inputfile_row').hide();
120
- $('tr.serverside_row').show();
121
- $('tr.table_editable_row').show();
122
- }else if($(this).val() != ''){
123
- $('tr.mysqlquery_row').hide();
124
- $('tr.inputfile_row').show();
125
- $('tr.serverside_row').hide();
126
- $('tr.table_editable_row').hide();
127
- $('tr.table_mysql_name_row').hide();
128
- $('tr.editable_table_column_row').hide();
129
- if( $(this).val() == 'google_spreadsheet' ){
130
- $('#wpUploadFileBtn').hide();
131
- }else{
132
- $('#wpUploadFileBtn').show();
133
- }
134
- }else{
135
- $('tr.mysqlquery_row').hide();
136
- $('tr.inputfile_row').hide();
137
- $('tr.serverside_row').hide();
138
- $('tr.table_editable_row').hide();
139
- $('tr.editable_table_column_row').hide();
140
- $('tr.table_mysql_name_row').hide();
141
- }
142
- });
143
-
144
- $('#wpTableEditable').change(function(){
145
- if($(this).is(':checked')){
146
- $('tr.table_mysql_name_row').show();
147
- $('tr.editor_roles_row').show();
148
- $('tr.editable_table_column_row').show();
149
- $('#wpServerSide').attr('checked','checked');
150
- $('input.groupColumn').removeAttr('checked');
151
- $('tr.editing_own_rows_row').show();
152
- $('tr.id_column_row').show();
153
- $('tr.table_inline_editing_row').show();
154
- $('tr.table_popover_tools_row').show();
155
- // Try to guess what is the ID columns for editing
156
- if( $('#wdtIdColumn').val() == '' ){
157
- $('#wdtIdColumn option').each(function(){
158
- if( $.inArray( $.trim($(this).text()), ['id','ID', 'wdt_ID']) !== -1 ){
159
- $(this).prop('selected', true);
160
- $('#wdtIdColumn').selecter('update');
161
- return false;
162
- }
163
- });
164
- }
165
- }else{
166
- $('tr.table_mysql_name_row').hide();
167
- $('tr.editable_table_column_row').hide();
168
- $('tr.editor_roles_row').hide();
169
- $('tr.editing_own_rows_row').hide();
170
- $('tr.user_id_row').hide();
171
- $('tr.id_column_row').hide();
172
- $('tr.table_inline_editing_row').hide();
173
- $('tr.table_popover_tools_row').hide();
174
- $('#wpTableEditingOwnRowsOnly').prop('checked',false).change();
175
- }
176
- });
177
-
178
- $('#wpTableEditingOwnRowsOnly').change(function(){
179
- if( $(this).is(':checked') ){
180
- $('tr.user_id_row').show();
181
- }else{
182
- $('tr.user_id_row').hide();
183
- }
184
- })
185
-
186
- /**
187
- * Trigger change flag on any change
188
- */
189
- $(document).on('change','#wpDataTablesSettings input,#wpDataTablesSettings select,#wpDataTablesSettings textarea', function(e){
190
- e.preventDefault();
191
- wdtConfigChanged = true;
192
- });
193
-
194
- $('#wpServerSide').change(function(){
195
- if(!$(this).is(':checked')){
196
- $('#wpTableEditable').removeAttr('checked').change();
197
- $('#wpTableInlineEditing').removeAttr('checked').change();
198
- $('#wpTablePopoverTools').removeAttr('checked').change();
199
- $('tr.autorefresh_row').hide();
200
- }else{
201
- $('tr.autorefresh_row').show();
202
- }
203
- });
204
- $('#wpServerSide').change();
205
- if( $('#wdt_table_manual').val() == '1' ){
206
- $('tr.autorefresh_row').show();
207
- }
208
-
209
- $('#wpTableEditable').change();
210
-
211
- $('#wdtResponsive').change(function(){
212
- if($(this).is(':checked')){
213
- $('tr.responsive_table_column_row').show();
214
- }else{
215
- $('tr.responsive_table_column_row').hide();
216
- }
217
- });
218
-
219
- $('#wdtResponsive').change();
220
-
221
- // Show editor roles picker for manually created tables
222
- if( $('#wdt_table_manual').val() == '1' ){
223
- $('.table_editable_row').show();
224
- $('#wpTableMysqlName').attr('disabled','disabled');
225
- }
226
-
227
- $('#wpUploadFileBtn').click(function(e) {
228
- e.preventDefault();
229
- e.stopImmediatePropagation();
230
- e.preventDefault();
231
-
232
- var mediaType;
233
-
234
- if($('#wpTableType').val() == 'xls'){
235
- mediaType = 'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
236
- }else if($('#wpTableType').val() == 'csv'){
237
- mediaType = 'text/csv';
238
- }
239
-
240
- // Extend the wp.media object
241
- custom_uploader = wp.media.frames.file_frame = wp.media({
242
- title: wpdatatables_edit_strings.select_excel_csv,
243
- button: {
244
- text: wpdatatables_edit_strings.choose_file
245
- },
246
- multiple: false,
247
- library: {
248
- type: mediaType
249
- }
250
- });
251
-
252
- // When a file is selected, grab the URL and set it as the text field's value
253
- custom_uploader.on('select', function() {
254
- attachment = custom_uploader.state().get('selection').first().toJSON();
255
- $('#wpInputFile').val(attachment.url);
256
- });
257
-
258
- //Open the uploader dialog
259
- custom_uploader.open();
260
-
261
- });
262
-
263
- var full_version_message = function(){
264
- if( $(this).is(':checked') || $(this).hasClass('addFormulaButton') || $(this).hasClass('define_formatting_rules') ) {
265
- wdtAlertDialog("Sorry, this function is available only in Premium version of wpDataTables along with many others! Please go to our <a href='http://wpdatatables.com/'>website</a> to see the full list and to purchase!","Full version only!");
266
- }
267
- if( $(this).hasClass('addFormulaButton') || $(this).hasClass('define_formatting_rules') ) {
268
- return false;
269
- }
270
- }
271
-
272
- $(document).on('click', '.full_version_option, button.addFormulaButton, button.define_formatting_rules', full_version_message);
273
-
274
- window.send_to_editor = function(html) {
275
- // adding a wrapper so $ could find the element
276
- html = '<span>'+html+'</span>';
277
- file_url = $('a',html).attr('href');
278
- $('#wpInputFile').val(file_url).change();
279
- tb_remove();
280
- };
281
-
282
- $('.submitStep1').click(function(e){
283
- e.preventDefault();
284
- e.stopImmediatePropagation();
285
- $clickedSaveButton = $(this);
286
- saveTable();
287
- });
288
-
289
- $('.submitStep2').click(function(e){
290
- e.preventDefault();
291
- $clickedSaveButton = $(this);
292
- e.stopImmediatePropagation();
293
- saveTable();
294
- });
295
-
296
- // Toggle 'show SUM' checkbox for float and integer columns
297
- $(document).on('change','select.columnType',function(){
298
- if( ( $(this).val() == 'float' ) || ( $(this).val() == 'int' ) ){
299
- $(this).closest('tbody').find('tr.sum_row').show();
300
- if( $(this).val() == 'int' ){
301
- $(this).closest('tbody').find('tr.skip_ts_row').show();
302
- }else{
303
- $(this).closest('tbody').find('tr.skip_ts_row').hide();
304
- }
305
- }else{
306
- $(this).closest('tbody').find('tr.sum_row').hide();
307
- $(this).closest('tbody').find('tr.sum_row input').prop('checked', false);
308
- $(this).closest('tbody').find('tr.skip_ts_row').hide();
309
- $(this).closest('tbody').find('tr.skip_ts_row input').prop('checked', false);
310
- }
311
-
312
- })
313
-
314
- /**
315
- * Collect columns data from block
316
- */
317
- var collectColumnsData = function(){
318
- var columns = [];
319
- $('td.columnsBlock table.column_table').each(function(){
320
- var column = {};
321
- column.id = $(this).attr('rel');
322
- column.orig_header = $(this).find('tr.columnHeaderRow td b').text();
323
- column.css_class = $(this).find('input.cssClasses').val();
324
- column.display_header = $(this).find('input.displayHeader').val();
325
- column.possible_values = $(this).find('input.possibleValues').val();
326
- column.default_value = $(this).find('input.defaultValue').val();
327
- column.filter_type = $(this).find('select.filterType').val();
328
- if( $(this).hasClass('formula_column') ){
329
- column.column_type = 'formula';
330
- column.calc_formula = $(this).find('input.calc_formula').val();
331
- column.input_type = 'none';
332
- column.input_mandatory = 0;
333
- }else{
334
- column.column_type = $(this).find('select.columnType').val();
335
- column.calc_formula = '';
336
- column.input_type = $(this).find('select.inputType').val();
337
- column.input_mandatory = $(this).find('input.mandatoryInput').is(':checked') ? 1 : 0;
338
- }
339
- column.id_column = ($('#wpTableEditable').is(':checked') && ( $('#wdtIdColumn').val() != '' ) && ( column.id == $('#wdtIdColumn').val() ));
340
- column.group_column = $(this).find('input.groupColumn').is(':checked');
341
- column.sort_column = $(this).find('input.sortColumn').is(':checked') ? $(this).find('input.sortColumn:checked').val() : 0;
342
- column.hide_on_phones = $(this).find('.hideOnPhones').is(':checked');
343
- column.hide_on_tablets = $(this).find('.hideOnTablets').is(':checked');
344
- column.use_in_chart = false; // deprecated
345
- column.chart_horiz_axis = false; // deprecated
346
- column.pos = $(this).find('input.columnPos').val();
347
- column.width = $(this).find('input.columnWidth').val();
348
- column.text_before = $(this).find('input.textBefore').val();
349
- column.text_after = $(this).find('input.textAfter').val();
350
- column.formatting_rules = $(this).find('input.formatting_rules').val();
351
- column.visible = $(this).find('input.columnVisible').is(':checked');
352
- column.color = $(this).find('input.color').val();
353
- column.sum_column = $(this).find('input.sumColumn').is(':checked') ? 1 : 0;
354
- column.skip_thousands_separator = $(this).find('input.skip_thousands_separator').is(':checked') ? 1 : 0;
355
- columns.push(column);
356
- });
357
- return columns;
358
- }
359
-
360
- /**
361
- * Save table
362
- */
363
- var saveTable = function( callback ){
364
- if( typeof callback == 'undefined' ){ callback = false; }
365
- var valid = true;
366
- if($('#wpTableType').val()==''){
367
- wdtAlertDialog(wpdatatables_edit_strings.table_type_not_empty,wpdatatables_edit_strings.error_label);
368
- valid = false;
369
- $('#wpTableType').closest('tr').addClass('error');
370
- }else{
371
- $('#wpTableType').closest('tr').removeClass('error');
372
- }
373
- if( $('#wpTableType').val() == 'mysql' ){
374
- if( aceEditor.getValue() == '' ){
375
- wdtAlertDialog(wpdatatables_edit_strings.mysql_query_cannot_be_empty,wpdatatables_edit_strings.error_label);
376
- $('tr.mysqlquery_row').addClass('error');
377
- valid = false;
378
- }else{
379
- $('tr.mysqlquery_row').removeClass('error');
380
- }
381
- }else if($('#wpTableType').val()!=''){
382
- if( $('#wpInputFile').val() == '' ){
383
- wdtAlertDialog( wpdatatables_edit_strings.table_input_source_not_empty, wpdatatables_edit_strings.error_label );
384
- valid = false;
385
- $('tr.inputfile_row').addClass('error');
386
- }else{
387
- $('tr.inputfile_row').removeClass('error');
388
- }
389
- }
390
- if($('#wpTableEditable').is(':checked')){
391
- if($('#wpTableMysqlName').val()==''){
392
- wdtAlertDialog(wpdatatables_edit_strings.mysql_table_name_not_set,wpdatatables_edit_strings.error_label);
393
- $('tr.table_mysql_name_row').addClass('error');
394
- valid = false;
395
- }
396
- }else{
397
- $('tr.table_mysql_name_row').removeClass('error');
398
- }
399
- if( $('#wpTableEditingOwnRowsOnly').is(':checked')
400
- && ( $('#wpUserIdColumn').val() == '' ) ){
401
- wdtAlertDialog(wpdatatables_edit_strings.userid_column_not_set,wpdatatables_edit_strings.error_label);
402
- $('tr.user_id_row').addClass('error');
403
- valid = false;
404
- }else{
405
- $('tr.user_id_row').removeClass('error');
406
- }
407
-
408
- if( !valid ){ return; }
409
-
410
- // collecting table settings data
411
- var data = { };
412
- data.action = 'wdt_save_table';
413
- data.table_title = $('#wpTableTitle').val();
414
- data.show_title = $('#wpShowTableTitle').is(':checked') ? 1 : 0;
415
- data.table_type = $('#wpTableType').val();
416
- data.columns_to_delete = columnsToDelete;
417
- data.wdtSaveTableNonce = $('#wdtSaveTableNonce').val();
418
-
419
- if( $( '#wdt_table_manual' ).val() == '1' ){
420
- data.table_type = 'manual';
421
- }
422
-
423
- if(data.table_type == 'mysql'){
424
- data.table_content = aceEditor.getValue();
425
- }else{
426
- data.table_content = $('#wpInputFile').val();
427
- }
428
- data.table_editable = $('#wpTableEditable').is(':checked');
429
- data.table_inline_editing = $('#wpTableInlineEditing').is(':checked');
430
- data.table_popover_tools = $('#wpTablePopoverTools').is(':checked');
431
- data.responsive = $('#wdtResponsive').is(':checked');
432
- data.scrollable = $('#wdtScrollable').is(':checked');
433
- data.table_mysql_name = $('#wpTableMysqlName').val();
434
- data.edit_only_own_rows = $('#wpTableEditingOwnRowsOnly').is(':checked') ? 1 : 0;
435
- data.userid_column_id = $('#wpUserIdColumn').val();
436
- data.editor_roles = $('#wpTableEditorRoles').html()
437
- data.table_advanced_filtering = $('#wpAdvancedFilter').is(':checked');
438
- data.table_filter_form = $('#wpAdvancedFilterForm').is(':checked');
439
- data.table_tools = $('#wpTableTools').is(':checked');
440
- if( data.table_tools ){
441
- data.table_tools_config = {
442
- columns: $('#wdtTTColumns').is(':checked') ? 1 : 0,
443
- print: $('#wdtTTPrint').is(':checked') ? 1 : 0,
444
- copy: $('#wdtTTCopy').is(':checked') ? 1 : 0,
445
- excel: $('#wdtTTExcel').is(':checked') ? 1 : 0,
446
- csv: $('#wdtTTCSV').is(':checked') ? 1 : 0,
447
- pdf: $('#wdtTTPDF').is(':checked') ? 1 : 0
448
- }
449
- }
450
- data.table_sorting = $('#wpSortByColumn').is(':checked');
451
- data.fixed_layout = $('#wpFixedLayout').is(':checked');
452
- data.word_wrap = $('#wpWordWrap').is(':checked');
453
- data.table_display_length = $('#wpDisplayLength').val();
454
- data.table_fixheader = false;
455
- data.table_fixcolumns = 0;
456
- data.table_chart = 'none';
457
- data.table_charttitle = '';
458
- data.table_serverside = $('#wpServerSide').is(':checked');
459
- if( data.table_serverside ){
460
- data.table_auto_refresh = parseInt( $('#wdtAutoRefresh').val() );
461
- }else{
462
- data.table_auto_refresh = 0;
463
- }
464
- data.hide_before_loaded = $('#wdtHideBeforeLoaded').is(':checked');
465
- data.table_id = $('#wpDataTableId').val();
466
-
467
- if ( typeof additional_options != 'undefined' ) {
468
- for ( var i = 0; i < additional_options.length; i++ ) {
469
- var option_name = additional_options[i]['option_name'];
470
- var option_value = additional_options[i]['option_value']();
471
- data[additional_options[i]['option_name']] = option_value;
472
- }
473
- }
474
-
475
- $('#wdtPreloadLayer').show();
476
- $.ajax({
477
- type: 'post',
478
- url: ajaxurl,
479
- data: data,
480
- dataType: 'json',
481
- success: function(response){
482
- if(response.error) {
483
- $('#wdtPreloadLayer').hide();
484
- if(response.error.indexOf('No data') !== -1){
485
- if( $( '#wdt_table_manual' ).val() != '1' ){
486
- response.error += '<br/>';
487
- response.error += wpdatatables_edit_strings.empty_result_error;
488
- }else{
489
- response.error = wpdatatables_edit_strings.empty_manual_table_error;
490
- }
491
- }
492
- wdtAlertDialog(wpdatatables_edit_strings.backend_error_report+response.error,wpdatatables_edit_strings.error_label);
493
- }else{
494
- // Redirect to Edit page if the table has been just created
495
- if( $('#wpDataTableId').val() == '' ){
496
- window.location = 'admin.php?page=wpdatatables-administration&action=edit&table_id='+response.table_id;
497
- }
498
-
499
- columnsToDelete = [];
500
-
501
- $('#wpDataTableId').val(response.table_id);
502
- $('#wdtScId strong').html('[wpdatatable id='+response.table_id+']');
503
- $('#message').show();
504
-
505
- var frontendColumns = collectColumnsData();
506
-
507
- var mergedColumns = [];
508
-
509
- // Merge columns
510
- for(var i in response.columns){
511
- var header = response.columns[i].orig_header;
512
- var columnAdded = false;
513
- if(frontendColumns.length > 0){
514
- for(var j in frontendColumns){
515
- if(frontendColumns[j].orig_header == response.columns[i].orig_header){
516
- mergedColumns.push(frontendColumns[j]);
517
- columnAdded = true;
518
- frontendColumns.splice(j,1);
519
- break;
520
- }
521
- }
522
- }
523
- if( !columnAdded ){
524
- mergedColumns.push( response.columns[i] );
525
- }
526
- }
527
- // Adding the formula columns
528
- for(var j in frontendColumns){
529
- if(frontendColumns[j].column_type == 'formula'){
530
- mergedColumns.push(frontendColumns[j]);
531
- }
532
- }
533
-
534
-
535
- var columns_block = createColumnsBlock(mergedColumns);
536
-
537
- $('#step2-postbox').show();
538
- $('tr.step2_row').show();
539
- applyColumnsBlock( columns_block );
540
- $('tr.step2_row td.columnsBlock td input.color').each(function(){
541
- $(this).wpColorPicker();
542
- });
543
- applySortable();
544
- $('tr.step2_row td.columnsBlock select.columnType').each(function(){
545
- $(this).change();
546
- });
547
-
548
- $('.previewButton').show();
549
- $('#wdtResponsive').change();
550
- $('#wpTableEditable').change();
551
- $('#wpTableInlineEditing').change();
552
- $('#wpTablePopoverTools').change();
553
- applySelecter();
554
-
555
- // Check for duplicated column positions and reordering columns if necessary
556
- var column_positions = {};
557
- $('td.columnsBlock table.column_table input.columnPos').each(function(){
558
- if( typeof( column_positions[$(this).val()] ) !== 'undefined' ){
559
- updateColumnPositions();
560
- return false;
561
- }else{
562
- column_positions[$(this).val()] = true;
563
- }
564
- });
565
-
566
- // If columns are defined - saving them as well
567
- if($('td.columnsBlock table.column_table').length > 0){
568
-
569
- if($('#wpTableEditable').is(':checked')){
570
- if($('#wdtIdColumn').val() == ''){
571
- wdtAlertDialog(wpdatatables_edit_strings.id_column_not_set,wpdatatables_edit_strings.error_label);
572
- return;
573
- }
574
- }
575
- var data = { };
576
- data.action = 'wdt_save_columns';
577
- data.table_id = $('#wpDataTableId').val();
578
- data.wdtColumnsNonce = $('#wdtColumnsNonce').val();
579
- data.columns = JSON.stringify( collectColumnsData() );
580
-
581
- $.ajax({
582
- type: 'post',
583
- url: ajaxurl,
584
- data: data,
585
- dataType: 'json',
586
- success: function(response){
587
- $('#wdtPreloadLayer').hide();
588
- if(response.error) {
589
- wdtAlertDialog(wpdatatables_edit_strings.backend_error_report+' '+response.error,wpdatatables_edit_strings.error_label);
590
- }else{
591
-
592
- var columns_block = createColumnsBlock(response.columns);
593
- $('#step2-postbox').show();
594
- $('tr.step2_row').show();
595
- applyColumnsBlock( columns_block );
596
- $('tr.step2_row td.columnsBlock td input.color').each(function(){
597
- $(this).wpColorPicker();
598
- });
599
- $('tr.step2_row td.columnsBlock select.columnType').each(function(){
600
- $(this).change();
601
- });
602
- applySortable();
603
- $('#wdtResponsive').change();
604
- $('#wpTableEditable').change();
605
- $('#wpTableInlineEditing').change();
606
- $('#wpTablePopoverTools').change();
607
- $('.submitStep2').removeAttr('disabled');
608
- applySelecter();
609
- $( $.templates("#wdtSaveDoneTemplate").render() ).insertBefore($clickedSaveButton).fadeIn( 300 );
610
- setTimeout(
611
- function(){
612
- $('#wdtSaveConfirmationPopover').fadeOut(
613
- 300,
614
- function(){ $('#wdtSaveConfirmationPopover').remove(); }
615
- )
616
- },
617
- 3000
618
- );
619
- $clickedSaveButton = null;
620
- wdtConfigChanged = false;
621
- if( callback ){ callback(); }
622
- }
623
- }
624
- });
625
-
626
- }else{
627
- $('#wdtPreloadLayer').hide();
628
- wdtAlertDialog(wpdatatables_edit_strings.successful_save,wpdatatables_edit_strings.success_label);
629
- }
630
-
631
- }
632
- },
633
- error: function(response){
634
- var errMsg = response.responseText;
635
- if(errMsg.indexOf('Allowed memory size of') != -1){
636
- errMsg += "<br/>";
637
- errMsg += wpdatatables_edit_strings.file_too_large;
638
- }
639
- wdtAlertDialog(errMsg,wpdatatables_edit_strings.error_label);
640
- }
641
- });
642
- }
643
-
644
- $('a.submitdelete').click(function(e){
645
- e.preventDefault();
646
- e.stopImmediatePropagation();
647
- if(confirm(wpdatatables_edit_strings.are_you_sure_label)){
648
- window.location = $(this).attr('href');
649
- }
650
- })
651
-
652
- $('button.closeButton').click(function(e){
653
- e.preventDefault();
654
- e.stopImmediatePropagation();
655
- if(confirm(wpdatatables_edit_strings.are_you_sure_lose_unsaved_label)){
656
- window.location = 'admin.php?page=wpdatatables-administration';
657
- }
658
- })
659
-
660
- /**
661
- * Allow making editor mandatory
662
- */
663
- $(document).on('change','select.inputType',function(e){
664
- e.preventDefault();
665
- if( $(this).val() == 'none' ){
666
- $(this).closest('table.column_table').find('input.mandatoryInput').prop( 'disabled', true );
667
- }else{
668
- $(this).closest('table.column_table').find('input.mandatoryInput').prop( 'disabled', false );
669
- }
670
- });
671
-
672
- /**
673
- * Toggle placeholders table
674
- */
675
- $('#wdtPlaceholdersTableToggle').click(function(e){
676
- e.preventDefault();
677
- if( !$('#wdtPlaceholdersTable').is(':visible') ){
678
- $('#wdtPlaceholdersTable').show(300);
679
- $(this).find('span').removeClass('dashicons-arrow-down-alt2').addClass('dashicons-arrow-up-alt2');
680
- }else{
681
- $('#wdtPlaceholdersTable').hide(300);
682
- $(this).find('span').addClass('dashicons-arrow-down-alt2').removeClass('dashicons-arrow-up-alt2');
683
- }
684
- });
685
-
686
- /**
687
- * Open editor roles dialog
688
- */
689
- $('#selectEditorRoles').click(function(e){
690
- e.preventDefault();
691
- $('#wdtUserRoles').dialog('open');
692
- });
693
-
694
-
695
-
696
- /**
697
- * Preview handlder
698
- */
699
- var wdtPreviewTable = function(){
700
- var data = { };
701
- data.action = 'wdt_get_preview';
702
- data.table_id = $('#wpDataTableId').val();
703
- if(preview_called){ data.no_scripts = 1; }
704
- $('#wdtPreloadLayer').show();
705
- $.ajax({
706
- type: 'post',
707
- url: ajaxurl,
708
- data: data,
709
- dataType: 'html',
710
- success: function(response){
711
- var dialog_div = '<div id="preview_dialog" title="Preview" style="display: none"></div>';
712
- $('body').append(dialog_div);
713
- $('#preview_dialog').html(response);
714
- $('#preview_dialog').find('.dataTables_wrapper').addClass('wpDataTables wpDataTablesWrapper');
715
- $('#preview_dialog').find('table.wpDataTable').show();
716
- $('#preview_dialog').dialog({
717
- modal: true,
718
- width: 950,
719
- height: 'auto',
720
- buttons: {
721
- 'OK': function(){
722
- $('#preview_dialog').find('table.wpDataTable').dataTable({bDestroy: true});
723
- $('#preview_dialog').html('');
724
- $(this).dialog('close');
725
- $('#preview_dialog').remove();
726
- $('.wdtFilterDialog').remove();
727
- }
728
- },
729
- open: function(){
730
- $('#wdtPreloadLayer').hide();
731
- preview_called = true;
732
- },
733
- close: function(){
734
- $('#preview_dialog').find('table.wpDataTable').dataTable({bDestroy: true});
735
- $('#preview_dialog').html('');
736
- $(this).dialog('close');
737
- $('#preview_dialog').remove();
738
- $('.wdtFilterDialog').remove();
739
- }
740
- });
741
- }
742
- });
743
- }
744
-
745
- /**
746
- * Preview the table in the popup - trigger save if something changed
747
- */
748
- $('button.previewButton').click(function(e){
749
- e.preventDefault();
750
- e.stopImmediatePropagation();
751
- if( wdtConfigChanged ){
752
- saveTable( wdtPreviewTable );
753
- }else{
754
- wdtPreviewTable();
755
- }
756
- });
757
-
758
-
759
-
760
- /**
761
- * Show 'toggle table tools config' button when table tools is enabled/disabled
762
- */
763
- $('#wpTableTools').change(function(e){
764
- e.preventDefault();
765
- if( $(this).is(':checked') ){
766
- $('.wdtConfigureTableToolsBlock').show();
767
- }else{
768
- $('.wdtConfigureTableToolsBlock').hide();
769
- }
770
- });
771
- $('#wpTableTools').change();
772
-
773
- /**
774
- * Toggle the table tools configuration block
775
- */
776
- $('#wdtConfigureTableToolsToggle').click(function(e){
777
- e.preventDefault();
778
- if( $('#wdtConfigureTableToolsBlock').is(':visible') ){
779
- $('#wdtConfigureTableToolsBlock').hide();
780
- $(this).find('span').addClass('dashicons-arrow-down-alt2').removeClass('dashicons-arrow-up-alt2');
781
- }else{
782
- $(this).find('span').removeClass('dashicons-arrow-down-alt2').addClass('dashicons-arrow-up-alt2');
783
- $('#wdtConfigureTableToolsBlock').show();
784
- }
785
- })
786
-
787
- /**
788
- * Helper function for rendering formatting rule blocks
789
- */
790
- var generateFormattingRuleHTML = function( columnData ){
791
- var formattingRuleTmpl = $.templates('#formattingRuleBlockTemplate');
792
- var $formattingRuleHtml = $( formattingRuleTmpl.render( columnData ) );
793
-
794
- var columnType = $currentFormattingRulesContainer.closest('tbody').find('select.columnType').val();
795
-
796
- if( ['date','int','float','datetime','time'].indexOf( columnType ) !== -1 ){
797
- $formattingRuleHtml
798
- .find('select.formatting_rule_if_clause option[value="contains"],select.formatting_rule_if_clause option[value="contains_not"]')
799
- .remove();
800
- }
801
- if( ['string','link','email','image'].indexOf( columnType ) !== -1 ){
802
- $formattingRuleHtml
803
- .find('select.formatting_rule_if_clause option[value="lt"],'
804
- +'select.formatting_rule_if_clause option[value="lteq"],'
805
- +'select.formatting_rule_if_clause option[value="gteq"],'
806
- +'select.formatting_rule_if_clause option[value="gt"]'
807
- )
808
- .remove();
809
- }
810
-
811
- return $formattingRuleHtml[0].outerHTML;
812
- }
813
-
814
- /**
815
- * Helper function to apply datepicker
816
- */
817
- function applyPickadate( $selector ){
818
- $selector
819
- .pickadate({
820
- format: wdtDateFormat,
821
- formatSubmit: wdtDateFormat,
822
- selectYears: 20,
823
- selectMonths: true,
824
- container: '.wpDataTables.metabox-holder'
825
- });
826
- }
827
-
828
-
829
-
830
- /**
831
- * Ungroup columns
832
- */
833
- $('button.ungroupButton').click(function(e){
834
- e.preventDefault();
835
- $('input.groupColumn').removeAttr('checked').parent().find('div.picker').removeClass('checked');
836
- });
837
-
838
- $('#wpTableType').trigger('change');
839
-
840
- if(typeof columns_data !== 'undefined' && columns_data.length > 0) {
841
- var columns_block = createColumnsBlock(columns_data);
842
- $('#step2-postbox').show();
843
- $('tr.step2_row').show();
844
- applyColumnsBlock( columns_block );
845
- $('#wdtResponsive').change();
846
- $('tr.step2_row td.columnsBlock td input.color').each(function(){
847
- $(this).wpColorPicker();
848
- });
849
- $('tr.step2_row td.columnsBlock select.columnType').each(function(){
850
- $(this).change();
851
- });
852
- applySortable();
853
- $('.previewButton').show();
854
- }
855
-
856
- applySelecter();
857
-
858
-
859
-
860
- /**
861
- * Helper method to insert at textarea cursor position
862
- */
863
- jQuery.fn.extend({
864
- insertAtCaret: function (myValue) {
865
- return this.each(function (i) {
866
- if (document.selection) {
867
- //For browsers like Internet Explorer
868
- this.focus();
869
- var sel = document.selection.createRange();
870
- sel.text = myValue;
871
- this.focus();
872
- }
873
- else if (this.selectionStart || this.selectionStart == '0') {
874
- //For browsers like Firefox and Webkit based
875
- var startPos = this.selectionStart;
876
- var endPos = this.selectionEnd;
877
- var scrollTop = this.scrollTop;
878
- this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
879
- this.focus();
880
- this.selectionStart = startPos + myValue.length;
881
- this.selectionEnd = startPos + myValue.length;
882
- this.scrollTop = scrollTop;
883
- } else {
884
- this.value += myValue;
885
- this.focus();
886
- }
887
- });
888
- }
889
- });
890
-
891
- /**
892
- * Apply syntax highlighter
893
- */
894
- if( $('#wpMySQLQuery').length ) {
895
- aceEditor = ace.edit('wpMySQLQuery');
896
- aceEditor.getSession().setMode("ace/mode/sql");
897
- aceEditor.setTheme("ace/theme/idle_fingers");
898
- }
899
-
900
- });
901
-
902
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/wpdatatables/wpdatatables_mce.js DELETED
@@ -1,133 +0,0 @@
1
- (function() {
2
- tinymce.create('tinymce.plugins.wpdatatables', {
3
- /**
4
- * Initializes the plugin, this will be executed after the plugin has been created.
5
- * This call is done before the editor instance has finished it's initialization so use the onInit event
6
- * of the editor instance to intercept that event.
7
- *
8
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
9
- * @param {string} url Absolute URL to where the plugin is located.
10
- */
11
- init : function(ed, url) {
12
- ed.addButton('wpdatatable', {
13
- title : 'Insert a wpDataTable',
14
- cmd : 'wpdatatable'
15
- });
16
-
17
- ed.addButton('wpdatachart', {
18
- title : 'Insert a wpDataChart',
19
- cmd : 'wpdatachart'
20
- });
21
-
22
- ed.addCommand( 'wpdatatable', function(){
23
- jQuery.ajax({
24
- url: ajaxurl,
25
- dataType: 'json',
26
- data: {
27
- action: 'wpdatatable_list_all_tables'
28
- },
29
- success: function( tables ){
30
-
31
- var selectboxValues = [];
32
-
33
- for( var i in tables ){
34
- selectboxValues.push({ value: tables[i].id, text: tables[i].title+' (id: '+tables[i].id+')' })
35
- }
36
-
37
- ed.windowManager.open({
38
- title: 'wpDataTable',
39
- body: [
40
- {
41
- type: 'listbox',
42
- name: 'wpdatatable_select',
43
- label: 'wpDataTable',
44
- values: selectboxValues
45
- },
46
- {
47
- type: 'listbox',
48
- name: 'table_view_select',
49
- label: 'Table view',
50
- values: [{value: 'regular', text: 'Regular wpDataTable'}, {value: 'excel', text: 'Excel-like table'}]
51
- }
52
- ],
53
- width: 700,
54
- height: 100,
55
- onsubmit: function(e){
56
- ed.focus();
57
- ed.execCommand( 'mceInsertContent', 0, '[wpdatatable id='+e.data.wpdatatable_select+' table_view='+ e.data.table_view_select+']' )
58
- }
59
- });
60
- }
61
- });
62
- });
63
-
64
- ed.addCommand( 'wpdatachart', function(){
65
- jQuery.ajax({
66
- url: ajaxurl,
67
- dataType: 'json',
68
- data: {
69
- action: 'wpdatatable_list_all_charts'
70
- },
71
- success: function( charts ){
72
-
73
- var selectboxValues = [];
74
-
75
- for( var i in charts ){
76
- selectboxValues.push({ value: charts[i].id, text: charts[i].title+' (id: '+charts[i].id+')' })
77
- }
78
-
79
- ed.windowManager.open({
80
- title: 'wpDataChart',
81
- body: [
82
- {
83
- type: 'listbox',
84
- name: 'wpdatachart_select',
85
- label: 'wpDataChart',
86
- values: selectboxValues
87
- }
88
- ],
89
- onsubmit: function(e){
90
- ed.focus();
91
- ed.execCommand( 'mceInsertContent', 0, '[wpdatachart id='+e.data.wpdatachart_select+']' )
92
- }
93
- });
94
- }
95
- });
96
- });
97
-
98
- },
99
-
100
- /**
101
- * Creates control instances based in the incomming name. This method is normally not
102
- * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
103
- * but you sometimes need to create more complex controls like listboxes, split buttons etc then this
104
- * method can be used to create those.
105
- *
106
- * @param {String} n Name of the control to create.
107
- * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
108
- * @return {tinymce.ui.Control} New control instance or null if no control was created.
109
- */
110
- createControl : function(n, cm) {
111
- return null;
112
- },
113
-
114
- /**
115
- * Returns information about the plugin as a name/value array.
116
- * The current keys are longname, author, authorurl, infourl and version.
117
- *
118
- * @return {Object} Name/value array containing information about the plugin.
119
- */
120
- getInfo : function() {
121
- return {
122
- longname : 'wpdatatables',
123
- author : 'touchmesoft',
124
- authorurl : 'http://touchmesoft.net',
125
- infourl : 'http://wpdatatables.com',
126
- version : "1.6.2"
127
- };
128
- }
129
- });
130
-
131
- // Register plugin
132
- tinymce.PluginManager.add( 'wpdatatables', tinymce.plugins.wpdatatables );
133
- })();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
config/config.inc.php CHANGED
@@ -9,7 +9,7 @@ defined('ABSPATH') or die("Cannot access pages directly.");
9
 
10
  // Current version
11
 
12
- define('WDT_CURRENT_VERSION', '2.1.22');
13
 
14
  /**
15
  * Regular Expressions
9
 
10
  // Current version
11
 
12
+ define('WDT_CURRENT_VERSION', '2.1.23');
13
 
14
  /**
15
  * Regular Expressions
controllers/wdt_admin.php CHANGED
@@ -158,6 +158,11 @@ function wdtAdminEnqueue($hook) {
158
  'wpdatatables_page_wpdatatables-add-ons'))) {
159
 
160
  add_filter('admin_body_class', 'wdtAddBodyClass');
 
 
 
 
 
161
  }
162
 
163
  wp_register_style('wdt-dragula', WDT_CSS_PATH . 'dragula/dragula.min.css');
@@ -167,26 +172,22 @@ function wdtAdminEnqueue($hook) {
167
  wp_register_script('wdt-jsrender', WDT_JS_PATH . 'jsrender/jsrender.min.js', array(), false, true);
168
  wp_register_script('wdt-dragula', WDT_JS_PATH . 'dragula/dragula.min.js', array(), false, true);
169
  wp_register_script('wdt-ace', WDT_JS_PATH . 'ace/ace.js', array(), false, true);
170
- wp_enqueue_script('wdt-color-pickr', WDT_JS_PATH . 'color-pickr/pickr.min.js', array(), WDT_CURRENT_VERSION, true);
171
  wp_register_script('wdt-color-pickr-init', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/wdt.color-picker-init.js', array(), WDT_CURRENT_VERSION, true);
172
  wp_register_script('wdt-common', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/common.js', array(), false, true);
173
  wp_register_script('wdt-funcs-js', WDT_JS_PATH . 'wpdatatables/wdt.funcs.js', array('jquery', 'wdt-common'), false, true);
174
  wp_register_script('wdt-doc-js', WDT_JS_PATH . 'wpdatatables/admin/doc.js', array('jquery', 'wdt-common'), false, true);
175
 
176
  wp_enqueue_style('wdt-admin', WDT_CSS_PATH . 'admin/admin.css');
177
- wp_enqueue_style('wdt-color-pickr-classic', WDT_CSS_PATH . 'color-pickr/classic-theme.min.css', array(), WDT_CURRENT_VERSION);
178
  wp_enqueue_style('tms-store-checkout', WDT_STORE_URL . '/static/css/checkout/checkout.css');
179
  wp_enqueue_style('tms-store-wpdatatables', WDT_STORE_URL . '/static/css/checkout/wpdatatables.css');
180
 
181
- wp_enqueue_script('media-upload');
182
  wp_enqueue_script('tms-store-checkout-config', WDT_STORE_URL . '/static/js/checkout/config.js', array('jquery'), 1.12, true);
183
  wp_enqueue_script('tms-store-checkout', WDT_STORE_URL . '/static/js/checkout/checkout.js', array('jquery'), 1.12, true);
184
  wp_enqueue_script('tms-store-checkout-wpdatatables', WDT_STORE_URL . '/static/js/checkout/wpdatatables.js', array('jquery'), 1.12, true);
185
 
186
  wp_enqueue_script('wdt-rating', WDT_JS_PATH . 'wpdatatables/admin/wdtRating.js', array('jquery'), 1.12, true);
187
 
188
- wp_enqueue_media();
189
-
190
  wp_localize_script('wdt-common', 'wpdatatables_edit_strings', WDTTools::getTranslationStrings());
191
  wp_localize_script('wdt-common', 'wpdatatables_settings', WDTTools::getDateTimeSettings());
192
  wp_localize_script('wdt-common', 'wdtWpDataTablesPage',WDTTools::getWpDataTablesAdminPages());
@@ -333,6 +334,7 @@ function wdtEditEnqueue() {
333
 
334
 
335
  wp_enqueue_script('wdt-common');
 
336
  wp_enqueue_script('wdt-color-pickr-init');
337
  wp_enqueue_script('wdt-column-config', WDT_JS_PATH . 'wpdatatables/admin/table-settings/column_config_object.js', array(), false, true);
338
  wp_enqueue_script('wdt-table-config', WDT_JS_PATH . 'wpdatatables/admin/table-settings/table_config_object.js', array(), false, true);
@@ -377,6 +379,7 @@ function wdtConstructorEnqueue() {
377
  wp_enqueue_script('wdt-jsrender');
378
  wp_enqueue_script('wdt-dragula');
379
  wp_enqueue_script('wdt-common');
 
380
  wp_enqueue_script('wdt-color-pickr-init');
381
  wp_enqueue_script('wdt-funcs-js');
382
  wp_enqueue_script('wdt-constructor-main-js', WDT_JS_PATH . 'wpdatatables/admin/constructor/wdt.constructor.js', array(), false, true);
@@ -415,6 +418,7 @@ function wdtChartWizardEnqueue() {
415
  wp_enqueue_script('wdt-google-charts', '//www.gstatic.com/charts/loader.js', array(), WDT_CURRENT_VERSION, true);
416
 
417
  wp_enqueue_script('wdt-common');
 
418
  wp_enqueue_script('wdt-color-pickr-init');
419
  wp_enqueue_script('wdt-chart-wizard', WDT_JS_PATH . 'wpdatatables/wdt.chartWizard.js', array(), false, true);
420
  wp_enqueue_script('wdt-wp-google-chart', WDT_JS_PATH . 'wpdatatables/wdt.googleCharts.js', array(), WDT_CURRENT_VERSION, true);
@@ -432,6 +436,7 @@ function wdtSettingsEnqueue() {
432
  wp_enqueue_style('wdt-settings-css', WDT_CSS_PATH . 'admin/settings.css');
433
 
434
  wp_enqueue_script('wdt-common');
 
435
  wp_enqueue_script('wdt-color-pickr-init');
436
  wp_enqueue_script('wdt-plugin-config', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/plugin-settings/plugin_config_object.js', array(), false, true);
437
  wp_enqueue_script('wdt-settings-main-js', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/plugin-settings/main.js', array(), false, true);
158
  'wpdatatables_page_wpdatatables-add-ons'))) {
159
 
160
  add_filter('admin_body_class', 'wdtAddBodyClass');
161
+
162
+ wp_enqueue_style('wdt-color-pickr-classic', WDT_CSS_PATH . 'color-pickr/classic-theme.min.css', array(), WDT_CURRENT_VERSION);
163
+
164
+ wp_enqueue_script('media-upload');
165
+ wp_enqueue_media();
166
  }
167
 
168
  wp_register_style('wdt-dragula', WDT_CSS_PATH . 'dragula/dragula.min.css');
172
  wp_register_script('wdt-jsrender', WDT_JS_PATH . 'jsrender/jsrender.min.js', array(), false, true);
173
  wp_register_script('wdt-dragula', WDT_JS_PATH . 'dragula/dragula.min.js', array(), false, true);
174
  wp_register_script('wdt-ace', WDT_JS_PATH . 'ace/ace.js', array(), false, true);
175
+ wp_register_script('wdt-color-pickr', WDT_JS_PATH . 'color-pickr/pickr.min.js', array(), WDT_CURRENT_VERSION, true);
176
  wp_register_script('wdt-color-pickr-init', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/wdt.color-picker-init.js', array(), WDT_CURRENT_VERSION, true);
177
  wp_register_script('wdt-common', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/common.js', array(), false, true);
178
  wp_register_script('wdt-funcs-js', WDT_JS_PATH . 'wpdatatables/wdt.funcs.js', array('jquery', 'wdt-common'), false, true);
179
  wp_register_script('wdt-doc-js', WDT_JS_PATH . 'wpdatatables/admin/doc.js', array('jquery', 'wdt-common'), false, true);
180
 
181
  wp_enqueue_style('wdt-admin', WDT_CSS_PATH . 'admin/admin.css');
 
182
  wp_enqueue_style('tms-store-checkout', WDT_STORE_URL . '/static/css/checkout/checkout.css');
183
  wp_enqueue_style('tms-store-wpdatatables', WDT_STORE_URL . '/static/css/checkout/wpdatatables.css');
184
 
 
185
  wp_enqueue_script('tms-store-checkout-config', WDT_STORE_URL . '/static/js/checkout/config.js', array('jquery'), 1.12, true);
186
  wp_enqueue_script('tms-store-checkout', WDT_STORE_URL . '/static/js/checkout/checkout.js', array('jquery'), 1.12, true);
187
  wp_enqueue_script('tms-store-checkout-wpdatatables', WDT_STORE_URL . '/static/js/checkout/wpdatatables.js', array('jquery'), 1.12, true);
188
 
189
  wp_enqueue_script('wdt-rating', WDT_JS_PATH . 'wpdatatables/admin/wdtRating.js', array('jquery'), 1.12, true);
190
 
 
 
191
  wp_localize_script('wdt-common', 'wpdatatables_edit_strings', WDTTools::getTranslationStrings());
192
  wp_localize_script('wdt-common', 'wpdatatables_settings', WDTTools::getDateTimeSettings());
193
  wp_localize_script('wdt-common', 'wdtWpDataTablesPage',WDTTools::getWpDataTablesAdminPages());
334
 
335
 
336
  wp_enqueue_script('wdt-common');
337
+ wp_enqueue_script('wdt-color-pickr');
338
  wp_enqueue_script('wdt-color-pickr-init');
339
  wp_enqueue_script('wdt-column-config', WDT_JS_PATH . 'wpdatatables/admin/table-settings/column_config_object.js', array(), false, true);
340
  wp_enqueue_script('wdt-table-config', WDT_JS_PATH . 'wpdatatables/admin/table-settings/table_config_object.js', array(), false, true);
379
  wp_enqueue_script('wdt-jsrender');
380
  wp_enqueue_script('wdt-dragula');
381
  wp_enqueue_script('wdt-common');
382
+ wp_enqueue_script('wdt-color-pickr');
383
  wp_enqueue_script('wdt-color-pickr-init');
384
  wp_enqueue_script('wdt-funcs-js');
385
  wp_enqueue_script('wdt-constructor-main-js', WDT_JS_PATH . 'wpdatatables/admin/constructor/wdt.constructor.js', array(), false, true);
418
  wp_enqueue_script('wdt-google-charts', '//www.gstatic.com/charts/loader.js', array(), WDT_CURRENT_VERSION, true);
419
 
420
  wp_enqueue_script('wdt-common');
421
+ wp_enqueue_script('wdt-color-pickr');
422
  wp_enqueue_script('wdt-color-pickr-init');
423
  wp_enqueue_script('wdt-chart-wizard', WDT_JS_PATH . 'wpdatatables/wdt.chartWizard.js', array(), false, true);
424
  wp_enqueue_script('wdt-wp-google-chart', WDT_JS_PATH . 'wpdatatables/wdt.googleCharts.js', array(), WDT_CURRENT_VERSION, true);
436
  wp_enqueue_style('wdt-settings-css', WDT_CSS_PATH . 'admin/settings.css');
437
 
438
  wp_enqueue_script('wdt-common');
439
+ wp_enqueue_script('wdt-color-pickr');
440
  wp_enqueue_script('wdt-color-pickr-init');
441
  wp_enqueue_script('wdt-plugin-config', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/plugin-settings/plugin_config_object.js', array(), false, true);
442
  wp_enqueue_script('wdt-settings-main-js', WDT_ROOT_URL . 'assets/js/wpdatatables/admin/plugin-settings/main.js', array(), false, true);
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: table, table builder, data tables, tables, charts, datatables, simple tabl
6
  Requires at least: 4.0
7
  Tested up to: 5.8.2
8
  Requires PHP: 5.6
9
- Stable tag: 2.1.22
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -238,6 +238,11 @@ This can be changed from the “Number format” drop-down menu in the wpDataTab
238
 
239
  == Changelog ==
240
 
 
 
 
 
 
241
  = 2.1.22 =
242
  * Improvement: Added pagination above the table on browse page for tables and charts.
243
  * Improvement: Added new hook to filter URL of PHP array tables: wpdatatables_filter_url_php_array.
6
  Requires at least: 4.0
7
  Tested up to: 5.8.2
8
  Requires PHP: 5.6
9
+ Stable tag: 2.1.23
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
12
 
238
 
239
  == Changelog ==
240
 
241
+ = 2.1.23 =
242
+ * Improvement: Reduce plugin size by removing unnecessary files
243
+ * Bugfix: Fixed CSS conflicts with Gravity forms.
244
+ * Other small bug fixes and stability improvements.
245
+
246
  = 2.1.22 =
247
  * Improvement: Added pagination above the table on browse page for tables and charts.
248
  * Improvement: Added new hook to filter URL of PHP array tables: wpdatatables_filter_url_php_array.
source/class.wdttools.php CHANGED
@@ -985,7 +985,6 @@ class WDTTools
985
  wp_enqueue_style('wdt-bootstrap-tagsinput', WDT_CSS_PATH . 'bootstrap/bootstrap-tagsinput/bootstrap-tagsinput.css');
986
  wp_enqueue_style('wdt-bootstrap-datetimepicker', WDT_CSS_PATH . 'bootstrap/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css');
987
  wp_enqueue_style('wdt-wp-bootstrap-datetimepicker', WDT_CSS_PATH . 'bootstrap/bootstrap-datetimepicker/wdt-bootstrap-datetimepicker.css');
988
- wp_enqueue_style('wdt-bootstrap-colorpicker', WDT_CSS_PATH . 'bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.min.css');
989
  wp_enqueue_style('wdt-animate', WDT_CSS_PATH . 'animate/animate.min.css');
990
  wp_enqueue_style('wdt-uikit', WDT_CSS_PATH . 'uikit/uikit.css');
991
  wp_enqueue_style('wdt-wpdt-icons', WDT_ROOT_URL . 'assets/css/style.min.css', array(), WDT_CURRENT_VERSION);
@@ -1010,7 +1009,6 @@ class WDTTools
1010
  wp_enqueue_script('wdt-bootstrap-tagsinput', WDT_JS_PATH . 'bootstrap/bootstrap-tagsinput/bootstrap-tagsinput.js', array(), false, true);
1011
  wp_enqueue_script('wdt-moment', WDT_JS_PATH . 'moment/moment.js', array(), false, true);
1012
  wp_enqueue_script('wdt-bootstrap-datetimepicker', WDT_JS_PATH . 'bootstrap/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js', array(), false, true);
1013
- wp_enqueue_script('wdt-bootstrap-colorpicker', WDT_JS_PATH . 'bootstrap/bootstrap-colorpicker/bootstrap-colorpicker.min.js', array(), false, true);
1014
  wp_enqueue_script('wdt-bootstrap-growl', WDT_JS_PATH . 'bootstrap/bootstrap-growl/bootstrap-growl.min.js', array(), false, true);
1015
  }
1016
 
985
  wp_enqueue_style('wdt-bootstrap-tagsinput', WDT_CSS_PATH . 'bootstrap/bootstrap-tagsinput/bootstrap-tagsinput.css');
986
  wp_enqueue_style('wdt-bootstrap-datetimepicker', WDT_CSS_PATH . 'bootstrap/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css');
987
  wp_enqueue_style('wdt-wp-bootstrap-datetimepicker', WDT_CSS_PATH . 'bootstrap/bootstrap-datetimepicker/wdt-bootstrap-datetimepicker.css');
 
988
  wp_enqueue_style('wdt-animate', WDT_CSS_PATH . 'animate/animate.min.css');
989
  wp_enqueue_style('wdt-uikit', WDT_CSS_PATH . 'uikit/uikit.css');
990
  wp_enqueue_style('wdt-wpdt-icons', WDT_ROOT_URL . 'assets/css/style.min.css', array(), WDT_CURRENT_VERSION);
1009
  wp_enqueue_script('wdt-bootstrap-tagsinput', WDT_JS_PATH . 'bootstrap/bootstrap-tagsinput/bootstrap-tagsinput.js', array(), false, true);
1010
  wp_enqueue_script('wdt-moment', WDT_JS_PATH . 'moment/moment.js', array(), false, true);
1011
  wp_enqueue_script('wdt-bootstrap-datetimepicker', WDT_JS_PATH . 'bootstrap/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js', array(), false, true);
 
1012
  wp_enqueue_script('wdt-bootstrap-growl', WDT_JS_PATH . 'bootstrap/bootstrap-growl/bootstrap-growl.min.js', array(), false, true);
1013
  }
1014
 
templates/addons.inc.php DELETED
@@ -1,29 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <div id="wdtPreloadLayer" class="overlayed">
4
- </div>
5
-
6
- <div class="wrap">
7
- <img src="<?php echo dirname(plugin_dir_url(__FILE__)); ?>/assets/img/wpdatatables-logo.png" class="wpdatatables_logo" style="margin: 10px" />
8
- <p><i><?php _e('Please refer to','wpdatatables');?> <a href="http://wpdatatables.com/documentation/"><?php _e('wpDataTables documentation','wpdatatables');?></a> <?php _e('if you have some questions or problems with the plugin.','wpdatatables'); ?></i></p>
9
- <h2>
10
- <?php echo __('wpDataTables Addons'); ?>
11
- </h2>
12
- <p><?php _e('While wpDataTables itself provides quite a large amount of features and unlimited customisation flexibility, you can achieve even more with our premium addons. Each addon brings you some unique extension to the core functionality. There will be more addons developed over time by wpDataTables creators and 3rd party developers, so stay tuned.','wpdatatables');?></p>
13
-
14
- <div class="addons_container">
15
- <div class="wdt_addon">
16
- <div class="wdt_addon_thumb">
17
- <a href="http://wpreportbuilder.com?utm_source=wpdt" target="_blank"><img src="<?php echo dirname(plugin_dir_url(__FILE__)); ?>/assets/img/reportbuilder_addon.png" /></a>
18
- <div class="wdt_addon_title">
19
- <h3><a href="http://wpreportbuilder.com?utm_source=wpdt" target="_blank"><?php _e('Report Builder','wpdatatables');?></a></h3>
20
- </div>
21
- </div>
22
- <div class="wdt_description">
23
- <p><?php _e('A unique tool that allows you to generate almost any Word DOCX and Excel XLSX documents filled in with actual data from your database.','wpdatatables'); ?></p>
24
- <a href="http://wpreportbuilder.com?utm_source=wpdt" target="_blank" class="button button-primary wdt_addon_read_more"><?php _e('Find out more','wpdatatables'); ?> &gt;</a>
25
- </div>
26
- </div>
27
- </div>
28
-
29
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/admin/addons/addons.inc.php CHANGED
@@ -122,6 +122,10 @@
122
  </div>
123
  </div>
124
 
 
 
 
 
125
  <div class="col-sm-4">
126
  <div class="thumbnail">
127
  <div class="wpdt-addons-desc">
122
  </div>
123
  </div>
124
 
125
+ </div>
126
+
127
+ <div class="row">
128
+
129
  <div class="col-sm-4">
130
  <div class="thumbnail">
131
  <div class="wpdt-addons-desc">
templates/admin/dashboard/dashboard.inc.php CHANGED
@@ -337,22 +337,13 @@ $tableChartsCount = WDTTools::getTablesCount('chart');
337
  </span>
338
  </p>
339
  <p class="wpdt-text wpdt-font m-b-18">
340
- A minor update with couple of features and stability improvements:
341
  </p>
342
  <div class="alert alert-info m-b-0" role="alert">
343
  <i class="wpdt-icon-info-circle-full"></i>
344
  <ul>
345
- <li><strong>Improvement:</strong> Added pagination above the table on browse page for tables and charts.</li>
346
- <li><strong>Improvement:</strong> Added new hook to filter URL of PHP array tables: wpdatatables_filter_url_php_array.</li>
347
- <li><strong>Improvement:</strong> Add new pre-formatted hooks for all column types in datatables:
348
- wpdatatables_filter_date_cell_before_formatting, wpdatatables_filter_time_cell_before_formatting,
349
- wpdatatables_filter_datetime_cell_before_formatting, wpdatatables_filter_link_cell_before_formatting,
350
- wpdatatables_filter_email_cell_before_formatting, wpdatatables_filter_string_cell_before_formatting,
351
- wpdatatables_filter_int_cell_before_formatting, wpdatatables_filter_float_cell_before_formatting
352
- and wpdatatables_filter_image_cell_before_formatting.</li>
353
- <li><strong>Bugfix:</strong> Fixed notice for deprecated hooks in Gutenberg.</li>
354
- <li><strong>Bugfix:</strong> Fixed issue with browsing tables and charts and search.</li>
355
- <li>Compatibility with WordPress 5.8.2 approved.</li>
356
  <li>Other small bug fixes and stability improvements.</li>
357
  </ul>
358
  </div>
@@ -430,6 +421,9 @@ $tableChartsCount = WDTTools::getTablesCount('chart');
430
  <p class="wpdt-font">
431
  <i class="wpdt-icon-check m-r-8"></i><?php _e('Creating charts with Highcharts', 'wpdatatables'); ?>
432
  </p>
 
 
 
433
  <p class="wpdt-font">
434
  <i class="wpdt-icon-check m-r-8"></i><?php _e('Creating charts with Chart.js', 'wpdatatables'); ?>
435
  </p>
337
  </span>
338
  </p>
339
  <p class="wpdt-text wpdt-font m-b-18">
340
+ A minor update with bug fixes and improvements:
341
  </p>
342
  <div class="alert alert-info m-b-0" role="alert">
343
  <i class="wpdt-icon-info-circle-full"></i>
344
  <ul>
345
+ <li><strong>Improvement:</strong> Reduce plugin size by removing unnecessary files.</li>
346
+ <li><strong>Bugfix:</strong> Fixed CSS conflicts with Gravity forms.</li>
 
 
 
 
 
 
 
 
 
347
  <li>Other small bug fixes and stability improvements.</li>
348
  </ul>
349
  </div>
421
  <p class="wpdt-font">
422
  <i class="wpdt-icon-check m-r-8"></i><?php _e('Creating charts with Highcharts', 'wpdatatables'); ?>
423
  </p>
424
+ <p class="wpdt-font">
425
+ <i class="wpdt-icon-check m-r-8"></i><span style="color: #ef8137;font-weight: bold;">NEW! </span><?php _e('Export Highcharts data to CSV and XLS files', 'wpdatatables'); ?>
426
+ </p>
427
  <p class="wpdt-font">
428
  <i class="wpdt-icon-check m-r-8"></i><?php _e('Creating charts with Chart.js', 'wpdatatables'); ?>
429
  </p>
templates/browse.inc.php DELETED
@@ -1,107 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <div id="wdtPreloadLayer" class="overlayed">
4
- </div>
5
-
6
- <div class="wrap">
7
- <img src="<?php echo dirname(plugin_dir_url(__FILE__)); ?>/assets/img/wpdatatables-logo.png" class="wpdatatables_logo" style="margin: 10px" />
8
- <p><i><?php _e('Please refer to','wpdatatables');?> <a href="http://wpdatatables.com/documentation/"><?php _e('wpDataTables documentation','wpdatatables');?></a> <?php _e('if you have some questions or problems with the plugin.','wpdatatables'); ?></i></p> <h2>wpDataTables <a href="admin.php?page=wpdatatables-addnew" class="add-new-h2"><?php _e('Add new','wpdatatables');?></a></h2>
9
-
10
- <form method="post" action="<?php echo admin_url('admin.php?page=wpdatatables-administration'); ?>" id="wpDataTablesBrowseForm">
11
- <?php echo $tableHTML; ?>
12
- <?php wp_nonce_field( 'wdtDeleteTableNonce', 'wdtNonce' ); ?>
13
- </form>
14
-
15
- </div>
16
-
17
- <div id="newTableName" style="display: none;">
18
- <div id="wdtDuplicateTableName">
19
- <label><?php _e('New table title','wpdatatables');?></label>
20
- <input type="hidden" id="wdtDuplicateNonce" value="<?php echo wp_create_nonce( 'wdt_duplicate_nonce_' . get_current_user_id() ); ?>" />
21
- <input type="text" value="" class="wdtDuplicateTableName" />
22
- </div>
23
- <div class="manual_duplicate" style="display: none" >
24
- <input type="checkbox" class="manual_check" name="manual_check" value="duplicate"> Duplicate database table <span class="dashicons dashicons-info"></span><br>
25
- <div class="duplicate_explain" style="display: none">
26
- <p><strong>Unckecked -</strong> will create exact copy of this table which means that all changes made in one table will be reflected in all copies.</p>
27
- <p><strong>Checked -</strong> will create separate database table so changing one table won't affect other copies.</p>
28
- </div>
29
- </div>
30
- </div>
31
-
32
- <script type="text/javascript">
33
- var duplicate_table_id = '';
34
-
35
- jQuery(document).ready(function(){
36
- jQuery('a.submitdelete').click(function(e){
37
- e.preventDefault();
38
- e.stopImmediatePropagation();
39
- if(confirm("<?php _e('Are you sure','wpdatatables'); ?>?")){
40
- window.location = jQuery(this).attr('href');
41
- }
42
- })
43
-
44
- jQuery('button.wpDataTablesDuplicateTable').click(function(e){
45
- e.preventDefault();
46
- e.stopImmediatePropagation();
47
- duplicate_table_id = jQuery(this).data('table_id');
48
- if (jQuery(this).data('table_type') === 'manual') {
49
- jQuery('.manual_duplicate').show();
50
- jQuery('body').off('click').on('click','.dashicons-info',function(){
51
- jQuery('.duplicate_explain').slideToggle( "slow");
52
- });
53
- } else {
54
- jQuery('.manual_duplicate').hide();
55
- }
56
- wdtAlertDialog(jQuery('#newTableName').html(),'<?php _e('Duplicate table','wpdatatables') ?>');
57
- jQuery('input.wdtDuplicateTableName').val(jQuery(this).data('table_name')+'_<?php _e('copy','wpdatatables'); ?>');
58
- });
59
-
60
- jQuery('button.wpDataTablesManualEdit').click(function(e){
61
- e.preventDefault();
62
- var url = '<?php echo admin_url('admin.php?page=wpdatatables-editor');?>&table_id='+jQuery(this).data('table_id');
63
- window.location = url;
64
- });
65
-
66
- jQuery('button.wpDataTablesManualExcelEdit').click(function(e){
67
- e.preventDefault();
68
- var url = '<?php echo admin_url('admin.php?page=wpdatatables-editor&table_type=excel');?>&table_id='+jQuery(this).data('table_id');
69
- window.location = url;
70
- });
71
-
72
- jQuery(document).on('click','button.remodal-confirm',function(e){
73
- jQuery('#wdtPreloadLayer').show();
74
- var new_table_name = jQuery(this).parent().find('input.wdtDuplicateTableName').val();
75
- var manual_duplicate_input = (jQuery('input[name=manual_check]').is(':checked')) ? 1 : 0;
76
- jQuery.ajax({
77
- url: ajaxurl,
78
- type: 'POST',
79
- data: {
80
- action: 'wpdatatables_duplicate_table',
81
- table_id: duplicate_table_id,
82
- new_table_name: new_table_name,
83
- manual_duplicate_input: manual_duplicate_input,
84
- wdtDuplicateNonce: jQuery('#wdtDuplicateNonce').val()
85
- },
86
- success: function(){
87
- window.location.reload();
88
- }
89
- });
90
-
91
- jQuery('.wdtRemodal').remodal().close();
92
-
93
- });
94
-
95
- jQuery('#doaction, #doaction2').click(function(e){
96
- e.preventDefault();
97
-
98
- if(jQuery('#bulk-action-selector-top').val() == ''){ return; }
99
- if(jQuery('#wpDataTablesBrowseForm table.widefat input[type="checkbox"]:checked').length == 0){ return; }
100
-
101
- if(confirm("<?php _e('Are you sure','wpdatatables'); ?>?")){
102
- jQuery('#wpDataTablesBrowseForm').submit();
103
- }
104
- });
105
-
106
- });
107
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/chart_wizard.inc.php DELETED
@@ -1,144 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <?php if( isset( $chartObj ) ) { ?>
4
- <script type='text/javascript'>var editing_chart_data= {render_data: <?php echo json_encode( $chartObj->getRenderData() ); ?>, highcharts_render_data: <?php echo json_encode( $chartObj->getHighchartsRenderData() ); ?>, engine: "<?php echo $chartObj->getEngine();?>", type: "<?php echo $chartObj->getType(); ?>", selected_columns: <?php echo json_encode( $chartObj->getSelectedColumns() ) ?>, range_type: "<?php echo $chartObj->getRangeType() ?>"<?php if( $chartObj->getRangeType() == 'picked_range' ){ ?>, row_range: <?php echo json_encode( $chartObj->getRowRange() ); } ?>, title: "<?php echo $chartObj->getTitle(); ?>", follow_filtering: <?php echo (int) $chartObj->getFollowFiltering(); ?>, wpdatatable_id: <?php echo $chartObj->getwpDataTableId(); ?> };</script>
5
- <?php } ?>
6
-
7
- <div class="wpDataTables metabox-holder">
8
- <div id="wdtPreloadLayer" class="overlayed">
9
- </div>
10
-
11
- <div class="wrap">
12
- <div id="poststuff">
13
- <div id="post-body" class="metabox-holder">
14
- <div id="postbox-container-1" class="postbox-container">
15
- <img src="<?php echo dirname(plugin_dir_url(__FILE__)); ?>/assets/img/wpdatatables-logo.png" class="wpdatatables_logo" />
16
- <p><i><?php _e('Please refer to','wpdatatables');?> <a href="http://wpdatatables.com/documentation/wpdatacharts/"><?php _e('wpDataTables documentation on Charts','wpdatatables');?></a> <?php _e('if you have some questions or problems with the plugin.','wpdatatables'); ?></i></p>
17
- <h2><?php _e('wpDataTables Chart Wizard','wpdatatables'); ?></h2>
18
-
19
- <input type="hidden" id="wpDataChartId" value="<?php echo $chart_id ?>" />
20
- <input type="hidden" id="wdtBrowseChartsURL" value="<?php echo admin_url( 'admin.php?page=wpdatatables-charts' ); ?>" />
21
-
22
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
23
- <div class="postbox">
24
- <div class="handlediv" title="<?php _e('Click to toggle','wpdatatables'); ?>"><br/></div>
25
- <h3 class="hndle">
26
- <span><div class="dashicons dashicons-edit"></div> <?php _e('Chart Creation Wizard','wpdatatables'); ?></span>
27
- </h3>
28
- <div class="inside">
29
-
30
- <div class="chart_wizard_breadcrumbs">
31
- <div class="chart_wizard_breadcrumbs_block active step1">
32
- <?php _e( 'Chart title & type', 'wpdatatables' ); ?>
33
- </div>
34
- <span class="chart_wizard_breadcrumbs_separator"> &gt; </span>
35
- <div class="chart_wizard_breadcrumbs_block step2">
36
- <?php _e( 'Data source', 'wpdatatables' ); ?>
37
- </div>
38
- <span class="chart_wizard_breadcrumbs_separator"> &gt; </span>
39
- <div class="chart_wizard_breadcrumbs_block step3">
40
- <?php _e( 'Data range', 'wpdatatables' ); ?>
41
- </div>
42
- <span class="chart_wizard_breadcrumbs_separator"> &gt; </span>
43
- <div class="chart_wizard_breadcrumbs_block step4">
44
- <?php _e( 'Formatting', 'wpdatatables' ); ?>
45
- </div>
46
- <span class="chart_wizard_breadcrumbs_separator"> &gt; </span>
47
- <div class="chart_wizard_breadcrumbs_block step5">
48
- <?php _e( 'Preview', 'wpdatatables' ); ?>
49
- </div>
50
- <span class="chart_wizard_breadcrumbs_separator"> &gt; </span>
51
- <div class="chart_wizard_breadcrumbs_block step6">
52
- <?php _e( 'Save and get shortcode', 'wpdatatables' ); ?>
53
- </div>
54
- </div>
55
-
56
- <div class="steps">
57
-
58
- <div class="chartWizardStep step1" data-step="step1">
59
- <h3><?php _e('Chart title, rendering engine and type','wpdatatables'); ?></h3>
60
- <fieldset style="margin: 10px;">
61
- <?php echo '<strong style="color: green;">Sorry, this function is available only in Premium version of wpDataTables along with many others! Please go to our <a href="http://wpdatatables.com/">website</a> to see the full list and to purchase!</strong>' ?>
62
- <table>
63
- <tr>
64
- <td style="width: 250px">
65
- <label for="chart_name"><span><strong><?php _e('Chart name','wpdatatables');?></strong></span></label><br/>
66
- <span class="description"><small><?php _e('What is the title of the chart that you will use to identify it?','wpdatatables');?>.</small></span>
67
- </td>
68
- <td>
69
- <input id="chart_name" type="text" value="<?php echo empty( $chart_id ) ? __( 'New wpDataTable Chart', 'wpdatatables' ) : $chartObj->getTitle(); ?>" />
70
- </td>
71
- </tr>
72
- <tr>
73
- <tr>
74
- <td>
75
- <label for="table_name"><span><strong><?php _e('Chart render engine','wpdatatables');?></strong></span></label><br/>
76
- <span class="description"><small><?php _e('Please choose the render engine.','wpdatatables');?> </small></span>
77
- </td>
78
- <td>
79
- <select id="chart_render_engine">
80
- <option value="" <?php echo empty( $chart_id ) ? 'selected="selected"' : ''; ?> ><?php _e('Pick the render engine','wpdatatables'); ?></option>
81
- <option value="google" <?php if( !empty( $chart_id ) && ( $chartObj->getEngine() == 'google' ) ){ ?>selected="selected"<?php } ?> >Google Charts</option>
82
- <option value="highcharts" <?php if( !empty( $chart_id ) && ( $chartObj->getEngine() == 'highcharts' ) ){ ?>selected="selected"<?php } ?> >HighCharts</option>
83
- </select>
84
- </td>
85
- </tr>
86
- <tr class="charts_type google_charts_type" style="display: none">
87
- <td colspan="2">
88
- <label for="google_chart_type"><span><strong><?php _e('Pick a Google chart type','wpdatatables');?></strong></span></label><br/><br/>
89
- <select id="google_chart_type" style="display: none !important;">
90
- <option value="google_column_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_column_chart.jpg"><?php _e( 'Column chart', 'wpdatatables' ); ?></option>
91
- <option value="google_histogram" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_histogram.jpg"><?php _e( 'Histogram', 'wpdatatables' ); ?></option>
92
- <option value="google_bar_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_bar_chart.jpg"><?php _e( 'Bar chart', 'wpdatatables' ); ?></option>
93
- <option value="google_area_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_area_chart.jpg"><?php _e( 'Area chart', 'wpdatatables' ); ?></option>
94
- <option value="google_stepped_area_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_stepped_area_chart.jpg"><?php _e( 'Stepped area chart', 'wpdatatables' ); ?></option>
95
- <option value="google_line_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_line_chart.jpg"><?php _e( 'Line chart', 'wpdatatables' ); ?></option>
96
- <option value="google_pie_chart" data-min_columns="2" data-max_columns="2" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_pie_chart.jpg"><?php _e( 'Pie chart', 'wpdatatables' ); ?></option>
97
- <option value="google_bubble_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_bubble_chart.jpg"><?php _e( 'Bubble chart', 'wpdatatables' ); ?></option>
98
- <option value="google_donut_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_donut_chart.jpg"><?php _e( 'Donut chart', 'wpdatatables' ); ?></option>
99
- <option value="google_gauge_chart" data-min_columns="1" data-max_columns="2" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_gauge_chart.jpg"><?php _e( 'Gauge chart', 'wpdatatables' ); ?></option>
100
- <option value="google_scatter_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/google_scatter_chart.jpg"><?php _e( 'Scatter chart', 'wpdatatables' ); ?></option>
101
- </select>
102
- </td>
103
- </tr>
104
- <tr class="charts_type highcharts_charts_type" style="display: none !important;">
105
- <td colspan="2">
106
- <label for="highcharts_chart_type"><span><strong><?php _e('Pick a Highcharts chart type','wpdatatables');?></strong></span></label><br/><br/>
107
- <select id="highcharts_chart_type" style="display: none !important;">
108
- <option value="highcharts_line_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_line_chart.jpg"><?php _e( 'Line chart', 'wpdatatables' ); ?></option>
109
- <option value="highcharts_basic_area_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_basic_area_chart.jpg"><?php _e( 'Basic area chart', 'wpdatatables' ); ?></option>
110
- <option value="highcharts_stacked_area_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_stacked_area_chart.jpg"><?php _e( 'Stacked area chart', 'wpdatatables' ); ?></option>
111
- <option value="highcharts_basic_bar_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_basic_bar_chart.jpg"><?php _e( 'Basic bar chart', 'wpdatatables' ); ?></option>
112
- <option value="highcharts_stacked_bar_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_stacked_bar_chart.jpg"><?php _e( 'Stacked bar chart', 'wpdatatables' ); ?></option>
113
- <option value="highcharts_basic_column_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_basic_column_chart.jpg"><?php _e( 'Basic column chart', 'wpdatatables' ); ?></option>
114
- <option value="highcharts_stacked_column_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_stacked_column_chart.jpg"><?php _e( 'Stacked column chart', 'wpdatatables' ); ?></option>
115
- <option value="highcharts_pie_chart" data-min_columns="2" data-max_columns="2" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_pie_chart.jpg"><?php _e( 'Pie chart', 'wpdatatables' ); ?></option>
116
- <option value="highcharts_pie_with_gradient_chart" data-min_columns="2" data-max_columns="2" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_pie_with_gradient_chart.jpg"><?php _e( 'Pie with gradient chart', 'wpdatatables' ); ?></option>
117
- <option value="highcharts_donut_chart" data-min_columns="2" data-max_columns="2" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_donut_chart.jpg"><?php _e( 'Donut chart', 'wpdatatables' ); ?></option>
118
- <option value="highcharts_scatter_plot" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_scatter_plot.jpg"><?php _e( 'Scatter plot', 'wpdatatables' ); ?></option>
119
- <option value="highcharts_3d_column_chart" data-min_columns="2" data-max_columns="0" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_3d_column_chart.jpg"><?php _e( '3D column chart', 'wpdatatables' ); ?></option>
120
- <option value="highcharts_3d_pie_chart" data-min_columns="2" data-max_columns="2" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_3d_pie_chart.jpg"><?php _e( '3D pie chart', 'wpdatatables' ); ?></option>
121
- <option value="highcharts_3d_donut_chart" data-min_columns="2" data-max_columns="2" data-img-src="<?php echo WDT_ASSETS_PATH?>img/chart-thumbs/highcharts_3d_donut_chart.jpg"><?php _e( '3D donut chart', 'wpdatatables' ); ?></option>
122
- </select>
123
- </td>
124
- </tr>
125
- </table>
126
- </fieldset>
127
- </div>
128
-
129
- <?php ?>
130
-
131
- </div>
132
-
133
- <?php ?>
134
-
135
- </div>
136
- </div>
137
- </div>
138
- </div>
139
- </div>
140
- </div>
141
- </div>
142
- </div>
143
-
144
- <?php ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/constructor.inc.php DELETED
@@ -1,49 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <div class="wpDataTables metabox-holder">
4
- <div id="wdtPreloadLayer" class="overlayed">
5
- </div>
6
-
7
- <input type="hidden" id="wdtConstructorNonce" value="<?php echo wp_create_nonce( 'wdt_constructor_nonce_'.get_current_user_id() ); ?>" />
8
-
9
- <div class="wrap">
10
- <div id="poststuff">
11
- <div id="post-body" class="metabox-holder">
12
- <div id="postbox-container-1" class="postbox-container">
13
- <img src="<?php echo dirname(plugin_dir_url(__FILE__)); ?>/assets/img/wpdatatables-logo.png" class="wpdatatables_logo" />
14
- <p><i><?php _e('Please refer to','wpdatatables');?> <a href="http://wpdatatables.com/documentation/creating-new-wpdatatables-with-table-constructor/"><?php _e('wpDataTables documentation on Table Consturctor','wpdatatables');?></a> <?php _e('if you have some questions or problems.','wpdatatables'); ?></i></p>
15
- <h2><?php _e('wpDataTable constructor','wpdatatables'); ?></h2>
16
- <form method="post" action="<?php echo WDT_ROOT_URL ?>" id="wpDataTablesSettings">
17
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
18
- <div class="postbox">
19
- <div class="handlediv" title="<?php _e('Click to toggle','wpdatatables'); ?>"><br/></div>
20
- <h3 class="hndle">
21
- <span><div class="dashicons dashicons-edit"></div> <?php _e('Table Creation Wizard','wpdatatables'); ?></span>
22
- </h3>
23
- <div class="inside">
24
-
25
- <div class="steps">
26
-
27
- <!-- Selection of data source type -->
28
- <div class="constructorStep step1" data-step="1">
29
- <h3><?php _e('Choose what kind of table would you like to construct','wpdatatables'); ?></h3>
30
- <fieldset style="margin: 10px;">
31
- <?php ?>
32
- <?php echo'<label for="manual_input"><input class="full_version_option" id="manual_input" type="radio" name="wpdatatables_type_input" value="manual" /> <span>I would like to prepare structure and input all the data manually</span></label><br/><label for="file_input"><input class="full_version_option" id="file_input" type="radio" name="wpdatatables_type_input" value="file" /> <span>I would like to read the initial table data from an input file</span></label><br/><label for="wp_posts_input"><input class="full_version_option" id="wp_posts_input" type="radio" name="wpdatatables_type_input" value="wp" /> <span>I want to create a table based on my WordPress data (posts or pages, and post meta or taxonomy values</span></label><br/><label for="mysql_construct_input"><input class="full_version_option" id="mysql_construct_input" type="radio" name="wpdatatables_type_input" value="mysql" /> <span>I want to construct a table based on data from existing MySQL DB tables</span></label><br/><input type="hidden" value="" id="wdt_date_format" />' ?>
33
-
34
- </fieldset>
35
- </div>
36
- <?php ?>
37
- </div>
38
-
39
- <?php ?>
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </div>
45
- </div>
46
- </div>
47
- </div>
48
-
49
- <?php ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/edit_table.inc.php DELETED
@@ -1,804 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <div class="wpDataTables metabox-holder toplevel_page_wpdatatables-administration">
4
- <div id="wdtPreloadLayer" class="overlayed">
5
- </div>
6
- <div class="wrap">
7
- <div id="poststuff">
8
- <div id="post-body" class="metabox-holder">
9
- <div id="postbox-container-1" class="postbox-container">
10
- <img src="<?php echo dirname(plugin_dir_url(__FILE__)); ?>/assets/img/wpdatatables-logo.png" class="wpdatatables_logo" />
11
- <p><i><?php _e('Please refer to','wpdatatables');?> <a href="http://wpdatatables.com/documentation/creating-wpdatatables/"><?php _e('wpDataTables documentation on this page','wpdatatables');?></a> <?php _e('if you have some questions or problems.','wpdatatables'); ?></i></p>
12
- <h2>
13
- <?php echo $wpShowTitle ?>
14
- <?php if (!empty($table_id)) { ?>
15
- <a href="<?php echo wp_nonce_url('admin.php?page=wpdatatables-administration&action=delete&table_id=' . $table_id . '', 'wdtDeleteTableNonce', 'wdtNonce' ) ?>" class="add-new-h2 submitdelete"><?php _e('Delete','wpdatatables');?></a>
16
- <?php } ?>
17
- </h2>
18
- <div id="message" class="updated" <?php if (empty($table_id)) { ?>style="display: none;"<?php } ?> >
19
- <p id="wdtScId"><?php _e('To insert the table on your page use the shortcode','wpdatatables');?>: <strong>[wpdatatable id=<?php if (!empty($table_id)) {echo $table_id; } ?>]</strong></p>
20
- </div>
21
- <input type="hidden" id="wdtSaveTableNonce" value="<?php echo wp_create_nonce( 'wdt_save_table_nonce_' . get_current_user_id() ); ?>" />
22
- <input type="hidden" id="wdt_date_format" value="<?php echo $wdtDateFormat; ?>" />
23
- <input type="hidden" id="wpdatatable_id" value="<?php if (!empty($table_id)) { echo $table_id; } ?>" />
24
- <input type='hidden' id='wdt_table_manual' value='<?php if( isset($table_data['table_type']) && ($table_data['table_type'] == 'manual') ) { echo '1'; } else { echo '0'; } ?>' />
25
- <?php do_action('wpdatatables_admin_before_edit'); ?>
26
- <form method="post" action="<?php echo WDT_ROOT_URL ?>" id="wpDataTablesSettings">
27
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
28
- <div class="postbox">
29
-
30
- <div class="handlediv" title="<?php _e('Click to toggle','wpdatatables'); ?>"><br/></div>
31
- <h3 class="hndle" style="height: 27px">
32
- <span><div class="dashicons dashicons-feedback"></div> <?php _e('Data source and main settings','wpdatatables');?></span>
33
- <div class="pull-right" style="margin-right: 5px">
34
- <input type="submit" name="submitStep1" class="submitStep1 button-primary" value="<?php _e('Save','wpdatatables');?>">
35
- <button class="button-primary previewButton" style="display: none"><?php _e('Preview','wpdatatables');?></button>
36
- <button class="button-primary closeButton"><?php _e('Close','wpdatatables');?></button>
37
- </div>
38
- </h3>
39
-
40
- <div class="inside">
41
- <table class="form-table wpDataTables">
42
- <tbody>
43
- <tr>
44
- <td colspan="2">
45
- <h3>
46
- <div class="dashicons dashicons-admin-generic"></div> <?php _e('General setup','wpdatatables');?>
47
- </h3>
48
- </td>
49
- </tr>
50
-
51
- <tr>
52
- <td colspan="2">
53
- </td>
54
- </tr>
55
-
56
- <tr valign="top" class="step1_row">
57
- <th scope="row">
58
- <label for="wpTableTitle"><?php _e('Table title','wpdatatables');?></label>
59
- </th>
60
- <td>
61
- <input type="text" id="wpTableTitle" name="wpTableTitle" value="<?php if (!empty($table_data['title'])) echo $table_data['title'] ?>" /><br/>
62
- <span class="description"><?php _e('If you want to display a header above your table, enter it here','wpdatatables');?>.</span>
63
- </td>
64
- </tr>
65
- <tr valign="top" class="step1_row">
66
- <th scope="row">
67
- <label for="wpShowTableTitle"><?php _e('Show table title','wpdatatables');?></label>
68
- </th>
69
- <td>
70
- <input type="checkbox" id="wpShowTableTitle" name="wpShowTableTitle" <?php if ((isset($table_data['show_title']) && ($table_data['show_title'] == 1) ) || !isset( $table_data['show_title'] ) ){ ?>checked="checked"<?php } ?> />
71
- <span class="description"><?php _e('Uncheck if you do not want to show the table title on the page','wpdatatables');?>.</span>
72
- </td>
73
- </tr>
74
- <?php if( empty($table_data['table_type']) || ( isset($table_data['table_type']) && $table_data['table_type'] != 'manual' ) ){ ?>
75
- <tr valign="top" class="step1_row">
76
- <th scope="row">
77
- <label for="wpTableType"><?php _e('Table type','wpdatatables');?></label>
78
- </th>
79
- <td>
80
- <select name="wpTableType" id="wpTableType" class="wpDataTables">
81
- <option value=""><?php _e('Select a table type...','wpdatatables');?></option>
82
- <option <?php echo ' class="full_version_option" ' ?> value="mysql" <?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'mysql') {
83
- ?>selected="selected"<?php } ?>><?php _e('MySQL
84
- query','wpdatatables');?><?php echo ' (Premium version)'; ?></option>
85
- <option value="csv" <?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'csv') { ?>selected="selected"<?php } ?>><?php _e('CSV file','wpdatatables');?></option>
86
- <option value="xls" <?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'xls') { ?>selected="selected"<?php } ?>><?php _e('Excel file','wpdatatables');?></option>
87
- <option <?php echo ' class="full_version_option" ' ?> value="google_spreadsheet" <?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'google_spreadsheet') {
88
- ?>selected="selected"<?php } ?>><?php _e('Google spreadsheet','wpdatatables');?><?php echo ' (Premium version)'; ?></option>
89
- <option value="xml" <?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'xml') { ?>selected="selected"<?php } ?>><?php _e('XML file','wpdatatables');?></option>
90
- <option value="json" <?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'json') { ?>selected="selected"<?php } ?>><?php _e('JSON file','wpdatatables');?></option>
91
- <option value="serialized" <?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'serialized') { ?>selected="selected"<?php } ?>><?php _e('Serialized PHP array','wpdatatables');?></option>
92
- </select><br/>
93
- <span class="description"><?php _e('Choose a type of input source for your table','wpdatatables');?>.</span>
94
- </td>
95
- </tr>
96
- <?php } else { ?>
97
- <tr valign="top" class="step1_row">
98
- <th scope="row">
99
- <label for="wpTableType"><?php _e('Edit data','wpdatatables');?></label>
100
- </th>
101
- <td>
102
- <a href="admin.php?page=wpdatatables-editor&table_id=<?php echo $table_id ?>" class="button-primary"><?php _e('Go to editor', 'wpdatatables'); ?></a><br/><br/>
103
- <a href="admin.php?page=wpdatatables-editor&table_id=<?php echo $table_id ?>&table_type=excel" class="button-primary"><?php _e('Go to Excel-like editor', 'wpdatatables'); ?></a><br/><br/>
104
- <span class="description"><?php _e('Open the table in back-end editor to modify table data','wpdatatables');?>.</span>
105
- </td>
106
- </tr>
107
- <?php } ?>
108
- <tr valign="top" class="mysqlquery_row step1_row">
109
- <th scope="row">
110
- <label for="wpMySQLQuery" class="tooltip" data-title="<?php _e('Enter MySQL SELECT query that will return the data for your wpDataTable. Make sure that this query works and returns data. If you are not sure what is a MySQL query please consider using Excel data source, or spend some time reading MySQL manuals','wpdatatables');?>."><?php _e('MySQL query','wpdatatables');?></label>
111
- </th>
112
- <td>
113
- <pre id="wpMySQLQuery" style="width: 600px; height: 250px"><?php if (!empty($table_data['table_type']) && $table_data['table_type'] == 'mysql') {
114
- echo htmlentities($table_data['content']);
115
- } ?></pre><br/>
116
- <div><span class="description"><?php _e('Enter the text of your MySQL query here. You can use a number of placeholders to make the dataset in the table flexible and be able to return different sets of data by calling it with different shortcodes','wpdatatables');?>.</span></div>
117
- <button class="button" id="wdtPlaceholdersTableToggle" style="margin-top: 10px"><span class="dashicons dashicons-arrow-down-alt2" style="line-height: 27px;"></span> <?php _e('MySQL query placeholders (toggle show/hide)','wpdatatables'); ?></button>
118
- <table id="wdtPlaceholdersTable" style="display: none">
119
- <thead>
120
- <tr>
121
- <th><?php _e('Placeholder','wpdatatables'); ?></th>
122
- <th><?php _e('Description, example','wpdatatables'); ?></th>
123
- <th><?php _e('Define default for table generation','wpdatatables'); ?></th>
124
- </tr>
125
- </thead>
126
- <tbody>
127
- <tr>
128
- <td><strong>%CURRENT_USER_ID%</strong></td>
129
- <td>
130
- <?php _e('Returns the numeric value of the currently logged in user ID (wp_users table). Returns 0 for non-logged in users. If your current user does not have rows in the table you can redefine it here (it will not be stored, used only to read the table structure).','wpdatatables'); ?><br/>
131
- <strong><?php _e('Example: SELECT * FROM mytable WHERE user_id = %CURRENT_USER_ID%','wpdatatables'); ?></strong>
132
- </td>
133
- <td><input type="text" id="wdtCurrentUserIdPlaceholderDefault" value="<?php echo get_current_user_id() ?>" /></td>
134
- </tr>
135
- <tr>
136
- <td><strong>%VAR1%</strong></td>
137
- <td>
138
- <?php _e('Variable for using in the shortcode. Can be used in filter values. It is necessary for wpDataTables to retrieve actual data from the DB at the moment of wpDataTable generation to read the columns structure, so make sure the query returns something. You can define the default variables values here, they will be used for table creation, and as defaults if not defined in shortcode.','wpdatatables'); ?><br/>
139
- <strong><?php _e('Example: SELECT * FROM mytable WHERE mycolumn >= %VAR1% AND mycolumn <= %VAR2%','wpdatatables'); ?></strong>
140
- </td>
141
- <td><input type="text" id="wdtVar1PlaceholderDefault" value="<?php if (!empty($table_data['var1'])){ echo $table_data['var1']; } ?>" /></td>
142
- </tr>
143
- <tr>
144
- <td><strong>%VAR2%</strong></td>
145
- <td>
146
- <?php _e('Variable for using in the shortcode.','wpdatatables'); ?><br/>
147
- </td>
148
- <td><input type="text" id="wdtVar2PlaceholderDefault" value="<?php if (!empty($table_data['var1'])){ echo $table_data['var2']; } ?>" /></td>
149
- </tr>
150
- <tr>
151
- <td><strong>%VAR3%</strong></td>
152
- <td>
153
- <?php _e('Variable for using in the shortcode.','wpdatatables'); ?><br/>
154
- </td>
155
- <td><input type="text" id="wdtVar3PlaceholderDefault" value="<?php if (!empty($table_data['var1'])){ echo $table_data['var3']; } ?>" /></td>
156
- </tr>
157
- <tr>
158
- <td><strong>%WPDB%</strong></td>
159
- <td>
160
- <?php _e('Prefix of the current WordPress DB installation. Defaults to "wp_", but may be different if defined so in WordPress config.','wpdatatables'); ?><br/>
161
- </td>
162
- <td></td>
163
- </tr>
164
- </tbody>
165
- </table>
166
- </td>
167
- </tr>
168
- <tr valign="top" class="inputfile_row step1_row">
169
- <th scope="row">
170
- <label for="wpInputFile"><?php _e('Input file or URL','wpdatatables');?></label>
171
- </th>
172
- <td>
173
- <input type="text" id="wpInputFile" name="wpInputFile" value="<?php echo $table_content; ?>" />
174
- <input id="wpUploadFileBtn" type="button" value="Upload file" class="button" /><br/>
175
- <span class="description"><?php _e('Upload your file or provide the full URL here','wpdatatables');?>. <?php _e('It is allowed to use placeholders (variables) in URLs. Read about placeholders '); ?><a href="http://wpdatatables.com/documentation/table-features/using-placeholders/"><?php _e('here.','wpdatatables');?></a><br/><b><?php _e('For CSV or Excel input sources only uploaded files are supported','wpdatatables');?></b><br/><b><?php _e('For Google Spreadsheets: please do not forget to publish the spreadsheet before pasting the URL','wpdatatables');?></b>.</span><br/>
176
- </td>
177
- </tr>
178
- <tr valign="top" class="table_editable_row step1_row">
179
- <th scope="row">
180
- <label for="wpTableEditable"><?php _e('Front-end editing','wpdatatables');?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
181
- </th>
182
- <td>
183
- <input type="checkbox" <?php echo ' class="full_version_option" ' ?> <?php if( empty( $table_id ) ) { ?>disabled="disabled"<?php } ?> id="wpTableEditable"
184
- name="wpTableEditable" <?php if (!empty
185
- ($table_data['editable']) && ($table_data['editable'] == '1')) { ?>checked="checked"<?php } ?> />
186
- <span class="description"><?php _e('Make table editable from the front-end','wpdatatables');?>.<br/><b><?php _e('Works only for MySQL-based tables with server-side processing, and can only update one table on MySQL side','wpdatatables');?></b>.</span><br/>
187
- <?php if( empty( $table_id ) ) { ?><span class="description"><?php _e('Please save the table first so wpDataTables would read the columns data so that feature would become available.','wpdatatables');?></span><?php } ?>
188
- </td>
189
- </tr>
190
- <tr valign="top" class="table_mysql_name_row step1_row" <?php if( empty( $table_data['editable'] ) ) { ?>style="display: none"<?php } ?>>
191
- <th scope="row">
192
- <label for="wpTableMysqlName"><?php _e('MySQL table name for editing','wpdatatables');?></label>
193
- </th>
194
- <td>
195
- <input type="text" id="wpTableMysqlName" name="wpTableMysqlName" value="<?php if (!empty($table_data['mysql_table_name'])) {
196
- echo $table_data['mysql_table_name'];
197
- } ?>" />
198
- <span class="description"><?php _e('Name of the MySQL table which will be used for updates from front-end','wpdatatables');?>.</span>
199
- </td>
200
- </tr>
201
- <tr valign="top" class="step1_row id_column_row" <?php if( empty( $table_data['editable'] ) ) { ?>style="display: none"<?php } ?>>
202
- <th scope="row">
203
- <label for="wpUserIdColumn"><?php _e('ID column for editing','wpdatatables');?></label>
204
- </th>
205
- <td>
206
- <?php if( empty( $table_id ) ) { ?>
207
- <small><?php _e( 'Please save the table first so wpDataTables would initialize the columns','wpdatatables' ); ?></small>
208
- <?php } else { ?>
209
- <select name="wdtIdColumn" id="wdtIdColumn">
210
- <option value=""><?php _e('Please choose an ID column for editing...','wpdatatables');?></option>
211
- <?php foreach( $column_data as $column ){ ?>
212
- <option value="<?php echo $column->id ?>" <?php if( $column->id_column ) { ?>selected="selected"<?php } ?>><?php echo $column->orig_header ?></option>
213
- <?php } ?>
214
- </select>
215
- <?php } ?>
216
- <br/>
217
- <span class="description"><?php _e('Please choose a column, values from which will be used as row unique identifier. MUST be auto-increment integer on MySQL side so insert/edit/delete would work correctly!','wpdatatables');?>.</span><br/>
218
- <span class="description"><small><?php _e('wpDataTables will guess the correct column if it is called "id" or "ID" on MySQL side','wpdatatables');?></small>.</span>
219
- </td>
220
- </tr>
221
- <tr valign="top" class="table_inline_editing_row step1_row" <?php if( empty( $table_data['editable'] ) ) { ?>style="display: none"<?php } ?>>
222
- <th scope="row">
223
- <label for="wpTableInlineEditing"><?php _e('Inline editing','wpdatatables');?></label>
224
- </th>
225
- <td>
226
- <input type="checkbox" <?php if( empty( $table_id ) ) { ?>disabled="disabled"<?php } ?> id="wpTableInlineEditing" name="wpTableInlineEditing" <?php if (!empty($table_data['inline_editing']) && ($table_data['editable'] == '1')) { ?>checked="checked"<?php } ?> />
227
- <span class="description"><?php _e('Check this checkbox if you would like to be able to edit the table data inline, by double-clicking a cell, not only in a modal dialog','wpdatatables'); ?></span>
228
- </td>
229
- </tr>
230
- <tr valign="top" class="table_popover_tools_row step1_row" <?php if( empty( $table_data['editable'] ) ) { ?>style="display: none"<?php } ?>>
231
- <th scope="row">
232
- <label for="wpTablePopoverTools"><?php _e('Popover tools','wpdatatables');?></label>
233
- </th>
234
- <td>
235
- <input type="checkbox" <?php if( empty( $table_id ) ) { ?>disabled="disabled"<?php } ?> id="wpTablePopoverTools" name="wpTablePopoverTools" <?php if (!empty($table_data['popover_tools']) && ($table_data['editable'] == '1')) { ?>checked="checked"<?php } ?> />
236
- <span class="description"><?php _e('Check this checkbox if you would like to get the New, Edit and Delete buttons in a popover on click on a table row, instead of in TableTools block above the table','wpdatatables'); ?></span>
237
- </td>
238
- </tr>
239
- <?php do_action('wpdatatables_additional_option', !empty( $table_id ) ? $table_id : 0, $table_data); ?> <tr valign="top" class="editing_own_rows_row step1_row">
240
- <th scope="row">
241
- <label for="wpTableEditingOwnRowsOnly"><?php _e('Users see and edit only their data','wpdatatables');?></label>
242
- </th>
243
- <td>
244
- <input type="checkbox" id="wpTableEditingOwnRowsOnly" name="wpTableEditingOwnRowsOnly" <?php if (!empty($table_data['edit_only_own_rows']) && ($table_data['edit_only_own_rows'] == '1')) { ?>checked="checked"<?php } ?> />
245
- <span class="description"><?php _e('Limit editing to user\'s own data only','wpdatatables');?>.<br/><b><?php _e('Set this to checked if you would like front-end users to see and edit only their own data, i.e. rows with their WordPress user ID','wpdatatables');?></b>.</span>
246
- </td>
247
- </tr>
248
- <tr valign="top" class="step1_row user_id_row" <?php if( empty( $table_data['edit_only_own_rows'] ) ) { ?>style="display: none"<?php } ?>>
249
- <th scope="row">
250
- <label for="wpUserIdColumn"><?php _e('User ID column','wpdatatables');?></label>
251
- </th>
252
- <td>
253
- <?php if( empty( $table_id ) ) { ?>
254
- <small><?php _e( 'Please save the table first so wpDataTables would initialize the columns','wpdatatables' ); ?></small>
255
- <?php } else { ?>
256
- <select name="wpUserIdColumn" id="wpUserIdColumn" class="wpDataTables">
257
- <option value=""><?php _e('Please choose a user ID column...','wpdatatables');?></option>
258
- <?php foreach( $column_data as $column ){ ?>
259
- <option value="<?php echo $column->id ?>" <?php if( $table_data['userid_column_id'] == $column->id ) { ?>selected="selected"<?php } ?>><?php echo $column->orig_header ?></option>
260
- <?php } ?>
261
- </select>
262
- <?php } ?>
263
- </td>
264
- </tr>
265
- <tr valign="top" class="editor_roles_row step1_row">
266
- <th scope="row">
267
- <label for="wpTableEditorRoles"><?php _e('Editor roles','wpdatatables');?></label>
268
- </th>
269
- <td>
270
- <div id="wpTableEditorRoles"><?php echo !empty($table_data['editor_roles']) ? $table_data['editor_roles'] : ''; ?></div>
271
- <button class="button" id="selectEditorRoles"><?php _e('Choose roles','wpdatatables');?></button>
272
- <span class="description"><?php _e('Roles which are allowed to edit the table (leave blank to alllow editing for everyone)','wpdatatables');?>.</span>
273
- </td>
274
- </tr>
275
- <tr>
276
- <td colspan="2">
277
- <h3><div class="dashicons dashicons-editor-kitchensink"></div> <?php _e('Additional settings','wpdatatables');?></h3>
278
- </td>
279
- </tr>
280
- <tr valign="top" class="step1_row serverside_row">
281
- <th scope="row">
282
- <label for="wpServerSide"><?php _e('Server-side processing','wpdatatables');?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
283
- </th>
284
- <td>
285
- <input type="checkbox" <?php echo ' class="full_version_option" ' ?> id="wpServerSide" <?php if (isset($table_data['server_side']) && $table_data['server_side']) {
286
- ?>checked="checked"<?php } ?> />
287
- <span class="description"><?php _e('Server-side processing for MySQL-based tables. Required for front-end editing','wpdatatables');?>.</span>
288
- </td>
289
- </tr>
290
- <tr valign="top" class="step1_row autorefresh_row">
291
- <th scope="row">
292
- <label for="wdtAutoRefresh"><?php _e('Auto-refresh','wpdatatables');?></label>
293
- </th>
294
- <td>
295
- <input type="number" id="wdtAutoRefresh" <?php if( !empty($table_data['auto_refresh']) ) { ?>value="<?php echo $table_data['auto_refresh']; ?>" <?php } ?> /><br/>
296
- <span class="description"><?php _e('Auto-refresh interval in seconds for tables with server-side processing. Leave blank or zero to disable auto-refresh.','wpdatatables');?>.</span>
297
- </td>
298
- </tr>
299
- <tr valign="top" class="step1_row">
300
- <th scope="row">
301
- <label for="wdtResponsive"><?php _e('Responsive','wpdatatables');?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
302
- </th>
303
- <td>
304
- <input type="checkbox" <?php echo ' class="full_version_option" ' ?> id="wdtResponsive" <?php if (isset($table_data['responsive']) && $table_data['responsive']) {
305
- ?>checked="checked"<?php } ?> />
306
- <span class="description"><?php _e('Check this checkbox if you would like this table to be responsive - display differently on desktops, tablets and mobiles','wpdatatables');?>.</span>
307
- </td>
308
- </tr>
309
- <tr valign="top" class="step1_row">
310
- <th scope="row">
311
- <label for="wdtScrollable"><?php _e('Scrollable','wpdatatables');?></label>
312
- </th>
313
- <td>
314
- <input type="checkbox" id="wdtScrollable" <?php if (isset($table_data['scrollable']) && $table_data['scrollable']) { ?>checked="checked"<?php } ?> />
315
- <span class="description"><?php _e('Check this checkbox if you would like this table to be horizontal scrollable','wpdatatables');?>.</span>
316
- </td>
317
- </tr>
318
- <tr valign="top" class="step1_row">
319
- <th scope="row">
320
- <label for="wdtHideBeforeLoaded"><?php _e('Hide table until page is completely loaded','wpdatatables');?></label>
321
- </th>
322
- <td>
323
- <input type="checkbox" id="wdtHideBeforeLoaded" <?php if (!isset($table_data['hide_before_load']) || $table_data['hide_before_load']) { ?>checked="checked"<?php } ?> />
324
- <span class="description"><?php _e('Check this checkbox if you would prevent table from showing until the page loads completely. May be useful for slowly loading pages','wpdatatables');?>.</span>
325
- </td>
326
- </tr>
327
- <tr valign="top" class="step1_row">
328
- <th scope="row">
329
- <label for="wpAdvancedFilter"><?php _e('Advanced filtering','wpdatatables');?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
330
- </th>
331
- <td>
332
- <input type="checkbox" <?php echo ' class="full_version_option" ' ?> id="wpAdvancedFilter" <?php if (!isset($table_data['filtering']) || $table_data['filtering']) {
333
-
334
- } ?> />
335
- <span class="description"><?php _e('Check this checkbox if you would like to have a filter below each column','wpdatatables');?>.</span>
336
- </td>
337
- </tr>
338
- <tr valign="top" class="step1_row">
339
- <th scope="row">
340
- <label for="wpAdvancedFilterForm"><?php _e('Filter in form','wpdatatables');?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
341
- </th>
342
- <td>
343
- <input type="checkbox" <?php echo ' class="full_version_option" ' ?> id="wpAdvancedFilterForm" <?php if (isset($table_data['filtering_form']) &&
344
- $table_data['filtering_form']) { ?>checked="checked"<?php } ?> />
345
- <span class="description"><?php _e('Check this checkbox if you would like to have the advanced filter in a form','wpdatatables');?></span>
346
- </td>
347
- </tr>
348
- <tr valign="top" class="step1_row">
349
- <th scope="row">
350
- <label for="wpTableTools"><?php _e('Table tools','wpdatatables');?></label>
351
- </th>
352
- <td>
353
- <input type="checkbox" id="wpTableTools" <?php if (!isset($table_data['tools']) || $table_data['tools']) { ?>checked="checked"<?php } ?> />
354
- <span class="description"><?php _e('Check this checkbox if you would like to have the table tools (copy, save to excel, save to CSV, etc) enabled for this table','wpdatatables');?>.</span>
355
- </td>
356
- </tr>
357
- <tr valign="top" class="step1_row wdtConfigureTableToolsBlock" style="display: none">
358
- <th scope="row">
359
- </th>
360
- <td>
361
- <button class="button" id="wdtConfigureTableToolsToggle"><span class="dashicons dashicons-arrow-down-alt2" style="line-height: 27px;"></span> <?php _e('Configure table tools (toggle show/hide)','wpdatatables'); ?></button>
362
- <div id="wdtConfigureTableToolsBlock" style="display: none">
363
- <label for="wdtTTColumns"><input type="checkbox" id="wdtTTColumns" <?php if( !empty( $table_data['tabletools_config']['columns'] ) ) { ?>checked="checked"<?php } ?> /> <?php _e('Show column visibility button','wpdatatables');?></label>
364
- <label for="wdtTTPrint"><input type="checkbox" id="wdtTTPrint" <?php if( !empty( $table_data['tabletools_config']['print'] ) ) { ?>checked="checked"<?php } ?> /> <?php _e('Show print button','wpdatatables');?></label>
365
- <label for="wdtTTCopy"><input type="checkbox" id="wdtTTCopy" <?php if( !empty( $table_data['tabletools_config']['copy'] ) ) { ?>checked="checked"<?php } ?> /> <?php _e('Show copy to clipboard button','wpdatatables');?></label>
366
- <label for="wdtTTExcel"><input type="checkbox" id="wdtTTExcel" <?php if( !empty( $table_data['tabletools_config']['excel'] ) ) { ?>checked="checked"<?php } ?> /> <?php _e('Show Excel export button','wpdatatables');?></label>
367
- <label for="wdtTTCSV"><input type="checkbox" id="wdtTTCSV" <?php if( !empty( $table_data['tabletools_config']['csv'] ) ) { ?>checked="checked"<?php } ?> /> <?php _e('Show CSV export button','wpdatatables');?></label>
368
- <label for="wdtTTPDF"><input type="checkbox" id="wdtTTPDF" <?php if( !empty( $table_data['tabletools_config']['pdf'] ) ) { ?>checked="checked"<?php } ?> /> <?php _e('Show PDF export button','wpdatatables');?></label>
369
- </div>
370
- </td>
371
- </tr>
372
- <tr valign="top" class="step1_row">
373
- <th scope="row">
374
- <label for="wpSortByColumn"><?php _e('Enable sorting','wpdatatables');?></label>
375
- </th>
376
- <td>
377
- <input type="checkbox" id="wpSortByColumn" <?php if (!isset($table_data['sorting']) || $table_data['sorting']) { ?>checked="checked"<?php } ?> />
378
- <span class="description"><?php _e('Check this checkbox if you would like to have sorting feature in your table','wpdatatables');?>.</span>
379
- </td>
380
- </tr>
381
- <tr valign="top" class="step1_row">
382
- <th scope="row">
383
- <label for="wpFixedLayout"><?php _e('Limit table layout','wpdatatables');?></label>
384
- </th>
385
- <td>
386
- <input type="checkbox" id="wpFixedLayout" <?php if (isset($table_data['fixed_layout']) && $table_data['fixed_layout']) { ?>checked="checked"<?php } ?> />
387
- <span class="description"><?php _e('Check this checkbox if you would like to limit the table\'s width to 100% of parent container (div)','wpdatatables');?>.</span>
388
- </td>
389
- </tr>
390
- <tr valign="top" class="step1_row">
391
- <th scope="row">
392
- <label for="wpWordWrap"><?php _e('Word wrap','wpdatatables');?></label>
393
- </th>
394
- <td>
395
- <input type="checkbox" id="wpWordWrap" <?php if (isset($table_data['word_wrap']) && $table_data['word_wrap']) { ?>checked="checked"<?php } ?> />
396
- <span class="description"><?php _e('Check this checkbox if you would like words in cells to wrap and to extend row\'s height. Leave unchecked if you want to leave one-line row heights.','wpdatatables');?></span>
397
- </td>
398
- </tr>
399
- <tr valign="top" class="step1_row">
400
- <th scope="row">
401
- <label for="wpDisplayLength"><?php _e('Display length','wpdatatables');?></label>
402
- </th>
403
- <td>
404
- <select id="wpDisplayLength" class="wpDataTables">
405
- <option value="10" <?php if (isset($table_data['display_length']) && $table_data['display_length'] == '10') { ?>selected="selected"<?php } ?>>10 <?php _e('entries','wpdatatables');?></option>
406
- <option value="25" <?php if (isset($table_data['display_length']) && $table_data['display_length'] == '25') { ?>selected="selected"<?php } ?>>25 <?php _e('entries','wpdatatables');?></option>
407
- <option value="50" <?php if (isset($table_data['display_length']) && $table_data['display_length'] == '50') { ?>selected="selected"<?php } ?>>50 <?php _e('entries','wpdatatables');?></option>
408
- <option value="100" <?php if (isset($table_data['display_length']) && $table_data['display_length'] == '100') { ?>selected="selected"<?php } ?>>100 <?php _e('entries','wpdatatables');?></option>
409
- <option value="0" <?php if (isset($table_data['display_length']) && $table_data['display_length'] == '0') { ?>selected="selected"<?php } ?>><?php _e('All','wpdatatables');?></option>
410
- </select><br/>
411
- <span class="description"><?php _e('This options defines the default number of entries on the page for this table','wpdatatables');?>.</span>
412
- </td>
413
- </tr>
414
- <tr>
415
- <td colspan="2" style="position: relative">
416
- <input type="submit" name="submitStep1" class="submitStep1 button-primary" value="<?php _e('Save','wpdatatables');?>">
417
- <button class="button-primary previewButton" style="display: none"><?php _e('Preview','wpdatatables');?></button>
418
- <button class="button-primary closeButton"><?php _e('Close','wpdatatables');?></button>
419
- </td>
420
- </tr>
421
- </tbody>
422
- </table>
423
- </div>
424
- </div>
425
- </div>
426
-
427
-
428
- <div id="step2-postbox" class="meta-box-sortables ui-sortable" style="display: none">
429
- <div class="postbox">
430
-
431
- <div class="handlediv" title="<?php _e('Click to toggle','wpdatatables'); ?>"><br/></div>
432
- <h3 class="hndle" style="height: 27px">
433
- <span><div class="dashicons dashicons-exerpt-view"></div> <?php _e('Optional column setup','wpdatatables');?></span>
434
- <div class="pull-right" style="margin-right: 5px">
435
- <input type="submit" name="submitStep2" class="button-primary submitStep2" value="<?php _e('Save','wpdatatables');?>">
436
- <button class="button-primary ungroupButton"><?php _e('Ungroup','wpdatatables');?></button>
437
- <button class="button-primary addFormulaButton"><?php _e('Add formula...','wpdatatables');?></button>
438
- <button class="button-primary previewButton" style="display: none"><?php _e('Preview','wpdatatables');?></button>
439
- <button class="button-primary closeButton"><?php _e('Close','wpdatatables');?></button>
440
- </div>
441
- </h3>
442
-
443
- <div class="inside" style="overflow: scroll">
444
- <table>
445
- <tbody>
446
- <tr class="step2_row">
447
- <td colspan="2">
448
- <p><?php _e('You can change the column settings in this step, but this is not required, since default options have already been generated for you','wpdatatables');?>.</p>
449
- <span class="description"><strong><?php _e('Warning','wpdatatables');?>:</strong> <?php _e('If you change the table settings, save the table before modifying the column settings, because the column set can be changed and you may lose your changes','wpdatatables');?>.</span>
450
- </td>
451
- </tr>
452
- <tr class="step2_row">
453
- <td colspan="2" class="columnsBlock">
454
- </td>
455
- </tr>
456
- <tr class="step2_row">
457
- <td colspan="2" style="position: relative">
458
- <input type="submit" name="submitStep2" class="button-primary submitStep2" value="<?php _e('Save','wpdatatables');?>">
459
- <button class="button-primary ungroupButton"><?php _e('Ungroup','wpdatatables');?></button>
460
- <button class="button-primary addFormulaButton"><?php _e('Add formula...','wpdatatables');?></button>
461
- <button class="button-primary previewButton" style="display: none"><?php _e('Preview','wpdatatables');?></button>
462
- <button class="button-primary closeButton"><?php _e('Close','wpdatatables');?></button>
463
- </td>
464
- </tr>
465
-
466
- </table>
467
- </div>
468
- </div>
469
- </div>
470
- <input type="hidden" id="wpDataTableId" value="<?php if (!empty($table_id)) {
471
- echo $table_id;
472
- } ?>" />
473
- </form>
474
-
475
- </div>
476
- </div>
477
- </div>
478
- </div>
479
-
480
- </div>
481
-
482
- <?php ?>
483
-
484
- <div id="merge-possible-values" title="<?php _e('Merge values','wpdatatables'); ?>?" style="display: none;">
485
- <p><?php _e('There are already defined possible values.','wpdatatables'); ?><br />
486
- <?php _e('Do you want to merge new values with existing?','wpdatatables'); ?></p>
487
- </div>
488
-
489
-
490
- <script type="text/javascript">
491
-
492
- var columns_data = <?php if (!empty($column_data)) {
493
- echo json_encode(stripslashes_deep($column_data));
494
- } else {
495
- echo json_encode(array());
496
- } ?>;
497
- var preview_called = false;
498
-
499
- </script>
500
-
501
- <script id="columnsTableTmpl" type="text/x-jsrender">
502
- {{if !singleColumn}}
503
- <table>
504
- <tr class="sort_columns_block">
505
- {{/if}}
506
- {{for columns_data tmpl="#columnBlockTmpl" ~filterTypes=filterTypes ~columnTypes=columnTypes ~editorTypes=editorTypes ~tableEditable=tableEditable ~tableType=tableType ~tableServerSide=tableServerSide /}}
507
- {{if !singleColumn}}
508
- </tr>
509
- </table>
510
- {{/if}}
511
- </script>
512
-
513
- <script id="columnBlockTmpl" type="text/x-jsrender">
514
- <input type="hidden" id="wdtColumnsNonce" value="<?php echo wp_create_nonce( 'wdt_columns_nonce_' . get_current_user_id() ); ?>" />
515
- <td data-column_id="{{>id}}" data-column_key="{{>display_header}}">
516
- <table class="column_table {{if column_type == 'formula'}}formula_column{{/if}}" rel="{{>id}}" data-table_id="{{>table_id}}">
517
- <tr class="columnHeaderRow">
518
- <td colspan="2">
519
- <b>{{>orig_header}}</b>
520
- {{if column_type == 'formula'}}<button class="button removeColumnBlock" style=""><span class="dashicons dashicons-no-alt"></span></button>{{/if}}
521
- </td>
522
- </tr>
523
- <tr>
524
- <td>
525
- <b><?php _e('Displayed header','wpdatatables');?></b>:
526
- </td>
527
- <td>
528
- <input type="text" class="displayHeader" value="{{if display_header != ''}}{{>display_header}}{{else}}{{>orig_header}}{{/if}}" />
529
- </td>
530
- </tr>
531
- <tr>
532
- <td>
533
- <b><?php _e('CSS class(es)','wpdatatables');?></b>:
534
- </td>
535
- <td>
536
- <input type="text" class="cssClasses" value="{{>css_class}}" />
537
- </td>
538
- </tr>
539
- {{if column_type != 'formula'}}
540
- <tr>
541
- <td>
542
- <b><?php _e('Possible values','wpdatatables');?></b>:
543
- <button class="button button-primary showHint">?</button><br/>
544
- <small class="hint" style="display: none"><?php _e('Separate with','wpdatatables');?> "|". <?php _e('Used in advanced filterdropdown and in the editor dialog','wpdatatables');?>.</small>
545
-
546
- {{if ~tableType=='mysql' || ~tableType=='manual'}}
547
- <p><button class="button generatePossibleValues"><?php _e('Create from column values','wpdatatables');?></button></p>
548
- <p><button class="button clearPossibleValues"><?php _e('Clear values','wpdatatables');?></button></p>
549
- {{/if}}
550
-
551
- </td>
552
- <td>
553
- <input type="text" class="possibleValues" value="{{>possible_values}}" style="display: none !important;" />
554
- </td>
555
- </tr>
556
- <tr>
557
- <td>
558
- <b><?php _e('Default value(s)','wpdatatables');?></b>:
559
- <button class="button button-primary showHint">?</button><br/>
560
- <small class="hint" style="display: none"><?php _e('Predefined filter value, default editor input value. Separate multiple values with "|". Placeholders supported.','wpdatatables');?></small>
561
- </td>
562
- <td>
563
- <input type="text" class="defaultValue" value="{{>default_value}}" />
564
- </td>
565
- </tr>
566
- {{/if}}
567
- {{if !(~tableServerSide && column_type == 'formula')}}
568
- <tr>
569
- <td>
570
- <b><?php _e('Filter type','wpdatatables');?></b>:
571
- </td>
572
- <td>
573
- <select class="filterType wpDataTables">
574
- {{for ~filterTypes tmpl="#selectTemplate" ~selected=filter_type /}}
575
- </select>
576
- </td>
577
- </tr>
578
- {{/if}}
579
- {{if column_type != 'formula'}}
580
- <tr>
581
- <td>
582
- <b><?php _e('Column type','wpdatatables');?></b>:
583
- </td>
584
- <td>
585
- <select class="columnType wpDataTables">
586
- {{for ~columnTypes tmpl="#selectTemplate" ~selected=column_type /}}
587
- </select>
588
- </td>
589
- </tr>
590
- {{/if}}
591
- {{if column_type == 'formula'}}
592
- <tr>
593
- <td>
594
- <b><?php _e('Formula for calculation:','wpdatatables');?></b>
595
- <p><button class="button define_formula"><?php _e('Formula constructor','wpdatatables');?></button></p>
596
- </td>
597
- <td><input type="text" class="calc_formula" value="{{>calc_formula}}" /></td>
598
- </tr>
599
- {{/if}}
600
- {{if ~tableEditable && column_type != 'formula'}}
601
- <tr class="editable_table_column_row">
602
- <td>
603
- <b><?php _e('Editor input type:','wpdatatables');?></b>
604
- </td>
605
- <td>
606
- <select class="inputType wpDataTables">
607
- {{for ~editorTypes tmpl="#selectTemplate" ~selected=input_type /}}
608
- </select>
609
- </td>
610
- </tr>
611
- <tr class="editable_table_column_row">
612
- <td>
613
- <b><?php _e('Cannot be empty:','wpdatatables');?></b>
614
- </td>
615
- <td>
616
- <input type="checkbox" class="mandatoryInput" {{if input_type=="none"}}disabled="disabled"{{/if}} {{if input_mandatory == 1}}checked="checked"{{/if}} />
617
- </td>
618
- </tr>
619
- {{/if}}
620
- <tr class="responsive_table_column_row">
621
- <td>
622
- <b><?php _e('Hide on tablets','wpdatatables');?></b>
623
- </td>
624
- <td>
625
- <fieldset>
626
- <input type="checkbox" id="hideOnTablets_{{:#index}}" class="hideOnTablets" {{if hide_on_tablets=='1'}}checked="checked"{{/if}} />
627
- <label for="hideOnTablets_{{:#index}}"></label>
628
- </fieldset>
629
- </td>
630
- </tr>
631
- <tr class="responsive_table_column_row">
632
- <td>
633
- <b><?php _e('Hide on mobiles','wpdatatables');?></b>
634
- </td>
635
- <td>
636
- <fieldset>
637
- <input type="checkbox" id="hideOnMobiles_{{:#index}}" class="hideOnPhones" {{if hide_on_phones=='1'}}checked="checked"{{/if}} />
638
- <label for="hideOnMobiles_{{:#index}}">
639
- </fieldset>
640
- </td>
641
- </tr>
642
- {{if !(~tableServerSide && column_type == 'formula')}}
643
- <tr class="group_row">
644
- <td>
645
- <b><?php _e('Group column','wpdatatables');?></b>:
646
- </td>
647
- <td>
648
- <fieldset>
649
- <input type="radio" id="groupColumn_{{:#index}}" class="groupColumn" name="groupColumn" {{if group_column=='1'}}checked="checked"{{/if}} />
650
- <label for="groupColumn_{{:#index}}"></label>
651
- </fieldset>
652
- </td>
653
- </tr>
654
- {{/if}}
655
- {{if !(~tableServerSide && column_type == 'formula')}}
656
- <tr class="sort_row">
657
- <td>
658
- <b><?php _e('Default sort column','wpdatatables');?></b>:
659
- </td>
660
- <td>
661
- <fieldset>
662
- <input value="1" type="radio" id="sortColumnYes_{{:#index}}" class="sortColumn" name="sortColumn" {{if sort_column=='1'}}checked="checked"{{/if}} />
663
- <label for="sortColumnYes_{{:#index}}"><?php _e('Ascending','wpdatatables');?></label><br/>
664
- <input value="2" type="radio" id="sortColumnNo_{{:#index}}" class="sortColumn" name="sortColumn" {{if sort_column=='2'}}checked="checked"{{/if}} />
665
- <label for="sortColumnNo_{{:#index}}"><?php _e('Descending','wpdatatables');?></label>
666
- </fieldset>
667
- </td>
668
- </tr>
669
-
670
- <tr class="sum_row">
671
- <td>
672
- <b><?php _e('Show a total for this column in footer','wpdatatables');?></b>:
673
- </td>
674
- <td>
675
- <fieldset>
676
- <input type="checkbox" id="sumColumn_{{:#index}}" class="sumColumn" {{if sum_column=='1'}}checked="checked"{{/if}} />
677
- <label for="sumColumn_{{:#index}}"></label>
678
- </fieldset>
679
- </td>
680
- </tr>
681
- {{/if}}
682
- <tr class="skip_ts_row">
683
- <td>
684
- <b><?php _e('Skip thousands separator','wpdatatables');?></b>:
685
- </td>
686
- <td>
687
- <fieldset>
688
- <input type="checkbox" id="skipTS_{{:#index}}" class="skip_thousands_separator" {{if skip_thousands_separator=='1'}}checked="checked"{{/if}} />
689
- <label for="skipTS_{{:#index}}"></label>
690
- </fieldset>
691
- </td>
692
- </tr>
693
-
694
- <tr>
695
- <td>
696
- <b><?php _e('Column position','wpdatatables');?></b>:
697
- </td>
698
- <td>
699
- <input type="text" class="columnPos" value="{{>pos}}" />
700
- </td>
701
- </tr>
702
- <tr>
703
- <td>
704
- <b><?php _e('Width','wpdatatables');?></b>:
705
- <button class="button button-primary showHint">?</button><br/>
706
- <small class="hint" style="display: none"><?php _e('Input width for column (in percents with % or pixels without "px"). Leave blank if you want to leave auto width','wpdatatables');?>.</small>
707
- </td>
708
- <td>
709
- <input type="text" class="columnWidth" value="{{>width}}" />
710
- </td>
711
- </tr>
712
- <tr>
713
- <td>
714
- <b><?php _e('Display text before','wpdatatables');?></b>:
715
- </td>
716
- <td>
717
- <input type="text" class="textBefore" value="{{>text_before}}" />
718
- </td>
719
- </tr>
720
- <tr>
721
- <td>
722
- <b><?php _e('Display text after','wpdatatables');?></b>:
723
- </td>
724
- <td>
725
- <input type="text" class="textAfter" value="{{>text_after}}" />
726
- </td>
727
- </tr>
728
- <tr>
729
- <td>
730
- <b><?php _e('Color','wpdatatables');?></b>:
731
- </td>
732
- <td>
733
- <input type="text" class="color" value="{{>color}}" />
734
- </td>
735
- </tr>
736
- <tr>
737
- <td>
738
- <b><?php _e('Visible','wpdatatables');?></b>:
739
- </td>
740
- <td>
741
- <fieldset>
742
- <input type="checkbox" id="colVisible_{{:#index}}" class="columnVisible" {{if visible=='1'}}checked="checked"{{/if}} />
743
- <label for="colVisible_{{:#index}}"></label>
744
- </fieldset>
745
- </td>
746
- </tr>
747
-
748
- <tr>
749
- <td>
750
- <b><?php _e('Conditional formatting','wpdatatables');?></b>:
751
- <button class="button button-primary showHint">?</button><br/>
752
- <small class="hint" style="display: none"><?php _e('Conditional formatting allows you to add special formatting rules depending on different values of the cell in this column. E.g. you can add a CSS class or color to cell or whole row, etc','wpdatatables');?>.</small>
753
- </td>
754
- <td>
755
- <input type="hidden" class="formatting_rules" value="{{>formatting_rules}}"></input>
756
- <button class="button define_formatting_rules"><?php _e('Define rules','wpdatatables');?></button>
757
- </td>
758
- </tr>
759
-
760
- </table>
761
- </td>
762
- </script>
763
-
764
- <script id="selectTemplate" type="text/x-jsrender">
765
- <option value="{{>name}}" {{if name==~selected}}selected="selected"{{/if}}>{{>value}}</option>
766
- </script>
767
-
768
- <script id="formattingRuleBlockTemplate" type="text/x-jsrender">
769
- <div class="formattingRuleBlock">
770
- <?php _e( 'If cell value','wpdatatables' ) ?>
771
- <select class="formatting_rule_if_clause">
772
- <option value="lt" {{if ifClause == "lt" }}selected="selected"{{/if}}>&lt;</option>
773
- <option value="lteq" {{if ifClause == "lteq" }}selected="selected"{{/if}}>&#8804;</option>
774
- <option value="eq" {{if ifClause == "eq" }}selected="selected"{{/if}}>=</option>
775
- <option value="gteq" {{if ifClause == "gteq" }}selected="selected"{{/if}}>&#8805;</option>
776
- <option value="gt" {{if ifClause == "gt" }}selected="selected"{{/if}}>&gt;</option>
777
- <option value="neq" {{if ifClause == "neq" }}selected="selected"{{/if}}>&#8800;</option>
778
- <option value="contains" {{if ifClause == "contains" }}selected="selected"{{/if}}><?php _e('contains','wpdatatable'); ?></option>
779
- <option value="contains_not" {{if ifClause == "contains_not" }}selected="selected"{{/if}}><?php _e('does not contain','wpdatatable'); ?></option>
780
- </select>
781
- <input type="text" class="cellVal" value="{{>cellVal}}" />
782
- <select class="formatting_rule_action">
783
- <option value="setCellColor" {{if action == "setCellColor" }}selected="selected"{{/if}}><?php _e('Set cell color','wpdatatables');?></option>
784
- <option value="defaultCellColor" {{if action == "defaultCellColor" }}selected="selected"{{/if}}><?php _e('Reset cell color to default','wpdatatables');?></option>
785
- <option value="setCellContent" {{if action == "setCellContent" }}selected="selected"{{/if}}><?php _e('Set cell content','wpdatatables');?></option>
786
- <option value="setCellClass" {{if action == "setCellClass" }}selected="selected"{{/if}}><?php _e('Set cell CSS class','wpdatatables');?></option>
787
- <option value="removeCellClass" {{if action == "removeCellClass" }}selected="selected"{{/if}}><?php _e('Remove cell CSS class','wpdatatables');?></option>
788
- <option value="setRowColor" {{if action == "setRowColor" }}selected="selected"{{/if}}><?php _e('Set row color','wpdatatables');?></option>
789
- <option value="defaultRowColor" {{if action == "defaultRowColor" }}selected="selected"{{/if}}><?php _e('Reset row color to default','wpdatatables');?></option>
790
- <option value="setRowClass" {{if action == "setRowClass" }}selected="selected"{{/if}}><?php _e('Set row CSS class','wpdatatables');?></option>
791
- <option value="removeRowClass" {{if action == "removeRowClass" }}selected="selected"{{/if}}><?php _e('Remove row CSS class','wpdatatables');?></option>
792
- <option value="setColumnColor" {{if action == "setColumnColor" }}selected="selected"{{/if}}><?php _e('Set column color','wpdatatables');?></option>
793
- <option value="addColumnClass" {{if action == "addColumnClass" }}selected="selected"{{/if}}><?php _e('Add column CSS class','wpdatatables');?></option>
794
- </select>
795
- <input type="text" class="setVal" value="{{>setVal}}" />
796
- <button class="button deleteFormattingRule"><span class="dashicons dashicons-no-alt"></span></button>
797
- </div>
798
- </script>
799
-
800
- <script id="wdtSaveDoneTemplate" type="text/x-jsrender">
801
- <div id="wdtSaveConfirmationPopover">
802
- <?php _e('Table saved!','wpdatatables'); ?>
803
- </div>
804
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/frontend/excel_table_main.inc.php DELETED
@@ -1,39 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <?php
4
- /**
5
- * Template file for the plain HTML table
6
- * wpDataTables Module
7
- *
8
- * @author cjbug@ya.ru
9
- * @since 10.10.2012
10
- *
11
- **/
12
- ?>
13
- <?php if ($this->getFilteringForm()) { ?>
14
- <?php do_action('wpdatatables_before_filtering_form', $this->getWpId()); ?>
15
- <!-- Filter in form -->
16
- <?php do_action('wpdatatables_after_filtering_form', $this->getWpId()); ?>
17
- <?php } ?>
18
-
19
- <?php do_action('wpdatatables_before_table', $this->getWpId()); ?>
20
- <?php wp_nonce_field('wdtFrontendEditTableNonce', 'wdtNonceFrontendEdit'); ?>
21
- <input type="hidden" id="<?php echo $this->getId() ?>_desc" value='<?php echo $this->getJsonDescription(); ?>'/>
22
-
23
- <?php if (!$this->serverSide()): ?>
24
- <input type="hidden" id="<?php echo $this->getId() ?>_data"
25
- value='<?php echo json_encode($this->getDataRows(), JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG); ?>'/>
26
- <?php endif; ?>
27
- <div id="<?php echo $this->getId() ?>_search_filter" class="wpExcelTable_search_filter">
28
- <label><?php _e('Search', 'wpdatatables'); ?>:<input type="search" class="" placeholder=""
29
- aria-controls="<?php echo $this->getId() ?>"></label>
30
- </div>
31
-
32
- <div id="<?php echo $this->getId() ?>" class="<?php echo $this->getCSSClasses() ?> wpExcelTable"
33
- data-described-by='<?php echo $this->getId() ?>_desc'
34
- data-wpdatatable_id="<?php echo $this->getWpId(); ?>">
35
- </div>
36
-
37
- <?php do_action('wpdatatables_after_table', $this->getWpId()); ?>
38
-
39
- <br/><br/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/frontend/filter_form.inc.php DELETED
@@ -1,37 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <?php
4
- /**
5
- * Template file for the filter in form
6
- * @author: Milos Timotic
7
- * @since: 22.4.2017.
8
- */
9
-
10
- /** @var WPDataTable $this */
11
- /** @var WDTColumn $dataColumn */
12
- ?>
13
- <?php do_action('wpdatatables_before_filtering_form', $this->getWpId()); ?>
14
- <div class="wpDataTables wpDataTablesFilter">
15
- <div id="filterBox_<?php echo $this->getId() ?>" class="wpDataTableFilterBox">
16
- <?php foreach ($this->getColumns() as $key => $dataColumn) { ?>
17
- <?php
18
- /** @var $dataColumn WDTColumn */
19
- if ($dataColumn->getFilterType() != 'null') {
20
- ?>
21
- <div class="wpDataTableFilterSection"
22
- id="<?php echo $this->getId() . '_' . $key . '_filter' ?>_sections">
23
- <label><?php echo $dataColumn->getFilterLabel() ? $dataColumn->getFilterLabel() : $dataColumn->getTitle() ?>
24
- :</label>
25
- <div id="<?php echo $this->getId() . '_' . $key . '_filter' ?>"></div>
26
- </div>
27
- <?php } ?>
28
- <?php }
29
- if ($this->isClearFilters()) { ?>
30
- <div class="wpDataTableFilterSection" id="wdt-clear-filters-button-block">
31
- <button class="button btn wdt-clear-filters-button"
32
- style="margin-bottom: 10px;"><?php _e('Clear filters', 'wpdatatables'); ?></button>
33
- </div>
34
- <?php } ?>
35
- </div>
36
- </div>
37
- <?php do_action('wpdatatables_after_filtering_form', $this->getWpId()); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/settings.inc.php DELETED
@@ -1,637 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <div class="wpDataTables metabox-holder">
4
- <div id="wdtPreloadLayer" class="overlayed">
5
- </div>
6
-
7
- <div class="wrap">
8
- <div id="poststuff">
9
- <div id="post-body" class="metabox-holder">
10
- <div id="postbox-container-1" class="postbox-container">
11
- <img src="<?php echo dirname(plugin_dir_url(__FILE__)); ?>/assets/img/wpdatatables-logo.png" class="wpdatatables_logo" />
12
- <p><i><?php _e('Please refer to','wpdatatables');?> <a href="http://wpdatatables.com/documentation/general/configuration/"><?php _e('wpDataTables documentation on this feature','wpdatatables');?></a> <?php _e('if you have some questions or problems with the plugin.','wpdatatables'); ?></i></p>
13
- <h2><?php _e('wpDataTables settings','wpdatatables'); ?></h2>
14
- <form method="post" action="<?php echo WDT_ROOT_URL ?>" id="wpDataTablesSettings">
15
- <div id="normal-sortables" class="meta-box-sortables ui-sortable">
16
- <div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all settings">
17
- <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all settings">
18
- <li class="ui-state-default ui-corner-top ui-tabs-active ui-state-active settings"><a href="#tabs-1" class="ui-tabs-anchor settings"><div class="dashicons dashicons-admin-tools"></div> <?php _e('Main settings','wpdatatables'); ?></a></li>
19
- <li class="ui-state-default ui-corner-top settings"><a href="#tabs-2" class="ui-tabs-anchor settings"><div class="dashicons dashicons-art"></div> <?php _e('Color and font settings','wpdatatables'); ?></a></li>
20
- <li class="ui-state-default ui-corner-top settings"><a href="#tabs-3" class="ui-tabs-anchor settings"><div class="dashicons dashicons-exerpt-view"></div> <?php _e('Custom JS and CSS','wpdatatables'); ?></a></li>
21
- </ul>
22
- <div id="tabs-1" class="ui-tabs-panel ui-widget-content ui-corner-bottom settings">
23
- <div class="postbox">
24
- <div class="handlediv" title="<?php _e('Click to toggle','wpdatatables'); ?>"><br/></div>
25
- <h3 class="hndle">
26
- <span><div class="dashicons dashicons-admin-tools"></div> <?php _e('Main settings','wpdatatables'); ?></span>
27
- </h3>
28
- <div class="inside">
29
- <table class="form-table wpDataTables">
30
- <tbody>
31
- <input type="hidden" id="wdtSettingsNonce" value="<?php echo wp_create_nonce( 'wdt_settings_nonce_' . get_current_user_id() ); ?>" />
32
- <?php echo '<tr valign="top"><th scope="row"><label for="wdtSiteLink">'; _e("Show plugin credentials below tables","wpdatatables"); echo '</label></th><td><input type="checkbox" name="wdtSiteLink" id="wdtSiteLink"'; if($wdtSiteLink) { echo 'checked="checked"'; }; echo ' /><span class="description">'; _e("If you want to support our project, please, keep this checkbox as checked","wpdatatables"); echo'.</span></td></tr>' ?>
33
- <tr valign="top">
34
- <th scope="row">
35
- <label for="wpUseSeparateCon"><?php _e('Use separate MySQL connection','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
36
- </th>
37
- <td>
38
- <input type="checkbox" class="wdt-premium-feature" id="wpUseSeparateCon" name="wpUseSeparateCon" data-toggle="html-checkbox-premium-popover" data-placement="top" title="" data-content="content" <?php if ($wpUseSeparateCon) { ?>checked="checked"<?php } ?> />
39
- <span class="description"><?php _e('If this checkbox is checked, wpDataTables will use its own connection to MySQL bases. In other case it will use the main WordPress MySQL connection.','wpdatatables'); ?></span>
40
- </td>
41
- </tr>
42
- <?php ?>
43
- <tr>
44
- <th scope="row">
45
- <label for="wpInterfaceLanguage"><?php _e('Interface language','wpdatatables'); ?></label>
46
- </th>
47
- <td>
48
- <select name="wpInterfaceLanguage" id="wpInterfaceLanguage">
49
- <option value="" <?php if ($wpInterfaceLanguage == '') { ?>selected="selected"<?php } ?> >English (default)</option>
50
- <?php foreach ($languages as $language) { ?>
51
- <option value="<?php echo $language['file'] ?>" <?php if ($wpInterfaceLanguage == $language['file']) { ?>selected="selected"<?php } ?> >
52
- <?php echo $language['name']; ?>
53
- </option>
54
- <?php } ?>
55
- </select>
56
- <span class="description"><?php _e('Pick the language which will be used in tables interface','wpdatatables'); ?>.</span>
57
- </td>
58
- </tr>
59
- <tr>
60
- <th scope="row">
61
- <label for="wdtTablesPerPage"><?php _e('Tables per admin page','wpdatatables'); ?></label>
62
- </th>
63
- <td>
64
- <select name="wdtTablesPerPage" id="wdtTablesPerPage">
65
- <?php for($i=10;$i<=50;$i+=10){ ?>
66
- <option value="<?php echo $i ?>" <?php if($wdtTablesPerPage == $i){ ?>selected="selected"<?php } ?>><?php echo $i ?></option>
67
- <?php } ?>
68
- </select>
69
- <span class="description"><?php _e('How many tables to show in the browse page','wpdatatables'); ?>.</span>
70
- </td>
71
- </tr>
72
- <tr>
73
- <th scope="row">
74
- <label for="wdtBaseSkin"><?php _e('Base skin','wpdatatables'); ?></label>
75
- </th>
76
- <td>
77
- <select name="wdtBaseSkin" id="wdtBaseSkin">
78
- <option value="skin1" <?php if ($wdtBaseSkin == 'skin1') { ?>selected="selected"<?php } ?> ><?php _e('Skin','wpdatatables'); ?> 1</option>
79
- <option value="skin2" <?php if ($wdtBaseSkin == 'skin2') { ?>selected="selected"<?php } ?> ><?php _e('Skin','wpdatatables'); ?> 2</option>
80
- </select>
81
- <span class="description"><?php _e('Choose the base skin for the plugin','wpdatatables'); ?>.</span>
82
- </td>
83
- </tr>
84
- <tr>
85
- <th scope="row">
86
- <label for="wpRenderFilter"><?php _e('Render advanced filter','wpdatatables'); ?></label>
87
- </th>
88
- <td>
89
- <select name="wpRenderFilter" id="wpRenderFilter">
90
- <option value="header" <?php if ($wpRenderFilter == 'header') { ?>selected="selected"<?php } ?> ><?php _e('In the header','wpdatatables'); ?></option>
91
- <option value="footer" <?php if ($wpRenderFilter == 'footer') { ?>selected="selected"<?php } ?> ><?php _e('In the footer','wpdatatables'); ?></option>
92
- </select>
93
- <span class="description"><?php _e('Choose where you would like to render the advanced filter for tables where enabled','wpdatatables'); ?>.</span>
94
- </td>
95
- </tr>
96
- <tr>
97
- <th scope="row">
98
- <label for="wpDateFormat"><?php _e('Date format','wpdatatables'); ?></label>
99
- </th>
100
- <td>
101
- <select name="wpDateFormat" id="wpDateFormat">
102
- <option value="d/m/Y" <?php if ($wpDateFormat == 'd/m/Y') { ?>selected="selected"<?php } ?> >15/07/2005 (d/m/Y)</option>
103
- <option value="m/d/Y" <?php if ($wpDateFormat == 'm/d/Y') { ?>selected="selected"<?php } ?> >07/15/2005 (m/d/Y)</option>
104
- <option value="d.m.Y" <?php if ($wpDateFormat == 'd.m.Y') { ?>selected="selected"<?php } ?> >15.07.2005 (d.m.Y)</option>
105
- <option value="m.d.Y" <?php if ($wpDateFormat == 'm.d.Y') { ?>selected="selected"<?php } ?> >07.15.2005 (m.d.Y)</option>
106
- <option value="d-m-Y" <?php if ($wpDateFormat == 'd-m-Y') { ?>selected="selected"<?php } ?> >15-07-2005 (d-m-Y)</option>
107
- <option value="m-d-Y" <?php if ($wpDateFormat == 'm-d-Y') { ?>selected="selected"<?php } ?> >07-15-2005 (m-d-Y)</option>
108
- <option value="d.m.y" <?php if ($wpDateFormat == 'd.m.y') { ?>selected="selected"<?php } ?> >15.07.05 (d.m.y)</option>
109
- <option value="m.d.y" <?php if ($wpDateFormat == 'm.d.y') { ?>selected="selected"<?php } ?> >07.15.05 (m.d.y)</option>
110
- <option value="d-m-y" <?php if ($wpDateFormat == 'd-m-y') { ?>selected="selected"<?php } ?> >15-07-05 (d-m-y)</option>
111
- <option value="m-d-y" <?php if ($wpDateFormat == 'm-d-y') { ?>selected="selected"<?php } ?> >07-15-05 (m-d-y)</option>
112
- <option value="d M Y" <?php if ($wpDateFormat == 'd M Y') { ?>selected="selected"<?php } ?> >15 Jun 2005 (d Mon Y)</option>
113
- </select>
114
- <span class="description"><?php _e('Pick the date format to use in date column type','wpdatatables'); ?>.</span>
115
- </td>
116
- </tr>
117
- <tr>
118
- <th scope="row">
119
- <label for="wdtTimeFormat"><?php _e('Time format','wpdatatables'); ?></label>
120
- </th>
121
- <td>
122
- <select name="wdtTimeFormat" id="wdtTimeFormat">
123
- <option value="h:i A" <?php if ($wdtTimeFormat == 'h:i A') { ?>selected="selected"<?php } ?> >1:25 PM (12h)</option>
124
- <option value="H:i" <?php if ($wdtTimeFormat == 'H:i') { ?>selected="selected"<?php } ?> >13:25 (24h)</option>
125
- </select>
126
- <span class="description"><?php _e('Pick the time format to use in datetime and time column type','wpdatatables'); ?>.</span>
127
- </td>
128
- </tr>
129
- <tr>
130
- <th scope="row">
131
- <label for="wdtNumberFormat"><?php _e('Number format','wpdatatables'); ?></label>
132
- </th>
133
- <td>
134
- <select name="wdtNumberFormat" id="wdtNumberFormat">
135
- <option value="1" <?php if ($wdtNumberFormat == '1') { ?>selected="selected"<?php } ?> >15.000,00</option>
136
- <option value="2" <?php if ($wdtNumberFormat == '2') { ?>selected="selected"<?php } ?> >15,000.00</option>
137
- </select>
138
- <span class="description"><?php _e('Pick the number format (thousands and decimals separator)','wpdatatables'); ?>.</span>
139
- </td>
140
- </tr>
141
- <tr>
142
- <th scope="row">
143
- <label for="wdtDecimalPlaces"><?php _e('Decimal places','wpdatatables'); ?></label>
144
- </th>
145
- <td>
146
- <input type="number" name="wdtDecimalPlaces" id="wdtDecimalPlaces" value="<?php echo $wdtDecimalPlaces ?>" />
147
- <span class="description"><?php _e('Define the amount of decimal places for the float numbers','wpdatatables'); ?>.</span>
148
- </td>
149
- </tr>
150
- <tr>
151
- <th scope="row">
152
- <label for="wdtTimepickerRange"><?php _e('Timepicker step (min)','wpdatatables'); ?></label>
153
- </th>
154
- <td>
155
- <input type="number" name="wdtTimepickerRange" id="wdtTimepickerRange" value="<?php echo $wdtTimepickerRange ?>" />
156
- <span class="description"><?php _e('Define the minutes step for the timepicker based filters and editors.','wpdatatables'); ?>.</span>
157
- </td>
158
- </tr>
159
- <tr>
160
- <th scope="row">
161
- <label for="wdtNumbersAlign"><?php _e('Align numbers to the right','wpdatatables'); ?></label>
162
- </th>
163
- <td>
164
- <input type="checkbox" name="wdtNumbersAlign" id="wdtNumbersAlign" <?php if($wdtNumbersAlign) { ?>checked="checked"<?php } ?> />
165
- <span class="description"><?php _e('If this checkbox is checked all numerical values will be aligned to the right of the cell','wpdatatables'); ?>.</span>
166
- </td>
167
- </tr>
168
-
169
- <tr>
170
- <th scope="row">
171
- <label for="wdtTabletWidth"><?php _e('Tablet width','wpdatatables'); ?></label>
172
- </th>
173
- <td>
174
- <input type="number" name="wdtTabletWidth" id="wdtTabletWidth" value="<?php echo $wdtTabletWidth ?>" />
175
- <span class="description"><?php _e('Here you can specify width of the screen (in pixels) that will be treated as a tablet. You can set it wider if you want responsive effect on desktops.','wpdatatables'); ?>.</span>
176
- </td>
177
- </tr>
178
-
179
- <tr>
180
- <th scope="row">
181
- <label for="wdtMobileWidth"><?php _e('Mobile width','wpdatatables'); ?></label>
182
- </th>
183
- <td>
184
- <input type="number" name="wdtMobileWidth" id="wdtMobileWidth" value="<?php echo $wdtMobileWidth ?>" />
185
- <span class="description"><?php _e('Here you can specify width (in pixels) will be treated as a mobile.','wpdatatables'); ?>.</span>
186
- </td>
187
- </tr>
188
- <?php ?>
189
-
190
- <tr>
191
- <td colspan="2">
192
- <input type="submit" name="submit" class="button-primary" value="<?php _e('Save options','wpdatatables'); ?>">
193
- </td>
194
- </tr>
195
- </tbody>
196
- </table>
197
- </div>
198
- </div>
199
- </div>
200
- <div id="tabs-2" class="ui-tabs-panel ui-widget-content ui-corner-bottom settings">
201
- <div class="postbox">
202
- <div class="handlediv" title="<?php _e('Click to toggle','wpdatatables'); ?>"><br/></div>
203
- <h3 class="hndle">
204
- <div class="dashicons dashicons-art"></div> <?php _e('Color and font settings','wpdatatables'); ?>
205
- </h3>
206
- <div class="inside">
207
- <p><?php _e('Leave the setting blank to use default value','wpdatatables'); ?>.</p>
208
- <table class="form-table colorFontSettings">
209
- <tbody>
210
- <tr valign="top">
211
- <th scope="row">
212
- <label for="wdtTableFontColor"><?php _e('Table font color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
213
- </th>
214
- <td>
215
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtTableFontColor" id="wdtTableFontColor" value="<?php echo (!empty($wdtFontColorSettings['wdtTableFontColor']) ? $wdtFontColorSettings['wdtTableFontColor'] : '') ?>" />
216
- <span class="description"><?php _e('This color is used for the main font in table cells','wpdatatables'); ?>.</span>
217
- </td>
218
- </tr>
219
- <tr valign="top">
220
- <th scope="row">
221
- <label for="wdtHeaderBaseColor"><?php _e('Header background color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
222
- </th>
223
- <td>
224
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtHeaderBaseColor" id="wdtHeaderBaseColor" value="<?php echo (!empty($wdtFontColorSettings['wdtHeaderBaseColor']) ? $wdtFontColorSettings['wdtHeaderBaseColor'] : '') ?>" />
225
- <span class="description"><?php _e('The color is used for background of the table header','wpdatatables'); ?>.</span>
226
- </td>
227
- </tr>
228
- <tr valign="top">
229
- <th scope="row">
230
- <label for="wdtHeaderBorderColor"><?php _e('Header border color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
231
- </th>
232
- <td>
233
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtHeaderBorderColor" id="wdtHeaderBorderColor" value="<?php echo (!empty($wdtFontColorSettings['wdtHeaderBorderColor']) ? $wdtFontColorSettings['wdtHeaderBorderColor'] : '') ?>" />
234
- <span class="description"><?php _e('This color is used for the border in the table header','wpdatatables'); ?>.</span>
235
- </td>
236
- </tr>
237
- <tr valign="top">
238
- <th scope="row">
239
- <label for="wdtHeaderFontColor"><?php _e('Header font color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
240
- </th>
241
- <td>
242
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtHeaderFontColor" id="wdtHeaderFontColor" value="<?php echo (!empty($wdtFontColorSettings['wdtHeaderFontColor']) ? $wdtFontColorSettings['wdtHeaderFontColor'] : '') ?>" />
243
- <span class="description"><?php _e('This color is used for the font in the table header','wpdatatables'); ?>.</span>
244
- </td>
245
- </tr>
246
- <tr valign="top">
247
- <th scope="row">
248
- <label for="wdtHeaderHoverColor"><?php _e('Header active and hover color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
249
- </th>
250
- <td>
251
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtHeaderActiveColor" id="wdtHeaderActiveColor" value="<?php echo (!empty($wdtFontColorSettings['wdtHeaderActiveColor']) ? $wdtFontColorSettings['wdtHeaderActiveColor'] : '') ?>" />
252
- <span class="description"><?php _e('This color is used when you hover the mouse above the table header, or when you choose a column','wpdatatables'); ?>.</span>
253
- </td>
254
- </tr>
255
- <tr valign="top">
256
- <th scope="row">
257
- <label for="wdtTableInnerBorderColor"><?php _e('Table inner border color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
258
- </th>
259
- <td>
260
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtTableInnerBorderColor" id="wdtTableInnerBorderColor" value="<?php echo (!empty($wdtFontColorSettings['wdtTableInnerBorderColor']) ? $wdtFontColorSettings['wdtTableOuterBorderColor'] : '') ?>" />
261
- <span class="description"><?php _e('This color is used for the inner border in the table between cells','wpdatatables'); ?>.</span>
262
- </td>
263
- </tr>
264
- <tr valign="top">
265
- <th scope="row">
266
- <label for="wdtTableOuterBorderColor"><?php _e('Table outer border color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
267
- </th>
268
- <td>
269
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtTableOuterBorderColor" id="wdtTableOuterBorderColor" value="<?php echo (!empty($wdtFontColorSettings['wdtTableOuterBorderColor']) ? $wdtFontColorSettings['wdtTableOuterBorderColor'] : '') ?>" />
270
- <span class="description"><?php _e('This color is used for the outer border of the whole table body','wpdatatables'); ?>.</span>
271
- </td>
272
- </tr>
273
- <tr valign="top">
274
- <th scope="row">
275
- <label for="wdtEvenRowColor"><?php _e('Even row background color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
276
- </th>
277
- <td>
278
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtEvenRowColor" id="wdtEvenRowColor" value="<?php echo (!empty($wdtFontColorSettings['wdtEvenRowColor']) ? $wdtFontColorSettings['wdtEvenRowColor'] : '') ?>" />
279
- <span class="description"><?php _e('This color is used for for background in even rows','wpdatatables'); ?>.</span>
280
- </td>
281
- </tr>
282
- <tr valign="top">
283
- <th scope="row">
284
- <label for="wdtOddRowColor"><?php _e('Odd row background color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
285
- </th>
286
- <td>
287
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtOddRowColor" id="wdtOddRowColor" value="<?php echo (!empty($wdtFontColorSettings['wdtOddRowColor']) ? $wdtFontColorSettings['wdtOddRowColor'] : '') ?>" />
288
- <span class="description"><?php _e('This color is used for for background in odd rows','wpdatatables'); ?>.</span>
289
- </td>
290
- </tr>
291
- <tr valign="top">
292
- <th scope="row">
293
- <label for="wdtHoverRowColor"><?php _e('Hover row color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
294
- </th>
295
- <td>
296
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtHoverRowColor" id="wdtHoverRowColor" value="<?php echo (!empty($wdtFontColorSettings['wdtHoverRowColor']) ? $wdtFontColorSettings['wdtHoverRowColor'] : '') ?>" />
297
- <span class="description"><?php _e('This color is used for to highlight the row when you hover your mouse above it','wpdatatables'); ?>.</span>
298
- </td>
299
- </tr>
300
- <tr valign="top">
301
- <th scope="row">
302
- <label for="wdtActiveEvenCellColor"><?php _e('Cell color in active (sorted) columns for even rows','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
303
- </th>
304
- <td>
305
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtActiveEvenCellColor" id="wdtActiveEvenCellColor" value="<?php echo (!empty($wdtFontColorSettings['wdtActiveEvenCellColor']) ? $wdtFontColorSettings['wdtActiveEvenCellColor'] : '') ?>" />
306
- <span class="description"><?php _e('This color is used for background in cells which are in the active columns (columns used for sorting) in even rows','wpdatatables'); ?>.</span>
307
- </td>
308
- </tr>
309
- <tr valign="top">
310
- <th scope="row">
311
- <label for="wdtActiveOddCellColor"><?php _e('Cell color in active (sorted) columns for odd rows','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
312
- </th>
313
- <td>
314
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtActiveOddCellColor" id="wdtActiveOddCellColor" value="<?php echo (!empty($wdtFontColorSettings['wdtActiveOddCellColor']) ? $wdtFontColorSettings['wdtActiveOddCellColor'] : '') ?>" />
315
- <span class="description"><?php _e('This color is used for background in cells which are in the active columns (columns used for sorting) in odd rows','wpdatatables'); ?>.</span>
316
- </td>
317
- </tr>
318
- <tr valign="top">
319
- <th scope="row">
320
- <label for="wdtSelectedRowColor"><?php _e('Backround color for selected rows','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
321
- </th>
322
- <td>
323
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtSelectedRowColor" id="wdtSelectedRowColor" value="<?php echo (!empty($wdtFontColorSettings['wdtSelectedRowColor']) ? $wdtFontColorSettings['wdtSelectedRowColor'] : '') ?>" />
324
- <span class="description"><?php _e('This color is used for background in selected rows','wpdatatables'); ?>.</span>
325
- </td>
326
- </tr>
327
- <tr valign="top">
328
- <th scope="row">
329
- <label for="wdtButtonColor"><?php _e('Buttons background color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
330
- </th>
331
- <td>
332
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtButtonColor" id="wdtButtonColor" value="<?php echo (!empty($wdtFontColorSettings['wdtButtonColor']) ? $wdtFontColorSettings['wdtButtonColor'] : '') ?>" />
333
- <span class="description"><?php _e('This color is used for background in buttons','wpdatatables'); ?>.</span>
334
- </td>
335
- </tr>
336
- <tr valign="top">
337
- <th scope="row">
338
- <label for="wdtButtonBorderColor"><?php _e('Buttons border color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
339
- </th>
340
- <td>
341
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtButtonBorderColor" id="wdtButtonBorderColor" value="<?php echo (!empty($wdtFontColorSettings['wdtButtonBorderColor']) ? $wdtFontColorSettings['wdtButtonBorderColor'] : '') ?>" />
342
- <span class="description"><?php _e('This color is used for border in buttons','wpdatatables'); ?>.</span>
343
- </td>
344
- </tr>
345
- <tr valign="top">
346
- <th scope="row">
347
- <label for="wdtButtonColor"><?php _e('Buttons font color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
348
- </th>
349
- <td>
350
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtButtonFontColor" id="wdtButtonFontColor" value="<?php echo (!empty($wdtFontColorSettings['wdtButtonFontColor']) ? $wdtFontColorSettings['wdtButtonFontColor'] : '') ?>" />
351
- <span class="description"><?php _e('This color is used for font in buttons','wpdatatables'); ?>.</span>
352
- </td>
353
- </tr>
354
- <tr valign="top">
355
- <th scope="row">
356
- <label for="wdtButtonBackgroundHoverColor"><?php _e('Buttons background hover color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
357
- </th>
358
- <td>
359
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtButtonBackgroundHoverColor" id="wdtButtonBackgroundHoverColor" value="<?php echo (!empty($wdtFontColorSettings['wdtButtonBackgroundHoverColor']) ? $wdtFontColorSettings['wdtButtonBackgroundHoverColor'] : '') ?>" />
360
- <span class="description"><?php _e('This color will be used for button backgrounds when you hover above them','wpdatatables'); ?>.</span>
361
- </td>
362
- </tr>
363
- <tr valign="top">
364
- <th scope="row">
365
- <label for="wdtButtonFontHoverColor"><?php _e('Buttons hover font color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
366
- </th>
367
- <td>
368
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtButtonFontHoverColor" id="wdtButtonFontHoverColor" value="<?php echo (!empty($wdtFontColorSettings['wdtButtonFontHoverColor']) ? $wdtFontColorSettings['wdtButtonFontHoverColor'] : '') ?>" />
369
- <span class="description"><?php _e('This color will be used for buttons font when you hover above them','wpdatatables'); ?>.</span>
370
- </td>
371
- </tr>
372
- <tr valign="top">
373
- <th scope="row">
374
- <label for="wdtModalFontColor"><?php _e('Modals font color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
375
- </th>
376
- <td>
377
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtModalFontColor" id="wdtModalFontColor" value="<?php echo (!empty($wdtFontColorSettings['wdtModalFontColor']) ? $wdtFontColorSettings['wdtModalFontColor'] : '') ?>" />
378
- <span class="description"><?php _e('This color will be used for wpDataTable popup (filter, datepicker) fonts','wpdatatables'); ?>.</span>
379
- </td>
380
- </tr>
381
- <tr valign="top">
382
- <th scope="row">
383
- <label for="wdtModalBackgroundColor"><?php _e('Modals background color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
384
- </th>
385
- <td>
386
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtModalBackgroundColor" id="wdtModalBackgroundColor" value="<?php echo (!empty($wdtFontColorSettings['wdtModalBackgroundColor']) ? $wdtFontColorSettings['wdtModalBackgroundColor'] : '') ?>" />
387
- <span class="description"><?php _e('This color will be used for wpDataTable popup (filter, datepicker) background','wpdatatables'); ?>.</span>
388
- </td>
389
- </tr>
390
- <tr valign="top">
391
- <th scope="row">
392
- <label for="wdtOverlayColor"><?php _e('Overlay background color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
393
- </th>
394
- <td>
395
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtOverlayColor" id="wdtOverlayColor" value="<?php echo (!empty($wdtFontColorSettings['wdtOverlayColor']) ? $wdtFontColorSettings['wdtOverlayColor'] : '') ?>" />
396
- <span class="description"><?php _e('This color will be used for overlay which appears below the plugin popups','wpdatatables'); ?>.</span>
397
- </td>
398
- </tr>
399
- <tr valign="top">
400
- <th scope="row">
401
- <label for="wdtButtonBorderHoverColor"><?php _e('Buttons hover border color','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
402
- </th>
403
- <td>
404
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtButtonBorderHoverColor" id="wdtButtonBorderHoverColor" value="<?php echo (!empty($wdtFontColorSettings['wdtButtonBorderHoverColor']) ? $wdtFontColorSettings['wdtButtonBorderHoverColor'] : '') ?>" />
405
- <span class="description"><?php _e('This color will be used for button borders when you hover above them','wpdatatables'); ?>.</span>
406
- </td>
407
- </tr>
408
- <tr valign="top">
409
- <th scope="row">
410
- <label for="wdtBorderRadius"><?php _e('Buttons and inputs border radius (in px)','wpdatatables'); ?><?php echo '<br /><small><a href="http://wpdatatables.com" target="_blank">Premium version</a></small>' ?></label>
411
- </th>
412
- <td>
413
- <input type="text" <?php echo ' class="full_version_option" ' ?> name="wdtBorderRadius" id="wdtBorderRadius" value="<?php echo (!empty($wdtFontColorSettings['wdtBorderRadius']) ? $wdtFontColorSettings['wdtBorderRadius'] : '') ?>" />
414
- <span class="description"><?php _e('This is a border radius for inputs in buttons. Default is 3px.','wpdatatables'); ?></span>
415
- </td>
416
- </tr>
417
- <tr valign="top">
418
- <th scope="row">
419
- <label for="wdtTableFont"><?php _e('Table font','wpdatatables'); ?></label>
420
- </th>
421
- <td>
422
- <select name="wdtTableFont" id="wdtTableFont" style="width: 200px;">
423
- <option value="" <?php echo (empty($wdtFontColorSettings['wdtTableFont']) ? 'selected="selected"' : '') ?> ></option>
424
- <?php foreach ($wdtFonts as $font) { ?>
425
- <option value="<?php echo $font ?>" <?php echo ((!empty($wdtFontColorSettings['wdtTableFont']) && ($wdtFontColorSettings['wdtTableFont'] == $font)) ? 'selected="selected"' : '') ?>><?php echo $font ?></option>
426
- <?php } ?>
427
- </select>
428
- <span class="description"><?php _e('This font will be used in rendered tables. Leave blank not to override default theme settings','wpdatatables'); ?>.</span>
429
- </td>
430
- </tr>
431
- <tr>
432
- <td colspan="2">
433
- <input type="submit" name="submit" class="button-primary" value="<?php _e('Save options','wpdatatables'); ?>">
434
- <button class="resetColorSettings button-primary"><?php _e('Reset colors and fonts to default','wpdatatables'); ?></button>
435
- </td>
436
- </tr>
437
- </tbody>
438
- </table>
439
- </div>
440
- </div>
441
- </div>
442
- <div id="tabs-3" class="ui-tabs-panel ui-widget-content ui-corner-bottom settings">
443
- <div class="postbox">
444
- <div class="handlediv" title="<?php _e('Click to toggle','wpdatatables'); ?>"><br/></div>
445
- <h3 class="hndle">
446
- <div class="dashicons dashicons-exerpt-view"></div> <?php _e('Custom JS and CSS','wpdatatables'); ?>
447
- </h3>
448
- <div class="inside">
449
- <p><?php _e('Leave the setting blank to use default value','wpdatatables'); ?>.</p>
450
- <table class="form-table colorFontSettings">
451
- <tbody>
452
- <tr valign="top">
453
- <th scope="row">
454
- <label for="wdtCustomJs"><?php _e('Custom wpDataTables JS','wpdatatables'); ?></label>
455
- </th>
456
- <td>
457
- <textarea name="wdtCustomJs" id="wdtCustomJs" style="width: 430px; height: 200px;"><?php echo (!empty($wdtCustomJs) ? $wdtCustomJs : '') ?></textarea><br/>
458
- <span class="description"><?php _e('This JS will be inserted as an inline script block on every page that has a wpDataTable','wpdatatables'); ?>.</span>
459
- </td>
460
- </tr>
461
- <tr valign="top">
462
- <th scope="row">
463
- <label for="wdtCustomCss"><?php _e('Custom wpDataTables CSS','wpdatatables'); ?></label>
464
- </th>
465
- <td>
466
- <textarea name="wdtCustomCss" id="wdtCustomCss" style="width: 430px; height: 200px;"><?php echo (!empty($wdtCustomCss) ? stripslashes($wdtCustomCss) : '') ?></textarea><br/>
467
- <span class="description"><?php _e('This CSS will be inserted as an inline style block on every page that has a wpDataTable','wpdatatables'); ?>.</span>
468
- </td>
469
- </tr>
470
- <tr valign="top">
471
- <th scope="row">
472
- <label for="wdtMinifiedJs"><?php _e('Use minified wpDataTables Javascript','wpdatatables'); ?></label>
473
- </th>
474
- <td>
475
- <input type="checkbox" id="wdtMinifiedJs" name="wdtMinifiedJs" <?php if(!empty($wdtMinifiedJs)) { ?>checked="checked"<?php } ?> /><br/>
476
- <span class="description"><?php _e('Uncheck if you would like to make some changes to the main wpDataTables JS file (assets/js/wpdatatables/wpdatatables.js). Minified is inserted by default (better performance)','wpdatatables'); ?>.</span>
477
- </td>
478
- </tr>
479
- <tr>
480
- <td colspan="2">
481
- <input type="submit" name="submit" class="button-primary" value="<?php _e('Save options','wpdatatables'); ?>">
482
- </td>
483
- </tr>
484
- </tbody>
485
- </table>
486
- </div>
487
- </div>
488
- </div>
489
-
490
-
491
- </div>
492
- </form>
493
- </div>
494
- </div>
495
- </div>
496
- </div>
497
- </div>
498
- <style>
499
-
500
- </style>
501
- <script type="text/javascript">
502
- jQuery(document).ready(function(){
503
- <?php ?>
504
-
505
- jQuery('.resetColorSettings').click(function(e){
506
- e.preventDefault();
507
- jQuery('table.colorFontSettings input[type="text"]').val('').change();
508
- jQuery('table.colorFontSettings select option[value=""]').attr('selected','selected');
509
- jQuery('#wpDataTablesSettings').submit();
510
- });
511
-
512
- jQuery('#wpUseSeparateCon').change(function(){
513
- if(jQuery('#wpUseSeparateCon').is(':checked')){
514
- jQuery('tr.wpMySQLParam').show();
515
- }else{
516
- jQuery('tr.wpMySQLParam').hide();
517
- }
518
- });
519
- jQuery('#wpUseSeparateCon').change();
520
-
521
- <?php echo 'var full_version_title = "'; _e('Premium version only!','wpdatatables'); echo '"; var full_version_text = "'; _e('Sorry, this function is available only in FULL version of wpDataTables along with many others! Please go to our <a href=\"http://wpdatatables.com/\">website</a> to see the full list and to purchase!'); echo '";
522
- var full_version_message = function() {
523
- wdtAlertDialog(full_version_text, full_version_title);
524
- }
525
- jQuery(document).on("focus", ".full_version_option", full_version_message);' ?>
526
-
527
- /**
528
- * Test MySQL settings
529
- */
530
- jQuery('#wpMySqlTest').click(function(e){
531
- e.preventDefault();
532
- var mysql_settings = {
533
- host: jQuery('#wpMySqlHost').val(),
534
- db: jQuery('#wpMySqlDB').val(),
535
- user: jQuery('#wpMySqlUser').val(),
536
- password: jQuery('#wpMySqlPwd').val(),
537
- port: jQuery('#wpMySqlPort').val()
538
- };
539
- jQuery.ajax({
540
- url: ajaxurl,
541
- type: 'POST',
542
- dataType: 'json',
543
- data: {
544
- action: 'wpdatatables_test_mysql_settings',
545
- mysql_settings: mysql_settings
546
- },
547
- success: function(data) {
548
- if( data.errors.length > 0 ){
549
- var errorMessage = '';
550
- for( var i in data.errors ){
551
- errorMessage += data.errors[i]+'<br/>';
552
- }
553
- wdtAlertDialog( errorMessage, '<?php _e('Error!','wpdatatables'); ?>');
554
- }else if( data.success.length > 0 ){
555
- var successMessage = '';
556
- for( var i in data.success ){
557
- successMessage += data.success[i]+'<br/>';
558
- }
559
- wdtAlertDialog( successMessage, '<?php _e('Success!','wpdatatables'); ?>');
560
- }
561
- }
562
- })
563
- });
564
-
565
- jQuery('#wpDataTablesSettings').submit(function(e){
566
- e.preventDefault();
567
- e.stopImmediatePropagation();
568
- var data = {
569
- action: 'wdt_save_settings',
570
- <?php echo 'wdtSiteLink: jQuery("#wdtSiteLink").is(":checked") ? 1 : 0,' ?>
571
- wpUseSeparateCon: (jQuery('#wpUseSeparateCon').attr('checked') == 'checked'),
572
- wpMySqlHost: jQuery('#wpMySqlHost').val(),
573
- wpMySqlDB: jQuery('#wpMySqlDB').val(),
574
- wpMySqlUser: jQuery('#wpMySqlUser').val(),
575
- wpMySqlPwd: jQuery('#wpMySqlPwd').val(),
576
- wpMySqlPort: jQuery('#wpMySqlPort').val(),
577
- wdtSettingsNonce: jQuery('#wdtSettingsNonce').val(),
578
- wpRenderFilter: jQuery('#wpRenderFilter').val(),
579
- wpInterfaceLanguage: jQuery('#wpInterfaceLanguage').val(),
580
- wpDateFormat: jQuery('#wpDateFormat').val(),
581
- wdtTimeFormat: jQuery('#wdtTimeFormat').val(),
582
- wpTopOffset: '',
583
- wpLeftOffset: '',
584
- wdtTablesPerPage: jQuery('#wdtTablesPerPage').val(),
585
- wdtNumberFormat: jQuery('#wdtNumberFormat').val(),
586
- wdtDecimalPlaces: jQuery('#wdtDecimalPlaces').val(),
587
- wdtTimepickerRange: jQuery('#wdtTimepickerRange').val(),
588
- wdtNumbersAlign: jQuery('#wdtNumbersAlign').is(':checked') ? 1 : 0,
589
- wdtCustomJs: jQuery('#wdtCustomJs').val(),
590
- wdtCustomCss: jQuery('#wdtCustomCss').val(),
591
- wdtMinifiedJs: jQuery('#wdtMinifiedJs').is(':checked') ? 1 : 0,
592
- wdtBaseSkin: jQuery('#wdtBaseSkin').val(),
593
- wdtTabletWidth: jQuery('#wdtTabletWidth').val(),
594
- wdtMobileWidth: jQuery('#wdtMobileWidth').val(),
595
- wdtPurchaseCode: jQuery('#wdtPurchaseCode').val(),
596
- wdtHeaderBaseColor: jQuery('#wdtHeaderBaseColor').val(),
597
- wdtHeaderActiveColor: jQuery('#wdtHeaderActiveColor').val(),
598
- wdtHeaderFontColor: jQuery('#wdtHeaderFontColor').val(),
599
- wdtHeaderBorderColor: jQuery('#wdtHeaderBorderColor').val(),
600
- wdtTableOuterBorderColor: jQuery('#wdtTableOuterBorderColor').val(),
601
- wdtTableInnerBorderColor: jQuery('#wdtTableInnerBorderColor').val(),
602
- wdtTableFontColor: jQuery('#wdtTableFontColor').val(),
603
- wdtTableFont: jQuery('#wdtTableFont').val(),
604
- wdtHoverRowColor: jQuery('#wdtHoverRowColor').val(),
605
- wdtOddRowColor: jQuery('#wdtOddRowColor').val(),
606
- wdtEvenRowColor: jQuery('#wdtEvenRowColor').val(),
607
- wdtActiveOddCellColor: jQuery('#wdtActiveOddCellColor').val(),
608
- wdtActiveEvenCellColor: jQuery('#wdtActiveEvenCellColor').val(),
609
- wdtSelectedRowColor: jQuery('#wdtSelectedRowColor').val(),
610
- wdtButtonColor: jQuery('#wdtButtonColor').val(),
611
- wdtButtonBorderColor: jQuery('#wdtButtonBorderColor').val(),
612
- wdtButtonFontColor: jQuery('#wdtButtonFontColor').val(),
613
- wdtButtonBackgroundHoverColor: jQuery('#wdtButtonBackgroundHoverColor').val(),
614
- wdtButtonBorderHoverColor: jQuery('#wdtButtonBorderHoverColor').val(),
615
- wdtButtonFontHoverColor: jQuery('#wdtButtonFontHoverColor').val(),
616
- wdtModalFontColor: jQuery('#wdtModalFontColor').val(),
617
- wdtModalBackgroundColor: jQuery('#wdtModalBackgroundColor').val(),
618
- wdtOverlayColor: jQuery('#wdtOverlayColor').val(),
619
- wdtBorderRadius: jQuery('#wdtBorderRadius').val()
620
- };
621
- jQuery('#wdtPreloadLayer').show();
622
- jQuery.post(ajaxurl, data, function(response) {
623
- jQuery('#wdtPreloadLayer').hide();
624
- if(response.trim()=='success'){
625
- wdtAlertDialog('<?php _e('Settings saved successfully','wpdatatables'); ?>','<?php _e('Success!','wpdatatables'); ?>');
626
- }else{
627
- wdtAlertDialog('<?php _e('There was a problem saving your settings','wpdatatables'); ?>','<?php _e('Error!','wpdatatables'); ?>');
628
- }
629
- });
630
- });
631
-
632
- applySelecter();
633
-
634
- jQuery( "#tabs" ).tabs();
635
- });
636
-
637
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/wpdatatables_excel_table_main.inc.php DELETED
@@ -1,36 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <?php
4
- /**
5
- * Template file for the plain HTML table
6
- * wpDataTables Module
7
- *
8
- * @author cjbug@ya.ru
9
- * @since 10.10.2012
10
- *
11
- **/
12
- ?>
13
- <?php if($wpDataTable->getFilteringForm()) { ?>
14
- <?php do_action('wpdatatables_before_filtering_form', $wpDataTable->getWpId()); ?>
15
- <!-- Filter in form -->
16
- <?php do_action('wpdatatables_after_filtering_form', $wpDataTable->getWpId()); ?>
17
- <?php } ?>
18
-
19
- <?php do_action('wpdatatables_before_table', $wpDataTable->getWpId()); ?>
20
- <input type="hidden" id="<?php echo $wpDataTable->getId() ?>_desc" value='<?php echo $wpDataTable->getJsonDescription(); ?>' />
21
-
22
- <?php if( !$wpDataTable->serverSide() ): ?>
23
- <input type="hidden" id="<?php echo $wpDataTable->getId() ?>_data" value='<?php echo json_encode( $wpDataTable->getDataRows(), JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_TAG ); ?>' />
24
- <?php endif; ?>
25
- <div id="<?php echo $wpDataTable->getId() ?>_search_filter" class="wpExcelTable_search_filter">
26
- <label><?php _e('Search', 'wpdatatables'); ?>:<input type="search" class="" placeholder="" aria-controls="<?php echo $wpDataTable->getId() ?>"></label>
27
- </div>
28
-
29
- <div id="<?php echo $wpDataTable->getId() ?>" class="<?php echo $wpDataTable->getCSSClasses() ?> wpExcelTable"
30
- data-described-by='<?php echo $wpDataTable->getId() ?>_desc'
31
- data-wpdatatable_id="<?php echo $wpDataTable->getWpId(); ?>">
32
- </div>
33
-
34
- <?php do_action('wpdatatables_after_table', $wpDataTable->getWpId()); ?>
35
-
36
- <br/><br/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/wpdatatables_table_main.inc.php DELETED
@@ -1,47 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <?php
4
- /**
5
- * Template file for the plain HTML table
6
- * wpDataTables Module
7
- *
8
- * @author cjbug@ya.ru
9
- * @since 10.10.2012
10
- *
11
- **/
12
- ?>
13
- <?php ?>
14
- <?php do_action('wpdatatables_before_table', $wpDataTable->getWpId()); ?>
15
- <input type="hidden" id="<?php echo $wpDataTable->getId() ?>_desc" value='<?php echo $wpDataTable->getJsonDescription(); ?>' />
16
- <table id="<?php echo $wpDataTable->getId() ?>" class="<?php if ($wpDataTable->isScrollable()) { ?>scroll<?php } ?> display responsive nowrap <?php echo $wpDataTable->getCSSClasses() ?> wpDataTable" style="<?php echo $wpDataTable->getCSSStyle() ?>" data-described-by='<?php echo $wpDataTable->getId() ?>_desc' data-wpdatatable_id="<?php echo $wpDataTable->getWpId(); ?>">
17
- <thead>
18
- <?php ?>
19
- <tr>
20
- <?php do_action('wpdatatables_before_header', $wpDataTable->getWpId()); ?>
21
- <?php $expandShown = false; ?>
22
- <?php foreach($wpDataTable->getColumns() as $dataColumn) { ?><th <?php if(!$expandShown && $dataColumn->isVisibleOnMobiles()){ ?>data-class="expand"<?php $expandShown = true; } ?> <?php if($dataColumn->getHiddenAttr()) { ?>data-hide="<?php echo $dataColumn->getHiddenAttr() ?>"<?php } ?> class="header <?php if( $dataColumn->sortEnabled() ) { ?>sort<?php } ?> <?php echo $dataColumn->getCSSClasses(); ?>" style="<?php echo $dataColumn->getCSSStyle(); ?>"><?php echo ( $dataColumn->getFilterType()->type != 'null') ? $dataColumn->getTitle() : '' ?></th><?php } ?>
23
- <?php do_action('wpdatatables_after_header', $wpDataTable->getWpId()); ?>
24
- </tr>
25
- <?php ?>
26
- </thead>
27
- <tbody>
28
- <?php do_action('wpdatatables_before_first_row', $wpDataTable->getWpId()); ?>
29
- <?php foreach( $wpDataTable->getDataRows() as $wdtRowIndex => $wdtRowDataArr) { ?>
30
- <?php do_action('wpdatatables_before_row', $wpDataTable->getWpId(), $wdtRowIndex); ?>
31
- <tr id="table_<?php echo $wpDataTable->getWpId() ?>_row_<?php echo $wdtRowIndex; ?>">
32
- <?php foreach( $wpDataTable->getColumnsByHeaders() as $dataColumnHeader => $dataColumn ) { ?>
33
- <td style="<?php echo $dataColumn->getCSSStyle();?>"><?php echo apply_filters( 'wpdatatables_filter_cell_output', $wpDataTable->returnCellValue( $wdtRowDataArr[ $dataColumnHeader ], $dataColumnHeader ), $wpDataTable->getWpId(), $dataColumnHeader ); ?></td>
34
- <?php ?>
35
- <?php } ?>
36
- </tr>
37
- <?php do_action('wpdatatables_after_row', $wpDataTable->getWpId(), $wdtRowIndex); ?>
38
- <?php } ?>
39
- <?php do_action('wpdatatables_after_last_row', $wpDataTable->getWpId()); ?>
40
- </tbody>
41
- <?php ?>
42
-
43
- </table>
44
- <?php if ( get_option( 'wdtSiteLink' ) ) { ?><span class="powered_by_link d-block m-l-10 m-t-10 m-b-10">Generated by <a href="https://wpdatatables.com" target="_blank">wpDataTables</a></span><?php } ?>
45
- <?php do_action('wpdatatables_after_table', $wpDataTable->getWpId()); ?>
46
-
47
- <?php ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
templates/wrap_template.inc.php DELETED
@@ -1,7 +0,0 @@
1
- <?php defined('ABSPATH') or die("Cannot access pages directly."); ?>
2
-
3
- <div class="">
4
-
5
- <?php echo $wdt_output_table ?>
6
-
7
- </div>
 
 
 
 
 
 
 
wpdatatables.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: wpDataTables - Tables & Table Charts
4
  Plugin URI: https://wpdatatables.com
5
  Description: Create responsive, sortable tables & charts from Excel, CSV or PHP. Add tables & charts to any post in minutes with DataTables.
6
- Version: 2.1.22
7
  Author: TMS-Plugins
8
  Author URI: https://tms-outsource.com
9
  Text Domain: wpdatatables
3
  Plugin Name: wpDataTables - Tables & Table Charts
4
  Plugin URI: https://wpdatatables.com
5
  Description: Create responsive, sortable tables & charts from Excel, CSV or PHP. Add tables & charts to any post in minutes with DataTables.
6
+ Version: 2.1.23
7
  Author: TMS-Plugins
8
  Author URI: https://tms-outsource.com
9
  Text Domain: wpdatatables