* @class de_epages.design.inc.editorMenu
*
*/
/*
* @copyright © Copyright 2006-2012, epages GmbH, All Rights Reserved.
*
* @module de_epages.design.inc.editorMenu
*/
define("de_epages/design/inc/editormenu", [
"jquery",
"util/storage",
"$dict!de_epages/design/inc/editormenu",
"$tmpl!de_epages/design/inc/editormenu"
], function ($, storage, dictEditormenu, tmplEditormenu) {
return {
* description
*
* The `de_epages.design.inc.editorMenu.init()` creates overlay into the content are to select between different editors.
*
* ### Examples
* Init the overlay
*
* JavaScript:
*
* jQuery.ready('de_epages.design.inc.editormenu', function ($) {
* de_epages.design.inc.editorMenu.init(
* {
* editor: 'Content',
* customiseDesign: #Shop.FeatureMaxValue.CustomiseDesign
* }
* );
* });
*
* CSS:
*
* @import url('inc/editormenu-bo.css');
*
*
* ### Dependencies
*
* + `jQuery.tmpl, jQuery.dect`
*
* @param {Object} [options] A map of additional options pass to the function.
* @param {String} options.editor A string indicating which editor is currently active.
* @param {undefined} options.customiseDesign An integer indicating if the feature customiseDesign is active
*
* @method init
* @static
* @member de_epages.design.inc.editorMenu
*
* @since 6.15.x
*/
init: function (options) {
var cssClassMap = {
Content: 'ico_l_contentpreview',
StyleWizard: 'ico_l_stylewizard',
StyleEditor: 'ico_l_styleeditor'
},
o = $.extend({
// defaults
editor: 'Content',
customiseDesign: 'NotAllowed'
}, options),
// render template
renderedTemplate = tmplEditormenu({
activeEditorClass: cssClassMap[o.editor],
customiseDesign: o.customiseDesign
})
.dictParse(dictEditormenu, true),
// elements from the template
elements = renderedTemplate.tmplItem('elements'),
// get storage informations about already closed tooltips
stored = storage.localStorage('EditorTooltipMessage') || false,
// cache often used DOM elements
$message = elements.message,
$selector = elements.editorSelector,
$list = elements.list,
$opener = elements.opener;
// save closed tooltips in local storage on close
$message.on('close', function () {
storage.localStorage('EditorTooltipMessage', true);
$(this)
.addClass('HideElement');
});
// simulate a delayed hover status with *jQuery.delay*
($selector)
.on('mouseenter', function () {
$(this)
.clearQueue();
// only hide not close the tooltip on hover
$message.addClass('HideElement');
$selector.addClass('open')
.css('height', (o.customiseDesign === 'Allowed' ? 139 : 93) + 'px');
})
.on('mouseleave', function () {
$(this)
.delay(250)
.queue(function (next) {
$selector.removeClass('open')
.css('height', '');
next();
});
});
// trigger close event for tooltip
elements.closeButton
.on('click', function () {
$message.trigger('close');
});
// set click events for location change
elements.contentItem
.on('click', function () {
location.href = '?ViewAction=MBO-ViewContent&ObjectID=' + epages.vars.CategoriesID;
});
elements.styleWizardItem
.on('click', function () {
location.href = '?ViewAction=MBO-ViewStyleWizard&ObjectID=' + epages.vars.StyleId;
});
if (o.customiseDesign === 'Allowed') {
elements.styleEditorItem
.on('click', function () {
location.href = '?ViewAction=MBO-ViewStyleEditor&ObjectID=' + epages.vars.StyleId;
});
}
// set current editor to acitve in the list
$list.find('.Open' + o.editor)
.addClass('active')
.off('click');
// if the tooltip has been close do not show it again
if (stored === true) {
$message.addClass('HideElement');
}
if (o.editor === 'Content') {
$('#LeftSidebar')
.find('.CloseButton')
.on('click', function () {
renderedTemplate.addClass('left-margin');
});
$('#LeftSidebar')
.find('.MinimizeNode')
.on('click', function () {
renderedTemplate.removeClass('left-margin');
});
}
$('#epages_cartridges_de_epages_presentation_widget_Toolvisualaid_0')
.on('click', function () {
if ($(this).children('i').is(".ico_s_visualaid_hidden")) {
renderedTemplate.hide();
} else {
renderedTemplate.show();
}
});
// insert the template into the DOM
$('.ContentSpacer')
.prepend(renderedTemplate);
}
};
});