1CKEDITOR.dialog.add( 'wrapDialolg', function( editor ) { 2 var wr_lang = editor.config.wrap_lang; 3 var installed_lang =editor.lang.wrap; 4 var icon_path = DOKU_BASE + 'lib/plugins/wrap/images/'; 5 var toolbar_path = icon_path + 'toolbar/'; 6 var icons16_path = icon_path + 'note/16/'; 7 8 var cols = installed_lang['column'] || wr_lang['column'] || 'columns'; 9 var box = installed_lang['box'] || wr_lang['box'] || 'simple centered box'; 10 var info_box = installed_lang['info'] || wr_lang['info'] || 'info box'; 11 var tip_box = installed_lang['tip'] || wr_lang['tip'] || 'tip box'; 12 var important_box = installed_lang['important'] || wr_lang['important'] || 'important box'; 13 var alert_box = installed_lang['alert'] || wr_lang['alert'] || 'alert box'; 14 var help_box = installed_lang['help'] || wr_lang['help'] || 'help box'; 15 var download_box = installed_lang['download'] || wr_lang['download'] || 'download box'; 16 var todo_box = installed_lang['todo'] || wr_lang['todo'] || 'todo box'; 17 var clear_floats = installed_lang['clear'] || wr_lang['clear'] || 'clear floats'; 18 var emphasized = installed_lang['em'] || wr_lang['em'] || 'especially emphasised'; 19 var highlighted = installed_lang['hi'] || wr_lang['hi'] || 'highlighted'; 20 var less_significant = installed_lang['lo'] || wr_lang['lo'] || 'less significant'; 21 var reset = installed_lang['reset'] || wr_lang['reset'] || 'Reset'; 22 var Columns = '<img src= "' + toolbar_path + 'column.png" title="' +cols+'">'; 23 var Box = '<img src= "' + toolbar_path + 'box.png" title="' +box + '">'; 24 var InfoBox = '<img src= "' + icons16_path + 'info.png" title="'+info_box+'">'; 25 var TipBox = '<img src= "' + icons16_path + 'tip.png" title="'+tip_box+'">'; 26 var ImportantBox = '<img src= "' + icons16_path + 'important.png" title="'+important_box+'">'; 27 var AlertBox='<img src= "' + icons16_path + 'alert.png" title="'+alert_box+'">'; 28 var HelpBox='<img src= "' + icons16_path + 'help.png" title="'+help_box+'">'; 29 var DownloadBox='<img src= "' + icons16_path + 'download.png" title="'+download_box+'">'; 30 var ToDoBox='<img src= "' + icons16_path + 'todo.png" title="'+todo_box+'">'; 31 var Clear ='<img src= "' + toolbar_path + 'clear.png" title="'+clear_floats+'">'; 32 var Emphasis ='<img src= "' + toolbar_path + 'em.png" title="'+emphasized+'">'; 33 var Hi ='<img src= "' + toolbar_path + 'hi.png" title="'+highlighted+'">'; 34 var Lo ='<img src= "' + toolbar_path + 'lo.png" title="'+less_significant+'">'; 35 36 return { 37 title: 'wrap Properties', 38 minWidth: 460, 39 minHeight: 200, 40 contents: [ 41 { 42 id: 'tab-basic', 43 label: 'Basic wrap', 44 elements: [ 45 { 46 type: 'radio', 47 id: 'div_types', 48 label: editor.lang.wrap.boxes_title||'Box types:', 49 //label: editor.lang.wrap.selectOption, 50 items: [ [Box, 'box' ] , [ InfoBox, 'info' ] ,[TipBox,'tip'],[ImportantBox,'important'],[AlertBox,'alert'], 51 [HelpBox ,'help box'],[DownloadBox,'download'],[ ToDoBox,'todo']], 52 style: 'color: black', 53 'default': '', 54 }, 55 { 56 type: 'radio', 57 id: 'specials', 58 label: editor.lang.wrap.specials_title || 'Special types and Styles', 59 items: [[ Columns, 'column' ], [Clear,'clear floats'],[Emphasis,'em'],[Hi,'hi'],[Lo,'lo']], 60 style: 'color: black', 61 'default': '', 62 }, 63 { 64 type: 'checkbox', 65 id: 'reset', 66 label: reset, 67 'default': false, 68 onClick: function() { 69 var nodes = jQuery(":radio" ) 70 for(var i = 0; i<nodes.length; i++) { 71 if(nodes[i].checked) 72 nodes[i].checked = false; 73 } 74 this.setValue(false); 75 76 } 77 }, 78 { 79 type: 'text', 80 id: 'wrap', 81 label: editor.lang.wrap.content || 'Content (optional):', 82 'default': '' 83 } 84 ] 85 } 86 ], 87 // Invoked when the dialog is loaded. 88 onShow: function() { 89 // Get the selection from the editor. 90 var text = editor.getSelection().getSelectedText(); 91 if(text) { 92 this.getContentElement( 'tab-basic', 'wrap').disable(); 93 this.setValueOf( 'tab-basic', 'wrap',text); 94 } 95 else this.text = false; 96 }, 97 98 onOk: function() { 99 var dialog = this; 100 101 var syntaxDiv = editor.config.wrapSyntaxDiv ? editor.config.wrapSyntaxDiv : 'WRAP'; 102 var syntaxSpan = editor.config.wrapSyntaxSpan ? editor.config.wrapSyntaxSpan : 'wrap'; 103 var syntaxDiv = syntaxDiv; 104 var syntaxSpan = syntaxSpan; 105 var open = ""; 106 var close = ""; 107 108 var TypeValue = dialog.getValueOf( 'tab-basic', 'div_types' ); 109 if(!TypeValue) TypeValue = dialog.getValueOf( 'tab-basic', 'specials' ); 110 if(TypeValue == 0) return; 111 switch (TypeValue) { 112 case 'column': 113 open = '<'+syntaxDiv+' group>\n<'+syntaxDiv+' half column>\n'; 114 close = '\n</'+syntaxDiv+'>\n\n<'+syntaxDiv+' half column>\n\n</'+syntaxDiv+'>\n</'+syntaxDiv+'>\n'; 115 break; 116 case 'box': 117 open = '<'+syntaxDiv+' center round box 60%>\n'; 118 close = '\n</'+syntaxDiv+'>\n'; 119 break; 120 case 'info': 121 open = '<'+syntaxDiv+' center round info 60%>\n'; 122 close = '\n</'+syntaxDiv+'>\n'; 123 break; 124 case 'tip': 125 open = '<'+syntaxDiv+' center round tip 60%>\n'; 126 close = '\n</'+syntaxDiv+'>\n'; 127 break; 128 case 'important': 129 open = '<'+syntaxDiv+' center round important 60%>\n'; 130 close = '\n</'+syntaxDiv+'>\n'; 131 break; 132 case 'alert': 133 open = '<'+syntaxDiv+' center round alert 60%>\n'; 134 close = '\n</'+syntaxDiv+'>\n'; 135 break; 136 case 'help': 137 open = '<'+syntaxDiv+' center round help 60%>\n'; 138 close = '\n</'+syntaxDiv+'>\n'; 139 break; 140 case 'download' : 141 open = '<'+syntaxDiv+' center round download 60%>\n'; 142 close = '\n</'+syntaxDiv+'>\n'; 143 break; 144 case 'todo': 145 open = '<'+syntaxDiv+' center round todo 60%>\n'; 146 close = '\n</'+syntaxDiv+'>\n'; 147 break; 148 case 'clear': 149 open = '<'+syntaxDiv+' clear/>\n'; 150 close = ""; 151 break; 152 case 'em': 153 open = '<'+syntaxSpan+' em>'; 154 close = '</'+syntaxSpan+'>'; 155 break; 156 case 'hi': 157 open = '<'+syntaxSpan+' hi>'; 158 close = '</'+syntaxSpan+'>'; 159 break; 160 case 'lo': 161 open = '<'+syntaxSpan+' lo>'; 162 close = '</'+syntaxSpan+'>'; 163 break; 164 } 165 166 var wrapText = this.text ? this.text: dialog.getValueOf( 'tab-basic', 'wrap' ); 167 editor.insertText ( open + wrapText + close); 168 169 } 170 }; 171});