Browse Source

Supressed useles files

EyeXion 3 years ago
parent
commit
8635fa5f8a
48 changed files with 6 additions and 41877 deletions
  1. 6
    6
      build/libs/config.properties
  2. 0
    1054
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2.html
  3. 0
    834
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/ajax.js
  4. 0
    349
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/codemirror.css
  5. 0
    9765
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/codemirror.js
  6. 0
    550
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/common.js
  7. 0
    886
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/config.js
  8. 0
    1495
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/console.js
  9. 0
    14
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/cross_framing_protection.js
  10. 0
    365
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/doclinks.js
  11. BIN
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/dot.gif
  12. 0
    326
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/error_report.js
  13. 0
    5181
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/functions.js
  14. 0
    761
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/indexes.js
  15. 0
    678
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-migrate.js
  16. 0
    2291
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-ui-timepicker-addon.js
  17. 0
    1312
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-ui.css
  18. 0
    13
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-ui.js
  19. 0
    71
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery.js
  20. 0
    2
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_002.js
  21. 0
    117
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_003.js
  22. 0
    402
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_004.js
  23. 0
    1650
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_005.js
  24. 0
    221
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_006.js
  25. 0
    390
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_007.js
  26. 0
    163
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/js.js
  27. 0
    140
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/keyhandler.js
  28. 0
    73
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/lint.css
  29. 0
    252
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/lint.js
  30. BIN
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/logo_left.png
  31. 0
    222
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/menu-resizer.js
  32. 0
    413
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/messages.php
  33. 0
    1680
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/navigation.js
  34. 0
    59
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/page_settings.js
  35. 0
    5355
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/phpmyadmin.css
  36. 0
    169
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/printview.css
  37. 0
    1075
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/rte.js
  38. 0
    72
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/runmode.js
  39. 0
    101
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/shortcuts_handler.js
  40. 0
    36
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/show-hint.css
  41. 0
    460
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/show-hint.js
  42. 0
    211
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sprintf.js
  43. 0
    304
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sql-hint.js
  44. 0
    38
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sql-lint.js
  45. 0
    494
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sql.js
  46. 0
    500
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/tbl_structure.js
  47. 0
    1277
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/tracekit.js
  48. 0
    50
      src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/whitelist.php

+ 6
- 6
build/libs/config.properties View File

3
 # For more information, visit https://www.etud.insa-toulouse.fr/~tali/DownloadPageJigglyMessenger/
3
 # For more information, visit https://www.etud.insa-toulouse.fr/~tali/DownloadPageJigglyMessenger/
4
 
4
 
5
 # The broadcast address of the local network
5
 # The broadcast address of the local network
6
-app.localNetIPAddress=192.168.1.255
6
+app.localNetIPAddress=10.1.5.255
7
 # Port number use by the application (more than 1024)
7
 # Port number use by the application (more than 1024)
8
 app.udpPortNumber=12345
8
 app.udpPortNumber=12345
9
 # Servlet URL : DON'T FORGET THE LAST "/"
9
 # Servlet URL : DON'T FORGET THE LAST "/"
10
-app.servletURL=http://192.168.1.18:8080/Gradle___com_example___ServeurClavardage_1_0_SNAPSHOT_war/
10
+app.servletURL=https://srv-gei-tomcat.insa-toulouse.fr/ServletJiggly/
11
 # The Database Address (URL or IP)
11
 # The Database Address (URL or IP)
12
-app.dataBaseAddress=192.168.1.18
13
-app.dataBaseUser=root
12
+app.dataBaseAddress=srv-bdens.insa-toulouse.fr
13
+app.dataBaseUser=tp_servlet_013
14
 # The Database user password
14
 # The Database user password
15
-app.dataBasePasswd=0000
15
+app.dataBasePasswd=eiN3ahng
16
 # The Database name
16
 # The Database name
17
-app.dataBaseName=testDBChat
17
+app.dataBaseName=tp_servlet_013

+ 0
- 1054
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2.html
File diff suppressed because it is too large
View File


+ 0
- 834
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/ajax.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * This object handles ajax requests for pages. It also
4
- * handles the reloading of the main menu and scripts.
5
- */
6
-var AJAX = {
7
-    /**
8
-     * @var bool active Whether we are busy
9
-     */
10
-    active: false,
11
-    /**
12
-     * @var object source The object whose event initialized the request
13
-     */
14
-    source: null,
15
-    /**
16
-     * @var object xhr A reference to the ajax request that is currently running
17
-     */
18
-    xhr: null,
19
-    /**
20
-     * @var object lockedTargets, list of locked targets
21
-     */
22
-    lockedTargets: {},
23
-    /**
24
-     * @var function Callback to execute after a successful request
25
-     *               Used by PMA_commonFunctions from common.js
26
-     */
27
-    _callback: function () {},
28
-    /**
29
-     * @var bool _debug Makes noise in your Firebug console
30
-     */
31
-    _debug: false,
32
-    /**
33
-     * @var object $msgbox A reference to a jQuery object that links to a message
34
-     *                     box that is generated by PMA_ajaxShowMessage()
35
-     */
36
-    $msgbox: null,
37
-    /**
38
-     * Given the filename of a script, returns a hash to be
39
-     * used to refer to all the events registered for the file
40
-     *
41
-     * @param key string key The filename for which to get the event name
42
-     *
43
-     * @return int
44
-     */
45
-    hash: function (key) {
46
-        /* http://burtleburtle.net/bob/hash/doobs.html#one */
47
-        key += '';
48
-        var len = key.length;
49
-        var hash = 0;
50
-        var i = 0;
51
-        for (; i < len; ++i) {
52
-            hash += key.charCodeAt(i);
53
-            hash += (hash << 10);
54
-            hash ^= (hash >> 6);
55
-        }
56
-        hash += (hash << 3);
57
-        hash ^= (hash >> 11);
58
-        hash += (hash << 15);
59
-        return Math.abs(hash);
60
-    },
61
-    /**
62
-     * Registers an onload event for a file
63
-     *
64
-     * @param file string   file The filename for which to register the event
65
-     * @param func function func The function to execute when the page is ready
66
-     *
67
-     * @return self For chaining
68
-     */
69
-    registerOnload: function (file, func) {
70
-        var eventName = 'onload_' + AJAX.hash(file);
71
-        $(document).on(eventName, func);
72
-        if (this._debug) {
73
-            console.log(
74
-                // no need to translate
75
-                'Registered event ' + eventName + ' for file ' + file
76
-            );
77
-        }
78
-        return this;
79
-    },
80
-    /**
81
-     * Registers a teardown event for a file. This is useful to execute functions
82
-     * that unbind events for page elements that are about to be removed.
83
-     *
84
-     * @param string   file The filename for which to register the event
85
-     * @param function func The function to execute when
86
-     *                      the page is about to be torn down
87
-     *
88
-     * @return self For chaining
89
-     */
90
-    registerTeardown: function (file, func) {
91
-        var eventName = 'teardown_' + AJAX.hash(file);
92
-        $(document).on(eventName, func);
93
-        if (this._debug) {
94
-            console.log(
95
-                // no need to translate
96
-                'Registered event ' + eventName + ' for file ' + file
97
-            );
98
-        }
99
-        return this;
100
-    },
101
-    /**
102
-     * Called when a page has finished loading, once for every
103
-     * file that registered to the onload event of that file.
104
-     *
105
-     * @param string file The filename for which to fire the event
106
-     *
107
-     * @return void
108
-     */
109
-    fireOnload: function (file) {
110
-        var eventName = 'onload_' + AJAX.hash(file);
111
-        $(document).trigger(eventName);
112
-        if (this._debug) {
113
-            console.log(
114
-                // no need to translate
115
-                'Fired event ' + eventName + ' for file ' + file
116
-            );
117
-        }
118
-    },
119
-    /**
120
-     * Called just before a page is torn down, once for every
121
-     * file that registered to the teardown event of that file.
122
-     *
123
-     * @param string file The filename for which to fire the event
124
-     *
125
-     * @return void
126
-     */
127
-    fireTeardown: function (file) {
128
-        var eventName = 'teardown_' + AJAX.hash(file);
129
-        $(document).triggerHandler(eventName);
130
-        if (this._debug) {
131
-            console.log(
132
-                // no need to translate
133
-                'Fired event ' + eventName + ' for file ' + file
134
-            );
135
-        }
136
-    },
137
-    /**
138
-     * function to handle lock page mechanism
139
-     *
140
-     * @param event the event object
141
-     *
142
-     * @return void
143
-     */
144
-    lockPageHandler: function (event) {
145
-        var newHash = null;
146
-        var oldHash = null;
147
-        var lockId;
148
-        // CodeMirror lock
149
-        if (event.data.value === 3) {
150
-            newHash = event.data.content;
151
-            oldHash = true;
152
-            lockId = 'cm';
153
-        } else {
154
-            // Don't lock on enter.
155
-            if (0 === event.charCode) {
156
-                return;
157
-            }
158
-
159
-            lockId = $(this).data('lock-id');
160
-            if (typeof lockId === 'undefined') {
161
-                return;
162
-            }
163
-            /*
164
-             * @todo Fix Code mirror does not give correct full value (query)
165
-             * in textarea, it returns only the change in content.
166
-             */
167
-            if (event.data.value === 1) {
168
-                newHash = AJAX.hash($(this).val());
169
-            } else {
170
-                newHash = AJAX.hash($(this).is(':checked'));
171
-            }
172
-            oldHash = $(this).data('val-hash');
173
-        }
174
-        // Set lock if old value !== new value
175
-        // otherwise release lock
176
-        if (oldHash !== newHash) {
177
-            AJAX.lockedTargets[lockId] = true;
178
-        } else {
179
-            delete AJAX.lockedTargets[lockId];
180
-        }
181
-        // Show lock icon if locked targets is not empty.
182
-        // otherwise remove lock icon
183
-        if (!jQuery.isEmptyObject(AJAX.lockedTargets)) {
184
-            $('#lock_page_icon').html(PMA_getImage('s_lock', PMA_messages.strLockToolTip).toString());
185
-        } else {
186
-            $('#lock_page_icon').html('');
187
-        }
188
-    },
189
-    /**
190
-     * resets the lock
191
-     *
192
-     * @return void
193
-     */
194
-    resetLock: function () {
195
-        AJAX.lockedTargets = {};
196
-        $('#lock_page_icon').html('');
197
-    },
198
-    handleMenu: {
199
-        replace: function (content) {
200
-            $('#floating_menubar').html(content)
201
-                // Remove duplicate wrapper
202
-                // TODO: don't send it in the response
203
-                .children().first().remove();
204
-            $('#topmenu').menuResizer(PMA_mainMenuResizerCallback);
205
-        }
206
-    },
207
-    /**
208
-     * Event handler for clicks on links and form submissions
209
-     *
210
-     * @param object e Event data
211
-     *
212
-     * @return void
213
-     */
214
-    requestHandler: function (event) {
215
-        // In some cases we don't want to handle the request here and either
216
-        // leave the browser deal with it natively (e.g: file download)
217
-        // or leave an existing ajax event handler present elsewhere deal with it
218
-        var href = $(this).attr('href');
219
-        if (typeof event !== 'undefined' && (event.shiftKey || event.ctrlKey)) {
220
-            return true;
221
-        } else if ($(this).attr('target')) {
222
-            return true;
223
-        } else if ($(this).hasClass('ajax') || $(this).hasClass('disableAjax')) {
224
-            // reset the lockedTargets object, as specified AJAX operation has finished
225
-            AJAX.resetLock();
226
-            return true;
227
-        } else if (href && href.match(/^#/)) {
228
-            return true;
229
-        } else if (href && href.match(/^mailto/)) {
230
-            return true;
231
-        } else if ($(this).hasClass('ui-datepicker-next') ||
232
-            $(this).hasClass('ui-datepicker-prev')
233
-        ) {
234
-            return true;
235
-        }
236
-
237
-        if (typeof event !== 'undefined') {
238
-            event.preventDefault();
239
-            event.stopImmediatePropagation();
240
-        }
241
-
242
-        // triggers a confirm dialog if:
243
-        // the user has performed some operations on loaded page
244
-        // the user clicks on some link, (won't trigger for buttons)
245
-        // the click event is not triggered by script
246
-        if (typeof event !== 'undefined' && event.type === 'click' &&
247
-            event.isTrigger !== true &&
248
-            !jQuery.isEmptyObject(AJAX.lockedTargets) &&
249
-            confirm(PMA_messages.strConfirmNavigation) === false
250
-        ) {
251
-            return false;
252
-        }
253
-        AJAX.resetLock();
254
-        var isLink = !! href || false;
255
-        var previousLinkAborted = false;
256
-
257
-        if (AJAX.active === true) {
258
-            // Cancel the old request if abortable, when the user requests
259
-            // something else. Otherwise silently bail out, as there is already
260
-            // a request well in progress.
261
-            if (AJAX.xhr) {
262
-                // In case of a link request, attempt aborting
263
-                AJAX.xhr.abort();
264
-                if (AJAX.xhr.status === 0 && AJAX.xhr.statusText === 'abort') {
265
-                    // If aborted
266
-                    AJAX.$msgbox = PMA_ajaxShowMessage(PMA_messages.strAbortedRequest);
267
-                    AJAX.active = false;
268
-                    AJAX.xhr = null;
269
-                    previousLinkAborted = true;
270
-                } else {
271
-                    // If can't abort
272
-                    return false;
273
-                }
274
-            } else {
275
-                // In case submitting a form, don't attempt aborting
276
-                return false;
277
-            }
278
-        }
279
-
280
-        AJAX.source = $(this);
281
-
282
-        $('html, body').animate({ scrollTop: 0 }, 'fast');
283
-
284
-        var url = isLink ? href : $(this).attr('action');
285
-        var argsep = PMA_commonParams.get('arg_separator');
286
-        var params = 'ajax_request=true' + argsep + 'ajax_page_request=true';
287
-        var dataPost = AJAX.source.getPostData();
288
-        if (! isLink) {
289
-            params += argsep + $(this).serialize();
290
-        } else if (dataPost) {
291
-            params += argsep + dataPost;
292
-            isLink = false;
293
-        }
294
-        if (! (history && history.pushState)) {
295
-            // Add a list of menu hashes that we have in the cache to the request
296
-            params += PMA_MicroHistory.menus.getRequestParam();
297
-        }
298
-
299
-        if (AJAX._debug) {
300
-            console.log('Loading: ' + url); // no need to translate
301
-        }
302
-
303
-        if (isLink) {
304
-            AJAX.active = true;
305
-            AJAX.$msgbox = PMA_ajaxShowMessage();
306
-            // Save reference for the new link request
307
-            AJAX.xhr = $.get(url, params, AJAX.responseHandler);
308
-            if (history && history.pushState) {
309
-                var state = {
310
-                    url : href
311
-                };
312
-                if (previousLinkAborted) {
313
-                    // hack: there is already an aborted entry on stack
314
-                    // so just modify the aborted one
315
-                    history.replaceState(state, null, href);
316
-                } else {
317
-                    history.pushState(state, null, href);
318
-                }
319
-            }
320
-        } else {
321
-            /**
322
-             * Manually fire the onsubmit event for the form, if any.
323
-             * The event was saved in the jQuery data object by an onload
324
-             * handler defined below. Workaround for bug #3583316
325
-             */
326
-            var onsubmit = $(this).data('onsubmit');
327
-            // Submit the request if there is no onsubmit handler
328
-            // or if it returns a value that evaluates to true
329
-            if (typeof onsubmit !== 'function' || onsubmit.apply(this, [event])) {
330
-                AJAX.active = true;
331
-                AJAX.$msgbox = PMA_ajaxShowMessage();
332
-                $.post(url, params, AJAX.responseHandler);
333
-            }
334
-        }
335
-    },
336
-    /**
337
-     * Called after the request that was initiated by this.requestHandler()
338
-     * has completed successfully or with a caught error. For completely
339
-     * failed requests or requests with uncaught errors, see the .ajaxError
340
-     * handler at the bottom of this file.
341
-     *
342
-     * To refer to self use 'AJAX', instead of 'this' as this function
343
-     * is called in the jQuery context.
344
-     *
345
-     * @param object e Event data
346
-     *
347
-     * @return void
348
-     */
349
-    responseHandler: function (data) {
350
-        if (typeof data === 'undefined' || data === null) {
351
-            return;
352
-        }
353
-        if (typeof data.success !== 'undefined' && data.success) {
354
-            $('html, body').animate({ scrollTop: 0 }, 'fast');
355
-            PMA_ajaxRemoveMessage(AJAX.$msgbox);
356
-
357
-            if (data._redirect) {
358
-                PMA_ajaxShowMessage(data._redirect, false);
359
-                AJAX.active = false;
360
-                AJAX.xhr = null;
361
-                return;
362
-            }
363
-
364
-            AJAX.scriptHandler.reset(function () {
365
-                if (data._reloadNavigation) {
366
-                    PMA_reloadNavigation();
367
-                }
368
-                if (data._title) {
369
-                    $('title').replaceWith(data._title);
370
-                }
371
-                if (data._menu) {
372
-                    if (history && history.pushState) {
373
-                        var state = {
374
-                            url : data._selflink,
375
-                            menu : data._menu
376
-                        };
377
-                        history.replaceState(state, null);
378
-                        AJAX.handleMenu.replace(data._menu);
379
-                    } else {
380
-                        PMA_MicroHistory.menus.replace(data._menu);
381
-                        PMA_MicroHistory.menus.add(data._menuHash, data._menu);
382
-                    }
383
-                } else if (data._menuHash) {
384
-                    if (! (history && history.pushState)) {
385
-                        PMA_MicroHistory.menus.replace(PMA_MicroHistory.menus.get(data._menuHash));
386
-                    }
387
-                }
388
-                if (data._disableNaviSettings) {
389
-                    PMA_disableNaviSettings();
390
-                } else {
391
-                    PMA_ensureNaviSettings(data._selflink);
392
-                }
393
-
394
-                // Remove all containers that may have
395
-                // been added outside of #page_content
396
-                $('body').children()
397
-                    .not('#pma_navigation')
398
-                    .not('#floating_menubar')
399
-                    .not('#page_nav_icons')
400
-                    .not('#page_content')
401
-                    .not('#selflink')
402
-                    .not('#pma_header')
403
-                    .not('#pma_footer')
404
-                    .not('#pma_demo')
405
-                    .not('#pma_console_container')
406
-                    .not('#prefs_autoload')
407
-                    .remove();
408
-                // Replace #page_content with new content
409
-                if (data.message && data.message.length > 0) {
410
-                    $('#page_content').replaceWith(
411
-                        '<div id=\'page_content\'>' + data.message + '</div>'
412
-                    );
413
-                    PMA_highlightSQL($('#page_content'));
414
-                    checkNumberOfFields();
415
-                }
416
-
417
-                if (data._selflink) {
418
-                    var source = data._selflink.split('?')[0];
419
-                    // Check for faulty links
420
-                    $selflink_replace = {
421
-                        'import.php': 'tbl_sql.php',
422
-                        'tbl_chart.php': 'sql.php',
423
-                        'tbl_gis_visualization.php': 'sql.php'
424
-                    };
425
-                    if ($selflink_replace[source]) {
426
-                        var replacement = $selflink_replace[source];
427
-                        data._selflink = data._selflink.replace(source, replacement);
428
-                    }
429
-                    $('#selflink').find('> a').attr('href', data._selflink);
430
-                }
431
-                if (data._params) {
432
-                    PMA_commonParams.setAll(data._params);
433
-                }
434
-                if (data._scripts) {
435
-                    AJAX.scriptHandler.load(data._scripts);
436
-                }
437
-                if (data._selflink && data._scripts && data._menuHash && data._params) {
438
-                    if (! (history && history.pushState)) {
439
-                        PMA_MicroHistory.add(
440
-                            data._selflink,
441
-                            data._scripts,
442
-                            data._menuHash,
443
-                            data._params,
444
-                            AJAX.source.attr('rel')
445
-                        );
446
-                    }
447
-                }
448
-                if (data._displayMessage) {
449
-                    $('#page_content').prepend(data._displayMessage);
450
-                    PMA_highlightSQL($('#page_content'));
451
-                }
452
-
453
-                $('#pma_errors').remove();
454
-
455
-                var msg = '';
456
-                if (data._errSubmitMsg) {
457
-                    msg = data._errSubmitMsg;
458
-                }
459
-                if (data._errors) {
460
-                    $('<div/>', { id : 'pma_errors', class : 'clearfloat' })
461
-                        .insertAfter('#selflink')
462
-                        .append(data._errors);
463
-                    // bind for php error reporting forms (bottom)
464
-                    $('#pma_ignore_errors_bottom').on('click', function (e) {
465
-                        e.preventDefault();
466
-                        PMA_ignorePhpErrors();
467
-                    });
468
-                    $('#pma_ignore_all_errors_bottom').on('click', function (e) {
469
-                        e.preventDefault();
470
-                        PMA_ignorePhpErrors(false);
471
-                    });
472
-                    // In case of 'sendErrorReport'='always'
473
-                    // submit the hidden error reporting form.
474
-                    if (data._sendErrorAlways === '1' &&
475
-                        data._stopErrorReportLoop !== '1'
476
-                    ) {
477
-                        $('#pma_report_errors_form').submit();
478
-                        PMA_ajaxShowMessage(PMA_messages.phpErrorsBeingSubmitted, false);
479
-                        $('html, body').animate({ scrollTop:$(document).height() }, 'slow');
480
-                    } else if (data._promptPhpErrors) {
481
-                        // otherwise just prompt user if it is set so.
482
-                        msg = msg + PMA_messages.phpErrorsFound;
483
-                        // scroll to bottom where all the errors are displayed.
484
-                        $('html, body').animate({ scrollTop:$(document).height() }, 'slow');
485
-                    }
486
-                }
487
-                PMA_ajaxShowMessage(msg, false);
488
-                // bind for php error reporting forms (popup)
489
-                $('#pma_ignore_errors_popup').on('click', function () {
490
-                    PMA_ignorePhpErrors();
491
-                });
492
-                $('#pma_ignore_all_errors_popup').on('click', function () {
493
-                    PMA_ignorePhpErrors(false);
494
-                });
495
-
496
-                if (typeof AJAX._callback === 'function') {
497
-                    AJAX._callback.call();
498
-                }
499
-                AJAX._callback = function () {};
500
-            });
501
-        } else {
502
-            PMA_ajaxShowMessage(data.error, false);
503
-            AJAX.active = false;
504
-            AJAX.xhr = null;
505
-            PMA_handleRedirectAndReload(data);
506
-            if (data.fieldWithError) {
507
-                $(':input.error').removeClass('error');
508
-                $('#' + data.fieldWithError).addClass('error');
509
-            }
510
-        }
511
-    },
512
-    /**
513
-     * This object is in charge of downloading scripts,
514
-     * keeping track of what's downloaded and firing
515
-     * the onload event for them when the page is ready.
516
-     */
517
-    scriptHandler: {
518
-        /**
519
-         * @var array _scripts The list of files already downloaded
520
-         */
521
-        _scripts: [],
522
-        /**
523
-         * @var string _scriptsVersion version of phpMyAdmin from which the
524
-         *                             scripts have been loaded
525
-         */
526
-        _scriptsVersion: null,
527
-        /**
528
-         * @var array _scriptsToBeLoaded The list of files that
529
-         *                               need to be downloaded
530
-         */
531
-        _scriptsToBeLoaded: [],
532
-        /**
533
-         * @var array _scriptsToBeFired The list of files for which
534
-         *                              to fire the onload and unload events
535
-         */
536
-        _scriptsToBeFired: [],
537
-        _scriptsCompleted: false,
538
-        /**
539
-         * Records that a file has been downloaded
540
-         *
541
-         * @param string file The filename
542
-         * @param string fire Whether this file will be registering
543
-         *                    onload/teardown events
544
-         *
545
-         * @return self For chaining
546
-         */
547
-        add: function (file, fire) {
548
-            this._scripts.push(file);
549
-            if (fire) {
550
-                // Record whether to fire any events for the file
551
-                // This is necessary to correctly tear down the initial page
552
-                this._scriptsToBeFired.push(file);
553
-            }
554
-            return this;
555
-        },
556
-        /**
557
-         * Download a list of js files in one request
558
-         *
559
-         * @param array files An array of filenames and flags
560
-         *
561
-         * @return void
562
-         */
563
-        load: function (files, callback) {
564
-            var self = this;
565
-            var i;
566
-            // Clear loaded scripts if they are from another version of phpMyAdmin.
567
-            // Depends on common params being set before loading scripts in responseHandler
568
-            if (self._scriptsVersion === null) {
569
-                self._scriptsVersion = PMA_commonParams.get('PMA_VERSION');
570
-            } else if (self._scriptsVersion !== PMA_commonParams.get('PMA_VERSION')) {
571
-                self._scripts = [];
572
-                self._scriptsVersion = PMA_commonParams.get('PMA_VERSION');
573
-            }
574
-            self._scriptsCompleted = false;
575
-            self._scriptsToBeFired = [];
576
-            // We need to first complete list of files to load
577
-            // as next loop will directly fire requests to load them
578
-            // and that triggers removal of them from
579
-            // self._scriptsToBeLoaded
580
-            for (i in files) {
581
-                self._scriptsToBeLoaded.push(files[i].name);
582
-                if (files[i].fire) {
583
-                    self._scriptsToBeFired.push(files[i].name);
584
-                }
585
-            }
586
-            for (i in files) {
587
-                var script = files[i].name;
588
-                // Only for scripts that we don't already have
589
-                if ($.inArray(script, self._scripts) === -1) {
590
-                    this.add(script);
591
-                    this.appendScript(script, callback);
592
-                } else {
593
-                    self.done(script, callback);
594
-                }
595
-            }
596
-            // Trigger callback if there is nothing else to load
597
-            self.done(null, callback);
598
-        },
599
-        /**
600
-         * Called whenever all files are loaded
601
-         *
602
-         * @return void
603
-         */
604
-        done: function (script, callback) {
605
-            if (typeof ErrorReport !== 'undefined') {
606
-                ErrorReport.wrap_global_functions();
607
-            }
608
-            if ($.inArray(script, this._scriptsToBeFired)) {
609
-                AJAX.fireOnload(script);
610
-            }
611
-            if ($.inArray(script, this._scriptsToBeLoaded)) {
612
-                this._scriptsToBeLoaded.splice($.inArray(script, this._scriptsToBeLoaded), 1);
613
-            }
614
-            if (script === null) {
615
-                this._scriptsCompleted = true;
616
-            }
617
-            /* We need to wait for last signal (with null) or last script load */
618
-            AJAX.active = (this._scriptsToBeLoaded.length > 0) || ! this._scriptsCompleted;
619
-            /* Run callback on last script */
620
-            if (! AJAX.active && $.isFunction(callback)) {
621
-                callback();
622
-            }
623
-        },
624
-        /**
625
-         * Appends a script element to the head to load the scripts
626
-         *
627
-         * @return void
628
-         */
629
-        appendScript: function (name, callback) {
630
-            var head = document.head || document.getElementsByTagName('head')[0];
631
-            var script = document.createElement('script');
632
-            var self = this;
633
-
634
-            script.type = 'text/javascript';
635
-            script.src = 'js/' + name + '?' + 'v=' + encodeURIComponent(PMA_commonParams.get('PMA_VERSION'));
636
-            script.async = false;
637
-            script.onload = function () {
638
-                self.done(name, callback);
639
-            };
640
-            head.appendChild(script);
641
-        },
642
-        /**
643
-         * Fires all the teardown event handlers for the current page
644
-         * and rebinds all forms and links to the request handler
645
-         *
646
-         * @param function callback The callback to call after resetting
647
-         *
648
-         * @return void
649
-         */
650
-        reset: function (callback) {
651
-            for (var i in this._scriptsToBeFired) {
652
-                AJAX.fireTeardown(this._scriptsToBeFired[i]);
653
-            }
654
-            this._scriptsToBeFired = [];
655
-            /**
656
-             * Re-attach a generic event handler to clicks
657
-             * on pages and submissions of forms
658
-             */
659
-            $(document).off('click', 'a').on('click', 'a', AJAX.requestHandler);
660
-            $(document).off('submit', 'form').on('submit', 'form', AJAX.requestHandler);
661
-            if (! (history && history.pushState)) {
662
-                PMA_MicroHistory.update();
663
-            }
664
-            callback();
665
-        }
666
-    }
667
-};
668
-
669
-/**
670
- * Here we register a function that will remove the onsubmit event from all
671
- * forms that will be handled by the generic page loader. We then save this
672
- * event handler in the "jQuery data", so that we can fire it up later in
673
- * AJAX.requestHandler().
674
- *
675
- * See bug #3583316
676
- */
677
-AJAX.registerOnload('functions.js', function () {
678
-    // Registering the onload event for functions.js
679
-    // ensures that it will be fired for all pages
680
-    $('form').not('.ajax').not('.disableAjax').each(function () {
681
-        if ($(this).attr('onsubmit')) {
682
-            $(this).data('onsubmit', this.onsubmit).attr('onsubmit', '');
683
-        }
684
-    });
685
-
686
-    var $page_content = $('#page_content');
687
-    /**
688
-     * Workaround for passing submit button name,value on ajax form submit
689
-     * by appending hidden element with submit button name and value.
690
-     */
691
-    $page_content.on('click', 'form input[type=submit]', function () {
692
-        var buttonName = $(this).attr('name');
693
-        if (typeof buttonName === 'undefined') {
694
-            return;
695
-        }
696
-        $(this).closest('form').append($('<input/>', {
697
-            'type' : 'hidden',
698
-            'name' : buttonName,
699
-            'value': $(this).val()
700
-        }));
701
-    });
702
-
703
-    /**
704
-     * Attach event listener to events when user modify visible
705
-     * Input,Textarea and select fields to make changes in forms
706
-     */
707
-    $page_content.on(
708
-        'keyup change',
709
-        'form.lock-page textarea, ' +
710
-        'form.lock-page input[type="text"], ' +
711
-        'form.lock-page input[type="number"], ' +
712
-        'form.lock-page select',
713
-        { value:1 },
714
-        AJAX.lockPageHandler
715
-    );
716
-    $page_content.on(
717
-        'change',
718
-        'form.lock-page input[type="checkbox"], ' +
719
-        'form.lock-page input[type="radio"]',
720
-        { value:2 },
721
-        AJAX.lockPageHandler
722
-    );
723
-    /**
724
-     * Reset lock when lock-page form reset event is fired
725
-     * Note: reset does not bubble in all browser so attach to
726
-     * form directly.
727
-     */
728
-    $('form.lock-page').on('reset', function (event) {
729
-        AJAX.resetLock();
730
-    });
731
-});
732
-
733
-/**
734
- * Page load event handler
735
- */
736
-$(function () {
737
-    var menuContent = $('<div></div>')
738
-        .append($('#serverinfo').clone())
739
-        .append($('#topmenucontainer').clone())
740
-        .html();
741
-    if (history && history.pushState) {
742
-        // set initial state reload
743
-        var initState = ('state' in window.history && window.history.state !== null);
744
-        var initURL = $('#selflink').find('> a').attr('href') || location.href;
745
-        var state = {
746
-            url : initURL,
747
-            menu : menuContent
748
-        };
749
-        history.replaceState(state, null);
750
-
751
-        $(window).on('popstate', function (event) {
752
-            var initPop = (! initState && location.href === initURL);
753
-            initState = true;
754
-            // check if popstate fired on first page itself
755
-            if (initPop) {
756
-                return;
757
-            }
758
-            var state = event.originalEvent.state;
759
-            if (state && state.menu) {
760
-                AJAX.$msgbox = PMA_ajaxShowMessage();
761
-                var params = 'ajax_request=true' + PMA_commonParams.get('arg_separator') + 'ajax_page_request=true';
762
-                var url = state.url || location.href;
763
-                $.get(url, params, AJAX.responseHandler);
764
-                // TODO: Check if sometimes menu is not retrieved from server,
765
-                // Not sure but it seems menu was missing only for printview which
766
-                // been removed lately, so if it's right some dead menu checks/fallbacks
767
-                // may need to be removed from this file and Header.php
768
-                // AJAX.handleMenu.replace(event.originalEvent.state.menu);
769
-            }
770
-        });
771
-    } else {
772
-        // Fallback to microhistory mechanism
773
-        AJAX.scriptHandler
774
-            .load([{ 'name' : 'microhistory.js', 'fire' : 1 }], function () {
775
-                // The cache primer is set by the footer class
776
-                if (PMA_MicroHistory.primer.url) {
777
-                    PMA_MicroHistory.menus.add(
778
-                        PMA_MicroHistory.primer.menuHash,
779
-                        menuContent
780
-                    );
781
-                }
782
-                $(function () {
783
-                    // Queue up this event twice to make sure that we get a copy
784
-                    // of the page after all other onload events have been fired
785
-                    if (PMA_MicroHistory.primer.url) {
786
-                        PMA_MicroHistory.add(
787
-                            PMA_MicroHistory.primer.url,
788
-                            PMA_MicroHistory.primer.scripts,
789
-                            PMA_MicroHistory.primer.menuHash
790
-                        );
791
-                    }
792
-                });
793
-            });
794
-    }
795
-});
796
-
797
-/**
798
- * Attach a generic event handler to clicks
799
- * on pages and submissions of forms
800
- */
801
-$(document).on('click', 'a', AJAX.requestHandler);
802
-$(document).on('submit', 'form', AJAX.requestHandler);
803
-
804
-/**
805
- * Gracefully handle fatal server errors
806
- * (e.g: 500 - Internal server error)
807
- */
808
-$(document).ajaxError(function (event, request, settings) {
809
-    if (AJAX._debug) {
810
-        console.log('AJAX error: status=' + request.status + ', text=' + request.statusText);
811
-    }
812
-    // Don't handle aborted requests
813
-    if (request.status !== 0 || request.statusText !== 'abort') {
814
-        var details = '';
815
-        var state = request.state();
816
-
817
-        if (request.status !== 0) {
818
-            details += '<div>' + escapeHtml(PMA_sprintf(PMA_messages.strErrorCode, request.status)) + '</div>';
819
-        }
820
-        details += '<div>' + escapeHtml(PMA_sprintf(PMA_messages.strErrorText, request.statusText + ' (' + state + ')')) + '</div>';
821
-        if (state === 'rejected' || state === 'timeout') {
822
-            details += '<div>' + escapeHtml(PMA_messages.strErrorConnection) + '</div>';
823
-        }
824
-        PMA_ajaxShowMessage(
825
-            '<div class="error">' +
826
-            PMA_messages.strErrorProcessingRequest +
827
-            details +
828
-            '</div>',
829
-            false
830
-        );
831
-        AJAX.active = false;
832
-        AJAX.xhr = null;
833
-    }
834
-});

+ 0
- 349
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/codemirror.css View File

1
-/* BASICS */
2
-
3
-.CodeMirror {
4
-  /* Set height, width, borders, and global font properties here */
5
-  font-family: monospace;
6
-  height: 300px;
7
-  color: black;
8
-  direction: ltr;
9
-}
10
-
11
-/* PADDING */
12
-
13
-.CodeMirror-lines {
14
-  padding: 4px 0; /* Vertical padding around content */
15
-}
16
-.CodeMirror pre.CodeMirror-line,
17
-.CodeMirror pre.CodeMirror-line-like {
18
-  padding: 0 4px; /* Horizontal padding of content */
19
-}
20
-
21
-.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
22
-  background-color: white; /* The little square between H and V scrollbars */
23
-}
24
-
25
-/* GUTTER */
26
-
27
-.CodeMirror-gutters {
28
-  border-right: 1px solid #ddd;
29
-  background-color: #f7f7f7;
30
-  white-space: nowrap;
31
-}
32
-.CodeMirror-linenumbers {}
33
-.CodeMirror-linenumber {
34
-  padding: 0 3px 0 5px;
35
-  min-width: 20px;
36
-  text-align: right;
37
-  color: #999;
38
-  white-space: nowrap;
39
-}
40
-
41
-.CodeMirror-guttermarker { color: black; }
42
-.CodeMirror-guttermarker-subtle { color: #999; }
43
-
44
-/* CURSOR */
45
-
46
-.CodeMirror-cursor {
47
-  border-left: 1px solid black;
48
-  border-right: none;
49
-  width: 0;
50
-}
51
-/* Shown when moving in bi-directional text */
52
-.CodeMirror div.CodeMirror-secondarycursor {
53
-  border-left: 1px solid silver;
54
-}
55
-.cm-fat-cursor .CodeMirror-cursor {
56
-  width: auto;
57
-  border: 0 !important;
58
-  background: #7e7;
59
-}
60
-.cm-fat-cursor div.CodeMirror-cursors {
61
-  z-index: 1;
62
-}
63
-.cm-fat-cursor-mark {
64
-  background-color: rgba(20, 255, 20, 0.5);
65
-  -webkit-animation: blink 1.06s steps(1) infinite;
66
-  -moz-animation: blink 1.06s steps(1) infinite;
67
-  animation: blink 1.06s steps(1) infinite;
68
-}
69
-.cm-animate-fat-cursor {
70
-  width: auto;
71
-  border: 0;
72
-  -webkit-animation: blink 1.06s steps(1) infinite;
73
-  -moz-animation: blink 1.06s steps(1) infinite;
74
-  animation: blink 1.06s steps(1) infinite;
75
-  background-color: #7e7;
76
-}
77
-@-moz-keyframes blink {
78
-  0% {}
79
-  50% { background-color: transparent; }
80
-  100% {}
81
-}
82
-@-webkit-keyframes blink {
83
-  0% {}
84
-  50% { background-color: transparent; }
85
-  100% {}
86
-}
87
-@keyframes blink {
88
-  0% {}
89
-  50% { background-color: transparent; }
90
-  100% {}
91
-}
92
-
93
-/* Can style cursor different in overwrite (non-insert) mode */
94
-.CodeMirror-overwrite .CodeMirror-cursor {}
95
-
96
-.cm-tab { display: inline-block; text-decoration: inherit; }
97
-
98
-.CodeMirror-rulers {
99
-  position: absolute;
100
-  left: 0; right: 0; top: -50px; bottom: 0;
101
-  overflow: hidden;
102
-}
103
-.CodeMirror-ruler {
104
-  border-left: 1px solid #ccc;
105
-  top: 0; bottom: 0;
106
-  position: absolute;
107
-}
108
-
109
-/* DEFAULT THEME */
110
-
111
-.cm-s-default .cm-header {color: blue;}
112
-.cm-s-default .cm-quote {color: #090;}
113
-.cm-negative {color: #d44;}
114
-.cm-positive {color: #292;}
115
-.cm-header, .cm-strong {font-weight: bold;}
116
-.cm-em {font-style: italic;}
117
-.cm-link {text-decoration: underline;}
118
-.cm-strikethrough {text-decoration: line-through;}
119
-
120
-.cm-s-default .cm-keyword {color: #708;}
121
-.cm-s-default .cm-atom {color: #219;}
122
-.cm-s-default .cm-number {color: #164;}
123
-.cm-s-default .cm-def {color: #00f;}
124
-.cm-s-default .cm-variable,
125
-.cm-s-default .cm-punctuation,
126
-.cm-s-default .cm-property,
127
-.cm-s-default .cm-operator {}
128
-.cm-s-default .cm-variable-2 {color: #05a;}
129
-.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
130
-.cm-s-default .cm-comment {color: #a50;}
131
-.cm-s-default .cm-string {color: #a11;}
132
-.cm-s-default .cm-string-2 {color: #f50;}
133
-.cm-s-default .cm-meta {color: #555;}
134
-.cm-s-default .cm-qualifier {color: #555;}
135
-.cm-s-default .cm-builtin {color: #30a;}
136
-.cm-s-default .cm-bracket {color: #997;}
137
-.cm-s-default .cm-tag {color: #170;}
138
-.cm-s-default .cm-attribute {color: #00c;}
139
-.cm-s-default .cm-hr {color: #999;}
140
-.cm-s-default .cm-link {color: #00c;}
141
-
142
-.cm-s-default .cm-error {color: #f00;}
143
-.cm-invalidchar {color: #f00;}
144
-
145
-.CodeMirror-composing { border-bottom: 2px solid; }
146
-
147
-/* Default styles for common addons */
148
-
149
-div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
150
-div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
151
-.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
152
-.CodeMirror-activeline-background {background: #e8f2ff;}
153
-
154
-/* STOP */
155
-
156
-/* The rest of this file contains styles related to the mechanics of
157
-   the editor. You probably shouldn't touch them. */
158
-
159
-.CodeMirror {
160
-  position: relative;
161
-  overflow: hidden;
162
-  background: white;
163
-}
164
-
165
-.CodeMirror-scroll {
166
-  overflow: scroll !important; /* Things will break if this is overridden */
167
-  /* 30px is the magic margin used to hide the element's real scrollbars */
168
-  /* See overflow: hidden in .CodeMirror */
169
-  margin-bottom: -30px; margin-right: -30px;
170
-  padding-bottom: 30px;
171
-  height: 100%;
172
-  outline: none; /* Prevent dragging from highlighting the element */
173
-  position: relative;
174
-}
175
-.CodeMirror-sizer {
176
-  position: relative;
177
-  border-right: 30px solid transparent;
178
-}
179
-
180
-/* The fake, visible scrollbars. Used to force redraw during scrolling
181
-   before actual scrolling happens, thus preventing shaking and
182
-   flickering artifacts. */
183
-.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
184
-  position: absolute;
185
-  z-index: 6;
186
-  display: none;
187
-}
188
-.CodeMirror-vscrollbar {
189
-  right: 0; top: 0;
190
-  overflow-x: hidden;
191
-  overflow-y: scroll;
192
-}
193
-.CodeMirror-hscrollbar {
194
-  bottom: 0; left: 0;
195
-  overflow-y: hidden;
196
-  overflow-x: scroll;
197
-}
198
-.CodeMirror-scrollbar-filler {
199
-  right: 0; bottom: 0;
200
-}
201
-.CodeMirror-gutter-filler {
202
-  left: 0; bottom: 0;
203
-}
204
-
205
-.CodeMirror-gutters {
206
-  position: absolute; left: 0; top: 0;
207
-  min-height: 100%;
208
-  z-index: 3;
209
-}
210
-.CodeMirror-gutter {
211
-  white-space: normal;
212
-  height: 100%;
213
-  display: inline-block;
214
-  vertical-align: top;
215
-  margin-bottom: -30px;
216
-}
217
-.CodeMirror-gutter-wrapper {
218
-  position: absolute;
219
-  z-index: 4;
220
-  background: none !important;
221
-  border: none !important;
222
-}
223
-.CodeMirror-gutter-background {
224
-  position: absolute;
225
-  top: 0; bottom: 0;
226
-  z-index: 4;
227
-}
228
-.CodeMirror-gutter-elt {
229
-  position: absolute;
230
-  cursor: default;
231
-  z-index: 4;
232
-}
233
-.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
234
-.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
235
-
236
-.CodeMirror-lines {
237
-  cursor: text;
238
-  min-height: 1px; /* prevents collapsing before first draw */
239
-}
240
-.CodeMirror pre.CodeMirror-line,
241
-.CodeMirror pre.CodeMirror-line-like {
242
-  /* Reset some styles that the rest of the page might have set */
243
-  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
244
-  border-width: 0;
245
-  background: transparent;
246
-  font-family: inherit;
247
-  font-size: inherit;
248
-  margin: 0;
249
-  white-space: pre;
250
-  word-wrap: normal;
251
-  line-height: inherit;
252
-  color: inherit;
253
-  z-index: 2;
254
-  position: relative;
255
-  overflow: visible;
256
-  -webkit-tap-highlight-color: transparent;
257
-  -webkit-font-variant-ligatures: contextual;
258
-  font-variant-ligatures: contextual;
259
-}
260
-.CodeMirror-wrap pre.CodeMirror-line,
261
-.CodeMirror-wrap pre.CodeMirror-line-like {
262
-  word-wrap: break-word;
263
-  white-space: pre-wrap;
264
-  word-break: normal;
265
-}
266
-
267
-.CodeMirror-linebackground {
268
-  position: absolute;
269
-  left: 0; right: 0; top: 0; bottom: 0;
270
-  z-index: 0;
271
-}
272
-
273
-.CodeMirror-linewidget {
274
-  position: relative;
275
-  z-index: 2;
276
-  padding: 0.1px; /* Force widget margins to stay inside of the container */
277
-}
278
-
279
-.CodeMirror-widget {}
280
-
281
-.CodeMirror-rtl pre { direction: rtl; }
282
-
283
-.CodeMirror-code {
284
-  outline: none;
285
-}
286
-
287
-/* Force content-box sizing for the elements where we expect it */
288
-.CodeMirror-scroll,
289
-.CodeMirror-sizer,
290
-.CodeMirror-gutter,
291
-.CodeMirror-gutters,
292
-.CodeMirror-linenumber {
293
-  -moz-box-sizing: content-box;
294
-  box-sizing: content-box;
295
-}
296
-
297
-.CodeMirror-measure {
298
-  position: absolute;
299
-  width: 100%;
300
-  height: 0;
301
-  overflow: hidden;
302
-  visibility: hidden;
303
-}
304
-
305
-.CodeMirror-cursor {
306
-  position: absolute;
307
-  pointer-events: none;
308
-}
309
-.CodeMirror-measure pre { position: static; }
310
-
311
-div.CodeMirror-cursors {
312
-  visibility: hidden;
313
-  position: relative;
314
-  z-index: 3;
315
-}
316
-div.CodeMirror-dragcursors {
317
-  visibility: visible;
318
-}
319
-
320
-.CodeMirror-focused div.CodeMirror-cursors {
321
-  visibility: visible;
322
-}
323
-
324
-.CodeMirror-selected { background: #d9d9d9; }
325
-.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
326
-.CodeMirror-crosshair { cursor: crosshair; }
327
-.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
328
-.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
329
-
330
-.cm-searching {
331
-  background-color: #ffa;
332
-  background-color: rgba(255, 255, 0, .4);
333
-}
334
-
335
-/* Used to force a border model for a node */
336
-.cm-force-border { padding-right: .1px; }
337
-
338
-@media print {
339
-  /* Hide the cursor when printing */
340
-  .CodeMirror div.CodeMirror-cursors {
341
-    visibility: hidden;
342
-  }
343
-}
344
-
345
-/* See issue #2901 */
346
-.cm-tab-wrap-hack:after { content: ''; }
347
-
348
-/* Help users use markselection to safely style text background */
349
-span.CodeMirror-selectedtext { background: none; }

+ 0
- 9765
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/codemirror.js
File diff suppressed because it is too large
View File


+ 0
- 550
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/common.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-
3
-$(function () {
4
-    checkNumberOfFields();
5
-});
6
-
7
-/**
8
- * Holds common parameters such as server, db, table, etc
9
- *
10
- * The content for this is normally loaded from Header.php or
11
- * Response.php and executed by ajax.js
12
- */
13
-var PMA_commonParams = (function () {
14
-    /**
15
-     * @var hash params An associative array of key value pairs
16
-     * @access private
17
-     */
18
-    var params = {};
19
-    // The returned object is the public part of the module
20
-    return {
21
-        /**
22
-         * Saves all the key value pair that
23
-         * are provided in the input array
24
-         *
25
-         * @param obj hash The input array
26
-         *
27
-         * @return void
28
-         */
29
-        setAll: function (obj) {
30
-            var reload = false;
31
-            var updateNavigation = false;
32
-            for (var i in obj) {
33
-                if (params[i] !== undefined && params[i] !== obj[i]) {
34
-                    if (i === 'db' || i === 'table') {
35
-                        updateNavigation = true;
36
-                    }
37
-                    reload = true;
38
-                }
39
-                params[i] = obj[i];
40
-            }
41
-            if (updateNavigation &&
42
-                    $('#pma_navigation_tree').hasClass('synced')
43
-            ) {
44
-                PMA_showCurrentNavigation();
45
-            }
46
-        },
47
-        /**
48
-         * Retrieves a value given its key
49
-         * Returns empty string for undefined values
50
-         *
51
-         * @param name string The key
52
-         *
53
-         * @return string
54
-         */
55
-        get: function (name) {
56
-            return params[name];
57
-        },
58
-        /**
59
-         * Saves a single key value pair
60
-         *
61
-         * @param name  string The key
62
-         * @param value string The value
63
-         *
64
-         * @return self For chainability
65
-         */
66
-        set: function (name, value) {
67
-            var updateNavigation = false;
68
-            if (name === 'db' || name === 'table' &&
69
-                params[name] !== value
70
-            ) {
71
-                updateNavigation = true;
72
-            }
73
-            params[name] = value;
74
-            if (updateNavigation &&
75
-                    $('#pma_navigation_tree').hasClass('synced')
76
-            ) {
77
-                PMA_showCurrentNavigation();
78
-            }
79
-            return this;
80
-        },
81
-        /**
82
-         * Returns the url query string using the saved parameters
83
-         *
84
-         * @return string
85
-         */
86
-        getUrlQuery: function () {
87
-            var common = this.get('common_query');
88
-            var separator = '?';
89
-            var argsep = PMA_commonParams.get('arg_separator');
90
-            if (common.length > 0) {
91
-                separator = argsep;
92
-            }
93
-            return PMA_sprintf(
94
-                '%s%sserver=%s' + argsep + 'db=%s' + argsep + 'table=%s',
95
-                this.get('common_query'),
96
-                separator,
97
-                encodeURIComponent(this.get('server')),
98
-                encodeURIComponent(this.get('db')),
99
-                encodeURIComponent(this.get('table'))
100
-            );
101
-        }
102
-    };
103
-}());
104
-
105
-/**
106
- * Holds common parameters such as server, db, table, etc
107
- *
108
- * The content for this is normally loaded from Header.php or
109
- * Response.php and executed by ajax.js
110
- */
111
-var PMA_commonActions = {
112
-    /**
113
-     * Saves the database name when it's changed
114
-     * and reloads the query window, if necessary
115
-     *
116
-     * @param new_db string new_db The name of the new database
117
-     *
118
-     * @return void
119
-     */
120
-    setDb: function (new_db) {
121
-        if (new_db !== PMA_commonParams.get('db')) {
122
-            PMA_commonParams.setAll({ 'db': new_db, 'table': '' });
123
-        }
124
-    },
125
-    /**
126
-     * Opens a database in the main part of the page
127
-     *
128
-     * @param new_db string The name of the new database
129
-     *
130
-     * @return void
131
-     */
132
-    openDb: function (new_db) {
133
-        PMA_commonParams
134
-            .set('db', new_db)
135
-            .set('table', '');
136
-        this.refreshMain(
137
-            PMA_commonParams.get('opendb_url')
138
-        );
139
-    },
140
-    /**
141
-     * Refreshes the main frame
142
-     *
143
-     * @param mixed url Undefined to refresh to the same page
144
-     *                  String to go to a different page, e.g: 'index.php'
145
-     *
146
-     * @return void
147
-     */
148
-    refreshMain: function (url, callback) {
149
-        if (! url) {
150
-            url = $('#selflink').find('a').attr('href') || window.location.pathname;
151
-            url = url.substring(0, url.indexOf('?'));
152
-        }
153
-        url += PMA_commonParams.getUrlQuery();
154
-        $('<a />', { href: url })
155
-            .appendTo('body')
156
-            .click()
157
-            .remove();
158
-        AJAX._callback = callback;
159
-    }
160
-};
161
-
162
-/**
163
- * Class to handle PMA Drag and Drop Import
164
- *      feature
165
- */
166
-PMA_DROP_IMPORT = {
167
-    /**
168
-     * @var int, count of total uploads in this view
169
-     */
170
-    uploadCount: 0,
171
-    /**
172
-     * @var int, count of live uploads
173
-     */
174
-    liveUploadCount: 0,
175
-    /**
176
-     * @var  string array, allowed extensions
177
-     */
178
-    allowedExtensions: ['sql', 'xml', 'ldi', 'mediawiki', 'shp'],
179
-    /**
180
-     * @var  string array, allowed extensions for compressed files
181
-     */
182
-    allowedCompressedExtensions: ['gz', 'bz2', 'zip'],
183
-    /**
184
-     * @var obj array to store message returned by import_status.php
185
-     */
186
-    importStatus: [],
187
-    /**
188
-     * Checks if any dropped file has valid extension or not
189
-     *
190
-     * @param file filename
191
-     *
192
-     * @return string, extension for valid extension, '' otherwise
193
-     */
194
-    _getExtension: function (file) {
195
-        var arr = file.split('.');
196
-        ext = arr[arr.length - 1];
197
-
198
-        // check if compressed
199
-        if (jQuery.inArray(ext.toLowerCase(),
200
-            PMA_DROP_IMPORT.allowedCompressedExtensions) !== -1) {
201
-            ext = arr[arr.length - 2];
202
-        }
203
-
204
-        // Now check for extension
205
-        if (jQuery.inArray(ext.toLowerCase(),
206
-            PMA_DROP_IMPORT.allowedExtensions) !== -1) {
207
-            return ext;
208
-        }
209
-        return '';
210
-    },
211
-    /**
212
-     * Shows upload progress for different sql uploads
213
-     *
214
-     * @param: hash (string), hash for specific file upload
215
-     * @param: percent (float), file upload percentage
216
-     *
217
-     * @return void
218
-     */
219
-    _setProgress: function (hash, percent) {
220
-        $('.pma_sql_import_status div li[data-hash="' + hash + '"]')
221
-            .children('progress').val(percent);
222
-    },
223
-    /**
224
-     * Function to upload the file asynchronously
225
-     *
226
-     * @param formData FormData object for a specific file
227
-     * @param hash hash of the current file upload
228
-     *
229
-     * @return void
230
-     */
231
-    _sendFileToServer: function (formData, hash) {
232
-        var uploadURL = './import.php'; // Upload URL
233
-        var extraData = {};
234
-        var jqXHR = $.ajax({
235
-            xhr: function () {
236
-                var xhrobj = $.ajaxSettings.xhr();
237
-                if (xhrobj.upload) {
238
-                    xhrobj.upload.addEventListener('progress', function (event) {
239
-                        var percent = 0;
240
-                        var position = event.loaded || event.position;
241
-                        var total = event.total;
242
-                        if (event.lengthComputable) {
243
-                            percent = Math.ceil(position / total * 100);
244
-                        }
245
-                        // Set progress
246
-                        PMA_DROP_IMPORT._setProgress(hash, percent);
247
-                    }, false);
248
-                }
249
-                return xhrobj;
250
-            },
251
-            url: uploadURL,
252
-            type: 'POST',
253
-            contentType:false,
254
-            processData: false,
255
-            cache: false,
256
-            data: formData,
257
-            success: function (data) {
258
-                PMA_DROP_IMPORT._importFinished(hash, false, data.success);
259
-                if (!data.success) {
260
-                    PMA_DROP_IMPORT.importStatus[PMA_DROP_IMPORT.importStatus.length] = {
261
-                        hash: hash,
262
-                        message: data.error
263
-                    };
264
-                }
265
-            }
266
-        });
267
-
268
-        // -- provide link to cancel the upload
269
-        $('.pma_sql_import_status div li[data-hash="' + hash +
270
-            '"] span.filesize').html('<span hash="' +
271
-            hash + '" class="pma_drop_file_status" task="cancel">' +
272
-            PMA_messages.dropImportMessageCancel + '</span>');
273
-
274
-        // -- add event listener to this link to abort upload operation
275
-        $('.pma_sql_import_status div li[data-hash="' + hash +
276
-            '"] span.filesize span.pma_drop_file_status')
277
-            .on('click', function () {
278
-                if ($(this).attr('task') === 'cancel') {
279
-                    jqXHR.abort();
280
-                    $(this).html('<span>' + PMA_messages.dropImportMessageAborted + '</span>');
281
-                    PMA_DROP_IMPORT._importFinished(hash, true, false);
282
-                } else if ($(this).children('span').html() ===
283
-                    PMA_messages.dropImportMessageFailed) {
284
-                    // -- view information
285
-                    var $this = $(this);
286
-                    $.each(PMA_DROP_IMPORT.importStatus,
287
-                        function (key, value) {
288
-                            if (value.hash === hash) {
289
-                                $('.pma_drop_result:visible').remove();
290
-                                var filename = $this.parent('span').attr('data-filename');
291
-                                $('body').append('<div class="pma_drop_result"><h2>' +
292
-                                PMA_messages.dropImportImportResultHeader + ' - ' +
293
-                                filename + '<span class="close">x</span></h2>' + value.message + '</div>');
294
-                                $('.pma_drop_result').draggable();  // to make this dialog draggable
295
-                            }
296
-                        });
297
-                }
298
-            });
299
-    },
300
-    /**
301
-     * Triggered when an object is dragged into the PMA UI
302
-     *
303
-     * @param event obj
304
-     *
305
-     * @return void
306
-     */
307
-    _dragenter : function (event) {
308
-        // We don't want to prevent users from using
309
-        // browser's default drag-drop feature on some page(s)
310
-        if ($('.noDragDrop').length !== 0) {
311
-            return;
312
-        }
313
-
314
-        event.stopPropagation();
315
-        event.preventDefault();
316
-        if (!PMA_DROP_IMPORT._hasFiles(event)) {
317
-            return;
318
-        }
319
-        if (PMA_commonParams.get('db') === '') {
320
-            $('.pma_drop_handler').html(PMA_messages.dropImportSelectDB);
321
-        } else {
322
-            $('.pma_drop_handler').html(PMA_messages.dropImportDropFiles);
323
-        }
324
-        $('.pma_drop_handler').fadeIn();
325
-    },
326
-    /**
327
-     * Check if dragged element contains Files
328
-     *
329
-     * @param event the event object
330
-     *
331
-     * @return bool
332
-     */
333
-    _hasFiles: function (event) {
334
-        return !(typeof event.originalEvent.dataTransfer.types === 'undefined' ||
335
-            $.inArray('Files', event.originalEvent.dataTransfer.types) < 0 ||
336
-            $.inArray(
337
-                'application/x-moz-nativeimage',
338
-                event.originalEvent.dataTransfer.types
339
-            ) >= 0);
340
-    },
341
-    /**
342
-     * Triggered when dragged file is being dragged over PMA UI
343
-     *
344
-     * @param event obj
345
-     *
346
-     * @return void
347
-     */
348
-    _dragover: function (event) {
349
-        // We don't want to prevent users from using
350
-        // browser's default drag-drop feature on some page(s)
351
-        if ($('.noDragDrop').length !== 0) {
352
-            return;
353
-        }
354
-
355
-        event.stopPropagation();
356
-        event.preventDefault();
357
-        if (!PMA_DROP_IMPORT._hasFiles(event)) {
358
-            return;
359
-        }
360
-        $('.pma_drop_handler').fadeIn();
361
-    },
362
-    /**
363
-     * Triggered when dragged objects are left
364
-     *
365
-     * @param event obj
366
-     *
367
-     * @return void
368
-     */
369
-    _dragleave: function (event) {
370
-        // We don't want to prevent users from using
371
-        // browser's default drag-drop feature on some page(s)
372
-        if ($('.noDragDrop').length !== 0) {
373
-            return;
374
-        }
375
-        event.stopPropagation();
376
-        event.preventDefault();
377
-        var $pma_drop_handler = $('.pma_drop_handler');
378
-        $pma_drop_handler.clearQueue().stop();
379
-        $pma_drop_handler.fadeOut();
380
-        $pma_drop_handler.html(PMA_messages.dropImportDropFiles);
381
-    },
382
-    /**
383
-     * Called when upload has finished
384
-     *
385
-     * @param string, unique hash for a certain upload
386
-     * @param bool, true if upload was aborted
387
-     * @param bool, status of sql upload, as sent by server
388
-     *
389
-     * @return void
390
-     */
391
-    _importFinished: function (hash, aborted, status) {
392
-        $('.pma_sql_import_status div li[data-hash="' + hash + '"]')
393
-            .children('progress').hide();
394
-        var icon = 'icon ic_s_success';
395
-        // -- provide link to view upload status
396
-        if (!aborted) {
397
-            if (status) {
398
-                $('.pma_sql_import_status div li[data-hash="' + hash +
399
-                   '"] span.filesize span.pma_drop_file_status')
400
-                    .html('<span>' + PMA_messages.dropImportMessageSuccess + '</a>');
401
-            } else {
402
-                $('.pma_sql_import_status div li[data-hash="' + hash +
403
-                   '"] span.filesize span.pma_drop_file_status')
404
-                    .html('<span class="underline">' + PMA_messages.dropImportMessageFailed +
405
-                   '</a>');
406
-                icon = 'icon ic_s_error';
407
-            }
408
-        } else {
409
-            icon = 'icon ic_s_notice';
410
-        }
411
-        $('.pma_sql_import_status div li[data-hash="' + hash +
412
-            '"] span.filesize span.pma_drop_file_status')
413
-            .attr('task', 'info');
414
-
415
-        // Set icon
416
-        $('.pma_sql_import_status div li[data-hash="' + hash + '"]')
417
-            .prepend('<img src="./themes/dot.gif" title="finished" class="' +
418
-            icon + '"> ');
419
-
420
-        // Decrease liveUploadCount by one
421
-        $('.pma_import_count').html(--PMA_DROP_IMPORT.liveUploadCount);
422
-        if (!PMA_DROP_IMPORT.liveUploadCount) {
423
-            $('.pma_sql_import_status h2 .close').fadeIn();
424
-        }
425
-    },
426
-    /**
427
-     * Triggered when dragged objects are dropped to UI
428
-     * From this function, the AJAX Upload operation is initiated
429
-     *
430
-     * @param event object
431
-     *
432
-     * @return void
433
-     */
434
-    _drop: function (event) {
435
-        // We don't want to prevent users from using
436
-        // browser's default drag-drop feature on some page(s)
437
-        if ($('.noDragDrop').length !== 0) {
438
-            return;
439
-        }
440
-
441
-        var dbname = PMA_commonParams.get('db');
442
-        var server = PMA_commonParams.get('server');
443
-
444
-        // if no database is selected -- no
445
-        if (dbname !== '') {
446
-            var files = event.originalEvent.dataTransfer.files;
447
-            if (!files || files.length === 0) {
448
-                // No files actually transferred
449
-                $('.pma_drop_handler').fadeOut();
450
-                event.stopPropagation();
451
-                event.preventDefault();
452
-                return;
453
-            }
454
-            $('.pma_sql_import_status').slideDown();
455
-            for (var i = 0; i < files.length; i++) {
456
-                var ext  = (PMA_DROP_IMPORT._getExtension(files[i].name));
457
-                var hash = AJAX.hash(++PMA_DROP_IMPORT.uploadCount);
458
-
459
-                var $pma_sql_import_status_div = $('.pma_sql_import_status div');
460
-                $pma_sql_import_status_div.append('<li data-hash="' + hash + '">' +
461
-                    ((ext !== '') ? '' : '<img src="./themes/dot.gif" title="invalid format" class="icon ic_s_notice"> ') +
462
-                    escapeHtml(files[i].name) + '<span class="filesize" data-filename="' +
463
-                    escapeHtml(files[i].name) + '">' + (files[i].size / 1024).toFixed(2) +
464
-                    ' kb</span></li>');
465
-
466
-                // scroll the UI to bottom
467
-                $pma_sql_import_status_div.scrollTop(
468
-                    $pma_sql_import_status_div.scrollTop() + 50
469
-                );  // 50 hardcoded for now
470
-
471
-                if (ext !== '') {
472
-                    // Increment liveUploadCount by one
473
-                    $('.pma_import_count').html(++PMA_DROP_IMPORT.liveUploadCount);
474
-                    $('.pma_sql_import_status h2 .close').fadeOut();
475
-
476
-                    $('.pma_sql_import_status div li[data-hash="' + hash + '"]')
477
-                        .append('<br><progress max="100" value="2"></progress>');
478
-
479
-                    // uploading
480
-                    var fd = new FormData();
481
-                    fd.append('import_file', files[i]);
482
-                    fd.append('noplugin', Math.random().toString(36).substring(2, 12));
483
-                    fd.append('db', dbname);
484
-                    fd.append('server', server);
485
-                    fd.append('token', PMA_commonParams.get('token'));
486
-                    fd.append('import_type', 'database');
487
-                    // todo: method to find the value below
488
-                    fd.append('MAX_FILE_SIZE', '4194304');
489
-                    // todo: method to find the value below
490
-                    fd.append('charset_of_file','utf-8');
491
-                    // todo: method to find the value below
492
-                    fd.append('allow_interrupt', 'yes');
493
-                    fd.append('skip_queries', '0');
494
-                    fd.append('format',ext);
495
-                    fd.append('sql_compatibility','NONE');
496
-                    fd.append('sql_no_auto_value_on_zero','something');
497
-                    fd.append('ajax_request','true');
498
-                    fd.append('hash', hash);
499
-
500
-                    // init uploading
501
-                    PMA_DROP_IMPORT._sendFileToServer(fd, hash);
502
-                } else if (!PMA_DROP_IMPORT.liveUploadCount) {
503
-                    $('.pma_sql_import_status h2 .close').fadeIn();
504
-                }
505
-            }
506
-        }
507
-        $('.pma_drop_handler').fadeOut();
508
-        event.stopPropagation();
509
-        event.preventDefault();
510
-    }
511
-};
512
-
513
-/**
514
- * Called when some user drags, dragover, leave
515
- *       a file to the PMA UI
516
- * @param object Event data
517
- * @return void
518
- */
519
-$(document).on('dragenter', PMA_DROP_IMPORT._dragenter);
520
-$(document).on('dragover', PMA_DROP_IMPORT._dragover);
521
-$(document).on('dragleave', '.pma_drop_handler', PMA_DROP_IMPORT._dragleave);
522
-
523
-// when file is dropped to PMA UI
524
-$(document).on('drop', 'body', PMA_DROP_IMPORT._drop);
525
-
526
-// minimizing-maximising the sql ajax upload status
527
-$(document).on('click', '.pma_sql_import_status h2 .minimize', function () {
528
-    if ($(this).attr('toggle') === 'off') {
529
-        $('.pma_sql_import_status div').css('height','270px');
530
-        $(this).attr('toggle','on');
531
-        $(this).html('-');  // to minimize
532
-    } else {
533
-        $('.pma_sql_import_status div').css('height','0px');
534
-        $(this).attr('toggle','off');
535
-        $(this).html('+');  // to maximise
536
-    }
537
-});
538
-
539
-// closing sql ajax upload status
540
-$(document).on('click', '.pma_sql_import_status h2 .close', function () {
541
-    $('.pma_sql_import_status').fadeOut(function () {
542
-        $('.pma_sql_import_status div').html('');
543
-        PMA_DROP_IMPORT.importStatus = [];  // clear the message array
544
-    });
545
-});
546
-
547
-// Closing the import result box
548
-$(document).on('click', '.pma_drop_result h2 .close', function () {
549
-    $(this).parent('h2').parent('div').remove();
550
-});

+ 0
- 886
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/config.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * Functions used in configuration forms and on user preferences pages
4
- */
5
-
6
-/**
7
- * checks whether browser supports web storage
8
- *
9
- * @param type the type of storage i.e. localStorage or sessionStorage
10
- *
11
- * @returns bool
12
- */
13
-function isStorageSupported (type, warn) {
14
-    try {
15
-        window[type].setItem('PMATest', 'test');
16
-        // Check whether key-value pair was set successfully
17
-        if (window[type].getItem('PMATest') === 'test') {
18
-            // Supported, remove test variable from storage
19
-            window[type].removeItem('PMATest');
20
-            return true;
21
-        }
22
-    } catch (error) {
23
-        // Not supported
24
-        if (warn) {
25
-            PMA_ajaxShowMessage(PMA_messages.strNoLocalStorage, false);
26
-        }
27
-    }
28
-    return false;
29
-}
30
-
31
-/**
32
- * Unbind all event handlers before tearing down a page
33
- */
34
-AJAX.registerTeardown('config.js', function () {
35
-    $('.optbox input[id], .optbox select[id], .optbox textarea[id]').off('change').off('keyup');
36
-    $('.optbox input[type=button][name=submit_reset]').off('click');
37
-    $('div.tabs_contents').off();
38
-    $('#import_local_storage, #export_local_storage').off('click');
39
-    $('form.prefs-form').off('change').off('submit');
40
-    $(document).off('click', 'div.click-hide-message');
41
-    $('#prefs_autoload').find('a').off('click');
42
-});
43
-
44
-AJAX.registerOnload('config.js', function () {
45
-    var $topmenu_upt = $('#topmenu2.user_prefs_tabs');
46
-    $topmenu_upt.find('li.active a').attr('rel', 'samepage');
47
-    $topmenu_upt.find('li:not(.active) a').attr('rel', 'newpage');
48
-});
49
-
50
-// default values for fields
51
-var defaultValues = {};
52
-
53
-/**
54
- * Returns field type
55
- *
56
- * @param {Element} field
57
- */
58
-function getFieldType (field) {
59
-    var $field = $(field);
60
-    var tagName = $field.prop('tagName');
61
-    if (tagName === 'INPUT') {
62
-        return $field.attr('type');
63
-    } else if (tagName === 'SELECT') {
64
-        return 'select';
65
-    } else if (tagName === 'TEXTAREA') {
66
-        return 'text';
67
-    }
68
-    return '';
69
-}
70
-
71
-/**
72
- * Enables or disables the "restore default value" button
73
- *
74
- * @param {Element} field
75
- * @param {boolean} display
76
- */
77
-function setRestoreDefaultBtn (field, display) {
78
-    var $el = $(field).closest('td').find('.restore-default img');
79
-    $el[display ? 'show' : 'hide']();
80
-}
81
-
82
-/**
83
- * Marks field depending on its value (system default or custom)
84
- *
85
- * @param {Element} field
86
- */
87
-function markField (field) {
88
-    var $field = $(field);
89
-    var type = getFieldType($field);
90
-    var isDefault = checkFieldDefault($field, type);
91
-
92
-    // checkboxes uses parent <span> for marking
93
-    var $fieldMarker = (type === 'checkbox') ? $field.parent() : $field;
94
-    setRestoreDefaultBtn($field, !isDefault);
95
-    $fieldMarker[isDefault ? 'removeClass' : 'addClass']('custom');
96
-}
97
-
98
-/**
99
- * Sets field value
100
- *
101
- * value must be of type:
102
- * o undefined (omitted) - restore default value (form default, not PMA default)
103
- * o String - if field_type is 'text'
104
- * o boolean - if field_type is 'checkbox'
105
- * o Array of values - if field_type is 'select'
106
- *
107
- * @param {Element} field
108
- * @param {String}  field_type  see {@link #getFieldType}
109
- * @param {String|Boolean}  value
110
- */
111
-function setFieldValue (field, field_type, value) {
112
-    var $field = $(field);
113
-    switch (field_type) {
114
-    case 'text':
115
-    case 'number':
116
-        $field.val(value);
117
-        break;
118
-    case 'checkbox':
119
-        $field.prop('checked', value);
120
-        break;
121
-    case 'select':
122
-        var options = $field.prop('options');
123
-        var i;
124
-        var imax = options.length;
125
-        var i, imax = options.length;
126
-        for (i = 0; i < imax; i++) {
127
-            options[i].selected = (value.indexOf(options[i].value) != -1);
128
-        }
129
-        break;
130
-    }
131
-    markField($field);
132
-}
133
-
134
-/**
135
- * Gets field value
136
- *
137
- * Will return one of:
138
- * o String - if type is 'text'
139
- * o boolean - if type is 'checkbox'
140
- * o Array of values - if type is 'select'
141
- *
142
- * @param {Element} field
143
- * @param {String}  field_type returned by {@link #getFieldType}
144
- * @type Boolean|String|String[]
145
- */
146
-function getFieldValue (field, field_type) {
147
-    var $field = $(field);
148
-    switch (field_type) {
149
-    case 'text':
150
-    case 'number':
151
-        return $field.prop('value');
152
-    case 'checkbox':
153
-        return $field.prop('checked');
154
-    case 'select':
155
-        var options = $field.prop('options');
156
-        var i;
157
-        var imax = options.length;
158
-        var items = [];
159
-        for (i = 0; i < imax; i++) {
160
-            if (options[i].selected) {
161
-                items.push(options[i].value);
162
-            }
163
-        }
164
-        return items;
165
-    }
166
-    return null;
167
-}
168
-
169
-/**
170
- * Returns values for all fields in fieldsets
171
- */
172
-function getAllValues () {
173
-    var $elements = $('fieldset input, fieldset select, fieldset textarea');
174
-    var values = {};
175
-    var type;
176
-    var value;
177
-    for (var i = 0; i < $elements.length; i++) {
178
-        type = getFieldType($elements[i]);
179
-        value = getFieldValue($elements[i], type);
180
-        if (typeof value !== 'undefined') {
181
-            // we only have single selects, fatten array
182
-            if (type === 'select') {
183
-                value = value[0];
184
-            }
185
-            values[$elements[i].name] = value;
186
-        }
187
-    }
188
-    return values;
189
-}
190
-
191
-/**
192
- * Checks whether field has its default value
193
- *
194
- * @param {Element} field
195
- * @param {String}  type
196
- * @return boolean
197
- */
198
-function checkFieldDefault (field, type) {
199
-    var $field = $(field);
200
-    var field_id = $field.attr('id');
201
-    if (typeof defaultValues[field_id] === 'undefined') {
202
-        return true;
203
-    }
204
-    var isDefault = true;
205
-    var currentValue = getFieldValue($field, type);
206
-    if (type !== 'select') {
207
-        isDefault = currentValue === defaultValues[field_id];
208
-    } else {
209
-        // compare arrays, will work for our representation of select values
210
-        if (currentValue.length !== defaultValues[field_id].length) {
211
-            isDefault = false;
212
-        } else {
213
-            for (var i = 0; i < currentValue.length; i++) {
214
-                if (currentValue[i] !== defaultValues[field_id][i]) {
215
-                    isDefault = false;
216
-                    break;
217
-                }
218
-            }
219
-        }
220
-    }
221
-    return isDefault;
222
-}
223
-
224
-/**
225
- * Returns element's id prefix
226
- * @param {Element} element
227
- */
228
-function getIdPrefix (element) {
229
-    return $(element).attr('id').replace(/[^-]+$/, '');
230
-}
231
-
232
-// ------------------------------------------------------------------
233
-// Form validation and field operations
234
-//
235
-
236
-// form validator assignments
237
-var validate = {};
238
-
239
-// form validator list
240
-var validators = {
241
-    // regexp: numeric value
242
-    _regexp_numeric: /^[0-9]+$/,
243
-    // regexp: extract parts from PCRE expression
244
-    _regexp_pcre_extract: /(.)(.*)\1(.*)?/,
245
-    /**
246
-     * Validates positive number
247
-     *
248
-     * @param {boolean} isKeyUp
249
-     */
250
-    PMA_validatePositiveNumber: function (isKeyUp) {
251
-        if (isKeyUp && this.value === '') {
252
-            return true;
253
-        }
254
-        var result = this.value !== '0' && validators._regexp_numeric.test(this.value);
255
-        return result ? true : PMA_messages.error_nan_p;
256
-    },
257
-    /**
258
-     * Validates non-negative number
259
-     *
260
-     * @param {boolean} isKeyUp
261
-     */
262
-    PMA_validateNonNegativeNumber: function (isKeyUp) {
263
-        if (isKeyUp && this.value === '') {
264
-            return true;
265
-        }
266
-        var result = validators._regexp_numeric.test(this.value);
267
-        return result ? true : PMA_messages.error_nan_nneg;
268
-    },
269
-    /**
270
-     * Validates port number
271
-     *
272
-     * @param {boolean} isKeyUp
273
-     */
274
-    PMA_validatePortNumber: function (isKeyUp) {
275
-        if (this.value === '') {
276
-            return true;
277
-        }
278
-        var result = validators._regexp_numeric.test(this.value) && this.value !== '0';
279
-        return result && this.value <= 65535 ? true : PMA_messages.error_incorrect_port;
280
-    },
281
-    /**
282
-     * Validates value according to given regular expression
283
-     *
284
-     * @param {boolean} isKeyUp
285
-     * @param {string}  regexp
286
-     */
287
-    PMA_validateByRegex: function (isKeyUp, regexp) {
288
-        if (isKeyUp && this.value === '') {
289
-            return true;
290
-        }
291
-        // convert PCRE regexp
292
-        var parts = regexp.match(validators._regexp_pcre_extract);
293
-        var valid = this.value.match(new RegExp(parts[2], parts[3])) !== null;
294
-        return valid ? true : PMA_messages.error_invalid_value;
295
-    },
296
-    /**
297
-     * Validates upper bound for numeric inputs
298
-     *
299
-     * @param {boolean} isKeyUp
300
-     * @param {int} max_value
301
-     */
302
-    PMA_validateUpperBound: function (isKeyUp, max_value) {
303
-        var val = parseInt(this.value, 10);
304
-        if (isNaN(val)) {
305
-            return true;
306
-        }
307
-        return val <= max_value ? true : PMA_sprintf(PMA_messages.error_value_lte, max_value);
308
-    },
309
-    // field validators
310
-    _field: {
311
-    },
312
-    // fieldset validators
313
-    _fieldset: {
314
-    }
315
-};
316
-
317
-/**
318
- * Registers validator for given field
319
- *
320
- * @param {String}  id       field id
321
- * @param {String}  type     validator (key in validators object)
322
- * @param {boolean} onKeyUp  whether fire on key up
323
- * @param {Array}   params   validation function parameters
324
- */
325
-function validateField (id, type, onKeyUp, params) {
326
-    if (typeof validators[type] === 'undefined') {
327
-        return;
328
-    }
329
-    if (typeof validate[id] === 'undefined') {
330
-        validate[id] = [];
331
-    }
332
-    if (validate[id].length === 0) {
333
-        validate[id].push([type, params, onKeyUp]);
334
-    }
335
-}
336
-
337
-/**
338
- * Returns validation functions associated with form field
339
- *
340
- * @param {String}  field_id     form field id
341
- * @param {boolean} onKeyUpOnly  see validateField
342
- * @type Array
343
- * @return array of [function, parameters to be passed to function]
344
- */
345
-function getFieldValidators (field_id, onKeyUpOnly) {
346
-    // look for field bound validator
347
-    var name = field_id && field_id.match(/[^-]+$/)[0];
348
-    if (typeof validators._field[name] !== 'undefined') {
349
-        return [[validators._field[name], null]];
350
-    }
351
-
352
-    // look for registered validators
353
-    var functions = [];
354
-    if (typeof validate[field_id] !== 'undefined') {
355
-        // validate[field_id]: array of [type, params, onKeyUp]
356
-        for (var i = 0, imax = validate[field_id].length; i < imax; i++) {
357
-            if (onKeyUpOnly && !validate[field_id][i][2]) {
358
-                continue;
359
-            }
360
-            functions.push([validators[validate[field_id][i][0]], validate[field_id][i][1]]);
361
-        }
362
-    }
363
-
364
-    return functions;
365
-}
366
-
367
-/**
368
- * Displays errors for given form fields
369
- *
370
- * WARNING: created DOM elements must be identical with the ones made by
371
- * PhpMyAdmin\Config\FormDisplayTemplate::displayInput()!
372
- *
373
- * @param {Object} error_list list of errors in the form {field id: error array}
374
- */
375
-function displayErrors (error_list) {
376
-    var tempIsEmpty = function (item) {
377
-        return item !== '';
378
-    };
379
-
380
-    for (var field_id in error_list) {
381
-        var errors = error_list[field_id];
382
-        var $field = $('#' + field_id);
383
-        var isFieldset = $field.attr('tagName') === 'FIELDSET';
384
-        var $errorCnt;
385
-        if (isFieldset) {
386
-            $errorCnt = $field.find('dl.errors');
387
-        } else {
388
-            $errorCnt = $field.siblings('.inline_errors');
389
-        }
390
-
391
-        // remove empty errors (used to clear error list)
392
-        errors = $.grep(errors, tempIsEmpty);
393
-
394
-        // CSS error class
395
-        if (!isFieldset) {
396
-            // checkboxes uses parent <span> for marking
397
-            var $fieldMarker = ($field.attr('type') === 'checkbox') ? $field.parent() : $field;
398
-            $fieldMarker[errors.length ? 'addClass' : 'removeClass']('field-error');
399
-        }
400
-
401
-        if (errors.length) {
402
-            // if error container doesn't exist, create it
403
-            if ($errorCnt.length === 0) {
404
-                if (isFieldset) {
405
-                    $errorCnt = $('<dl class="errors" />');
406
-                    $field.find('table').before($errorCnt);
407
-                } else {
408
-                    $errorCnt = $('<dl class="inline_errors" />');
409
-                    $field.closest('td').append($errorCnt);
410
-                }
411
-            }
412
-
413
-            var html = '';
414
-            for (var i = 0, imax = errors.length; i < imax; i++) {
415
-                html += '<dd>' + errors[i] + '</dd>';
416
-            }
417
-            $errorCnt.html(html);
418
-        } else if ($errorCnt !== null) {
419
-            // remove useless error container
420
-            $errorCnt.remove();
421
-        }
422
-    }
423
-}
424
-
425
-/**
426
- * Validates fields and fieldsets and call displayError function as required
427
- */
428
-function setDisplayError() {
429
-    var elements = $('.optbox input[id], .optbox select[id], .optbox textarea[id]');
430
-    // run all field validators
431
-    var errors = {};
432
-    for (var i = 0; i < elements.length; i++) {
433
-        validate_field(elements[i], false, errors);
434
-    }
435
-    // run all fieldset validators
436
-    $('fieldset.optbox').each(function () {
437
-        validate_fieldset(this, false, errors);
438
-    });
439
-    displayErrors(errors);
440
-}
441
-
442
-/**
443
- * Validates fieldset and puts errors in 'errors' object
444
- *
445
- * @param {Element} fieldset
446
- * @param {boolean} isKeyUp
447
- * @param {Object}  errors
448
- */
449
-function validate_fieldset (fieldset, isKeyUp, errors) {
450
-    var $fieldset = $(fieldset);
451
-    if ($fieldset.length && typeof validators._fieldset[$fieldset.attr('id')] !== 'undefined') {
452
-        var fieldset_errors = validators._fieldset[$fieldset.attr('id')].apply($fieldset[0], [isKeyUp]);
453
-        for (var field_id in fieldset_errors) {
454
-            if (typeof errors[field_id] === 'undefined') {
455
-                errors[field_id] = [];
456
-            }
457
-            if (typeof fieldset_errors[field_id] === 'string') {
458
-                fieldset_errors[field_id] = [fieldset_errors[field_id]];
459
-            }
460
-            $.merge(errors[field_id], fieldset_errors[field_id]);
461
-        }
462
-    }
463
-}
464
-
465
-/**
466
- * Validates form field and puts errors in 'errors' object
467
- *
468
- * @param {Element} field
469
- * @param {boolean} isKeyUp
470
- * @param {Object}  errors
471
- */
472
-function validate_field (field, isKeyUp, errors) {
473
-    var args;
474
-    var result;
475
-    var $field = $(field);
476
-    var field_id = $field.attr('id');
477
-    errors[field_id] = [];
478
-    var functions = getFieldValidators(field_id, isKeyUp);
479
-    for (var i = 0; i < functions.length; i++) {
480
-        if (typeof functions[i][1] !== 'undefined' && functions[i][1] !== null) {
481
-            args = functions[i][1].slice(0);
482
-        } else {
483
-            args = [];
484
-        }
485
-        args.unshift(isKeyUp);
486
-        result = functions[i][0].apply($field[0], args);
487
-        if (result !== true) {
488
-            if (typeof result === 'string') {
489
-                result = [result];
490
-            }
491
-            $.merge(errors[field_id], result);
492
-        }
493
-    }
494
-}
495
-
496
-/**
497
- * Validates form field and parent fieldset
498
- *
499
- * @param {Element} field
500
- * @param {boolean} isKeyUp
501
- */
502
-function validate_field_and_fieldset (field, isKeyUp) {
503
-    var $field = $(field);
504
-    var errors = {};
505
-    validate_field($field, isKeyUp, errors);
506
-    validate_fieldset($field.closest('fieldset.optbox'), isKeyUp, errors);
507
-    displayErrors(errors);
508
-}
509
-
510
-function loadInlineConfig () {
511
-    if (!Array.isArray(configInlineParams)) {
512
-        return;
513
-    }
514
-    for (var i = 0; i < configInlineParams.length; ++i) {
515
-        if (typeof configInlineParams[i] === 'function') {
516
-            configInlineParams[i]();
517
-        }
518
-    }
519
-}
520
-
521
-function setupValidation () {
522
-    validate = {};
523
-    configScriptLoaded = true;
524
-    if (configScriptLoaded && typeof configInlineParams !== 'undefined') {
525
-        loadInlineConfig();
526
-    }
527
-    // register validators and mark custom values
528
-    var $elements = $('.optbox input[id], .optbox select[id], .optbox textarea[id]');
529
-    $elements.each(function () {
530
-        markField(this);
531
-        var $el = $(this);
532
-        $el.on('change', function () {
533
-            validate_field_and_fieldset(this, false);
534
-            markField(this);
535
-        });
536
-        var tagName = $el.attr('tagName');
537
-        // text fields can be validated after each change
538
-        if (tagName === 'INPUT' && $el.attr('type') === 'text') {
539
-            $el.keyup(function () {
540
-                validate_field_and_fieldset($el, true);
541
-                markField($el);
542
-            });
543
-        }
544
-        // disable textarea spellcheck
545
-        if (tagName === 'TEXTAREA') {
546
-            $el.attr('spellcheck', false);
547
-        }
548
-    });
549
-
550
-    // check whether we've refreshed a page and browser remembered modified
551
-    // form values
552
-    var $check_page_refresh = $('#check_page_refresh');
553
-    if ($check_page_refresh.length === 0 || $check_page_refresh.val() === '1') {
554
-        // run all field validators
555
-        var errors = {};
556
-        for (var i = 0; i < $elements.length; i++) {
557
-            validate_field($elements[i], false, errors);
558
-        }
559
-        // run all fieldset validators
560
-        $('fieldset.optbox').each(function () {
561
-            validate_fieldset(this, false, errors);
562
-        });
563
-
564
-        displayErrors(errors);
565
-    } else if ($check_page_refresh) {
566
-        $check_page_refresh.val('1');
567
-    }
568
-}
569
-
570
-AJAX.registerOnload('config.js', function () {
571
-    setupValidation();
572
-});
573
-
574
-//
575
-// END: Form validation and field operations
576
-// ------------------------------------------------------------------
577
-
578
-// ------------------------------------------------------------------
579
-// Tabbed forms
580
-//
581
-
582
-/**
583
- * Sets active tab
584
- *
585
- * @param {String} tab_id
586
- */
587
-function setTab (tab_id) {
588
-    $('ul.tabs').each(function () {
589
-        var $this = $(this);
590
-        if (!$this.find('li a[href="#' + tab_id + '"]').length) {
591
-            return;
592
-        }
593
-        $this.find('li').removeClass('active').find('a[href="#' + tab_id + '"]').parent().addClass('active');
594
-        $this.parent().find('div.tabs_contents fieldset').hide().filter('#' + tab_id).show();
595
-        var hashValue = 'tab_' + tab_id;
596
-        location.hash = hashValue;
597
-        $this.parent().find('input[name=tab_hash]').val(hashValue);
598
-    });
599
-}
600
-
601
-function setupConfigTabs () {
602
-    var forms = $('form.config-form');
603
-    forms.each(function () {
604
-        var $this = $(this);
605
-        var $tabs = $this.find('ul.tabs');
606
-        if (!$tabs.length) {
607
-            return;
608
-        }
609
-        // add tabs events and activate one tab (the first one or indicated by location hash)
610
-        $tabs.find('li').removeClass('active');
611
-        $tabs.find('a')
612
-            .click(function (e) {
613
-                e.preventDefault();
614
-                setTab($(this).attr('href').substr(1));
615
-            })
616
-            .filter(':first')
617
-            .parent()
618
-            .addClass('active');
619
-        $this.find('div.tabs_contents fieldset').hide().filter(':first').show();
620
-    });
621
-}
622
-
623
-function adjustPrefsNotification () {
624
-    var $prefsAutoLoad = $('#prefs_autoload');
625
-    var $tableNameControl = $('#table_name_col_no');
626
-    var $prefsAutoShowing = ($prefsAutoLoad.css('display') !== 'none');
627
-
628
-    if ($prefsAutoShowing && $tableNameControl.length) {
629
-        $tableNameControl.css('top', '55px');
630
-    }
631
-}
632
-
633
-AJAX.registerOnload('config.js', function () {
634
-    setupConfigTabs();
635
-    adjustPrefsNotification();
636
-
637
-    // tab links handling, check each 200ms
638
-    // (works with history in FF, further browser support here would be an overkill)
639
-    var prev_hash;
640
-    var tab_check_fnc = function () {
641
-        if (location.hash !== prev_hash) {
642
-            prev_hash = location.hash;
643
-            if (prev_hash.match(/^#tab_[a-zA-Z0-9_]+$/)) {
644
-                // session ID is sometimes appended here
645
-                var hash = prev_hash.substr(5).split('&')[0];
646
-                if ($('#' + hash).length) {
647
-                    setTab(hash);
648
-                }
649
-            }
650
-        }
651
-    };
652
-    tab_check_fnc();
653
-    setInterval(tab_check_fnc, 200);
654
-});
655
-
656
-//
657
-// END: Tabbed forms
658
-// ------------------------------------------------------------------
659
-
660
-// ------------------------------------------------------------------
661
-// Form reset buttons
662
-//
663
-
664
-AJAX.registerOnload('config.js', function () {
665
-    $('.optbox input[type=button][name=submit_reset]').on('click', function () {
666
-        var fields = $(this).closest('fieldset').find('input, select, textarea');
667
-        for (var i = 0, imax = fields.length; i < imax; i++) {
668
-            setFieldValue(fields[i], getFieldType(fields[i]), defaultValues[fields[i].id]);
669
-        }
670
-        setDisplayError();
671
-    });
672
-});
673
-
674
-//
675
-// END: Form reset buttons
676
-// ------------------------------------------------------------------
677
-
678
-// ------------------------------------------------------------------
679
-// "Restore default" and "set value" buttons
680
-//
681
-
682
-/**
683
- * Restores field's default value
684
- *
685
- * @param {String} field_id
686
- */
687
-function restoreField (field_id) {
688
-    var $field = $('#' + field_id);
689
-    if ($field.length === 0 || defaultValues[field_id] === undefined) {
690
-        return;
691
-    }
692
-    setFieldValue($field, getFieldType($field), defaultValues[field_id]);
693
-}
694
-
695
-function setupRestoreField () {
696
-    $('div.tabs_contents')
697
-        .on('mouseenter', '.restore-default, .set-value', function () {
698
-            $(this).css('opacity', 1);
699
-        })
700
-        .on('mouseleave', '.restore-default, .set-value', function () {
701
-            $(this).css('opacity', 0.25);
702
-        })
703
-        .on('click', '.restore-default, .set-value', function (e) {
704
-            e.preventDefault();
705
-            var href = $(this).attr('href');
706
-            var field_sel;
707
-            if ($(this).hasClass('restore-default')) {
708
-                field_sel = href;
709
-                restoreField(field_sel.substr(1));
710
-            } else {
711
-                field_sel = href.match(/^[^=]+/)[0];
712
-                var value = href.match(/\=(.+)$/)[1];
713
-                setFieldValue($(field_sel), 'text', value);
714
-            }
715
-            $(field_sel).trigger('change');
716
-        })
717
-        .find('.restore-default, .set-value')
718
-        // inline-block for IE so opacity inheritance works
719
-        .css({ display: 'inline-block', opacity: 0.25 });
720
-}
721
-
722
-AJAX.registerOnload('config.js', function () {
723
-    setupRestoreField();
724
-});
725
-
726
-//
727
-// END: "Restore default" and "set value" buttons
728
-// ------------------------------------------------------------------
729
-
730
-// ------------------------------------------------------------------
731
-// User preferences import/export
732
-//
733
-
734
-AJAX.registerOnload('config.js', function () {
735
-    offerPrefsAutoimport();
736
-    var $radios = $('#import_local_storage, #export_local_storage');
737
-    if (!$radios.length) {
738
-        return;
739
-    }
740
-
741
-    // enable JavaScript dependent fields
742
-    $radios
743
-        .prop('disabled', false)
744
-        .add('#export_text_file, #import_text_file')
745
-        .click(function () {
746
-            var enable_id = $(this).attr('id');
747
-            var disable_id;
748
-            if (enable_id.match(/local_storage$/)) {
749
-                disable_id = enable_id.replace(/local_storage$/, 'text_file');
750
-            } else {
751
-                disable_id = enable_id.replace(/text_file$/, 'local_storage');
752
-            }
753
-            $('#opts_' + disable_id).addClass('disabled').find('input').prop('disabled', true);
754
-            $('#opts_' + enable_id).removeClass('disabled').find('input').prop('disabled', false);
755
-        });
756
-
757
-    // detect localStorage state
758
-    var ls_supported = isStorageSupported('localStorage', true);
759
-    var ls_exists = ls_supported ? (window.localStorage.config || false) : false;
760
-    $('div.localStorage-' + (ls_supported ? 'un' : '') + 'supported').hide();
761
-    $('div.localStorage-' + (ls_exists ? 'empty' : 'exists')).hide();
762
-    if (ls_exists) {
763
-        updatePrefsDate();
764
-    }
765
-    $('form.prefs-form').change(function () {
766
-        var $form = $(this);
767
-        var disabled = false;
768
-        if (!ls_supported) {
769
-            disabled = $form.find('input[type=radio][value$=local_storage]').prop('checked');
770
-        } else if (!ls_exists && $form.attr('name') === 'prefs_import' &&
771
-            $('#import_local_storage')[0].checked
772
-        ) {
773
-            disabled = true;
774
-        }
775
-        $form.find('input[type=submit]').prop('disabled', disabled);
776
-    }).submit(function (e) {
777
-        var $form = $(this);
778
-        if ($form.attr('name') === 'prefs_export' && $('#export_local_storage')[0].checked) {
779
-            e.preventDefault();
780
-            // use AJAX to read JSON settings and save them
781
-            savePrefsToLocalStorage($form);
782
-        } else if ($form.attr('name') === 'prefs_import' && $('#import_local_storage')[0].checked) {
783
-            // set 'json' input and submit form
784
-            $form.find('input[name=json]').val(window.localStorage.config);
785
-        }
786
-    });
787
-
788
-    $(document).on('click', 'div.click-hide-message', function () {
789
-        $(this)
790
-            .hide()
791
-            .parent('.group')
792
-            .css('height', '')
793
-            .next('form')
794
-            .show();
795
-    });
796
-});
797
-
798
-/**
799
- * Saves user preferences to localStorage
800
- *
801
- * @param {Element} form
802
- */
803
-function savePrefsToLocalStorage (form) {
804
-    $form = $(form);
805
-    var submit = $form.find('input[type=submit]');
806
-    submit.prop('disabled', true);
807
-    $.ajax({
808
-        url: 'prefs_manage.php',
809
-        cache: false,
810
-        type: 'POST',
811
-        data: {
812
-            ajax_request: true,
813
-            server: PMA_commonParams.get('server'),
814
-            submit_get_json: true
815
-        },
816
-        success: function (data) {
817
-            if (typeof data !== 'undefined' && data.success === true) {
818
-                window.localStorage.config = data.prefs;
819
-                window.localStorage.config_mtime = data.mtime;
820
-                window.localStorage.config_mtime_local = (new Date()).toUTCString();
821
-                updatePrefsDate();
822
-                $('div.localStorage-empty').hide();
823
-                $('div.localStorage-exists').show();
824
-                var group = $form.parent('.group');
825
-                group.css('height', group.height() + 'px');
826
-                $form.hide('fast');
827
-                $form.prev('.click-hide-message').show('fast');
828
-            } else {
829
-                PMA_ajaxShowMessage(data.error);
830
-            }
831
-        },
832
-        complete: function () {
833
-            submit.prop('disabled', false);
834
-        }
835
-    });
836
-}
837
-
838
-/**
839
- * Updates preferences timestamp in Import form
840
- */
841
-function updatePrefsDate () {
842
-    var d = new Date(window.localStorage.config_mtime_local);
843
-    var msg = PMA_messages.strSavedOn.replace(
844
-        '@DATE@',
845
-        PMA_formatDateTime(d)
846
-    );
847
-    $('#opts_import_local_storage').find('div.localStorage-exists').html(msg);
848
-}
849
-
850
-/**
851
- * Prepares message which informs that localStorage preferences are available and can be imported or deleted
852
- */
853
-function offerPrefsAutoimport () {
854
-    var has_config = (isStorageSupported('localStorage')) && (window.localStorage.config || false);
855
-    var $cnt = $('#prefs_autoload');
856
-    if (!$cnt.length || !has_config) {
857
-        return;
858
-    }
859
-    $cnt.find('a').click(function (e) {
860
-        e.preventDefault();
861
-        var $a = $(this);
862
-        if ($a.attr('href') === '#no') {
863
-            $cnt.remove();
864
-            $.post('index.php', {
865
-                server: PMA_commonParams.get('server'),
866
-                prefs_autoload: 'hide'
867
-            }, null, 'html');
868
-            return;
869
-        } else if ($a.attr('href') === '#delete') {
870
-            $cnt.remove();
871
-            localStorage.clear();
872
-            $.post('index.php', {
873
-                server: PMA_commonParams.get('server'),
874
-                prefs_autoload: 'hide'
875
-            }, null, 'html');
876
-            return;
877
-        }
878
-        $cnt.find('input[name=json]').val(window.localStorage.config);
879
-        $cnt.find('form').submit();
880
-    });
881
-    $cnt.show();
882
-}
883
-
884
-//
885
-// END: User preferences import/export
886
-// ------------------------------------------------------------------

+ 0
- 1495
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/console.js
File diff suppressed because it is too large
View File


+ 0
- 14
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/cross_framing_protection.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * Conditionally included if framing is not allowed
4
- */
5
-if (self === top) {
6
-    var style_element = document.getElementById('cfs-style');
7
-    // check if style_element has already been removed
8
-    // to avoid frequently reported js error
9
-    if (typeof(style_element) !== 'undefined' && style_element !== null) {
10
-        style_element.parentNode.removeChild(style_element);
11
-    }
12
-} else {
13
-    top.location = self.location;
14
-}

+ 0
- 365
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/doclinks.js View File

1
-/**
2
- * Definition of links to MySQL documentation.
3
- */
4
-
5
-var mysql_doc_keyword = {
6
-    /* Multi word */
7
-    'CHARACTER SET': Array('charset'),
8
-    'SHOW AUTHORS': Array('show-authors'),
9
-    'SHOW BINARY LOGS': Array('show-binary-logs'),
10
-    'SHOW BINLOG EVENTS': Array('show-binlog-events'),
11
-    'SHOW CHARACTER SET': Array('show-character-set'),
12
-    'SHOW COLLATION': Array('show-collation'),
13
-    'SHOW COLUMNS': Array('show-columns'),
14
-    'SHOW CONTRIBUTORS': Array('show-contributors'),
15
-    'SHOW CREATE DATABASE': Array('show-create-database'),
16
-    'SHOW CREATE EVENT': Array('show-create-event'),
17
-    'SHOW CREATE FUNCTION': Array('show-create-function'),
18
-    'SHOW CREATE PROCEDURE': Array('show-create-procedure'),
19
-    'SHOW CREATE TABLE': Array('show-create-table'),
20
-    'SHOW CREATE TRIGGER': Array('show-create-trigger'),
21
-    'SHOW CREATE VIEW': Array('show-create-view'),
22
-    'SHOW DATABASES': Array('show-databases'),
23
-    'SHOW ENGINE': Array('show-engine'),
24
-    'SHOW ENGINES': Array('show-engines'),
25
-    'SHOW ERRORS': Array('show-errors'),
26
-    'SHOW EVENTS': Array('show-events'),
27
-    'SHOW FUNCTION CODE': Array('show-function-code'),
28
-    'SHOW FUNCTION STATUS': Array('show-function-status'),
29
-    'SHOW GRANTS': Array('show-grants'),
30
-    'SHOW INDEX': Array('show-index'),
31
-    'SHOW MASTER STATUS': Array('show-master-status'),
32
-    'SHOW OPEN TABLES': Array('show-open-tables'),
33
-    'SHOW PLUGINS': Array('show-plugins'),
34
-    'SHOW PRIVILEGES': Array('show-privileges'),
35
-    'SHOW PROCEDURE CODE': Array('show-procedure-code'),
36
-    'SHOW PROCEDURE STATUS': Array('show-procedure-status'),
37
-    'SHOW PROCESSLIST': Array('show-processlist'),
38
-    'SHOW PROFILE': Array('show-profile'),
39
-    'SHOW PROFILES': Array('show-profiles'),
40
-    'SHOW RELAYLOG EVENTS': Array('show-relaylog-events'),
41
-    'SHOW SLAVE HOSTS': Array('show-slave-hosts'),
42
-    'SHOW SLAVE STATUS': Array('show-slave-status'),
43
-    'SHOW STATUS': Array('show-status'),
44
-    'SHOW TABLE STATUS': Array('show-table-status'),
45
-    'SHOW TABLES': Array('show-tables'),
46
-    'SHOW TRIGGERS': Array('show-triggers'),
47
-    'SHOW VARIABLES': Array('show-variables'),
48
-    'SHOW WARNINGS': Array('show-warnings'),
49
-    'LOAD DATA INFILE': Array('load-data'),
50
-    'LOAD XML': Array('load-xml'),
51
-    'LOCK TABLES': Array('lock-tables'),
52
-    'UNLOCK TABLES': Array('lock-tables'),
53
-    'ALTER DATABASE': Array('alter-database'),
54
-    'ALTER EVENT': Array('alter-event'),
55
-    'ALTER LOGFILE GROUP': Array('alter-logfile-group'),
56
-    'ALTER FUNCTION': Array('alter-function'),
57
-    'ALTER PROCEDURE': Array('alter-procedure'),
58
-    'ALTER SERVER': Array('alter-server'),
59
-    'ALTER TABLE': Array('alter-table'),
60
-    'ALTER TABLESPACE': Array('alter-tablespace'),
61
-    'ALTER VIEW': Array('alter-view'),
62
-    'CREATE DATABASE': Array('create-database'),
63
-    'CREATE EVENT': Array('create-event'),
64
-    'CREATE FUNCTION': Array('create-function'),
65
-    'CREATE INDEX': Array('create-index'),
66
-    'CREATE LOGFILE GROUP': Array('create-logfile-group'),
67
-    'CREATE PROCEDURE': Array('create-procedure'),
68
-    'CREATE SERVER': Array('create-server'),
69
-    'CREATE TABLE': Array('create-table'),
70
-    'CREATE TABLESPACE': Array('create-tablespace'),
71
-    'CREATE TRIGGER': Array('create-trigger'),
72
-    'CREATE VIEW': Array('create-view'),
73
-    'DROP DATABASE': Array('drop-database'),
74
-    'DROP EVENT': Array('drop-event'),
75
-    'DROP FUNCTION': Array('drop-function'),
76
-    'DROP INDEX': Array('drop-index'),
77
-    'DROP LOGFILE GROUP': Array('drop-logfile-group'),
78
-    'DROP PROCEDURE': Array('drop-procedure'),
79
-    'DROP SERVER': Array('drop-server'),
80
-    'DROP TABLE': Array('drop-table'),
81
-    'DROP TABLESPACE': Array('drop-tablespace'),
82
-    'DROP TRIGGER': Array('drop-trigger'),
83
-    'DROP VIEW': Array('drop-view'),
84
-    'RENAME TABLE': Array('rename-table'),
85
-    'TRUNCATE TABLE': Array('truncate-table'),
86
-
87
-    /* Statements */
88
-    'SELECT': Array('select'),
89
-    'SET': Array('set'),
90
-    'EXPLAIN': Array('explain'),
91
-    'DESCRIBE': Array('describe'),
92
-    'DELETE': Array('delete'),
93
-    'SHOW': Array('show'),
94
-    'UPDATE': Array('update'),
95
-    'INSERT': Array('insert'),
96
-    'REPLACE': Array('replace'),
97
-    'CALL': Array('call'),
98
-    'DO': Array('do'),
99
-    'HANDLER': Array('handler'),
100
-    'COLLATE': Array('charset-collations'),
101
-
102
-    /* Functions */
103
-    'ABS': Array('mathematical-functions', 'function_abs'),
104
-    'ACOS': Array('mathematical-functions', 'function_acos'),
105
-    'ADDDATE': Array('date-and-time-functions', 'function_adddate'),
106
-    'ADDTIME': Array('date-and-time-functions', 'function_addtime'),
107
-    'AES_DECRYPT': Array('encryption-functions', 'function_aes_decrypt'),
108
-    'AES_ENCRYPT': Array('encryption-functions', 'function_aes_encrypt'),
109
-    'AND': Array('logical-operators', 'operator_and'),
110
-    'ASCII': Array('string-functions', 'function_ascii'),
111
-    'ASIN': Array('mathematical-functions', 'function_asin'),
112
-    'ATAN2': Array('mathematical-functions', 'function_atan2'),
113
-    'ATAN': Array('mathematical-functions', 'function_atan'),
114
-    'AVG': Array('group-by-functions', 'function_avg'),
115
-    'BENCHMARK': Array('information-functions', 'function_benchmark'),
116
-    'BIN': Array('string-functions', 'function_bin'),
117
-    'BINARY': Array('cast-functions', 'operator_binary'),
118
-    'BIT_AND': Array('group-by-functions', 'function_bit_and'),
119
-    'BIT_COUNT': Array('bit-functions', 'function_bit_count'),
120
-    'BIT_LENGTH': Array('string-functions', 'function_bit_length'),
121
-    'BIT_OR': Array('group-by-functions', 'function_bit_or'),
122
-    'BIT_XOR': Array('group-by-functions', 'function_bit_xor'),
123
-    'CASE': Array('control-flow-functions', 'operator_case'),
124
-    'CAST': Array('cast-functions', 'function_cast'),
125
-    'CEIL': Array('mathematical-functions', 'function_ceil'),
126
-    'CEILING': Array('mathematical-functions', 'function_ceiling'),
127
-    'CHAR_LENGTH': Array('string-functions', 'function_char_length'),
128
-    'CHAR': Array('string-functions', 'function_char'),
129
-    'CHARACTER_LENGTH': Array('string-functions', 'function_character_length'),
130
-    'CHARSET': Array('information-functions', 'function_charset'),
131
-    'COALESCE': Array('comparison-operators', 'function_coalesce'),
132
-    'COERCIBILITY': Array('information-functions', 'function_coercibility'),
133
-    'COLLATION': Array('information-functions', 'function_collation'),
134
-    'COMPRESS': Array('encryption-functions', 'function_compress'),
135
-    'CONCAT_WS': Array('string-functions', 'function_concat_ws'),
136
-    'CONCAT': Array('string-functions', 'function_concat'),
137
-    'CONNECTION_ID': Array('information-functions', 'function_connection_id'),
138
-    'CONV': Array('mathematical-functions', 'function_conv'),
139
-    'CONVERT_TZ': Array('date-and-time-functions', 'function_convert_tz'),
140
-    'Convert': Array('cast-functions', 'function_convert'),
141
-    'COS': Array('mathematical-functions', 'function_cos'),
142
-    'COT': Array('mathematical-functions', 'function_cot'),
143
-    'COUNT': Array('group-by-functions', 'function_count'),
144
-    'CRC32': Array('mathematical-functions', 'function_crc32'),
145
-    'CURDATE': Array('date-and-time-functions', 'function_curdate'),
146
-    'CURRENT_DATE': Array('date-and-time-functions', 'function_current_date'),
147
-    'CURRENT_TIME': Array('date-and-time-functions', 'function_current_time'),
148
-    'CURRENT_TIMESTAMP': Array('date-and-time-functions', 'function_current_timestamp'),
149
-    'CURRENT_USER': Array('information-functions', 'function_current_user'),
150
-    'CURTIME': Array('date-and-time-functions', 'function_curtime'),
151
-    'DATABASE': Array('information-functions', 'function_database'),
152
-    'DATE_ADD': Array('date-and-time-functions', 'function_date_add'),
153
-    'DATE_FORMAT': Array('date-and-time-functions', 'function_date_format'),
154
-    'DATE_SUB': Array('date-and-time-functions', 'function_date_sub'),
155
-    'DATE': Array('date-and-time-functions', 'function_date'),
156
-    'DATEDIFF': Array('date-and-time-functions', 'function_datediff'),
157
-    'DAY': Array('date-and-time-functions', 'function_day'),
158
-    'DAYNAME': Array('date-and-time-functions', 'function_dayname'),
159
-    'DAYOFMONTH': Array('date-and-time-functions', 'function_dayofmonth'),
160
-    'DAYOFWEEK': Array('date-and-time-functions', 'function_dayofweek'),
161
-    'DAYOFYEAR': Array('date-and-time-functions', 'function_dayofyear'),
162
-    'DECLARE': Array('declare', 'declare'),
163
-    'DECODE': Array('encryption-functions', 'function_decode'),
164
-    'DEFAULT': Array('miscellaneous-functions', 'function_default'),
165
-    'DEGREES': Array('mathematical-functions', 'function_degrees'),
166
-    'DES_DECRYPT': Array('encryption-functions', 'function_des_decrypt'),
167
-    'DES_ENCRYPT': Array('encryption-functions', 'function_des_encrypt'),
168
-    'DIV': Array('arithmetic-functions', 'operator_div'),
169
-    'ELT': Array('string-functions', 'function_elt'),
170
-    'ENCODE': Array('encryption-functions', 'function_encode'),
171
-    'ENCRYPT': Array('encryption-functions', 'function_encrypt'),
172
-    'EXP': Array('mathematical-functions', 'function_exp'),
173
-    'EXPORT_SET': Array('string-functions', 'function_export_set'),
174
-    'EXTRACT': Array('date-and-time-functions', 'function_extract'),
175
-    'ExtractValue': Array('xml-functions', 'function_extractvalue'),
176
-    'FIELD': Array('string-functions', 'function_field'),
177
-    'FIND_IN_SET': Array('string-functions', 'function_find_in_set'),
178
-    'FLOOR': Array('mathematical-functions', 'function_floor'),
179
-    'FORMAT': Array('string-functions', 'function_format'),
180
-    'FOUND_ROWS': Array('information-functions', 'function_found_rows'),
181
-    'FROM_DAYS': Array('date-and-time-functions', 'function_from_days'),
182
-    'FROM_UNIXTIME': Array('date-and-time-functions', 'function_from_unixtime'),
183
-    'GET_FORMAT': Array('date-and-time-functions', 'function_get_format'),
184
-    'GET_LOCK': Array('miscellaneous-functions', 'function_get_lock'),
185
-    'GREATEST': Array('comparison-operators', 'function_greatest'),
186
-    'GROUP_CONCAT': Array('group-by-functions', 'function_group_concat'),
187
-    'HEX': Array('string-functions', 'function_hex'),
188
-    'HOUR': Array('date-and-time-functions', 'function_hour'),
189
-    'IF': Array('control-flow-functions', 'function_if'),
190
-    'IFNULL': Array('control-flow-functions', 'function_ifnull'),
191
-    'IN': Array('comparison-operators', 'function_in'),
192
-    'INET_ATON': Array('miscellaneous-functions', 'function_inet_aton'),
193
-    'INET_NTOA': Array('miscellaneous-functions', 'function_inet_ntoa'),
194
-    'INSTR': Array('string-functions', 'function_instr'),
195
-    'INTERVAL': Array('comparison-operators', 'function_interval'),
196
-    'IS_FREE_LOCK': Array('miscellaneous-functions', 'function_is_free_lock'),
197
-    'IS_USED_LOCK': Array('miscellaneous-functions', 'function_is_used_lock'),
198
-    'IS': Array('comparison-operators', 'operator_is'),
199
-    'ISNULL': Array('comparison-operators', 'function_isnull'),
200
-    'LAST_DAY': Array('date-and-time-functions', 'function_last_day'),
201
-    'LAST_INSERT_ID': Array('information-functions', 'function_last_insert_id'),
202
-    'LCASE': Array('string-functions', 'function_lcase'),
203
-    'LEAST': Array('comparison-operators', 'function_least'),
204
-    'LEFT': Array('string-functions', 'function_left'),
205
-    'LENGTH': Array('string-functions', 'function_length'),
206
-    'LIKE': Array('string-comparison-functions', 'operator_like'),
207
-    'LN': Array('mathematical-functions', 'function_ln'),
208
-    'LOAD_FILE': Array('string-functions', 'function_load_file'),
209
-    'LOCALTIME': Array('date-and-time-functions', 'function_localtime'),
210
-    'LOCALTIMESTAMP': Array('date-and-time-functions', 'function_localtimestamp'),
211
-    'LOCATE': Array('string-functions', 'function_locate'),
212
-    'LOG10': Array('mathematical-functions', 'function_log10'),
213
-    'LOG2': Array('mathematical-functions', 'function_log2'),
214
-    'LOG': Array('mathematical-functions', 'function_log'),
215
-    'LOWER': Array('string-functions', 'function_lower'),
216
-    'LPAD': Array('string-functions', 'function_lpad'),
217
-    'LTRIM': Array('string-functions', 'function_ltrim'),
218
-    'MAKE_SET': Array('string-functions', 'function_make_set'),
219
-    'MAKEDATE': Array('date-and-time-functions', 'function_makedate'),
220
-    'MAKETIME': Array('date-and-time-functions', 'function_maketime'),
221
-    'MASTER_POS_WAIT': Array('miscellaneous-functions', 'function_master_pos_wait'),
222
-    'MATCH': Array('fulltext-search', 'function_match'),
223
-    'MAX': Array('group-by-functions', 'function_max'),
224
-    'MD5': Array('encryption-functions', 'function_md5'),
225
-    'MICROSECOND': Array('date-and-time-functions', 'function_microsecond'),
226
-    'MID': Array('string-functions', 'function_mid'),
227
-    'MIN': Array('group-by-functions', 'function_min'),
228
-    'MINUTE': Array('date-and-time-functions', 'function_minute'),
229
-    'MOD': Array('mathematical-functions', 'function_mod'),
230
-    'MONTH': Array('date-and-time-functions', 'function_month'),
231
-    'MONTHNAME': Array('date-and-time-functions', 'function_monthname'),
232
-    'NAME_CONST': Array('miscellaneous-functions', 'function_name_const'),
233
-    'NOT': Array('logical-operators', 'operator_not'),
234
-    'NOW': Array('date-and-time-functions', 'function_now'),
235
-    'NULLIF': Array('control-flow-functions', 'function_nullif'),
236
-    'OCT': Array('mathematical-functions', 'function_oct'),
237
-    'OCTET_LENGTH': Array('string-functions', 'function_octet_length'),
238
-    'OLD_PASSWORD': Array('encryption-functions', 'function_old_password'),
239
-    'OR': Array('logical-operators', 'operator_or'),
240
-    'ORD': Array('string-functions', 'function_ord'),
241
-    'PASSWORD': Array('encryption-functions', 'function_password'),
242
-    'PERIOD_ADD': Array('date-and-time-functions', 'function_period_add'),
243
-    'PERIOD_DIFF': Array('date-and-time-functions', 'function_period_diff'),
244
-    'PI': Array('mathematical-functions', 'function_pi'),
245
-    'POSITION': Array('string-functions', 'function_position'),
246
-    'POW': Array('mathematical-functions', 'function_pow'),
247
-    'POWER': Array('mathematical-functions', 'function_power'),
248
-    'QUARTER': Array('date-and-time-functions', 'function_quarter'),
249
-    'QUOTE': Array('string-functions', 'function_quote'),
250
-    'RADIANS': Array('mathematical-functions', 'function_radians'),
251
-    'RAND': Array('mathematical-functions', 'function_rand'),
252
-    'REGEXP': Array('regexp', 'operator_regexp'),
253
-    'RELEASE_LOCK': Array('miscellaneous-functions', 'function_release_lock'),
254
-    'REPEAT': Array('string-functions', 'function_repeat'),
255
-    'REVERSE': Array('string-functions', 'function_reverse'),
256
-    'RIGHT': Array('string-functions', 'function_right'),
257
-    'RLIKE': Array('regexp', 'operator_rlike'),
258
-    'ROUND': Array('mathematical-functions', 'function_round'),
259
-    'ROW_COUNT': Array('information-functions', 'function_row_count'),
260
-    'RPAD': Array('string-functions', 'function_rpad'),
261
-    'RTRIM': Array('string-functions', 'function_rtrim'),
262
-    'SCHEMA': Array('information-functions', 'function_schema'),
263
-    'SEC_TO_TIME': Array('date-and-time-functions', 'function_sec_to_time'),
264
-    'SECOND': Array('date-and-time-functions', 'function_second'),
265
-    'SESSION_USER': Array('information-functions', 'function_session_user'),
266
-    'SHA': Array('encryption-functions', 'function_sha1'),
267
-    'SHA1': Array('encryption-functions', 'function_sha1'),
268
-    'SIGN': Array('mathematical-functions', 'function_sign'),
269
-    'SIN': Array('mathematical-functions', 'function_sin'),
270
-    'SLEEP': Array('miscellaneous-functions', 'function_sleep'),
271
-    'SOUNDEX': Array('string-functions', 'function_soundex'),
272
-    'SPACE': Array('string-functions', 'function_space'),
273
-    'SQRT': Array('mathematical-functions', 'function_sqrt'),
274
-    'STD': Array('group-by-functions', 'function_std'),
275
-    'STDDEV_POP': Array('group-by-functions', 'function_stddev_pop'),
276
-    'STDDEV_SAMP': Array('group-by-functions', 'function_stddev_samp'),
277
-    'STDDEV': Array('group-by-functions', 'function_stddev'),
278
-    'STR_TO_DATE': Array('date-and-time-functions', 'function_str_to_date'),
279
-    'STRCMP': Array('string-comparison-functions', 'function_strcmp'),
280
-    'SUBDATE': Array('date-and-time-functions', 'function_subdate'),
281
-    'SUBSTR': Array('string-functions', 'function_substr'),
282
-    'SUBSTRING_INDEX': Array('string-functions', 'function_substring_index'),
283
-    'SUBSTRING': Array('string-functions', 'function_substring'),
284
-    'SUBTIME': Array('date-and-time-functions', 'function_subtime'),
285
-    'SUM': Array('group-by-functions', 'function_sum'),
286
-    'SYSDATE': Array('date-and-time-functions', 'function_sysdate'),
287
-    'SYSTEM_USER': Array('information-functions', 'function_system_user'),
288
-    'TAN': Array('mathematical-functions', 'function_tan'),
289
-    'TIME_FORMAT': Array('date-and-time-functions', 'function_time_format'),
290
-    'TIME_TO_SEC': Array('date-and-time-functions', 'function_time_to_sec'),
291
-    'TIME': Array('date-and-time-functions', 'function_time'),
292
-    'TIMEDIFF': Array('date-and-time-functions', 'function_timediff'),
293
-    'TIMESTAMP': Array('date-and-time-functions', 'function_timestamp'),
294
-    'TIMESTAMPADD': Array('date-and-time-functions', 'function_timestampadd'),
295
-    'TIMESTAMPDIFF': Array('date-and-time-functions', 'function_timestampdiff'),
296
-    'TO_DAYS': Array('date-and-time-functions', 'function_to_days'),
297
-    'TRIM': Array('string-functions', 'function_trim'),
298
-    'TRUNCATE': Array('mathematical-functions', 'function_truncate'),
299
-    'UCASE': Array('string-functions', 'function_ucase'),
300
-    'UNCOMPRESS': Array('encryption-functions', 'function_uncompress'),
301
-    'UNCOMPRESSED_LENGTH': Array('encryption-functions', 'function_uncompressed_length'),
302
-    'UNHEX': Array('string-functions', 'function_unhex'),
303
-    'UNIX_TIMESTAMP': Array('date-and-time-functions', 'function_unix_timestamp'),
304
-    'UpdateXML': Array('xml-functions', 'function_updatexml'),
305
-    'UPPER': Array('string-functions', 'function_upper'),
306
-    'USER': Array('information-functions', 'function_user'),
307
-    'UTC_DATE': Array('date-and-time-functions', 'function_utc_date'),
308
-    'UTC_TIME': Array('date-and-time-functions', 'function_utc_time'),
309
-    'UTC_TIMESTAMP': Array('date-and-time-functions', 'function_utc_timestamp'),
310
-    'UUID_SHORT': Array('miscellaneous-functions', 'function_uuid_short'),
311
-    'UUID': Array('miscellaneous-functions', 'function_uuid'),
312
-    'VALUES': Array('miscellaneous-functions', 'function_values'),
313
-    'VAR_POP': Array('group-by-functions', 'function_var_pop'),
314
-    'VAR_SAMP': Array('group-by-functions', 'function_var_samp'),
315
-    'VARIANCE': Array('group-by-functions', 'function_variance'),
316
-    'VERSION': Array('information-functions', 'function_version'),
317
-    'WEEK': Array('date-and-time-functions', 'function_week'),
318
-    'WEEKDAY': Array('date-and-time-functions', 'function_weekday'),
319
-    'WEEKOFYEAR': Array('date-and-time-functions', 'function_weekofyear'),
320
-    'XOR': Array('logical-operators', 'operator_xor'),
321
-    'YEAR': Array('date-and-time-functions', 'function_year'),
322
-    'YEARWEEK': Array('date-and-time-functions', 'function_yearweek'),
323
-    'SOUNDS_LIKE': Array('string-functions', 'operator_sounds-like'),
324
-    'IS_NOT_NULL': Array('comparison-operators', 'operator_is-not-null'),
325
-    'IS_NOT': Array('comparison-operators', 'operator_is-not'),
326
-    'IS_NULL': Array('comparison-operators', 'operator_is-null'),
327
-    'NOT_LIKE': Array('string-comparison-functions', 'operator_not-like'),
328
-    'NOT_REGEXP': Array('regexp', 'operator_not-regexp'),
329
-    'COUNT_DISTINCT': Array('group-by-functions', 'function_count-distinct'),
330
-    'NOT_IN': Array('comparison-operators', 'function_not-in')
331
-};
332
-
333
-var mysql_doc_builtin = {
334
-    'TINYINT': Array('numeric-types'),
335
-    'SMALLINT': Array('numeric-types'),
336
-    'MEDIUMINT': Array('numeric-types'),
337
-    'INT': Array('numeric-types'),
338
-    'BIGINT': Array('numeric-types'),
339
-    'DECIMAL': Array('numeric-types'),
340
-    'FLOAT': Array('numeric-types'),
341
-    'DOUBLE': Array('numeric-types'),
342
-    'REAL': Array('numeric-types'),
343
-    'BIT': Array('numeric-types'),
344
-    'BOOLEAN': Array('numeric-types'),
345
-    'SERIAL': Array('numeric-types'),
346
-    'DATE': Array('date-and-time-types'),
347
-    'DATETIME': Array('date-and-time-types'),
348
-    'TIMESTAMP': Array('date-and-time-types'),
349
-    'TIME': Array('date-and-time-types'),
350
-    'YEAR': Array('date-and-time-types'),
351
-    'CHAR': Array('string-types'),
352
-    'VARCHAR': Array('string-types'),
353
-    'TINYTEXT': Array('string-types'),
354
-    'TEXT': Array('string-types'),
355
-    'MEDIUMTEXT': Array('string-types'),
356
-    'LONGTEXT': Array('string-types'),
357
-    'BINARY': Array('string-types'),
358
-    'VARBINARY': Array('string-types'),
359
-    'TINYBLOB': Array('string-types'),
360
-    'MEDIUMBLOB': Array('string-types'),
361
-    'BLOB': Array('string-types'),
362
-    'LONGBLOB': Array('string-types'),
363
-    'ENUM': Array('string-types'),
364
-    'SET': Array('string-types')
365
-};

BIN
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/dot.gif View File


+ 0
- 326
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/error_report.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * general function, usually for data manipulation pages
4
- *
5
- */
6
-
7
-var ErrorReport = {
8
-    /**
9
-     * @var object stores the last exception info
10
-     */
11
-    _last_exception: null,
12
-    /**
13
-     * handles thrown error exceptions based on user preferences
14
-     *
15
-     * @return void
16
-     */
17
-    error_handler: function (exception) {
18
-        // issue: 14359
19
-        if (JSON.stringify(ErrorReport._last_exception) === JSON.stringify(exception)) {
20
-            return;
21
-        }
22
-        if (exception.name === null || typeof(exception.name) === 'undefined') {
23
-            exception.name = ErrorReport._extractExceptionName(exception);
24
-        }
25
-        ErrorReport._last_exception = exception;
26
-        $.post('error_report.php', {
27
-            ajax_request: true,
28
-            server: PMA_commonParams.get('server'),
29
-            get_settings: true,
30
-            exception_type: 'js'
31
-        }, function (data) {
32
-            if (data.success !== true) {
33
-                PMA_ajaxShowMessage(data.error, false);
34
-                return;
35
-            }
36
-            if (data.report_setting === 'ask') {
37
-                ErrorReport._showErrorNotification();
38
-            } else if (data.report_setting === 'always') {
39
-                report_data = ErrorReport._get_report_data(exception);
40
-                post_data = $.extend(report_data, {
41
-                    send_error_report: true,
42
-                    automatic: true
43
-                });
44
-                $.post('error_report.php', post_data, function (data) {
45
-                    if (data.success === false) {
46
-                        // in the case of an error, show the error message returned.
47
-                        PMA_ajaxShowMessage(data.error, false);
48
-                    } else {
49
-                        PMA_ajaxShowMessage(data.message, false);
50
-                    }
51
-                });
52
-            }
53
-        });
54
-    },
55
-    /**
56
-     * Shows the modal dialog previewing the report
57
-     *
58
-     * @param exception object error report info
59
-     *
60
-     * @return void
61
-     */
62
-    _showReportDialog: function (exception) {
63
-        var report_data = ErrorReport._get_report_data(exception);
64
-
65
-        /* Remove the hidden dialogs if there are*/
66
-        if ($('#error_report_dialog').length !== 0) {
67
-            $('#error_report_dialog').remove();
68
-        }
69
-        var $div = $('<div id="error_report_dialog"></div>');
70
-        $div.css('z-index', '1000');
71
-
72
-        var button_options = {};
73
-
74
-        button_options[PMA_messages.strSendErrorReport] = function () {
75
-            var $dialog = $(this);
76
-            var post_data = $.extend(report_data, {
77
-                send_error_report: true,
78
-                description: $('#report_description').val(),
79
-                always_send: $('#always_send_checkbox')[0].checked
80
-            });
81
-            $.post('error_report.php', post_data, function (data) {
82
-                $dialog.dialog('close');
83
-                if (data.success === false) {
84
-                    // in the case of an error, show the error message returned.
85
-                    PMA_ajaxShowMessage(data.error, false);
86
-                } else {
87
-                    PMA_ajaxShowMessage(data.message, 3000);
88
-                }
89
-            });
90
-        };
91
-
92
-        button_options[PMA_messages.strCancel] = function () {
93
-            $(this).dialog('close');
94
-        };
95
-
96
-        $.post('error_report.php', report_data, function (data) {
97
-            if (data.success === false) {
98
-                // in the case of an error, show the error message returned.
99
-                PMA_ajaxShowMessage(data.error, false);
100
-            } else {
101
-                // Show dialog if the request was successful
102
-                $div
103
-                    .append(data.message)
104
-                    .dialog({
105
-                        title: PMA_messages.strSubmitErrorReport,
106
-                        width: 650,
107
-                        modal: true,
108
-                        buttons: button_options,
109
-                        close: function () {
110
-                            $(this).remove();
111
-                        }
112
-                    });
113
-            }
114
-        });
115
-    },
116
-    /**
117
-     * Shows the small notification that asks for user permission
118
-     *
119
-     * @return void
120
-     */
121
-    _showErrorNotification: function () {
122
-        ErrorReport._removeErrorNotification();
123
-
124
-        var $div = $(
125
-            '<div style="position:fixed;bottom:0;left:0;right:0;margin:0;' +
126
-            'z-index:1000" class="error" id="error_notification"></div>'
127
-        ).append(
128
-            PMA_getImage('s_error') + PMA_messages.strErrorOccurred
129
-        );
130
-
131
-        var $buttons = $('<div class="floatright"></div>');
132
-
133
-        var button_html  = '<button id="show_error_report">';
134
-        button_html += PMA_messages.strShowReportDetails;
135
-        button_html += '</button>';
136
-
137
-        button_html += '<a id="change_error_settings">';
138
-        button_html += PMA_getImage('s_cog', PMA_messages.strChangeReportSettings);
139
-        button_html += '</a>';
140
-
141
-        button_html += '<a href="#" id="ignore_error">';
142
-        button_html += PMA_getImage('b_close', PMA_messages.strIgnore);
143
-        button_html += '</a>';
144
-
145
-        $buttons.html(button_html);
146
-
147
-        $div.append($buttons);
148
-        $div.appendTo(document.body);
149
-        $(document).on('click', '#change_error_settings', ErrorReport._redirect_to_settings);
150
-        $(document).on('click', '#show_error_report', ErrorReport._createReportDialog);
151
-        $(document).on('click', '#ignore_error', ErrorReport._removeErrorNotification);
152
-    },
153
-    /**
154
-     * Removes the notification if it was displayed before
155
-     *
156
-     * @return void
157
-     */
158
-    _removeErrorNotification: function (e) {
159
-        if (e) {
160
-            // don't remove the hash fragment by navigating to #
161
-            e.preventDefault();
162
-        }
163
-        $('#error_notification').fadeOut(function () {
164
-            $(this).remove();
165
-        });
166
-    },
167
-    /**
168
-     * Extracts Exception name from message if it exists
169
-     *
170
-     * @return String
171
-     */
172
-    _extractExceptionName: function (exception) {
173
-        if (exception.message === null || typeof(exception.message) === 'undefined') {
174
-            return '';
175
-        }
176
-
177
-        var reg = /([a-zA-Z]+):/;
178
-        var regex_result = reg.exec(exception.message);
179
-        if (regex_result && regex_result.length === 2) {
180
-            return regex_result[1];
181
-        }
182
-
183
-        return '';
184
-    },
185
-    /**
186
-     * Shows the modal dialog previewing the report
187
-     *
188
-     * @return void
189
-     */
190
-    _createReportDialog: function () {
191
-        ErrorReport._removeErrorNotification();
192
-        ErrorReport._showReportDialog(ErrorReport._last_exception);
193
-    },
194
-    /**
195
-     * Redirects to the settings page containing error report
196
-     * preferences
197
-     *
198
-     * @return void
199
-     */
200
-    _redirect_to_settings: function () {
201
-        window.location.href = 'prefs_forms.php';
202
-    },
203
-    /**
204
-     * Returns the report data to send to the server
205
-     *
206
-     * @param exception object exception info
207
-     *
208
-     * @return object
209
-     */
210
-    _get_report_data: function (exception) {
211
-        if (exception && exception.stack && exception.stack.length) {
212
-            for (var i = 0; i < exception.stack.length; i++) {
213
-                var stack = exception.stack[i];
214
-                if (stack.context && stack.context.length) {
215
-                    for (var j = 0; j < stack.context.length; j++) {
216
-                        if (stack.context[j].length >  80) {
217
-                            stack.context[j] = stack.context[j].substring(-1, 75) + '//...';
218
-                        }
219
-                    }
220
-                }
221
-            }
222
-        }
223
-        var report_data = {
224
-            'server': PMA_commonParams.get('server'),
225
-            'ajax_request': true,
226
-            'exception': exception,
227
-            'url': window.location.href,
228
-            'exception_type': 'js'
229
-        };
230
-        if (AJAX.scriptHandler._scripts.length > 0) {
231
-            report_data.scripts = AJAX.scriptHandler._scripts.map(
232
-                function (script) {
233
-                    return script;
234
-                }
235
-            );
236
-        }
237
-        return report_data;
238
-    },
239
-    /**
240
-     * Wraps all global functions that start with PMA_
241
-     *
242
-     * @return void
243
-     */
244
-    wrap_global_functions: function () {
245
-        for (var key in window) {
246
-            if (key.indexOf('PMA_') === 0) {
247
-                var global = window[key];
248
-                if (typeof(global) === 'function') {
249
-                    window[key] = ErrorReport.wrap_function(global);
250
-                }
251
-            }
252
-        }
253
-    },
254
-    /**
255
-     * Wraps given function in error reporting code and returns wrapped function
256
-     *
257
-     * @param func function to be wrapped
258
-     *
259
-     * @return function
260
-     */
261
-    wrap_function: function (func) {
262
-        if (!func.wrapped) {
263
-            var new_func = function () {
264
-                try {
265
-                    return func.apply(this, arguments);
266
-                } catch (x) {
267
-                    TraceKit.report(x);
268
-                }
269
-            };
270
-            new_func.wrapped = true;
271
-            // Set guid of wrapped function same as original function, so it can be removed
272
-            // See bug#4146 (problem with jquery draggable and sortable)
273
-            new_func.guid = func.guid = func.guid || new_func.guid || jQuery.guid++;
274
-            return new_func;
275
-        } else {
276
-            return func;
277
-        }
278
-    },
279
-    /**
280
-     * Automatically wraps the callback in AJAX.registerOnload
281
-     *
282
-     * @return void
283
-     */
284
-    _wrap_ajax_onload_callback: function () {
285
-        var oldOnload = AJAX.registerOnload;
286
-        AJAX.registerOnload = function (file, func) {
287
-            func = ErrorReport.wrap_function(func);
288
-            oldOnload.call(this, file, func);
289
-        };
290
-    },
291
-    /**
292
-     * Automatically wraps the callback in $.fn.on
293
-     *
294
-     * @return void
295
-     */
296
-    _wrap_$_on_callback: function () {
297
-        var oldOn = $.fn.on;
298
-        $.fn.on = function () {
299
-            for (var i = 1; i <= 3; i++) {
300
-                if (typeof(arguments[i]) === 'function') {
301
-                    arguments[i] = ErrorReport.wrap_function(arguments[i]);
302
-                    break;
303
-                }
304
-            }
305
-            return oldOn.apply(this, arguments);
306
-        };
307
-    },
308
-    /**
309
-     * Wraps all global functions that start with PMA_
310
-     * also automatically wraps the callback in AJAX.registerOnload
311
-     *
312
-     * @return void
313
-     */
314
-    set_up_error_reporting: function () {
315
-        ErrorReport.wrap_global_functions();
316
-        ErrorReport._wrap_ajax_onload_callback();
317
-        ErrorReport._wrap_$_on_callback();
318
-    }
319
-
320
-};
321
-
322
-AJAX.registerOnload('error_report.js', function () {
323
-    TraceKit.report.subscribe(ErrorReport.error_handler);
324
-    ErrorReport.set_up_error_reporting();
325
-    ErrorReport.wrap_global_functions();
326
-});

+ 0
- 5181
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/functions.js
File diff suppressed because it is too large
View File


+ 0
- 761
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/indexes.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * @fileoverview    function used for index manipulation pages
4
- * @name            Table Structure
5
- *
6
- * @requires    jQuery
7
- * @requires    jQueryUI
8
- * @required    js/functions.js
9
- */
10
-
11
-/**
12
- * Returns the array of indexes based on the index choice
13
- *
14
- * @param index_choice index choice
15
- */
16
-function PMA_getIndexArray (index_choice) {
17
-    var source_array = null;
18
-
19
-    switch (index_choice.toLowerCase()) {
20
-    case 'primary':
21
-        source_array = primary_indexes;
22
-        break;
23
-    case 'unique':
24
-        source_array = unique_indexes;
25
-        break;
26
-    case 'index':
27
-        source_array = indexes;
28
-        break;
29
-    case 'fulltext':
30
-        source_array = fulltext_indexes;
31
-        break;
32
-    case 'spatial':
33
-        source_array = spatial_indexes;
34
-        break;
35
-    default:
36
-        return null;
37
-    }
38
-    return source_array;
39
-}
40
-
41
-/**
42
- * Hides/shows the inputs and submits appropriately depending
43
- * on whether the index type chosen is 'SPATIAL' or not.
44
- */
45
-function checkIndexType () {
46
-    /**
47
-     * @var Object Dropdown to select the index choice.
48
-     */
49
-    var $select_index_choice = $('#select_index_choice');
50
-    /**
51
-     * @var Object Dropdown to select the index type.
52
-     */
53
-    var $select_index_type = $('#select_index_type');
54
-    /**
55
-     * @var Object Table header for the size column.
56
-     */
57
-    var $size_header = $('#index_columns').find('thead tr th:nth-child(2)');
58
-    /**
59
-     * @var Object Inputs to specify the columns for the index.
60
-     */
61
-    var $column_inputs = $('select[name="index[columns][names][]"]');
62
-    /**
63
-     * @var Object Inputs to specify sizes for columns of the index.
64
-     */
65
-    var $size_inputs = $('input[name="index[columns][sub_parts][]"]');
66
-    /**
67
-     * @var Object Footer containg the controllers to add more columns
68
-     */
69
-    var $add_more = $('#index_frm').find('.add_more');
70
-
71
-    if ($select_index_choice.val() === 'SPATIAL') {
72
-        // Disable and hide the size column
73
-        $size_header.hide();
74
-        $size_inputs.each(function () {
75
-            $(this)
76
-                .prop('disabled', true)
77
-                .parent('td').hide();
78
-        });
79
-
80
-        // Disable and hide the columns of the index other than the first one
81
-        var initial = true;
82
-        $column_inputs.each(function () {
83
-            $column_input = $(this);
84
-            if (! initial) {
85
-                $column_input
86
-                    .prop('disabled', true)
87
-                    .parent('td').hide();
88
-            } else {
89
-                initial = false;
90
-            }
91
-        });
92
-
93
-        // Hide controllers to add more columns
94
-        $add_more.hide();
95
-    } else {
96
-        // Enable and show the size column
97
-        $size_header.show();
98
-        $size_inputs.each(function () {
99
-            $(this)
100
-                .prop('disabled', false)
101
-                .parent('td').show();
102
-        });
103
-
104
-        // Enable and show the columns of the index
105
-        $column_inputs.each(function () {
106
-            $(this)
107
-                .prop('disabled', false)
108
-                .parent('td').show();
109
-        });
110
-
111
-        // Show controllers to add more columns
112
-        $add_more.show();
113
-    }
114
-
115
-    if ($select_index_choice.val() === 'SPATIAL' ||
116
-            $select_index_choice.val() === 'FULLTEXT') {
117
-        $select_index_type.val('').prop('disabled', true);
118
-    } else {
119
-        $select_index_type.prop('disabled', false);
120
-    }
121
-}
122
-
123
-/**
124
- * Sets current index information into form parameters.
125
- *
126
- * @param array  source_array Array containing index columns
127
- * @param string index_choice Choice of index
128
- *
129
- * @return void
130
- */
131
-function PMA_setIndexFormParameters (source_array, index_choice) {
132
-    if (index_choice === 'index') {
133
-        $('input[name="indexes"]').val(JSON.stringify(source_array));
134
-    } else {
135
-        $('input[name="' + index_choice + '_indexes"]').val(JSON.stringify(source_array));
136
-    }
137
-}
138
-
139
-/**
140
- * Removes a column from an Index.
141
- *
142
- * @param string col_index Index of column in form
143
- *
144
- * @return void
145
- */
146
-function PMA_removeColumnFromIndex (col_index) {
147
-    // Get previous index details.
148
-    var previous_index = $('select[name="field_key[' + col_index + ']"]')
149
-        .attr('data-index');
150
-    if (previous_index.length) {
151
-        previous_index = previous_index.split(',');
152
-        var source_array = PMA_getIndexArray(previous_index[0]);
153
-        if (source_array === null) {
154
-            return;
155
-        }
156
-
157
-        // Remove column from index array.
158
-        var source_length = source_array[previous_index[1]].columns.length;
159
-        for (var i = 0; i < source_length; i++) {
160
-            if (source_array[previous_index[1]].columns[i].col_index === col_index) {
161
-                source_array[previous_index[1]].columns.splice(i, 1);
162
-            }
163
-        }
164
-
165
-        // Remove index completely if no columns left.
166
-        if (source_array[previous_index[1]].columns.length === 0) {
167
-            source_array.splice(previous_index[1], 1);
168
-        }
169
-
170
-        // Update current index details.
171
-        $('select[name="field_key[' + col_index + ']"]').attr('data-index', '');
172
-        // Update form index parameters.
173
-        PMA_setIndexFormParameters(source_array, previous_index[0].toLowerCase());
174
-    }
175
-}
176
-
177
-/**
178
- * Adds a column to an Index.
179
- *
180
- * @param array  source_array Array holding corresponding indexes
181
- * @param string array_index  Index of an INDEX in array
182
- * @param string index_choice Choice of Index
183
- * @param string col_index    Index of column on form
184
- *
185
- * @return void
186
- */
187
-function PMA_addColumnToIndex (source_array, array_index, index_choice, col_index) {
188
-    if (col_index >= 0) {
189
-        // Remove column from other indexes (if any).
190
-        PMA_removeColumnFromIndex(col_index);
191
-    }
192
-    var index_name = $('input[name="index[Key_name]"]').val();
193
-    var index_comment = $('input[name="index[Index_comment]"]').val();
194
-    var key_block_size = $('input[name="index[Key_block_size]"]').val();
195
-    var parser = $('input[name="index[Parser]"]').val();
196
-    var index_type = $('select[name="index[Index_type]"]').val();
197
-    var columns = [];
198
-    $('#index_columns').find('tbody').find('tr').each(function () {
199
-        // Get columns in particular order.
200
-        var col_index = $(this).find('select[name="index[columns][names][]"]').val();
201
-        var size = $(this).find('input[name="index[columns][sub_parts][]"]').val();
202
-        columns.push({
203
-            'col_index': col_index,
204
-            'size': size
205
-        });
206
-    });
207
-
208
-    // Update or create an index.
209
-    source_array[array_index] = {
210
-        'Key_name': index_name,
211
-        'Index_comment': index_comment,
212
-        'Index_choice': index_choice.toUpperCase(),
213
-        'Key_block_size': key_block_size,
214
-        'Parser': parser,
215
-        'Index_type': index_type,
216
-        'columns': columns
217
-    };
218
-
219
-    // Display index name (or column list)
220
-    var displayName = index_name;
221
-    if (displayName === '') {
222
-        var columnNames = [];
223
-        $.each(columns, function () {
224
-            columnNames.push($('input[name="field_name[' +  this.col_index + ']"]').val());
225
-        });
226
-        displayName = '[' + columnNames.join(', ') + ']';
227
-    }
228
-    $.each(columns, function () {
229
-        var id = 'index_name_' + this.col_index + '_8';
230
-        var $name = $('#' + id);
231
-        if ($name.length === 0) {
232
-            $name = $('<a id="' + id + '" href="#" class="ajax show_index_dialog"></a>');
233
-            $name.insertAfter($('select[name="field_key[' + this.col_index + ']"]'));
234
-        }
235
-        var $text = $('<small>').text(displayName);
236
-        $name.html($text);
237
-    });
238
-
239
-    if (col_index >= 0) {
240
-        // Update index details on form.
241
-        $('select[name="field_key[' + col_index + ']"]')
242
-            .attr('data-index', index_choice + ',' + array_index);
243
-    }
244
-    PMA_setIndexFormParameters(source_array, index_choice.toLowerCase());
245
-}
246
-
247
-/**
248
- * Get choices list for a column to create a composite index with.
249
- *
250
- * @param string index_choice Choice of index
251
- * @param array  source_array Array hodling columns for particular index
252
- *
253
- * @return jQuery Object
254
- */
255
-function PMA_getCompositeIndexList (source_array, col_index) {
256
-    // Remove any previous list.
257
-    if ($('#composite_index_list').length) {
258
-        $('#composite_index_list').remove();
259
-    }
260
-
261
-    // Html list.
262
-    var $composite_index_list = $(
263
-        '<ul id="composite_index_list">' +
264
-        '<div>' + PMA_messages.strCompositeWith + '</div>' +
265
-        '</ul>'
266
-    );
267
-
268
-    // Add each column to list available for composite index.
269
-    var source_length = source_array.length;
270
-    var already_present = false;
271
-    for (var i = 0; i < source_length; i++) {
272
-        var sub_array_len = source_array[i].columns.length;
273
-        var column_names = [];
274
-        for (var j = 0; j < sub_array_len; j++) {
275
-            column_names.push(
276
-                $('input[name="field_name[' + source_array[i].columns[j].col_index + ']"]').val()
277
-            );
278
-
279
-            if (col_index === source_array[i].columns[j].col_index) {
280
-                already_present = true;
281
-            }
282
-        }
283
-
284
-        $composite_index_list.append(
285
-            '<li>' +
286
-            '<input type="radio" name="composite_with" ' +
287
-            (already_present ? 'checked="checked"' : '') +
288
-            ' id="composite_index_' + i + '" value="' + i + '">' +
289
-            '<label for="composite_index_' + i + '">' + column_names.join(', ') +
290
-            '</lablel>' +
291
-            '</li>'
292
-        );
293
-    }
294
-
295
-    return $composite_index_list;
296
-}
297
-
298
-/**
299
- * Shows 'Add Index' dialog.
300
- *
301
- * @param array  source_array   Array holding particluar index
302
- * @param string array_index    Index of an INDEX in array
303
- * @param array  target_columns Columns for an INDEX
304
- * @param string col_index      Index of column on form
305
- * @param object index          Index detail object
306
- *
307
- * @return void
308
- */
309
-function PMA_showAddIndexDialog (source_array, array_index, target_columns, col_index, index) {
310
-    // Prepare post-data.
311
-    var $table = $('input[name="table"]');
312
-    var table = $table.length > 0 ? $table.val() : '';
313
-    var post_data = {
314
-        server: PMA_commonParams.get('server'),
315
-        db: $('input[name="db"]').val(),
316
-        table: table,
317
-        ajax_request: 1,
318
-        create_edit_table: 1,
319
-        index: index
320
-    };
321
-
322
-    var columns = {};
323
-    for (var i = 0; i < target_columns.length; i++) {
324
-        var column_name = $('input[name="field_name[' + target_columns[i] + ']"]').val();
325
-        var column_type = $('select[name="field_type[' + target_columns[i] + ']"]').val().toLowerCase();
326
-        columns[column_name] = [column_type, target_columns[i]];
327
-    }
328
-    post_data.columns = JSON.stringify(columns);
329
-
330
-    var button_options = {};
331
-    button_options[PMA_messages.strGo] = function () {
332
-        var is_missing_value = false;
333
-        $('select[name="index[columns][names][]"]').each(function () {
334
-            if ($(this).val() === '') {
335
-                is_missing_value = true;
336
-            }
337
-        });
338
-
339
-        if (! is_missing_value) {
340
-            PMA_addColumnToIndex(
341
-                source_array,
342
-                array_index,
343
-                index.Index_choice,
344
-                col_index
345
-            );
346
-        } else {
347
-            PMA_ajaxShowMessage(
348
-                '<div class="error"><img src="themes/dot.gif" title="" alt=""' +
349
-                ' class="icon ic_s_error" /> ' + PMA_messages.strMissingColumn +
350
-                ' </div>', false
351
-            );
352
-
353
-            return false;
354
-        }
355
-
356
-        $(this).dialog('close');
357
-    };
358
-    button_options[PMA_messages.strCancel] = function () {
359
-        if (col_index >= 0) {
360
-            // Handle state on 'Cancel'.
361
-            var $select_list = $('select[name="field_key[' + col_index + ']"]');
362
-            if (! $select_list.attr('data-index').length) {
363
-                $select_list.find('option[value*="none"]').attr('selected', 'selected');
364
-            } else {
365
-                var previous_index = $select_list.attr('data-index').split(',');
366
-                $select_list.find('option[value*="' + previous_index[0].toLowerCase() + '"]')
367
-                    .attr('selected', 'selected');
368
-            }
369
-        }
370
-        $(this).dialog('close');
371
-    };
372
-    var $msgbox = PMA_ajaxShowMessage();
373
-    $.post('tbl_indexes.php', post_data, function (data) {
374
-        if (data.success === false) {
375
-            // in the case of an error, show the error message returned.
376
-            PMA_ajaxShowMessage(data.error, false);
377
-        } else {
378
-            PMA_ajaxRemoveMessage($msgbox);
379
-            // Show dialog if the request was successful
380
-            var $div = $('<div/>');
381
-            $div
382
-                .append(data.message)
383
-                .dialog({
384
-                    title: PMA_messages.strAddIndex,
385
-                    width: 450,
386
-                    minHeight: 250,
387
-                    open: function () {
388
-                        checkIndexName('index_frm');
389
-                        PMA_showHints($div);
390
-                        PMA_init_slider();
391
-                        $('#index_columns').find('td').each(function () {
392
-                            $(this).css('width', $(this).width() + 'px');
393
-                        });
394
-                        $('#index_columns').find('tbody').sortable({
395
-                            axis: 'y',
396
-                            containment: $('#index_columns').find('tbody'),
397
-                            tolerance: 'pointer'
398
-                        });
399
-                        // We dont need the slider at this moment.
400
-                        $(this).find('fieldset.tblFooters').remove();
401
-                    },
402
-                    modal: true,
403
-                    buttons: button_options,
404
-                    close: function () {
405
-                        $(this).remove();
406
-                    }
407
-                });
408
-        }
409
-    });
410
-}
411
-
412
-/**
413
- * Creates a advanced index type selection dialog.
414
- *
415
- * @param array  source_array Array holding a particular type of indexes
416
- * @param string index_choice Choice of index
417
- * @param string col_index    Index of new column on form
418
- *
419
- * @return void
420
- */
421
-function PMA_indexTypeSelectionDialog (source_array, index_choice, col_index) {
422
-    var $single_column_radio = $('<input type="radio" id="single_column" name="index_choice"' +
423
-        ' checked="checked">' +
424
-        '<label for="single_column">' + PMA_messages.strCreateSingleColumnIndex + '</label>');
425
-    var $composite_index_radio = $('<input type="radio" id="composite_index"' +
426
-        ' name="index_choice">' +
427
-        '<label for="composite_index">' + PMA_messages.strCreateCompositeIndex + '</label>');
428
-    var $dialog_content = $('<fieldset id="advance_index_creator"></fieldset>');
429
-    $dialog_content.append('<legend>' + index_choice.toUpperCase() + '</legend>');
430
-
431
-
432
-    // For UNIQUE/INDEX type, show choice for single-column and composite index.
433
-    $dialog_content.append($single_column_radio);
434
-    $dialog_content.append($composite_index_radio);
435
-
436
-    var button_options = {};
437
-    // 'OK' operation.
438
-    button_options[PMA_messages.strGo] = function () {
439
-        if ($('#single_column').is(':checked')) {
440
-            var index = {
441
-                'Key_name': (index_choice === 'primary' ? 'PRIMARY' : ''),
442
-                'Index_choice': index_choice.toUpperCase()
443
-            };
444
-            PMA_showAddIndexDialog(source_array, (source_array.length), [col_index], col_index, index);
445
-        }
446
-
447
-        if ($('#composite_index').is(':checked')) {
448
-            if ($('input[name="composite_with"]').length !== 0 && $('input[name="composite_with"]:checked').length === 0
449
-            ) {
450
-                PMA_ajaxShowMessage(
451
-                    '<div class="error"><img src="themes/dot.gif" title=""' +
452
-                    ' alt="" class="icon ic_s_error" /> ' +
453
-                    PMA_messages.strFormEmpty +
454
-                    ' </div>',
455
-                    false
456
-                );
457
-                return false;
458
-            }
459
-
460
-            var array_index = $('input[name="composite_with"]:checked').val();
461
-            var source_length = source_array[array_index].columns.length;
462
-            var target_columns = [];
463
-            for (var i = 0; i < source_length; i++) {
464
-                target_columns.push(source_array[array_index].columns[i].col_index);
465
-            }
466
-            target_columns.push(col_index);
467
-
468
-            PMA_showAddIndexDialog(source_array, array_index, target_columns, col_index,
469
-                source_array[array_index]);
470
-        }
471
-
472
-        $(this).remove();
473
-    };
474
-    button_options[PMA_messages.strCancel] = function () {
475
-        // Handle state on 'Cancel'.
476
-        var $select_list = $('select[name="field_key[' + col_index + ']"]');
477
-        if (! $select_list.attr('data-index').length) {
478
-            $select_list.find('option[value*="none"]').attr('selected', 'selected');
479
-        } else {
480
-            var previous_index = $select_list.attr('data-index').split(',');
481
-            $select_list.find('option[value*="' + previous_index[0].toLowerCase() + '"]')
482
-                .attr('selected', 'selected');
483
-        }
484
-        $(this).remove();
485
-    };
486
-    var $dialog = $('<div/>').append($dialog_content).dialog({
487
-        minWidth: 525,
488
-        minHeight: 200,
489
-        modal: true,
490
-        title: PMA_messages.strAddIndex,
491
-        resizable: false,
492
-        buttons: button_options,
493
-        open: function () {
494
-            $('#composite_index').on('change', function () {
495
-                if ($(this).is(':checked')) {
496
-                    $dialog_content.append(PMA_getCompositeIndexList(source_array, col_index));
497
-                }
498
-            });
499
-            $('#single_column').on('change', function () {
500
-                if ($(this).is(':checked')) {
501
-                    if ($('#composite_index_list').length) {
502
-                        $('#composite_index_list').remove();
503
-                    }
504
-                }
505
-            });
506
-        },
507
-        close: function () {
508
-            $('#composite_index').off('change');
509
-            $('#single_column').off('change');
510
-            $(this).remove();
511
-        }
512
-    });
513
-}
514
-
515
-/**
516
- * Unbind all event handlers before tearing down a page
517
- */
518
-AJAX.registerTeardown('indexes.js', function () {
519
-    $(document).off('click', '#save_index_frm');
520
-    $(document).off('click', '#preview_index_frm');
521
-    $(document).off('change', '#select_index_choice');
522
-    $(document).off('click', 'a.drop_primary_key_index_anchor.ajax');
523
-    $(document).off('click', '#table_index tbody tr td.edit_index.ajax, #index_div .add_index.ajax');
524
-    $(document).off('click', '#index_frm input[type=submit]');
525
-    $('body').off('change', 'select[name*="field_key"]');
526
-    $(document).off('click', '.show_index_dialog');
527
-});
528
-
529
-/**
530
- * @description <p>Ajax scripts for table index page</p>
531
- *
532
- * Actions ajaxified here:
533
- * <ul>
534
- * <li>Showing/hiding inputs depending on the index type chosen</li>
535
- * <li>create/edit/drop indexes</li>
536
- * </ul>
537
- */
538
-AJAX.registerOnload('indexes.js', function () {
539
-    // Re-initialize variables.
540
-    primary_indexes = [];
541
-    unique_indexes = [];
542
-    indexes = [];
543
-    fulltext_indexes = [];
544
-    spatial_indexes = [];
545
-
546
-    // for table creation form
547
-    var $engine_selector = $('.create_table_form select[name=tbl_storage_engine]');
548
-    if ($engine_selector.length) {
549
-        PMA_hideShowConnection($engine_selector);
550
-    }
551
-
552
-    var $form = $('#index_frm');
553
-    if ($form.length > 0) {
554
-        showIndexEditDialog($form);
555
-    }
556
-
557
-    $(document).on('click', '#save_index_frm', function (event) {
558
-        event.preventDefault();
559
-        var $form = $('#index_frm');
560
-        var argsep = PMA_commonParams.get('arg_separator');
561
-        var submitData = $form.serialize() + argsep + 'do_save_data=1' + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true';
562
-        var $msgbox = PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
563
-        AJAX.source = $form;
564
-        $.post($form.attr('action'), submitData, AJAX.responseHandler);
565
-    });
566
-
567
-    $(document).on('click', '#preview_index_frm', function (event) {
568
-        event.preventDefault();
569
-        PMA_previewSQL($('#index_frm'));
570
-    });
571
-
572
-    $(document).on('change', '#select_index_choice', function (event) {
573
-        event.preventDefault();
574
-        checkIndexType();
575
-        checkIndexName('index_frm');
576
-    });
577
-
578
-    /**
579
-     * Ajax Event handler for 'Drop Index'
580
-     */
581
-    $(document).on('click', 'a.drop_primary_key_index_anchor.ajax', function (event) {
582
-        event.preventDefault();
583
-        var $anchor = $(this);
584
-        /**
585
-         * @var $curr_row    Object containing reference to the current field's row
586
-         */
587
-        var $curr_row = $anchor.parents('tr');
588
-        /** @var    Number of columns in the key */
589
-        var rows = $anchor.parents('td').attr('rowspan') || 1;
590
-        /** @var    Rows that should be hidden */
591
-        var $rows_to_hide = $curr_row;
592
-        for (var i = 1, $last_row = $curr_row.next(); i < rows; i++, $last_row = $last_row.next()) {
593
-            $rows_to_hide = $rows_to_hide.add($last_row);
594
-        }
595
-
596
-        var question = escapeHtml(
597
-            $curr_row.children('td')
598
-                .children('.drop_primary_key_index_msg')
599
-                .val()
600
-        );
601
-
602
-        PMA_confirmPreviewSQL(question, $anchor.attr('href'), function (url) {
603
-            var $msg = PMA_ajaxShowMessage(PMA_messages.strDroppingPrimaryKeyIndex, false);
604
-            var params = getJSConfirmCommonParam(this, $anchor.getPostData());
605
-            $.post(url, params, function (data) {
606
-                if (typeof data !== 'undefined' && data.success === true) {
607
-                    PMA_ajaxRemoveMessage($msg);
608
-                    var $table_ref = $rows_to_hide.closest('table');
609
-                    if ($rows_to_hide.length === $table_ref.find('tbody > tr').length) {
610
-                        // We are about to remove all rows from the table
611
-                        $table_ref.hide('medium', function () {
612
-                            $('div.no_indexes_defined').show('medium');
613
-                            $rows_to_hide.remove();
614
-                        });
615
-                        $table_ref.siblings('div.notice').hide('medium');
616
-                    } else {
617
-                        // We are removing some of the rows only
618
-                        $rows_to_hide.hide('medium', function () {
619
-                            $(this).remove();
620
-                        });
621
-                    }
622
-                    if ($('.result_query').length) {
623
-                        $('.result_query').remove();
624
-                    }
625
-                    if (data.sql_query) {
626
-                        $('<div class="result_query"></div>')
627
-                            .html(data.sql_query)
628
-                            .prependTo('#structure_content');
629
-                        PMA_highlightSQL($('#page_content'));
630
-                    }
631
-                    PMA_commonActions.refreshMain(false, function () {
632
-                        $('a.ajax[href^=#indexes]').click();
633
-                    });
634
-                    PMA_reloadNavigation();
635
-                } else {
636
-                    PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + ' : ' + data.error, false);
637
-                }
638
-            }); // end $.post()
639
-        }); // end $.PMA_confirm()
640
-    }); // end Drop Primary Key/Index
641
-
642
-    /**
643
-     *Ajax event handler for index edit
644
-    **/
645
-    $(document).on('click', '#table_index tbody tr td.edit_index.ajax, #index_div .add_index.ajax', function (event) {
646
-        event.preventDefault();
647
-        var url;
648
-        var title;
649
-        if ($(this).find('a').length === 0) {
650
-            // Add index
651
-            var valid = checkFormElementInRange(
652
-                $(this).closest('form')[0],
653
-                'added_fields',
654
-                'Column count has to be larger than zero.'
655
-            );
656
-            if (! valid) {
657
-                return;
658
-            }
659
-            url = $(this).closest('form').serialize();
660
-            title = PMA_messages.strAddIndex;
661
-        } else {
662
-            // Edit index
663
-            url = $(this).find('a').getPostData();
664
-            title = PMA_messages.strEditIndex;
665
-        }
666
-        url += PMA_commonParams.get('arg_separator') + 'ajax_request=true';
667
-        indexEditorDialog(url, title, function () {
668
-            // refresh the page using ajax
669
-            PMA_commonActions.refreshMain(false, function () {
670
-                $('a.ajax[href^=#indexes]').click();
671
-            });
672
-        });
673
-    });
674
-
675
-    /**
676
-     * Ajax event handler for advanced index creation during table creation
677
-     * and column addition.
678
-     */
679
-    $('body').on('change', 'select[name*="field_key"]', function () {
680
-        // Index of column on Table edit and create page.
681
-        var col_index = /\d+/.exec($(this).attr('name'));
682
-        col_index = col_index[0];
683
-        // Choice of selected index.
684
-        var index_choice = /[a-z]+/.exec($(this).val());
685
-        index_choice = index_choice[0];
686
-        // Array containing corresponding indexes.
687
-        var source_array = null;
688
-
689
-        if (index_choice === 'none') {
690
-            PMA_removeColumnFromIndex(col_index);
691
-            var id = 'index_name_' + '0' + '_8';
692
-            var $name = $('#' + id);
693
-            if ($name.length === 0) {
694
-                $name = $('<a id="' + id + '" href="#" class="ajax show_index_dialog"></a>');
695
-                $name.insertAfter($('select[name="field_key[' + '0' + ']"]'));
696
-            }
697
-            $name.html('');
698
-            return false;
699
-        }
700
-
701
-        // Select a source array.
702
-        source_array = PMA_getIndexArray(index_choice);
703
-        if (source_array === null) {
704
-            return;
705
-        }
706
-
707
-        if (source_array.length === 0) {
708
-            var index = {
709
-                'Key_name': (index_choice === 'primary' ? 'PRIMARY' : ''),
710
-                'Index_choice': index_choice.toUpperCase()
711
-            };
712
-            PMA_showAddIndexDialog(source_array, 0, [col_index], col_index, index);
713
-        } else {
714
-            if (index_choice === 'primary') {
715
-                var array_index = 0;
716
-                var source_length = source_array[array_index].columns.length;
717
-                var target_columns = [];
718
-                for (var i = 0; i < source_length; i++) {
719
-                    target_columns.push(source_array[array_index].columns[i].col_index);
720
-                }
721
-                target_columns.push(col_index);
722
-
723
-                PMA_showAddIndexDialog(source_array, array_index, target_columns, col_index,
724
-                    source_array[array_index]);
725
-            } else {
726
-                // If there are multiple columns selected for an index, show advanced dialog.
727
-                PMA_indexTypeSelectionDialog(source_array, index_choice, col_index);
728
-            }
729
-        }
730
-    });
731
-
732
-    $(document).on('click', '.show_index_dialog', function (e) {
733
-        e.preventDefault();
734
-
735
-        // Get index details.
736
-        var previous_index = $(this).prev('select')
737
-            .attr('data-index')
738
-            .split(',');
739
-
740
-        var index_choice = previous_index[0];
741
-        var array_index  = previous_index[1];
742
-
743
-        var source_array = PMA_getIndexArray(index_choice);
744
-        if (source_array !== null) {
745
-            var source_length = source_array[array_index].columns.length;
746
-
747
-            var target_columns = [];
748
-            for (var i = 0; i < source_length; i++) {
749
-                target_columns.push(source_array[array_index].columns[i].col_index);
750
-            }
751
-
752
-            PMA_showAddIndexDialog(source_array, array_index, target_columns, -1, source_array[array_index]);
753
-        }
754
-    });
755
-
756
-    $('#index_frm').on('submit', function () {
757
-        if (typeof(this.elements['index[Key_name]'].disabled) !== 'undefined') {
758
-            this.elements['index[Key_name]'].disabled = false;
759
-        }
760
-    });
761
-});

+ 0
- 678
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-migrate.js View File

1
-/*!
2
- * jQuery Migrate - v3.1.0 - 2019-06-08
3
- * Copyright OpenJS Foundation and other contributors
4
- */
5
-;( function( factory ) {
6
-	if ( typeof define === "function" && define.amd ) {
7
-
8
-		// AMD. Register as an anonymous module.
9
-		define( [ "jquery" ], function ( jQuery ) {
10
-			return factory( jQuery, window );
11
-		} );
12
-	} else if ( typeof module === "object" && module.exports ) {
13
-
14
-		// Node/CommonJS
15
-		// eslint-disable-next-line no-undef
16
-		module.exports = factory( require( "jquery" ), window );
17
-	} else {
18
-
19
-		// Browser globals
20
-		factory( jQuery, window );
21
-	}
22
-} )( function( jQuery, window ) {
23
-"use strict";
24
-
25
-
26
-jQuery.migrateVersion = "3.1.0";
27
-
28
-/* exported jQueryVersionSince, compareVersions */
29
-
30
-// Returns 0 if v1 == v2, -1 if v1 < v2, 1 if v1 > v2
31
-function compareVersions( v1, v2 ) {
32
-	var rVersionParts = /^(\d+)\.(\d+)\.(\d+)/,
33
-		v1p = rVersionParts.exec( v1 ) || [ ],
34
-		v2p = rVersionParts.exec( v2 ) || [ ];
35
-
36
-	for ( var i = 1; i <= 3; i++ ) {
37
-		if ( +v1p[ i ] > +v2p[ i ] ) {
38
-			return 1;
39
-		}
40
-		if ( +v1p[ i ] < +v2p[ i ] ) {
41
-			return -1;
42
-		}
43
-	}
44
-	return 0;
45
-}
46
-
47
-function jQueryVersionSince( version ) {
48
-	return compareVersions( jQuery.fn.jquery, version ) >= 0;
49
-}
50
-
51
-/* exported migrateWarn, migrateWarnFunc, migrateWarnProp */
52
-
53
-( function() {
54
-
55
-	// Support: IE9 only
56
-	// IE9 only creates console object when dev tools are first opened
57
-	// IE9 console is a host object, callable but doesn't have .apply()
58
-	if ( !window.console || !window.console.log ) {
59
-		return;
60
-	}
61
-
62
-	// Need jQuery 3.0.0+ and no older Migrate loaded
63
-	if ( !jQuery || !jQueryVersionSince( "3.0.0" ) ) {
64
-		window.console.log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
65
-	}
66
-	if ( jQuery.migrateWarnings ) {
67
-		window.console.log( "JQMIGRATE: Migrate plugin loaded multiple times" );
68
-	}
69
-
70
-	// Show a message on the console so devs know we're active
71
-	window.console.log( "JQMIGRATE: Migrate is installed" +
72
-		( jQuery.migrateMute ? "" : " with logging active" ) +
73
-		", version " + jQuery.migrateVersion );
74
-
75
-} )();
76
-
77
-var warnedAbout = {};
78
-
79
-// List of warnings already given; public read only
80
-jQuery.migrateWarnings = [];
81
-
82
-// Set to false to disable traces that appear with warnings
83
-if ( jQuery.migrateTrace === undefined ) {
84
-	jQuery.migrateTrace = true;
85
-}
86
-
87
-// Forget any warnings we've already given; public
88
-jQuery.migrateReset = function() {
89
-	warnedAbout = {};
90
-	jQuery.migrateWarnings.length = 0;
91
-};
92
-
93
-function migrateWarn( msg ) {
94
-	var console = window.console;
95
-	if ( !warnedAbout[ msg ] ) {
96
-		warnedAbout[ msg ] = true;
97
-		jQuery.migrateWarnings.push( msg );
98
-		if ( console && console.warn && !jQuery.migrateMute ) {
99
-			console.warn( "JQMIGRATE: " + msg );
100
-			if ( jQuery.migrateTrace && console.trace ) {
101
-				console.trace();
102
-			}
103
-		}
104
-	}
105
-}
106
-
107
-function migrateWarnProp( obj, prop, value, msg ) {
108
-	Object.defineProperty( obj, prop, {
109
-		configurable: true,
110
-		enumerable: true,
111
-		get: function() {
112
-			migrateWarn( msg );
113
-			return value;
114
-		},
115
-		set: function( newValue ) {
116
-			migrateWarn( msg );
117
-			value = newValue;
118
-		}
119
-	} );
120
-}
121
-
122
-function migrateWarnFunc( obj, prop, newFunc, msg ) {
123
-	obj[ prop ] = function() {
124
-		migrateWarn( msg );
125
-		return newFunc.apply( this, arguments );
126
-	};
127
-}
128
-
129
-if ( window.document.compatMode === "BackCompat" ) {
130
-
131
-	// JQuery has never supported or tested Quirks Mode
132
-	migrateWarn( "jQuery is not compatible with Quirks Mode" );
133
-}
134
-
135
-
136
-var oldInit = jQuery.fn.init,
137
-	oldIsNumeric = jQuery.isNumeric,
138
-	oldFind = jQuery.find,
139
-	rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
140
-	rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
141
-
142
-jQuery.fn.init = function( arg1 ) {
143
-	var args = Array.prototype.slice.call( arguments );
144
-
145
-	if ( typeof arg1 === "string" && arg1 === "#" ) {
146
-
147
-		// JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
148
-		migrateWarn( "jQuery( '#' ) is not a valid selector" );
149
-		args[ 0 ] = [];
150
-	}
151
-
152
-	return oldInit.apply( this, args );
153
-};
154
-jQuery.fn.init.prototype = jQuery.fn;
155
-
156
-jQuery.find = function( selector ) {
157
-	var args = Array.prototype.slice.call( arguments );
158
-
159
-	// Support: PhantomJS 1.x
160
-	// String#match fails to match when used with a //g RegExp, only on some strings
161
-	if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {
162
-
163
-		// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
164
-		// First see if qS thinks it's a valid selector, if so avoid a false positive
165
-		try {
166
-			window.document.querySelector( selector );
167
-		} catch ( err1 ) {
168
-
169
-			// Didn't *look* valid to qSA, warn and try quoting what we think is the value
170
-			selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
171
-				return "[" + attr + op + "\"" + value + "\"]";
172
-			} );
173
-
174
-			// If the regexp *may* have created an invalid selector, don't update it
175
-			// Note that there may be false alarms if selector uses jQuery extensions
176
-			try {
177
-				window.document.querySelector( selector );
178
-				migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
179
-				args[ 0 ] = selector;
180
-			} catch ( err2 ) {
181
-				migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
182
-			}
183
-		}
184
-	}
185
-
186
-	return oldFind.apply( this, args );
187
-};
188
-
189
-// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
190
-var findProp;
191
-for ( findProp in oldFind ) {
192
-	if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
193
-		jQuery.find[ findProp ] = oldFind[ findProp ];
194
-	}
195
-}
196
-
197
-// The number of elements contained in the matched element set
198
-jQuery.fn.size = function() {
199
-	migrateWarn( "jQuery.fn.size() is deprecated and removed; use the .length property" );
200
-	return this.length;
201
-};
202
-
203
-jQuery.parseJSON = function() {
204
-	migrateWarn( "jQuery.parseJSON is deprecated; use JSON.parse" );
205
-	return JSON.parse.apply( null, arguments );
206
-};
207
-
208
-jQuery.isNumeric = function( val ) {
209
-
210
-	// The jQuery 2.2.3 implementation of isNumeric
211
-	function isNumeric2( obj ) {
212
-		var realStringObj = obj && obj.toString();
213
-		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
214
-	}
215
-
216
-	var newValue = oldIsNumeric( val ),
217
-		oldValue = isNumeric2( val );
218
-
219
-	if ( newValue !== oldValue ) {
220
-		migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" );
221
-	}
222
-
223
-	return oldValue;
224
-};
225
-
226
-if ( jQueryVersionSince( "3.3.0" ) ) {
227
-	migrateWarnFunc( jQuery, "isWindow",
228
-		function( obj ) {
229
-			return obj != null && obj === obj.window;
230
-		},
231
-		"jQuery.isWindow() is deprecated"
232
-	);
233
-}
234
-
235
-migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady,
236
-	"jQuery.holdReady is deprecated" );
237
-
238
-migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort,
239
-	"jQuery.unique is deprecated; use jQuery.uniqueSort" );
240
-
241
-// Now jQuery.expr.pseudos is the standard incantation
242
-migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
243
-	"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" );
244
-migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
245
-	"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" );
246
-
247
-// Prior to jQuery 3.2 there were internal refs so we don't warn there
248
-if ( jQueryVersionSince( "3.2.0" ) ) {
249
-	migrateWarnFunc( jQuery, "nodeName", jQuery.nodeName,
250
-	"jQuery.nodeName is deprecated" );
251
-}
252
-
253
-
254
-var oldAjax = jQuery.ajax;
255
-
256
-jQuery.ajax = function( ) {
257
-	var jQXHR = oldAjax.apply( this, arguments );
258
-
259
-	// Be sure we got a jQXHR (e.g., not sync)
260
-	if ( jQXHR.promise ) {
261
-		migrateWarnFunc( jQXHR, "success", jQXHR.done,
262
-			"jQXHR.success is deprecated and removed" );
263
-		migrateWarnFunc( jQXHR, "error", jQXHR.fail,
264
-			"jQXHR.error is deprecated and removed" );
265
-		migrateWarnFunc( jQXHR, "complete", jQXHR.always,
266
-			"jQXHR.complete is deprecated and removed" );
267
-	}
268
-
269
-	return jQXHR;
270
-};
271
-
272
-
273
-var oldRemoveAttr = jQuery.fn.removeAttr,
274
-	oldToggleClass = jQuery.fn.toggleClass,
275
-	rmatchNonSpace = /\S+/g;
276
-
277
-jQuery.fn.removeAttr = function( name ) {
278
-	var self = this;
279
-
280
-	jQuery.each( name.match( rmatchNonSpace ), function( _i, attr ) {
281
-		if ( jQuery.expr.match.bool.test( attr ) ) {
282
-			migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
283
-			self.prop( attr, false );
284
-		}
285
-	} );
286
-
287
-	return oldRemoveAttr.apply( this, arguments );
288
-};
289
-
290
-jQuery.fn.toggleClass = function( state ) {
291
-
292
-	// Only deprecating no-args or single boolean arg
293
-	if ( state !== undefined && typeof state !== "boolean" ) {
294
-		return oldToggleClass.apply( this, arguments );
295
-	}
296
-
297
-	migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
298
-
299
-	// Toggle entire class name of each element
300
-	return this.each( function() {
301
-		var className = this.getAttribute && this.getAttribute( "class" ) || "";
302
-
303
-		if ( className ) {
304
-			jQuery.data( this, "__className__", className );
305
-		}
306
-
307
-		// If the element has a class name or if we're passed `false`,
308
-		// then remove the whole classname (if there was one, the above saved it).
309
-		// Otherwise bring back whatever was previously saved (if anything),
310
-		// falling back to the empty string if nothing was stored.
311
-		if ( this.setAttribute ) {
312
-			this.setAttribute( "class",
313
-				className || state === false ?
314
-				"" :
315
-				jQuery.data( this, "__className__" ) || ""
316
-			);
317
-		}
318
-	} );
319
-};
320
-
321
-
322
-var internalSwapCall = false;
323
-
324
-// If this version of jQuery has .swap(), don't false-alarm on internal uses
325
-if ( jQuery.swap ) {
326
-	jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
327
-		var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;
328
-
329
-		if ( oldHook ) {
330
-			jQuery.cssHooks[ name ].get = function() {
331
-				var ret;
332
-
333
-				internalSwapCall = true;
334
-				ret = oldHook.apply( this, arguments );
335
-				internalSwapCall = false;
336
-				return ret;
337
-			};
338
-		}
339
-	} );
340
-}
341
-
342
-jQuery.swap = function( elem, options, callback, args ) {
343
-	var ret, name,
344
-		old = {};
345
-
346
-	if ( !internalSwapCall ) {
347
-		migrateWarn( "jQuery.swap() is undocumented and deprecated" );
348
-	}
349
-
350
-	// Remember the old values, and insert the new ones
351
-	for ( name in options ) {
352
-		old[ name ] = elem.style[ name ];
353
-		elem.style[ name ] = options[ name ];
354
-	}
355
-
356
-	ret = callback.apply( elem, args || [] );
357
-
358
-	// Revert the old values
359
-	for ( name in options ) {
360
-		elem.style[ name ] = old[ name ];
361
-	}
362
-
363
-	return ret;
364
-};
365
-
366
-var oldData = jQuery.data;
367
-
368
-jQuery.data = function( elem, name, value ) {
369
-	var curData;
370
-
371
-	// Name can be an object, and each entry in the object is meant to be set as data
372
-	if ( name && typeof name === "object" && arguments.length === 2 ) {
373
-		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
374
-		var sameKeys = {};
375
-		for ( var key in name ) {
376
-			if ( key !== jQuery.camelCase( key ) ) {
377
-				migrateWarn( "jQuery.data() always sets/gets camelCased names: " + key );
378
-				curData[ key ] = name[ key ];
379
-			} else {
380
-				sameKeys[ key ] = name[ key ];
381
-			}
382
-		}
383
-
384
-		oldData.call( this, elem, sameKeys );
385
-
386
-		return name;
387
-	}
388
-
389
-	// If the name is transformed, look for the un-transformed name in the data object
390
-	if ( name && typeof name === "string" && name !== jQuery.camelCase( name ) ) {
391
-		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
392
-		if ( curData && name in curData ) {
393
-			migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
394
-			if ( arguments.length > 2 ) {
395
-				curData[ name ] = value;
396
-			}
397
-			return curData[ name ];
398
-		}
399
-	}
400
-
401
-	return oldData.apply( this, arguments );
402
-};
403
-
404
-var oldTweenRun = jQuery.Tween.prototype.run;
405
-var linearEasing = function( pct ) {
406
-		return pct;
407
-	};
408
-
409
-jQuery.Tween.prototype.run = function( ) {
410
-	if ( jQuery.easing[ this.easing ].length > 1 ) {
411
-		migrateWarn(
412
-			"'jQuery.easing." + this.easing.toString() + "' should use only one argument"
413
-		);
414
-
415
-		jQuery.easing[ this.easing ] = linearEasing;
416
-	}
417
-
418
-	oldTweenRun.apply( this, arguments );
419
-};
420
-
421
-var intervalValue = jQuery.fx.interval || 13,
422
-	intervalMsg = "jQuery.fx.interval is deprecated";
423
-
424
-// Support: IE9, Android <=4.4
425
-// Avoid false positives on browsers that lack rAF
426
-// Don't warn if document is hidden, jQuery uses setTimeout (#292)
427
-if ( window.requestAnimationFrame ) {
428
-	Object.defineProperty( jQuery.fx, "interval", {
429
-		configurable: true,
430
-		enumerable: true,
431
-		get: function() {
432
-			if ( !window.document.hidden ) {
433
-				migrateWarn( intervalMsg );
434
-			}
435
-			return intervalValue;
436
-		},
437
-		set: function( newValue ) {
438
-			migrateWarn( intervalMsg );
439
-			intervalValue = newValue;
440
-		}
441
-	} );
442
-}
443
-
444
-var oldLoad = jQuery.fn.load,
445
-	oldEventAdd = jQuery.event.add,
446
-	originalFix = jQuery.event.fix;
447
-
448
-jQuery.event.props = [];
449
-jQuery.event.fixHooks = {};
450
-
451
-migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat,
452
-	"jQuery.event.props.concat() is deprecated and removed" );
453
-
454
-jQuery.event.fix = function( originalEvent ) {
455
-	var event,
456
-		type = originalEvent.type,
457
-		fixHook = this.fixHooks[ type ],
458
-		props = jQuery.event.props;
459
-
460
-	if ( props.length ) {
461
-		migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
462
-		while ( props.length ) {
463
-			jQuery.event.addProp( props.pop() );
464
-		}
465
-	}
466
-
467
-	if ( fixHook && !fixHook._migrated_ ) {
468
-		fixHook._migrated_ = true;
469
-		migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
470
-		if ( ( props = fixHook.props ) && props.length ) {
471
-			while ( props.length ) {
472
-				jQuery.event.addProp( props.pop() );
473
-			}
474
-		}
475
-	}
476
-
477
-	event = originalFix.call( this, originalEvent );
478
-
479
-	return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
480
-};
481
-
482
-jQuery.event.add = function( elem, types ) {
483
-
484
-	// This misses the multiple-types case but that seems awfully rare
485
-	if ( elem === window && types === "load" && window.document.readyState === "complete" ) {
486
-		migrateWarn( "jQuery(window).on('load'...) called after load event occurred" );
487
-	}
488
-	return oldEventAdd.apply( this, arguments );
489
-};
490
-
491
-jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
492
-
493
-	jQuery.fn[ name ] = function() {
494
-		var args = Array.prototype.slice.call( arguments, 0 );
495
-
496
-		// If this is an ajax load() the first arg should be the string URL;
497
-		// technically this could also be the "Anything" arg of the event .load()
498
-		// which just goes to show why this dumb signature has been deprecated!
499
-		// jQuery custom builds that exclude the Ajax module justifiably die here.
500
-		if ( name === "load" && typeof args[ 0 ] === "string" ) {
501
-			return oldLoad.apply( this, args );
502
-		}
503
-
504
-		migrateWarn( "jQuery.fn." + name + "() is deprecated" );
505
-
506
-		args.splice( 0, 0, name );
507
-		if ( arguments.length ) {
508
-			return this.on.apply( this, args );
509
-		}
510
-
511
-		// Use .triggerHandler here because:
512
-		// - load and unload events don't need to bubble, only applied to window or image
513
-		// - error event should not bubble to window, although it does pre-1.7
514
-		// See http://bugs.jquery.com/ticket/11820
515
-		this.triggerHandler.apply( this, args );
516
-		return this;
517
-	};
518
-
519
-} );
520
-
521
-jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
522
-	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
523
-	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
524
-	function( _i, name ) {
525
-
526
-	// Handle event binding
527
-	jQuery.fn[ name ] = function( data, fn ) {
528
-		migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" );
529
-		return arguments.length > 0 ?
530
-			this.on( name, null, data, fn ) :
531
-			this.trigger( name );
532
-	};
533
-} );
534
-
535
-// Trigger "ready" event only once, on document ready
536
-jQuery( function() {
537
-	jQuery( window.document ).triggerHandler( "ready" );
538
-} );
539
-
540
-jQuery.event.special.ready = {
541
-	setup: function() {
542
-		if ( this === window.document ) {
543
-			migrateWarn( "'ready' event is deprecated" );
544
-		}
545
-	}
546
-};
547
-
548
-jQuery.fn.extend( {
549
-
550
-	bind: function( types, data, fn ) {
551
-		migrateWarn( "jQuery.fn.bind() is deprecated" );
552
-		return this.on( types, null, data, fn );
553
-	},
554
-	unbind: function( types, fn ) {
555
-		migrateWarn( "jQuery.fn.unbind() is deprecated" );
556
-		return this.off( types, null, fn );
557
-	},
558
-	delegate: function( selector, types, data, fn ) {
559
-		migrateWarn( "jQuery.fn.delegate() is deprecated" );
560
-		return this.on( types, selector, data, fn );
561
-	},
562
-	undelegate: function( selector, types, fn ) {
563
-		migrateWarn( "jQuery.fn.undelegate() is deprecated" );
564
-		return arguments.length === 1 ?
565
-			this.off( selector, "**" ) :
566
-			this.off( types, selector || "**", fn );
567
-	},
568
-	hover: function( fnOver, fnOut ) {
569
-		migrateWarn( "jQuery.fn.hover() is deprecated" );
570
-		return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
571
-	}
572
-} );
573
-
574
-
575
-var oldOffset = jQuery.fn.offset;
576
-
577
-jQuery.fn.offset = function() {
578
-	var docElem,
579
-		elem = this[ 0 ],
580
-		origin = { top: 0, left: 0 };
581
-
582
-	if ( !elem || !elem.nodeType ) {
583
-		migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
584
-		return origin;
585
-	}
586
-
587
-	docElem = ( elem.ownerDocument || window.document ).documentElement;
588
-	if ( !jQuery.contains( docElem, elem ) ) {
589
-		migrateWarn( "jQuery.fn.offset() requires an element connected to a document" );
590
-		return origin;
591
-	}
592
-
593
-	return oldOffset.apply( this, arguments );
594
-};
595
-
596
-
597
-var oldParam = jQuery.param;
598
-
599
-jQuery.param = function( data, traditional ) {
600
-	var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
601
-
602
-	if ( traditional === undefined && ajaxTraditional ) {
603
-
604
-		migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
605
-		traditional = ajaxTraditional;
606
-	}
607
-
608
-	return oldParam.call( this, data, traditional );
609
-};
610
-
611
-var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
612
-
613
-jQuery.fn.andSelf = function() {
614
-	migrateWarn( "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" );
615
-	return oldSelf.apply( this, arguments );
616
-};
617
-
618
-
619
-var oldDeferred = jQuery.Deferred,
620
-	tuples = [
621
-
622
-		// Action, add listener, callbacks, .then handlers, final state
623
-		[ "resolve", "done", jQuery.Callbacks( "once memory" ),
624
-			jQuery.Callbacks( "once memory" ), "resolved" ],
625
-		[ "reject", "fail", jQuery.Callbacks( "once memory" ),
626
-			jQuery.Callbacks( "once memory" ), "rejected" ],
627
-		[ "notify", "progress", jQuery.Callbacks( "memory" ),
628
-			jQuery.Callbacks( "memory" ) ]
629
-	];
630
-
631
-jQuery.Deferred = function( func ) {
632
-	var deferred = oldDeferred(),
633
-		promise = deferred.promise();
634
-
635
-	deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
636
-		var fns = arguments;
637
-
638
-		migrateWarn( "deferred.pipe() is deprecated" );
639
-
640
-		return jQuery.Deferred( function( newDefer ) {
641
-			jQuery.each( tuples, function( i, tuple ) {
642
-				var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
643
-
644
-				// Deferred.done(function() { bind to newDefer or newDefer.resolve })
645
-				// deferred.fail(function() { bind to newDefer or newDefer.reject })
646
-				// deferred.progress(function() { bind to newDefer or newDefer.notify })
647
-				deferred[ tuple[ 1 ] ]( function() {
648
-					var returned = fn && fn.apply( this, arguments );
649
-					if ( returned && jQuery.isFunction( returned.promise ) ) {
650
-						returned.promise()
651
-							.done( newDefer.resolve )
652
-							.fail( newDefer.reject )
653
-							.progress( newDefer.notify );
654
-					} else {
655
-						newDefer[ tuple[ 0 ] + "With" ](
656
-							this === promise ? newDefer.promise() : this,
657
-							fn ? [ returned ] : arguments
658
-						);
659
-					}
660
-				} );
661
-			} );
662
-			fns = null;
663
-		} ).promise();
664
-
665
-	};
666
-
667
-	if ( func ) {
668
-		func.call( deferred, deferred );
669
-	}
670
-
671
-	return deferred;
672
-};
673
-
674
-// Preserve handler of uncaught exceptions in promise chains
675
-jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
676
-
677
-return jQuery;
678
-} );

+ 0
- 2291
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-ui-timepicker-addon.js
File diff suppressed because it is too large
View File


+ 0
- 1312
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-ui.css
File diff suppressed because it is too large
View File


+ 0
- 13
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery-ui.js
File diff suppressed because it is too large
View File


+ 0
- 71
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery.js View File

1
-/**
2
- * Debounce and throttle function's decorator plugin 1.0.5
3
- *
4
- * Copyright (c) 2009 Filatov Dmitry (alpha@zforms.ru)
5
- * Dual licensed under the MIT and GPL licenses:
6
- * http://www.opensource.org/licenses/mit-license.php
7
- * http://www.gnu.org/licenses/gpl.html
8
- *
9
- */
10
-
11
-(function($) {
12
-
13
-$.extend({
14
-
15
-	debounce : function(fn, timeout, invokeAsap, ctx) {
16
-
17
-		if(arguments.length == 3 && typeof invokeAsap != 'boolean') {
18
-			ctx = invokeAsap;
19
-			invokeAsap = false;
20
-		}
21
-
22
-		var timer;
23
-
24
-		return function() {
25
-
26
-			var args = arguments;
27
-            ctx = ctx || this;
28
-
29
-			invokeAsap && !timer && fn.apply(ctx, args);
30
-
31
-			clearTimeout(timer);
32
-
33
-			timer = setTimeout(function() {
34
-				!invokeAsap && fn.apply(ctx, args);
35
-				timer = null;
36
-			}, timeout);
37
-
38
-		};
39
-
40
-	},
41
-
42
-	throttle : function(fn, timeout, ctx) {
43
-
44
-		var timer, args, needInvoke;
45
-
46
-		return function() {
47
-
48
-			args = arguments;
49
-			needInvoke = true;
50
-			ctx = ctx || this;
51
-
52
-			if(!timer) {
53
-				(function() {
54
-					if(needInvoke) {
55
-						fn.apply(ctx, args);
56
-						needInvoke = false;
57
-						timer = setTimeout(arguments.callee, timeout);
58
-					}
59
-					else {
60
-						timer = null;
61
-					}
62
-				})();
63
-			}
64
-
65
-		};
66
-
67
-	}
68
-
69
-});
70
-
71
-})(jQuery);

+ 0
- 2
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_002.js
File diff suppressed because it is too large
View File


+ 0
- 117
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_003.js View File

1
-/*
2
- * Copyright (c) 2008 Greg Weber greg at gregweber.info
3
- * Dual licensed under the MIT and GPLv2 licenses just as jQuery is:
4
- * http://jquery.org/license
5
- *
6
- * Multi-columns fork by natinusala
7
- *
8
- * documentation at http://gregweber.info/projects/uitablefilter
9
- *                  https://github.com/natinusala/jquery-uitablefilter
10
- *
11
- * allows table rows to be filtered (made invisible)
12
- * <code>
13
- * t = $('table')
14
- * $.uiTableFilter( t, phrase )
15
- * </code>
16
- * arguments:
17
- *   jQuery object containing table rows
18
- *   phrase to search for
19
- *   optional arguments:
20
- *     array of columns to limit search too (the column title in the table header)
21
- *     ifHidden - callback to execute if one or more elements was hidden
22
- *     tdElem - specific element within <td> to be considered for searching or to limit search to,
23
- *     default:whole <td>. useful if <td> has more than one elements inside but want to
24
- *     limit search within only some of elements or only visible elements. eg tdElem can be "td span"
25
- */
26
-(function($) {
27
-  $.uiTableFilter = function(jq, phrase, column, ifHidden, tdElem){
28
-    if(!tdElem) tdElem = "td";
29
-    var new_hidden = false;
30
-    if( this.last_phrase === phrase ) return false;
31
-
32
-    var phrase_length = phrase.length;
33
-    var words = phrase.toLowerCase().split(" ");
34
-
35
-    // these function pointers may change
36
-    var matches = function(elem) { elem.show() }
37
-    var noMatch = function(elem) { elem.hide(); new_hidden = true }
38
-    var getText = function(elem) { return elem.text() }
39
-
40
-    if( column )
41
-    {
42
-      if (!$.isArray(column))
43
-      {
44
-        column = new Array(column);
45
-      }
46
-
47
-      var index = new Array();
48
-
49
-      jq.find("thead > tr:last > th").each(function(i)
50
-      {
51
-          for (var j = 0; j < column.length; j++)
52
-          {
53
-              if ($.trim($(this).text()) == column[j])
54
-              {
55
-                  index[j] = i;
56
-                  break;
57
-              }
58
-          }
59
-
60
-      });
61
-
62
-      getText = function(elem) {
63
-          var selector = "";
64
-          for (var i = 0; i < index.length; i++)
65
-          {
66
-              if (i != 0) {selector += ",";}
67
-              selector += tdElem + ":eq(" + index[i] + ")";
68
-          }
69
-          return $(elem.find((selector))).text();
70
-      }
71
-    }
72
-
73
-    // if added one letter to last time,
74
-    // just check newest word and only need to hide
75
-    if( (words.size > 1) && (phrase.substr(0, phrase_length - 1) ===
76
-          this.last_phrase) ) {
77
-
78
-      if( phrase[-1] === " " )
79
-      { this.last_phrase = phrase; return false; }
80
-
81
-      var words = words[-1]; // just search for the newest word
82
-
83
-      // only hide visible rows
84
-      matches = function(elem) {;}
85
-      var elems = jq.find("tbody:first > tr:visible")
86
-    }
87
-    else {
88
-      new_hidden = true;
89
-      var elems = jq.find("tbody:first > tr")
90
-    }
91
-
92
-    elems.each(function(){
93
-      var elem = $(this);
94
-      $.uiTableFilter.has_words( getText(elem), words, false ) ?
95
-        matches(elem) : noMatch(elem);
96
-    });
97
-
98
-    last_phrase = phrase;
99
-    if( ifHidden && new_hidden ) ifHidden();
100
-    return jq;
101
-  };
102
-
103
-  // caching for speedup
104
-  $.uiTableFilter.last_phrase = ""
105
-
106
-  // not jQuery dependent
107
-  // "" [""] -> Boolean
108
-  // "" [""] Boolean -> Boolean
109
-  $.uiTableFilter.has_words = function( str, words, caseSensitive )
110
-  {
111
-    var text = caseSensitive ? str : str.toLowerCase();
112
-    for (var i=0; i < words.length; i++) {
113
-      if (text.indexOf(words[i]) === -1) return false;
114
-    }
115
-    return true;
116
-  }
117
-}) (jQuery);

+ 0
- 402
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_004.js View File

1
-/*! 
2
- * jquery.event.drag - v 2.2
3
- * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com
4
- * Open Source MIT License - http://threedubmedia.com/code/license
5
- */
6
-// Created: 2008-06-04 
7
-// Updated: 2012-05-21
8
-// REQUIRES: jquery 1.7.x
9
-
10
-;(function( $ ){
11
-
12
-// add the jquery instance method
13
-$.fn.drag = function( str, arg, opts ){
14
-	// figure out the event type
15
-	var type = typeof str == "string" ? str : "",
16
-	// figure out the event handler...
17
-	fn = $.isFunction( str ) ? str : $.isFunction( arg ) ? arg : null;
18
-	// fix the event type
19
-	if ( type.indexOf("drag") !== 0 ) 
20
-		type = "drag"+ type;
21
-	// were options passed
22
-	opts = ( str == fn ? arg : opts ) || {};
23
-	// trigger or bind event handler
24
-	return fn ? this.bind( type, opts, fn ) : this.trigger( type );
25
-};
26
-
27
-// local refs (increase compression)
28
-var $event = $.event, 
29
-$special = $event.special,
30
-// configure the drag special event 
31
-drag = $special.drag = {
32
-	
33
-	// these are the default settings
34
-	defaults: {
35
-		which: 1, // mouse button pressed to start drag sequence
36
-		distance: 0, // distance dragged before dragstart
37
-		not: ':input', // selector to suppress dragging on target elements
38
-		handle: null, // selector to match handle target elements
39
-		relative: false, // true to use "position", false to use "offset"
40
-		drop: true, // false to suppress drop events, true or selector to allow
41
-		click: false // false to suppress click events after dragend (no proxy)
42
-	},
43
-	
44
-	// the key name for stored drag data
45
-	datakey: "dragdata",
46
-	
47
-	// prevent bubbling for better performance
48
-	noBubble: true,
49
-	
50
-	// count bound related events
51
-	add: function( obj ){ 
52
-		// read the interaction data
53
-		var data = $.data( this, drag.datakey ),
54
-		// read any passed options 
55
-		opts = obj.data || {};
56
-		// count another realted event
57
-		data.related += 1;
58
-		// extend data options bound with this event
59
-		// don't iterate "opts" in case it is a node 
60
-		$.each( drag.defaults, function( key, def ){
61
-			if ( opts[ key ] !== undefined )
62
-				data[ key ] = opts[ key ];
63
-		});
64
-	},
65
-	
66
-	// forget unbound related events
67
-	remove: function(){
68
-		$.data( this, drag.datakey ).related -= 1;
69
-	},
70
-	
71
-	// configure interaction, capture settings
72
-	setup: function(){
73
-		// check for related events
74
-		if ( $.data( this, drag.datakey ) ) 
75
-			return;
76
-		// initialize the drag data with copied defaults
77
-		var data = $.extend({ related:0 }, drag.defaults );
78
-		// store the interaction data
79
-		$.data( this, drag.datakey, data );
80
-		// bind the mousedown event, which starts drag interactions
81
-		$event.add( this, "touchstart mousedown", drag.init, data );
82
-		// prevent image dragging in IE...
83
-		if ( this.attachEvent ) 
84
-			this.attachEvent("ondragstart", drag.dontstart ); 
85
-	},
86
-	
87
-	// destroy configured interaction
88
-	teardown: function(){
89
-		var data = $.data( this, drag.datakey ) || {};
90
-		// check for related events
91
-		if ( data.related ) 
92
-			return;
93
-		// remove the stored data
94
-		$.removeData( this, drag.datakey );
95
-		// remove the mousedown event
96
-		$event.remove( this, "touchstart mousedown", drag.init );
97
-		// enable text selection
98
-		drag.textselect( true ); 
99
-		// un-prevent image dragging in IE...
100
-		if ( this.detachEvent ) 
101
-			this.detachEvent("ondragstart", drag.dontstart ); 
102
-	},
103
-		
104
-	// initialize the interaction
105
-	init: function( event ){ 
106
-		// sorry, only one touch at a time
107
-		if ( drag.touched ) 
108
-			return;
109
-		// the drag/drop interaction data
110
-		var dd = event.data, results;
111
-		// check the which directive
112
-		if ( event.which != 0 && dd.which > 0 && event.which != dd.which ) 
113
-			return; 
114
-		// check for suppressed selector
115
-		if ( $( event.target ).is( dd.not ) ) 
116
-			return;
117
-		// check for handle selector
118
-		if ( dd.handle && !$( event.target ).closest( dd.handle, event.currentTarget ).length ) 
119
-			return;
120
-
121
-		drag.touched = event.type == 'touchstart' ? this : null;
122
-		dd.propagates = 1;
123
-		dd.mousedown = this;
124
-		dd.interactions = [ drag.interaction( this, dd ) ];
125
-		dd.target = event.target;
126
-		dd.pageX = event.pageX;
127
-		dd.pageY = event.pageY;
128
-		dd.dragging = null;
129
-		// handle draginit event... 
130
-		results = drag.hijack( event, "draginit", dd );
131
-		// early cancel
132
-		if ( !dd.propagates )
133
-			return;
134
-		// flatten the result set
135
-		results = drag.flatten( results );
136
-		// insert new interaction elements
137
-		if ( results && results.length ){
138
-			dd.interactions = [];
139
-			$.each( results, function(){
140
-				dd.interactions.push( drag.interaction( this, dd ) );
141
-			});
142
-		}
143
-		// remember how many interactions are propagating
144
-		dd.propagates = dd.interactions.length;
145
-		// locate and init the drop targets
146
-		if ( dd.drop !== false && $special.drop ) 
147
-			$special.drop.handler( event, dd );
148
-		// disable text selection
149
-		drag.textselect( false ); 
150
-		// bind additional events...
151
-		if ( drag.touched )
152
-			$event.add( drag.touched, "touchmove touchend", drag.handler, dd );
153
-		else 
154
-			$event.add( document, "mousemove mouseup", drag.handler, dd );
155
-		// helps prevent text selection or scrolling
156
-		if ( !drag.touched || dd.live )
157
-			return false;
158
-	},	
159
-	
160
-	// returns an interaction object
161
-	interaction: function( elem, dd ){
162
-		var offset = $( elem )[ dd.relative ? "position" : "offset" ]() || { top:0, left:0 };
163
-		return {
164
-			drag: elem, 
165
-			callback: new drag.callback(), 
166
-			droppable: [],
167
-			offset: offset
168
-		};
169
-	},
170
-	
171
-	// handle drag-releatd DOM events
172
-	handler: function( event ){ 
173
-		// read the data before hijacking anything
174
-		var dd = event.data;	
175
-		// handle various events
176
-		switch ( event.type ){
177
-			// mousemove, check distance, start dragging
178
-			case !dd.dragging && 'touchmove': 
179
-				event.preventDefault();
180
-			case !dd.dragging && 'mousemove':
181
-				//  drag tolerance, x² + y² = distance²
182
-				if ( Math.pow(  event.pageX-dd.pageX, 2 ) + Math.pow(  event.pageY-dd.pageY, 2 ) < Math.pow( dd.distance, 2 ) ) 
183
-					break; // distance tolerance not reached
184
-				event.target = dd.target; // force target from "mousedown" event (fix distance issue)
185
-				drag.hijack( event, "dragstart", dd ); // trigger "dragstart"
186
-				if ( dd.propagates ) // "dragstart" not rejected
187
-					dd.dragging = true; // activate interaction
188
-			// mousemove, dragging
189
-			case 'touchmove':
190
-				event.preventDefault();
191
-			case 'mousemove':
192
-				if ( dd.dragging ){
193
-					// trigger "drag"		
194
-					drag.hijack( event, "drag", dd );
195
-					if ( dd.propagates ){
196
-						// manage drop events
197
-						if ( dd.drop !== false && $special.drop )
198
-							$special.drop.handler( event, dd ); // "dropstart", "dropend"							
199
-						break; // "drag" not rejected, stop		
200
-					}
201
-					event.type = "mouseup"; // helps "drop" handler behave
202
-				}
203
-			// mouseup, stop dragging
204
-			case 'touchend': 
205
-			case 'mouseup': 
206
-			default:
207
-				if ( drag.touched )
208
-					$event.remove( drag.touched, "touchmove touchend", drag.handler ); // remove touch events
209
-				else 
210
-					$event.remove( document, "mousemove mouseup", drag.handler ); // remove page events	
211
-				if ( dd.dragging ){
212
-					if ( dd.drop !== false && $special.drop )
213
-						$special.drop.handler( event, dd ); // "drop"
214
-					drag.hijack( event, "dragend", dd ); // trigger "dragend"	
215
-				}
216
-				drag.textselect( true ); // enable text selection
217
-				// if suppressing click events...
218
-				if ( dd.click === false && dd.dragging )
219
-					$.data( dd.mousedown, "suppress.click", new Date().getTime() + 5 );
220
-				dd.dragging = drag.touched = false; // deactivate element	
221
-				break;
222
-		}
223
-	},
224
-		
225
-	// re-use event object for custom events
226
-	hijack: function( event, type, dd, x, elem ){
227
-		// not configured
228
-		if ( !dd ) 
229
-			return;
230
-		// remember the original event and type
231
-		var orig = { event:event.originalEvent, type:event.type },
232
-		// is the event drag related or drog related?
233
-		mode = type.indexOf("drop") ? "drag" : "drop",
234
-		// iteration vars
235
-		result, i = x || 0, ia, $elems, callback,
236
-		len = !isNaN( x ) ? x : dd.interactions.length;
237
-		// modify the event type
238
-		event.type = type;
239
-		// remove the original event
240
-		event.originalEvent = null;
241
-		// initialize the results
242
-		dd.results = [];
243
-		// handle each interacted element
244
-		do if ( ia = dd.interactions[ i ] ){
245
-			// validate the interaction
246
-			if ( type !== "dragend" && ia.cancelled )
247
-				continue;
248
-			// set the dragdrop properties on the event object
249
-			callback = drag.properties( event, dd, ia );
250
-			// prepare for more results
251
-			ia.results = [];
252
-			// handle each element
253
-			$( elem || ia[ mode ] || dd.droppable ).each(function( p, subject ){
254
-				// identify drag or drop targets individually
255
-				callback.target = subject;
256
-				// force propagtion of the custom event
257
-				event.isPropagationStopped = function(){ return false; };
258
-				// handle the event	
259
-				result = subject ? $event.dispatch.call( subject, event, callback ) : null;
260
-				// stop the drag interaction for this element
261
-				if ( result === false ){
262
-					if ( mode == "drag" ){
263
-						ia.cancelled = true;
264
-						dd.propagates -= 1;
265
-					}
266
-					if ( type == "drop" ){
267
-						ia[ mode ][p] = null;
268
-					}
269
-				}
270
-				// assign any dropinit elements
271
-				else if ( type == "dropinit" )
272
-					ia.droppable.push( drag.element( result ) || subject );
273
-				// accept a returned proxy element 
274
-				if ( type == "dragstart" )
275
-					ia.proxy = $( drag.element( result ) || ia.drag )[0];
276
-				// remember this result	
277
-				ia.results.push( result );
278
-				// forget the event result, for recycling
279
-				delete event.result;
280
-				// break on cancelled handler
281
-				if ( type !== "dropinit" )
282
-					return result;
283
-			});	
284
-			// flatten the results	
285
-			dd.results[ i ] = drag.flatten( ia.results );	
286
-			// accept a set of valid drop targets
287
-			if ( type == "dropinit" )
288
-				ia.droppable = drag.flatten( ia.droppable );
289
-			// locate drop targets
290
-			if ( type == "dragstart" && !ia.cancelled )
291
-				callback.update(); 
292
-		}
293
-		while ( ++i < len )
294
-		// restore the original event & type
295
-		event.type = orig.type;
296
-		event.originalEvent = orig.event;
297
-		// return all handler results
298
-		return drag.flatten( dd.results );
299
-	},
300
-		
301
-	// extend the callback object with drag/drop properties...
302
-	properties: function( event, dd, ia ){		
303
-		var obj = ia.callback;
304
-		// elements
305
-		obj.drag = ia.drag;
306
-		obj.proxy = ia.proxy || ia.drag;
307
-		// starting mouse position
308
-		obj.startX = dd.pageX;
309
-		obj.startY = dd.pageY;
310
-		// current distance dragged
311
-		obj.deltaX = event.pageX - dd.pageX;
312
-		obj.deltaY = event.pageY - dd.pageY;
313
-		// original element position
314
-		obj.originalX = ia.offset.left;
315
-		obj.originalY = ia.offset.top;
316
-		// adjusted element position
317
-		obj.offsetX = obj.originalX + obj.deltaX; 
318
-		obj.offsetY = obj.originalY + obj.deltaY;
319
-		// assign the drop targets information
320
-		obj.drop = drag.flatten( ( ia.drop || [] ).slice() );
321
-		obj.available = drag.flatten( ( ia.droppable || [] ).slice() );
322
-		return obj;	
323
-	},
324
-	
325
-	// determine is the argument is an element or jquery instance
326
-	element: function( arg ){
327
-		if ( arg && ( arg.jquery || arg.nodeType == 1 ) )
328
-			return arg;
329
-	},
330
-	
331
-	// flatten nested jquery objects and arrays into a single dimension array
332
-	flatten: function( arr ){
333
-		return $.map( arr, function( member ){
334
-			return member && member.jquery ? $.makeArray( member ) : 
335
-				member && member.length ? drag.flatten( member ) : member;
336
-		});
337
-	},
338
-	
339
-	// toggles text selection attributes ON (true) or OFF (false)
340
-	textselect: function( bool ){ 
341
-		$( document )[ bool ? "unbind" : "bind" ]("selectstart", drag.dontstart )
342
-			.css("MozUserSelect", bool ? "" : "none" );
343
-		// .attr("unselectable", bool ? "off" : "on" )
344
-		document.unselectable = bool ? "off" : "on"; 
345
-	},
346
-	
347
-	// suppress "selectstart" and "ondragstart" events
348
-	dontstart: function(){ 
349
-		return false; 
350
-	},
351
-	
352
-	// a callback instance contructor
353
-	callback: function(){}
354
-	
355
-};
356
-
357
-// callback methods
358
-drag.callback.prototype = {
359
-	update: function(){
360
-		if ( $special.drop && this.available.length )
361
-			$.each( this.available, function( i ){
362
-				$special.drop.locate( this, i );
363
-			});
364
-	}
365
-};
366
-
367
-// patch $.event.$dispatch to allow suppressing clicks
368
-var $dispatch = $event.dispatch;
369
-$event.dispatch = function( event ){
370
-	if ( $.data( this, "suppress."+ event.type ) - new Date().getTime() > 0 ){
371
-		$.removeData( this, "suppress."+ event.type );
372
-		return;
373
-	}
374
-	return $dispatch.apply( this, arguments );
375
-};
376
-
377
-// event fix hooks for touch events...
378
-var touchHooks = 
379
-$event.fixHooks.touchstart = 
380
-$event.fixHooks.touchmove = 
381
-$event.fixHooks.touchend =
382
-$event.fixHooks.touchcancel = {
383
-	props: "clientX clientY pageX pageY screenX screenY".split( " " ),
384
-	filter: function( event, orig ) {
385
-		if ( orig ){
386
-			var touched = ( orig.touches && orig.touches[0] )
387
-				|| ( orig.changedTouches && orig.changedTouches[0] )
388
-				|| null; 
389
-			// iOS webkit: touchstart, touchmove, touchend
390
-			if ( touched ) 
391
-				$.each( touchHooks.props, function( i, prop ){
392
-					event[ prop ] = touched[ prop ];
393
-				});
394
-		}
395
-		return event;
396
-	}
397
-};
398
-
399
-// share the same special event configuration with related events...
400
-$special.draginit = $special.dragstart = $special.dragend = drag;
401
-
402
-})( jQuery );

+ 0
- 1650
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_005.js
File diff suppressed because it is too large
View File


+ 0
- 221
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_006.js View File

1
-/*!
2
- * jQuery Mousewheel 3.1.13
3
- *
4
- * Copyright jQuery Foundation and other contributors
5
- * Released under the MIT license
6
- * http://jquery.org/license
7
- */
8
-
9
-(function (factory) {
10
-    if ( typeof define === 'function' && define.amd ) {
11
-        // AMD. Register as an anonymous module.
12
-        define(['jquery'], factory);
13
-    } else if (typeof exports === 'object') {
14
-        // Node/CommonJS style for Browserify
15
-        module.exports = factory;
16
-    } else {
17
-        // Browser globals
18
-        factory(jQuery);
19
-    }
20
-}(function ($) {
21
-
22
-    var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
23
-        toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
24
-                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
25
-        slice  = Array.prototype.slice,
26
-        nullLowestDeltaTimeout, lowestDelta;
27
-
28
-    if ( $.event.fixHooks ) {
29
-        for ( var i = toFix.length; i; ) {
30
-            $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
31
-        }
32
-    }
33
-
34
-    var special = $.event.special.mousewheel = {
35
-        version: '3.1.12',
36
-
37
-        setup: function() {
38
-            if ( this.addEventListener ) {
39
-                for ( var i = toBind.length; i; ) {
40
-                    this.addEventListener( toBind[--i], handler, false );
41
-                }
42
-            } else {
43
-                this.onmousewheel = handler;
44
-            }
45
-            // Store the line height and page height for this particular element
46
-            $.data(this, 'mousewheel-line-height', special.getLineHeight(this));
47
-            $.data(this, 'mousewheel-page-height', special.getPageHeight(this));
48
-        },
49
-
50
-        teardown: function() {
51
-            if ( this.removeEventListener ) {
52
-                for ( var i = toBind.length; i; ) {
53
-                    this.removeEventListener( toBind[--i], handler, false );
54
-                }
55
-            } else {
56
-                this.onmousewheel = null;
57
-            }
58
-            // Clean up the data we added to the element
59
-            $.removeData(this, 'mousewheel-line-height');
60
-            $.removeData(this, 'mousewheel-page-height');
61
-        },
62
-
63
-        getLineHeight: function(elem) {
64
-            var $elem = $(elem),
65
-                $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();
66
-            if (!$parent.length) {
67
-                $parent = $('body');
68
-            }
69
-            return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;
70
-        },
71
-
72
-        getPageHeight: function(elem) {
73
-            return $(elem).height();
74
-        },
75
-
76
-        settings: {
77
-            adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
78
-            normalizeOffset: true  // calls getBoundingClientRect for each event
79
-        }
80
-    };
81
-
82
-    $.fn.extend({
83
-        mousewheel: function(fn) {
84
-            return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
85
-        },
86
-
87
-        unmousewheel: function(fn) {
88
-            return this.unbind('mousewheel', fn);
89
-        }
90
-    });
91
-
92
-
93
-    function handler(event) {
94
-        var orgEvent   = event || window.event,
95
-            args       = slice.call(arguments, 1),
96
-            delta      = 0,
97
-            deltaX     = 0,
98
-            deltaY     = 0,
99
-            absDelta   = 0,
100
-            offsetX    = 0,
101
-            offsetY    = 0;
102
-        event = $.event.fix(orgEvent);
103
-        event.type = 'mousewheel';
104
-
105
-        // Old school scrollwheel delta
106
-        if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }
107
-        if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }
108
-        if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }
109
-        if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
110
-
111
-        // Firefox < 17 horizontal scrolling related to DOMMouseScroll event
112
-        if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
113
-            deltaX = deltaY * -1;
114
-            deltaY = 0;
115
-        }
116
-
117
-        // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
118
-        delta = deltaY === 0 ? deltaX : deltaY;
119
-
120
-        // New school wheel delta (wheel event)
121
-        if ( 'deltaY' in orgEvent ) {
122
-            deltaY = orgEvent.deltaY * -1;
123
-            delta  = deltaY;
124
-        }
125
-        if ( 'deltaX' in orgEvent ) {
126
-            deltaX = orgEvent.deltaX;
127
-            if ( deltaY === 0 ) { delta  = deltaX * -1; }
128
-        }
129
-
130
-        // No change actually happened, no reason to go any further
131
-        if ( deltaY === 0 && deltaX === 0 ) { return; }
132
-
133
-        // Need to convert lines and pages to pixels if we aren't already in pixels
134
-        // There are three delta modes:
135
-        //   * deltaMode 0 is by pixels, nothing to do
136
-        //   * deltaMode 1 is by lines
137
-        //   * deltaMode 2 is by pages
138
-        if ( orgEvent.deltaMode === 1 ) {
139
-            var lineHeight = $.data(this, 'mousewheel-line-height');
140
-            delta  *= lineHeight;
141
-            deltaY *= lineHeight;
142
-            deltaX *= lineHeight;
143
-        } else if ( orgEvent.deltaMode === 2 ) {
144
-            var pageHeight = $.data(this, 'mousewheel-page-height');
145
-            delta  *= pageHeight;
146
-            deltaY *= pageHeight;
147
-            deltaX *= pageHeight;
148
-        }
149
-
150
-        // Store lowest absolute delta to normalize the delta values
151
-        absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
152
-
153
-        if ( !lowestDelta || absDelta < lowestDelta ) {
154
-            lowestDelta = absDelta;
155
-
156
-            // Adjust older deltas if necessary
157
-            if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
158
-                lowestDelta /= 40;
159
-            }
160
-        }
161
-
162
-        // Adjust older deltas if necessary
163
-        if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
164
-            // Divide all the things by 40!
165
-            delta  /= 40;
166
-            deltaX /= 40;
167
-            deltaY /= 40;
168
-        }
169
-
170
-        // Get a whole, normalized value for the deltas
171
-        delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);
172
-        deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
173
-        deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
174
-
175
-        // Normalise offsetX and offsetY properties
176
-        if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {
177
-            var boundingRect = this.getBoundingClientRect();
178
-            offsetX = event.clientX - boundingRect.left;
179
-            offsetY = event.clientY - boundingRect.top;
180
-        }
181
-
182
-        // Add information to the event object
183
-        event.deltaX = deltaX;
184
-        event.deltaY = deltaY;
185
-        event.deltaFactor = lowestDelta;
186
-        event.offsetX = offsetX;
187
-        event.offsetY = offsetY;
188
-        // Go ahead and set deltaMode to 0 since we converted to pixels
189
-        // Although this is a little odd since we overwrite the deltaX/Y
190
-        // properties with normalized deltas.
191
-        event.deltaMode = 0;
192
-
193
-        // Add event and delta to the front of the arguments
194
-        args.unshift(event, delta, deltaX, deltaY);
195
-
196
-        // Clearout lowestDelta after sometime to better
197
-        // handle multiple device types that give different
198
-        // a different lowestDelta
199
-        // Ex: trackpad = 3 and mouse wheel = 120
200
-        if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
201
-        nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
202
-
203
-        return ($.event.dispatch || $.event.handle).apply(this, args);
204
-    }
205
-
206
-    function nullLowestDelta() {
207
-        lowestDelta = null;
208
-    }
209
-
210
-    function shouldAdjustOldDeltas(orgEvent, absDelta) {
211
-        // If this is an older event and the delta is divisable by 120,
212
-        // then we are assuming that the browser is treating this as an
213
-        // older mouse wheel event and that we should divide the deltas
214
-        // by 40 to try and get a more usable deltaFactor.
215
-        // Side note, this actually impacts the reported scroll distance
216
-        // in older browsers and can cause scrolling to be slower than native.
217
-        // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
218
-        return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
219
-    }
220
-
221
-}));

+ 0
- 390
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/jquery_007.js View File

1
-/*!
2
- * jQuery hashchange event - v1.3 - 7/21/2010
3
- * http://benalman.com/projects/jquery-hashchange-plugin/
4
- * 
5
- * Copyright (c) 2010 "Cowboy" Ben Alman
6
- * Dual licensed under the MIT and GPL licenses.
7
- * http://benalman.com/about/license/
8
- */
9
-
10
-// Script: jQuery hashchange event
11
-//
12
-// *Version: 1.3, Last updated: 7/21/2010*
13
-// 
14
-// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/
15
-// GitHub       - http://github.com/cowboy/jquery-hashchange/
16
-// Source       - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js
17
-// (Minified)   - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped)
18
-// 
19
-// About: License
20
-// 
21
-// Copyright (c) 2010 "Cowboy" Ben Alman,
22
-// Dual licensed under the MIT and GPL licenses.
23
-// http://benalman.com/about/license/
24
-// 
25
-// About: Examples
26
-// 
27
-// These working examples, complete with fully commented code, illustrate a few
28
-// ways in which this plugin can be used.
29
-// 
30
-// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/
31
-// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/
32
-// 
33
-// About: Support and Testing
34
-// 
35
-// Information about what version or versions of jQuery this plugin has been
36
-// tested with, what browsers it has been tested in, and where the unit tests
37
-// reside (so you can test it yourself).
38
-// 
39
-// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2
40
-// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5,
41
-//                   Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5.
42
-// Unit Tests      - http://benalman.com/code/projects/jquery-hashchange/unit/
43
-// 
44
-// About: Known issues
45
-// 
46
-// While this jQuery hashchange event implementation is quite stable and
47
-// robust, there are a few unfortunate browser bugs surrounding expected
48
-// hashchange event-based behaviors, independent of any JavaScript
49
-// window.onhashchange abstraction. See the following examples for more
50
-// information:
51
-// 
52
-// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/
53
-// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/
54
-// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/
55
-// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/
56
-// 
57
-// Also note that should a browser natively support the window.onhashchange 
58
-// event, but not report that it does, the fallback polling loop will be used.
59
-// 
60
-// About: Release History
61
-// 
62
-// 1.3   - (7/21/2010) Reorganized IE6/7 Iframe code to make it more
63
-//         "removable" for mobile-only development. Added IE6/7 document.title
64
-//         support. Attempted to make Iframe as hidden as possible by using
65
-//         techniques from http://www.paciellogroup.com/blog/?p=604. Added 
66
-//         support for the "shortcut" format $(window).hashchange( fn ) and
67
-//         $(window).hashchange() like jQuery provides for built-in events.
68
-//         Renamed jQuery.hashchangeDelay to <jQuery.fn.hashchange.delay> and
69
-//         lowered its default value to 50. Added <jQuery.fn.hashchange.domain>
70
-//         and <jQuery.fn.hashchange.src> properties plus document-domain.html
71
-//         file to address access denied issues when setting document.domain in
72
-//         IE6/7.
73
-// 1.2   - (2/11/2010) Fixed a bug where coming back to a page using this plugin
74
-//         from a page on another domain would cause an error in Safari 4. Also,
75
-//         IE6/7 Iframe is now inserted after the body (this actually works),
76
-//         which prevents the page from scrolling when the event is first bound.
77
-//         Event can also now be bound before DOM ready, but it won't be usable
78
-//         before then in IE6/7.
79
-// 1.1   - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug
80
-//         where browser version is incorrectly reported as 8.0, despite
81
-//         inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag.
82
-// 1.0   - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special
83
-//         window.onhashchange functionality into a separate plugin for users
84
-//         who want just the basic event & back button support, without all the
85
-//         extra awesomeness that BBQ provides. This plugin will be included as
86
-//         part of jQuery BBQ, but also be available separately.
87
-
88
-(function($,window,undefined){
89
-  '$:nomunge'; // Used by YUI compressor.
90
-  
91
-  // Reused string.
92
-  var str_hashchange = 'hashchange',
93
-    
94
-    // Method / object references.
95
-    doc = document,
96
-    fake_onhashchange,
97
-    special = $.event.special,
98
-    
99
-    // Does the browser support window.onhashchange? Note that IE8 running in
100
-    // IE7 compatibility mode reports true for 'onhashchange' in window, even
101
-    // though the event isn't supported, so also test document.documentMode.
102
-    doc_mode = doc.documentMode,
103
-    supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 );
104
-  
105
-  // Get location.hash (or what you'd expect location.hash to be) sans any
106
-  // leading #. Thanks for making this necessary, Firefox!
107
-  function get_fragment( url ) {
108
-    url = url || location.href;
109
-    return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' );
110
-  };
111
-  
112
-  // Method: jQuery.fn.hashchange
113
-  // 
114
-  // Bind a handler to the window.onhashchange event or trigger all bound
115
-  // window.onhashchange event handlers. This behavior is consistent with
116
-  // jQuery's built-in event handlers.
117
-  // 
118
-  // Usage:
119
-  // 
120
-  // > jQuery(window).hashchange( [ handler ] );
121
-  // 
122
-  // Arguments:
123
-  // 
124
-  //  handler - (Function) Optional handler to be bound to the hashchange
125
-  //    event. This is a "shortcut" for the more verbose form:
126
-  //    jQuery(window).bind( 'hashchange', handler ). If handler is omitted,
127
-  //    all bound window.onhashchange event handlers will be triggered. This
128
-  //    is a shortcut for the more verbose
129
-  //    jQuery(window).trigger( 'hashchange' ). These forms are described in
130
-  //    the <hashchange event> section.
131
-  // 
132
-  // Returns:
133
-  // 
134
-  //  (jQuery) The initial jQuery collection of elements.
135
-  
136
-  // Allow the "shortcut" format $(elem).hashchange( fn ) for binding and
137
-  // $(elem).hashchange() for triggering, like jQuery does for built-in events.
138
-  $.fn[ str_hashchange ] = function( fn ) {
139
-    return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange );
140
-  };
141
-  
142
-  // Property: jQuery.fn.hashchange.delay
143
-  // 
144
-  // The numeric interval (in milliseconds) at which the <hashchange event>
145
-  // polling loop executes. Defaults to 50.
146
-  
147
-  // Property: jQuery.fn.hashchange.domain
148
-  // 
149
-  // If you're setting document.domain in your JavaScript, and you want hash
150
-  // history to work in IE6/7, not only must this property be set, but you must
151
-  // also set document.domain BEFORE jQuery is loaded into the page. This
152
-  // property is only applicable if you are supporting IE6/7 (or IE8 operating
153
-  // in "IE7 compatibility" mode).
154
-  // 
155
-  // In addition, the <jQuery.fn.hashchange.src> property must be set to the
156
-  // path of the included "document-domain.html" file, which can be renamed or
157
-  // modified if necessary (note that the document.domain specified must be the
158
-  // same in both your main JavaScript as well as in this file).
159
-  // 
160
-  // Usage:
161
-  // 
162
-  // jQuery.fn.hashchange.domain = document.domain;
163
-  
164
-  // Property: jQuery.fn.hashchange.src
165
-  // 
166
-  // If, for some reason, you need to specify an Iframe src file (for example,
167
-  // when setting document.domain as in <jQuery.fn.hashchange.domain>), you can
168
-  // do so using this property. Note that when using this property, history
169
-  // won't be recorded in IE6/7 until the Iframe src file loads. This property
170
-  // is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7
171
-  // compatibility" mode).
172
-  // 
173
-  // Usage:
174
-  // 
175
-  // jQuery.fn.hashchange.src = 'path/to/file.html';
176
-  
177
-  $.fn[ str_hashchange ].delay = 50;
178
-  /*
179
-  $.fn[ str_hashchange ].domain = null;
180
-  $.fn[ str_hashchange ].src = null;
181
-  */
182
-  
183
-  // Event: hashchange event
184
-  // 
185
-  // Fired when location.hash changes. In browsers that support it, the native
186
-  // HTML5 window.onhashchange event is used, otherwise a polling loop is
187
-  // initialized, running every <jQuery.fn.hashchange.delay> milliseconds to
188
-  // see if the hash has changed. In IE6/7 (and IE8 operating in "IE7
189
-  // compatibility" mode), a hidden Iframe is created to allow the back button
190
-  // and hash-based history to work.
191
-  // 
192
-  // Usage as described in <jQuery.fn.hashchange>:
193
-  // 
194
-  // > // Bind an event handler.
195
-  // > jQuery(window).hashchange( function(e) {
196
-  // >   var hash = location.hash;
197
-  // >   ...
198
-  // > });
199
-  // > 
200
-  // > // Manually trigger the event handler.
201
-  // > jQuery(window).hashchange();
202
-  // 
203
-  // A more verbose usage that allows for event namespacing:
204
-  // 
205
-  // > // Bind an event handler.
206
-  // > jQuery(window).bind( 'hashchange', function(e) {
207
-  // >   var hash = location.hash;
208
-  // >   ...
209
-  // > });
210
-  // > 
211
-  // > // Manually trigger the event handler.
212
-  // > jQuery(window).trigger( 'hashchange' );
213
-  // 
214
-  // Additional Notes:
215
-  // 
216
-  // * The polling loop and Iframe are not created until at least one handler
217
-  //   is actually bound to the 'hashchange' event.
218
-  // * If you need the bound handler(s) to execute immediately, in cases where
219
-  //   a location.hash exists on page load, via bookmark or page refresh for
220
-  //   example, use jQuery(window).hashchange() or the more verbose 
221
-  //   jQuery(window).trigger( 'hashchange' ).
222
-  // * The event can be bound before DOM ready, but since it won't be usable
223
-  //   before then in IE6/7 (due to the necessary Iframe), recommended usage is
224
-  //   to bind it inside a DOM ready handler.
225
-  
226
-  // Override existing $.event.special.hashchange methods (allowing this plugin
227
-  // to be defined after jQuery BBQ in BBQ's source code).
228
-  special[ str_hashchange ] = $.extend( special[ str_hashchange ], {
229
-    
230
-    // Called only when the first 'hashchange' event is bound to window.
231
-    setup: function() {
232
-      // If window.onhashchange is supported natively, there's nothing to do..
233
-      if ( supports_onhashchange ) { return false; }
234
-      
235
-      // Otherwise, we need to create our own. And we don't want to call this
236
-      // until the user binds to the event, just in case they never do, since it
237
-      // will create a polling loop and possibly even a hidden Iframe.
238
-      $( fake_onhashchange.start );
239
-    },
240
-    
241
-    // Called only when the last 'hashchange' event is unbound from window.
242
-    teardown: function() {
243
-      // If window.onhashchange is supported natively, there's nothing to do..
244
-      if ( supports_onhashchange ) { return false; }
245
-      
246
-      // Otherwise, we need to stop ours (if possible).
247
-      $( fake_onhashchange.stop );
248
-    }
249
-    
250
-  });
251
-  
252
-  // fake_onhashchange does all the work of triggering the window.onhashchange
253
-  // event for browsers that don't natively support it, including creating a
254
-  // polling loop to watch for hash changes and in IE 6/7 creating a hidden
255
-  // Iframe to enable back and forward.
256
-  fake_onhashchange = (function(){
257
-    var self = {},
258
-      timeout_id,
259
-      
260
-      // Remember the initial hash so it doesn't get triggered immediately.
261
-      last_hash = get_fragment(),
262
-      
263
-      fn_retval = function(val){ return val; },
264
-      history_set = fn_retval,
265
-      history_get = fn_retval;
266
-    
267
-    // Start the polling loop.
268
-    self.start = function() {
269
-      timeout_id || poll();
270
-    };
271
-    
272
-    // Stop the polling loop.
273
-    self.stop = function() {
274
-      timeout_id && clearTimeout( timeout_id );
275
-      timeout_id = undefined;
276
-    };
277
-    
278
-    // This polling loop checks every $.fn.hashchange.delay milliseconds to see
279
-    // if location.hash has changed, and triggers the 'hashchange' event on
280
-    // window when necessary.
281
-    function poll() {
282
-      var hash = get_fragment(),
283
-        history_hash = history_get( last_hash );
284
-      
285
-      if ( hash !== last_hash ) {
286
-        history_set( last_hash = hash, history_hash );
287
-        
288
-        $(window).trigger( str_hashchange );
289
-        
290
-      } else if ( history_hash !== last_hash ) {
291
-        location.href = location.href.replace( /#.*/, '' ) + history_hash;
292
-      }
293
-      
294
-      timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay );
295
-    };
296
-    
297
-    // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
298
-    // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv
299
-    // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
300
-    (window.navigator.userAgent.indexOf("MSIE ") > -1 || !!window.navigator.userAgent.match(/Trident.*rv\:11\./)) && !supports_onhashchange && (function(){
301
-      // Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8
302
-      // when running in "IE7 compatibility" mode.
303
-      
304
-      var iframe,
305
-        iframe_src;
306
-      
307
-      // When the event is bound and polling starts in IE 6/7, create a hidden
308
-      // Iframe for history handling.
309
-      self.start = function(){
310
-        if ( !iframe ) {
311
-          iframe_src = $.fn[ str_hashchange ].src;
312
-          iframe_src = iframe_src && iframe_src + get_fragment();
313
-          
314
-          // Create hidden Iframe. Attempt to make Iframe as hidden as possible
315
-          // by using techniques from http://www.paciellogroup.com/blog/?p=604.
316
-          iframe = $('<iframe tabindex="-1" title="empty"/>').hide()
317
-            
318
-            // When Iframe has completely loaded, initialize the history and
319
-            // start polling.
320
-            .one( 'load', function(){
321
-              iframe_src || history_set( get_fragment() );
322
-              poll();
323
-            })
324
-            
325
-            // Load Iframe src if specified, otherwise nothing.
326
-            .attr( 'src', iframe_src || 'javascript:0' )
327
-            
328
-            // Append Iframe after the end of the body to prevent unnecessary
329
-            // initial page scrolling (yes, this works).
330
-            .insertAfter( 'body' )[0].contentWindow;
331
-          
332
-          // Whenever `document.title` changes, update the Iframe's title to
333
-          // prettify the back/next history menu entries. Since IE sometimes
334
-          // errors with "Unspecified error" the very first time this is set
335
-          // (yes, very useful) wrap this with a try/catch block.
336
-          doc.onpropertychange = function(){
337
-            try {
338
-              if ( event.propertyName === 'title' ) {
339
-                iframe.document.title = doc.title;
340
-              }
341
-            } catch(e) {}
342
-          };
343
-          
344
-        }
345
-      };
346
-      
347
-      // Override the "stop" method since an IE6/7 Iframe was created. Even
348
-      // if there are no longer any bound event handlers, the polling loop
349
-      // is still necessary for back/next to work at all!
350
-      self.stop = fn_retval;
351
-      
352
-      // Get history by looking at the hidden Iframe's location.hash.
353
-      history_get = function() {
354
-        return get_fragment( iframe.location.href );
355
-      };
356
-      
357
-      // Set a new history item by opening and then closing the Iframe
358
-      // document, *then* setting its location.hash. If document.domain has
359
-      // been set, update that as well.
360
-      history_set = function( hash, history_hash ) {
361
-        var iframe_doc = iframe.document,
362
-          domain = $.fn[ str_hashchange ].domain;
363
-        
364
-        if ( hash !== history_hash ) {
365
-          // Update Iframe with any initial `document.title` that might be set.
366
-          iframe_doc.title = doc.title;
367
-          
368
-          // Opening the Iframe's document after it has been closed is what
369
-          // actually adds a history entry.
370
-          iframe_doc.open();
371
-          
372
-          // Set document.domain for the Iframe document as well, if necessary.
373
-          domain && iframe_doc.write( '<script>document.domain="' + domain + '"</script>' );
374
-          
375
-          iframe_doc.close();
376
-          
377
-          // Update the Iframe's hash, for great justice.
378
-          iframe.location.hash = hash;
379
-        }
380
-      };
381
-      
382
-    })();
383
-    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
384
-    // ^^^^^^^^^^^^^^^^^^^ REMOVE IF NOT SUPPORTING IE6/7/8 ^^^^^^^^^^^^^^^^^^^
385
-    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
386
-    
387
-    return self;
388
-  })();
389
-  
390
-})(jQuery,this);

+ 0
- 163
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/js.js View File

1
-/*!
2
- * JavaScript Cookie v2.2.1
3
- * https://github.com/js-cookie/js-cookie
4
- *
5
- * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
6
- * Released under the MIT license
7
- */
8
-;(function (factory) {
9
-	var registeredInModuleLoader;
10
-	if (typeof define === 'function' && define.amd) {
11
-		define(factory);
12
-		registeredInModuleLoader = true;
13
-	}
14
-	if (typeof exports === 'object') {
15
-		module.exports = factory();
16
-		registeredInModuleLoader = true;
17
-	}
18
-	if (!registeredInModuleLoader) {
19
-		var OldCookies = window.Cookies;
20
-		var api = window.Cookies = factory();
21
-		api.noConflict = function () {
22
-			window.Cookies = OldCookies;
23
-			return api;
24
-		};
25
-	}
26
-}(function () {
27
-	function extend () {
28
-		var i = 0;
29
-		var result = {};
30
-		for (; i < arguments.length; i++) {
31
-			var attributes = arguments[ i ];
32
-			for (var key in attributes) {
33
-				result[key] = attributes[key];
34
-			}
35
-		}
36
-		return result;
37
-	}
38
-
39
-	function decode (s) {
40
-		return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
41
-	}
42
-
43
-	function init (converter) {
44
-		function api() {}
45
-
46
-		function set (key, value, attributes) {
47
-			if (typeof document === 'undefined') {
48
-				return;
49
-			}
50
-
51
-			attributes = extend({
52
-				path: '/'
53
-			}, api.defaults, attributes);
54
-
55
-			if (typeof attributes.expires === 'number') {
56
-				attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);
57
-			}
58
-
59
-			// We're using "expires" because "max-age" is not supported by IE
60
-			attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
61
-
62
-			try {
63
-				var result = JSON.stringify(value);
64
-				if (/^[\{\[]/.test(result)) {
65
-					value = result;
66
-				}
67
-			} catch (e) {}
68
-
69
-			value = converter.write ?
70
-				converter.write(value, key) :
71
-				encodeURIComponent(String(value))
72
-					.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
73
-
74
-			key = encodeURIComponent(String(key))
75
-				.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
76
-				.replace(/[\(\)]/g, escape);
77
-
78
-			var stringifiedAttributes = '';
79
-			for (var attributeName in attributes) {
80
-				if (!attributes[attributeName]) {
81
-					continue;
82
-				}
83
-				stringifiedAttributes += '; ' + attributeName;
84
-				if (attributes[attributeName] === true) {
85
-					continue;
86
-				}
87
-
88
-				// Considers RFC 6265 section 5.2:
89
-				// ...
90
-				// 3.  If the remaining unparsed-attributes contains a %x3B (";")
91
-				//     character:
92
-				// Consume the characters of the unparsed-attributes up to,
93
-				// not including, the first %x3B (";") character.
94
-				// ...
95
-				stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];
96
-			}
97
-
98
-			return (document.cookie = key + '=' + value + stringifiedAttributes);
99
-		}
100
-
101
-		function get (key, json) {
102
-			if (typeof document === 'undefined') {
103
-				return;
104
-			}
105
-
106
-			var jar = {};
107
-			// To prevent the for loop in the first place assign an empty array
108
-			// in case there are no cookies at all.
109
-			var cookies = document.cookie ? document.cookie.split('; ') : [];
110
-			var i = 0;
111
-
112
-			for (; i < cookies.length; i++) {
113
-				var parts = cookies[i].split('=');
114
-				var cookie = parts.slice(1).join('=');
115
-
116
-				if (!json && cookie.charAt(0) === '"') {
117
-					cookie = cookie.slice(1, -1);
118
-				}
119
-
120
-				try {
121
-					var name = decode(parts[0]);
122
-					cookie = (converter.read || converter)(cookie, name) ||
123
-						decode(cookie);
124
-
125
-					if (json) {
126
-						try {
127
-							cookie = JSON.parse(cookie);
128
-						} catch (e) {}
129
-					}
130
-
131
-					jar[name] = cookie;
132
-
133
-					if (key === name) {
134
-						break;
135
-					}
136
-				} catch (e) {}
137
-			}
138
-
139
-			return key ? jar[key] : jar;
140
-		}
141
-
142
-		api.set = set;
143
-		api.get = function (key) {
144
-			return get(key, false /* read as raw */);
145
-		};
146
-		api.getJSON = function (key) {
147
-			return get(key, true /* read as json */);
148
-		};
149
-		api.remove = function (key, attributes) {
150
-			set(key, '', extend(attributes, {
151
-				expires: -1
152
-			}));
153
-		};
154
-
155
-		api.defaults = {};
156
-
157
-		api.withConverter = init;
158
-
159
-		return api;
160
-	}
161
-
162
-	return init(function () {});
163
-}));

+ 0
- 140
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/keyhandler.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-
3
-// global var that holds: 0- if ctrl key is not pressed 1- if ctrl key is pressed
4
-var ctrlKeyHistory = 0;
5
-
6
-/**
7
-  * Allows moving around inputs/select by Ctrl+arrows
8
-  *
9
-  * @param object   event data
10
-  */
11
-function onKeyDownArrowsHandler (e) {
12
-    e = e || window.event;
13
-
14
-    var o = (e.srcElement || e.target);
15
-    if (!o) {
16
-        return;
17
-    }
18
-    if (o.tagName !== 'TEXTAREA' && o.tagName !== 'INPUT' && o.tagName !== 'SELECT') {
19
-        return;
20
-    }
21
-    if ((e.which !== 17) && (e.which !== 37) && (e.which !== 38) && (e.which !== 39) && (e.which !== 40)) {
22
-        return;
23
-    }
24
-    if (!o.id) {
25
-        return;
26
-    }
27
-
28
-    if (e.type === 'keyup') {
29
-        if (e.which === 17) {
30
-            ctrlKeyHistory = 0;
31
-        }
32
-        return;
33
-    } else if (e.type === 'keydown') {
34
-        if (e.which === 17) {
35
-            ctrlKeyHistory = 1;
36
-        }
37
-    }
38
-
39
-    if (ctrlKeyHistory !== 1) {
40
-        return;
41
-    }
42
-
43
-    e.preventDefault();
44
-
45
-    var pos = o.id.split('_');
46
-    if (pos[0] !== 'field' || typeof pos[2] === 'undefined') {
47
-        return;
48
-    }
49
-
50
-    var x = pos[2];
51
-    var y = pos[1];
52
-
53
-    switch (e.keyCode) {
54
-    case 38:
55
-        // up
56
-        y--;
57
-        break;
58
-    case 40:
59
-        // down
60
-        y++;
61
-        break;
62
-    case 37:
63
-        // left
64
-        x--;
65
-        break;
66
-    case 39:
67
-        // right
68
-        x++;
69
-        break;
70
-    default:
71
-        return;
72
-    }
73
-
74
-    var is_firefox = navigator.userAgent.toLowerCase().indexOf('firefox/') > -1;
75
-
76
-    var id = 'field_' + y + '_' + x;
77
-
78
-    var nO = document.getElementById(id);
79
-    if (! nO) {
80
-        id = 'field_' + y + '_' + x + '_0';
81
-        nO = document.getElementById(id);
82
-    }
83
-
84
-    // skip non existent fields
85
-    if (! nO) {
86
-        return;
87
-    }
88
-
89
-    // for firefox select tag
90
-    var lvalue = o.selectedIndex;
91
-    var nOvalue = nO.selectedIndex;
92
-
93
-    nO.focus();
94
-
95
-    if (is_firefox) {
96
-        var ffcheck = 0;
97
-        var ffversion;
98
-        for (ffversion = 3 ; ffversion < 25 ; ffversion++) {
99
-            var is_firefox_v_24 = navigator.userAgent.toLowerCase().indexOf('firefox/' + ffversion) > -1;
100
-            if (is_firefox_v_24) {
101
-                ffcheck = 1;
102
-                break;
103
-            }
104
-        }
105
-        if (ffcheck === 1) {
106
-            if (e.which === 38 || e.which === 37) {
107
-                nOvalue++;
108
-            } else if (e.which === 40 || e.which === 39) {
109
-                nOvalue--;
110
-            }
111
-            nO.selectedIndex = nOvalue;
112
-        } else {
113
-            if (e.which === 38 || e.which === 37) {
114
-                lvalue++;
115
-            } else if (e.which === 40 || e.which === 39) {
116
-                lvalue--;
117
-            }
118
-            o.selectedIndex = lvalue;
119
-        }
120
-    }
121
-
122
-    if (nO.tagName !== 'SELECT') {
123
-        nO.select();
124
-    }
125
-    e.returnValue = false;
126
-}
127
-
128
-AJAX.registerTeardown('keyhandler.js', function () {
129
-    $(document).off('keydown keyup', '#table_columns');
130
-    $(document).off('keydown keyup', 'table.insertRowTable');
131
-});
132
-
133
-AJAX.registerOnload('keyhandler.js', function () {
134
-    $(document).on('keydown keyup', '#table_columns', function (event) {
135
-        onKeyDownArrowsHandler(event.originalEvent);
136
-    });
137
-    $(document).on('keydown keyup', 'table.insertRowTable', function (event) {
138
-        onKeyDownArrowsHandler(event.originalEvent);
139
-    });
140
-});

+ 0
- 73
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/lint.css View File

1
-/* The lint marker gutter */
2
-.CodeMirror-lint-markers {
3
-  width: 16px;
4
-}
5
-
6
-.CodeMirror-lint-tooltip {
7
-  background-color: #ffd;
8
-  border: 1px solid black;
9
-  border-radius: 4px 4px 4px 4px;
10
-  color: black;
11
-  font-family: monospace;
12
-  font-size: 10pt;
13
-  overflow: hidden;
14
-  padding: 2px 5px;
15
-  position: fixed;
16
-  white-space: pre;
17
-  white-space: pre-wrap;
18
-  z-index: 100;
19
-  max-width: 600px;
20
-  opacity: 0;
21
-  transition: opacity .4s;
22
-  -moz-transition: opacity .4s;
23
-  -webkit-transition: opacity .4s;
24
-  -o-transition: opacity .4s;
25
-  -ms-transition: opacity .4s;
26
-}
27
-
28
-.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
29
-  background-position: left bottom;
30
-  background-repeat: repeat-x;
31
-}
32
-
33
-.CodeMirror-lint-mark-error {
34
-  background-image:
35
-  url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
36
-  ;
37
-}
38
-
39
-.CodeMirror-lint-mark-warning {
40
-  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
41
-}
42
-
43
-.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
44
-  background-position: center center;
45
-  background-repeat: no-repeat;
46
-  cursor: pointer;
47
-  display: inline-block;
48
-  height: 16px;
49
-  width: 16px;
50
-  vertical-align: middle;
51
-  position: relative;
52
-}
53
-
54
-.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
55
-  padding-left: 18px;
56
-  background-position: top left;
57
-  background-repeat: no-repeat;
58
-}
59
-
60
-.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
61
-  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
62
-}
63
-
64
-.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
65
-  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
66
-}
67
-
68
-.CodeMirror-lint-marker-multiple {
69
-  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
70
-  background-repeat: no-repeat;
71
-  background-position: right bottom;
72
-  width: 100%; height: 100%;
73
-}

+ 0
- 252
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/lint.js View File

1
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
2
-// Distributed under an MIT license: https://codemirror.net/LICENSE
3
-
4
-(function(mod) {
5
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
6
-    mod(require("../../lib/codemirror"));
7
-  else if (typeof define == "function" && define.amd) // AMD
8
-    define(["../../lib/codemirror"], mod);
9
-  else // Plain browser env
10
-    mod(CodeMirror);
11
-})(function(CodeMirror) {
12
-  "use strict";
13
-  var GUTTER_ID = "CodeMirror-lint-markers";
14
-
15
-  function showTooltip(e, content) {
16
-    var tt = document.createElement("div");
17
-    tt.className = "CodeMirror-lint-tooltip";
18
-    tt.appendChild(content.cloneNode(true));
19
-    document.body.appendChild(tt);
20
-
21
-    function position(e) {
22
-      if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position);
23
-      tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + "px";
24
-      tt.style.left = (e.clientX + 5) + "px";
25
-    }
26
-    CodeMirror.on(document, "mousemove", position);
27
-    position(e);
28
-    if (tt.style.opacity != null) tt.style.opacity = 1;
29
-    return tt;
30
-  }
31
-  function rm(elt) {
32
-    if (elt.parentNode) elt.parentNode.removeChild(elt);
33
-  }
34
-  function hideTooltip(tt) {
35
-    if (!tt.parentNode) return;
36
-    if (tt.style.opacity == null) rm(tt);
37
-    tt.style.opacity = 0;
38
-    setTimeout(function() { rm(tt); }, 600);
39
-  }
40
-
41
-  function showTooltipFor(e, content, node) {
42
-    var tooltip = showTooltip(e, content);
43
-    function hide() {
44
-      CodeMirror.off(node, "mouseout", hide);
45
-      if (tooltip) { hideTooltip(tooltip); tooltip = null; }
46
-    }
47
-    var poll = setInterval(function() {
48
-      if (tooltip) for (var n = node;; n = n.parentNode) {
49
-        if (n && n.nodeType == 11) n = n.host;
50
-        if (n == document.body) return;
51
-        if (!n) { hide(); break; }
52
-      }
53
-      if (!tooltip) return clearInterval(poll);
54
-    }, 400);
55
-    CodeMirror.on(node, "mouseout", hide);
56
-  }
57
-
58
-  function LintState(cm, options, hasGutter) {
59
-    this.marked = [];
60
-    this.options = options;
61
-    this.timeout = null;
62
-    this.hasGutter = hasGutter;
63
-    this.onMouseOver = function(e) { onMouseOver(cm, e); };
64
-    this.waitingFor = 0
65
-  }
66
-
67
-  function parseOptions(_cm, options) {
68
-    if (options instanceof Function) return {getAnnotations: options};
69
-    if (!options || options === true) options = {};
70
-    return options;
71
-  }
72
-
73
-  function clearMarks(cm) {
74
-    var state = cm.state.lint;
75
-    if (state.hasGutter) cm.clearGutter(GUTTER_ID);
76
-    for (var i = 0; i < state.marked.length; ++i)
77
-      state.marked[i].clear();
78
-    state.marked.length = 0;
79
-  }
80
-
81
-  function makeMarker(labels, severity, multiple, tooltips) {
82
-    var marker = document.createElement("div"), inner = marker;
83
-    marker.className = "CodeMirror-lint-marker-" + severity;
84
-    if (multiple) {
85
-      inner = marker.appendChild(document.createElement("div"));
86
-      inner.className = "CodeMirror-lint-marker-multiple";
87
-    }
88
-
89
-    if (tooltips != false) CodeMirror.on(inner, "mouseover", function(e) {
90
-      showTooltipFor(e, labels, inner);
91
-    });
92
-
93
-    return marker;
94
-  }
95
-
96
-  function getMaxSeverity(a, b) {
97
-    if (a == "error") return a;
98
-    else return b;
99
-  }
100
-
101
-  function groupByLine(annotations) {
102
-    var lines = [];
103
-    for (var i = 0; i < annotations.length; ++i) {
104
-      var ann = annotations[i], line = ann.from.line;
105
-      (lines[line] || (lines[line] = [])).push(ann);
106
-    }
107
-    return lines;
108
-  }
109
-
110
-  function annotationTooltip(ann) {
111
-    var severity = ann.severity;
112
-    if (!severity) severity = "error";
113
-    var tip = document.createElement("div");
114
-    tip.className = "CodeMirror-lint-message-" + severity;
115
-    if (typeof ann.messageHTML != 'undefined') {
116
-        tip.innerHTML = ann.messageHTML;
117
-    } else {
118
-        tip.appendChild(document.createTextNode(ann.message));
119
-    }
120
-    return tip;
121
-  }
122
-
123
-  function lintAsync(cm, getAnnotations, passOptions) {
124
-    var state = cm.state.lint
125
-    var id = ++state.waitingFor
126
-    function abort() {
127
-      id = -1
128
-      cm.off("change", abort)
129
-    }
130
-    cm.on("change", abort)
131
-    getAnnotations(cm.getValue(), function(annotations, arg2) {
132
-      cm.off("change", abort)
133
-      if (state.waitingFor != id) return
134
-      if (arg2 && annotations instanceof CodeMirror) annotations = arg2
135
-      cm.operation(function() {updateLinting(cm, annotations)})
136
-    }, passOptions, cm);
137
-  }
138
-
139
-  function startLinting(cm) {
140
-    var state = cm.state.lint, options = state.options;
141
-    /*
142
-     * Passing rules in `options` property prevents JSHint (and other linters) from complaining
143
-     * about unrecognized rules like `onUpdateLinting`, `delay`, `lintOnChange`, etc.
144
-     */
145
-    var passOptions = options.options || options;
146
-    var getAnnotations = options.getAnnotations || cm.getHelper(CodeMirror.Pos(0, 0), "lint");
147
-    if (!getAnnotations) return;
148
-    if (options.async || getAnnotations.async) {
149
-      lintAsync(cm, getAnnotations, passOptions)
150
-    } else {
151
-      var annotations = getAnnotations(cm.getValue(), passOptions, cm);
152
-      if (!annotations) return;
153
-      if (annotations.then) annotations.then(function(issues) {
154
-        cm.operation(function() {updateLinting(cm, issues)})
155
-      });
156
-      else cm.operation(function() {updateLinting(cm, annotations)})
157
-    }
158
-  }
159
-
160
-  function updateLinting(cm, annotationsNotSorted) {
161
-    clearMarks(cm);
162
-    var state = cm.state.lint, options = state.options;
163
-
164
-    var annotations = groupByLine(annotationsNotSorted);
165
-
166
-    for (var line = 0; line < annotations.length; ++line) {
167
-      var anns = annotations[line];
168
-      if (!anns) continue;
169
-
170
-      var maxSeverity = null;
171
-      var tipLabel = state.hasGutter && document.createDocumentFragment();
172
-
173
-      for (var i = 0; i < anns.length; ++i) {
174
-        var ann = anns[i];
175
-        var severity = ann.severity;
176
-        if (!severity) severity = "error";
177
-        maxSeverity = getMaxSeverity(maxSeverity, severity);
178
-
179
-        if (options.formatAnnotation) ann = options.formatAnnotation(ann);
180
-        if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));
181
-
182
-        if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {
183
-          className: "CodeMirror-lint-mark-" + severity,
184
-          __annotation: ann
185
-        }));
186
-      }
187
-
188
-      if (state.hasGutter)
189
-        cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1,
190
-                                                       state.options.tooltips));
191
-    }
192
-    if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);
193
-  }
194
-
195
-  function onChange(cm) {
196
-    var state = cm.state.lint;
197
-    if (!state) return;
198
-    clearTimeout(state.timeout);
199
-    state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);
200
-  }
201
-
202
-  function popupTooltips(annotations, e) {
203
-    var target = e.target || e.srcElement;
204
-    var tooltip = document.createDocumentFragment();
205
-    for (var i = 0; i < annotations.length; i++) {
206
-      var ann = annotations[i];
207
-      tooltip.appendChild(annotationTooltip(ann));
208
-    }
209
-    showTooltipFor(e, tooltip, target);
210
-  }
211
-
212
-  function onMouseOver(cm, e) {
213
-    var target = e.target || e.srcElement;
214
-    if (!/\bCodeMirror-lint-mark-/.test(target.className)) return;
215
-    var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;
216
-    var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, "client"));
217
-
218
-    var annotations = [];
219
-    for (var i = 0; i < spans.length; ++i) {
220
-      var ann = spans[i].__annotation;
221
-      if (ann) annotations.push(ann);
222
-    }
223
-    if (annotations.length) popupTooltips(annotations, e);
224
-  }
225
-
226
-  CodeMirror.defineOption("lint", false, function(cm, val, old) {
227
-    if (old && old != CodeMirror.Init) {
228
-      clearMarks(cm);
229
-      if (cm.state.lint.options.lintOnChange !== false)
230
-        cm.off("change", onChange);
231
-      CodeMirror.off(cm.getWrapperElement(), "mouseover", cm.state.lint.onMouseOver);
232
-      clearTimeout(cm.state.lint.timeout);
233
-      delete cm.state.lint;
234
-    }
235
-
236
-    if (val) {
237
-      var gutters = cm.getOption("gutters"), hasLintGutter = false;
238
-      for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;
239
-      var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);
240
-      if (state.options.lintOnChange !== false)
241
-        cm.on("change", onChange);
242
-      if (state.options.tooltips != false && state.options.tooltips != "gutter")
243
-        CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver);
244
-
245
-      startLinting(cm);
246
-    }
247
-  });
248
-
249
-  CodeMirror.defineExtension("performLint", function() {
250
-    if (this.state.lint) startLinting(this);
251
-  });
252
-});

BIN
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/logo_left.png View File


+ 0
- 222
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/menu-resizer.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * Handles the resizing of a menu according to the available screen width
4
- *
5
- * Uses themes/original/css/resizable-menu.css.php
6
- *
7
- * To initialise:
8
- * $('#myMenu').menuResizer(function () {
9
- *     // This function will be called to find out how much
10
- *     // available horizontal space there is for the menu
11
- *     return $('body').width() - 5; // Some extra margin for good measure
12
- * });
13
- *
14
- * To trigger a resize operation:
15
- * $('#myMenu').menuResizer('resize'); // Bind this to $(window).resize()
16
- *
17
- * To restore the menu to a state like before it was initialized:
18
- * $('#myMenu').menuResizer('destroy');
19
- *
20
- * @package PhpMyAdmin
21
- */
22
-(function ($) {
23
-    function MenuResizer ($container, widthCalculator) {
24
-        var self = this;
25
-        self.$container = $container;
26
-        self.widthCalculator = widthCalculator;
27
-        var windowWidth = $(window).width();
28
-
29
-        if (windowWidth < 768) {
30
-            $('#pma_navigation_resizer').css({ 'width': '0px' });
31
-        }
32
-        // Sets the image for the left and right scroll indicator
33
-        $('.scrollindicator--left').html($(PMA_getImage('b_left').toString()));
34
-        $('.scrollindicator--right').html($(PMA_getImage('b_right').toString()));
35
-
36
-        // Set the width of the navigation bar without scroll indicator
37
-        $('.navigationbar').css({ 'width': widthCalculator.call($container) - 60 });
38
-
39
-        // Scroll the navigation bar on click
40
-        $('.scrollindicator--right').on('click', function () {
41
-            $('.navigationbar').scrollLeft($('.navigationbar').scrollLeft() + 70);
42
-        });
43
-        $('.scrollindicator--left').on('click', function () {
44
-            $('.navigationbar').scrollLeft($('.navigationbar').scrollLeft() - 70);
45
-        });
46
-
47
-        // create submenu container
48
-        var link = $('<a />', { href: '#', 'class': 'tab nowrap' })
49
-            .text(PMA_messages.strMore)
50
-            .on('click', false); // same as event.preventDefault()
51
-        var img = $container.find('li img');
52
-        if (img.length) {
53
-            $(PMA_getImage('b_more').toString()).prependTo(link);
54
-        }
55
-        var $submenu = $('<li />', { 'class': 'submenu' })
56
-            .append(link)
57
-            .append($('<ul />'))
58
-            .on('mouseenter', function () {
59
-                if ($(this).find('ul .tabactive').length === 0) {
60
-                    $(this)
61
-                        .addClass('submenuhover')
62
-                        .find('> a')
63
-                        .addClass('tabactive');
64
-                }
65
-            })
66
-            .on('mouseleave', function () {
67
-                if ($(this).find('ul .tabactive').length === 0) {
68
-                    $(this)
69
-                        .removeClass('submenuhover')
70
-                        .find('> a')
71
-                        .removeClass('tabactive');
72
-                }
73
-            });
74
-        $container.children('.clearfloat').remove();
75
-        $container.append($submenu).append('<div class=\'clearfloat\'></div>');
76
-        setTimeout(function () {
77
-            self.resize();
78
-        }, 4);
79
-    }
80
-    MenuResizer.prototype.resize = function () {
81
-        var wmax = this.widthCalculator.call(this.$container);
82
-        var windowWidth = $(window).width();
83
-        var $submenu = this.$container.find('.submenu:last');
84
-        var submenu_w = $submenu.outerWidth(true);
85
-        var $submenu_ul = $submenu.find('ul');
86
-        var $li = this.$container.find('> li');
87
-        var $li2 = $submenu_ul.find('li');
88
-        var more_shown = $li2.length > 0;
89
-        // Calculate the total width used by all the shown tabs
90
-        var total_len = more_shown ? submenu_w : 0;
91
-        var l = $li.length - 1;
92
-        var i;
93
-        for (i = 0; i < l; i++) {
94
-            total_len += $($li[i]).outerWidth(true);
95
-        }
96
-
97
-        var hasVScroll = document.body.scrollHeight > document.body.clientHeight;
98
-        if (hasVScroll) {
99
-            windowWidth += 15;
100
-        }
101
-        var navigationwidth = wmax;
102
-        if (windowWidth < 768) {
103
-            wmax = 2000;
104
-        }
105
-
106
-        // Now hide menu elements that don't fit into the menubar
107
-        var hidden = false; // Whether we have hidden any tabs
108
-        while (total_len >= wmax && --l >= 0) { // Process the tabs backwards
109
-            hidden = true;
110
-            var el = $($li[l]);
111
-            var el_width = el.outerWidth(true);
112
-            el.data('width', el_width);
113
-            if (! more_shown) {
114
-                total_len -= el_width;
115
-                el.prependTo($submenu_ul);
116
-                total_len += submenu_w;
117
-                more_shown = true;
118
-            } else {
119
-                total_len -= el_width;
120
-                el.prependTo($submenu_ul);
121
-            }
122
-        }
123
-        // If we didn't hide any tabs, then there might be some space to show some
124
-        if (! hidden) {
125
-            // Show menu elements that do fit into the menubar
126
-            for (i = 0, l = $li2.length; i < l; i++) {
127
-                total_len += $($li2[i]).data('width');
128
-                // item fits or (it is the last item
129
-                // and it would fit if More got removed)
130
-                if (total_len < wmax ||
131
-                    (i === $li2.length - 1 && total_len - submenu_w < wmax)
132
-                ) {
133
-                    $($li2[i]).insertBefore($submenu);
134
-                } else {
135
-                    break;
136
-                }
137
-            }
138
-        }
139
-        // Show/hide the "More" tab as needed
140
-        if (windowWidth < 768) {
141
-            $('.navigationbar').css({ 'width': windowWidth - 80 - $('#pma_navigation').width() });
142
-            $submenu.removeClass('shown');
143
-            $('.navigationbar').css({ 'overflow': 'hidden' });
144
-        } else {
145
-            $('.navigationbar').css({ 'width': 'auto' });
146
-            $('.navigationbar').css({ 'overflow': 'visible' });
147
-            if ($submenu_ul.find('li').length > 0) {
148
-                $submenu.addClass('shown');
149
-            } else {
150
-                $submenu.removeClass('shown');
151
-            }
152
-        }
153
-        if (this.$container.find('> li').length === 1) {
154
-            // If there is only the "More" tab left, then we need
155
-            // to align the submenu to the left edge of the tab
156
-            $submenu_ul.removeClass().addClass('only');
157
-        } else {
158
-            // Otherwise we align the submenu to the right edge of the tab
159
-            $submenu_ul.removeClass().addClass('notonly');
160
-        }
161
-        if ($submenu.find('.tabactive').length) {
162
-            $submenu
163
-                .addClass('active')
164
-                .find('> a')
165
-                .removeClass('tab')
166
-                .addClass('tabactive');
167
-        } else {
168
-            $submenu
169
-                .removeClass('active')
170
-                .find('> a')
171
-                .addClass('tab')
172
-                .removeClass('tabactive');
173
-        }
174
-    };
175
-    MenuResizer.prototype.destroy = function () {
176
-        var $submenu = this.$container.find('li.submenu').removeData();
177
-        $submenu.find('li').appendTo(this.$container);
178
-        $submenu.remove();
179
-    };
180
-
181
-    /** Public API */
182
-    var methods = {
183
-        init: function (widthCalculator) {
184
-            return this.each(function () {
185
-                var $this = $(this);
186
-                if (! $this.data('menuResizer')) {
187
-                    $this.data(
188
-                        'menuResizer',
189
-                        new MenuResizer($this, widthCalculator)
190
-                    );
191
-                }
192
-            });
193
-        },
194
-        resize: function () {
195
-            return this.each(function () {
196
-                var self = $(this).data('menuResizer');
197
-                if (self) {
198
-                    self.resize();
199
-                }
200
-            });
201
-        },
202
-        destroy: function () {
203
-            return this.each(function () {
204
-                var self = $(this).data('menuResizer');
205
-                if (self) {
206
-                    self.destroy();
207
-                }
208
-            });
209
-        }
210
-    };
211
-
212
-    /** Extend jQuery */
213
-    $.fn.menuResizer = function (method) {
214
-        if (methods[method]) {
215
-            return methods[method].call(this);
216
-        } else if (typeof method === 'function') {
217
-            return methods.init.apply(this, [method]);
218
-        } else {
219
-            $.error('Method ' +  method + ' does not exist on jQuery.menuResizer');
220
-        }
221
-    };
222
-}(jQuery));

+ 0
- 413
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/messages.php View File

1
-var PMA_messages = new Array();
2
-PMA_messages['strConfirm'] = "Confirmer";
3
-PMA_messages['strDoYouReally'] = "Faut-il vraiment exécuter « %s » ?";
4
-PMA_messages['strDropDatabaseStrongWarning'] = "Une base de données est sur le point d\'être DÉTRUITE !";
5
-PMA_messages['strDatabaseRenameToSameName'] = "Impossible de donner le même nom à la base de données. Modifier le nom et réessayer";
6
-PMA_messages['strDropTableStrongWarning'] = "Une table entière est sur le point d\'être DÉTRUITE !";
7
-PMA_messages['strTruncateTableStrongWarning'] = "Une table entière est sur le point d\'être VIDÉE !";
8
-PMA_messages['strDeleteTrackingData'] = "Faut-il supprimer les données de suivi pour cette table ?";
9
-PMA_messages['strDeleteTrackingDataMultiple'] = "Faut-il supprimer les données de suivi pour ces tables ?";
10
-PMA_messages['strDeleteTrackingVersion'] = "Faut-il supprimer les données de suivi pour cette version ?";
11
-PMA_messages['strDeleteTrackingVersionMultiple'] = "Faut-il supprimer les données de suivi pour ces versions ?";
12
-PMA_messages['strDeletingTrackingEntry'] = "Faut-il supprimer l\'entrée du rapport de suivi ?";
13
-PMA_messages['strDeletingTrackingData'] = "Suppression des données de suivi";
14
-PMA_messages['strDroppingPrimaryKeyIndex'] = "Destruction de clé primaire/index";
15
-PMA_messages['strDroppingForeignKey'] = "Destruction de la clé étrangère.";
16
-PMA_messages['strOperationTakesLongTime'] = "Cette opération pourrait être longue. Fquand même procéder ?";
17
-PMA_messages['strDropUserGroupWarning'] = "Faut-il vraiment supprimer le groupe d\'utilisateurs « %s » ?";
18
-PMA_messages['strConfirmDeleteQBESearch'] = "Faut-il vraiment supprimer la recherche « %s » ?";
19
-PMA_messages['strConfirmNavigation'] = "Des modifications n\'ont pas été sauvegardées. Faut-il vraiment quitter cette page ?";
20
-PMA_messages['strConfirmRowChange'] = "Le nombre de rangées va être réduit alors que des données ont déjà été saisies dans ces rangées qui seront perdues. Faut-il continuer ?";
21
-PMA_messages['strDropUserWarning'] = "Faut-il vraiment supprimer l\'(es) utilisateur(s) sélectionné(s) ?";
22
-PMA_messages['strDeleteCentralColumnWarning'] = "Faut-il vraiment supprimer cette colonne centrale ?";
23
-PMA_messages['strDropRTEitems'] = "Faut-il vraiment supprimer les éléments sélectionnés ?";
24
-PMA_messages['strDropPartitionWarning'] = "Faut-il vraiment supprimer (DROP) la(es) partition(s) sélectionnée(s) ? Cela va également SUPPRIMER les données associées à la(aux) partition(s) sélectionnée(s) !";
25
-PMA_messages['strTruncatePartitionWarning'] = "Faut-il vraiment tronquer (TRUNCATE) la(es) partition(s) sélectionnée(s) ?";
26
-PMA_messages['strRemovePartitioningWarning'] = "Faut-il vraiment retirer le partitionnement ?";
27
-PMA_messages['strResetSlaveWarning'] = "Faut-il vraiment exécuter « RESET SLAVE » ?";
28
-PMA_messages['strChangeColumnCollation'] = "Cette opération va tenter de convertir les données dans le nouveau classement. Dans de rares cas, en particulièrement quand un caractère n\'existe pas dans le nouveau classement, ce processus pourrait causer un mauvais affichage des données dans le nouveau classement ; dans ce cas il est suggéré de revenir au classement d\'origine et de consulter les astuces à <a href=\"%s\" target=\"garbled_data_wiki\">Données déformées</a>.<br/><br/>Faut-il vraiment modifier le classement et convertir les données ?";
29
-PMA_messages['strChangeAllColumnCollationsWarning'] = "Par cette opération, MySQL tente de mapper les valeurs de données entre les classements. Si les jeux de caractères sont incompatibles, il peut y avoir une perte de données et les données perdues peuvent <b>NE PAS</b> être récupérables simplement en changeant la colonne de classement. <b>Pour convertir les données existantes, il est conseillé d\'utiliser le mode d\'édition de colonne (le lien « Modifier ») sur la page de structure de table.</b><br/><br/>Faut-il vraiment modifier tous les classements de colonnes et convertir les données ?";
30
-PMA_messages['strSaveAndClose'] = "Enregistrer et fermer";
31
-PMA_messages['strReset'] = "Réinitialiser";
32
-PMA_messages['strResetAll'] = "Tout réinitialiser";
33
-PMA_messages['strFormEmpty'] = "Formulaire incomplet !";
34
-PMA_messages['strRadioUnchecked'] = "Sélectionner au moins l\'une des options !";
35
-PMA_messages['strEnterValidNumber'] = "Merci de saisir un nombre valide !";
36
-PMA_messages['strEnterValidLength'] = "Merci de saisir une longueur valide !";
37
-PMA_messages['strAddIndex'] = "Ajouter un index";
38
-PMA_messages['strEditIndex'] = "Modifier un index";
39
-PMA_messages['strAddToIndex'] = "Ajouter %s colonne(s) à l\'index";
40
-PMA_messages['strCreateSingleColumnIndex'] = "Créer un index sur colonne unique";
41
-PMA_messages['strCreateCompositeIndex'] = "Créer un index sur plusieurs colonnes";
42
-PMA_messages['strCompositeWith'] = "Autres colonnes formant l\'index :";
43
-PMA_messages['strMissingColumn'] = "Merci de sélectionner la(es) colonne(s) de l\'index.";
44
-PMA_messages['strPreviewSQL'] = "Aperçu SQL";
45
-PMA_messages['strSimulateDML'] = "Simuler la requête";
46
-PMA_messages['strMatchedRows'] = "Lignes correspondantes :";
47
-PMA_messages['strSQLQuery'] = "Requête SQL :";
48
-PMA_messages['strYValues'] = "Valeurs en Y";
49
-PMA_messages['strEmptyQuery'] = "Veuillez d\'abord entrer la requête SQL.";
50
-PMA_messages['strHostEmpty'] = "Le nom d\'hôte est vide !";
51
-PMA_messages['strUserEmpty'] = "Le nom d\'utilisateur est vide !";
52
-PMA_messages['strPasswordEmpty'] = "Le mot de passe est vide !";
53
-PMA_messages['strPasswordNotSame'] = "Les mots de passe doivent être identiques !";
54
-PMA_messages['strRemovingSelectedUsers'] = "Effacement des utilisateurs sélectionnés";
55
-PMA_messages['strClose'] = "Fermer";
56
-PMA_messages['strTemplateCreated'] = "Le modèle a été créé.";
57
-PMA_messages['strTemplateLoaded'] = "Le modèle a été chargé.";
58
-PMA_messages['strTemplateUpdated'] = "Le modèle a été mis à jour.";
59
-PMA_messages['strTemplateDeleted'] = "Le modèle a été supprimé.";
60
-PMA_messages['strOther'] = "Autres";
61
-PMA_messages['strThousandsSeparator'] = " ";
62
-PMA_messages['strDecimalSeparator'] = ",";
63
-PMA_messages['strChartConnectionsTitle'] = "Connexions/Processus";
64
-PMA_messages['strIncompatibleMonitorConfig'] = "La configuration locale de la surveillance est incompatible !";
65
-PMA_messages['strIncompatibleMonitorConfigDescription'] = "La configuration de la disposition des graphiques dans le stockage local du navigateur n\'est plus compatible avec l\'interface de surveillance. La configuration courante ne fonctionnera probablement pas. Merci de réinitialiser la configuration via le menu <i>Paramètres</i>.";
66
-PMA_messages['strQueryCacheEfficiency'] = "Efficacité du cache de requêtes";
67
-PMA_messages['strQueryCacheUsage'] = "Utilisation du cache de requêtes";
68
-PMA_messages['strQueryCacheUsed'] = "Cache de requêtes utilisé";
69
-PMA_messages['strSystemCPUUsage'] = "Utilisation processeur";
70
-PMA_messages['strSystemMemory'] = "Mémoire système";
71
-PMA_messages['strSystemSwap'] = "Zone d\'échange système";
72
-PMA_messages['strAverageLoad'] = "Charge moyenne";
73
-PMA_messages['strTotalMemory'] = "Mémoire système";
74
-PMA_messages['strCachedMemory'] = "Mémoire cache";
75
-PMA_messages['strBufferedMemory'] = "Mémoire tampon";
76
-PMA_messages['strFreeMemory'] = "Mémoire libre";
77
-PMA_messages['strUsedMemory'] = "Mémoire utilisée";
78
-PMA_messages['strTotalSwap'] = "Zone d\'échange totale";
79
-PMA_messages['strCachedSwap'] = "Zone d\'échange en cache";
80
-PMA_messages['strUsedSwap'] = "Zone d\'échange utilisée";
81
-PMA_messages['strFreeSwap'] = "Zone d\'échange libre";
82
-PMA_messages['strBytesSent'] = "Octets envoyés";
83
-PMA_messages['strBytesReceived'] = "Octets reçus";
84
-PMA_messages['strConnections'] = "Connexions";
85
-PMA_messages['strProcesses'] = "Processus";
86
-PMA_messages['strB'] = "o";
87
-PMA_messages['strKiB'] = "kio";
88
-PMA_messages['strMiB'] = "Mio";
89
-PMA_messages['strGiB'] = "Gio";
90
-PMA_messages['strTiB'] = "Tio";
91
-PMA_messages['strPiB'] = "Pio";
92
-PMA_messages['strEiB'] = "Eio";
93
-PMA_messages['strNTables'] = "%d table(s)";
94
-PMA_messages['strQuestions'] = "Nombre d\'instructions exécutées par le serveur";
95
-PMA_messages['strTraffic'] = "Trafic";
96
-PMA_messages['strSettings'] = "Paramètres";
97
-PMA_messages['strAddChart'] = "Ajouter le graphique à la grille";
98
-PMA_messages['strAddOneSeriesWarning'] = "Merci ajouter au moins une variable aux séries !";
99
-PMA_messages['strNone'] = "Aucun(e)";
100
-PMA_messages['strResumeMonitor'] = "Reprendre la surveillance";
101
-PMA_messages['strPauseMonitor'] = "Mettre la surveillance en pause";
102
-PMA_messages['strStartRefresh'] = "Lancer l\'actualisation automatique";
103
-PMA_messages['strStopRefresh'] = "Arrêter l\'actualisation automatique";
104
-PMA_messages['strBothLogOn'] = "general_log et slow_query_log sont activés.";
105
-PMA_messages['strGenLogOn'] = "general_log est activé.";
106
-PMA_messages['strSlowLogOn'] = "slow_query_log est activé.";
107
-PMA_messages['strBothLogOff'] = "general_log et slow_query_log sont désactivés.";
108
-PMA_messages['strLogOutNotTable'] = "log_output n\'est pas défini à TABLE.";
109
-PMA_messages['strLogOutIsTable'] = "log_output est défini à TABLE.";
110
-PMA_messages['strSmallerLongQueryTimeAdvice'] = "slow_query_log est activé, mais le serveur n\'enregistre que les requêtes qui prennent plus de %d secondes. Il est recommandé de régler long_query_time à 0-2 secondes, selon le système.";
111
-PMA_messages['strLongQueryTimeSet'] = "long_query_time est défini à %d seconde(s).";
112
-PMA_messages['strSettingsAppliedGlobal'] = "Les paramètres suivants seront appliqués globalement et remis à la valeur par défaut lors du redémarrage du serveur :";
113
-PMA_messages['strSetLogOutput'] = "Définir log_output à %s";
114
-PMA_messages['strEnableVar'] = "Activer %s";
115
-PMA_messages['strDisableVar'] = "Désactiver %s";
116
-PMA_messages['setSetLongQueryTime'] = "Définir long_query_time à %d secondes.";
117
-PMA_messages['strNoSuperUser'] = "Il n\'est pas possible de modifier ces variables. Merci de se connecter en tant que root ou de contacter l\'administrateur du serveur.";
118
-PMA_messages['strChangeSettings'] = "Modifier les paramètres";
119
-PMA_messages['strCurrentSettings'] = "Paramètres actuels";
120
-PMA_messages['strChartTitle'] = "Titre du graphique";
121
-PMA_messages['strDifferential'] = "Différentiel";
122
-PMA_messages['strDividedBy'] = "Divisé par %s";
123
-PMA_messages['strUnit'] = "Unité";
124
-PMA_messages['strFromSlowLog'] = "Depuis le journal des requêtes lentes";
125
-PMA_messages['strFromGeneralLog'] = "Depuis le journal général";
126
-PMA_messages['strServerLogError'] = "Le nom de la base de données est inconnu pour cette requête dans les journaux du serveur.";
127
-PMA_messages['strAnalysingLogsTitle'] = "Analyse des journaux en cours";
128
-PMA_messages['strAnalysingLogs'] = "Analyse et chargement des journaux en cours. Ceci peut prendre un certain temps.";
129
-PMA_messages['strCancelRequest'] = "Annuler la requête";
130
-PMA_messages['strCountColumnExplanation'] = "Cette colonne affiche le nombre de requêtes identiques qui sont regroupées. Cependant, seulement le texte SQL de la requête a été utilisé comme critère de regroupement, donc les autres propriétés des requêtes, comme l\'heure de début, peuvent différer.";
131
-PMA_messages['strMoreCountColumnExplanation'] = "Comme le groupement des requêtes INSERT a été sélectionné, les requêtes INSERT dans une même table sont groupées, peu importe les données insérées.";
132
-PMA_messages['strLogDataLoaded'] = "Fichier journal chargé. Requêtes exécutées dans ce laps de temps :";
133
-PMA_messages['strJumpToTable'] = "Aller à la table du journal";
134
-PMA_messages['strNoDataFoundTitle'] = "Aucune donnée trouvée";
135
-PMA_messages['strNoDataFound'] = "Journal analysé, mais aucune donnée trouvée dans ce laps de temps.";
136
-PMA_messages['strAnalyzing'] = "Analyse en cours…";
137
-PMA_messages['strExplainOutput'] = "Expliquer les résultats";
138
-PMA_messages['strStatus'] = "État";
139
-PMA_messages['strTime'] = "Temps";
140
-PMA_messages['strTotalTime'] = "Durée totale :";
141
-PMA_messages['strProfilingResults'] = "Profilage des résultats";
142
-PMA_messages['strTable'] = "Table";
143
-PMA_messages['strChart'] = "Graphique";
144
-PMA_messages['strAliasDatabase'] = "Base de données";
145
-PMA_messages['strAliasTable'] = "Table";
146
-PMA_messages['strAliasColumn'] = "Colonne";
147
-PMA_messages['strFiltersForLogTable'] = "Options de filtrage du journal de la table";
148
-PMA_messages['strFilter'] = "Filtre";
149
-PMA_messages['strFilterByWordRegexp'] = "Filtrer les requêtes par mot ou expression régulière :";
150
-PMA_messages['strIgnoreWhereAndGroup'] = "Grouper les requêtes en ignorant la partie variable des clauses WHERE";
151
-PMA_messages['strSumRows'] = "Somme des lignes regroupées :";
152
-PMA_messages['strTotal'] = "Total :";
153
-PMA_messages['strLoadingLogs'] = "Chargement des journaux en cours";
154
-PMA_messages['strRefreshFailed'] = "Échec de rafraîchissement de la surveillance";
155
-PMA_messages['strInvalidResponseExplanation'] = "Le serveur a retourné une réponse invalide à la demande d\'un nouveau graphique de données. La session a probablement expiré. Merci de recharger la page et de se connecter à nouveau.";
156
-PMA_messages['strReloadPage'] = "Recharger la page";
157
-PMA_messages['strAffectedRows'] = "Lignes modifiées :";
158
-PMA_messages['strFailedParsingConfig'] = "Échec d\'analyse du fichier de configuration. Il ne contient pas de code JSON valide.";
159
-PMA_messages['strFailedBuildingGrid'] = "Échec de construction de la grille de graphiques avec la configuration importée. Réinitialisation à la configuration par défaut…";
160
-PMA_messages['strImport'] = "Importer";
161
-PMA_messages['strImportDialogTitle'] = "Importer la configuration de surveillance";
162
-PMA_messages['strImportDialogMessage'] = "Merci de choisir le fichier à importer.";
163
-PMA_messages['strNoImportFile'] = "Aucun fichier disponible sur le serveur pour une importation !";
164
-PMA_messages['strAnalyzeQuery'] = "Analyser la requête";
165
-PMA_messages['strAdvisorSystem'] = "Conseiller";
166
-PMA_messages['strPerformanceIssues'] = "Impact possible sur les performances";
167
-PMA_messages['strIssuse'] = "Problème";
168
-PMA_messages['strRecommendation'] = "Recommandation";
169
-PMA_messages['strRuleDetails'] = "Détails de règle";
170
-PMA_messages['strJustification'] = "Alignement";
171
-PMA_messages['strFormula'] = "Variable/Formule utilisée";
172
-PMA_messages['strTest'] = "Test";
173
-PMA_messages['strFormatting'] = "Formatage SQL…";
174
-PMA_messages['strNoParam'] = "Aucun paramètre trouvé !";
175
-PMA_messages['strGo'] = "Exécuter";
176
-PMA_messages['strCancel'] = "Annuler";
177
-PMA_messages['strPageSettings'] = "Paramètres relatifs à la page";
178
-PMA_messages['strApply'] = "Appliquer";
179
-PMA_messages['strLoading'] = "Chargement en cours…";
180
-PMA_messages['strAbortedRequest'] = "Requête abandonnée !";
181
-PMA_messages['strProcessingRequest'] = "Traitement de la requête";
182
-PMA_messages['strRequestFailed'] = "Échec de cette requête !";
183
-PMA_messages['strErrorProcessingRequest'] = "Erreur dans le traitement de la requête";
184
-PMA_messages['strErrorCode'] = "Code d\'erreur : %s";
185
-PMA_messages['strErrorText'] = "Texte de l\'erreur : %s";
186
-PMA_messages['strErrorConnection'] = "Il semble que la connexion au serveur aie été perdue. Merci de vérifier la connectivité réseau et l\'état du serveur.";
187
-PMA_messages['strNoDatabasesSelected'] = "Aucune base de données n\'a été sélectionnée.";
188
-PMA_messages['strNoAccountSelected'] = "Aucun compte sélectionné.";
189
-PMA_messages['strDroppingColumn'] = "Suppression de la colonne";
190
-PMA_messages['strAddingPrimaryKey'] = "Ajout de clé primaire";
191
-PMA_messages['strOK'] = "OK";
192
-PMA_messages['strDismiss'] = "Cliquer pour éliminer ce message";
193
-PMA_messages['strRenamingDatabases'] = "Changement du nom de la base de données";
194
-PMA_messages['strCopyingDatabase'] = "Copie de la base de données";
195
-PMA_messages['strChangingCharset'] = "Changement du jeu de caractères";
196
-PMA_messages['strNo'] = "Non";
197
-PMA_messages['strForeignKeyCheck'] = "Activer la vérification des clés étrangères";
198
-PMA_messages['strErrorRealRowCount'] = "Impossible d\'obtenir le nombre réel de lignes.";
199
-PMA_messages['strSearching'] = "En recherche";
200
-PMA_messages['strHideSearchResults'] = "Cacher les résultats de recherche";
201
-PMA_messages['strShowSearchResults'] = "Afficher les résultats de recherche";
202
-PMA_messages['strBrowsing'] = "Parcours en cours";
203
-PMA_messages['strDeleting'] = "Suppression en cours";
204
-PMA_messages['strConfirmDeleteResults'] = "Faut-il supprimer de la table %s les correspondances ?";
205
-PMA_messages['MissingReturn'] = "La définition d\'une fonction stockée doit comporter une instruction RETURN !";
206
-PMA_messages['strExport'] = "Exporter";
207
-PMA_messages['NoExportable'] = "Aucune routine n’est exportable. Des privilèges requis pourraient manquer.";
208
-PMA_messages['enum_editor'] = "Éditeur ENUM/SET";
209
-PMA_messages['enum_columnVals'] = "Valeurs pour la colonne %s";
210
-PMA_messages['enum_newColumnVals'] = "Valeurs pour une nouvelle colonne";
211
-PMA_messages['enum_hint'] = "Saisir chaque valeur dans un champ séparé.";
212
-PMA_messages['enum_addValue'] = "Ajouter %d valeur(s)";
213
-PMA_messages['strImportCSV'] = "NB : si le fichier contient plusieurs tables, elles seront combinées en une seule.";
214
-PMA_messages['strHideQueryBox'] = "Masquer la zone SQL";
215
-PMA_messages['strShowQueryBox'] = "Afficher la zone SQL";
216
-PMA_messages['strEdit'] = "Éditer";
217
-PMA_messages['strDelete'] = "Supprimer";
218
-PMA_messages['strNotValidRowNumber'] = "%d n\'est pas un numéro de ligne valide.";
219
-PMA_messages['strBrowseForeignValues'] = "Parcourir les valeurs étrangères";
220
-PMA_messages['strNoAutoSavedQuery'] = "Aucune requête sauvegardée automatiquement";
221
-PMA_messages['strBookmarkVariable'] = "Variable %d :";
222
-PMA_messages['pickColumn'] = "Choisir";
223
-PMA_messages['pickColumnTitle'] = "Sélecteur de colonne";
224
-PMA_messages['searchList'] = "Chercher dans cette liste";
225
-PMA_messages['strEmptyCentralList'] = "Aucune colonne dans la liste centrale. S\'assurer que la liste de colonnes centrales pour la base de données %s comporte des colonnes qui ne sont pas présentes dans la table actuelle.";
226
-PMA_messages['seeMore'] = "Plus";
227
-PMA_messages['confirmTitle'] = "Faut-il confirmer ?";
228
-PMA_messages['makeConsistentMessage'] = "Cette action peut changer certaines définitions de colonnes.<br/>Faut-il vraiment continuer ?";
229
-PMA_messages['strContinue'] = "Continuer";
230
-PMA_messages['strAddPrimaryKey'] = "Ajouter une clé primaire";
231
-PMA_messages['strPrimaryKeyAdded'] = "Une clé primaire a été ajoutée.";
232
-PMA_messages['strToNextStep'] = "Vers l\'étape suivante…";
233
-PMA_messages['strFinishMsg'] = "La première étape de la normalisation est terminée pour la table « %s ».";
234
-PMA_messages['strEndStep'] = "Fin de l\'étape";
235
-PMA_messages['str2NFNormalization'] = "Deuxième étape de la normalisation (2FN)";
236
-PMA_messages['strDone'] = "Fermer";
237
-PMA_messages['strConfirmPd'] = "Confirmer les dépendances partielles";
238
-PMA_messages['strSelectedPd'] = "Les dépendances partielles sélectionnées sont les suivantes :";
239
-PMA_messages['strPdHintNote'] = "NB : a, b -> d, f implique que les valeurs des colonnes a et b combinées peuvent déterminer les valeurs des colonnes d et f.";
240
-PMA_messages['strNoPdSelected'] = "Aucune dépendance partielle sélectionnée !";
241
-PMA_messages['strBack'] = "Retour";
242
-PMA_messages['strShowPossiblePd'] = "Afficher les dépendances partielles possibles en se basant sur les données de la table";
243
-PMA_messages['strHidePd'] = "Masquer la liste des dépendances partielles";
244
-PMA_messages['strWaitForPd'] = "Patience ! Cela peut prendre quelques secondes selon la taille des données et le nombre de colonnes de la table.";
245
-PMA_messages['strStep'] = "Étape";
246
-PMA_messages['strMoveRepeatingGroup'] = "<ol><b>Les actions suivantes seront effectuées :</b><li>Supprimer (DROP) les colonnes %s de la table %s</li><li>Créer la table suivante</li>";
247
-PMA_messages['strNewTablePlaceholder'] = "Enter new table name";
248
-PMA_messages['strNewColumnPlaceholder'] = "Enter column name";
249
-PMA_messages['str3NFNormalization'] = "Troisième étape de la normalisation (3FN)";
250
-PMA_messages['strConfirmTd'] = "Confirmer les dépendances transitives";
251
-PMA_messages['strSelectedTd'] = "Les dépendances sélectionnées sont les suivantes :";
252
-PMA_messages['strNoTdSelected'] = "Aucune dépendance sélectionnée !";
253
-PMA_messages['strSave'] = "Enregistrer";
254
-PMA_messages['strHideSearchCriteria'] = "Masquer les critères de recherche";
255
-PMA_messages['strShowSearchCriteria'] = "Afficher les critères de recherche";
256
-PMA_messages['strRangeSearch'] = "Recherche en intervalle";
257
-PMA_messages['strColumnMax'] = "Maximum pour la colonne :";
258
-PMA_messages['strColumnMin'] = "Minimum pour la colonne :";
259
-PMA_messages['strMinValue'] = "Valeur minimale :";
260
-PMA_messages['strMaxValue'] = "Valeur maximale :";
261
-PMA_messages['strHideFindNReplaceCriteria'] = "Masquer les critères de recherche et remplacement";
262
-PMA_messages['strShowFindNReplaceCriteria'] = "Afficher les critères de recherche et remplacement";
263
-PMA_messages['strDisplayHelp'] = "<ul><li>Chaque point représente une ligne de données.</li><li>Survoler un point affichera son libellé.</li><li>Pour zoomer, sélectionner une section avec la souris.</li><li>Cliquer le bouton « Réinitialiser le zoom » pour revenir à l\'état d\'origine.</li><li>Cliquer sur un point pour visualiser et possiblement éditer la ligne de données.</li><li>L\'image peut être redimensionnée en faisant glisser le coin inférieur droit.</li></ul>";
264
-PMA_messages['strHelpTitle'] = "Zoom search instructions";
265
-PMA_messages['strInputNull'] = "<strong>Sélectionner deux colonnes</strong>";
266
-PMA_messages['strSameInputs'] = "<strong>Sélectionner deux colonnes différentes</strong>";
267
-PMA_messages['strDataPointContent'] = "Données relatives à ce point";
268
-PMA_messages['strIgnore'] = "Ignorer";
269
-PMA_messages['strCopy'] = "Copier";
270
-PMA_messages['strX'] = "X";
271
-PMA_messages['strY'] = "Y";
272
-PMA_messages['strPoint'] = "Point";
273
-PMA_messages['strPointN'] = "Point %d";
274
-PMA_messages['strLineString'] = "Ligne";
275
-PMA_messages['strPolygon'] = "Polygone";
276
-PMA_messages['strGeometry'] = "Géométrie";
277
-PMA_messages['strInnerRing'] = "Anneau intérieur";
278
-PMA_messages['strOuterRing'] = "Anneau extérieur";
279
-PMA_messages['strAddPoint'] = "Ajouter un point";
280
-PMA_messages['strAddInnerRing'] = "Ajouter un anneau intérieur";
281
-PMA_messages['strYes'] = "Oui";
282
-PMA_messages['strCopyEncryptionKey'] = "Faut-il copier la clé de chiffrement ?";
283
-PMA_messages['strEncryptionKey'] = "Clé de chiffrement";
284
-PMA_messages['strMysqlAllowedValuesTipTime'] = "MySQL accepte des valeurs non sélectionnables via le sélecteur ; saisir directement ces valeurs si besoin";
285
-PMA_messages['strMysqlAllowedValuesTipDate'] = "MySQL accepte des valeurs non sélectionnables via le sélecteur de date ; saisir directement ces valeurs si besoin";
286
-PMA_messages['strLockToolTip'] = "Indique que des modifications ont été apportées à cette page ; une confirmation sera demandée avant d\'abandonner ces modifications";
287
-PMA_messages['strSelectReferencedKey'] = "Sélectionner la clé référencée";
288
-PMA_messages['strSelectForeignKey'] = "Sélectionner la clé étrangère";
289
-PMA_messages['strPleaseSelectPrimaryOrUniqueKey'] = "Merci de sélectionner la clé primaire ou une clé unique !";
290
-PMA_messages['strChangeDisplay'] = "Choisir la colonne à afficher";
291
-PMA_messages['strLeavingDesigner'] = "Les modifications de la disposition n\'ont pas été enregistrées. Elles seront perdues si elles ne sont pas enregistrées. Faut-il vraiment continuer ?";
292
-PMA_messages['strQueryEmpty'] = "value/subQuery est vide";
293
-PMA_messages['strAddTables'] = "Ajouter des tables depuis d\'autres bases de données";
294
-PMA_messages['strPageName'] = "Nom de la page";
295
-PMA_messages['strSavePage'] = "Enregistrer la page";
296
-PMA_messages['strSavePageAs'] = "Enregistrer la page sous";
297
-PMA_messages['strOpenPage'] = "Ouvrir la page";
298
-PMA_messages['strDeletePage'] = "Supprimer la page";
299
-PMA_messages['strUntitled'] = "Sans titre";
300
-PMA_messages['strSelectPage'] = "Merci de sélectionner une page pour continuer";
301
-PMA_messages['strEnterValidPageName'] = "Merci de saisir un nom de page valide";
302
-PMA_messages['strLeavingPage'] = "Faut-il enregistrer les modifications dans la page en cours ?";
303
-PMA_messages['strSuccessfulPageDelete'] = "La page a été correctement supprimée";
304
-PMA_messages['strExportRelationalSchema'] = "Exporter un schéma relationnel";
305
-PMA_messages['strModificationSaved'] = "Les modifications ont été enregistrées";
306
-PMA_messages['strObjectsCreated'] = "%d objet(s) créé(s).";
307
-PMA_messages['strColumnName'] = "Nom de colonne";
308
-PMA_messages['strSubmit'] = "Soumettre";
309
-PMA_messages['strCellEditHint'] = "Appuyer sur la touche d\'échappement pour annuler l\'édition.";
310
-PMA_messages['strSaveCellWarning'] = "Des données modifiées n\'ont pas encore été sauvées. Faut-il vraiment quitter cette page avant de les enregistrer ?";
311
-PMA_messages['strColOrderHint'] = "Faire glisser pour réordonner.";
312
-PMA_messages['strSortHint'] = "Cliquer pour trier les résultats sur cette colonne.";
313
-PMA_messages['strMultiSortHint'] = "Maj+Clic pour ajouter cette colonne à la clause ORDER BY ou pour basculer ASC/DESC.<br />- Ctrl+Clic ou Alt+Clic (sur Mac : Maj+Option+Clic) pour enlever la colonne de la clause ORDER BY";
314
-PMA_messages['strColMarkHint'] = "Cliquer pour marquer/retirer les marques.";
315
-PMA_messages['strColNameCopyHint'] = "Double-cliquer pour copier le nom de la colonne.";
316
-PMA_messages['strColVisibHint'] = "Cliquer sur la flèche<br />pour afficher/masquer la colonne.";
317
-PMA_messages['strShowAllCol'] = "Tout afficher";
318
-PMA_messages['strAlertNonUnique'] = "Cette table ne contient pas de colonne unique. Les grilles d\'édition, les cases à cocher ainsi que les liens Éditer, Copier et Supprimer pourraient ne plus fonctionner après l\'enregistrement.";
319
-PMA_messages['strEnterValidHex'] = "Merci de saisir une chaîne en hexadécimal valide. Les caractères possibles sont 0-9, A-F.";
320
-PMA_messages['strShowAllRowsWarning'] = "Faut-il vraiment afficher toutes les lignes ? Pour une grande table, cela pourrait faire planter le navigateur.";
321
-PMA_messages['strOriginalLength'] = "Longueur d\'origine";
322
-PMA_messages['dropImportMessageCancel'] = "annuler";
323
-PMA_messages['dropImportMessageAborted'] = "Abandonnée(s)";
324
-PMA_messages['dropImportMessageFailed'] = "Échec";
325
-PMA_messages['dropImportMessageSuccess'] = "Succès";
326
-PMA_messages['dropImportImportResultHeader'] = "État de l\'importation";
327
-PMA_messages['dropImportDropFiles'] = "Déposer des fichiers ici";
328
-PMA_messages['dropImportSelectDB'] = "Sélectionner d\'abord une base de données";
329
-PMA_messages['print'] = "Imprimer";
330
-PMA_messages['back'] = "Retour";
331
-PMA_messages['strGridEditFeatureHint'] = "Il est aussi possible de modifier la plupart<br/>des valeurs en les double-cliquant.";
332
-PMA_messages['strGoToLink'] = "Suivre le lien :";
333
-PMA_messages['strColNameCopyTitle'] = "Copier le nom de la colonne.";
334
-PMA_messages['strColNameCopyText'] = "Faire un clic-droit sur le nom de la colonne pour le copier vers le presse-papiers.";
335
-PMA_messages['strGeneratePassword'] = "Générer un mot de passe";
336
-PMA_messages['strGenerate'] = "Générer";
337
-PMA_messages['strChangePassword'] = "Modifier le mot de passe";
338
-PMA_messages['strMore'] = "Plus";
339
-PMA_messages['strShowPanel'] = "Afficher le panneau";
340
-PMA_messages['strHidePanel'] = "Masquer le panneau";
341
-PMA_messages['strUnhideNavItem'] = "Afficher les éléments cachés de l\'arbre de navigation.";
342
-PMA_messages['linkWithMain'] = "Relier au panneau principal";
343
-PMA_messages['unlinkWithMain'] = "Supprimer la liaison au panneau principal";
344
-PMA_messages['strInvalidPage'] = "La page demandée n\'existe pas dans l\'historique, elle peut avoir expiré.";
345
-PMA_messages['strNewerVersion'] = "Une nouvelle version de phpMyAdmin est disponible et il faudrait songer à une mise à niveau. La version la plus récente est %s, publiée le %s.";
346
-PMA_messages['strLatestAvailable'] = ", dernière version stable :";
347
-PMA_messages['strUpToDate'] = "à jour";
348
-PMA_messages['strCreateView'] = "Créer une vue";
349
-PMA_messages['strSendErrorReport'] = "Envoyer le rapport d\'erreurs";
350
-PMA_messages['strSubmitErrorReport'] = "Soumettre un rapport d\'erreurs";
351
-PMA_messages['strErrorOccurred'] = "Une erreur JavaScript fatale s\'est produite. Faut-il envoyer un rapport d\'erreurs ?";
352
-PMA_messages['strChangeReportSettings'] = "Modifier les paramètres de rapport";
353
-PMA_messages['strShowReportDetails'] = "Afficher les détails du rapport";
354
-PMA_messages['strTimeOutError'] = "L\'exportation est incomplète en raison d\'une limite de temps d\'exécution trop basse au niveau PHP !";
355
-PMA_messages['strTooManyInputs'] = "Attention : un formulaire sur cette page contient plus de %d champs. Lors de l\'envoi, certains des champs pourraient être ignorés, en raison de la configuration max_input_vars de PHP.";
356
-PMA_messages['phpErrorsFound'] = "<div class=\"error\">Des erreurs ont été détectées sur le serveur !<br/>Merci de regarder au bas de cette fenêtre.<div><input id=\"pma_ignore_errors_popup\" type=\"submit\" value=\"Ignorer\" class=\"floatright message_errors_found\"><input id=\"pma_ignore_all_errors_popup\" type=\"submit\" value=\"Ignorer tout\" class=\"floatright message_errors_found\"></div></div>";
357
-PMA_messages['phpErrorsBeingSubmitted'] = "<div class=\"error\">Des erreurs ont été détectées sur le serveur !<br/>Selon les paramètres, ils sont actuellement soumis, merci de patienter.<br/><img src=\"./themes/pmahomme/img/ajax_clock_small.gif\" width=\"16\" height=\"16\" alt=\"ajax clock\"/></div>";
358
-PMA_messages['strConsoleRequeryConfirm'] = "Faut-il exécuter à nouveau cette requête ?";
359
-PMA_messages['strConsoleDeleteBookmarkConfirm'] = "Faut-il vraiment supprimer ce signet ?";
360
-PMA_messages['strConsoleDebugError'] = "Une erreur s\'est produite lors de l\'obtention des informations de débogage SQL.";
361
-PMA_messages['strConsoleDebugSummary'] = "%s requêtes exécutées %s fois en %s secondes.";
362
-PMA_messages['strConsoleDebugArgsSummary'] = "%s arguments passés";
363
-PMA_messages['strConsoleDebugShowArgs'] = "Montrer les arguments";
364
-PMA_messages['strConsoleDebugHideArgs'] = "Masquer les arguments";
365
-PMA_messages['strConsoleDebugTimeTaken'] = "Temps écoulé :";
366
-PMA_messages['strNoLocalStorage'] = "Un problème est survenu lors de l\'accès au stockage du navigateur ; certaines fonctionnalités peuvent ne pas fonctionner. Il est probable que le navigateur ne prenne pas en charge le stockage ou que le quota d\'espace ait été atteint. Dans Firefox, un stockage corrompu peut également causer ce problème, et vider les « Données de site Web hors connexion » peut aider. Dans Safari, ce problème est habituellement causé par l\'utilisation de la « Navigation en mode privé ».";
367
-PMA_messages['strCopyTablesTo'] = "Copier les tables vers";
368
-PMA_messages['strAddPrefix'] = "Ajouter un préfixe de table";
369
-PMA_messages['strReplacePrefix'] = "Remplacer la table ayant le préfixe";
370
-PMA_messages['strCopyPrefix'] = "Copier la table avec un préfixe";
371
-PMA_messages['strExtrWeak'] = "Extrêmement faible";
372
-PMA_messages['strVeryWeak'] = "Très faible";
373
-PMA_messages['strWeak'] = "Faible";
374
-PMA_messages['strGood'] = "Bon";
375
-PMA_messages['strStrong'] = "Fort";
376
-PMA_messages['strU2FTimeout'] = "Délai de l\'attente pour l\'activation de la clé de sécurité dépassé.";
377
-PMA_messages['strU2FError'] = "Activation de la clé de sécurité échouée (%s).";
378
-PMA_messages['strTableAlreadyExists'] = "La table %s existe déjà !";
379
-PMA_messages['strHide'] = "Masquer";
380
-PMA_messages['strStructure'] = "Structure";
381
-var themeCalendarImage = './themes/pmahomme/img/b_calendar.png';
382
-var pmaThemeImage = './themes/pmahomme/img/';
383
-var mysql_doc_template = './url.php?url=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.5%2Fen%2F%25s.html';
384
-var maxInputVars = 1000;
385
-if ($.datepicker) {
386
-$.datepicker.regional['']['closeText'] = "Fermer";
387
-$.datepicker.regional['']['prevText'] = "Précédent";
388
-$.datepicker.regional['']['nextText'] = "Suivant";
389
-$.datepicker.regional['']['currentText'] = "Aujourd\'hui";
390
-$.datepicker.regional['']['monthNames'] = ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre",];
391
-$.datepicker.regional['']['monthNamesShort'] = ["jan.","fév.","mars","avr.","mai","juin","juil.","août","sep.","oct.","nov.","déc.",];
392
-$.datepicker.regional['']['dayNames'] = ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi",];
393
-$.datepicker.regional['']['dayNamesShort'] = ["dim.","lun.","mar.","mer.","jeu.","ven.","sam.",];
394
-$.datepicker.regional['']['dayNamesMin'] = ["di","lu","ma","me","je","ve","sa",];
395
-$.datepicker.regional['']['weekHeader'] = "sem";
396
-$.datepicker.regional['']['showMonthAfterYear'] = false;
397
-$.datepicker.regional['']['yearSuffix'] = "";
398
-$.extend($.datepicker._defaults, $.datepicker.regional['']);
399
-} /* if ($.datepicker) */
400
-
401
-if ($.timepicker) {
402
-$.timepicker.regional['']['timeText'] = "Temps";
403
-$.timepicker.regional['']['hourText'] = "heure";
404
-$.timepicker.regional['']['minuteText'] = "minute";
405
-$.timepicker.regional['']['secondText'] = "seconde";
406
-$.extend($.timepicker._defaults, $.timepicker.regional['']);
407
-} /* if ($.timepicker) */
408
-
409
-function extendingValidatorMessages() {
410
-$.extend($.validator.messages, {
411
-required: "Ce champ est obligatoire", remote: "Merci de corriger ce champ", email: "Merci de saisir une adresse de courriel valide", url: "Merci de saisir une URL valide", date: "Merci de saisir une date valide", dateISO: "Merci de saisir une date valide (ISO)", number: "Merci de saisir un nombre valide", creditcard: "Merci de saisir un numéro de carte de crédit valide", digits: "Merci de saisir uniquement des chiffres", equalTo: "Merci de saisir la même valeur à nouveau", maxlength: $.validator.format("Merci de saisir au maximum {0} caractères"), minlength: $.validator.format("Merci de saisir au moins {0} caractères"), rangelength: $.validator.format("Merci de saisir une valeur d\'une longueur entre {0} et {1} caractères"), range: $.validator.format("Merci de saisir une valeur entre {0} et {1}"), max: $.validator.format("Merci de saisir une valeur inférieure ou égale à {0}"), min: $.validator.format("Merci de saisir une valeur supérieure ou égale à {0}"), validationFunctionForDateTime: $.validator.format("Merci de saisir saisir une date ou une heure valide"), validationFunctionForHex: $.validator.format("Merci de saisir saisir une valeur hexadécimale valide"), validationFunctionForFuns: $.validator.format("Erreur")
412
-});
413
-} /* if ($.validator) */

+ 0
- 1680
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/navigation.js
File diff suppressed because it is too large
View File


+ 0
- 59
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/page_settings.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * @fileoverview    function used for page-related settings
4
- * @name            Page-related settings
5
- *
6
- * @requires    jQuery
7
- * @requires    jQueryUI
8
- * @required    js/functions.js
9
- */
10
-
11
-function showSettings (selector) {
12
-    var buttons = {};
13
-    buttons[PMA_messages.strApply] = function () {
14
-        $('.config-form').submit();
15
-    };
16
-
17
-    buttons[PMA_messages.strCancel] = function () {
18
-        $(this).dialog('close');
19
-    };
20
-
21
-    // Keeping a clone to restore in case the user cancels the operation
22
-    var $clone = $(selector + ' .page_settings').clone(true);
23
-    $(selector)
24
-        .dialog({
25
-            title: PMA_messages.strPageSettings,
26
-            width: 700,
27
-            minHeight: 250,
28
-            modal: true,
29
-            open: function () {
30
-                $(this).dialog('option', 'maxHeight', $(window).height() - $(this).offset().top);
31
-            },
32
-            close: function () {
33
-                $(selector + ' .page_settings').replaceWith($clone);
34
-            },
35
-            buttons: buttons
36
-        });
37
-}
38
-
39
-function showPageSettings () {
40
-    showSettings('#page_settings_modal');
41
-}
42
-
43
-function showNaviSettings () {
44
-    showSettings('#pma_navigation_settings');
45
-}
46
-
47
-AJAX.registerTeardown('page_settings.js', function () {
48
-    $('#page_settings_icon').css('display', 'none');
49
-    $('#page_settings_icon').off('click');
50
-    $('#pma_navigation_settings_icon').off('click');
51
-});
52
-
53
-AJAX.registerOnload('page_settings.js', function () {
54
-    if ($('#page_settings_modal').length) {
55
-        $('#page_settings_icon').css('display', 'inline');
56
-        $('#page_settings_icon').on('click', showPageSettings);
57
-    }
58
-    $('#pma_navigation_settings_icon').on('click', showNaviSettings);
59
-});

+ 0
- 5355
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/phpmyadmin.css
File diff suppressed because it is too large
View File


+ 0
- 169
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/printview.css View File

1
-@media print {
2
-    #back_button_print_view, #print_button_print_view {
3
-        display: none;
4
-    }
5
-}
6
-
7
-/* For removing element from Print View */
8
-.print_ignore {
9
-    display: none;
10
-}
11
-
12
-.nowrap {
13
-    white-space: nowrap;
14
-}
15
-
16
-.hide {
17
-    display: none;
18
-}
19
-
20
-/* Standard CSS */
21
-body, table, th, td {
22
-    color:             #000;
23
-    background-color:  #fff;
24
-    font-size: 12px;
25
-}
26
-
27
-/* To remove link text decoration */
28
-a:link {
29
-    color:#000;
30
-    text-decoration:none
31
-}
32
-
33
-/* To remove any image borders */
34
-img {
35
-    border: 0;
36
-}
37
-
38
-/* Table specific */
39
-table, th, td {
40
-    border: .1em solid #000;
41
-    background-color: #fff;
42
-}
43
-
44
-table {
45
-    border-collapse:   collapse;
46
-    border-spacing:    0.2em;
47
-}
48
-
49
-thead {
50
-    border-collapse:   collapse;
51
-    border-spacing:    0.2em;
52
-    border: .1em solid #000;
53
-    font-weight: 900;
54
-}
55
-
56
-th, td {
57
-    padding:           0.2em;
58
-}
59
-
60
-thead th {
61
-    font-weight:       bold;
62
-    background-color:  #e5e5e5;
63
-    border: .1em solid #000;
64
-}
65
-
66
-th.vtop, td.vtop {
67
-    vertical-align: top;
68
-}
69
-
70
-th.vbottom, td.vbottom {
71
-    vertical-align: bottom;
72
-}
73
-
74
-/* Common Elements not to be included */
75
-/* Hide Navigation and Top Menu bar */
76
-#pma_navigation, #floating_menubar {
77
-    display: none;
78
-}
79
-/* Hide console */
80
-#pma_console_container {
81
-    display: none;
82
-}
83
-
84
-/* Hide Navigation items (like Goto Top) */
85
-#page_nav_icons {
86
-    display: none;
87
-}
88
-
89
-/* Hide the Create Table form */
90
-#create_table_form_minimal {
91
-    display: none;
92
-}
93
-
94
-/* Hide the Page Settings Modal box */
95
-#page_settings_modal {
96
-    display: none;
97
-}
98
-
99
-/* Hide footer, Demo notice, errors div */
100
-#pma_footer, #pma_demo, #pma_errors {
101
-    display: none;
102
-}
103
-
104
-/* Hide the #selflink div */
105
-#selflink {
106
-    display: none;
107
-}
108
-
109
-/* Position the main content */
110
-#page_content {
111
-    position: absolute;
112
-    left: 0;
113
-    top: 0;
114
-    width: 95%;
115
-    float: none;
116
-}
117
-
118
-/* Specific Class for overriding while Print */
119
-.print {
120
-    background-color: #000;
121
-}
122
-
123
-/* For the Success message div */
124
-div.success {
125
-    background-color: #fff;
126
-}
127
-
128
-.sqlOuter {
129
-    color: black;
130
-    background-color: #000;
131
-}
132
-
133
-/* For hiding 'Open a New phpMyAdmin Window' button */
134
-.ic_window-new, .ic_s_cog {
135
-    display: none;
136
-}
137
-
138
-.sticky_columns tr {
139
-    display: none;
140
-}
141
-
142
-#structure-action-links, #addColumns {
143
-    display: none;
144
-}
145
-
146
-/* Hide extra menu on tbl_structure.php */
147
-#topmenu2 {
148
-    display: none;
149
-}
150
-
151
-.cDrop, .cEdit, .cList, .cCpy, .cPointer {
152
-    display: none;
153
-}
154
-
155
-/* odd items 1,3,5,7,... */
156
-table tbody:first-of-type tr:nth-child(odd),
157
-table tbody:first-of-type tr:nth-child(odd) th {
158
-    background: #fff;
159
-} 
160
-
161
-/* even items 2,4,6,8,... */
162
-table tbody:first-of-type tr:nth-child(even),
163
-table tbody:first-of-type tr:nth-child(even) th {
164
-    background: #DFDFDF;
165
-}
166
-
167
-.column_attribute {
168
-    font-size: 100%;
169
-}

+ 0
- 1075
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/rte.js
File diff suppressed because it is too large
View File


+ 0
- 72
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/runmode.js View File

1
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
2
-// Distributed under an MIT license: https://codemirror.net/LICENSE
3
-
4
-(function(mod) {
5
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
6
-    mod(require("../../lib/codemirror"));
7
-  else if (typeof define == "function" && define.amd) // AMD
8
-    define(["../../lib/codemirror"], mod);
9
-  else // Plain browser env
10
-    mod(CodeMirror);
11
-})(function(CodeMirror) {
12
-"use strict";
13
-
14
-CodeMirror.runMode = function(string, modespec, callback, options) {
15
-  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
16
-  var ie = /MSIE \d/.test(navigator.userAgent);
17
-  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);
18
-
19
-  if (callback.appendChild) {
20
-    var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
21
-    var node = callback, col = 0;
22
-    node.innerHTML = "";
23
-    callback = function(text, style) {
24
-      if (text == "\n") {
25
-        // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.
26
-        // Emitting a carriage return makes everything ok.
27
-        node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text));
28
-        col = 0;
29
-        return;
30
-      }
31
-      var content = "";
32
-      // replace tabs
33
-      for (var pos = 0;;) {
34
-        var idx = text.indexOf("\t", pos);
35
-        if (idx == -1) {
36
-          content += text.slice(pos);
37
-          col += text.length - pos;
38
-          break;
39
-        } else {
40
-          col += idx - pos;
41
-          content += text.slice(pos, idx);
42
-          var size = tabSize - col % tabSize;
43
-          col += size;
44
-          for (var i = 0; i < size; ++i) content += " ";
45
-          pos = idx + 1;
46
-        }
47
-      }
48
-
49
-      if (style) {
50
-        var sp = node.appendChild(document.createElement("span"));
51
-        sp.className = "cm-" + style.replace(/ +/g, " cm-");
52
-        sp.appendChild(document.createTextNode(content));
53
-      } else {
54
-        node.appendChild(document.createTextNode(content));
55
-      }
56
-    };
57
-  }
58
-
59
-  var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
60
-  for (var i = 0, e = lines.length; i < e; ++i) {
61
-    if (i) callback("\n");
62
-    var stream = new CodeMirror.StringStream(lines[i]);
63
-    if (!stream.string && mode.blankLine) mode.blankLine(state);
64
-    while (!stream.eol()) {
65
-      var style = mode.token(stream, state);
66
-      callback(stream.current(), style, i, stream.start, state);
67
-      stream.start = stream.pos;
68
-    }
69
-  }
70
-};
71
-
72
-});

+ 0
- 101
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/shortcuts_handler.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * @fileoverview    Handle shortcuts in various pages
4
- * @name            Shortcuts handler
5
- *
6
- * @requires    jQuery
7
- * @requires    jQueryUI
8
- */
9
-
10
-/**
11
- * Register key events on load
12
- */
13
-$(document).ready(function () {
14
-    var databaseOp = false;
15
-    var tableOp = false;
16
-    var keyD = 68;
17
-    var keyT = 84;
18
-    var keyK = 75;
19
-    var keyS = 83;
20
-    var keyF = 70;
21
-    var keyE = 69;
22
-    var keyH = 72;
23
-    var keyC = 67;
24
-    var keyBackSpace = 8;
25
-    $(document).on('keyup', function (e) {
26
-        if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') {
27
-            return;
28
-        }
29
-
30
-        if (e.keyCode === keyD) {
31
-            setTimeout(function () {
32
-                databaseOp = false;
33
-            }, 2000);
34
-        } else if (e.keyCode === keyT) {
35
-            setTimeout(function () {
36
-                tableOp = false;
37
-            }, 2000);
38
-        }
39
-    });
40
-    $(document).on('keydown', function (e) {
41
-        if (e.ctrlKey && e.altKey && e.keyCode === keyC) {
42
-            PMA_console.toggle();
43
-        }
44
-
45
-        if (e.ctrlKey && e.keyCode === keyK) {
46
-            e.preventDefault();
47
-            PMA_console.toggle();
48
-        }
49
-
50
-        if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') {
51
-            return;
52
-        }
53
-
54
-        var isTable;
55
-        var isDb;
56
-        if (e.keyCode === keyD) {
57
-            databaseOp = true;
58
-        } else if (e.keyCode === keyK) {
59
-            e.preventDefault();
60
-            PMA_console.toggle();
61
-        } else if (e.keyCode === keyS) {
62
-            if (databaseOp === true) {
63
-                isTable = PMA_commonParams.get('table');
64
-                isDb = PMA_commonParams.get('db');
65
-                if (isDb && ! isTable) {
66
-                    $('.tab .ic_b_props').first().trigger('click');
67
-                }
68
-            } else if (tableOp === true) {
69
-                isTable = PMA_commonParams.get('table');
70
-                isDb = PMA_commonParams.get('db');
71
-                if (isDb && isTable) {
72
-                    $('.tab .ic_b_props').first().trigger('click');
73
-                }
74
-            } else {
75
-                $('#pma_navigation_settings_icon').trigger('click');
76
-            }
77
-        } else if (e.keyCode === keyF) {
78
-            if (databaseOp === true) {
79
-                isTable = PMA_commonParams.get('table');
80
-                isDb = PMA_commonParams.get('db');
81
-                if (isDb && ! isTable) {
82
-                    $('.tab .ic_b_search').first().trigger('click');
83
-                }
84
-            } else if (tableOp === true) {
85
-                isTable = PMA_commonParams.get('table');
86
-                isDb = PMA_commonParams.get('db');
87
-                if (isDb && isTable) {
88
-                    $('.tab .ic_b_search').first().trigger('click');
89
-                }
90
-            }
91
-        } else if (e.keyCode === keyT) {
92
-            tableOp = true;
93
-        } else if (e.keyCode === keyE) {
94
-            $('.ic_b_export').first().trigger('click');
95
-        } else if (e.keyCode === keyBackSpace) {
96
-            window.history.back();
97
-        } else if (e.keyCode === keyH) {
98
-            $('.ic_b_home').first().trigger('click');
99
-        }
100
-    });
101
-});

+ 0
- 36
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/show-hint.css View File

1
-.CodeMirror-hints {
2
-  position: absolute;
3
-  z-index: 10;
4
-  overflow: hidden;
5
-  list-style: none;
6
-
7
-  margin: 0;
8
-  padding: 2px;
9
-
10
-  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
11
-  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
12
-  box-shadow: 2px 3px 5px rgba(0,0,0,.2);
13
-  border-radius: 3px;
14
-  border: 1px solid silver;
15
-
16
-  background: white;
17
-  font-size: 90%;
18
-  font-family: monospace;
19
-
20
-  max-height: 20em;
21
-  overflow-y: auto;
22
-}
23
-
24
-.CodeMirror-hint {
25
-  margin: 0;
26
-  padding: 0 4px;
27
-  border-radius: 2px;
28
-  white-space: pre;
29
-  color: black;
30
-  cursor: pointer;
31
-}
32
-
33
-li.CodeMirror-hint-active {
34
-  background: #08f;
35
-  color: white;
36
-}

+ 0
- 460
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/show-hint.js View File

1
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
2
-// Distributed under an MIT license: https://codemirror.net/LICENSE
3
-
4
-(function(mod) {
5
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
6
-    mod(require("../../lib/codemirror"));
7
-  else if (typeof define == "function" && define.amd) // AMD
8
-    define(["../../lib/codemirror"], mod);
9
-  else // Plain browser env
10
-    mod(CodeMirror);
11
-})(function(CodeMirror) {
12
-  "use strict";
13
-
14
-  var HINT_ELEMENT_CLASS        = "CodeMirror-hint";
15
-  var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active";
16
-
17
-  // This is the old interface, kept around for now to stay
18
-  // backwards-compatible.
19
-  CodeMirror.showHint = function(cm, getHints, options) {
20
-    if (!getHints) return cm.showHint(options);
21
-    if (options && options.async) getHints.async = true;
22
-    var newOpts = {hint: getHints};
23
-    if (options) for (var prop in options) newOpts[prop] = options[prop];
24
-    return cm.showHint(newOpts);
25
-  };
26
-
27
-  CodeMirror.defineExtension("showHint", function(options) {
28
-    options = parseOptions(this, this.getCursor("start"), options);
29
-    var selections = this.listSelections()
30
-    if (selections.length > 1) return;
31
-    // By default, don't allow completion when something is selected.
32
-    // A hint function can have a `supportsSelection` property to
33
-    // indicate that it can handle selections.
34
-    if (this.somethingSelected()) {
35
-      if (!options.hint.supportsSelection) return;
36
-      // Don't try with cross-line selections
37
-      for (var i = 0; i < selections.length; i++)
38
-        if (selections[i].head.line != selections[i].anchor.line) return;
39
-    }
40
-
41
-    if (this.state.completionActive) this.state.completionActive.close();
42
-    var completion = this.state.completionActive = new Completion(this, options);
43
-    if (!completion.options.hint) return;
44
-
45
-    CodeMirror.signal(this, "startCompletion", this);
46
-    completion.update(true);
47
-  });
48
-
49
-  CodeMirror.defineExtension("closeHint", function() {
50
-    if (this.state.completionActive) this.state.completionActive.close()
51
-  })
52
-
53
-  function Completion(cm, options) {
54
-    this.cm = cm;
55
-    this.options = options;
56
-    this.widget = null;
57
-    this.debounce = 0;
58
-    this.tick = 0;
59
-    this.startPos = this.cm.getCursor("start");
60
-    this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;
61
-
62
-    var self = this;
63
-    cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); });
64
-  }
65
-
66
-  var requestAnimationFrame = window.requestAnimationFrame || function(fn) {
67
-    return setTimeout(fn, 1000/60);
68
-  };
69
-  var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;
70
-
71
-  Completion.prototype = {
72
-    close: function() {
73
-      if (!this.active()) return;
74
-      this.cm.state.completionActive = null;
75
-      this.tick = null;
76
-      this.cm.off("cursorActivity", this.activityFunc);
77
-
78
-      if (this.widget && this.data) CodeMirror.signal(this.data, "close");
79
-      if (this.widget) this.widget.close();
80
-      CodeMirror.signal(this.cm, "endCompletion", this.cm);
81
-    },
82
-
83
-    active: function() {
84
-      return this.cm.state.completionActive == this;
85
-    },
86
-
87
-    pick: function(data, i) {
88
-      var completion = data.list[i];
89
-      if (completion.hint) completion.hint(this.cm, data, completion);
90
-      else this.cm.replaceRange(getText(completion), completion.from || data.from,
91
-                                completion.to || data.to, "complete");
92
-      CodeMirror.signal(data, "pick", completion);
93
-      this.close();
94
-    },
95
-
96
-    cursorActivity: function() {
97
-      if (this.debounce) {
98
-        cancelAnimationFrame(this.debounce);
99
-        this.debounce = 0;
100
-      }
101
-
102
-      var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);
103
-      if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||
104
-          pos.ch < this.startPos.ch || this.cm.somethingSelected() ||
105
-          (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {
106
-        this.close();
107
-      } else {
108
-        var self = this;
109
-        this.debounce = requestAnimationFrame(function() {self.update();});
110
-        if (this.widget) this.widget.disable();
111
-      }
112
-    },
113
-
114
-    update: function(first) {
115
-      if (this.tick == null) return
116
-      var self = this, myTick = ++this.tick
117
-      fetchHints(this.options.hint, this.cm, this.options, function(data) {
118
-        if (self.tick == myTick) self.finishUpdate(data, first)
119
-      })
120
-    },
121
-
122
-    finishUpdate: function(data, first) {
123
-      if (this.data) CodeMirror.signal(this.data, "update");
124
-
125
-      var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);
126
-      if (this.widget) this.widget.close();
127
-
128
-      this.data = data;
129
-
130
-      if (data && data.list.length) {
131
-        if (picked && data.list.length == 1) {
132
-          this.pick(data, 0);
133
-        } else {
134
-          this.widget = new Widget(this, data);
135
-          CodeMirror.signal(data, "shown");
136
-        }
137
-      }
138
-    }
139
-  };
140
-
141
-  function parseOptions(cm, pos, options) {
142
-    var editor = cm.options.hintOptions;
143
-    var out = {};
144
-    for (var prop in defaultOptions) out[prop] = defaultOptions[prop];
145
-    if (editor) for (var prop in editor)
146
-      if (editor[prop] !== undefined) out[prop] = editor[prop];
147
-    if (options) for (var prop in options)
148
-      if (options[prop] !== undefined) out[prop] = options[prop];
149
-    if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)
150
-    return out;
151
-  }
152
-
153
-  function getText(completion) {
154
-    if (typeof completion == "string") return completion;
155
-    else return completion.text;
156
-  }
157
-
158
-  function buildKeyMap(completion, handle) {
159
-    var baseMap = {
160
-      Up: function() {handle.moveFocus(-1);},
161
-      Down: function() {handle.moveFocus(1);},
162
-      PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},
163
-      PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},
164
-      Home: function() {handle.setFocus(0);},
165
-      End: function() {handle.setFocus(handle.length - 1);},
166
-      Enter: handle.pick,
167
-      Tab: handle.pick,
168
-      Esc: handle.close
169
-    };
170
-
171
-    var mac = /Mac/.test(navigator.platform);
172
-
173
-    if (mac) {
174
-      baseMap["Ctrl-P"] = function() {handle.moveFocus(-1);};
175
-      baseMap["Ctrl-N"] = function() {handle.moveFocus(1);};
176
-    }
177
-
178
-    var custom = completion.options.customKeys;
179
-    var ourMap = custom ? {} : baseMap;
180
-    function addBinding(key, val) {
181
-      var bound;
182
-      if (typeof val != "string")
183
-        bound = function(cm) { return val(cm, handle); };
184
-      // This mechanism is deprecated
185
-      else if (baseMap.hasOwnProperty(val))
186
-        bound = baseMap[val];
187
-      else
188
-        bound = val;
189
-      ourMap[key] = bound;
190
-    }
191
-    if (custom)
192
-      for (var key in custom) if (custom.hasOwnProperty(key))
193
-        addBinding(key, custom[key]);
194
-    var extra = completion.options.extraKeys;
195
-    if (extra)
196
-      for (var key in extra) if (extra.hasOwnProperty(key))
197
-        addBinding(key, extra[key]);
198
-    return ourMap;
199
-  }
200
-
201
-  function getHintElement(hintsElement, el) {
202
-    while (el && el != hintsElement) {
203
-      if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el;
204
-      el = el.parentNode;
205
-    }
206
-  }
207
-
208
-  function Widget(completion, data) {
209
-    this.completion = completion;
210
-    this.data = data;
211
-    this.picked = false;
212
-    var widget = this, cm = completion.cm;
213
-    var ownerDocument = cm.getInputField().ownerDocument;
214
-    var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow;
215
-
216
-    var hints = this.hints = ownerDocument.createElement("ul");
217
-    var theme = completion.cm.options.theme;
218
-    hints.className = "CodeMirror-hints " + theme;
219
-    this.selectedHint = data.selectedHint || 0;
220
-
221
-    var completions = data.list;
222
-    for (var i = 0; i < completions.length; ++i) {
223
-      var elt = hints.appendChild(ownerDocument.createElement("li")), cur = completions[i];
224
-      var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS);
225
-      if (cur.className != null) className = cur.className + " " + className;
226
-      elt.className = className;
227
-      if (cur.render) cur.render(elt, data, cur);
228
-      else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur)));
229
-      elt.hintId = i;
230
-    }
231
-
232
-    var container = completion.options.container || ownerDocument.body;
233
-    var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);
234
-    var left = pos.left, top = pos.bottom, below = true;
235
-    var offsetLeft = 0, offsetTop = 0;
236
-    if (container !== ownerDocument.body) {
237
-      // We offset the cursor position because left and top are relative to the offsetParent's top left corner.
238
-      var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1;
239
-      var offsetParent = isContainerPositioned ? container : container.offsetParent;
240
-      var offsetParentPosition = offsetParent.getBoundingClientRect();
241
-      var bodyPosition = ownerDocument.body.getBoundingClientRect();
242
-      offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft);
243
-      offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop);
244
-    }
245
-    hints.style.left = (left - offsetLeft) + "px";
246
-    hints.style.top = (top - offsetTop) + "px";
247
-
248
-    // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
249
-    var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth);
250
-    var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight);
251
-    container.appendChild(hints);
252
-    var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;
253
-    var scrolls = hints.scrollHeight > hints.clientHeight + 1
254
-    var startScroll = cm.getScrollInfo();
255
-
256
-    if (overlapY > 0) {
257
-      var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);
258
-      if (curTop - height > 0) { // Fits above cursor
259
-        hints.style.top = (top = pos.top - height - offsetTop) + "px";
260
-        below = false;
261
-      } else if (height > winH) {
262
-        hints.style.height = (winH - 5) + "px";
263
-        hints.style.top = (top = pos.bottom - box.top - offsetTop) + "px";
264
-        var cursor = cm.getCursor();
265
-        if (data.from.ch != cursor.ch) {
266
-          pos = cm.cursorCoords(cursor);
267
-          hints.style.left = (left = pos.left - offsetLeft) + "px";
268
-          box = hints.getBoundingClientRect();
269
-        }
270
-      }
271
-    }
272
-    var overlapX = box.right - winW;
273
-    if (overlapX > 0) {
274
-      if (box.right - box.left > winW) {
275
-        hints.style.width = (winW - 5) + "px";
276
-        overlapX -= (box.right - box.left) - winW;
277
-      }
278
-      hints.style.left = (left = pos.left - overlapX - offsetLeft) + "px";
279
-    }
280
-    if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)
281
-      node.style.paddingRight = cm.display.nativeBarWidth + "px"
282
-
283
-    cm.addKeyMap(this.keyMap = buildKeyMap(completion, {
284
-      moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },
285
-      setFocus: function(n) { widget.changeActive(n); },
286
-      menuSize: function() { return widget.screenAmount(); },
287
-      length: completions.length,
288
-      close: function() { completion.close(); },
289
-      pick: function() { widget.pick(); },
290
-      data: data
291
-    }));
292
-
293
-    if (completion.options.closeOnUnfocus) {
294
-      var closingOnBlur;
295
-      cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });
296
-      cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); });
297
-    }
298
-
299
-    cm.on("scroll", this.onScroll = function() {
300
-      var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();
301
-      var newTop = top + startScroll.top - curScroll.top;
302
-      var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop);
303
-      if (!below) point += hints.offsetHeight;
304
-      if (point <= editor.top || point >= editor.bottom) return completion.close();
305
-      hints.style.top = newTop + "px";
306
-      hints.style.left = (left + startScroll.left - curScroll.left) + "px";
307
-    });
308
-
309
-    CodeMirror.on(hints, "dblclick", function(e) {
310
-      var t = getHintElement(hints, e.target || e.srcElement);
311
-      if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}
312
-    });
313
-
314
-    CodeMirror.on(hints, "click", function(e) {
315
-      var t = getHintElement(hints, e.target || e.srcElement);
316
-      if (t && t.hintId != null) {
317
-        widget.changeActive(t.hintId);
318
-        if (completion.options.completeOnSingleClick) widget.pick();
319
-      }
320
-    });
321
-
322
-    CodeMirror.on(hints, "mousedown", function() {
323
-      setTimeout(function(){cm.focus();}, 20);
324
-    });
325
-
326
-    CodeMirror.signal(data, "select", completions[this.selectedHint], hints.childNodes[this.selectedHint]);
327
-    return true;
328
-  }
329
-
330
-  Widget.prototype = {
331
-    close: function() {
332
-      if (this.completion.widget != this) return;
333
-      this.completion.widget = null;
334
-      this.hints.parentNode.removeChild(this.hints);
335
-      this.completion.cm.removeKeyMap(this.keyMap);
336
-
337
-      var cm = this.completion.cm;
338
-      if (this.completion.options.closeOnUnfocus) {
339
-        cm.off("blur", this.onBlur);
340
-        cm.off("focus", this.onFocus);
341
-      }
342
-      cm.off("scroll", this.onScroll);
343
-    },
344
-
345
-    disable: function() {
346
-      this.completion.cm.removeKeyMap(this.keyMap);
347
-      var widget = this;
348
-      this.keyMap = {Enter: function() { widget.picked = true; }};
349
-      this.completion.cm.addKeyMap(this.keyMap);
350
-    },
351
-
352
-    pick: function() {
353
-      this.completion.pick(this.data, this.selectedHint);
354
-    },
355
-
356
-    changeActive: function(i, avoidWrap) {
357
-      if (i >= this.data.list.length)
358
-        i = avoidWrap ? this.data.list.length - 1 : 0;
359
-      else if (i < 0)
360
-        i = avoidWrap ? 0  : this.data.list.length - 1;
361
-      if (this.selectedHint == i) return;
362
-      var node = this.hints.childNodes[this.selectedHint];
363
-      if (node) node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, "");
364
-      node = this.hints.childNodes[this.selectedHint = i];
365
-      node.className += " " + ACTIVE_HINT_ELEMENT_CLASS;
366
-      if (node.offsetTop < this.hints.scrollTop)
367
-        this.hints.scrollTop = node.offsetTop - 3;
368
-      else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)
369
-        this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;
370
-      CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node);
371
-    },
372
-
373
-    screenAmount: function() {
374
-      return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;
375
-    }
376
-  };
377
-
378
-  function applicableHelpers(cm, helpers) {
379
-    if (!cm.somethingSelected()) return helpers
380
-    var result = []
381
-    for (var i = 0; i < helpers.length; i++)
382
-      if (helpers[i].supportsSelection) result.push(helpers[i])
383
-    return result
384
-  }
385
-
386
-  function fetchHints(hint, cm, options, callback) {
387
-    if (hint.async) {
388
-      hint(cm, callback, options)
389
-    } else {
390
-      var result = hint(cm, options)
391
-      if (result && result.then) result.then(callback)
392
-      else callback(result)
393
-    }
394
-  }
395
-
396
-  function resolveAutoHints(cm, pos) {
397
-    var helpers = cm.getHelpers(pos, "hint"), words
398
-    if (helpers.length) {
399
-      var resolved = function(cm, callback, options) {
400
-        var app = applicableHelpers(cm, helpers);
401
-        function run(i) {
402
-          if (i == app.length) return callback(null)
403
-          fetchHints(app[i], cm, options, function(result) {
404
-            if (result && result.list.length > 0) callback(result)
405
-            else run(i + 1)
406
-          })
407
-        }
408
-        run(0)
409
-      }
410
-      resolved.async = true
411
-      resolved.supportsSelection = true
412
-      return resolved
413
-    } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) {
414
-      return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }
415
-    } else if (CodeMirror.hint.anyword) {
416
-      return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }
417
-    } else {
418
-      return function() {}
419
-    }
420
-  }
421
-
422
-  CodeMirror.registerHelper("hint", "auto", {
423
-    resolve: resolveAutoHints
424
-  });
425
-
426
-  CodeMirror.registerHelper("hint", "fromList", function(cm, options) {
427
-    var cur = cm.getCursor(), token = cm.getTokenAt(cur)
428
-    var term, from = CodeMirror.Pos(cur.line, token.start), to = cur
429
-    if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) {
430
-      term = token.string.substr(0, cur.ch - token.start)
431
-    } else {
432
-      term = ""
433
-      from = cur
434
-    }
435
-    var found = [];
436
-    for (var i = 0; i < options.words.length; i++) {
437
-      var word = options.words[i];
438
-      if (word.slice(0, term.length) == term)
439
-        found.push(word);
440
-    }
441
-
442
-    if (found.length) return {list: found, from: from, to: to};
443
-  });
444
-
445
-  CodeMirror.commands.autocomplete = CodeMirror.showHint;
446
-
447
-  var defaultOptions = {
448
-    hint: CodeMirror.hint.auto,
449
-    completeSingle: true,
450
-    alignWithWord: true,
451
-    closeCharacters: /[\s()\[\]{};:>,]/,
452
-    closeOnUnfocus: true,
453
-    completeOnSingleClick: true,
454
-    container: null,
455
-    customKeys: null,
456
-    extraKeys: null
457
-  };
458
-
459
-  CodeMirror.defineOption("hintOptions", null);
460
-});

+ 0
- 211
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sprintf.js View File

1
-function sprintf() {
2
-/*
3
- * Copyright (c) 2013 Kevin van Zonneveld (http://kvz.io)
4
- * and Contributors (http://phpjs.org/authors)
5
- *
6
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
7
- * this software and associated documentation files (the "Software"), to deal in
8
- * the Software without restriction, including without limitation the rights to
9
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
10
- * of the Software, and to permit persons to whom the Software is furnished to do
11
- * so, subject to the following conditions:
12
- *
13
- * The above copyright notice and this permission notice shall be included in all
14
- * copies or substantial portions of the Software.
15
- *
16
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- * SOFTWARE.
23
-*/
24
-  //  discuss at: http://phpjs.org/functions/sprintf/
25
-  // original by: Ash Searle (http://hexmen.com/blog/)
26
-  // improved by: Michael White (http://getsprink.com)
27
-  // improved by: Jack
28
-  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
29
-  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
30
-  // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
31
-  // improved by: Dj
32
-  // improved by: Allidylls
33
-  //    input by: Paulo Freitas
34
-  //    input by: Brett Zamir (http://brett-zamir.me)
35
-  //   example 1: sprintf("%01.2f", 123.1);
36
-  //   returns 1: 123.10
37
-  //   example 2: sprintf("[%10s]", 'monkey');
38
-  //   returns 2: '[    monkey]'
39
-  //   example 3: sprintf("[%'#10s]", 'monkey');
40
-  //   returns 3: '[####monkey]'
41
-  //   example 4: sprintf("%d", 123456789012345);
42
-  //   returns 4: '123456789012345'
43
-  //   example 5: sprintf('%-03s', 'E');
44
-  //   returns 5: 'E00'
45
-
46
-  var regex = /%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g;
47
-  var a = arguments;
48
-  var i = 0;
49
-  var format = a[i++];
50
-
51
-  // pad()
52
-  var pad = function (str, len, chr, leftJustify) {
53
-    if (!chr) {
54
-      chr = ' ';
55
-    }
56
-    var padding = (str.length >= len) ? '' : new Array(1 + len - str.length >>> 0)
57
-      .join(chr);
58
-    return leftJustify ? str + padding : padding + str;
59
-  };
60
-
61
-  // justify()
62
-  var justify = function (value, prefix, leftJustify, minWidth, zeroPad, customPadChar) {
63
-    var diff = minWidth - value.length;
64
-    if (diff > 0) {
65
-      if (leftJustify || !zeroPad) {
66
-        value = pad(value, minWidth, customPadChar, leftJustify);
67
-      } else {
68
-        value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length);
69
-      }
70
-    }
71
-    return value;
72
-  };
73
-
74
-  // formatBaseX()
75
-  var formatBaseX = function (value, base, prefix, leftJustify, minWidth, precision, zeroPad) {
76
-    // Note: casts negative numbers to positive ones
77
-    var number = value >>> 0;
78
-    prefix = prefix && number && {
79
-      '2': '0b',
80
-      '8': '0',
81
-      '16': '0x'
82
-    }[base] || '';
83
-    value = prefix + pad(number.toString(base), precision || 0, '0', false);
84
-    return justify(value, prefix, leftJustify, minWidth, zeroPad);
85
-  };
86
-
87
-  // formatString()
88
-  var formatString = function (value, leftJustify, minWidth, precision, zeroPad, customPadChar) {
89
-    if (precision != null) {
90
-      value = value.slice(0, precision);
91
-    }
92
-    return justify(value, '', leftJustify, minWidth, zeroPad, customPadChar);
93
-  };
94
-
95
-  // doFormat()
96
-  var doFormat = function (substring, valueIndex, flags, minWidth, _, precision, type) {
97
-    var number, prefix, method, textTransform, value;
98
-
99
-    if (substring === '%%') {
100
-      return '%';
101
-    }
102
-
103
-    // parse flags
104
-    var leftJustify = false;
105
-    var positivePrefix = '';
106
-    var zeroPad = false;
107
-    var prefixBaseX = false;
108
-    var customPadChar = ' ';
109
-    var flagsl = flags.length;
110
-    for (var j = 0; flags && j < flagsl; j++) {
111
-      switch (flags.charAt(j)) {
112
-      case ' ':
113
-        positivePrefix = ' ';
114
-        break;
115
-      case '+':
116
-        positivePrefix = '+';
117
-        break;
118
-      case '-':
119
-        leftJustify = true;
120
-        break;
121
-      case "'":
122
-        customPadChar = flags.charAt(j + 1);
123
-        break;
124
-      case '0':
125
-        zeroPad = true;
126
-        customPadChar = '0';
127
-        break;
128
-      case '#':
129
-        prefixBaseX = true;
130
-        break;
131
-      }
132
-    }
133
-
134
-    // parameters may be null, undefined, empty-string or real valued
135
-    // we want to ignore null, undefined and empty-string values
136
-    if (!minWidth) {
137
-      minWidth = 0;
138
-    } else if (minWidth === '*') {
139
-      minWidth = +a[i++];
140
-    } else if (minWidth.charAt(0) == '*') {
141
-      minWidth = +a[minWidth.slice(1, -1)];
142
-    } else {
143
-      minWidth = +minWidth;
144
-    }
145
-
146
-    // Note: undocumented perl feature:
147
-    if (minWidth < 0) {
148
-      minWidth = -minWidth;
149
-      leftJustify = true;
150
-    }
151
-
152
-    if (!isFinite(minWidth)) {
153
-      throw new Error('sprintf: (minimum-)width must be finite');
154
-    }
155
-
156
-    if (!precision) {
157
-      precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type === 'd') ? 0 : undefined;
158
-    } else if (precision === '*') {
159
-      precision = +a[i++];
160
-    } else if (precision.charAt(0) == '*') {
161
-      precision = +a[precision.slice(1, -1)];
162
-    } else {
163
-      precision = +precision;
164
-    }
165
-
166
-    // grab value using valueIndex if required?
167
-    value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++];
168
-
169
-    switch (type) {
170
-    case 's':
171
-      return formatString(String(value), leftJustify, minWidth, precision, zeroPad, customPadChar);
172
-    case 'c':
173
-      return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad);
174
-    case 'b':
175
-      return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
176
-    case 'o':
177
-      return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
178
-    case 'x':
179
-      return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
180
-    case 'X':
181
-      return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad)
182
-        .toUpperCase();
183
-    case 'u':
184
-      return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
185
-    case 'i':
186
-    case 'd':
187
-      number = +value || 0;
188
-      // Plain Math.round doesn't just truncate
189
-      number = Math.round(number - number % 1);
190
-      prefix = number < 0 ? '-' : positivePrefix;
191
-      value = prefix + pad(String(Math.abs(number)), precision, '0', false);
192
-      return justify(value, prefix, leftJustify, minWidth, zeroPad);
193
-    case 'e':
194
-    case 'E':
195
-    case 'f': // Should handle locales (as per setlocale)
196
-    case 'F':
197
-    case 'g':
198
-    case 'G':
199
-      number = +value;
200
-      prefix = number < 0 ? '-' : positivePrefix;
201
-      method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())];
202
-      textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2];
203
-      value = prefix + Math.abs(number)[method](precision);
204
-      return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform]();
205
-    default:
206
-      return substring;
207
-    }
208
-  };
209
-
210
-  return format.replace(regex, doFormat);
211
-}

+ 0
- 304
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sql-hint.js View File

1
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
2
-// Distributed under an MIT license: https://codemirror.net/LICENSE
3
-
4
-(function(mod) {
5
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
6
-    mod(require("../../lib/codemirror"), require("../../mode/sql/sql"));
7
-  else if (typeof define == "function" && define.amd) // AMD
8
-    define(["../../lib/codemirror", "../../mode/sql/sql"], mod);
9
-  else // Plain browser env
10
-    mod(CodeMirror);
11
-})(function(CodeMirror) {
12
-  "use strict";
13
-
14
-  var tables;
15
-  var defaultTable;
16
-  var keywords;
17
-  var identifierQuote;
18
-  var CONS = {
19
-    QUERY_DIV: ";",
20
-    ALIAS_KEYWORD: "AS"
21
-  };
22
-  var Pos = CodeMirror.Pos, cmpPos = CodeMirror.cmpPos;
23
-
24
-  function isArray(val) { return Object.prototype.toString.call(val) == "[object Array]" }
25
-
26
-  function getKeywords(editor) {
27
-    var mode = editor.doc.modeOption;
28
-    if (mode === "sql") mode = "text/x-sql";
29
-    return CodeMirror.resolveMode(mode).keywords;
30
-  }
31
-
32
-  function getIdentifierQuote(editor) {
33
-    var mode = editor.doc.modeOption;
34
-    if (mode === "sql") mode = "text/x-sql";
35
-    return CodeMirror.resolveMode(mode).identifierQuote || "`";
36
-  }
37
-
38
-  function getText(item) {
39
-    return typeof item == "string" ? item : item.text;
40
-  }
41
-
42
-  function wrapTable(name, value) {
43
-    if (isArray(value)) value = {columns: value}
44
-    if (!value.text) value.text = name
45
-    return value
46
-  }
47
-
48
-  function parseTables(input) {
49
-    var result = {}
50
-    if (isArray(input)) {
51
-      for (var i = input.length - 1; i >= 0; i--) {
52
-        var item = input[i]
53
-        result[getText(item).toUpperCase()] = wrapTable(getText(item), item)
54
-      }
55
-    } else if (input) {
56
-      for (var name in input)
57
-        result[name.toUpperCase()] = wrapTable(name, input[name])
58
-    }
59
-    return result
60
-  }
61
-
62
-  function getTable(name) {
63
-    return tables[name.toUpperCase()]
64
-  }
65
-
66
-  function shallowClone(object) {
67
-    var result = {};
68
-    for (var key in object) if (object.hasOwnProperty(key))
69
-      result[key] = object[key];
70
-    return result;
71
-  }
72
-
73
-  function match(string, word) {
74
-    var len = string.length;
75
-    var sub = getText(word).substr(0, len);
76
-    return string.toUpperCase() === sub.toUpperCase();
77
-  }
78
-
79
-  function addMatches(result, search, wordlist, formatter) {
80
-    if (isArray(wordlist)) {
81
-      for (var i = 0; i < wordlist.length; i++)
82
-        if (match(search, wordlist[i])) result.push(formatter(wordlist[i]))
83
-    } else {
84
-      for (var word in wordlist) if (wordlist.hasOwnProperty(word)) {
85
-        var val = wordlist[word]
86
-        if (!val || val === true)
87
-          val = word
88
-        else
89
-          val = val.displayText ? {text: val.text, displayText: val.displayText} : val.text
90
-        if (match(search, val)) result.push(formatter(val))
91
-      }
92
-    }
93
-  }
94
-
95
-  function cleanName(name) {
96
-    // Get rid name from identifierQuote and preceding dot(.)
97
-    if (name.charAt(0) == ".") {
98
-      name = name.substr(1);
99
-    }
100
-    // replace doublicated identifierQuotes with single identifierQuotes
101
-    // and remove single identifierQuotes
102
-    var nameParts = name.split(identifierQuote+identifierQuote);
103
-    for (var i = 0; i < nameParts.length; i++)
104
-      nameParts[i] = nameParts[i].replace(new RegExp(identifierQuote,"g"), "");
105
-    return nameParts.join(identifierQuote);
106
-  }
107
-
108
-  function insertIdentifierQuotes(name) {
109
-    var nameParts = getText(name).split(".");
110
-    for (var i = 0; i < nameParts.length; i++)
111
-      nameParts[i] = identifierQuote +
112
-        // doublicate identifierQuotes
113
-        nameParts[i].replace(new RegExp(identifierQuote,"g"), identifierQuote+identifierQuote) +
114
-        identifierQuote;
115
-    var escaped = nameParts.join(".");
116
-    if (typeof name == "string") return escaped;
117
-    name = shallowClone(name);
118
-    name.text = escaped;
119
-    return name;
120
-  }
121
-
122
-  function nameCompletion(cur, token, result, editor) {
123
-    // Try to complete table, column names and return start position of completion
124
-    var useIdentifierQuotes = false;
125
-    var nameParts = [];
126
-    var start = token.start;
127
-    var cont = true;
128
-    while (cont) {
129
-      cont = (token.string.charAt(0) == ".");
130
-      useIdentifierQuotes = useIdentifierQuotes || (token.string.charAt(0) == identifierQuote);
131
-
132
-      start = token.start;
133
-      nameParts.unshift(cleanName(token.string));
134
-
135
-      token = editor.getTokenAt(Pos(cur.line, token.start));
136
-      if (token.string == ".") {
137
-        cont = true;
138
-        token = editor.getTokenAt(Pos(cur.line, token.start));
139
-      }
140
-    }
141
-
142
-    // Try to complete table names
143
-    var string = nameParts.join(".");
144
-    addMatches(result, string, tables, function(w) {
145
-      return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;
146
-    });
147
-
148
-    // Try to complete columns from defaultTable
149
-    addMatches(result, string, defaultTable, function(w) {
150
-      return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;
151
-    });
152
-
153
-    // Try to complete columns
154
-    string = nameParts.pop();
155
-    var table = nameParts.join(".");
156
-
157
-    var alias = false;
158
-    var aliasTable = table;
159
-    // Check if table is available. If not, find table by Alias
160
-    if (!getTable(table)) {
161
-      var oldTable = table;
162
-      table = findTableByAlias(table, editor);
163
-      if (table !== oldTable) alias = true;
164
-    }
165
-
166
-    var columns = getTable(table);
167
-    if (columns && columns.columns)
168
-      columns = columns.columns;
169
-
170
-    if (columns) {
171
-      addMatches(result, string, columns, function(w) {
172
-        var tableInsert = table;
173
-        if (alias == true) tableInsert = aliasTable;
174
-        if (typeof w == "string") {
175
-          w = tableInsert + "." + w;
176
-        } else {
177
-          w = shallowClone(w);
178
-          w.text = tableInsert + "." + w.text;
179
-        }
180
-        return useIdentifierQuotes ? insertIdentifierQuotes(w) : w;
181
-      });
182
-    }
183
-
184
-    return start;
185
-  }
186
-
187
-  function eachWord(lineText, f) {
188
-    var words = lineText.split(/\s+/)
189
-    for (var i = 0; i < words.length; i++)
190
-      if (words[i]) f(words[i].replace(/[,;]/g, ''))
191
-  }
192
-
193
-  function findTableByAlias(alias, editor) {
194
-    var doc = editor.doc;
195
-    var fullQuery = doc.getValue();
196
-    var aliasUpperCase = alias.toUpperCase();
197
-    var previousWord = "";
198
-    var table = "";
199
-    var separator = [];
200
-    var validRange = {
201
-      start: Pos(0, 0),
202
-      end: Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).length)
203
-    };
204
-
205
-    //add separator
206
-    var indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV);
207
-    while(indexOfSeparator != -1) {
208
-      separator.push(doc.posFromIndex(indexOfSeparator));
209
-      indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV, indexOfSeparator+1);
210
-    }
211
-    separator.unshift(Pos(0, 0));
212
-    separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length));
213
-
214
-    //find valid range
215
-    var prevItem = null;
216
-    var current = editor.getCursor()
217
-    for (var i = 0; i < separator.length; i++) {
218
-      if ((prevItem == null || cmpPos(current, prevItem) > 0) && cmpPos(current, separator[i]) <= 0) {
219
-        validRange = {start: prevItem, end: separator[i]};
220
-        break;
221
-      }
222
-      prevItem = separator[i];
223
-    }
224
-
225
-    if (validRange.start) {
226
-      var query = doc.getRange(validRange.start, validRange.end, false);
227
-
228
-      for (var i = 0; i < query.length; i++) {
229
-        var lineText = query[i];
230
-        eachWord(lineText, function(word) {
231
-          var wordUpperCase = word.toUpperCase();
232
-          if (wordUpperCase === aliasUpperCase && getTable(previousWord))
233
-            table = previousWord;
234
-          if (wordUpperCase !== CONS.ALIAS_KEYWORD)
235
-            previousWord = word;
236
-        });
237
-        if (table) break;
238
-      }
239
-    }
240
-    return table;
241
-  }
242
-
243
-  CodeMirror.registerHelper("hint", "sql", function(editor, options) {
244
-    tables = parseTables(options && options.tables)
245
-    var defaultTableName = options && options.defaultTable;
246
-    var disableKeywords = options && options.disableKeywords;
247
-    defaultTable = defaultTableName && getTable(defaultTableName);
248
-    keywords = getKeywords(editor);
249
-    identifierQuote = getIdentifierQuote(editor);
250
-
251
-    if (defaultTableName && !defaultTable)
252
-      defaultTable = findTableByAlias(defaultTableName, editor);
253
-
254
-    defaultTable = defaultTable || [];
255
-
256
-    if (defaultTable.columns)
257
-      defaultTable = defaultTable.columns;
258
-
259
-    var cur = editor.getCursor();
260
-    var result = [];
261
-    var token = editor.getTokenAt(cur), start, end, search;
262
-    if (token.end > cur.ch) {
263
-      token.end = cur.ch;
264
-      token.string = token.string.slice(0, cur.ch - token.start);
265
-    }
266
-
267
-    if (token.string.match(/^[.`"\w@]\w*$/)) {
268
-      search = token.string;
269
-      start = token.start;
270
-      end = token.end;
271
-    } else {
272
-      start = end = cur.ch;
273
-      search = "";
274
-    }
275
-    if (search.charAt(0) == "." || search.charAt(0) == identifierQuote) {
276
-      start = nameCompletion(cur, token, result, editor);
277
-    } else {
278
-      var objectOrClass = function(w, className) {
279
-        if (typeof w === "object") {
280
-          w.className = className;
281
-        } else {
282
-          w = { text: w, className: className };
283
-        }
284
-        return w;
285
-      };
286
-    addMatches(result, search, defaultTable, function(w) {
287
-        return objectOrClass(w, "CodeMirror-hint-table CodeMirror-hint-default-table");
288
-    });
289
-    addMatches(
290
-        result,
291
-        search,
292
-        tables, function(w) {
293
-          return objectOrClass(w, "CodeMirror-hint-table");
294
-        }
295
-    );
296
-    if (!disableKeywords)
297
-      addMatches(result, search, keywords, function(w) {
298
-          return objectOrClass(w.toUpperCase(), "CodeMirror-hint-keyword");
299
-      });
300
-  }
301
-
302
-    return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)};
303
-  });
304
-});

+ 0
- 38
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sql-lint.js View File

1
-CodeMirror.sqlLint = function (text, updateLinting, options, cm) {
2
-    // Skipping check if text box is empty.
3
-    if (text.trim() === '') {
4
-        updateLinting(cm, []);
5
-        return;
6
-    }
7
-
8
-    function handleResponse (response) {
9
-        var found = [];
10
-        for (var idx in response) {
11
-            found.push({
12
-                from: CodeMirror.Pos(
13
-                    response[idx].fromLine, response[idx].fromColumn
14
-                ),
15
-                to: CodeMirror.Pos(
16
-                    response[idx].toLine, response[idx].toColumn
17
-                ),
18
-                messageHTML: response[idx].message,
19
-                severity : response[idx].severity
20
-            });
21
-        }
22
-
23
-        updateLinting(cm, found);
24
-    }
25
-
26
-    $.ajax({
27
-        method: 'POST',
28
-        url: 'lint.php',
29
-        dataType: 'json',
30
-        data: {
31
-            sql_query: text,
32
-            server: PMA_commonParams.get('server'),
33
-            options: options.lintOptions,
34
-            no_history: true,
35
-        },
36
-        success: handleResponse
37
-    });
38
-};

+ 0
- 494
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/sql.js
File diff suppressed because it is too large
View File


+ 0
- 500
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/tbl_structure.js View File

1
-/* vim: set expandtab sw=4 ts=4 sts=4: */
2
-/**
3
- * @fileoverview    functions used on the table structure page
4
- * @name            Table Structure
5
- *
6
- * @requires    jQuery
7
- * @requires    jQueryUI
8
- * @required    js/functions.js
9
- */
10
-
11
-/**
12
- * AJAX scripts for tbl_structure.php
13
- *
14
- * Actions ajaxified here:
15
- * Drop Column
16
- * Add Primary Key
17
- * Drop Primary Key/Index
18
- *
19
- */
20
-
21
-/**
22
- * Reload fields table
23
- */
24
-function reloadFieldForm () {
25
-    $.post($('#fieldsForm').attr('action'), $('#fieldsForm').serialize() + PMA_commonParams.get('arg_separator') + 'ajax_request=true', function (form_data) {
26
-        var $temp_div = $('<div id=\'temp_div\'><div>').append(form_data.message);
27
-        $('#fieldsForm').replaceWith($temp_div.find('#fieldsForm'));
28
-        $('#addColumns').replaceWith($temp_div.find('#addColumns'));
29
-        $('#move_columns_dialog').find('ul').replaceWith($temp_div.find('#move_columns_dialog ul'));
30
-        $('#moveColumns').removeClass('move-active');
31
-    });
32
-    $('#page_content').show();
33
-}
34
-
35
-function checkFirst () {
36
-    if ($('select[name=after_field] option:selected').data('pos') === 'first') {
37
-        $('input[name=field_where]').val('first');
38
-    } else {
39
-        $('input[name=field_where]').val('after');
40
-    }
41
-}
42
-/**
43
- * Unbind all event handlers before tearing down a page
44
- */
45
-AJAX.registerTeardown('tbl_structure.js', function () {
46
-    $(document).off('click', 'a.drop_column_anchor.ajax');
47
-    $(document).off('click', 'a.add_key.ajax');
48
-    $(document).off('click', '#move_columns_anchor');
49
-    $(document).off('click', '#printView');
50
-    $(document).off('submit', '.append_fields_form.ajax');
51
-    $('body').off('click', '#fieldsForm.ajax button[name="submit_mult"], #fieldsForm.ajax input[name="submit_mult"]');
52
-    $(document).off('click', 'a[name^=partition_action].ajax');
53
-    $(document).off('click', '#remove_partitioning.ajax');
54
-});
55
-
56
-AJAX.registerOnload('tbl_structure.js', function () {
57
-    // Re-initialize variables.
58
-    primary_indexes = [];
59
-    indexes = [];
60
-    fulltext_indexes = [];
61
-    spatial_indexes = [];
62
-
63
-    /**
64
-     *Ajax action for submitting the "Column Change" and "Add Column" form
65
-     */
66
-    $('.append_fields_form.ajax').off();
67
-    $(document).on('submit', '.append_fields_form.ajax', function (event) {
68
-        event.preventDefault();
69
-        /**
70
-         * @var    the_form    object referring to the export form
71
-         */
72
-        var $form = $(this);
73
-        var field_cnt = $form.find('input[name=orig_num_fields]').val();
74
-
75
-
76
-        function submitForm () {
77
-            $msg = PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
78
-            $.post($form.attr('action'), $form.serialize() + PMA_commonParams.get('arg_separator') + 'do_save_data=1', function (data) {
79
-                if ($('.sqlqueryresults').length !== 0) {
80
-                    $('.sqlqueryresults').remove();
81
-                } else if ($('.error:not(.tab)').length !== 0) {
82
-                    $('.error:not(.tab)').remove();
83
-                }
84
-                if (typeof data.success !== 'undefined' && data.success === true) {
85
-                    $('#page_content')
86
-                        .empty()
87
-                        .append(data.message)
88
-                        .show();
89
-                    PMA_highlightSQL($('#page_content'));
90
-                    $('.result_query .notice').remove();
91
-                    reloadFieldForm();
92
-                    $form.remove();
93
-                    PMA_ajaxRemoveMessage($msg);
94
-                    PMA_init_slider();
95
-                    PMA_reloadNavigation();
96
-                } else {
97
-                    PMA_ajaxShowMessage(data.error, false);
98
-                }
99
-            }); // end $.post()
100
-        }
101
-
102
-        function checkIfConfirmRequired ($form, $field_cnt) {
103
-            var i = 0;
104
-            var id;
105
-            var elm;
106
-            var val;
107
-            var name_orig;
108
-            var elm_orig;
109
-            var val_orig;
110
-            var checkRequired = false;
111
-            for (i = 0; i < field_cnt; i++) {
112
-                id = '#field_' + i + '_5';
113
-                elm = $(id);
114
-                val = elm.val();
115
-
116
-                name_orig = 'input[name=field_collation_orig\\[' + i + '\\]]';
117
-                elm_orig = $form.find(name_orig);
118
-                val_orig = elm_orig.val();
119
-
120
-                if (val && val_orig && val !== val_orig) {
121
-                    checkRequired = true;
122
-                    break;
123
-                }
124
-            }
125
-            return checkRequired;
126
-        }
127
-
128
-        /*
129
-         * First validate the form; if there is a problem, avoid submitting it
130
-         *
131
-         * checkTableEditForm() needs a pure element and not a jQuery object,
132
-         * this is why we pass $form[0] as a parameter (the jQuery object
133
-         * is actually an array of DOM elements)
134
-         */
135
-        if (checkTableEditForm($form[0], field_cnt)) {
136
-            // OK, form passed validation step
137
-
138
-            PMA_prepareForAjaxRequest($form);
139
-            if (PMA_checkReservedWordColumns($form)) {
140
-                // User wants to submit the form
141
-
142
-                // If Collation is changed, Warn and Confirm
143
-                if (checkIfConfirmRequired($form, field_cnt)) {
144
-                    var question = sprintf(
145
-                        PMA_messages.strChangeColumnCollation, 'https://wiki.phpmyadmin.net/pma/Garbled_data'
146
-                    );
147
-                    $form.PMA_confirm(question, $form.attr('action'), function (url) {
148
-                        submitForm();
149
-                    });
150
-                } else {
151
-                    submitForm();
152
-                }
153
-            }
154
-        }
155
-    }); // end change table button "do_save_data"
156
-
157
-    /**
158
-     * Attach Event Handler for 'Drop Column'
159
-     */
160
-    $(document).on('click', 'a.drop_column_anchor.ajax', function (event) {
161
-        event.preventDefault();
162
-        /**
163
-         * @var curr_table_name String containing the name of the current table
164
-         */
165
-        var curr_table_name = $(this).closest('form').find('input[name=table]').val();
166
-        /**
167
-         * @var curr_row    Object reference to the currently selected row (i.e. field in the table)
168
-         */
169
-        var $curr_row = $(this).parents('tr');
170
-        /**
171
-         * @var curr_column_name    String containing name of the field referred to by {@link curr_row}
172
-         */
173
-        var curr_column_name = $curr_row.children('th').children('label').text().trim();
174
-        curr_column_name = escapeHtml(curr_column_name);
175
-        /**
176
-         * @var $after_field_item    Corresponding entry in the 'After' field.
177
-         */
178
-        var $after_field_item = $('select[name=\'after_field\'] option[value=\'' + curr_column_name + '\']');
179
-        /**
180
-         * @var question    String containing the question to be asked for confirmation
181
-         */
182
-        var question = PMA_sprintf(PMA_messages.strDoYouReally, 'ALTER TABLE `' + escapeHtml(curr_table_name) + '` DROP `' + escapeHtml(curr_column_name) + '`;');
183
-        var $this_anchor = $(this);
184
-        $this_anchor.PMA_confirm(question, $this_anchor.attr('href'), function (url) {
185
-            var $msg = PMA_ajaxShowMessage(PMA_messages.strDroppingColumn, false);
186
-            var params = getJSConfirmCommonParam(this, $this_anchor.getPostData());
187
-            params += PMA_commonParams.get('arg_separator') + 'ajax_page_request=1';
188
-            $.post(url, params, function (data) {
189
-                if (typeof data !== 'undefined' && data.success === true) {
190
-                    PMA_ajaxRemoveMessage($msg);
191
-                    if ($('.result_query').length) {
192
-                        $('.result_query').remove();
193
-                    }
194
-                    if (data.sql_query) {
195
-                        $('<div class="result_query"></div>')
196
-                            .html(data.sql_query)
197
-                            .prependTo('#structure_content');
198
-                        PMA_highlightSQL($('#page_content'));
199
-                    }
200
-                    // Adjust the row numbers
201
-                    for (var $row = $curr_row.next(); $row.length > 0; $row = $row.next()) {
202
-                        var new_val = parseInt($row.find('td:nth-child(2)').text(), 10) - 1;
203
-                        $row.find('td:nth-child(2)').text(new_val);
204
-                    }
205
-                    $after_field_item.remove();
206
-                    $curr_row.hide('medium').remove();
207
-
208
-                    // Remove the dropped column from select menu for 'after field'
209
-                    $('select[name=after_field]').find(
210
-                        '[value="' + curr_column_name + '"]'
211
-                    ).remove();
212
-
213
-                    // by default select the (new) last option to add new column
214
-                    // (in case last column is dropped)
215
-                    $('select[name=after_field] option:last').attr('selected','selected');
216
-
217
-                    // refresh table stats
218
-                    if (data.tableStat) {
219
-                        $('#tablestatistics').html(data.tableStat);
220
-                    }
221
-                    // refresh the list of indexes (comes from sql.php)
222
-                    $('.index_info').replaceWith(data.indexes_list);
223
-                    PMA_reloadNavigation();
224
-                } else {
225
-                    PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + ' : ' + data.error, false);
226
-                }
227
-            }); // end $.post()
228
-        }); // end $.PMA_confirm()
229
-    }); // end of Drop Column Anchor action
230
-
231
-    /**
232
-     * Attach Event Handler for 'Print' link
233
-     */
234
-    $(document).on('click', '#printView', function (event) {
235
-        event.preventDefault();
236
-
237
-        // Take to preview mode
238
-        printPreview();
239
-    }); // end of Print View action
240
-
241
-    /**
242
-     * Ajax Event handler for adding keys
243
-     */
244
-    $(document).on('click', 'a.add_key.ajax', function (event) {
245
-        event.preventDefault();
246
-
247
-        var $this = $(this);
248
-        var curr_table_name = $this.closest('form').find('input[name=table]').val();
249
-        var curr_column_name = $this.parents('tr').children('th').children('label').text().trim();
250
-
251
-        var add_clause = '';
252
-        if ($this.is('.add_primary_key_anchor')) {
253
-            add_clause = 'ADD PRIMARY KEY';
254
-        } else if ($this.is('.add_index_anchor')) {
255
-            add_clause = 'ADD INDEX';
256
-        } else if ($this.is('.add_unique_anchor')) {
257
-            add_clause = 'ADD UNIQUE';
258
-        } else if ($this.is('.add_spatial_anchor')) {
259
-            add_clause = 'ADD SPATIAL';
260
-        } else if ($this.is('.add_fulltext_anchor')) {
261
-            add_clause = 'ADD FULLTEXT';
262
-        }
263
-        var question = PMA_sprintf(PMA_messages.strDoYouReally, 'ALTER TABLE `' +
264
-                escapeHtml(curr_table_name) + '` ' + add_clause + '(`' + escapeHtml(curr_column_name) + '`);');
265
-
266
-        var $this_anchor = $(this);
267
-
268
-        $this_anchor.PMA_confirm(question, $this_anchor.attr('href'), function (url) {
269
-            PMA_ajaxShowMessage();
270
-            AJAX.source = $this;
271
-
272
-            var params = getJSConfirmCommonParam(this, $this_anchor.getPostData());
273
-            params += PMA_commonParams.get('arg_separator') + 'ajax_page_request=1';
274
-            $.post(url, params, AJAX.responseHandler);
275
-        }); // end $.PMA_confirm()
276
-    }); // end Add key
277
-
278
-    /**
279
-     * Inline move columns
280
-    **/
281
-    $(document).on('click', '#move_columns_anchor', function (e) {
282
-        e.preventDefault();
283
-
284
-        if ($(this).hasClass('move-active')) {
285
-            return;
286
-        }
287
-
288
-        /**
289
-         * @var    button_options  Object that stores the options passed to jQueryUI
290
-         *                          dialog
291
-         */
292
-        var button_options = {};
293
-
294
-        button_options[PMA_messages.strGo] = function (event) {
295
-            event.preventDefault();
296
-            var $msgbox = PMA_ajaxShowMessage();
297
-            var $this = $(this);
298
-            var $form = $this.find('form');
299
-            var serialized = $form.serialize();
300
-
301
-            // check if any columns were moved at all
302
-            if (serialized === $form.data('serialized-unmoved')) {
303
-                PMA_ajaxRemoveMessage($msgbox);
304
-                $this.dialog('close');
305
-                return;
306
-            }
307
-
308
-            $.post($form.prop('action'), serialized + PMA_commonParams.get('arg_separator') + 'ajax_request=true', function (data) {
309
-                if (data.success === false) {
310
-                    PMA_ajaxRemoveMessage($msgbox);
311
-                    $this
312
-                        .clone()
313
-                        .html(data.error)
314
-                        .dialog({
315
-                            title: $(this).prop('title'),
316
-                            height: 230,
317
-                            width: 900,
318
-                            modal: true,
319
-                            buttons: button_options_error
320
-                        }); // end dialog options
321
-                } else {
322
-                    // sort the fields table
323
-                    var $fields_table = $('table#tablestructure tbody');
324
-                    // remove all existing rows and remember them
325
-                    var $rows = $fields_table.find('tr').remove();
326
-                    // loop through the correct order
327
-                    for (var i in data.columns) {
328
-                        var the_column = data.columns[i];
329
-                        var $the_row = $rows
330
-                            .find('input:checkbox[value=\'' + the_column + '\']')
331
-                            .closest('tr');
332
-                        // append the row for this column to the table
333
-                        $fields_table.append($the_row);
334
-                    }
335
-                    var $firstrow = $fields_table.find('tr').eq(0);
336
-                    // Adjust the row numbers and colors
337
-                    for (var $row = $firstrow; $row.length > 0; $row = $row.next()) {
338
-                        $row
339
-                            .find('td:nth-child(2)')
340
-                            .text($row.index() + 1)
341
-                            .end()
342
-                            .removeClass('odd even')
343
-                            .addClass($row.index() % 2 === 0 ? 'odd' : 'even');
344
-                    }
345
-                    PMA_ajaxShowMessage(data.message);
346
-                    $this.dialog('close');
347
-                }
348
-            });
349
-        };
350
-        button_options[PMA_messages.strCancel] = function () {
351
-            $(this).dialog('close');
352
-        };
353
-
354
-        var button_options_error = {};
355
-        button_options_error[PMA_messages.strOK] = function () {
356
-            $(this).dialog('close').remove();
357
-        };
358
-
359
-        var columns = [];
360
-
361
-        $('#tablestructure').find('tbody tr').each(function () {
362
-            var col_name = $(this).find('input:checkbox').eq(0).val();
363
-            var hidden_input = $('<input/>')
364
-                .prop({
365
-                    name: 'move_columns[]',
366
-                    type: 'hidden'
367
-                })
368
-                .val(col_name);
369
-            columns[columns.length] = $('<li/>')
370
-                .addClass('placeholderDrag')
371
-                .text(col_name)
372
-                .append(hidden_input);
373
-        });
374
-
375
-        var col_list = $('#move_columns_dialog').find('ul')
376
-            .find('li').remove().end();
377
-        for (var i in columns) {
378
-            col_list.append(columns[i]);
379
-        }
380
-        col_list.sortable({
381
-            axis: 'y',
382
-            containment: $('#move_columns_dialog').find('div'),
383
-            tolerance: 'pointer'
384
-        }).disableSelection();
385
-        var $form = $('#move_columns_dialog').find('form');
386
-        $form.data('serialized-unmoved', $form.serialize());
387
-
388
-        $('#move_columns_dialog').dialog({
389
-            modal: true,
390
-            buttons: button_options,
391
-            open: function () {
392
-                if ($('#move_columns_dialog').parents('.ui-dialog').height() > $(window).height()) {
393
-                    $('#move_columns_dialog').dialog('option', 'height', $(window).height());
394
-                }
395
-            },
396
-            beforeClose: function () {
397
-                $('#move_columns_anchor').removeClass('move-active');
398
-            }
399
-        });
400
-    });
401
-
402
-    /**
403
-     * Handles multi submits in table structure page such as change, browse, drop, primary etc.
404
-     */
405
-    $('body').on('click', '#fieldsForm.ajax button[name="submit_mult"], #fieldsForm.ajax input[name="submit_mult"]', function (e) {
406
-        e.preventDefault();
407
-        var $button = $(this);
408
-        var $form = $button.parents('form');
409
-        var argsep = PMA_commonParams.get('arg_separator');
410
-        var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'submit_mult=' + $button.val();
411
-        PMA_ajaxShowMessage();
412
-        AJAX.source = $form;
413
-        $.post($form.attr('action'), submitData, AJAX.responseHandler);
414
-    });
415
-
416
-    /**
417
-     * Handles clicks on Action links in partition table
418
-     */
419
-    $(document).on('click', 'a[name^=partition_action].ajax', function (e) {
420
-        e.preventDefault();
421
-        var $link = $(this);
422
-
423
-        function submitPartitionAction (url) {
424
-            var params = 'ajax_request=true&ajax_page_request=true&' + $link.getPostData();
425
-            PMA_ajaxShowMessage();
426
-            AJAX.source = $link;
427
-            $.post(url, params, AJAX.responseHandler);
428
-        }
429
-
430
-        if ($link.is('#partition_action_DROP')) {
431
-            var question = PMA_messages.strDropPartitionWarning;
432
-            $link.PMA_confirm(question, $link.attr('href'), function (url) {
433
-                submitPartitionAction(url);
434
-            });
435
-        } else if ($link.is('#partition_action_TRUNCATE')) {
436
-            var question = PMA_messages.strTruncatePartitionWarning;
437
-            $link.PMA_confirm(question, $link.attr('href'), function (url) {
438
-                submitPartitionAction(url);
439
-            });
440
-        } else {
441
-            submitPartitionAction($link.attr('href'));
442
-        }
443
-    });
444
-
445
-    /**
446
-     * Handles remove partitioning
447
-     */
448
-    $(document).on('click', '#remove_partitioning.ajax', function (e) {
449
-        e.preventDefault();
450
-        var $link = $(this);
451
-        var question = PMA_messages.strRemovePartitioningWarning;
452
-        $link.PMA_confirm(question, $link.attr('href'), function (url) {
453
-            var params = getJSConfirmCommonParam({
454
-                'ajax_request' : true,
455
-                'ajax_page_request' : true
456
-            }, $link.getPostData());
457
-            PMA_ajaxShowMessage();
458
-            AJAX.source = $link;
459
-            $.post(url, params, AJAX.responseHandler);
460
-        });
461
-    });
462
-
463
-    $(document).on('change', 'select[name=after_field]', function () {
464
-        checkFirst();
465
-    });
466
-});
467
-
468
-/** Handler for "More" dropdown in structure table rows */
469
-AJAX.registerOnload('tbl_structure.js', function () {
470
-    var windowwidth = $(window).width();
471
-    if (windowwidth > 768) {
472
-        if (! $('#fieldsForm').hasClass('HideStructureActions')) {
473
-            $('.table-structure-actions').width(function () {
474
-                var width = 5;
475
-                $(this).find('li').each(function () {
476
-                    width += $(this).outerWidth(true);
477
-                });
478
-                return width;
479
-            });
480
-        }
481
-    }
482
-
483
-    $('.jsresponsive').css('max-width', (windowwidth - 35) + 'px');
484
-    var tableRows = $('.central_columns');
485
-    $.each(tableRows, function (index, item) {
486
-        if ($(item).hasClass('add_button')) {
487
-            $(item).click(function () {
488
-                $('input:checkbox').prop('checked', false);
489
-                $('#checkbox_row_' + (index + 1)).prop('checked', true);
490
-                $('button[value=add_to_central_columns]').click();
491
-            });
492
-        } else {
493
-            $(item).click(function () {
494
-                $('input:checkbox').prop('checked', false);
495
-                $('#checkbox_row_' + (index + 1)).prop('checked', true);
496
-                $('button[value=remove_from_central_columns]').click();
497
-            });
498
-        }
499
-    });
500
-});

+ 0
- 1277
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/tracekit.js
File diff suppressed because it is too large
View File


+ 0
- 50
src/main/resources/logos/localhost _ localhost _ testDBChat _ Chat1_2 | phpMyAdmin 4.9.5deb2_fichiers/whitelist.php View File

1
-var PMA_gotoWhitelist = new Array();
2
-PMA_gotoWhitelist[0]="db_datadict.php";
3
-PMA_gotoWhitelist[1]="db_sql.php";
4
-PMA_gotoWhitelist[2]="db_events.php";
5
-PMA_gotoWhitelist[3]="db_export.php";
6
-PMA_gotoWhitelist[4]="db_importdocsql.php";
7
-PMA_gotoWhitelist[5]="db_multi_table_query.php";
8
-PMA_gotoWhitelist[6]="db_qbe.php";
9
-PMA_gotoWhitelist[7]="db_structure.php";
10
-PMA_gotoWhitelist[8]="db_import.php";
11
-PMA_gotoWhitelist[9]="db_operations.php";
12
-PMA_gotoWhitelist[10]="db_search.php";
13
-PMA_gotoWhitelist[11]="db_routines.php";
14
-PMA_gotoWhitelist[12]="export.php";
15
-PMA_gotoWhitelist[13]="import.php";
16
-PMA_gotoWhitelist[14]="index.php";
17
-PMA_gotoWhitelist[15]="pdf_pages.php";
18
-PMA_gotoWhitelist[16]="pdf_schema.php";
19
-PMA_gotoWhitelist[17]="server_binlog.php";
20
-PMA_gotoWhitelist[18]="server_collations.php";
21
-PMA_gotoWhitelist[19]="server_databases.php";
22
-PMA_gotoWhitelist[20]="server_engines.php";
23
-PMA_gotoWhitelist[21]="server_export.php";
24
-PMA_gotoWhitelist[22]="server_import.php";
25
-PMA_gotoWhitelist[23]="server_privileges.php";
26
-PMA_gotoWhitelist[24]="server_sql.php";
27
-PMA_gotoWhitelist[25]="server_status.php";
28
-PMA_gotoWhitelist[26]="server_status_advisor.php";
29
-PMA_gotoWhitelist[27]="server_status_monitor.php";
30
-PMA_gotoWhitelist[28]="server_status_queries.php";
31
-PMA_gotoWhitelist[29]="server_status_variables.php";
32
-PMA_gotoWhitelist[30]="server_variables.php";
33
-PMA_gotoWhitelist[31]="sql.php";
34
-PMA_gotoWhitelist[32]="tbl_addfield.php";
35
-PMA_gotoWhitelist[33]="tbl_change.php";
36
-PMA_gotoWhitelist[34]="tbl_create.php";
37
-PMA_gotoWhitelist[35]="tbl_import.php";
38
-PMA_gotoWhitelist[36]="tbl_indexes.php";
39
-PMA_gotoWhitelist[37]="tbl_sql.php";
40
-PMA_gotoWhitelist[38]="tbl_export.php";
41
-PMA_gotoWhitelist[39]="tbl_operations.php";
42
-PMA_gotoWhitelist[40]="tbl_structure.php";
43
-PMA_gotoWhitelist[41]="tbl_relation.php";
44
-PMA_gotoWhitelist[42]="tbl_replace.php";
45
-PMA_gotoWhitelist[43]="tbl_row_action.php";
46
-PMA_gotoWhitelist[44]="tbl_select.php";
47
-PMA_gotoWhitelist[45]="tbl_zoom_select.php";
48
-PMA_gotoWhitelist[46]="transformation_overview.php";
49
-PMA_gotoWhitelist[47]="transformation_wrapper.php";
50
-PMA_gotoWhitelist[48]="user_password.php";

Loading…
Cancel
Save