197 lignes
4.1 KiB
JavaScript
Fichiers exécutables
197 lignes
4.1 KiB
JavaScript
Fichiers exécutables
/**
|
|
* MessageBox.js
|
|
*
|
|
* Copyright, Moxiecode Systems AB
|
|
* Released under LGPL License.
|
|
*
|
|
* License: http://www.tinymce.com/license
|
|
* Contributing: http://www.tinymce.com/contributing
|
|
*/
|
|
|
|
/**
|
|
* This class is used to create MessageBoxes like alerts/confirms etc.
|
|
*
|
|
* @class tinymce.ui.Window
|
|
* @extends tinymce.ui.FloatPanel
|
|
*/
|
|
define("tinymce/ui/MessageBox", [
|
|
"tinymce/ui/Window"
|
|
], function(Window) {
|
|
"use strict";
|
|
|
|
var MessageBox = Window.extend({
|
|
/**
|
|
* Constructs a instance with the specified settings.
|
|
*
|
|
* @constructor
|
|
* @param {Object} settings Name/value object with settings.
|
|
*/
|
|
init: function(settings) {
|
|
settings = {
|
|
border: 1,
|
|
padding: 20,
|
|
layout: 'flex',
|
|
pack: "center",
|
|
align: "center",
|
|
containerCls: 'panel',
|
|
autoScroll: true,
|
|
buttons: {type: "button", text: "Ok", action: "ok"},
|
|
items: {
|
|
type: "label",
|
|
multiline: true,
|
|
maxWidth: 500,
|
|
maxHeight: 200
|
|
}
|
|
};
|
|
|
|
this._super(settings);
|
|
},
|
|
|
|
Statics: {
|
|
/**
|
|
* Ok buttons constant.
|
|
*
|
|
* @static
|
|
* @final
|
|
* @field {Number} OK
|
|
*/
|
|
OK: 1,
|
|
|
|
/**
|
|
* Ok/cancel buttons constant.
|
|
*
|
|
* @static
|
|
* @final
|
|
* @field {Number} OK_CANCEL
|
|
*/
|
|
OK_CANCEL: 2,
|
|
|
|
/**
|
|
* yes/no buttons constant.
|
|
*
|
|
* @static
|
|
* @final
|
|
* @field {Number} YES_NO
|
|
*/
|
|
YES_NO: 3,
|
|
|
|
/**
|
|
* yes/no/cancel buttons constant.
|
|
*
|
|
* @static
|
|
* @final
|
|
* @field {Number} YES_NO_CANCEL
|
|
*/
|
|
YES_NO_CANCEL: 4,
|
|
|
|
/**
|
|
* Constructs a new message box and renders it to the body element.
|
|
*
|
|
* @static
|
|
* @method msgBox
|
|
* @param {Object} settings Name/value object with settings.
|
|
*/
|
|
msgBox: function(settings) {
|
|
var buttons, callback = settings.callback || function() {};
|
|
|
|
switch (settings.buttons) {
|
|
case MessageBox.OK_CANCEL:
|
|
buttons = [
|
|
{type: "button", text: "Ok", subtype: "primary", onClick: function(e) {
|
|
e.control.parents()[1].close();
|
|
callback(true);
|
|
}},
|
|
|
|
{type: "button", text: "Cancel", onClick: function(e) {
|
|
e.control.parents()[1].close();
|
|
callback(false);
|
|
}}
|
|
];
|
|
break;
|
|
|
|
case MessageBox.YES_NO:
|
|
buttons = [
|
|
{type: "button", text: "Ok", subtype: "primary", onClick: function(e) {
|
|
e.control.parents()[1].close();
|
|
callback(true);
|
|
}}
|
|
];
|
|
break;
|
|
|
|
case MessageBox.YES_NO_CANCEL:
|
|
buttons = [
|
|
{type: "button", text: "Ok", subtype: "primary", onClick: function(e) {
|
|
e.control.parents()[1].close();
|
|
}}
|
|
];
|
|
break;
|
|
|
|
default:
|
|
buttons = [
|
|
{type: "button", text: "Ok", subtype: "primary", onClick: function(e) {
|
|
e.control.parents()[1].close();
|
|
}}
|
|
];
|
|
break;
|
|
}
|
|
|
|
return new Window({
|
|
padding: 20,
|
|
x: settings.x,
|
|
y: settings.y,
|
|
minWidth: 300,
|
|
minHeight: 100,
|
|
layout: "flex",
|
|
pack: "center",
|
|
align: "center",
|
|
buttons: buttons,
|
|
title: settings.title,
|
|
items: {
|
|
type: "label",
|
|
multiline: true,
|
|
maxWidth: 500,
|
|
maxHeight: 200,
|
|
text: settings.text
|
|
},
|
|
onClose: settings.onClose
|
|
}).renderTo(document.body).reflow();
|
|
},
|
|
|
|
/**
|
|
* Creates a new alert dialog.
|
|
*
|
|
* @method alert
|
|
* @param {Object} settings Settings for the alert dialog.
|
|
* @param {function} [callback] Callback to execute when the user makes a choice.
|
|
*/
|
|
alert: function(settings, callback) {
|
|
if (typeof(settings) == "string") {
|
|
settings = {text: settings};
|
|
}
|
|
|
|
settings.callback = callback;
|
|
return MessageBox.msgBox(settings);
|
|
},
|
|
|
|
/**
|
|
* Creates a new confirm dialog.
|
|
*
|
|
* @method confirm
|
|
* @param {Object} settings Settings for the confirm dialog.
|
|
* @param {function} [callback] Callback to execute when the user makes a choice.
|
|
*/
|
|
confirm: function(settings, callback) {
|
|
if (typeof(settings) == "string") {
|
|
settings = {text: settings};
|
|
}
|
|
|
|
settings.callback = callback;
|
|
settings.buttons = MessageBox.OK_CANCEL;
|
|
|
|
return MessageBox.msgBox(settings);
|
|
}
|
|
}
|
|
});
|
|
|
|
return MessageBox;
|
|
}); |