www.gusucode.com > JTBCPHP网站内容管理系统 v3.0.1源码程序 > PHP_JTBC_CMS_v3.0.1.2/console/common/assets/js/jtbc.console.js
var jtbc = window.jtbc || {}; jtbc.console = { obj: null, para: [], parent: jtbc, root: null, manageURL: 'manage.php', managerapiURL: 'managerapi.php', materialFolder: 'universal/material/', bindEventsByMode: function(argObj) { var tthis = this; var obj = argObj; obj.find('*[mode]').each(function(){ var thisObj = $(this); if (thisObj.attr('modebinded') != 'true') { thisObj.attr('modebinded', 'true'); if (thisObj.attr('mode') == 'alonetips') { if (thisObj.parent().find(this.tagName).length == thisObj.parent().find(this.tagName + '.hide').length) thisObj.removeClass('hide'); } else if (thisObj.attr('mode') == 'ajaxpost') { thisObj.find('button.submit').on('click', function(){ var btnObj = $(this); thisObj.find('textarea.editor').each(function(){ try { var myEditorObj = $(this); var myCurrentEditorIndex = myEditorObj.attr('editor-index'); var myEditor = tthis.para['editor-instance-' + myCurrentEditorIndex]; myEditorObj.val(tthis.parent.editor.getHTML(myEditor, 'content')); } catch(e){}; }); if (!btnObj.hasClass('lock')) { btnObj.addClass('lock'); btnObj.trigger('before'); var url = tthis.para['current-main-fileurl'] + thisObj.attr('action'); $.post(url, thisObj.serialize(), function(data){ var dataObj = $(data); btnObj.attr('msg', dataObj.find('result').attr('message')).removeClass('lock'); if (dataObj.find('result').attr('status') == '0') { if (btnObj.attr('message') == 'custom') btnObj.trigger('message'); else { var msgObj = thisObj.find('.form_tips').html('').append('<ul></ul>').find('ul'); var message = btnObj.attr('msg').split('|'); for (var i in message) msgObj.append('<li>' + message[i] + '</li>'); }; } else if (dataObj.find('result').attr('status') == '1') { if (btnObj.attr('done') == 'custom') btnObj.trigger('done'); else if (typeof(btnObj.attr('doneclick')) != 'undefined') tthis.obj.find(btnObj.attr('doneclick')).trigger('click'); else thisObj.find('.form_tips').html('<em>' + btnObj.attr('msg') + '</em>'); }; }); }; }); } else if (thisObj.attr('mode') == 'att') { var myObj = thisObj.parent(); var myEditorString = thisObj.attr('editor'); if (typeof(myEditorString) != 'undefined') { var myEditorObj = thisObj.parent().parent().parent().find(myEditorString); if (myEditorObj.length == 1) { var myCurrentEditorIndex = myEditorObj.attr('editor-index'); var myEditor = tthis.para['editor-instance-' + myCurrentEditorIndex]; tthis.lib.initAttEvents(myObj, function(argContent){ tthis.parent.editor.insertHTML(myEditor, 'content', argContent); }); } else tthis.lib.initAttEvents(myObj); } else tthis.lib.initAttEvents(myObj); } else if (thisObj.attr('mode') == 'categoryfilter') { tthis.lib.initCategoryFilterEvents(thisObj); } else if (thisObj.attr('mode') == 'confirmurlexec') { thisObj.on('click', function(){ var myObj = $(this); tthis.lib.popupConfirm(myObj.attr('confirm_text'), myObj.attr('confirm_b2'), myObj.attr('confirm_b3'), function(argObj){ var btnObj = argObj; var url = tthis.para['current-main-fileurl'] + myObj.attr('urlexec'); $.get(url, function(data){ tthis.loadMainURLRefresh(); btnObj.parent().find('button.b3').click(); }); }); }); } else if (thisObj.attr('mode') == 'batchswitch') { tthis.lib.initBatchSwitchEvents(thisObj); } else if (thisObj.attr('mode') == 'editor') { var myEditorIndex = tthis.para['editor-index']; if (isNaN(myEditorIndex)) myEditorIndex = 0; var myCurrentEditorIndex = myEditorIndex + 1; thisObj.attr('editor-index', myCurrentEditorIndex); tthis.para['editor-index'] = myCurrentEditorIndex; tthis.para['editor-instance-' + myCurrentEditorIndex] = tthis.parent.editor.replace(thisObj.get(0)); } else if (thisObj.attr('mode') == 'highlightline') { thisObj.on('click', function(){ var myObj = $(this); if (this.checked) myObj.parent().parent().parent().addClass('selected'); else myObj.parent().parent().parent().removeClass('selected'); }); } else if (thisObj.attr('mode') == 'highlightlineall') { thisObj.on('click', function(){ var myObj = $(this); var myForObj = $('input[name=\'' + myObj.attr('forname') + '\']'); if (this.checked) { myForObj.each(function(){ if (!this.checked) this.click(); }); } else { myForObj.each(function(){ if (this.checked) this.click(); }); }; }); } else if (thisObj.attr('mode') == 'pagigo') { thisObj.on('click', function(){ var myObj = $(this); var baseLink = myObj.attr('baselink'); var myLink = baseLink.replace(/(\[\~page\])/g, myObj.parent().find('input.pagenum').val()); tthis.loadMainURL(tthis.para['current-main-fileurl'] + myLink); }); } else if (thisObj.attr('mode') == 'pitchon') { var pitchon = thisObj.attr('upitchon') || thisObj.attr('pitchon'); if (pitchon) thisObj.find(pitchon).addClass('on'); } else if (thisObj.attr('mode') == 'inputswitch') { if (thisObj.attr('bind') != '1') { thisObj.attr('bind', '1'); thisObj.find('b').on('mouseup', function(){ thisObj.addClass('switch-1'); thisObj.find('input.val').val('1'); }); thisObj.find('u').on('mouseup', function(){ thisObj.removeClass('switch-1'); thisObj.find('input.val').val('0'); }); }; } else if (thisObj.attr('mode') == 'searchbox') { tthis.lib.initSearchBoxEvents(thisObj); } else if (thisObj.attr('mode') == 'shortcut') { var pointObj = thisObj.parent(); if (thisObj.attr('parent') == '2') pointObj = pointObj.parent(); else if (thisObj.attr('parent') == '3') pointObj = pointObj.parent().parent(); pointObj = pointObj.find(thisObj.attr('shortcut')); if (!pointObj.hasClass('show-0')) { thisObj.addClass('hand').on('click', function(){ pointObj.trigger('click'); }); }; } else if (thisObj.attr('mode') == 'singleselect') { thisObj.find(thisObj.attr('childtag')).click(function(){ var childObj = $(this); childObj.parent().find(this.tagName).removeClass('on').eq(childObj.index()).addClass('on'); }); } else if (thisObj.attr('mode') == 'selectoption') { thisObj.val(thisObj.attr('val')); } else if (thisObj.attr('mode') == 'upfile') { tthis.lib.initUpFileEvents(thisObj); }; }; }); }, insertHTML: function(argObj, argHTML) { var tthis = this; var obj = argObj; var html = argHTML; obj.html(html).find('dfn').each(function(){ var myObj = $(this); if (myObj.attr('url')) { if (myObj.attr('once') == 'true') { if (tthis.para['dfn-once-' + myObj.attr('onceid')] != 'done') { tthis.para['dfn-once-' + myObj.attr('onceid')] = 'done'; tthis.root.prepend('<script type="text/javascript" src="' + tthis.para['root'] + myObj.attr('url') + '"></script>'); }; } else obj.append('<script type="text/javascript" src="' + tthis.para['root'] + myObj.attr('url') + '"></script>'); } else if (myObj.attr('cssurl')) obj.append('<link rel="stylesheet" href="' + tthis.para['root'] + myObj.attr('cssurl') + '" />'); else if (myObj.attr('call')) eval(myObj.attr('call')); }); tthis.bindEventsByMode(obj); }, rsetWidthAndHeight: function() { var tthis = this; var windowHeight = $(window).height(); tthis.obj.find('.container').css({'height': (windowHeight - tthis.obj.find('.topbar').height()) + 'px'}); }, loadHTML: function() { var tthis = this; $.get(tthis.manageURL, function(data){ var dataObj = $(data); if (dataObj.find('result').attr('status') == '1') tthis.insertHTML(tthis.root, dataObj.find('result').text()); }); }, loadMainURL: function(argUrl) { var tthis = this; var myURL = argUrl; var mainObj = tthis.obj.find('.container').find('.main'); var loadedCallBack = function() { mainObj.find('nav').find('u').on('click', function(){ var thisObj = $(this); var myLink = thisObj.attr('link'); var myGenre = thisObj.attr('genre'); if (myLink) { if (myGenre == '|self|') tthis.loadMainURL(myLink); else tthis.loadMainURL(tthis.para['root'] + thisObj.attr('genre') + '/' + thisObj.attr('link')); }; }); mainObj.find('a.link').on('click', function(){ var thisObj = $(this); var managerObj = mainObj.find('.manager'); if (thisObj.attr('link')) tthis.loadMainURL(tthis.para['current-main-fileurl'] + thisObj.attr('link')); }); tthis.obj.find('nav').on('selectleftmenu', function(){ var thisObj = $(this); var selGenre = thisObj.attr('genre'); tthis.obj.find('.leftmenu').find('li').removeClass('on').find('span.tit').removeClass('on'); if (selGenre) { var selGenreObj = tthis.obj.find('.leftmenu').find('span[genre=\'' + selGenre + '\']'); if (selGenreObj.length == 1) { if (!tthis.obj.find('.leftmenu').hasClass('min')) { selGenreObj.addClass('on'); tthis.obj.find('.leftmenu').find('li').has(selGenreObj).addClass('on').find('span.tit').addClass('open'); tthis.obj.find('.leftmenu').find('dl').has(selGenreObj).addClass('open').find('span.tit').addClass('open'); }; }; }; }).trigger('selectleftmenu'); }; if (tthis.para['load-main-url-lock'] != true) { tthis.para['load-main-url-lock'] = true; tthis.para['load-main-url-waiting'] = setTimeout(function(){ mainObj.parent().find('.waiting').addClass('on'); }, 500); $.ajax({ url: myURL, type: 'get', success: function(data) { var dataObj = $(data); if (dataObj.find('result').attr('status') == '1') { var showURL = myURL; var rootPath = tthis.para['root']; if (showURL.substr(0, rootPath.length) == rootPath) showURL = '/' + showURL.substr(rootPath.length); tthis.para['load-main-url'] = myURL; location.href = '#' + showURL; tthis.insertHTML(mainObj, dataObj.find('result').text()); loadedCallBack(); tthis.para['load-main-url-lock'] = false; clearTimeout(tthis.para['load-main-url-waiting']); mainObj.parent().find('.waiting').removeClass('on'); } else this.error(); }, error: function() { var errorURL = this.url; tthis.para['load-main-url-lock'] = false; tthis.lib.popupAlert(mainObj.attr('urlerror') + '<em><a href="' + tthis.parent.htmlEncode(errorURL) + '" target="_blank">' + tthis.parent.htmlEncode(errorURL) + '</a></em>', mainObj.attr('ikown'), function(){ clearTimeout(tthis.para['load-main-url-waiting']); mainObj.parent().find('.waiting').removeClass('on'); }); } }); }; }, loadMainURLRefresh: function() { var tthis = this; tthis.loadMainURL(tthis.para['load-main-url']); }, initConsole: function() { var tthis = this; tthis.obj = tthis.root.find('.console'); tthis.obj.find('.topbar').find('span.menu').click(function(){ var thisObj = $(this); if (thisObj.parent().hasClass('min')) { thisObj.parent().removeClass('min'); tthis.obj.find('.leftmenu').removeClass('min'); tthis.obj.find('.leftmenu').find('span.tit.t1').removeAttr('title'); tthis.obj.find('nav').trigger('selectleftmenu'); } else { thisObj.parent().addClass('min'); tthis.obj.find('.leftmenu').addClass('min').find('li').removeClass('on'); tthis.obj.find('.leftmenu').find('span.tit').removeClass('open'); tthis.obj.find('.leftmenu').find('dl.open').removeClass('open'); tthis.obj.find('.leftmenu').find('span.tit.t1').each(function(){ $(this).attr('title', $(this).attr('mytitle')); }); }; }); tthis.obj.find('.topbar').find('account').find('li.l1').click(function(){ var thisObj = $(this); if (thisObj.attr('loading') != 'true') { thisObj.attr('loading', 'true'); $.get(tthis.manageURL + '?type=modifypassword', function(data){ var dataObj = $(data); if (dataObj.find('result').attr('status') == '1') { var pageObj = tthis.lib.popupPage(dataObj.find('result').text()); var tinyformObj = pageObj.find('.tinyform'); tinyformObj.find('button.b2').click(function(){ var thisObj = $(this); if (!thisObj.hasClass('lock')) { thisObj.addClass('lock'); var formObj = thisObj.parent().parent(); var url = tthis.manageURL + formObj.attr('action'); $.post(url, formObj.serialize(), function(data){ var dataObj = $(data); thisObj.removeClass('lock'); formObj.find('span.tips').addClass('h').html(dataObj.find('result').attr('message')); if (dataObj.find('result').attr('status') == '1') formObj.each(function(){ this.reset(); }); }); }; }); }; thisObj.attr('loading', 'false'); }); }; }); tthis.obj.find('.topbar').find('account').find('li.l2').click(function(){ tthis.obj.find('.topbar').find('logout').trigger('click'); }); tthis.obj.find('.topbar').find('lang').each(function(){ var thisObj = $(this); $.get(tthis.manageURL + '?type=getlang', function(data){ var dataObj = $(data); if (dataObj.find('result').attr('status') == '1') { thisObj.html(dataObj.find('result').text()); thisObj.find('li').on('click', function(){ var thisObj = $(this); if (thisObj.attr('loading') != 'true') { thisObj.attr('loading', 'true'); $.get(tthis.manageURL + '?type=action&action=setlang&lang=' + encodeURIComponent(thisObj.attr('val')), function(data){ var dataObj = $(data); thisObj.attr('loading', 'false'); if (dataObj.find('result').attr('status') == '1') { tthis.obj.find('nav').find('u:last').trigger('click'); thisObj.parent().parent().find('b').find('flag').attr('class', 'f' + thisObj.attr('val')).nextAll('span').html(tthis.parent.htmlEncode(thisObj.attr('text'))); }; }); }; }); }; }); }); tthis.obj.find('.topbar').find('logout').click(function(){ var thisObj = $(this); tthis.lib.popupConfirm(thisObj.attr('confirm_text'), thisObj.attr('confirm_b2'), thisObj.attr('confirm_b3'), function(){ $.get(tthis.manageURL + '?type=action&action=logout', function(data){ location.reload(); }); }); }); tthis.obj.find('.leftmenu').find('span.tit').click(function(){ var thisObj = $(this); if (!tthis.obj.find('.leftmenu').hasClass('min')) { if (thisObj.next().hasClass('open')) { thisObj.removeClass('open'); thisObj.next().removeClass('open'); } else { thisObj.addClass('open'); thisObj.next().addClass('open'); }; }; if (thisObj.attr('link')) tthis.loadMainURL(tthis.para['root'] + thisObj.attr('genre') + '/' + thisObj.attr('link')); }); var defURL = tthis.obj.find('.container').find('.main').attr('def'); var getLocURL = function() { var locURL = ''; if (location.href.indexOf('#') != -1) { locURL = location.href.substr(location.href.indexOf('#') + 1); if (locURL.substr(0, 1) == '/') locURL = tthis.para['root'] + locURL.substr(1); }; return locURL; }; tthis.loadMainURL(getLocURL() || defURL); tthis.rsetWidthAndHeight(); $(window).on('resize', function(){ tthis.rsetWidthAndHeight(); }); $(window).on('hashchange', function(){ var locURL = getLocURL(); if (locURL != '' && locURL != tthis.para['load-main-url']) tthis.loadMainURL(locURL); }); }, initLogin: function() { var tthis = this; var myObj = $('.login'); myObj.find('.button .b1').click(function(){ var thisObj = $(this); if (!thisObj.hasClass('lock')) { thisObj.addClass('lock'); myObj.find('.message').html(thisObj.attr('loading')); var formValue = myObj.find('form').serialize(); $.post(tthis.manageURL + '?type=action&action=login', formValue, function(data){ var dataObj = $(data); thisObj.removeClass('lock'); if (dataObj.find('result').attr('status') != '1') { myObj.find('.message').html(dataObj.find('result').attr('message')); } else { tthis.loadHTML(); }; }); }; }); }, ready: function() { var tthis = this; tthis.root = $('#console'); tthis.para['root'] = tthis.root.attr('root'); tthis.loadHTML(); } }; jtbc.console.lib = { para: [], parent: jtbc.console, dragSort: function(argObj, argChild, argDragName, argCallBack, argCallBackDone) { var tthis = this; var myObj = argObj; var myChild = argChild; var myDragName = argDragName; var myCallBack = argCallBack; var myCallBackdDone = argCallBackDone; myObj.on({ mousemove: function(ev) { var thisObj = $(this); var noselectObj = thisObj.find(myChild + '.noselect'); if (noselectObj.length == 1) { var targetObj = null; if (ev.pageY < noselectObj.offset().top || ev.pageY > (noselectObj.offset().top + noselectObj.height())) { thisObj.find(myChild).each(function(){ var myLiObj = $(this); if (ev.pageY < (myLiObj.offset().top + myLiObj.height())) { if (!myLiObj.hasClass('.noselect')) targetObj = myLiObj; return false; }; }); }; if (targetObj != null) { thisObj.attr('change', 'true'); if (targetObj.index() < noselectObj.index()) targetObj.before(noselectObj); else targetObj.after(noselectObj); myCallBack(); }; }; }, mouseup: function() { var thisObj = $(this); $(document.body).removeClass('noselect'); thisObj.find(myChild + '.noselect').removeClass('noselect'); if (thisObj.attr('change') == 'true') { myCallBackdDone(); thisObj.attr('change', 'false'); }; }, mouseover: function() { var thisObj = $(this); clearTimeout(tthis.para[thisObj.attr('ds')]); }, mouseout: function() { var thisObj = $(this); tthis.para[thisObj.attr('ds')] = setTimeout(function(){ thisObj.trigger('mouseup'); }, 100); } }); myObj.on('mousedown', myChild + ' ' + myDragName, function(){ var thisObj = $(this); var itemObj = thisObj.parent(); myObj.attr('ds', 'rnd' + Math.floor(Math.random() * 1000000 + 1000000)); $(document.body).addClass('noselect'); itemObj.find(myChild).removeClass('noselect'); itemObj.addClass('noselect'); }); }, fileUp: function(argObj, argFileUpObj, argFileUpURL, argCallBack, argCallBackItem) { var myObj = argObj; var fileUpObj = argFileUpObj; var fileUpURL = argFileUpURL; var callback = argCallBack; var callbackItem = argCallBackItem; var fileupload = { files: null, filecount: 0, fileindex: 0, formatFileInfo: function(argFile) { var fileSize = 0; var file = argFile; if (file.size > 1024 * 1024) fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB'; else if (file.size > 1024) fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB'; else fileSize = file.size + 'B'; var fileItem = $('<div class="item"></div>'); fileItem.append('<span class="filename">' + file.name + '</span>'); fileItem.append('<span class="filesize">' + fileSize + '</span>'); fileItem.append('<span class="bar"></span>'); return fileItem; }, uploadNextFile: function() { var index = this.fileindex; var myFormData = new FormData(); myFormData.append('file', this.files[index]); var myXMLHttpRequest = new XMLHttpRequest(); myXMLHttpRequest.upload.addEventListener('progress', function(evt){ fileUpObj.find('div.item').eq(fileupload.fileindex).find('span.bar').css({'width': Math.round(evt.loaded * 100 / evt.total) + '%'}); }, false); myXMLHttpRequest.addEventListener('load', function(evt){ var upSucceed = false; var upMessage = ''; var resultObj = $(evt.target.responseXML); if (resultObj.find('result').attr('status') == '1') upSucceed = true; else if (resultObj.find('result').attr('status') == '0') upMessage = resultObj.find('result').attr('message'); if (upSucceed == false) { fileUpObj.find('div.item').eq(fileupload.fileindex).addClass('error').attr('title', upMessage).on('dblclick', function(){ $(this).fadeOut(); }); }; if (typeof(callbackItem) == 'function') callbackItem(upSucceed, resultObj, fileupload.fileindex); fileupload.fileindex += 1; if (fileupload.fileindex < fileupload.filecount) fileupload.uploadNextFile(); else callback(); }, false); myXMLHttpRequest.open('POST', fileUpURL); myXMLHttpRequest.send(myFormData); }, startUpload: function() { this.fileindex = 0; this.uploadNextFile(); } }; if (myObj.files.length >= 1) { fileupload.files = myObj.files; fileupload.filecount = myObj.files.length; for (var k = 0; k < myObj.files.length; k ++) { fileUpObj.append(fileupload.formatFileInfo(myObj.files[k])); }; fileupload.startUpload(); }; }, fileUpSingle: function(argObj, argFileUpURL, argCallBack) { var myObj = argObj; var fileUpURL = argFileUpURL; var callback = argCallBack; if (myObj.files.length == 1) { var file = myObj.files[0]; var myFormData = new FormData(); myFormData.append('file', file); var myXMLHttpRequest = new XMLHttpRequest(); myXMLHttpRequest.addEventListener('load', function(evt){ var dataObj = $(evt.target.responseXML); callback(dataObj); }, false); myXMLHttpRequest.open('POST', fileUpURL); myXMLHttpRequest.send(myFormData); }; }, getCheckBoxValue: function(argObj) { var value = ''; var myObj = argObj; myObj.each(function(){ value += $(this).val() + ','; }); if (value.length > 0) value = value.substring(0, value.length - 1); return value; }, initAttEvents: function(argObj, argInsertFun) { var tthis = this; var myObj = argObj; var canInsert = true; var insertFun = argInsertFun; var attObj = myObj.find('.att'); var attValObj = attObj.find('input[name=\'att\']'); if (typeof(insertFun) == 'undefined') canInsert = false; var resetAttInputVal = function() { var attArray = new Array(); attObj.find('ul').find('li').each(function(){ var thisObj = $(this); if (!thisObj.hasClass('del')) { attArray[attArray.length] = thisObj.attr('para'); }; }); attValObj.val(JSON.stringify(attArray)); }; var appendNewAttLi = function(argPara) { var para = argPara; var paraArray = JSON.parse(para); var ulObj = attObj.find('ul'); ulObj.find('li.null').remove(); ulObj.append('<li para="' + tthis.parent.parent.htmlEncode(para) + '"><em class="filetype move ' + tthis.parent.parent.htmlEncode(paraArray['filetype']) + '">' + tthis.parent.parent.htmlEncode(paraArray['filetype']) + '</em><span class="tit">' + tthis.parent.parent.htmlEncode(paraArray['filename']) + '</span><span class="size">' + tthis.parent.parent.htmlEncode(paraArray['filesizetext']) + '</span><icons><icon class="insert" title="' + ulObj.attr('text-insert') + '"></icon><icon class="delete" title="' + ulObj.attr('text-delete') + '"></icon></icons></li>'); if (canInsert == false) ulObj.find('icon.insert').remove(); resetAttInputVal(); }; var initAttValLi = function(){ var attValObjValue = attValObj.val(); if (attValObjValue) { allAttObj = JSON.parse(attValObjValue); for (var i in allAttObj) appendNewAttLi(allAttObj[i]); }; }(); tthis.dragSort(attObj.find('ul'), 'li', 'em.filetype', function(){ resetAttInputVal(); }); attObj.find('ul').on('click', 'li span.tit', function(){ var thisObj = $(this); var liObj = thisObj.parent(); var paraArray = JSON.parse(liObj.attr('para')); var filetype = paraArray['filetype']; var fileURL = paraArray['fileurl']; if (!tthis.parent.parent.isAbsoluteURL(fileURL)) fileURL = attObj.attr('folder') + fileURL; var pageObj = tthis.previewAtt(filetype, paraArray['filename'], fileURL, liObj.parent().attr('text-preview-link'), '1'); pageObj.find('input.title').on('input', function(){ paraArray['filename'] = $(this).val(); thisObj.html(tthis.parent.parent.htmlEncode(paraArray['filename'])); liObj.attr('para', JSON.stringify(paraArray)); resetAttInputVal(); }); }); attObj.find('ul').on('click', 'li icon.insert', function(){ var thisObj = $(this); var liObj = thisObj.parent().parent(); var paraArray = JSON.parse(liObj.attr('para')); var filetype = paraArray['filetype']; if (filetype == 'jpg' || filetype == 'gif' || filetype == 'png') { insertFun('<img src="' + tthis.parent.parent.htmlEncode(paraArray['fileurl']) + '" alt="" />'); } else { insertFun('<a href="' + tthis.parent.parent.htmlEncode(paraArray['fileurl']) + '" target="_blank">' + tthis.parent.parent.htmlEncode(paraArray['filename']) + '</a>'); }; }); attObj.find('ul').on('click', 'li icon.delete', function(){ var thisObj = $(this); var liObj = thisObj.parent().parent(); if (!liObj.hasClass('del')) liObj.addClass('del'); else liObj.removeClass('del'); resetAttInputVal(); }); attObj.find('div.icons').find('icon.db').on('click', function(){ var thisObj = $(this); tthis.loadSelectMaterialPage('multiple', function(argFileInfo){ var fileInfo = argFileInfo; var fileAry = JSON.parse(fileInfo); for (var i in fileAry) { var currentFile = JSON.parse(fileAry[i]); var currentFileURL = currentFile['fileurl']; if (!tthis.parent.parent.isAbsoluteURL(currentFileURL)) currentFile['fileurl'] = thisObj.attr('root') + tthis.parent.materialFolder + currentFileURL; appendNewAttLi(JSON.stringify(currentFile)); }; }); }); attObj.find('div.icons').find('icon.upload').on('click', function(){ var thisObj = $(this); if (!thisObj.hasClass('lock')) attObj.find('input.upload').trigger('click'); }); attObj.find('input.upload').on('change', function(){ var thisObj = $(this); var url = tthis.parent.para['current-main-fileurl'] + thisObj.attr('action'); if (thisObj.attr('uploading') != 'true') { thisObj.attr('uploading', 'true'); myObj.find('.fileup').find('.item').remove(); attObj.find('div.upload').addClass('lock'); tthis.fileUp(this, myObj.find('.fileup'), url, function(){ attObj.find('div.upload').removeClass('lock'); attObj.find('input.upload').attr('uploading', 'false').val(''); }, function(argUpSucceed, argUpResult, argFileIndex){ var upSucceed = argUpSucceed; var upResult = argUpResult; var fileIndex = argFileIndex; if (upSucceed == true) { var para = upResult.find('result').attr('para'); myObj.find('.fileup').find('.item').eq(fileIndex).fadeOut(); appendNewAttLi(para); }; }); }; }); }, initBatchSwitchEvents: function(argObj) { var tthis = this; var myObj = argObj; myObj.find('span.ok').click(function(){ var thisObj = $(this); var batch = thisObj.parent().find('select.batch').val(); if (batch != 'null') { tthis.popupConfirm(thisObj.attr('confirm_text'), thisObj.attr('confirm_b2'), thisObj.attr('confirm_b3'), function(argObj){ var btnObj = argObj; var ids = tthis.getCheckBoxValue(myObj.parent().parent().find('input.id:checked')); var url = tthis.parent.para['current-main-fileurl'] + '?type=action&action=batch'; url += '&batch=' + encodeURIComponent(batch) + '&ids=' + encodeURIComponent(ids); $.get(url, function(data){ tthis.parent.loadMainURLRefresh(); btnObj.parent().find('button.b3').click(); }); }); }; }); }, initCategoryFilterEvents: function(argObj) { var tthis = this; var myObj = argObj; myObj.find('icon.category').on('click', function(){ var thisObj = $(this); if (thisObj.attr('loading') != 'true') { thisObj.attr('loading', 'true'); var url = tthis.parent.para['current-main-fileurl'] + thisObj.attr('url') + '&fid=' + encodeURIComponent(thisObj.attr('fid')); $.get(url, function(data){ var dataObj = $(data); if (dataObj.find('result').attr('status') == '1') { thisObj.attr('loading', 'false'); var pageObj = tthis.parent.lib.popupPage(dataObj.find('result').text()); pageObj.find('ul.list').find('li:not(.alonetips)').on('click', function(){ var thisObj = $(this); pageObj.find('span.close').trigger('click'); tthis.parent.loadMainURL(tthis.parent.para['current-main-fileurl'] + thisObj.attr('link')); }); }; }); }; }); }, initUpFileEvents: function(argObj) { var tthis = this; var myObj = argObj; myObj.find('button.upbtn').click(function(){ var thisObj = $(this); if (!thisObj.hasClass('lock') && !thisObj.hasClass('show-0')) thisObj.parent().find('input.upfiles').trigger('click'); }); myObj.find('input.fileurl').on('dblclick', function(){ var thisObj = $(this); if (thisObj.val() && thisObj.attr('text-preview-title')) { tthis.previewAtt(null, thisObj.attr('text-preview-title'), tthis.parent.para['current-main-path'] + thisObj.val(), thisObj.attr('text-preview-link'), '0'); }; }); myObj.find('input.upfiles').on('change', function(){ var thisObj = $(this); var btnObj = thisObj.parent().find('button.upbtn'); var url = tthis.parent.para['current-main-fileurl'] + thisObj.attr('action'); if (thisObj.attr('uploading') != 'true') { thisObj.attr('uploading', 'true'); btnObj.addClass('lock').html(btnObj.attr('uploading')); tthis.fileUpSingle(this, url, function(result){ thisObj.val('').attr('uploading', 'false'); btnObj.removeClass('lock').html(btnObj.attr('text')); if (result.find('result').attr('status') == '1') { var upsourceArray = new Object(); var para = result.find('result').attr('para'); var paraArray = JSON.parse(para); upsourceArray.fileurl = paraArray['fileurl']; upsourceArray.uploadid = paraArray['uploadid']; thisObj.parent().find('input.upsource').val(JSON.stringify(upsourceArray)); thisObj.parent().find('input.fileurl').val(paraArray['fileurl']); } else { if (thisObj.attr('alert') == 'mini') tthis.popupMiniAlert(result.find('result').attr('message')); else tthis.popupAlert(result.find('result').attr('message'), thisObj.attr('text-ok'), function(){}); }; }); }; }); myObj.find('input.upsource').each(function(){ var thisObj = $(this); if (thisObj.val()) { var paraArray = JSON.parse(thisObj.val()); thisObj.parent().find('input.fileurl').val(paraArray['fileurl']); }; }); }, initSearchBoxEvents: function(argObj) { var tthis = this; var myObj = argObj; myObj.find('input.search').on('click', function(){ var thisObj = $(this); var parmname = thisObj.attr('parmname') || 'keyword'; var keyword = thisObj.parent().find('input.keyword').val(); var url = tthis.parent.para['current-main-fileurl'] + thisObj.parent().attr('action') + '&' + parmname + '=' + encodeURIComponent(keyword); tthis.parent.loadMainURL(url); }); }, initMainCommon: function(argObj) { var myObj = argObj; myObj.obj = myObj.parent.obj.find('.manager'); try { myObj.parent.parent.editor.baseHref = myObj.obj.attr('folder'); } catch(e){}; myObj.parent.para['current-main-path'] = myObj.parent.para['root'] + myObj.obj.attr('genre') + '/'; myObj.parent.para['current-main-fileurl'] = myObj.para['fileurl'] = myObj.parent.para['current-main-path'] + myObj.obj.attr('filename'); }, loadSelectMaterialPage: function(argMode, argCallBack) { var tthis = this; var mode = argMode; var callback = argCallBack; var url = tthis.parent.para['root'] + tthis.parent.materialFolder + tthis.parent.managerapiURL + '?type=list&mode=' + encodeURIComponent(mode); if (tthis.para['select-material-loading'] != true) { tthis.para['select-material-loading'] = true; $.get(url, function(data){ var dataObj = $(data); if (dataObj.find('result').attr('status') == '1') { var pageObj = tthis.popupPage(''); tthis.parent.insertHTML(pageObj.find('.content'), dataObj.find('result').text()); pageObj.on('reload', '.substance', function(){ var thisObj = $(this); if (tthis.para['select-material-loading'] != true) { tthis.para['select-material-loading'] = true; var reloadURL = url + '&get=reload&' + thisObj.attr('reloadpara'); $.get(reloadURL, function(data){ var dataObj = $(data); if (dataObj.find('result').attr('status') == '1') { tthis.parent.insertHTML(pageObj.find('.content'), dataObj.find('result').text()); tthis.para['select-material-loading'] = false; }; }); }; }); pageObj.on('click', 'button.b2', function(){ pageObj.find('span.close').trigger('click'); callback(pageObj.find('input[name=\'material\']').val()); }); tthis.para['select-material-loading'] = false; }; }); }; }, previewAtt: function(argFileType, argFileName, argFileURL, argPreviewLinkText, argMode) { var tthis = this; var fileType = argFileType; var fileName = argFileName; var fileURL = argFileURL; var previewLinkText = argPreviewLinkText; var mode = argMode; var previewHTML = ''; if (fileType == null) { var fileURLAry = fileURL.split('.'); fileType = fileURLAry[fileURLAry.length - 1]; }; if (mode == '0') previewHTML += '<div class="title">' + tthis.parent.parent.htmlEncode(fileName) + '</div>'; else if (mode == '1') previewHTML += '<div class="title"><input type="text" class="title" value="' + tthis.parent.parent.htmlEncode(fileName) + '" /></div>'; if (fileType == 'jpg' || fileType == 'gif' || fileType == 'png') { previewHTML += '<div class="attPreview"><img class="item" src="' + tthis.parent.parent.htmlEncode(fileURL) + '" /></div>'; } else { previewHTML += '<div class="attPreview"><a class="item" href="' + tthis.parent.parent.htmlEncode(fileURL) + '" target="_blank">' + tthis.parent.parent.htmlEncode(previewLinkText) + '</a></div>'; }; var pageObj = tthis.popupPage(previewHTML); return pageObj; }, popupAlert: function(argWord, argB2, argCallBack) { var tthis = this; var word = argWord; var b2 = argB2; var callback = argCallBack; var rootObj = tthis.parent.root; if (rootObj.find('.popup_mask').length == 0) rootObj.append('<div class="popup_mask"></div>'); if (rootObj.find('.popup_alert').length == 1) rootObj.find('.popup_alert').remove(); rootObj.append('<div class="popup_alert"><div class="title"></div><div class="word"></div><div class="button"><button class="b2">' + b2 + '</button></div></div>'); var alertObj = rootObj.find('.popup_alert'); var maskObj = rootObj.find('.popup_mask'); alertObj.find('.word').html(word); alertObj.find('button.b2').click(function(){ callback($(this)); maskObj.removeClass('on'); alertObj.removeClass('on'); }); tthis.para['popup-alert-timeout'] = setTimeout(function(){ maskObj.addClass('on'); alertObj.addClass('on'); }, 100); return alertObj; }, popupMiniAlert: function(argWord) { var tthis = this; var word = argWord; var rootObj = tthis.parent.root; rootObj.find('.popup_minialert').remove(); rootObj.append('<div class="popup_minialert"><div class="word"></div></div>'); var minialertObj = rootObj.find('.popup_minialert'); minialertObj.find('.word').html(word); clearTimeout(tthis.para['popup-minialert-timeout']); clearTimeout(tthis.para['popup-minialert-disappear-timeout']); tthis.para['popup-minialert-timeout'] = setTimeout(function(){ minialertObj.addClass('on'); }, 100); tthis.para['popup-minialert-disappear-timeout'] = setTimeout(function(){ minialertObj.removeClass('on'); }, 2000); return minialertObj; }, popupConfirm: function(argWord, argB2, argB3, argCallBack) { var tthis = this; var word = argWord; var b2 = argB2; var b3 = argB3; var callback = argCallBack; var rootObj = tthis.parent.root; if (rootObj.find('.popup_mask').length == 0) rootObj.append('<div class="popup_mask"></div>'); if (rootObj.find('.popup_confirm').length == 1) rootObj.find('.popup_confirm').remove(); rootObj.append('<div class="popup_confirm"><div class="title"></div><div class="word"></div><div class="button"><button class="b3">' + b3 + '</button><button class="b2">' + b2 + '</button></div></div>'); var confirmObj = rootObj.find('.popup_confirm'); var maskObj = rootObj.find('.popup_mask'); confirmObj.find('.word').html(word); confirmObj.find('button.b2').click(function(){ var thisObj = $(this); if (!thisObj.hasClass('lock')) { thisObj.addClass('lock'); callback($(this)); }; }); confirmObj.find('button.b3').click(function(){ maskObj.removeClass('on'); confirmObj.removeClass('on'); }); tthis.para['popup-confirm-timeout'] = setTimeout(function(){ maskObj.addClass('on'); confirmObj.addClass('on'); }, 100); return confirmObj; }, popupPage: function(argHTML) { var tthis = this; var html = argHTML; var rootObj = tthis.parent.root; if (rootObj.find('.popup_mask').length == 0) rootObj.append('<div class="popup_mask"></div>'); if (rootObj.find('.popup_page').length == 1) rootObj.find('.popup_page').remove(); rootObj.append('<div class="popup_page"><span class="close"></span><div class="content"></div></div>'); var pageObj = rootObj.find('.popup_page'); var maskObj = rootObj.find('.popup_mask'); pageObj.find('div.content').html(html); tthis.parent.bindEventsByMode(pageObj); pageObj.find('span.close').click(function(){ maskObj.removeClass('on'); pageObj.removeClass('on'); }); var checkPopupSize = function() { pageObj.css({'min-width': 'auto', 'min-height': 'auto'}); var myWidth = Math.round(pageObj.width()); var myHeight = Math.round(pageObj.height()); if (myWidth % 2 == 1) myWidth = myWidth + 1; if (myHeight % 2 == 1) myHeight = myHeight + 1; if (myWidth != 0 && myHeight != 0) pageObj.css({'min-width': myWidth + 'px', 'min-height': myHeight + 'px'}); requestAnimationFrame(checkPopupSize); }; tthis.para['popup-page-timeout'] = setTimeout(function(){ maskObj.addClass('on'); pageObj.addClass('on'); }, 100); checkPopupSize(); return pageObj; } };