123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /**
- * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
- CKEDITOR.dialog.add( 'button', function( editor ) {
- function commitAttributes( element ) {
- var val = this.getValue();
- if ( val ) {
- element.attributes[ this.id ] = val;
- if ( this.id == 'name' )
- element.attributes[ 'data-cke-saved-name' ] = val;
- } else {
- delete element.attributes[ this.id ];
- if ( this.id == 'name' )
- delete element.attributes[ 'data-cke-saved-name' ];
- }
- }
- return {
- title: editor.lang.forms.button.title,
- minWidth: 350,
- minHeight: 150,
- onShow: function() {
- delete this.button;
- var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.is( 'input' ) ) {
- var type = element.getAttribute( 'type' );
- if ( type in { button: 1, reset: 1, submit: 1 } ) {
- this.button = element;
- this.setupContent( element );
- }
- }
- },
- onOk: function() {
- var editor = this.getParentEditor(),
- element = this.button,
- isInsertMode = !element;
- var fake = element ? CKEDITOR.htmlParser.fragment.fromHtml( element.getOuterHtml() ).children[ 0 ] : new CKEDITOR.htmlParser.element( 'input' );
- this.commitContent( fake );
- var writer = new CKEDITOR.htmlParser.basicWriter();
- fake.writeHtml( writer );
- var newElement = CKEDITOR.dom.element.createFromHtml( writer.getHtml(), editor.document );
- if ( isInsertMode )
- editor.insertElement( newElement );
- else {
- newElement.replace( element );
- editor.getSelection().selectElement( newElement );
- }
- },
- contents: [ {
- id: 'info',
- label: editor.lang.forms.button.title,
- title: editor.lang.forms.button.title,
- elements: [
- {
- id: 'name',
- type: 'text',
- bidi: true,
- label: editor.lang.common.name,
- 'default': '',
- setup: function( element ) {
- this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
- },
- commit: commitAttributes
- },
- {
- id: 'value',
- type: 'text',
- label: editor.lang.forms.button.text,
- accessKey: 'V',
- 'default': '',
- setup: function( element ) {
- this.setValue( element.getAttribute( 'value' ) || '' );
- },
- commit: commitAttributes
- },
- {
- id: 'type',
- type: 'select',
- label: editor.lang.forms.button.type,
- 'default': 'button',
- accessKey: 'T',
- items: [
- [ editor.lang.forms.button.typeBtn, 'button' ],
- [ editor.lang.forms.button.typeSbm, 'submit' ],
- [ editor.lang.forms.button.typeRst, 'reset' ]
- ],
- setup: function( element ) {
- this.setValue( element.getAttribute( 'type' ) || '' );
- },
- commit: commitAttributes
- }
- ]
- } ]
- };
- } );
|