console.log('legacy Widget'); (function ($, document) { function aksrt__(key) { var map = window.aksrt_widget_set_var && window.aksrt_widget_set_var.i18n; if (map && Object.prototype.hasOwnProperty.call(map, key)) { return map[key]; } return key; } /** 带图片上传的小工具 repeater 行(幻灯片 / 友情链接等) */ function buildMediaRepeaterRow(labelPrefix, index, nameAttr, labels) { var i1 = index + 1; var titleLabel = labelPrefix + i1 + (labels.title || '-标题:'); var decLabel = labelPrefix + i1 + (labels.dec || '-简介'); var hrefLabel = labelPrefix + i1 + (labels.href || '-链接'); var linkLabel = labelPrefix + i1 + (labels.link || '-图片'); return ( '
' + '

' + labelPrefix + i1 + '

' + '' + '' + '' + '
' + '' + '' + '
' ); } /** 消息 repeater 行 */ function buildNoticeRepeaterRow(index, nameAttr) { var i1 = index + 1; return ( '
' + '

消息' + i1 + '

' + '' + '' + '' + '
' ); } /** WIE:导入模式单选 HTML */ function getImportModeHtml(radioName, replaceSpanClass, appendSpanClass) { return ( '
' + '
' + '
' + '' + '' + '
' ); } /** WIE:填充导入模式文案 */ function bindImportModeI18n($root, replaceSelector, appendSelector) { $root.find('.aksrt-wie-modal__import-mode-title').text(aksrt__('importModeLabel')); $root.find(replaceSelector).text(aksrt__('importModeReplace')); $root.find(appendSelector).text(aksrt__('importModeAppend')); } /** WIE:admin-ajax POST */ function wiePost(zibConfig, action, data) { return $.ajax({ url: zibConfig.ajaxUrl, type: 'POST', dataType: 'json', data: $.extend( { action: action, nonce: zibConfig.nonce, }, data || {} ), }); } /** WIE:解析服务端 message */ function getWieMessage(res, fallbackKey) { return (res.data && res.data.message) || aksrt__(fallbackKey); } /** WIE:清空结果区样式 */ function clearWieResult($result) { return $result.removeClass('is-ok is-warn is-err').text(''); } /** WIE:显示错误 */ function showWieError($result, message) { $result.removeClass('is-ok is-warn').addClass('is-err').text(message); } /** WIE:网络错误 */ function showNetworkError($result) { showWieError($result, aksrt__('admin_network_error')); } /** WIE:导入成功后的刷新按钮 */ function getReloadBtnHtml() { return ( '

' + (aksrt__('reloadPage') || '刷新页面') + '

' ); } /** * WIE:渲染导入成功/失败结果 * @param {jQuery} $result * @param {object} res - WP ajax 响应 * @param {object} [opts] * @param {string} [opts.failKey] * @param {boolean} [opts.autoReload] * @param {Function} [opts.onSuccess] */ function renderImportResult($result, res, opts) { opts = opts || {}; var failKey = opts.failKey || 'admin_import_failed'; clearWieResult($result); if (res.success && res.data) { var reloadBtn = getReloadBtnHtml(); var lines = [res.data.message || aksrt__('admin_import_success')]; if (res.data.warnings && res.data.warnings.length) { lines = lines.concat(res.data.warnings); $result.addClass('is-warn').html(lines.join('
') + reloadBtn); } else { $result.addClass('is-ok').html(lines[0] + reloadBtn); } if (opts.onSuccess) { opts.onSuccess(res); } if (opts.autoReload) { forceRefreshPage(); } return true; } showWieError($result, getWieMessage(res, failKey)); return false; } /** WIE:提交按钮 loading */ function withButtonLoading($btn, loadingText, idleText, requestFn) { $btn.prop('disabled', true).text(loadingText); var jq = requestFn(); if (!jq || !jq.always) { $btn.prop('disabled', false).text(idleText); return jq; } return jq.always(function () { $btn.prop('disabled', false).text(idleText); }); } /** WIE:强制刷新页面 */ function forceRefreshPage() { setTimeout(function () { window.location.reload(); }, 200); } /** * WIE:弹层工厂(导出/导入、模板选择共用外壳) * @param {object} opts * @returns {{ ensure: Function, close: Function, open: Function, $result: Function, $el: Function, setImportModeDefault: Function }} */ function createWieModal(opts) { var $modal = null; function ensure() { if ($modal && $modal.length) { return $modal; } var shell = ''; $modal = $(shell).appendTo('body'); if (opts.importMode) { bindImportModeI18n($modal, opts.importMode.replaceSelector, opts.importMode.appendSelector); } if (opts.onInit) { opts.onInit($modal); } $modal.find('.aksrt-wie-modal__close, ' + (opts.cancelSelector || '')).on('click', close); $modal.on('click', '[' + opts.closeAttr + ']', close); $modal.find('.aksrt-wie-modal__dialog').on('click', function (e) { e.stopPropagation(); }); return $modal; } function close() { if ($modal && $modal.length) { $modal.removeClass('is-open').attr('aria-hidden', 'true'); } } function open() { ensure(); clearWieResult($result()); $modal.addClass('is-open').attr('aria-hidden', 'false'); } function $result() { return ensure().find(opts.resultSelector || '.aksrt-wie-modal__result'); } function setImportModeDefault(radioName, value) { ensure().find('input[name="' + radioName + '"][value="' + (value || 'append') + '"]').prop('checked', true); } return { ensure: ensure, close: close, open: open, $result: $result, $el: function () { return ensure(); }, setImportModeDefault: setImportModeDefault, }; } /** WIE:渲染模板列表项 */ function appendTemplateListItem($list, template) { var id = template.id || ''; var $item = $('
'); var $row = $('
'); var $label = $('