123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- /** This file is part of KCFinder project
- *
- * @desc Dialog boxes functionality
- * @package KCFinder
- * @version 3.12
- * @author Pavel Tzonkov <sunhater@sunhater.com>
- * @copyright 2010-2014 KCFinder Project
- * @license http://opensource.org/licenses/GPL-3.0 GPLv3
- * @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
- * @link http://kcfinder.sunhater.com
- */
- _.alert = function(text, field, options) {
- var close = !field
- ? function() {}
- : ($.isFunction(field)
- ? field
- : function() { setTimeout(function() {field.focus(); }, 1); }
- ),
- o = {
- close: function() {
- close();
- if ($(this).hasClass('ui-dialog-content'))
- $(this).dialog('destroy').detach();
- }
- };
- $.extend(o, options);
- return _.dialog(_.label("Warning"), text.replace("\n", "<br />\n"), o);
- };
- _.confirm = function(text, callback, options) {
- var o = {
- buttons: [
- {
- text: _.label("Yes"),
- icons: {primary: "ui-icon-check"},
- click: function() {
- callback();
- $(this).dialog('destroy').detach();
- }
- },
- {
- text: _.label("No"),
- icons: {primary: "ui-icon-closethick"},
- click: function() {
- $(this).dialog('destroy').detach();
- }
- }
- ]
- };
- $.extend(o, options);
- return _.dialog(_.label("Confirmation"), text, o);
- };
- _.dialog = function(title, content, options) {
- if (!options) options = {};
- var dlg = $('<div></div>');
- dlg.hide().attr('title', title).html(content).appendTo('body');
- if (dlg.find('form').get(0) && !dlg.find('form [type="submit"]').get(0))
- dlg.find('form').append('<button type="submit" style="width:0;height:0;padding:0;margin:0;border:0;visibility:hidden">Submit</button>');
- var o = {
- resizable: false,
- minHeight: false,
- modal: true,
- width: 351,
- buttons: [
- {
- text: _.label("OK"),
- icons: {primary: "ui-icon-check"},
- click: function() {
- if (typeof options.close != "undefined")
- options.close();
- if ($(this).hasClass('ui-dialog-content'))
- $(this).dialog('destroy').detach();
- }
- }
- ],
- close: function() {
- if ($(this).hasClass('ui-dialog-content'))
- $(this).dialog('destroy').detach();
- },
- closeText: false,
- zindex: 1000000,
- alone: false,
- blur: false,
- legend: false,
- nopadding: false,
- show: { effect: "fade", duration: 250 },
- hide: { effect: "fade", duration: 250 }
- };
- $.extend(o, options);
- if (o.alone)
- $('.ui-dialog .ui-dialog-content').dialog('destroy').detach();
- dlg.dialog(o);
- if (o.nopadding)
- dlg.css({padding: 0});
- if (o.blur)
- dlg.parent().find('.ui-dialog-buttonpane button').first().get(0).blur();
- if (o.legend)
- dlg.parent().find('.ui-dialog-buttonpane').prepend('<div style="float:left;padding:10px 0 0 10px">' + o.legend + '</div>');
- if ($.agent && $.agent.firefox)
- dlg.css('overflow-x', "hidden");
- return dlg;
- };
- _.fileNameDialog = function(post, inputName, inputValue, url, labels, callBack, selectAll) {
- var html = '<form method="post" action="javascript:;"><input name="' + inputName + '" type="text" /></form>',
- submit = function() {
- var name = dlg.find('[type="text"]').get(0);
- name.value = $.trim(name.value);
- if (name.value == "") {
- _.alert(_.label(labels.errEmpty), function() {
- name.focus();
- });
- return false;
- } else if (/[\/\\]/g.test(name.value)) {
- _.alert(_.label(labels.errSlash), function() {
- name.focus();
- });
- return false;
- } else if (name.value.substr(0, 1) == ".") {
- _.alert(_.label(labels.errDot), function() {
- name.focus();
- });
- return false;
- }
- post[inputName] = name.value;
- $.ajax({
- type: "post",
- dataType: "json",
- url: url,
- data: post,
- async: false,
- success: function(data) {
- if (_.check4errors(data, false))
- return;
- if (callBack) callBack(data);
- dlg.dialog("destroy").detach();
- },
- error: function() {
- _.alert(_.label("Unknown error."));
- }
- });
- return false;
- },
- dlg = _.dialog(_.label(labels.title), html, {
- width: 351,
- buttons: [
- {
- text: _.label("OK"),
- icons: {primary: "ui-icon-check"},
- click: function() {
- submit();
- }
- },
- {
- text: _.label("Cancel"),
- icons: {primary: "ui-icon-closethick"},
- click: function() {
- $(this).dialog('destroy').detach();
- }
- }
- ]
- }),
- field = dlg.find('[type="text"]');
- field.uniform().attr('value', inputValue).css('width', 310);
- dlg.find('form').submit(submit);
- if (!selectAll && /^(.+)\.[^\.]+$/ .test(inputValue))
- field.selection(0, inputValue.replace(/^(.+)\.[^\.]+$/, "$1").length);
- else {
- field.get(0).focus();
- field.get(0).select();
- }
- };
|