]> git.immae.eu Git - perso/Immae/Projets/packagist/ludivine-ckeditor-component.git/blame - sources/plugins/widget/dev/console.js
Validation initiale
[perso/Immae/Projets/packagist/ludivine-ckeditor-component.git] / sources / plugins / widget / dev / console.js
CommitLineData
c63493c8
IB
1/**\r
2 * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.\r
3 * For licensing, see LICENSE.md or http://ckeditor.com/license\r
4 */\r
5\r
6/* global CKCONSOLE */\r
7\r
8'use strict';\r
9\r
10( function() {\r
11\r
12 CKCONSOLE.add( 'widget', {\r
13 panels: [\r
14 {\r
15 type: 'box',\r
16 content: '<ul class="ckconsole_list ckconsole_value" data-value="instances"></ul>',\r
17\r
18 refresh: function( editor ) {\r
19 var instances = obj2Array( editor.widgets.instances );\r
20\r
21 return {\r
22 header: 'Instances (' + instances.length + ')',\r
23 instances: generateInstancesList( instances )\r
24 };\r
25 },\r
26\r
27 refreshOn: function( editor, refresh ) {\r
28 editor.widgets.on( 'instanceCreated', function( evt ) {\r
29 refresh();\r
30\r
31 evt.data.on( 'data', refresh );\r
32 } );\r
33\r
34 editor.widgets.on( 'instanceDestroyed', refresh );\r
35 }\r
36 },\r
37\r
38 {\r
39 type: 'box',\r
40 content:\r
41 '<ul class="ckconsole_list">' +\r
42 '<li>focused: <span class="ckconsole_value" data-value="focused"></span></li>' +\r
43 '<li>selected: <span class="ckconsole_value" data-value="selected"></span></li>' +\r
44 '</ul>',\r
45\r
46 refresh: function( editor ) {\r
47 var focused = editor.widgets.focused,\r
48 selected = editor.widgets.selected,\r
49 selectedIds = [];\r
50\r
51 for ( var i = 0; i < selected.length; ++i )\r
52 selectedIds.push( selected[ i ].id );\r
53\r
54 return {\r
55 header: 'Focus &amp; selection',\r
56 focused: focused ? 'id: ' + focused.id : '-',\r
57 selected: selectedIds.length ? 'id: ' + selectedIds.join( ', id: ' ) : '-'\r
58 };\r
59 },\r
60\r
61 refreshOn: function( editor, refresh ) {\r
62 editor.on( 'selectionCheck', refresh, null, null, 999 );\r
63 }\r
64 },\r
65\r
66 {\r
67 type: 'log',\r
68\r
69 on: function( editor, log, logFn ) {\r
70 // Add all listeners with high priorities to log\r
71 // messages in the correct order when one event depends on another.\r
72 // E.g. selectionChange triggers widget selection - if this listener\r
73 // for selectionChange will be executed later than that one, then order\r
74 // will be incorrect.\r
75\r
76 editor.on( 'selectionChange', function( evt ) {\r
77 var msg = 'selection change',\r
78 sel = evt.data.selection,\r
79 el = sel.getSelectedElement(),\r
80 widget;\r
81\r
82 if ( el && ( widget = editor.widgets.getByElement( el, true ) ) )\r
83 msg += ' (id: ' + widget.id + ')';\r
84\r
85 log( msg );\r
86 }, null, null, 1 );\r
87\r
88 editor.widgets.on( 'instanceDestroyed', function( evt ) {\r
89 log( 'instance destroyed (id: ' + evt.data.id + ')' );\r
90 }, null, null, 1 );\r
91\r
92 editor.widgets.on( 'instanceCreated', function( evt ) {\r
93 log( 'instance created (id: ' + evt.data.id + ')' );\r
94 }, null, null, 1 );\r
95\r
96 editor.widgets.on( 'widgetFocused', function( evt ) {\r
97 log( 'widget focused (id: ' + evt.data.widget.id + ')' );\r
98 }, null, null, 1 );\r
99\r
100 editor.widgets.on( 'widgetBlurred', function( evt ) {\r
101 log( 'widget blurred (id: ' + evt.data.widget.id + ')' );\r
102 }, null, null, 1 );\r
103\r
104 editor.widgets.on( 'checkWidgets', logFn( 'checking widgets' ), null, null, 1 );\r
105 editor.widgets.on( 'checkSelection', logFn( 'checking selection' ), null, null, 1 );\r
106 }\r
107 }\r
108 ]\r
109 } );\r
110\r
111 function generateInstancesList( instances ) {\r
112 var html = '',\r
113 instance;\r
114\r
115 for ( var i = 0; i < instances.length; ++i ) {\r
116 instance = instances[ i ];\r
117 html += itemTpl.output( { id: instance.id, name: instance.name, data: JSON.stringify( instance.data ) } );\r
118 }\r
119 return html;\r
120 }\r
121\r
122 function obj2Array( obj ) {\r
123 var arr = [];\r
124 for ( var id in obj )\r
125 arr.push( obj[ id ] );\r
126\r
127 return arr;\r
128 }\r
129\r
130 var itemTpl = new CKEDITOR.template( '<li>id: <code>{id}</code>, name: <code>{name}</code>, data: <code>{data}</code></li>' );\r
131} )();\r