芝麻web文件管理V1.00
编辑当前文件:/home/projzpbv/www/wp-content/themes/cleanora/framework/admin/inc/js/jquery.cmsmastersLightbox.js
/** * @package WordPress * @subpackage Cleanora * @version 1.0.7 * * Icon Lightbox jQuery Plugin * Created by CMSMasters * */ (function ($) { "use strict"; var CmsmastersLightbox = function (element, parameters) { var defaults = { closeButtons : true, backdropClose : true, closeButtonText : cmsmasters_admin_lightbox.cancel, saveButtonText : cmsmasters_admin_lightbox.insert, boxTitle : false, loadURL : false, loadData : false }, obj = this, privateMethods = {}; // Global Methods obj.methods = { init : function () { obj.methods.options = $.extend({}, defaults, parameters); obj.methods.setVars(); }, setVars : function () { obj.methods.el = $(element); obj.methods.body = $('body'); obj.methods.lbHTML = '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
'; }, resetVars : function () { obj.methods.uniqID = privateMethods.getUniqID(); obj.methods.lbStructure = $(obj.methods.lbHTML); obj.methods.back = obj.methods.lbStructure.find('.cmsmastersLightBoxBack'); obj.methods.cont = obj.methods.lbStructure.find('.cmsmastersLightBoxCont'); obj.methods.contIn = obj.methods.cont.find('.cmsmastersLightBoxContIn'); obj.methods.contInTop = obj.methods.contIn.find('.cmsmastersLightBoxContInTop'); obj.methods.contInMid = obj.methods.contIn.find('.cmsmastersLightBoxContInMid'); obj.methods.contInBot = obj.methods.contIn.find('.cmsmastersLightBoxContInBot'); obj.methods.icons = cmsmasters_composer_icons(); obj.methods.fontsCount = 0; obj.methods.container = ''; obj.methods.firstField = ''; obj.methods.buildObj(); privateMethods.attachEvents(); }, buildObj : function () { if (obj.methods.options.closeButtons) { obj.methods.contInTop.append('
'); obj.methods.lbCloseBut = obj.methods.contInTop.find('.cmsmastersLightBoxClose'); } obj.methods.contInTop.append('
' + cmsmasters_admin_lightbox.choose_icon + '
'); obj.methods.lbTitle = obj.methods.contInTop.find('h2'); obj.methods.lbTitleText = obj.methods.lbTitle.text(); if (obj.methods.options.closeButtons) { obj.methods.contInBot.append('
' + obj.methods.options.closeButtonText + '
'); obj.methods.lbCancelBut = obj.methods.contInBot.find('.cmsmastersLightBoxCancel'); } obj.methods.contInBot.append('
' + obj.methods.options.saveButtonText + '
'); obj.methods.lbSaveBut = obj.methods.contInBot.find('.cmsmastersLightBoxSave'); }, openLightbox : function (data) { obj.methods.resetVars(); obj.methods.lbStructure.attr( { id : 'cmsmastersLightBox_' + obj.methods.uniqID, 'data-id' : obj.methods.uniqID, 'data-index' : data.index } ); if (privateMethods.getWinWidth() < 930) { obj.methods.cont.addClass('resp'); } obj.methods.body.append(obj.methods.lbStructure); obj.methods.body.css( { overflow : 'hidden' } ).find('#cmsmastersLightBox_' + obj.methods.uniqID).addClass('showBox preloadBox'); if (obj.methods.lbSaveBut.is(':hidden')) { obj.methods.lbSaveBut.removeAttr('style'); } obj.methods.container += obj.methods.generateContainer(data.val); obj.methods.firstField += obj.methods.generateFirstField(data.val); obj.methods.body.find('#cmsmastersLightBox_' + obj.methods.uniqID).find('.cmsmastersLightBoxContInMid').append(obj.methods.container); obj.methods.body.find('#cmsmastersLightBox_' + obj.methods.uniqID).find('input.cmsmasters_icon_value').before(obj.methods.firstField); for (var font in obj.methods.icons) { if (obj.methods.fontsCount !== 0) { obj.methods.generateField(font, data.val); } obj.methods.fontsCount += 1; } obj.methods.body.find('#cmsmastersLightBox_' + obj.methods.uniqID).removeClass('preloadBox'); setTimeout(function () { privateMethods.attachGeneratedEvents(); }, 100); }, generateContainer : function (val) { var fieldContent = ''; fieldContent += '
' + '
'; fieldContent += '
' + '
' + cmsmasters_admin_lightbox.deselect + '
' + '
' + '
' + cmsmasters_admin_lightbox.find_icons + ':
(' + cmsmasters_admin_lightbox.min_length + ')
' + '
' + '
' + '
'; fieldContent += '
' + cmsmasters_admin_lightbox.choose_font + ':
' + '
'; for (var font in obj.methods.icons) { fieldContent += '
' + font.slice(0, 1).toUpperCase() + font.slice(1) + '
'; } fieldContent += '
'; fieldContent += '
' + '
'; fieldContent += '
' + '
' + '
'; return fieldContent; }, generateFirstField : function (val) { var fieldContent = '', counter = 0; for (var font in obj.methods.icons) { if (counter === 0) { fieldContent += '
' + '
' + font.slice(0, 1).toUpperCase() + font.slice(1) + '
' + '
'; for (var k in obj.methods.icons[font]) { fieldContent += '
'; } fieldContent += '
' + '
'; } counter += 1; } return fieldContent; }, generateField : function (font, val) { var fieldContent = ''; fieldContent += '
' + '
' + font.slice(0, 1).toUpperCase() + font.slice(1) + '
' + '
'; for (var k in obj.methods.icons[font]) { fieldContent += '
'; } fieldContent += '
' + '
'; obj.methods.body.find('#cmsmastersLightBox_' + obj.methods.uniqID).find('input.cmsmasters_icon_value').before(fieldContent); }, saveContent : function (id) { var icon_value = ''; obj.methods.body.find('#cmsmastersLightBox_' + id).find('.cmsmastersLightBoxContInMid > div').each(function () { if ($(this).is(':visible')) { var fieldID = $(this).data('id'), fieldName = fieldID.replace('_' + id, ''); if ($(this).find('> .cmsmasters_field #' + fieldID).val() !== '') { icon_value += $(this).find('> .cmsmasters_field #' + fieldID).val(); } } } ); setTimeout(function () { privateMethods.loadContent(icon_value, id); }, 150); }, closeLightbox : function (id) { obj.methods.body.find('#' + id).removeClass('showBox'); if (obj.methods.body.find('.cmsmastersLightBoxOut').length < 2) { obj.methods.body.css( { overflow : 'auto' } ); } if (obj.methods.body.find('.cmsmastersLightBoxOut').length > 1) { obj.methods.uniqID = obj.methods.body.find('.cmsmastersLightBoxOut').eq(-2).data('id'); } setTimeout(function () { privateMethods.destroyLightbox(id); }, 150); } }; // Private Methods privateMethods = { attachEvents : function () { obj.methods.lbCloseBut.on('click', function () { var id = privateMethods.getLbID(this); obj.methods.body.find('#' + id).addClass('preloadBox'); obj.methods.closeLightbox(id); return false; } ); obj.methods.lbCancelBut.on('click', function () { var id = privateMethods.getLbID(this); obj.methods.body.find('#' + id).addClass('preloadBox'); obj.methods.closeLightbox(id); return false; } ); if (obj.methods.options.backdropClose) { obj.methods.back.on('click', function () { var id = privateMethods.getLbID(this); obj.methods.body.find('#' + id).addClass('preloadBox'); obj.methods.closeLightbox(id); return false; } ); } obj.methods.lbSaveBut.on('click', function () { obj.methods.saveContent($(this).parents('.cmsmastersLightBoxOut').data('id')); return false; } ); $(window).on('resize', function () { if (privateMethods.getWinWidth() < 930) { obj.methods.cont.addClass('resp'); } else if (obj.methods.cont.hasClass('resp')) { obj.methods.cont.removeClass('resp'); } } ); }, loadContent : function (data, id) { var idx = obj.methods.body.find('#cmsmastersLightBox_' + id).data('index').toString(), social_container = $('#' + idx).parents('div').eq(0).find('.icon_upload_link'), contact_info_container = $('#' + idx).parents('div').eq(0).find('.contact_info_upload_link'); if (typeof idx === 'string') { $('#' + idx).val(data).trigger('change'); if (data !== '') { $('#' + idx + '_icon').attr('class', data).show(); $('#' + idx).parent().find('.cmsmasters_remove_icon').show(); social_container.show(); if (social_container.nextAll('input.button').eq(1).is(':not(:visible)')) { social_container.nextAll('input.button').eq(0).show(); } contact_info_container.show(); if (contact_info_container.nextAll('input.button').eq(1).is(':not(:visible)')) { contact_info_container.nextAll('input.button').eq(0).show(); } } else { $('#' + idx + '_icon').removeAttr('class').hide(); $('#' + idx).parent().find('.cmsmasters_remove_icon').trigger('click'); } } else { alert(cmsmasters_admin_lightbox.error_on_page); return false; } obj.methods.body.find('#' + id).addClass('preloadBox'); obj.methods.closeLightbox('cmsmastersLightBox_' + id); }, destroyLightbox : function (id) { obj.methods.body.find('#' + id).find('.cmsmastersLightBoxContInMid > div').remove(); obj.methods.body.find('#' + id).remove(); }, attachGeneratedEvents : function () { // Icons Filter $('#cmsmastersLightBox_' + obj.methods.uniqID + ' .cmsmasters_icon_search > input[type="text"]').on('input', function () { var val = $(this).val(), parent = $(this).parents('.icons_list_parent'), font = parent.find('.cmsmasters_icon_font_select').val(); parent.find('.cmsmasters_icon_font').hide(); if (val !== '' && val.length > 1) { parent.find('ul > li > span').each(function () { var code = $(this).data('code'); if (code.replace(val, '') !== code) { $(this).parent().removeAttr('style'); } else { $(this).parent().css('display', 'none'); } } ); parent.find('.cmsmasters_icon_font').show(); } else { parent.find('.cmsmasters_icon_font_' + font).show(); parent.find('ul > li').removeAttr('style'); } } ); // Icon Font Choose $('#cmsmastersLightBox_' + obj.methods.uniqID + ' .cmsmasters_icon_font_select').on('change', function () { var font = $(this).val(), parent = $(this).parents('.icons_list_parent'); parent.find('.cmsmasters_icon_font').hide(); parent.find('.cmsmasters_icon_font_' + font).show(); } ); // Icon Choose $('#cmsmastersLightBox_' + obj.methods.uniqID + ' .icons_list_parent ul > li > span').on('click', function () { var parentLi = $(this).parent(), li = $(this).parents('.icons_list_parent').find('ul > li'), cancel = $(this).parents('.icons_list_parent').find('> a.cmsmasters_icon_cancel'), hidden = $(this).parents('.icons_list_parent').find('> input.cmsmasters_icon_value'); if (parentLi.hasClass('active')) { parentLi.removeClass('active'); hidden.val(''); cancel.css('display', 'none'); } else { li.removeClass('active'); parentLi.addClass('active'); hidden.val($(this).attr('class')); cancel.removeAttr('style'); } return false; } ); // Icon Cancel $('#cmsmastersLightBox_' + obj.methods.uniqID + ' .icons_list_parent > a.cmsmasters_icon_cancel').on('click', function () { var li = $(this).parents('.icons_list_parent').find('ul > li'), hidden = $(this).parents('.icons_list_parent').find('> input.cmsmasters_icon_value'); li.removeClass('active'); hidden.val(''); $(this).css('display', 'none'); return false; } ); }, getLbID : function (el) { return $(el).parents('.cmsmastersLightBoxOut').attr('id'); }, getUniqID : function () { return (new Date().getTime()).toString(16); }, getWinWidth : function () { return $(window).width(); } }; obj.methods.init(); }; // Plugin Start $.fn.cmsmastersLightbox = function (parameters) { return this.each(function () { if ($(this).data('cmsmastersLightbox')) { return; } var cmsmastersLightbox = new CmsmastersLightbox(this, parameters); $(this).data('cmsmastersLightbox', cmsmastersLightbox); } ); }; } )(jQuery);