1310 lines
56 KiB
JavaScript
1310 lines
56 KiB
JavaScript
|
(function($){
|
|||
|
$(document).ready(function(){
|
|||
|
// 侧栏菜单初始状态设置
|
|||
|
if(theme.minNav != '1')trigger_resizable(true);
|
|||
|
// 主题状态
|
|||
|
switch_mode();
|
|||
|
// 搜索模块
|
|||
|
intoSearch();
|
|||
|
// 粘性页脚
|
|||
|
stickFooter();
|
|||
|
// 网址块提示
|
|||
|
if(isPC()){ $('[data-toggle="tooltip"]').tooltip({trigger: 'hover'}); }else{ $('.qr-img[data-toggle="tooltip"]').tooltip({trigger: 'hover'}); }
|
|||
|
// 初始化tab滑块
|
|||
|
intoSlider();
|
|||
|
// 初始化theiaStickySidebar
|
|||
|
$('.sidebar').theiaStickySidebar({
|
|||
|
additionalMarginTop: 90,
|
|||
|
additionalMarginBottom: 20
|
|||
|
});
|
|||
|
// 初始化游客自定义数据
|
|||
|
/*if(theme.isCustomize == '1'){
|
|||
|
intoSites(false);
|
|||
|
intoSites(true);
|
|||
|
}*/
|
|||
|
});
|
|||
|
$(".panel-body.single img").each(function(i) {
|
|||
|
if (!this.parentNode.href) {
|
|||
|
if(theme.lazyload)
|
|||
|
$(this).wrap("<a href='" + $(this).data('src') + "' data-fancybox='fancybox' data-caption='" + this.alt + "'></a>")
|
|||
|
else
|
|||
|
$(this).wrap("<a href='" + this.src + "' data-fancybox='fancybox' data-caption='" + this.alt + "'></a>")
|
|||
|
}
|
|||
|
})
|
|||
|
// Enable/Disable Resizable Event
|
|||
|
var wid = 0;
|
|||
|
$(window).resize(function() {
|
|||
|
clearTimeout(wid);
|
|||
|
wid = setTimeout(go_resize, 200);
|
|||
|
});
|
|||
|
function go_resize() {
|
|||
|
stickFooter();
|
|||
|
//if(theme.minNav != '1'){
|
|||
|
trigger_resizable(false);
|
|||
|
//}
|
|||
|
}
|
|||
|
// count-a数字动画
|
|||
|
$('.count-a').each(function () {
|
|||
|
$(this).prop('Counter', 0).animate({
|
|||
|
Counter: $(this).text()
|
|||
|
}, {
|
|||
|
duration: 1000,
|
|||
|
easing: 'swing',
|
|||
|
step: function (now) {
|
|||
|
$(this).text(Math.ceil(now));
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
$(document).on('click', "a[target!='_blank']", function() {
|
|||
|
if( theme.loading=='1' && $(this).attr('href') && $(this).attr('href').indexOf("#") != 0 && $(this).attr('href').indexOf("java") != 0 && !$(this).data('fancybox') && !$(this).data('commentid') && !$(this).hasClass('nofx') ){
|
|||
|
var load = $('<div id="load-loading"></div>');
|
|||
|
$("body").prepend(load);
|
|||
|
load.animate({opacity:'1'},200,'swing').delay(2000).hide(300,function(){ load.remove() });
|
|||
|
}
|
|||
|
});
|
|||
|
// 点赞
|
|||
|
$(".btn-like").click(function() {
|
|||
|
var t = $(this);
|
|||
|
if(t.data('action') == "post_like"){
|
|||
|
if (t.hasClass('liked')) {
|
|||
|
showAlert(JSON.parse('{"status":3,"msg":"您已经赞过了!"}'));
|
|||
|
} else {
|
|||
|
var icop = t.children('.flex-column');
|
|||
|
t.addClass('liked');
|
|||
|
$.ajax({
|
|||
|
type : 'POST',
|
|||
|
url : theme.ajaxurl,
|
|||
|
data : {
|
|||
|
action: t.data('action'),
|
|||
|
post_id: t.data("id"),
|
|||
|
ticket: t.data("ticket")
|
|||
|
},
|
|||
|
success : function( data ){
|
|||
|
$am = $('<i class="iconfont icon-heart" style="color: #f12345;transform: scale(1) translateY(0);position: absolute;transition: .6s;opacity: 1;"></i>');
|
|||
|
icop.prepend($am);
|
|||
|
showAlert(JSON.parse('{"status":1,"msg":"谢谢点赞!"}'));
|
|||
|
$('.like-count').html(data);
|
|||
|
$am.addClass('home-like-hide');
|
|||
|
},
|
|||
|
error:function(){
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"网络错误 --."}'));
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}else{
|
|||
|
if (t.hasClass('disabled'))
|
|||
|
return false;
|
|||
|
var _delete = 0;
|
|||
|
var id = t.data("id");
|
|||
|
if (t.hasClass('liked')) {
|
|||
|
_delete = 1;
|
|||
|
}
|
|||
|
t.addClass('disabled');
|
|||
|
$.ajax({
|
|||
|
type : 'POST',
|
|||
|
url : theme.ajaxurl,
|
|||
|
data : {
|
|||
|
action: t.data("action"),
|
|||
|
post_id: t.data("id"),
|
|||
|
post_type: t.data("post_type"),
|
|||
|
delete: _delete,
|
|||
|
ticket: t.data("ticket")
|
|||
|
},
|
|||
|
success : function( data ){
|
|||
|
t.removeClass('disabled');
|
|||
|
if(data.status==1){
|
|||
|
$('.star-count-'+id).html(data.count);
|
|||
|
if(_delete==1){
|
|||
|
t.removeClass('liked');
|
|||
|
t.find('.star-ico').removeClass('icon-collection').addClass('icon-collection-line');
|
|||
|
}
|
|||
|
else{
|
|||
|
t.addClass('liked');
|
|||
|
t.find('.star-ico').removeClass('icon-collection-line').addClass('icon-collection');
|
|||
|
}
|
|||
|
ioPopupTips(data.status, data.msg);
|
|||
|
return false;
|
|||
|
}
|
|||
|
ioPopupTips(data.status, data.msg);
|
|||
|
},
|
|||
|
error:function(){
|
|||
|
t.removeClass('disabled');
|
|||
|
ioPopupTips(4, "网络错误 --.");
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
return false;
|
|||
|
});
|
|||
|
// 卡片点赞
|
|||
|
$(document).on('click', '.home-like', function() {
|
|||
|
if ($(this).hasClass('liked')) {
|
|||
|
showAlert(JSON.parse('{"status":3,"msg":"您已经赞过了!"}'));
|
|||
|
} else {
|
|||
|
var icop = $(this);
|
|||
|
var id = $(this).data("id");
|
|||
|
$(this).addClass('liked');
|
|||
|
$.ajax({
|
|||
|
type : 'POST',
|
|||
|
url : theme.ajaxurl,
|
|||
|
data : {
|
|||
|
action: "post_like",
|
|||
|
post_id: id
|
|||
|
},
|
|||
|
success : function( data ){
|
|||
|
$am = $('<i class="iconfont icon-heart" style="color: #f12345;transform: scale(1) translateY(0);position: absolute;transition: .6s;opacity: 1;"></i>');
|
|||
|
icop.prepend($am);
|
|||
|
showAlert(JSON.parse('{"status":1,"msg":"谢谢点赞!"}'));
|
|||
|
$(".home-like-"+id).html(data);
|
|||
|
$am.addClass('home-like-hide');
|
|||
|
},
|
|||
|
error:function(){
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"网络错误 --."}'));
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
return false;
|
|||
|
});
|
|||
|
//未开启详情页计算访客方法
|
|||
|
$(document).on('click', '.url-card a.is-views[data-id]', function() {
|
|||
|
$.ajax({
|
|||
|
type:"GET",
|
|||
|
url:theme.ajaxurl,
|
|||
|
data:{
|
|||
|
action:'io_postviews',
|
|||
|
postviews_id:$(this).data('id'),
|
|||
|
},
|
|||
|
cache:false,
|
|||
|
});
|
|||
|
});
|
|||
|
// app下载统计
|
|||
|
var clipboard = new ClipboardJS('a.down_count', {
|
|||
|
text: $(document).on('click','a.down_count', function(e) {
|
|||
|
var mm = $(e.target).data('clipboard-text');
|
|||
|
$.ajax({
|
|||
|
type:"POST",
|
|||
|
url:theme.ajaxurl,
|
|||
|
data: $(this).data(),
|
|||
|
success : function( data ){
|
|||
|
$('.down-count-text').html(data);
|
|||
|
}
|
|||
|
});
|
|||
|
if( mm ){
|
|||
|
return mm;
|
|||
|
}
|
|||
|
})
|
|||
|
});
|
|||
|
clipboard.on("success",function (e) {
|
|||
|
alert("网盘密码已复制,点“确定”进入下载页面。");
|
|||
|
});
|
|||
|
|
|||
|
//夜间模式
|
|||
|
$(document).on('click', '.switch-dark-mode', function(event) {
|
|||
|
event.preventDefault();
|
|||
|
$.ajax({
|
|||
|
url: theme.ajaxurl,
|
|||
|
type: 'POST',
|
|||
|
dataType: 'html',
|
|||
|
data: {
|
|||
|
mode_toggle: $('body').hasClass('io-black-mode') === true ? 1 : 0,
|
|||
|
action: 'switch_dark_mode',
|
|||
|
},
|
|||
|
})
|
|||
|
.done(function(response) {
|
|||
|
$('body').toggleClass('io-black-mode '+theme.defaultclass);
|
|||
|
switch_mode();
|
|||
|
$("#"+ $('.switch-dark-mode').attr('aria-describedby')).remove();
|
|||
|
//$('.switch-dark-mode').removeAttr('aria-describedby');
|
|||
|
})
|
|||
|
});
|
|||
|
function switch_mode(){
|
|||
|
if($('body').hasClass('io-black-mode')){
|
|||
|
if($(".switch-dark-mode").attr("data-original-title"))
|
|||
|
$(".switch-dark-mode").attr("data-original-title","日间模式");
|
|||
|
else
|
|||
|
$(".switch-dark-mode").attr("title","日间模式");
|
|||
|
$(".mode-ico").removeClass("icon-night");
|
|||
|
$(".mode-ico").addClass("icon-light");
|
|||
|
}
|
|||
|
else{
|
|||
|
if($(".switch-dark-mode").attr("data-original-title"))
|
|||
|
$(".switch-dark-mode").attr("data-original-title","夜间模式");
|
|||
|
else
|
|||
|
$(".switch-dark-mode").attr("title","夜间模式");
|
|||
|
$(".mode-ico").removeClass("icon-light");
|
|||
|
$(".mode-ico").addClass("icon-night");
|
|||
|
}
|
|||
|
}
|
|||
|
//返回顶部
|
|||
|
$(window).scroll(function () {
|
|||
|
if ($(this).scrollTop() >= 50) {
|
|||
|
$('#go-to-up').fadeIn(200);
|
|||
|
$('.big-header-banner').addClass('header-bg');
|
|||
|
} else {
|
|||
|
$('#go-to-up').fadeOut(200);
|
|||
|
$('.big-header-banner').removeClass('header-bg');
|
|||
|
}
|
|||
|
});
|
|||
|
$('.go-up').click(function () {
|
|||
|
$('body,html').animate({
|
|||
|
scrollTop: 0
|
|||
|
}, 500);
|
|||
|
return false;
|
|||
|
});
|
|||
|
|
|||
|
|
|||
|
//滑块菜单
|
|||
|
$('.slider_menu').children("ul").children("li").not(".anchor").hover(function() {
|
|||
|
$(this).addClass("hover"),
|
|||
|
//$('li.anchor').css({
|
|||
|
// transform: "scale(1.05)",
|
|||
|
//}),
|
|||
|
toTarget($(this).parent(),true,true)
|
|||
|
}, function() {
|
|||
|
//$('li.anchor').css({
|
|||
|
// transform: "scale(1)",
|
|||
|
//}),
|
|||
|
$(this).removeClass("hover")
|
|||
|
});
|
|||
|
$('.slider_menu').mouseleave(function(e) {
|
|||
|
var menu = $(this).children("ul");
|
|||
|
window.setTimeout(function() {
|
|||
|
toTarget(menu,true,true)
|
|||
|
}, 50)
|
|||
|
}) ;
|
|||
|
function intoSlider() {
|
|||
|
$(".slider_menu[sliderTab]").each(function() {
|
|||
|
if(!$(this).hasClass('into')){
|
|||
|
var menu = $(this).children("ul");
|
|||
|
menu.prepend('<li class="anchor" style="position:absolute;width:0;height:28px"></li>');
|
|||
|
var target = menu.find('.active').parent();
|
|||
|
if(0 < target.length){
|
|||
|
menu.children(".anchor").css({
|
|||
|
left: target.position().left + target.scrollLeft() + "px",
|
|||
|
width: target.outerWidth() + "px",
|
|||
|
height: target.height() + "px",
|
|||
|
opacity: "1"
|
|||
|
})
|
|||
|
}
|
|||
|
$(this).addClass('into');
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
//粘性页脚
|
|||
|
function stickFooter() {
|
|||
|
$('.main-footer').attr('style', '');
|
|||
|
if($('.main-footer').hasClass('text-xs'))
|
|||
|
{
|
|||
|
var win_height = jQuery(window).height(),
|
|||
|
footer_height = $('.main-footer').outerHeight(true),
|
|||
|
main_content_height = $('.main-footer').position().top + footer_height ;
|
|||
|
if(win_height > main_content_height - parseInt($('.main-footer').css('marginTop'), 10))
|
|||
|
{
|
|||
|
$('.main-footer').css({
|
|||
|
marginTop: win_height - main_content_height
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
$('#sidebar-switch').on('click',function(){
|
|||
|
$('#sidebar').removeClass('mini-sidebar');
|
|||
|
$('.sidebar-nav .change-href').attr('href','javascript:;');
|
|||
|
|
|||
|
});
|
|||
|
|
|||
|
// Trigger Resizable Function
|
|||
|
var isMin = false,
|
|||
|
isMobileMin = false;
|
|||
|
function trigger_resizable( isNoAnim ) {
|
|||
|
if( (theme.minNav == '1' && !isMin && 767.98<$(window).width() )||(!isMin && 767.98<$(window).width() && $(window).width()<1024) ){
|
|||
|
//$('#mini-button').removeAttr('checked');
|
|||
|
$('#mini-button').prop('checked', false);
|
|||
|
trigger_lsm_mini(isNoAnim);
|
|||
|
isMin = true;
|
|||
|
if(isMobileMin){
|
|||
|
$('#sidebar').addClass('mini-sidebar');
|
|||
|
$('.sidebar-nav .change-href').each(function(){$(this).attr('href',$(this).data('change'))});
|
|||
|
isMobileMin = false;
|
|||
|
}
|
|||
|
}
|
|||
|
else if( ( theme.minNav != '1')&&((isMin && $(window).width()>=1024) || ( isMobileMin && !isMin && $(window).width()>=1024 ) ) ){
|
|||
|
$('#mini-button').prop('checked', true);
|
|||
|
trigger_lsm_mini(isNoAnim);
|
|||
|
isMin = false;
|
|||
|
if(isMobileMin){
|
|||
|
isMobileMin = false;
|
|||
|
}
|
|||
|
}
|
|||
|
else if($(window).width() < 767.98 && $('#sidebar').hasClass('mini-sidebar')){
|
|||
|
$('#sidebar').removeClass('mini-sidebar');
|
|||
|
$('.sidebar-nav .change-href').attr('href','javascript:;');
|
|||
|
isMobileMin = true;
|
|||
|
isMin = false;
|
|||
|
}
|
|||
|
}
|
|||
|
// sidebar-menu-inner收缩展开
|
|||
|
$('.sidebar-menu-inner a').on('click',function(){//.sidebar-menu-inner a //.has-sub a
|
|||
|
|
|||
|
//console.log('--->>>'+$(this).find('span').text());
|
|||
|
if (!$('.sidebar-nav').hasClass('mini-sidebar')) {//菜单栏没有最小化
|
|||
|
$(this).parent("li").siblings("li.sidebar-item").children('ul').slideUp(200);
|
|||
|
if ($(this).next().css('display') == "none") { //展开
|
|||
|
//展开未展开
|
|||
|
// $('.sidebar-item').children('ul').slideUp(300);
|
|||
|
$(this).next('ul').slideDown(200);
|
|||
|
$(this).parent('li').addClass('sidebar-show').siblings('li').removeClass('sidebar-show');
|
|||
|
}else{ //收缩
|
|||
|
//收缩已展开
|
|||
|
$(this).next('ul').slideUp(200);
|
|||
|
//$('.sidebar-item.sidebar-show').removeClass('sidebar-show');
|
|||
|
$(this).parent('li').removeClass('sidebar-show');
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
//菜单栏最小化
|
|||
|
$('#mini-button').on('click',function(){
|
|||
|
trigger_lsm_mini(false);
|
|||
|
|
|||
|
});
|
|||
|
function trigger_lsm_mini(isNoAnim){
|
|||
|
if ($('.header-mini-btn input[type="checkbox"]').prop("checked")) {
|
|||
|
$('.sidebar-nav').removeClass('mini-sidebar');
|
|||
|
$('.sidebar-nav .change-href').attr('href','javascript:;');
|
|||
|
$('.sidebar-menu ul ul').css("display", "none");
|
|||
|
if(isNoAnim){
|
|||
|
$('.sidebar-nav').removeClass('animate-nav');
|
|||
|
$('.sidebar-nav').width(220);
|
|||
|
}
|
|||
|
else{
|
|||
|
$('.sidebar-nav').addClass('animate-nav');
|
|||
|
$('.sidebar-nav').stop().animate({width: 170},200);
|
|||
|
}
|
|||
|
}else{
|
|||
|
$('.sidebar-item.sidebar-show').removeClass('sidebar-show');
|
|||
|
$('.sidebar-menu ul').removeAttr('style');
|
|||
|
$('.sidebar-nav').addClass('mini-sidebar');
|
|||
|
$('.sidebar-nav .change-href').each(function(){$(this).attr('href',$(this).data('change'))});
|
|||
|
if(isNoAnim){
|
|||
|
$('.sidebar-nav').removeClass('animate-nav');
|
|||
|
$('.sidebar-nav').width(60);
|
|||
|
}
|
|||
|
else{
|
|||
|
$('.sidebar-nav').addClass('animate-nav');
|
|||
|
$('.sidebar-nav').stop().animate({width: 60},200);
|
|||
|
}
|
|||
|
}
|
|||
|
//$('.sidebar-nav').css("transition","width .3s");
|
|||
|
}
|
|||
|
//显示2级悬浮菜单
|
|||
|
$(document).on('mouseover','.mini-sidebar .sidebar-menu ul:first>li,.mini-sidebar .flex-bottom ul:first>li',function(){
|
|||
|
var offset = 2;
|
|||
|
if($(this).parents('.flex-bottom').length!=0)
|
|||
|
offset = -3;
|
|||
|
$(".sidebar-popup.second").length == 0 && ($("body").append("<div class='second sidebar-popup sidebar-menu-inner text-sm'><div></div></div>"));
|
|||
|
$(".sidebar-popup.second>div").html($(this).html());
|
|||
|
$(".sidebar-popup.second").show();
|
|||
|
var top = $(this).offset().top - $(window).scrollTop() + offset;
|
|||
|
var d = $(window).height() - $(".sidebar-popup.second>div").height();
|
|||
|
if(d - top <= 0 ){
|
|||
|
top = d >= 0 ? d - 8 : 0;
|
|||
|
}
|
|||
|
$(".sidebar-popup.second").stop().animate({"top":top}, 50);
|
|||
|
});
|
|||
|
//隐藏悬浮菜单面板
|
|||
|
$(document).on('mouseleave','.mini-sidebar .sidebar-menu ul:first, .mini-sidebar .slimScrollBar,.second.sidebar-popup',function(){
|
|||
|
$(".sidebar-popup.second").hide();
|
|||
|
});
|
|||
|
//常驻2级悬浮菜单面板
|
|||
|
$(document).on('mouseover','.mini-sidebar .slimScrollBar,.second.sidebar-popup',function(){
|
|||
|
$(".sidebar-popup.second").show();
|
|||
|
});
|
|||
|
|
|||
|
$(document).on('click', '.ajax-cm-home .ajax-cm', function(event) {
|
|||
|
event.preventDefault();
|
|||
|
var t = $(this);
|
|||
|
var id = t.data('id');
|
|||
|
var box = $(t.attr('href')).children('.site-list');
|
|||
|
//console.log(box.children('.url-card').length);
|
|||
|
if( box.children('.url-card').length==0 ){
|
|||
|
t.addClass('disabled');
|
|||
|
$.ajax({
|
|||
|
url: theme.ajaxurl,
|
|||
|
type: 'POST',
|
|||
|
dataType: 'html',
|
|||
|
data : {
|
|||
|
action: t.data('action'),
|
|||
|
term_id: id,
|
|||
|
},
|
|||
|
cache: true,
|
|||
|
})
|
|||
|
.done(function(response) {
|
|||
|
if (response.trim()) {
|
|||
|
var url = $(response);
|
|||
|
box.html(url);
|
|||
|
if(isPC()) url.find('[data-toggle="tooltip"]').tooltip({ trigger: 'hover' });
|
|||
|
} else {
|
|||
|
}
|
|||
|
t.removeClass('disabled');
|
|||
|
})
|
|||
|
.fail(function() {
|
|||
|
t.removeClass('disabled');
|
|||
|
})
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
//首页tab模式请求内容
|
|||
|
$(document).on('click', '.ajax-list a', function(event) {
|
|||
|
event.preventDefault();
|
|||
|
loadAjax( $(this), $(this).parents('.ajax-list') , '.'+$(this).data('target'));
|
|||
|
});
|
|||
|
|
|||
|
$(document).on('click', '.ajax-list-home a', function(event) {
|
|||
|
event.preventDefault();
|
|||
|
loadAjax( $(this), $(this).parents('.ajax-list-home'), '.ajax-'+$(this).parents('.ajax-list-home').data('id') );
|
|||
|
});
|
|||
|
|
|||
|
function loadAjax(t,parent,body){
|
|||
|
if( !t.hasClass('active') ){
|
|||
|
parent.find('a').removeClass('active');
|
|||
|
t.addClass('active');
|
|||
|
if($(body).children(".ajax-loading").length == 0)
|
|||
|
$(body).append('<div class="ajax-loading text-center rounded" style="position:absolute;display:flex;left:0;width:100%;top:-1rem;bottom:.5rem;background:rgba(125,125,125,.5)"><div class="col align-self-center"><i class="iconfont icon-loading icon-spin icon-2x"></i></div></div>');
|
|||
|
$.ajax({
|
|||
|
url: theme.ajaxurl,
|
|||
|
type: 'POST',
|
|||
|
dataType: 'html',
|
|||
|
data : t.data(),
|
|||
|
cache: true,
|
|||
|
})
|
|||
|
.done(function(response) {
|
|||
|
if (response.trim()) {
|
|||
|
$(body).html('');
|
|||
|
$(body).append(response);
|
|||
|
//if(theme.lazyload == '1') {
|
|||
|
// $(body+" img.lazy").lazyload();
|
|||
|
//}
|
|||
|
var url = $(body).children('#ajax-cat-url').data('url');
|
|||
|
if(url)
|
|||
|
t.parents('.d-flex.flex-fill.flex-tab').children('.btn-move.tab-move').show().attr('href', url);
|
|||
|
else
|
|||
|
t.parents('.d-flex.flex-fill.flex-tab').children('.btn-move.tab-move').hide();
|
|||
|
if(isPC()) $('.ajax-url [data-toggle="tooltip"]').tooltip({ trigger: 'hover' });
|
|||
|
} else {
|
|||
|
$('.ajax-loading').remove();
|
|||
|
}
|
|||
|
})
|
|||
|
.fail(function() {
|
|||
|
$('.ajax-loading').remove();
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 自定义模块-----------------
|
|||
|
$(".add-link-form").on("submit", function() {
|
|||
|
var siteName = $(".site-add-name").val()
|
|||
|
, siteUrl = $(".site-add-url").val();
|
|||
|
addSiteList({
|
|||
|
id: +new Date,
|
|||
|
name: siteName,
|
|||
|
url: siteUrl
|
|||
|
});
|
|||
|
this.reset();
|
|||
|
this.querySelector("input").focus();
|
|||
|
$(this).find(".btn-close-fm").click();
|
|||
|
});
|
|||
|
var isEdit = false;
|
|||
|
$('.customize-menu .btn-edit').click(function () {
|
|||
|
if(isEdit){
|
|||
|
$('.url-card .remove-site,#add-site').hide();
|
|||
|
$('.url-card .remove-site,.add-custom-site').hide();
|
|||
|
$('.url-card .remove-cm-site').hide();
|
|||
|
$('.customize-sites').removeClass('edit');
|
|||
|
ioSortable();
|
|||
|
$('.customize-menu .btn-edit').html("编辑");
|
|||
|
}else{
|
|||
|
$('.url-card .remove-site,#add-site').show();
|
|||
|
$('.url-card .remove-site,.add-custom-site').show();
|
|||
|
$('.url-card .remove-cm-site').show();
|
|||
|
$('.customize-sites').addClass('edit');
|
|||
|
ioSortable();
|
|||
|
$('.customize-menu .btn-edit').html("确定");
|
|||
|
}
|
|||
|
isEdit = !isEdit;
|
|||
|
});
|
|||
|
function addSiteList(site){
|
|||
|
var sites = getItem("myLinks");
|
|||
|
//判断是否重复
|
|||
|
for (var i = 0; i < sites.length; i++) {
|
|||
|
if(sites[i].url==site.url)
|
|||
|
{
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"该网址已经存在了 --."}'));
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
sites.unshift(site);
|
|||
|
addSite(site,false,false);
|
|||
|
setItem(sites,"myLinks");
|
|||
|
}
|
|||
|
function addSite(site,isLive,isHeader) {
|
|||
|
if(!isLive) $('.customize_nothing').remove();
|
|||
|
else $('.customize_nothing_click').remove();
|
|||
|
var url_f,matches = site.url.match(/^(?:https?:\/\/)?((?:[-A-Za-z0-9]+\.)+[A-Za-z]{2,6})/);
|
|||
|
if (!matches || matches.length < 2) url_f=site.url;
|
|||
|
else {
|
|||
|
url_f=matches[0];
|
|||
|
if(theme.urlformat == '1')
|
|||
|
url_f = matches[1];
|
|||
|
}
|
|||
|
var newSite = $('<div class="url-card col-6 '+theme.classColumns+' col-xxl-10a">'+
|
|||
|
'<div class="url-body mini"><a href="'+site.url+'" target="_blank" class="card new-site mb-3 site-'+site.id+'" data-id="'+site.id+'" data-url="'+site.url+'" data-toggle="tooltip" data-placement="bottom" title="'+site.name+'" rel="external nofollow">'+
|
|||
|
'<div class="card-body" style="padding:0.4rem 0.5rem;">'+
|
|||
|
'<div class="url-content d-flex align-items-center">'+
|
|||
|
'<div class="url-img rounded-circle mr-2 d-flex align-items-center justify-content-center">'+
|
|||
|
'<img src="' + theme.icourl + url_f + theme.icopng + '">'+
|
|||
|
'</div>'+
|
|||
|
'<div class="url-info flex-fill">'+
|
|||
|
'<div class="text-sm overflowClip_1">'+
|
|||
|
'<strong>'+site.name+'</strong>'+
|
|||
|
'</div>'+
|
|||
|
'</div>'+
|
|||
|
'</div>'+
|
|||
|
'</div>'+
|
|||
|
'</a></div>' +
|
|||
|
'<a href="javascript:;" class="text-center remove-site" data-id="'+site.id+'" style="display: none"><i class="iconfont icon-close-circle"></i></a>'+
|
|||
|
'</div>');
|
|||
|
if(isLive){
|
|||
|
if(isHeader)
|
|||
|
$(".my-click-list").prepend(newSite);
|
|||
|
else
|
|||
|
$(".my-click-list").append(newSite);
|
|||
|
newSite.children('.remove-site').on("click",removeLiveSite);
|
|||
|
} else {
|
|||
|
$("#add-site").before(newSite);
|
|||
|
newSite.children('.remove-site').on("click",removeSite);
|
|||
|
}
|
|||
|
if(isEdit)
|
|||
|
newSite.children('.remove-site').show();
|
|||
|
if(isPC()) $('.new-site[data-toggle="tooltip"]').tooltip({ trigger: 'hover' });
|
|||
|
}
|
|||
|
function getItem(key) {
|
|||
|
var a = window.localStorage.getItem(key);
|
|||
|
return a ? a = JSON.parse(a) : [];
|
|||
|
}
|
|||
|
function setItem(sites,key) {
|
|||
|
window.localStorage.setItem(key, JSON.stringify(sites));
|
|||
|
}
|
|||
|
function intoSites(isLive) {
|
|||
|
var sites = getItem( isLive ? "livelists" : "myLinks" );
|
|||
|
if(sites.length && !isLive && !$("#add-site")[0]){
|
|||
|
$(".customize_nothing.custom-site").children(".nothing").html('<a href="javascript:;" class="add-new-custom-site" data-action="add_custom_urls" data-term_name="我的导航" data-urls="'+Base64.encode(JSON.stringify( sites ))+'" >您已登录,检测到您的设备上有数据,点击<strong style="color:#db2323">同步到服务器</strong>。</a>');
|
|||
|
return;
|
|||
|
}
|
|||
|
if (sites.length) {
|
|||
|
for (var i = 0; i < sites.length; i++) {
|
|||
|
addSite(sites[i],isLive,false);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
function removeSite() {
|
|||
|
var id = $(this).data("id"),
|
|||
|
sites = getItem("myLinks");
|
|||
|
for (var i = 0; i < sites.length; i++){
|
|||
|
if ( parseInt(sites[i].id) === parseInt(id)) {
|
|||
|
console.log(sites[i].id, id);
|
|||
|
sites.splice(i, 1);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
setItem(sites,"myLinks");
|
|||
|
$(this).parent().remove();
|
|||
|
}
|
|||
|
function removeLiveSite() {
|
|||
|
var id = $(this).data("id"),
|
|||
|
sites = getItem("livelists");
|
|||
|
for (var i = 0; i < sites.length; i++){
|
|||
|
if ( parseInt(sites[i].id) === parseInt(id)) {
|
|||
|
console.log(sites[i].id, id);
|
|||
|
sites.splice(i, 1);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
setItem(sites,"livelists");
|
|||
|
$(this).parent().remove();
|
|||
|
}
|
|||
|
$(document).on('click', '.add-new-custom-site', function(event) {
|
|||
|
var t = $(this);
|
|||
|
$.ajax({
|
|||
|
url: theme.ajaxurl,
|
|||
|
type: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
data : t.data(),
|
|||
|
})
|
|||
|
.done(function(response) {
|
|||
|
showAlert(response);
|
|||
|
})
|
|||
|
.fail(function() {
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"网络错误 --."}'));
|
|||
|
})
|
|||
|
});
|
|||
|
$(".add-custom-site-form").on("submit", function() {
|
|||
|
var t = $(this);
|
|||
|
var tt = this;
|
|||
|
var url = t.find("input[name=url]").val();
|
|||
|
var name = t.find("input[name=url_name]").val();
|
|||
|
var term_id = t.find('input:radio:checked').val();
|
|||
|
var term_name = t.find('input[name=term_name]').val();
|
|||
|
if(term_name=='' && term_id==undefined){
|
|||
|
showAlert(JSON.parse('{"status":3,"msg":"为什么不选分类"}'));
|
|||
|
return false;
|
|||
|
}
|
|||
|
$.ajax({
|
|||
|
url: theme.ajaxurl,
|
|||
|
type: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
data : t.serialize()+"&action=add_custom_url",
|
|||
|
})
|
|||
|
.done(function(response) {
|
|||
|
if(response.status !=1){
|
|||
|
showAlert(response);
|
|||
|
return;
|
|||
|
}
|
|||
|
var url_f,matches = url.match(/^(?:https?:\/\/)?((?:[-A-Za-z0-9]+\.)+[A-Za-z]{2,6})/);
|
|||
|
if (!matches || matches.length < 2) url_f=url;
|
|||
|
else {
|
|||
|
url_f=matches[0];
|
|||
|
if(theme.urlformat == '1')
|
|||
|
url_f = matches[1];
|
|||
|
}
|
|||
|
var id = response.id;
|
|||
|
var newSite = $('<div id="url-'+id+'" class="url-card sortable col-6 '+theme.classColumns+' col-xxl-10a">'+
|
|||
|
'<div class="url-body mini"><a href="'+url+'" target="_blank" class="card new-site mb-3 site-'+id+'" data-id="'+id+'" data-url="'+url+'" data-toggle="tooltip" data-placement="bottom" title="'+name+'" rel="external nofollow">'+
|
|||
|
'<div class="card-body" style="padding:0.4rem 0.5rem;">'+
|
|||
|
'<div class="url-content d-flex align-items-center">'+
|
|||
|
'<div class="url-img rounded-circle mr-2 d-flex align-items-center justify-content-center">'+
|
|||
|
'<img src="' + theme.icourl + url_f + theme.icopng + '">'+
|
|||
|
'</div>'+
|
|||
|
'<div class="url-info flex-fill">'+
|
|||
|
'<div class="text-sm overflowClip_1">'+
|
|||
|
'<strong>'+name+'</strong>'+
|
|||
|
'</div>'+
|
|||
|
'</div>'+
|
|||
|
'</div>'+
|
|||
|
'</div>'+
|
|||
|
'</a></div>' +
|
|||
|
'<a href="javascript:;" class="text-center remove-cm-site" data-action="delete_custom_url" data-id="'+id+'"><i class="iconfont icon-close-circle"></i></a>'+
|
|||
|
'</div>');
|
|||
|
$(".add-custom-site[data-term_id="+term_id+"]").before(newSite);
|
|||
|
tt.reset();
|
|||
|
tt.querySelector("input").focus();
|
|||
|
t.find(".btn-close-fm").click();
|
|||
|
showAlert(JSON.parse('{"status":1,"msg":"添加成功。"}'));
|
|||
|
})
|
|||
|
.fail(function() {
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"网络错误 --."}'));
|
|||
|
return;
|
|||
|
})
|
|||
|
});
|
|||
|
$(document).on("click",'.url-card .remove-cm-site', function(event){
|
|||
|
var t = $(this);
|
|||
|
t.addClass('disabled');
|
|||
|
$.ajax({
|
|||
|
url: theme.ajaxurl,
|
|||
|
type: 'POST',
|
|||
|
dataType: 'json',
|
|||
|
data : t.data(),
|
|||
|
})
|
|||
|
.done(function(response) {
|
|||
|
if(response.status == 1){
|
|||
|
t.parent().remove();
|
|||
|
}
|
|||
|
t.removeClass('disabled');
|
|||
|
showAlert(response);
|
|||
|
})
|
|||
|
.fail(function() {
|
|||
|
t.removeClass('disabled');
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"网络错误 --."}'));
|
|||
|
})
|
|||
|
});
|
|||
|
function ioSortable() {
|
|||
|
if($('.customize-sites').hasClass('edit')){
|
|||
|
if(isPC()) $('.customize-sites .new-site[data-toggle="tooltip"]').tooltip('disable');
|
|||
|
//$('.customize-sites').find('a').attr('href','javascript:void(0)');
|
|||
|
$('.customize-sites .site-list').sortable({
|
|||
|
items: '.sortable',
|
|||
|
containment: ".main-content",
|
|||
|
//'placeholder': "ui-state-highlight",
|
|||
|
update : function(e, ui) {
|
|||
|
$('.customize-sites .site-list').sortable('disable');
|
|||
|
var term_id = $(this).data('term_id');
|
|||
|
var order = $(this).sortable('serialize');
|
|||
|
|
|||
|
|
|||
|
var queryData = { "action": "update_custom_url_order", "term_id" : term_id, "order" : order };
|
|||
|
$.ajax({
|
|||
|
url: theme.ajaxurl,
|
|||
|
type: 'POST',
|
|||
|
data: queryData,
|
|||
|
cache: false,
|
|||
|
dataType: "json",
|
|||
|
success: function(data){
|
|||
|
if(data.status != 1){
|
|||
|
showAlert(data);
|
|||
|
}
|
|||
|
$('.customize-sites .site-list').sortable('enable');
|
|||
|
},
|
|||
|
error: function(html){
|
|||
|
$('.customize-sites .site-list').sortable('enable');
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"网络错误 --."}'));
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
}else{
|
|||
|
if(isPC()) $('.customize-sites .new-site[data-toggle="tooltip"]').tooltip('enable');
|
|||
|
//$('.customize-sites').find('a').attr('href',$(this).data('url'));
|
|||
|
$( ".customize-sites .site-list" ).sortable( "destroy" );
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
$("input[name=term_name]").focus(function(){
|
|||
|
var this_input = $("input[name=term_id]");
|
|||
|
this_input.prop('checked', false);
|
|||
|
});
|
|||
|
$('.form_custom_term_id').on("click", function(event){
|
|||
|
$("input[name=term_name]").val("");
|
|||
|
});
|
|||
|
$(document).on('click', '.url-card a.card', function(event) {
|
|||
|
var site = {
|
|||
|
id: $(this).data("id"),
|
|||
|
name: $(this).find("strong").html(),
|
|||
|
url: $(this).data("url")
|
|||
|
};
|
|||
|
if(site.url==="")
|
|||
|
return;
|
|||
|
var liveList = getItem("livelists");
|
|||
|
var isNew = true;
|
|||
|
for (var i = 0; i < liveList.length; i++){
|
|||
|
if (liveList[i].name === site.name) {
|
|||
|
isNew = false;
|
|||
|
}
|
|||
|
}
|
|||
|
if(isNew){
|
|||
|
var maxSite = theme.customizemax;
|
|||
|
if(liveList.length > maxSite-1){
|
|||
|
$(".my-click-list .site-"+liveList[maxSite-1].id).parent().remove();
|
|||
|
liveList.splice(maxSite-1, 1);
|
|||
|
}
|
|||
|
addSite(site,true,true);
|
|||
|
liveList.unshift(site);
|
|||
|
setItem(liveList,"livelists");
|
|||
|
}
|
|||
|
});
|
|||
|
// 搜索模块 -----------------------
|
|||
|
function intoSearch() {
|
|||
|
if(window.localStorage.getItem("searchlist")){
|
|||
|
$(".hide-type-list input#"+window.localStorage.getItem("searchlist")).prop('checked', true);
|
|||
|
$(".hide-type-list input#m_"+window.localStorage.getItem("searchlist")).prop('checked', true);
|
|||
|
}
|
|||
|
if(window.localStorage.getItem("searchlistmenu")){
|
|||
|
$('.s-type-list.big label').removeClass('active');
|
|||
|
$(".s-type-list [data-id="+window.localStorage.getItem("searchlistmenu")+"]").addClass('active');
|
|||
|
}
|
|||
|
toTarget($(".s-type-list.big"),false,false);
|
|||
|
$('.hide-type-list .s-current').removeClass("s-current");
|
|||
|
$('.hide-type-list input:radio[name="type"]:checked').parents(".search-group").addClass("s-current");
|
|||
|
$('.hide-type-list input:radio[name="type2"]:checked').parents(".search-group").addClass("s-current");
|
|||
|
|
|||
|
$(".super-search-fm").attr("action",$('.hide-type-list input:radio:checked').val());
|
|||
|
$(".search-key").attr("placeholder",$('.hide-type-list input:radio:checked').data("placeholder"));
|
|||
|
if(window.localStorage.getItem("searchlist")=='type-zhannei'){
|
|||
|
$(".search-key").attr("zhannei","true");
|
|||
|
}
|
|||
|
}
|
|||
|
$(document).on('click', '.s-type-list label', function(event) {
|
|||
|
//event.preventDefault();
|
|||
|
$('.s-type-list.big label').removeClass('active');
|
|||
|
$(this).addClass('active');
|
|||
|
window.localStorage.setItem("searchlistmenu", $(this).data("id"));
|
|||
|
var parent = $(this).parents(".s-search");
|
|||
|
parent.find('.search-group').removeClass("s-current");
|
|||
|
parent.find('#'+$(this).attr("for")).parents(".search-group").addClass("s-current");
|
|||
|
toTarget($(this).parents(".s-type-list"),false,false);
|
|||
|
});
|
|||
|
$('.hide-type-list .search-group input').on('click', function() {
|
|||
|
var parent = $(this).parents(".s-search");
|
|||
|
window.localStorage.setItem("searchlist", $(this).attr("id").replace("m_",""));
|
|||
|
parent.children(".super-search-fm").attr("action",$(this).val());
|
|||
|
parent.find(".search-key").attr("placeholder",$(this).data("placeholder"));
|
|||
|
|
|||
|
if($(this).attr('id')=="type-zhannei" || $(this).attr('id')=="m_type-zhannei")
|
|||
|
parent.find(".search-key").attr("zhannei","true");
|
|||
|
else
|
|||
|
parent.find(".search-key").attr("zhannei","");
|
|||
|
|
|||
|
parent.find(".search-key").select();
|
|||
|
parent.find(".search-key").focus();
|
|||
|
});
|
|||
|
$(document).on("submit", ".super-search-fm", function() {
|
|||
|
var key = encodeURIComponent($(this).find(".search-key").val())
|
|||
|
if(key == "")
|
|||
|
return false;
|
|||
|
else{
|
|||
|
window.open( $(this).attr("action") + key);
|
|||
|
return false;
|
|||
|
}
|
|||
|
});
|
|||
|
function getSmartTipsGoogle(value,parents) {
|
|||
|
$.ajax({
|
|||
|
type: "GET",
|
|||
|
url: "//suggestqueries.google.com/complete/search?client=firefox&callback=iowenHot",
|
|||
|
async: true,
|
|||
|
data: { q: value },
|
|||
|
dataType: "jsonp",
|
|||
|
jsonp: "callback",
|
|||
|
success: function(res) {
|
|||
|
var list = parents.children(".search-smart-tips");
|
|||
|
list.children("ul").text("");
|
|||
|
tipsList = res[1].length;
|
|||
|
if (tipsList) {
|
|||
|
for (var i = 0; i < tipsList; i++) {
|
|||
|
list.children("ul").append("<li>" + res[1][i] + "</li>");
|
|||
|
list.find("li").eq(i).click(function() {
|
|||
|
var keyword = $(this).html();
|
|||
|
parents.find(".smart-tips.search-key").val(keyword);
|
|||
|
parents.children(".super-search-fm").submit();
|
|||
|
list.slideUp(200);
|
|||
|
});
|
|||
|
};
|
|||
|
list.slideDown(200);
|
|||
|
} else {
|
|||
|
list.slideUp(200)
|
|||
|
}
|
|||
|
},
|
|||
|
error: function(res) {
|
|||
|
tipsList = 0;
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
function getSmartTipsBaidu(value,parents) {
|
|||
|
$.ajax({
|
|||
|
type: "GET",
|
|||
|
url: "//sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?cb=iowenHot",
|
|||
|
async: true,
|
|||
|
data: { wd: value },
|
|||
|
dataType: "jsonp",
|
|||
|
jsonp: "cb",
|
|||
|
success: function(res) {
|
|||
|
var list = parents.children(".search-smart-tips");
|
|||
|
list.children("ul").text("");
|
|||
|
tipsList = res.s.length;
|
|||
|
if (tipsList) {
|
|||
|
for (var i = 0; i < tipsList; i++) {
|
|||
|
list.children("ul").append("<li>" + res.s[i] + "</li>");
|
|||
|
list.find("li").eq(i).click(function() {
|
|||
|
var keyword = $(this).html();
|
|||
|
parents.find(".smart-tips.search-key").val(keyword);
|
|||
|
parents.children(".super-search-fm").submit();
|
|||
|
list.slideUp(200);
|
|||
|
});
|
|||
|
};
|
|||
|
list.slideDown(200);
|
|||
|
} else {
|
|||
|
list.slideUp(200)
|
|||
|
}
|
|||
|
},
|
|||
|
error: function(res) {
|
|||
|
tipsList = 0;
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
var listIndex = -1;
|
|||
|
var parent;
|
|||
|
var tipsList = 0;
|
|||
|
var isZhannei = false;
|
|||
|
$(document).on("blur", ".smart-tips.search-key", function() {
|
|||
|
parent = '';
|
|||
|
$(".search-smart-tips").delay(150).slideUp(200)
|
|||
|
});
|
|||
|
$(document).on("focus", ".smart-tips.search-key", function() {
|
|||
|
isZhannei = $(this).attr('zhannei')!=''?true:false;
|
|||
|
parent = $(this).parents('#search');
|
|||
|
if ($(this).val() && !isZhannei) {
|
|||
|
switch(theme.hotWords) {
|
|||
|
case "baidu":
|
|||
|
getSmartTipsBaidu($(this).val(),parent)
|
|||
|
break;
|
|||
|
case "google":
|
|||
|
getSmartTipsGoogle($(this).val(),parent)
|
|||
|
break;
|
|||
|
default:
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
$(document).on("keyup", ".smart-tips.search-key", function(e) {
|
|||
|
isZhannei = $(this).attr('zhannei')!=''?true:false;
|
|||
|
parent = $(this).parents('#search');
|
|||
|
if ($(this).val()) {
|
|||
|
if (e.keyCode == 38 || e.keyCode == 40 || isZhannei) {
|
|||
|
return
|
|||
|
}
|
|||
|
switch(theme.hotWords) {
|
|||
|
case "baidu":
|
|||
|
getSmartTipsBaidu($(this).val(),parent)
|
|||
|
break;
|
|||
|
case "google":
|
|||
|
getSmartTipsGoogle($(this).val(),parent)
|
|||
|
break;
|
|||
|
default:
|
|||
|
}
|
|||
|
listIndex = -1;
|
|||
|
} else {
|
|||
|
$(".search-smart-tips").slideUp(200)
|
|||
|
}
|
|||
|
});
|
|||
|
$(document).on("keydown", ".smart-tips.search-key", function(e) {
|
|||
|
parent = $(this).parents('#search');
|
|||
|
if (e.keyCode === 40) {
|
|||
|
listIndex === (tipsList - 1) ? listIndex = 0 : listIndex++;
|
|||
|
parent.find(".search-smart-tips ul li").eq(listIndex).addClass("current").siblings().removeClass("current");
|
|||
|
var hotValue = parent.find(".search-smart-tips ul li").eq(listIndex).html();
|
|||
|
parent.find(".smart-tips.search-key").val(hotValue)
|
|||
|
}
|
|||
|
if (e.keyCode === 38) {
|
|||
|
if (e.preventDefault) {
|
|||
|
e.preventDefault()
|
|||
|
}
|
|||
|
if (e.returnValue) {
|
|||
|
e.returnValue = false
|
|||
|
}
|
|||
|
listIndex === 0 || listIndex === -1 ? listIndex = (tipsList - 1) : listIndex--;
|
|||
|
parent.find(".search-smart-tips ul li").eq(listIndex).addClass("current").siblings().removeClass("current");
|
|||
|
var hotValue = parent.find(".search-smart-tips ul li").eq(listIndex).html();
|
|||
|
parent.find(".smart-tips.search-key").val(hotValue)
|
|||
|
}
|
|||
|
});
|
|||
|
$('.nav-login-user.dropdown').hover(function(){
|
|||
|
if(!$(this).hasClass('show'))
|
|||
|
$(this).children('a').click();
|
|||
|
},function(){
|
|||
|
//$(this).removeClass('show');
|
|||
|
//$(this).children('a').attr('aria-expanded',false);
|
|||
|
//$(this).children('.dropdown-menu').removeClass('show');
|
|||
|
});
|
|||
|
$('#add-new-sites-modal').on('show.bs.modal', function (event) {
|
|||
|
var button = $(event.relatedTarget);
|
|||
|
var modal = $(this);
|
|||
|
modal.find('[name="term_id"]').val( button.data('terms_id') );
|
|||
|
modal.find('[name="url"]').val( button.data('new_url') );
|
|||
|
modal.find('[name="url_name"]').val('');
|
|||
|
modal.find('[name="url_summary"]').removeClass('is-invalid').val('');
|
|||
|
button.data('new_url','');
|
|||
|
var _url = modal.find('[name="url"]').val();
|
|||
|
if(_url!=''){
|
|||
|
getUrlInfo(_url,modal);
|
|||
|
urlStartValue = _url;
|
|||
|
}
|
|||
|
});
|
|||
|
var urlStartValue = '';
|
|||
|
$('#modal-new-url').on('blur',function(){
|
|||
|
var t = $(this);
|
|||
|
if(t.val()!=''){
|
|||
|
if(isURL(t.val())){
|
|||
|
if(urlStartValue!=t.val()){
|
|||
|
urlStartValue = t.val();
|
|||
|
getUrlInfo(t.val(),$('.add_new_sites_modal'));
|
|||
|
}
|
|||
|
}else{
|
|||
|
showAlert(JSON.parse('{"status":4,"msg":"URL 无效!"}'));
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
$('#modal-new-url-summary').on('blur',function(){
|
|||
|
var t = $(this);
|
|||
|
if(t.val()!=''){
|
|||
|
t.removeClass('is-invalid');
|
|||
|
}
|
|||
|
});
|
|||
|
function getUrlInfo(_url,modal){
|
|||
|
$('#modal-new-url-ico').show();
|
|||
|
$.post("//apiv2.iotheme.cn/webinfo/get.php", { url: _url ,key: theme.apikey },function(data,status){
|
|||
|
if(data.code==0){
|
|||
|
$('#modal-new-url-ico').hide();
|
|||
|
$("#modal-new-url-summary").addClass('is-invalid');
|
|||
|
}
|
|||
|
else{
|
|||
|
$('#modal-new-url-ico').hide();
|
|||
|
if(data.site_title=="" && data.site_description==""){
|
|||
|
$("#modal-new-url-summary").addClass('is-invalid');
|
|||
|
}else{
|
|||
|
modal.find('[name="url_name"]').val(data.site_title);
|
|||
|
modal.find('[name="url_summary"]').val(data.site_description);
|
|||
|
}
|
|||
|
}
|
|||
|
}).fail(function () {
|
|||
|
$('#modal-new-url-ico').hide();
|
|||
|
$(".refre_msg").html('访问超时,请再试试,或者手动填写').show(200).delay(4000).hide(200);
|
|||
|
});
|
|||
|
}
|
|||
|
})(jQuery);
|
|||
|
function isURL(URL){
|
|||
|
var str=URL;
|
|||
|
var Expression=/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
|
|||
|
var objExp=new RegExp(Expression);
|
|||
|
if(objExp.test(str)==true){
|
|||
|
return true;
|
|||
|
}else{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
function isPC() {
|
|||
|
let u = navigator.userAgent;
|
|||
|
let Agents = ["Android", "iPhone", "webOS", "BlackBerry", "SymbianOS", "Windows Phone", "iPad", "iPod"];
|
|||
|
let flag = true;
|
|||
|
for (let i = 0; i < Agents.length; i++) {
|
|||
|
if (u.indexOf(Agents[i]) > 0) {
|
|||
|
flag = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
return flag;
|
|||
|
}
|
|||
|
function chack_name(str){
|
|||
|
//var pattern = RegExp(/[( )(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\»)(\«)(\“)(\”)(\?)(\)]+/);
|
|||
|
var pattern = RegExp(/[( )(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\*)(\()(\))(\+)(\=)(\[)(\])(\{)(\})(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\»)(\«)(\“)(\”)(\?)(\)]+/);
|
|||
|
if (pattern.test(str)){
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
function showAlert(data) {
|
|||
|
var title,alert,ico;
|
|||
|
switch(data.status) {
|
|||
|
case 1:
|
|||
|
title = '成功';
|
|||
|
alert='success';
|
|||
|
ico='icon-adopt';
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
title = '信息';
|
|||
|
alert='info';
|
|||
|
ico='icon-tishi';
|
|||
|
break;
|
|||
|
case 3:
|
|||
|
title = '警告';
|
|||
|
alert='warning';
|
|||
|
ico='icon-warning';
|
|||
|
break;
|
|||
|
case 4:
|
|||
|
title = '错误';
|
|||
|
alert='danger';
|
|||
|
ico='icon-close-circle';
|
|||
|
break;
|
|||
|
default:
|
|||
|
}
|
|||
|
var msg = data.msg;
|
|||
|
if(!$('#alert_placeholder').hasClass('text-sm')){
|
|||
|
$('body').append('<div id="alert_placeholder" class="text-sm" style="position: fixed;bottom: 10px;right: 10px;z-index: 2000;text-align: right;text-align: -webkit-right"></div>')
|
|||
|
}
|
|||
|
$html = $('<div class="alert-body" style="display:none;"><div class="alert alert-'+alert+' text-lg pr-4 pr-md-5" style="text-align:initial"><i class="iconfont '+ico+' icon-lg" style="vertical-align: middle;margin-right: 10px"></i><span style="vertical-align:middle">'+title+'</span><br><span class="text-md" style="margin-left:30px;vertical-align:middle">'+msg+'</span></div></div>');
|
|||
|
$('#alert_placeholder').append( $html );//prepend
|
|||
|
$html.show(200).delay(3500).hide(300, function(){ $(this).remove() });
|
|||
|
}
|
|||
|
function toTarget(menu, padding, isMult) {
|
|||
|
var slider = menu.children(".anchor");
|
|||
|
var target = menu.children(".hover").first() ;
|
|||
|
if (target && 0 < target.length){
|
|||
|
}
|
|||
|
else{
|
|||
|
if(isMult)
|
|||
|
target = menu.find('.active').parent();
|
|||
|
else
|
|||
|
target = menu.find('.active');
|
|||
|
}
|
|||
|
if(0 < target.length){
|
|||
|
if(padding)
|
|||
|
slider.css({
|
|||
|
left: target.position().left + target.scrollLeft() + "px",
|
|||
|
width: target.outerWidth() + "px",
|
|||
|
opacity: "1"
|
|||
|
});
|
|||
|
else
|
|||
|
slider.css({
|
|||
|
left: target.position().left + target.scrollLeft() + (target.outerWidth()/4) + "px",
|
|||
|
width: target.outerWidth()/2 + "px",
|
|||
|
opacity: "1"
|
|||
|
});
|
|||
|
}
|
|||
|
else{
|
|||
|
slider.css({
|
|||
|
opacity: "0"
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
var ioadindex = 0;
|
|||
|
function loadingShow(parent = "body"){
|
|||
|
if($('.load-loading')[0]){
|
|||
|
ioadindex ++;
|
|||
|
return $('.load-loading');
|
|||
|
}
|
|||
|
var load = $('<div class="load-loading" style="display:none"><div class="bg"></div><div class="rounded-lg bg-light" style="z-index:1"><div class="spinner-border m-4" role="status"><span class="sr-only">Loading...</span></div></div></div>');
|
|||
|
$(parent).prepend(load);
|
|||
|
load.fadeIn(200);
|
|||
|
return load;
|
|||
|
}
|
|||
|
function loadingHid(load){
|
|||
|
if(ioadindex>0)
|
|||
|
ioadindex--;
|
|||
|
else{
|
|||
|
ioadindex = 0;
|
|||
|
load.fadeOut(300,function(){ load.remove() });
|
|||
|
}
|
|||
|
}
|
|||
|
function ioPopupTips(type, msg, callBack) {
|
|||
|
var ico = '';
|
|||
|
switch(type) {
|
|||
|
case 1:
|
|||
|
ico='icon-adopt';
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
ico='icon-tishi';
|
|||
|
break;
|
|||
|
case 3:
|
|||
|
ico='icon-warning';
|
|||
|
break;
|
|||
|
case 4:
|
|||
|
ico='icon-close-circle';
|
|||
|
break;
|
|||
|
default:
|
|||
|
}
|
|||
|
var c = type==1 ? 'tips-success' : 'tips-error';
|
|||
|
var html = '<section class="io-bomb '+c+' io-bomb-sm io-bomb-open">'+
|
|||
|
'<div class="io-bomb-overlay"></div>'+
|
|||
|
'<div class="io-bomb-body text-center">'+
|
|||
|
'<div class="io-bomb-content bg-white px-5"><i class="iconfont '+ico+' icon-8x"></i>'+
|
|||
|
'<p class="text-md mt-3">'+msg+'</p>'+
|
|||
|
'</div>'+
|
|||
|
'</div>'+
|
|||
|
'</section>';
|
|||
|
var tips = $(html);
|
|||
|
$('body').addClass('modal-open').append(tips);
|
|||
|
setTimeout(function(){
|
|||
|
$('body').removeClass('modal-open');
|
|||
|
if ($.isFunction(callBack)) callBack(true);
|
|||
|
tips.removeClass('io-bomb-open').addClass('io-bomb-close');
|
|||
|
setTimeout(function(){
|
|||
|
tips.removeClass('io-bomb-close');
|
|||
|
setTimeout(function(){
|
|||
|
tips.remove();
|
|||
|
}, 200);
|
|||
|
},400);
|
|||
|
},2000);
|
|||
|
}
|
|||
|
function ioPopup(type, html, maskStyle, btnCallBack) {
|
|||
|
var maskStyle = maskStyle ? 'style="' + maskStyle + '"' : '';
|
|||
|
var size = '';
|
|||
|
if( type == 'big' ){
|
|||
|
size = 'io-bomb-lg';
|
|||
|
}else if( type == 'no-padding' ){
|
|||
|
size = 'io-bomb-nopd';
|
|||
|
}else if( type == 'cover' ){
|
|||
|
size = 'io-bomb-cover io-bomb-nopd';
|
|||
|
}else if( type == 'full' ){
|
|||
|
size = 'io-bomb-xl';
|
|||
|
}else if( type == 'small' ){
|
|||
|
size = 'io-bomb-sm';
|
|||
|
}else if( type == 'confirm' ){
|
|||
|
size = 'io-bomb-md';
|
|||
|
}
|
|||
|
var template = '\
|
|||
|
<div class="io-bomb ' + size + ' io-bomb-open">\
|
|||
|
<div class="io-bomb-overlay" ' + maskStyle + '></div>\
|
|||
|
<div class="io-bomb-body text-center">\
|
|||
|
<div class="io-bomb-content bg-white">\
|
|||
|
'+html+'\
|
|||
|
</div>\
|
|||
|
<div class="btn-close-bomb mt-2">\
|
|||
|
<i class="iconfont icon-close-circle"></i>\
|
|||
|
</div>\
|
|||
|
</div>\
|
|||
|
</div>\
|
|||
|
';
|
|||
|
var popup = $(template);
|
|||
|
$('body').addClass('modal-open').append(popup);
|
|||
|
var close = function(){
|
|||
|
$('body').removeClass('modal-open');
|
|||
|
$(popup).removeClass('io-bomb-open').addClass('io-bomb-close');
|
|||
|
setTimeout(function(){
|
|||
|
$(popup).removeClass('io-bomb-close');
|
|||
|
setTimeout(function(){
|
|||
|
popup.remove();
|
|||
|
}, 200);
|
|||
|
},600);
|
|||
|
}
|
|||
|
$(popup).on('click touchstart', '.btn-close-bomb i, .io-bomb-overlay', function(event) {
|
|||
|
event.preventDefault();
|
|||
|
if ($.isFunction(btnCallBack)) btnCallBack(true);
|
|||
|
close();
|
|||
|
});
|
|||
|
return popup;
|
|||
|
}
|
|||
|
function ioConfirm(message, btnCallBack) {
|
|||
|
var template = '\
|
|||
|
<div class="io-bomb io-bomb-confirm io-bomb-open">\
|
|||
|
<div class="io-bomb-overlay"></div>\
|
|||
|
<div class="io-bomb-body">\
|
|||
|
<div class="io-bomb-content bg-white">\
|
|||
|
'+message+'\
|
|||
|
<div class="text-center mt-3">\
|
|||
|
<button class="btn btn-danger mx-2" onclick="_onclick(true);">确定</button>\
|
|||
|
<button class="btn btn-light mx-2" onclick="_onclick(false);">取消</button>\
|
|||
|
</div>\
|
|||
|
</div>\
|
|||
|
</div>\
|
|||
|
</div>\
|
|||
|
';
|
|||
|
var popup = $(template);
|
|||
|
$('body').addClass('modal-open').append(popup);
|
|||
|
_onclick = function (r) {
|
|||
|
close();
|
|||
|
if ($.isFunction(btnCallBack)) btnCallBack(r);
|
|||
|
};
|
|||
|
var close = function(){
|
|||
|
$('body').removeClass('modal-open');
|
|||
|
$(popup).removeClass('io-bomb-open').addClass('io-bomb-close');
|
|||
|
setTimeout(function(){
|
|||
|
$(popup).removeClass('io-bomb-close');
|
|||
|
setTimeout(function(){
|
|||
|
popup.remove();
|
|||
|
}, 200);
|
|||
|
},600);
|
|||
|
}
|
|||
|
return popup;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Minified by jsDelivr using Terser v5.3.5.
|
|||
|
* Original file: /npm/js-base64@3.6.0/base64.js
|
|||
|
*
|
|||
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|||
|
*/
|
|||
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):function(){const r=e.Base64,o=t();o.noConflict=()=>(e.Base64=r,o),e.Meteor&&(Base64=o),e.Base64=o}()}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:this,(function(){"use strict";const e="3.6.0",t="function"==typeof atob,r="function"==typeof btoa,o="function"==typeof Buffer,n="function"==typeof TextDecoder?new TextDecoder:void 0,a="function"==typeof TextEncoder?new TextEncoder:void 0,f=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],i=(e=>{let t={};return e.forEach(((e,r)=>t[e]=r)),t})(f),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,u=String.fromCharCode.bind(String),s="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(e,t=(e=>e))=>new Uint8Array(Array.prototype.slice.call(e,0).map(t)),d=e=>e.replace(/[+\/]/g,(e=>"+"==e?"-":"_")).replace(/=+$/m,""),l=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),h=e=>{let t,r,o,n,a="";const i=e.length%3;for(let i=0;i<e.length;){if((r=e.charCodeAt(i++))>255||(o=e.charCodeAt(i++))>255||(n=e.charCodeAt(i++))>255)throw new TypeError("invalid character found");t=r<<16|o<<8|n,a+=f[t>>18&63]+f[t>>12&63]+f[t>>6&63]+f[63&t]}return i?a.slice(0,i-3)+"===".substring(i):a},p=r?e=>btoa(e):o?e=>Buffer.from(e,"binary").toString("base64"):h,y=o?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let r=0,o=e.length;r<o;r+=4096)t.push(u.apply(null,e.subarray(r,r+4096)));return p(t.join(""))},A=(e,t=!1)=>t?d(y(e)):y(e),b=e=>{if(e.length<2)return(t=e.charCodeAt(0))<128?e:t<2048?u(192|t>>>6)+u(128|63&t):u(224|t>>>12&15)+u(128|t>>>6&63)+u(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return u(240|t>>>18&7)+u(128|t>>>12&63)+u(128|t>>>6&63)+u(128|63&t)},g=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,B=e=>e.replace(g,b),x=o?e=>Buffer.from(e,"utf8").toString("base64"):a?e=>y(a.encode(e)):e=>p(B(e)),C=(e,t=!1)=>t?d(x(e)):x(e),m=e=>C(e,!0),U=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,F=e=>{switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return u(55296+(t>>>10))+u(56320+(1023&t));case 3:return u((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return u((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},w=e=>e.replace(U,F),S=e=>{if(e=e.replace(/\s+/g,""),!c.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let t,r,o,n="";for(let a=0;a<e.length;)t=i[e.charAt(a++)]<<18|i[e.charAt(a++)]<<12|(r=i[e.charAt(a++)])<<6|(o=i[e.charAt(a++)]),n+=64===r?u(t>>16&255):64===o?u(t>>16&255,t>>8&255):u(t>>16&255,t>>8&255,255&t);return n},E=t?e=>atob(l(e)):o?e=>Buffer.from(e,"base64").toString("binary"):S,v=o?e=>s(Buffer.from(e,"base64")):e=>s(E(e),(e=>e.charCodeAt(0))),D=e=>v(z(e)),R=o?e=>Buffer.from(e,"base64").toString("utf8"):n?e=>n.decode(v(e)):e=>w(E(e)),z=e=>l(e.replace(/[-_]/g,(e=>"-"==e?"+":"/"))),T=e=>R(z(e)),Z=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),j=function(){const e=(e,t)=>Object.defineProperty(String.prototype,e,Z(t));e("fromBase64",(function(){return T(this)})),e("toBase64",(function(e){return C(this,e)})),e("toBase64URI",(function(){return C(this,!0)})),e("toBase64URL",(function(){return C(this,!0)})),e("toUint8Array",(function(){return D(this)}))},I=function(){const e=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,Z(t));e("toBase64",(function(e){return A(this,e)})),e("toBase64URI",(function(){return A(this,!0)})),e("toBase64URL",(function(){return A(this,!0)}))},O={version:e,VERSION:"3.6.0",atob:E,atobPolyfill:S,btoa:p,btoaPolyfill:h,fromBase64:T,toBase64:C,encode:C,encodeURI:m,encodeURL:m,utob:B,btou:w,decode:T,isValid:e=>{if("string"!=typeof e)return!1;const t=e.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},fromUint8Array:A,toUint8Array:D,extendString:j,extendUint8Array:I,extendBuiltins:()=>{
|
|||
|
/**
|
|||
|
* Chrome Bookmarks Converter
|
|||
|
* v1.0.0
|
|||
|
*
|
|||
|
* Convert a standard exported Google Chrome bookmarks HTML file into a JavaScript oject structure.
|
|||
|
*
|
|||
|
* Dependencies: jQuery (latest).
|
|||
|
*
|
|||
|
* @summary Use JavaScript to convert an exported Chrome bookmarks HTML file. Export the results to JSON.
|
|||
|
* @author Jason Snelders <jason@jsnelders.com>
|
|||
|
*
|
|||
|
* Created at : 2019-11-14 22:34:00
|
|||
|
* Last modified : 2019-11-14 22:34:00
|
|||
|
*/
|
|||
|
function ChromBookmarkConverter(){this.bookmarks={folders:[]},this.stripUnneededTags=function(a){return a=a.replace(/<p>/gi,""),a=a.replace(/<P>/gi,""),a=a.replace(/<dt>/gi,""),a=a.replace(/<DT>/gi,"")},this.processChromeBookmarksContent=function(a){var c,b=this;a=this.stripUnneededTags(a),c=$.parseHTML(a),$.each(c,function(a,c){if("DL"==c.tagName){var d={type:"folder",title:"未命名",items:[]};b.bookmarks.folders.push(d),b.processDL(c,1,d)}})},this.processDL=function(a,b,c){var d=this,e=0,f={},g={type:"folder",title:"",add_date:"",last_modified:"",items:[]},h={},i=$(a),j=!1;$.each(i.children(),function(a,i){var k,l,m,n,o,p,q,r,s;e+=1,k=b+"."+e,1==j&&i.tagName.toLowerCase()!="DL".toLowerCase()&&(j=!1,console.log("h3",f),g.items.push(f)),i.tagName.toLowerCase()=="DL".toLowerCase()&&(g={type:"folder",title:f.title,add_date:f.add_date,last_modified:f.last_modified,items:[]},1==j&&(j=!1),d.bookmarks.folders.push(g),d.processDL(i,k,g)),i.tagName.toLowerCase()=="H3".toLowerCase()&&(l=$(i),m=l.text()?l.text():"未命名",n=l.attr("add_date"),o=l.attr("last_modified"),f={type:"header",title:m,add_date:n,last_modified:o},j=!0),"a"==i.tagName.toLowerCase()&&isURL($(i).attr("href"))&&""!=$(i).text()&&(p=$(i),q=p.text(),r=p.attr("href"),s=p.attr("add_date"),p.attr("icon"),h={type:"link",title:q,href:r,add_date:s},c.items.push(h))})}}
|