Importation du code de ckeditor 4.3.4 en conservant les développements Plinn et en...
[ckeditor.git] / skins / ckeditor / _source / plugins / forms / dialogs / select.js
diff --git a/skins/ckeditor/_source/plugins/forms/dialogs/select.js b/skins/ckeditor/_source/plugins/forms/dialogs/select.js
deleted file mode 100644 (file)
index aee101b..0000000
+++ /dev/null
@@ -1,558 +0,0 @@
-/*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.html or http://ckeditor.com/license\r
-*/\r
-CKEDITOR.dialog.add( 'select', function( editor )\r
-{\r
-       // Add a new option to a SELECT object (combo or list).\r
-       function addOption( combo, optionText, optionValue, documentObject, index )\r
-       {\r
-               combo = getSelect( combo );\r
-               var oOption;\r
-               if ( documentObject )\r
-                       oOption = documentObject.createElement( "OPTION" );\r
-               else\r
-                       oOption = document.createElement( "OPTION" );\r
-\r
-               if ( combo && oOption && oOption.getName() == 'option' )\r
-               {\r
-                       if ( CKEDITOR.env.ie ) {\r
-                               if ( !isNaN( parseInt( index, 10) ) )\r
-                                       combo.$.options.add( oOption.$, index );\r
-                               else\r
-                                       combo.$.options.add( oOption.$ );\r
-\r
-                               oOption.$.innerHTML = optionText.length > 0 ? optionText : '';\r
-                               oOption.$.value     = optionValue;\r
-                       }\r
-                       else\r
-                       {\r
-                               if ( index !== null && index < combo.getChildCount() )\r
-                                       combo.getChild( index < 0 ? 0 : index ).insertBeforeMe( oOption );\r
-                               else\r
-                                       combo.append( oOption );\r
-\r
-                               oOption.setText( optionText.length > 0 ? optionText : '' );\r
-                               oOption.setValue( optionValue );\r
-                       }\r
-               }\r
-               else\r
-                       return false;\r
-\r
-               return oOption;\r
-       }\r
-       // Remove all selected options from a SELECT object.\r
-       function removeSelectedOptions( combo )\r
-       {\r
-               combo = getSelect( combo );\r
-\r
-               // Save the selected index\r
-               var iSelectedIndex = getSelectedIndex( combo );\r
-\r
-               // Remove all selected options.\r
-               for ( var i = combo.getChildren().count() - 1 ; i >= 0 ; i-- )\r
-               {\r
-                       if ( combo.getChild( i ).$.selected )\r
-                               combo.getChild( i ).remove();\r
-               }\r
-\r
-               // Reset the selection based on the original selected index.\r
-               setSelectedIndex( combo, iSelectedIndex );\r
-       }\r
-       //Modify option  from a SELECT object.\r
-       function modifyOption( combo, index, title, value )\r
-       {\r
-               combo = getSelect( combo );\r
-               if ( index < 0 )\r
-                       return false;\r
-               var child = combo.getChild( index );\r
-               child.setText( title );\r
-               child.setValue( value );\r
-               return child;\r
-       }\r
-       function removeAllOptions( combo )\r
-       {\r
-               combo = getSelect( combo );\r
-               while ( combo.getChild( 0 ) && combo.getChild( 0 ).remove() )\r
-               { /*jsl:pass*/ }\r
-       }\r
-       // Moves the selected option by a number of steps (also negative).\r
-       function changeOptionPosition( combo, steps, documentObject )\r
-       {\r
-               combo = getSelect( combo );\r
-               var iActualIndex = getSelectedIndex( combo );\r
-               if ( iActualIndex < 0 )\r
-                       return false;\r
-\r
-               var iFinalIndex = iActualIndex + steps;\r
-               iFinalIndex = ( iFinalIndex < 0 ) ? 0 : iFinalIndex;\r
-               iFinalIndex = ( iFinalIndex >= combo.getChildCount() ) ? combo.getChildCount() - 1 : iFinalIndex;\r
-\r
-               if ( iActualIndex == iFinalIndex )\r
-                       return false;\r
-\r
-               var oOption = combo.getChild( iActualIndex ),\r
-                       sText   = oOption.getText(),\r
-                       sValue  = oOption.getValue();\r
-\r
-               oOption.remove();\r
-\r
-               oOption = addOption( combo, sText, sValue, ( !documentObject ) ? null : documentObject, iFinalIndex );\r
-               setSelectedIndex( combo, iFinalIndex );\r
-               return oOption;\r
-       }\r
-       function getSelectedIndex( combo )\r
-       {\r
-               combo = getSelect( combo );\r
-               return combo ? combo.$.selectedIndex : -1;\r
-       }\r
-       function setSelectedIndex( combo, index )\r
-       {\r
-               combo = getSelect( combo );\r
-               if ( index < 0 )\r
-                       return null;\r
-               var count = combo.getChildren().count();\r
-               combo.$.selectedIndex = ( index >= count ) ? ( count - 1 ) : index;\r
-               return combo;\r
-       }\r
-       function getOptions( combo )\r
-       {\r
-               combo = getSelect( combo );\r
-               return combo ? combo.getChildren() : false;\r
-       }\r
-       function getSelect( obj )\r
-       {\r
-               if ( obj && obj.domId && obj.getInputElement().$ )                              // Dialog element.\r
-                       return  obj.getInputElement();\r
-               else if ( obj && obj.$ )\r
-                       return obj;\r
-               return false;\r
-       }\r
-\r
-       return {\r
-               title : editor.lang.select.title,\r
-               minWidth : CKEDITOR.env.ie ? 460 : 395,\r
-               minHeight : CKEDITOR.env.ie ? 320 : 300,\r
-               onShow : function()\r
-               {\r
-                       delete this.selectBox;\r
-                       this.setupContent( 'clear' );\r
-                       var element = this.getParentEditor().getSelection().getSelectedElement();\r
-                       if ( element && element.getName() == "select" )\r
-                       {\r
-                               this.selectBox = element;\r
-                               this.setupContent( element.getName(), element );\r
-\r
-                               // Load Options into dialog.\r
-                               var objOptions = getOptions( element );\r
-                               for ( var i = 0 ; i < objOptions.count() ; i++ )\r
-                                       this.setupContent( 'option', objOptions.getItem( i ) );\r
-                       }\r
-               },\r
-               onOk : function()\r
-               {\r
-                       var editor = this.getParentEditor(),\r
-                               element = this.selectBox,\r
-                               isInsertMode = !element;\r
-\r
-                       if ( isInsertMode )\r
-                               element = editor.document.createElement( 'select' );\r
-                       this.commitContent( element );\r
-\r
-                       if ( isInsertMode )\r
-                       {\r
-                               editor.insertElement( element );\r
-                               if ( CKEDITOR.env.ie )\r
-                               {\r
-                                       var sel = editor.getSelection(),\r
-                                               bms = sel.createBookmarks();\r
-                                       setTimeout(function()\r
-                                       {\r
-                                               sel.selectBookmarks( bms );\r
-                                       }, 0 );\r
-                               }\r
-                       }\r
-               },\r
-               contents : [\r
-                       {\r
-                               id : 'info',\r
-                               label : editor.lang.select.selectInfo,\r
-                               title : editor.lang.select.selectInfo,\r
-                               accessKey : '',\r
-                               elements : [\r
-                                       {\r
-                                               id : 'txtName',\r
-                                               type : 'text',\r
-                                               widths : [ '25%','75%' ],\r
-                                               labelLayout : 'horizontal',\r
-                                               label : editor.lang.common.name,\r
-                                               'default' : '',\r
-                                               accessKey : 'N',\r
-                                               style : 'width:350px',\r
-                                               setup : function( name, element )\r
-                                               {\r
-                                                       if ( name == 'clear' )\r
-                                                               this.setValue( this[ 'default' ] || '' );\r
-                                                       else if ( name == 'select' )\r
-                                                       {\r
-                                                               this.setValue(\r
-                                                                               element.data( 'cke-saved-name' ) ||\r
-                                                                               element.getAttribute( 'name' ) ||\r
-                                                                               '' );\r
-                                                       }\r
-                                               },\r
-                                               commit : function( element )\r
-                                               {\r
-                                                       if ( this.getValue() )\r
-                                                               element.data( 'cke-saved-name', this.getValue() );\r
-                                                       else\r
-                                                       {\r
-                                                               element.data( 'cke-saved-name', false );\r
-                                                               element.removeAttribute( 'name' );\r
-                                                       }\r
-                                               }\r
-                                       },\r
-                                       {\r
-                                               id : 'txtValue',\r
-                                               type : 'text',\r
-                                               widths : [ '25%','75%' ],\r
-                                               labelLayout : 'horizontal',\r
-                                               label : editor.lang.select.value,\r
-                                               style : 'width:350px',\r
-                                               'default' : '',\r
-                                               className : 'cke_disabled',\r
-                                               onLoad : function()\r
-                                               {\r
-                                                       this.getInputElement().setAttribute( 'readOnly', true );\r
-                                               },\r
-                                               setup : function( name, element )\r
-                                               {\r
-                                                       if ( name == 'clear' )\r
-                                                               this.setValue( '' );\r
-                                                       else if ( name == 'option' && element.getAttribute( 'selected' ) )\r
-                                                               this.setValue( element.$.value );\r
-                                               }\r
-                                       },\r
-                                       {\r
-                                               type : 'hbox',\r
-                                               widths : [ '175px', '170px' ],\r
-                                               children :\r
-                                               [\r
-                                                       {\r
-                                                               id : 'txtSize',\r
-                                                               type : 'text',\r
-                                                               labelLayout : 'horizontal',\r
-                                                               label : editor.lang.select.size,\r
-                                                               'default' : '',\r
-                                                               accessKey : 'S',\r
-                                                               style : 'width:175px',\r
-                                                               validate: function()\r
-                                                               {\r
-                                                                       var func = CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed );\r
-                                                                       return ( ( this.getValue() === '' ) || func.apply( this ) );\r
-                                                               },\r
-                                                               setup : function( name, element )\r
-                                                               {\r
-                                                                       if ( name == 'select' )\r
-                                                                               this.setValue( element.getAttribute( 'size' ) || '' );\r
-                                                                       if ( CKEDITOR.env.webkit )\r
-                                                                               this.getInputElement().setStyle( 'width', '86px' );\r
-                                                               },\r
-                                                               commit : function( element )\r
-                                                               {\r
-                                                                       if ( this.getValue() )\r
-                                                                               element.setAttribute( 'size', this.getValue() );\r
-                                                                       else\r
-                                                                               element.removeAttribute( 'size' );\r
-                                                               }\r
-                                                       },\r
-                                                       {\r
-                                                               type : 'html',\r
-                                                               html : '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.select.lines ) + '</span>'\r
-                                                       }\r
-                                               ]\r
-                                       },\r
-                                       {\r
-                                               type : 'html',\r
-                                               html : '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.select.opAvail ) + '</span>'\r
-                                       },\r
-                                       {\r
-                                               type : 'hbox',\r
-                                               widths : [ '115px', '115px' ,'100px' ],\r
-                                               children :\r
-                                               [\r
-                                                       {\r
-                                                               type : 'vbox',\r
-                                                               children :\r
-                                                               [\r
-                                                                       {\r
-                                                                               id : 'txtOptName',\r
-                                                                               type : 'text',\r
-                                                                               label : editor.lang.select.opText,\r
-                                                                               style : 'width:115px',\r
-                                                                               setup : function( name, element )\r
-                                                                               {\r
-                                                                                       if ( name == 'clear' )\r
-                                                                                               this.setValue( "" );\r
-                                                                               }\r
-                                                                       },\r
-                                                                       {\r
-                                                                               type : 'select',\r
-                                                                               id : 'cmbName',\r
-                                                                               label : '',\r
-                                                                               title : '',\r
-                                                                               size : 5,\r
-                                                                               style : 'width:115px;height:75px',\r
-                                                                               items : [],\r
-                                                                               onChange : function()\r
-                                                                               {\r
-                                                                                       var dialog = this.getDialog(),\r
-                                                                                               values = dialog.getContentElement( 'info', 'cmbValue' ),\r
-                                                                                               optName = dialog.getContentElement( 'info', 'txtOptName' ),\r
-                                                                                               optValue = dialog.getContentElement( 'info', 'txtOptValue' ),\r
-                                                                                               iIndex = getSelectedIndex( this );\r
-\r
-                                                                                       setSelectedIndex( values, iIndex );\r
-                                                                                       optName.setValue( this.getValue() );\r
-                                                                                       optValue.setValue( values.getValue() );\r
-                                                                               },\r
-                                                                               setup : function( name, element )\r
-                                                                               {\r
-                                                                                       if ( name == 'clear' )\r
-                                                                                               removeAllOptions( this );\r
-                                                                                       else if ( name == 'option' )\r
-                                                                                               addOption( this, element.getText(), element.getText(),\r
-                                                                                                       this.getDialog().getParentEditor().document );\r
-                                                                               },\r
-                                                                               commit : function( element )\r
-                                                                               {\r
-                                                                                       var dialog = this.getDialog(),\r
-                                                                                               optionsNames = getOptions( this ),\r
-                                                                                               optionsValues = getOptions( dialog.getContentElement( 'info', 'cmbValue' ) ),\r
-                                                                                               selectValue = dialog.getContentElement( 'info', 'txtValue' ).getValue();\r
-\r
-                                                                                       removeAllOptions( element );\r
-\r
-                                                                                       for ( var i = 0 ; i < optionsNames.count() ; i++ )\r
-                                                                                       {\r
-                                                                                               var oOption = addOption( element, optionsNames.getItem( i ).getValue(),\r
-                                                                                                       optionsValues.getItem( i ).getValue(), dialog.getParentEditor().document );\r
-                                                                                               if ( optionsValues.getItem( i ).getValue() == selectValue )\r
-                                                                                               {\r
-                                                                                                       oOption.setAttribute( 'selected', 'selected' );\r
-                                                                                                       oOption.selected = true;\r
-                                                                                               }\r
-                                                                                       }\r
-                                                                               }\r
-                                                                       }\r
-                                                               ]\r
-                                                       },\r
-                                                       {\r
-                                                               type : 'vbox',\r
-                                                               children :\r
-                                                               [\r
-                                                                       {\r
-                                                                               id : 'txtOptValue',\r
-                                                                               type : 'text',\r
-                                                                               label : editor.lang.select.opValue,\r
-                                                                               style : 'width:115px',\r
-                                                                               setup : function( name, element )\r
-                                                                               {\r
-                                                                                       if ( name == 'clear' )\r
-                                                                                               this.setValue( "" );\r
-                                                                               }\r
-                                                                       },\r
-                                                                       {\r
-                                                                               type : 'select',\r
-                                                                               id : 'cmbValue',\r
-                                                                               label : '',\r
-                                                                               size : 5,\r
-                                                                               style : 'width:115px;height:75px',\r
-                                                                               items : [],\r
-                                                                               onChange : function()\r
-                                                                               {\r
-                                                                                       var dialog = this.getDialog(),\r
-                                                                                               names = dialog.getContentElement( 'info', 'cmbName' ),\r
-                                                                                               optName = dialog.getContentElement( 'info', 'txtOptName' ),\r
-                                                                                               optValue = dialog.getContentElement( 'info', 'txtOptValue' ),\r
-                                                                                               iIndex = getSelectedIndex( this );\r
-\r
-                                                                                       setSelectedIndex( names, iIndex );\r
-                                                                                       optName.setValue( names.getValue() );\r
-                                                                                       optValue.setValue( this.getValue() );\r
-                                                                               },\r
-                                                                               setup : function( name, element )\r
-                                                                               {\r
-                                                                                       if ( name == 'clear' )\r
-                                                                                               removeAllOptions( this );\r
-                                                                                       else if ( name == 'option' )\r
-                                                                                       {\r
-                                                                                               var oValue      = element.getValue();\r
-                                                                                               addOption( this, oValue, oValue,\r
-                                                                                                       this.getDialog().getParentEditor().document );\r
-                                                                                               if ( element.getAttribute( 'selected' ) == 'selected' )\r
-                                                                                                       this.getDialog().getContentElement( 'info', 'txtValue' ).setValue( oValue );\r
-                                                                                       }\r
-                                                                               }\r
-                                                                       }\r
-                                                               ]\r
-                                                       },\r
-                                                       {\r
-                                                               type : 'vbox',\r
-                                                               padding : 5,\r
-                                                               children :\r
-                                                               [\r
-                                                                       {\r
-                                                                               type : 'button',\r
-                                                                               id : 'btnAdd',\r
-                                                                               style : '',\r
-                                                                               label : editor.lang.select.btnAdd,\r
-                                                                               title : editor.lang.select.btnAdd,\r
-                                                                               style : 'width:100%;',\r
-                                                                               onClick : function()\r
-                                                                               {\r
-                                                                                       //Add new option.\r
-                                                                                       var dialog = this.getDialog(),\r
-                                                                                               parentEditor = dialog.getParentEditor(),\r
-                                                                                               optName = dialog.getContentElement( 'info', 'txtOptName' ),\r
-                                                                                               optValue = dialog.getContentElement( 'info', 'txtOptValue' ),\r
-                                                                                               names = dialog.getContentElement( 'info', 'cmbName' ),\r
-                                                                                               values = dialog.getContentElement( 'info', 'cmbValue' );\r
-\r
-                                                                                       addOption(names, optName.getValue(), optName.getValue(), dialog.getParentEditor().document );\r
-                                                                                       addOption(values, optValue.getValue(), optValue.getValue(), dialog.getParentEditor().document );\r
-\r
-                                                                                       optName.setValue( "" );\r
-                                                                                       optValue.setValue( "" );\r
-                                                                               }\r
-                                                                       },\r
-                                                                       {\r
-                                                                               type : 'button',\r
-                                                                               id : 'btnModify',\r
-                                                                               label : editor.lang.select.btnModify,\r
-                                                                               title : editor.lang.select.btnModify,\r
-                                                                               style : 'width:100%;',\r
-                                                                               onClick : function()\r
-                                                                               {\r
-                                                                                       //Modify selected option.\r
-                                                                                       var dialog = this.getDialog(),\r
-                                                                                               optName = dialog.getContentElement( 'info', 'txtOptName' ),\r
-                                                                                               optValue = dialog.getContentElement( 'info', 'txtOptValue' ),\r
-                                                                                               names = dialog.getContentElement( 'info', 'cmbName' ),\r
-                                                                                               values = dialog.getContentElement( 'info', 'cmbValue' ),\r
-                                                                                               iIndex = getSelectedIndex( names );\r
-\r
-                                                                                       if ( iIndex >= 0 )\r
-                                                                                       {\r
-                                                                                               modifyOption( names, iIndex, optName.getValue(), optName.getValue() );\r
-                                                                                               modifyOption( values, iIndex, optValue.getValue(), optValue.getValue() );\r
-                                                                                       }\r
-                                                                               }\r
-                                                                       },\r
-                                                                       {\r
-                                                                               type : 'button',\r
-                                                                               id : 'btnUp',\r
-                                                                               style : 'width:100%;',\r
-                                                                               label : editor.lang.select.btnUp,\r
-                                                                               title : editor.lang.select.btnUp,\r
-                                                                               onClick : function()\r
-                                                                               {\r
-                                                                                       //Move up.\r
-                                                                                       var dialog = this.getDialog(),\r
-                                                                                               names = dialog.getContentElement( 'info', 'cmbName' ),\r
-                                                                                               values = dialog.getContentElement( 'info', 'cmbValue' );\r
-\r
-                                                                                       changeOptionPosition( names, -1, dialog.getParentEditor().document );\r
-                                                                                       changeOptionPosition( values, -1, dialog.getParentEditor().document );\r
-                                                                               }\r
-                                                                       },\r
-                                                                       {\r
-                                                                               type : 'button',\r
-                                                                               id : 'btnDown',\r
-                                                                               style : 'width:100%;',\r
-                                                                               label : editor.lang.select.btnDown,\r
-                                                                               title : editor.lang.select.btnDown,\r
-                                                                               onClick : function()\r
-                                                                               {\r
-                                                                                       //Move down.\r
-                                                                                       var dialog = this.getDialog(),\r
-                                                                                               names = dialog.getContentElement( 'info', 'cmbName' ),\r
-                                                                                               values = dialog.getContentElement( 'info', 'cmbValue' );\r
-\r
-                                                                                       changeOptionPosition( names, 1, dialog.getParentEditor().document );\r
-                                                                                       changeOptionPosition( values, 1, dialog.getParentEditor().document );\r
-                                                                               }\r
-                                                                       }\r
-                                                               ]\r
-                                                       }\r
-                                               ]\r
-                                       },\r
-                                       {\r
-                                               type : 'hbox',\r
-                                               widths : [ '40%', '20%', '40%' ],\r
-                                               children :\r
-                                               [\r
-                                                       {\r
-                                                               type : 'button',\r
-                                                               id : 'btnSetValue',\r
-                                                               label : editor.lang.select.btnSetValue,\r
-                                                               title : editor.lang.select.btnSetValue,\r
-                                                               onClick : function()\r
-                                                               {\r
-                                                                       //Set as default value.\r
-                                                                       var dialog = this.getDialog(),\r
-                                                                               values = dialog.getContentElement( 'info', 'cmbValue' ),\r
-                                                                               txtValue = dialog.getContentElement( 'info', 'txtValue' );\r
-                                                                       txtValue.setValue( values.getValue() );\r
-                                                               }\r
-                                                       },\r
-                                                       {\r
-                                                               type : 'button',\r
-                                                               id : 'btnDelete',\r
-                                                               label : editor.lang.select.btnDelete,\r
-                                                               title : editor.lang.select.btnDelete,\r
-                                                               onClick : function()\r
-                                                               {\r
-                                                                       // Delete option.\r
-                                                                       var dialog = this.getDialog(),\r
-                                                                               names = dialog.getContentElement( 'info', 'cmbName' ),\r
-                                                                               values = dialog.getContentElement( 'info', 'cmbValue' ),\r
-                                                                               optName = dialog.getContentElement( 'info', 'txtOptName' ),\r
-                                                                               optValue = dialog.getContentElement( 'info', 'txtOptValue' );\r
-\r
-                                                                       removeSelectedOptions( names );\r
-                                                                       removeSelectedOptions( values );\r
-\r
-                                                                       optName.setValue( "" );\r
-                                                                       optValue.setValue( "" );\r
-                                                               }\r
-                                                       },\r
-                                                       {\r
-                                                               id : 'chkMulti',\r
-                                                               type : 'checkbox',\r
-                                                               label : editor.lang.select.chkMulti,\r
-                                                               'default' : '',\r
-                                                               accessKey : 'M',\r
-                                                               value : "checked",\r
-                                                               setup : function( name, element )\r
-                                                               {\r
-                                                                       if ( name == 'select' )\r
-                                                                               this.setValue( element.getAttribute( 'multiple' ) );\r
-                                                                       if ( CKEDITOR.env.webkit )\r
-                                                                               this.getElement().getParent().setStyle( 'vertical-align', 'middle' );\r
-                                                               },\r
-                                                               commit : function( element )\r
-                                                               {\r
-                                                                       if ( this.getValue() )\r
-                                                                               element.setAttribute( 'multiple', this.getValue() );\r
-                                                                       else\r
-                                                                               element.removeAttribute( 'multiple' );\r
-                                                               }\r
-                                                       }\r
-                                               ]\r
-                                       }\r
-                               ]\r
-                       }\r
-               ]\r
-       };\r
-});\r