99 lines
2.2 KiB
JavaScript
99 lines
2.2 KiB
JavaScript
/**
|
|
* @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
|
|
* For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
*/
|
|
|
|
/* global alert */
|
|
|
|
CKEDITOR.dialog.add( 'embedBase', function( editor ) {
|
|
'use strict';
|
|
|
|
var lang = editor.lang.embedbase;
|
|
|
|
return {
|
|
title: lang.title,
|
|
minWidth: 350,
|
|
minHeight: 50,
|
|
|
|
onLoad: function() {
|
|
var that = this,
|
|
loadContentRequest = null;
|
|
|
|
this.on( 'ok', function( evt ) {
|
|
// We're going to hide it manually, after remote response is fetched.
|
|
evt.data.hide = false;
|
|
|
|
// We don't want the widget system to finalize widget insertion (it happens with priority 20).
|
|
evt.stop();
|
|
|
|
// Indicate visually that waiting for the response (#13213).
|
|
that.setState( CKEDITOR.DIALOG_STATE_BUSY );
|
|
|
|
var url = that.getValueOf( 'info', 'url' );
|
|
|
|
loadContentRequest = that.widget.loadContent( url, {
|
|
noNotifications: true,
|
|
|
|
callback: function() {
|
|
if ( !that.widget.isReady() ) {
|
|
editor.widgets.finalizeCreation( that.widget.wrapper.getParent( true ) );
|
|
}
|
|
|
|
editor.fire( 'saveSnapshot' );
|
|
|
|
that.hide();
|
|
unlock();
|
|
},
|
|
|
|
errorCallback: function( messageTypeOrMessage ) {
|
|
that.getContentElement( 'info', 'url' ).select();
|
|
|
|
alert( that.widget.getErrorMessage( messageTypeOrMessage, url, 'Given' ) );
|
|
|
|
unlock();
|
|
}
|
|
} );
|
|
}, null, null, 15 );
|
|
|
|
this.on( 'cancel', function( evt ) {
|
|
if ( evt.data.hide && loadContentRequest ) {
|
|
loadContentRequest.cancel();
|
|
unlock();
|
|
}
|
|
} );
|
|
|
|
function unlock() {
|
|
// Visual waiting indicator is no longer needed (#13213).
|
|
that.setState( CKEDITOR.DIALOG_STATE_IDLE );
|
|
loadContentRequest = null;
|
|
}
|
|
},
|
|
|
|
contents: [
|
|
{
|
|
id: 'info',
|
|
|
|
elements: [
|
|
{
|
|
type: 'text',
|
|
id: 'url',
|
|
label: editor.lang.common.url,
|
|
required: true,
|
|
|
|
setup: function( widget ) {
|
|
this.setValue( widget.data.url );
|
|
},
|
|
|
|
validate: function() {
|
|
if ( !this.getDialog().widget.isUrlValid( this.getValue() ) ) {
|
|
return lang.unsupportedUrlGiven;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
};
|
|
} );
|