Files
POST_ORDER_BY_ARCHIVE/js/apop-style.js
T
nobu 8ec3d53bfe WP PLUGIN
・選択カスタムフィールドをオートコンプリートに変更
・ソート対象名:「通常」から「最新の投稿」に変更
2021-06-27 18:57:34 +09:00

237 lines
9.8 KiB
JavaScript

jQuery(function ($) {
//tab menu
change_tab_menu();
//custom orders
order_list();
//order type
change_sort_box();
//Tax select
select_tax();
//per page
change_search_per_page();
change_tax_per_page();
change_normal_field_sort();
custom_field_select();
function change_tab_menu() {
let apop_submit_type = $('#apop_submit_type');
let order_nav_list = $('.post-order-nav li');
let order_box = $('.post-order-box');
init();
click_menu();
function init() {
let submit_type = apop_submit_type.val();
order_nav_list.removeClass('en');
order_box.hide();
$('.post-order-nav li:eq(' + submit_type + ')').addClass('en');
$('.post-order-box:eq(' + submit_type + ')').show()
}
function click_menu() {
order_nav_list.on('click', function () {
if (!$(this).hasClass('en')) {
let target_index = $(this).index();
order_nav_list.removeClass('en');
$(this).addClass('en');
order_box.hide();
$('.post-order-box:eq(' + target_index + ')').show();
apop_submit_type.val(target_index);
}
});
}
}
function order_list() {
let cat_ul_count = $('.post-order-list').length; //カテゴリ総数
for (let i = 0; i < cat_ul_count; i++) {
let my_list = $('.post-order-list:eq(' + i + ')');
my_list.sortable(
{
update: function () {
let list_count = $('.product-list', my_list).length;
for (let j = 0; j < list_count; j++) {
let list_order_num = j + 1;
$('.list-order:eq(' + j + ')', my_list).val(list_order_num);
$('.list-order:eq(' + j + ')', my_list).siblings('.sort-num-label').text(list_order_num);
}
}
}
);
my_list.disableSelection();
}
}
function change_sort_box() {
let s_radio = $('.sort_menu');
let sort_menu_size = $('.sort-menu-list').length;
$('.sort_box').hide();
for (let i = 0; i < sort_menu_size; i++) {
let type_index = $('.sort-menu-list:eq(' + i + ')').data('order_target') - 1;
$('.sort-menu-list:eq(' + i + ')').siblings('.sort_box:eq(' + type_index + ')').show();
}
s_radio.on('click', function () {
let target_index = $(this).val() - 1;
$(this).parents('.list-orders-inner').find('.sort_box').hide();
$(this).parents('.list-orders-inner').find('.sort_box:eq(' + target_index + ')').show();
})
}
function select_tax() {
let select_cat_checkbox = $('.select_cat_checkbox');
let input_chk_size = select_cat_checkbox.length;
let i = 0;
for (i; i < input_chk_size; i++) {
let chk = $('.select_cat_checkbox:eq(' + i + '):checked').length;
if (chk == 1) {
$('.select_cat:eq(' + i + ')').siblings('.select-per-page').show();
} else {
$('.select_cat:eq(' + i + ')').siblings('.select-per-page').hide();
}
}
select_cat_checkbox.on('click', function () {
let checked = $(this).prop('checked');
if (checked) {
$(this).parent().parent().siblings('.select-per-page').show(200);
} else {
$(this).parent().parent().siblings('.select-per-page').hide(200);
}
});
}
function change_search_per_page() {
let per_page_cat = $('.per_page_search');
let per_page_input = $('.per_page_search_input');
if (per_page_input.val() == '') {
per_page_input.prop('disabled', true);
} else {
per_page_input.prop('disabled', false);
}
per_page_cat.on('click', function () {
if ($(this).val() != 'default' && $(this).val() != '-1' && $(this).val() != 'all') {
per_page_input.prop('disabled', false);
} else {
per_page_input.val('');
per_page_input.prop('disabled', true);
}
})
}
function change_tax_per_page() {
let set_number = $('.set_number');
let input_chk_size = set_number.length;
for (let i = 0; i < input_chk_size; i++) {
let input_num_box = $('.set_number:eq(' + i + ')').siblings('.per_page_cat_input');
if (input_num_box.val() == '') {
input_num_box.prop('disabled', true);
} else {
input_num_box.prop('disabled', false);
}
}
$('.per_page_cat').on('click', function () {
if ($(this).hasClass('set_number')) {
$(this).siblings('.per_page_cat_input').prop('disabled', false);
} else {
$(this).parents('li').find('.per_page_cat_input').val('').prop('disabled', true);
}
});
}
function change_normal_field_sort() {
let s_box = $('.sort_box');
let targets = '.sort_date_check, .sort_title_check, .sort_ID_check, .sort_modified_check';
s_box.find(targets).each(function () {
if ($(this).prop('checked') == false) {
$(this).parents('.product-list-sort-type').find('.order_param').prop('disabled', true);
let disable_list = $(this).parents('.sort_box').find('.disable-normal-list');
$(this).parents('li').appendTo(disable_list);
}
});
$(targets).on('click', function () {
if ($(this).prop('checked') == true) {
$(this).parents('.product-list-sort-type').find('.order_param').prop('disabled', false);
let enable_list = $(this).parents('.sort_box').find('.post-order-list');
$(this).parents('li').appendTo(enable_list).removeClass('no-order').hide().fadeIn(200);
} else {
$(this).parents('.product-list-sort-type').find('.order_param').prop('disabled', true);
let disable_list = $(this).parents('.sort_box').find('.disable-normal-list');
$(this).parents('li').appendTo(disable_list).addClass('no-order').hide().fadeIn(200);
}
});
}
function custom_field_select() {
let s_box = $('.sort_box');
let targets = $('.custom-field-type');
let en_dis_check = $('.custom_field_check');
// カスタムフィールドソートの有効・無効を判定する。
// 有効の場合はカスタムフィールド選択or追加のステータスに応じてテキストエリアとセレクトタグenableに変更し表示を切り替える。
// 無効の場合はカスタムフィールドのテキストエリアとセレクトタグをDisableにし無効ボックスに移動する。
s_box.find('.custom_field_check').each(function () {
if ($(this).prop('checked') == false) {
let disable_list = $(this).parents('.sort_box').find('.disable-normal-list');
$(this).parents('li').appendTo(disable_list);
dis_list($(this));
} else {
let target_type = $(this).parents('.product-list-sort-type').find('.custom-field-type').filter(':checked').val();
en_dis_list($(this), target_type);
}
});
//有効・無効チェックボックスクリック時
en_dis_check.on('click', function () {
if ($(this).prop('checked') == true) {
let enable_list = $(this).parents('.sort_box').find('.post-order-list');
let target_type = $(this).parents('.product-list-sort-type').find('.custom-field-type').filter(':checked').val();
$(this).parents('.product-list-sort-type').find('.order_param').prop('disabled', false);
$(this).parents('li').appendTo(enable_list).removeClass('no-order').hide().fadeIn(200);
en_dis_list($(this), target_type);
} else {
let disable_list = $(this).parents('.sort_box').find('.disable-normal-list');
$(this).parents('.product-list-sort-type').find('.order_param').prop('disabled', true);
$(this).parents('li').appendTo(disable_list).addClass('no-order').hide().fadeIn(200);
dis_list($(this));
}
});
//選択・追加のカスタムフィールド種類ラジオボタンのクリック
targets.on('click', function () {
en_dis_list($(this), $(this).val());
});
function dis_list(obj) {
obj.parents('.product-list-sort-type').find('.custom_field_key').prop('disabled', true);
obj.parents('.product-list-sort-type').find('.custom_field_key_select').prop('disabled', true);
}
function en_dis_list(obj, type) {
if (type == 1) {
obj.parents('.product-list-sort-type').find('.custom_field_key_select').prop('disabled', false).show();
obj.parents('.product-list-sort-type').find('.custom_field_key').prop('disabled', true).hide();
obj.parents('.product-list-sort-type').find('.custom-field-select-alert').text('既存のカスタムフィールドから選択');
} else if (type == 2) {
obj.parents('.product-list-sort-type').find('.custom_field_key').prop('disabled', false).show();
obj.parents('.product-list-sort-type').find('.custom_field_key_select').prop('disabled', true).hide();
obj.parents('.product-list-sort-type').find('.custom-field-select-alert').text('APOP専用カスタムフィールドを追加');
}
}
}
});