modularize dialog Module (no more p4.dialog)

This commit is contained in:
Florian BLOUET
2016-02-29 15:36:02 +01:00
parent 4ff3239c92
commit 5eec250624
32 changed files with 314 additions and 309 deletions

View File

@@ -1,8 +1,7 @@
;
var p4 = p4 || {};
var dialogModule = (function ($) {
;
(function (p4, $) {
var _dialog = {};
function getLevel(level) {
@@ -19,24 +18,24 @@ var p4 = p4 || {};
return 'DIALOG' + getLevel(level);
};
function addButtons(buttons, dialog) {
function _addButtons(buttons, dialog) {
if (dialog.options.closeButton === true) {
buttons[language.fermer] = function () {
dialog.Close();
dialog.close();
};
}
if (dialog.options.cancelButton === true) {
buttons[language.annuler] = function () {
dialog.Close();
dialog.close();
};
}
return buttons;
}
var phraseaDialog = function (options, level) {
var _phraseaDialog = function (options, level) {
var createDialog = function (level) {
var _createDialog = function (level) {
var $dialog = $('#' + getId(level));
@@ -73,7 +72,7 @@ var p4 = p4 || {};
this.level = getLevel(level);
this.options.buttons = addButtons(this.options.buttons, this);
this.options.buttons = _addButtons(this.options.buttons, this);
if (/\d+x\d+/.test(this.options.size)) {
var dimension = this.options.size.split('x');
@@ -109,17 +108,17 @@ var p4 = p4 || {};
* - Small | 730 x 480
*
**/
this.$dialog = createDialog(this.level),
this.$dialog = _createDialog(this.level),
zIndex = Math.min(this.level * 5000 + 5000, 32767);
var CloseCallback = function () {
var _closeCallback = function () {
if (typeof $this.options.closeCallback === 'function') {
$this.options.closeCallback($this.$dialog);
}
if ($this.closing === false) {
$this.closing = true;
$this.Close();
$this.close();
}
};
@@ -140,7 +139,7 @@ var p4 = p4 || {};
open: function () {
$(this).dialog("widget").css("z-index", zIndex);
},
close: CloseCallback
close: _closeCallback
})
.dialog('open').addClass('dialog-' + this.options.size);
@@ -164,9 +163,9 @@ var p4 = p4 || {};
return this;
};
phraseaDialog.prototype = {
Close: function () {
p4.Dialog.Close(this.level);
_phraseaDialog.prototype = {
close: function () {
_dialog.close(this.level);
},
setContent: function (content) {
this.$dialog.removeClass('loading').empty().append(content);
@@ -218,7 +217,7 @@ var p4 = p4 || {};
},
setOption: function (optionName, optionValue) {
if (optionName === 'buttons') {
optionValue = addButtons(optionValue, this);
optionValue = _addButtons(optionValue, this);
}
if (this.$dialog.data("ui-dialog")) {
this.$dialog.dialog('option', optionName, optionValue);
@@ -231,13 +230,13 @@ var p4 = p4 || {};
};
Dialog.prototype = {
Create: function (options, level) {
create: function (options, level) {
if (this.get(level) instanceof phraseaDialog) {
this.get(level).Close();
if (this.get(level) instanceof _phraseaDialog) {
this.get(level).close();
}
$dialog = new phraseaDialog(options, level);
$dialog = new _phraseaDialog(options, level);
this.currentStack[$dialog.getId()] = $dialog;
@@ -253,7 +252,7 @@ var p4 = p4 || {};
return null;
},
Close: function (level) {
close: function (level) {
$(window).unbind('resize.DIALOG' + getLevel(level));
@@ -272,6 +271,9 @@ var p4 = p4 || {};
}
};
p4.Dialog = new Dialog();
_dialog = new Dialog();
return {
dialog: _dialog
}
}(p4, jQuery));
}(jQuery));

View File

@@ -1,210 +1,210 @@
var p4 = p4 || {};
$(document).ready(function () {
$('input.input-button').hover(
function () {
$(this).addClass('hover');
},
function () {
$(this).removeClass('hover');
var commonModule = (function ($, p4) {
$(document).ready(function () {
$('input.input-button').hover(
function () {
$(this).addClass('hover');
},
function () {
$(this).removeClass('hover');
}
);
var locale = $.cookie('locale');
var jq_date = p4.lng = typeof locale !== "undefined" ? locale.split('_').reverse().pop() : 'en';
if (jq_date == 'en') {
jq_date = 'en-GB';
}
);
var locale = $.cookie('locale');
$.datepicker.setDefaults({showMonthAfterYear: false});
$.datepicker.setDefaults($.datepicker.regional[jq_date]);
var jq_date = p4.lng = typeof locale !== "undefined" ? locale.split('_').reverse().pop() : 'en';
$('body').on('click', '.infoDialog', function (event) {
_infoDialog($(this));
});
if (jq_date == 'en') {
jq_date = 'en-GB';
var cache = $('#mainMenu .helpcontextmenu');
$('.context-menu-item', cache).hover(function () {
$(this).addClass('context-menu-item-hover');
}, function () {
$(this).removeClass('context-menu-item-hover');
});
$('#help-trigger').contextMenu('#mainMenu .helpcontextmenu', {openEvt: 'click', dropDown: true, theme: 'vista', dropDown: true,
showTransition: 'slideDown',
hideTransition: 'hide',
shadow: false
});
});
function _infoDialog(el) {
$("#DIALOG").attr('title', '')
.empty()
.append(el.attr('infos'))
.dialog({
autoOpen: false,
closeOnEscape: true,
resizable: false,
draggable: false,
width: 600,
height: 400,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.7
}
}).dialog('open').css({'overflow-x': 'auto', 'overflow-y': 'auto'});
}
function showOverlay(n, appendto, callback, zIndex) {
var div = "OVERLAY";
if (typeof(n) != "undefined")
div += n;
if ($('#' + div).length === 0) {
if (typeof(appendto) == 'undefined')
appendto = 'body';
$(appendto).append('<div id="' + div + '" style="display:none;">&nbsp;</div>');
}
var css = {
display: 'block',
opacity: 0,
right: 0,
bottom: 0,
position: 'absolute',
top: 0,
zIndex: zIndex,
left: 0
};
if (parseInt(zIndex) > 0)
css['zIndex'] = parseInt(zIndex);
if (typeof(callback) != 'function')
callback = function () {
};
$('#' + div).css(css).addClass('overlay').fadeTo(500, 0.7).bind('click', function () {
(callback)();
});
if (( navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/6/) )) {
$('select').css({
visibility: 'hidden'
});
}
}
$.datepicker.setDefaults({showMonthAfterYear: false});
$.datepicker.setDefaults($.datepicker.regional[jq_date]);
$('body').on('click', '.infoDialog', function (event) {
infoDialog($(this));
});
var cache = $('#mainMenu .helpcontextmenu');
$('.context-menu-item', cache).hover(function () {
$(this).addClass('context-menu-item-hover');
}, function () {
$(this).removeClass('context-menu-item-hover');
});
$('#help-trigger').contextMenu('#mainMenu .helpcontextmenu', {openEvt: 'click', dropDown: true, theme: 'vista', dropDown: true,
showTransition: 'slideDown',
hideTransition: 'hide',
shadow: false
});
});
function infoDialog(el) {
$("#DIALOG").attr('title', '')
.empty()
.append(el.attr('infos'))
.dialog({
autoOpen: false,
closeOnEscape: true,
resizable: false,
draggable: false,
width: 600,
height: 400,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.7
}
}).dialog('open').css({'overflow-x': 'auto', 'overflow-y': 'auto'});
}
// @deprecated
function manageSession(data, showMessages) {
if (typeof(showMessages) == "undefined")
showMessages = false;
if (data.status == 'disconnected' || data.status == 'session') {
disconnected();
return false;
function hideOverlay(n) {
if (( navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/6/) )) {
$('select').css({
visibility: 'visible'
});
}
var div = "OVERLAY";
if (typeof(n) != "undefined")
div += n;
$('#' + div).hide().remove();
}
if (showMessages) {
var box = $('#notification_box');
box.empty().append(data.notifications);
if (box.is(':visible'))
fix_notification_height();
if ($('.notification.unread', box).length > 0) {
var trigger = $('#notification_trigger');
$('.counter', trigger)
.empty()
.append($('.notification.unread', box).length);
$('.counter', trigger).css('visibility', 'visible');
// @deprecated
function manageSession(data, showMessages) {
if (typeof(showMessages) == "undefined")
showMessages = false;
if (data.status == 'disconnected' || data.status == 'session') {
disconnected();
return false;
}
else
$('#notification_trigger .counter').css('visibility', 'hidden').empty();
if (showMessages) {
var box = $('#notification_box');
box.empty().append(data.notifications);
if (data.changed.length > 0) {
var current_open = $('.SSTT.ui-state-active');
var current_sstt = current_open.length > 0 ? current_open.attr('id').split('_').pop() : false;
if (box.is(':visible'))
fix_notification_height();
if ($('.notification.unread', box).length > 0) {
var trigger = $('#notification_trigger');
$('.counter', trigger)
.empty()
.append($('.notification.unread', box).length);
$('.counter', trigger).css('visibility', 'visible');
var main_open = false;
for (var i = 0; i != data.changed.length; i++) {
var sstt = $('#SSTT_' + data.changed[i]);
if (sstt.size() === 0) {
if (main_open === false) {
$('#baskets .bloc').animate({'top': 30}, function () {
$('#baskets .alert_datas_changed:first').show()
});
main_open = true;
}
}
else {
if (!sstt.hasClass('active'))
sstt.addClass('unread');
else {
$('.alert_datas_changed', $('#SSTT_content_' + data.changed[i])).show();
}
}
}
}
if ('' !== $.trim(data.message)) {
if ($('#MESSAGE').length === 0)
$('body').append('<div id="#MESSAGE"></div>');
$('#MESSAGE')
.empty()
.append('<div style="margin:30px 10px;"><h4><b>' + data.message + '</b></h4></div><div style="margin:20px 0px 10px;"><label class="checkbox"><input type="checkbox" class="dialog_remove" />' + language.hideMessage + '</label></div>')
.attr('title', 'Global Message')
.dialog({
autoOpen: false,
closeOnEscape: true,
resizable: false,
draggable: false,
modal: true,
close: function () {
if ($('.dialog_remove:checked', $(this)).length > 0) {
// setTemporaryPref
$.ajax({
type: "POST",
url: "/user/preferences/temporary/",
data: {
prop: 'message',
value: 0
},
success: function (data) {
return;
}
else
$('#notification_trigger .counter').css('visibility', 'hidden').empty();
if (data.changed.length > 0) {
var current_open = $('.SSTT.ui-state-active');
var current_sstt = current_open.length > 0 ? current_open.attr('id').split('_').pop() : false;
var main_open = false;
for (var i = 0; i != data.changed.length; i++) {
var sstt = $('#SSTT_' + data.changed[i]);
if (sstt.size() === 0) {
if (main_open === false) {
$('#baskets .bloc').animate({'top': 30}, function () {
$('#baskets .alert_datas_changed:first').show()
});
main_open = true;
}
}
})
.dialog('open');
else {
if (!sstt.hasClass('active'))
sstt.addClass('unread');
else {
$('.alert_datas_changed', $('#SSTT_content_' + data.changed[i])).show();
}
}
}
}
if ('' !== $.trim(data.message)) {
if ($('#MESSAGE').length === 0)
$('body').append('<div id="#MESSAGE"></div>');
$('#MESSAGE')
.empty()
.append('<div style="margin:30px 10px;"><h4><b>' + data.message + '</b></h4></div><div style="margin:20px 0px 10px;"><label class="checkbox"><input type="checkbox" class="dialog_remove" />' + language.hideMessage + '</label></div>')
.attr('title', 'Global Message')
.dialog({
autoOpen: false,
closeOnEscape: true,
resizable: false,
draggable: false,
modal: true,
close: function () {
if ($('.dialog_remove:checked', $(this)).length > 0) {
// setTemporaryPref
$.ajax({
type: "POST",
url: "/user/preferences/temporary/",
data: {
prop: 'message',
value: 0
},
success: function (data) {
return;
}
});
}
}
})
.dialog('open');
}
}
return true;
}
return true;
}
function showOverlay(n, appendto, callback, zIndex) {
var div = "OVERLAY";
if (typeof(n) != "undefined")
div += n;
if ($('#' + div).length === 0) {
if (typeof(appendto) == 'undefined')
appendto = 'body';
$(appendto).append('<div id="' + div + '" style="display:none;">&nbsp;</div>');
return {
showOverlay: showOverlay,
hideOverlay: hideOverlay,
manageSession: manageSession
}
var css = {
display: 'block',
opacity: 0,
right: 0,
bottom: 0,
position: 'absolute',
top: 0,
zIndex: zIndex,
left: 0
};
if (parseInt(zIndex) > 0)
css['zIndex'] = parseInt(zIndex);
if (typeof(callback) != 'function')
callback = function () {
};
$('#' + div).css(css).addClass('overlay').fadeTo(500, 0.7).bind('click', function () {
(callback)();
});
if (( navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/6/) )) {
$('select').css({
visibility: 'hidden'
});
}
}
function hideDwnl() {
hideOverlay(2);
$('#MODALDL').css({
'display': 'none'
});
}
function hideOverlay(n) {
if (( navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/6/) )) {
$('select').css({
visibility: 'visible'
});
}
var div = "OVERLAY";
if (typeof(n) != "undefined")
div += n;
$('#' + div).hide().remove();
}
})(jQuery, p4);

View File

@@ -572,7 +572,7 @@
event.cancelBubble = true;
if (event.stopPropagation)
event.stopPropagation();
showOverlay('_tooltip', 'body', unfix_tooltip, settings(this).fixableIndex);
commonModule.showOverlay('_tooltip', 'body', unfix_tooltip, settings(this).fixableIndex);
$('#tooltip .tooltip_closer').show().bind('click', unfix_tooltip);
$.tooltip.blocked = true;
}
@@ -718,7 +718,7 @@ function unfix_tooltip() {
$.tooltip.current = null;
$('#tooltip').hide();
$('#tooltip .tooltip_closer').hide();
hideOverlay('_tooltip');
commonModule.hideOverlay('_tooltip');
}