%PDF- %PDF-
| Direktori : /home1/lightco1/www/plugins/system/jsnframework/assets/joomlashine/js/ |
| Current File : //home1/lightco1/www/plugins/system/jsnframework/assets/joomlashine/js/languagemanager.js |
/**
* @version $Id$
* @package JSN_Framework
* @author JoomlaShine Team <support@joomlashine.com>
* @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* Websites: http://www.joomlashine.com
* Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html
*/
define([
'jquery',
'jsn/libs/modal',
'jquery.ui',
'jquery.tipsy'
],
function ($, modal)
{
// Declare JSNLangEditor contructor
var JSNLangEditor = function(params)
{
// Object parameters
this.params = $.extend({
editSelector: '',
revertSelector: ''
}, params);
this.lang = this.params.language || {};
// Do initialization
$(document).ready($.proxy(function() {
// Get necessary elements
this.$editLinks = $(this.params.editSelector);
this.$revertLinks = $(this.params.revertSelector);
this.initialize();
}, this));
};
JSNLangEditor.prototype = {
initialize: function() {
// Register event handler to revert a language to default
this.$revertLinks.click($.proxy(function(event) {
var $target = $(event.target);
if (confirm(this.lang['JSN_EXTFW_EDITORS_LANG_REVERT_CONFIRM'].replace('%s', $target.parent().children('span').text()))) {
// Show loading indicator
$target.removeClass('icon16 icon-refresh').addClass('jsn-icon16 jsn-icon-loading');
// Revert now
$.ajax({
url: $target.attr('action'),
context: this,
complete: function(jqXHR, textStatus) {
// Create a message
this.$msg = this.$msg || $('<div class="alert jsn-box-shadow-medium" />')
.append($('<a class="close" title="' + JSNCoreLanguage['JSN_EXTFW_GENERAL_CLOSE'] + '" href="javascript:void(0);" onclick="this.parentNode.style.display = \'none\';">×</a>'))
.append($('<span class="message" />'))
.appendTo($('#jsn-langs #jsnconfig-languagemanager-field').css('position', 'relative'));
// Check if language reverted successful
if (jqXHR.responseText.match(/^FAIL:/)) {
// Set failure message then show
this.$msg.removeClass('alert-success').addClass('alert-error')
.children('span.message').html(jqXHR.responseText.replace(/^FAIL:/, ''));
// Show warning icon
$target.removeClass('jsn-icon16 jsn-icon-loading').addClass('jsn-icon16 jsn-icon-warning-sign').attr('title', this.lang['JSN_EXTFW_EDITORS_LANG_LAST_REVERT_FAIL']);
} else {
this.$msg.removeClass('alert-error').addClass('alert-success');
// Generate success message
this.$msg.children('span.message').text(this.lang['JSN_EXTFW_EDITORS_LANG_REVERT_SUCCESS'].replace('%s', $target.parent().children('span').text()));
// Schedule to hide success message automatically
setTimeout($.proxy(function() { this.$msg.fadeOut('slow'); }, this), 1500);
// Remove revert icon
$target.remove();
}
// Show message centralized
this.$msg.show().css('margin-left', '-' + (this.$msg.outerWidth() / 2) + 'px');
}
});
}
}, this));
// Register event handler to show language editor modal
this.$editLinks.click($.proxy(function(event) {
this.modal = this.modal || new modal({
title: this.lang['JSN_EXTFW_EDITORS_LANG'],
width: $(window).width() - 72,
height: $(window).height() - 72,
buttons: [
{text: JSNCoreLanguage['JSN_EXTFW_GENERAL_CLOSE'], click: $.proxy(function() { this.modal.close(); }, this)}
]
});
this.modal.options.url = $(event.target).attr('data-source');
this.modal.show();
}, this));
// Handle window resize event
$(window).resize($.proxy(function() {
if (this.modal) {
this.modal.setOption('width', $(window).width() - 72);
this.modal.setOption('height', $(window).height() - 72);
}
}, this));
}
};
return JSNLangEditor;
});