PluginProbe
Docket Cache – Object Cache Accelerator / 24.07.06
Docket Cache – Object Cache Accelerator v24.07.06
26.04.05 trunk 22.07.01 22.07.02 22.07.03 22.07.04 22.07.05 23.08.01 23.08.02 24.07.01 24.07.02 24.07.03 24.07.04 24.07.05 24.07.06 24.07.07 26.04.03 26.04.04
docket-cache / includes / admin / docket.js

docket.js in Docket Cache – Object Cache Accelerator 24.07.06, at includes/admin/docket.js

290 lines 11.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Docket Cache.
3 *
4 * @author Nawawi Jamili
5 * @license MIT
6 *
7 * @see https://github.com/nawawi/docket-cache
8 */
9 ( function( $ ) {
10 $( document )
11 .ready(
12 function() {
13 var uh = window.location.href;
14
15 if ( uh && uh.match( /admin\.php\?page=docket-cache/ ) === null ) {
16 return;
17 }
18
19 $selector = $( document )
20 .find( 'div#docket-cache' );
21
22 $selector.find( 'div.notice' )
23 .show( {
24 duration: 100
25 } );
26
27 $selector.find( 'div.is-dismissible' )
28 .find( 'button.notice-dismiss' )
29 .on(
30 'click.dc-dismiss-notice',
31 function( e ) {
32 e.preventDefault();
33 $selector.find( '.notice-focus' )
34 .removeClass( 'notice-focus' );
35
36 $selector.find( 'p#innotice' )
37 .remove();
38 }
39 );
40
41 $selector.find( 'a#refresh' )
42 .on(
43 'click.dc-refresh',
44 function( e ) {
45 e.preventDefault();
46 var $self = $( this );
47 var url = $self.attr( 'href' );
48 var sort = $selector.find( 'select#sort' )
49 .children( 'option:selected' )
50 .val();
51 var order = $selector.find( 'select#order' )
52 .children( 'option:selected' )
53 .val();
54 var line = $selector.find( 'select#line' )
55 .children( 'option:selected' )
56 .val();
57
58 var dt = Math.floor( Date.now() / 1000 );
59 url = url.replace( /\&sorting=.*/, '' );
60 if ( order ) {
61 url = url + '&srt=' + order + '-' + sort + '-' + line;
62 }
63 url = url + '&t=' + dt;
64 window.location.replace( url );
65 return false;
66 }
67 );
68
69 $selector.find( 'select[data-id=logopt]' )
70 .on(
71 'change.dc-refresh',
72 function() {
73 $selector.find( 'a#refresh' )
74 .trigger( 'click' );
75 }
76 );
77
78 $selector.find( 'select.config-filter' )
79 .on(
80 'change.dc-select-config-filter',
81 function() {
82 $selector.find( 'form#config-filter' )
83 .submit();
84 return false;
85 }
86 );
87
88 var close_notice = function() {
89 $selector.find( 'div.is-dismissible' )
90 .find( 'button.notice-dismiss' )
91 .trigger( 'click' );
92 };
93
94 window.dospinner = false;
95 var spinner = function() {
96 if ( !window.dospinner ) {
97 return;
98 }
99
100 $( window )
101 .on(
102 'beforeunload.dc-loader',
103 function() {
104 window.dospinner = false;
105 var $overlay = $( document )
106 .find( '#docket-cache-overlay' );
107 $overlay.css( 'display', 'block' );
108
109 setTimeout(
110 function() {
111 $overlay.css( 'background-color', 'rgba(0,0,0,0.5)' );
112 $overlay.find( '#wait-spinner' )
113 .css( 'display', 'block' );
114 },
115 750
116 );
117 }
118 );
119 };
120
121 $selector.find( 'a.btx-spinner' )
122 .on(
123 'click.dc-btspinner',
124 function() {
125 if ( $( this )
126 .attr( 'disabled' ) ) {
127 return;
128 }
129 window.dospinner = true;
130 spinner();
131 }
132 );
133
134 $selector.find( 'a.btx-cleanuppost' )
135 .on(
136 'click.cleanuppost',
137 function( e ) {
138 e.preventDefault();
139 var url = $( this )
140 .attr( 'href' );
141 url = url.replace( /\&siteid=.*/, '' );
142 var siteid = $selector.find( 'select#siteid' )
143 .children( 'option:selected' )
144 .val() || false;
145 if ( siteid ) {
146 url += '&siteid=' + siteid;
147 }
148 window.dospinner = true;
149 spinner();
150 window.location.replace( url );
151 return false;
152 }
153 );
154
155 var $psubmit = $selector.find( 'p.submit' );
156 $psubmit.find( 'a.button' )
157 .on(
158 'click.dc-submit',
159 function() {
160 window.dospinner = true;
161 spinner();
162 }
163 );
164
165 $psubmit.find( 'select' )
166 .on(
167 'change.dc-select',
168 function() {
169 window.dospinner = true;
170 spinner();
171 }
172 );
173
174 $selector.find( '.form-table-selection' )
175 .find( 'select.config-select' )
176 .on(
177 'change.dc-select-config',
178 function() {
179 close_notice();
180 window.dospinner = true;
181 spinner();
182 var $self = $( this );
183 var link = $self.children( 'option:selected' )
184 .attr( 'data-action-link' );
185 window.location.replace( link );
186 return false;
187 }
188 );
189
190 $selector.find( '.nav-tab-wrapper' )
191 .find( 'select.nav-select' )
192 .on(
193 'change.dc-select-nav',
194 function() {
195 var $self = $( this );
196 var link = $self.children( 'option:selected' )
197 .attr( 'data-action-link' );
198 window.location.replace( link );
199 return false;
200 }
201 );
202
203 var highlight_row = function( selector, lineNum ) {
204 var val = selector.value;
205 var arr = val.split( "\n" );
206
207 var startPos = 0,
208 endPos = val.length;
209 for ( var x = 0; x < arr.length; x++ ) {
210 if ( x == lineNum ) {
211 break;
212 }
213 startPos += ( arr[ x ].length + 1 );
214
215 }
216
217 var endPos = arr[ lineNum ].length + startPos;
218
219 if ( typeof( selector.selectionStart ) != "undefined" ) {
220 selector.focus();
221 selector.selectionStart = startPos;
222 selector.selectionEnd = endPos;
223 return true;
224 }
225
226 if ( document.selection && document.selection.createRange ) {
227 selector.focus();
228 selector.select();
229 var range = document.selection.createRange();
230 range.collapse( true );
231 range.moveEnd( "character", endPos );
232 range.moveStart( "character", startPos );
233 range.select();
234 return true;
235 }
236
237 return false;
238 };
239
240 var view_row = function( row ) {
241 var mm = row.match( /\:\s+\"([^"]+)\"\s+/ );
242 if ( mm && mm[ 1 ] ) {
243 var idx = mm[ 1 ];
244 var $bt = $selector.find( 'a.button-vcache' );
245 var url = $bt.attr( 'href' );
246
247 $bt.removeClass( 'hide' );
248
249 url = url.replace( /\&vcache=.*/, '' );
250 url = url + '&vcache=' + idx;
251 $bt.attr( 'href', url );
252 $selector.find( 'span.vcache' )
253 .removeClass( 'hide' )
254 .html( '<strong>Cache Index:</strong> ' + idx );
255
256 $selector.find( 'a.button-vcache-c' )
257 .removeClass( 'hide' );
258 }
259 };
260
261 var select_row = function() {
262 $selector.find( '.log' )
263 .find( 'textarea#log' )
264 .on(
265 "click.dc-log",
266 function( e ) {
267 var $self = $( this );
268 var sp = $self
269 .scrollTop()
270 var lh = $self
271 .css( "line-height" );
272 lh = parseInt( lh.substring( 0, lh.length - 2 ) );
273
274 var line = Math.floor( ( e.offsetY + sp ) / lh );
275 var arr = $self
276 .val()
277 .split( "\n" );
278 var row = arr[ line ];
279 view_row( row );
280 highlight_row( this, line );
281 }
282 );
283 };
284
285 if ( uh.match( /idx=log&vcache=/ ) === null ) {
286 select_row();
287 }
288 }
289 );
290 } )( jQuery );