Файловый менеджер - Редактировать - /home/harasnat/www/horse/wp-content/plugins/admin-menu-editor/js/free-ko-extensions.ts
Назад
namespace AmeKoFreeExtensions { type ExtraFieldList = Array<[string, string | KnockoutObservable<string>]>; interface SaveFormConfig { submitUrl: string; action: string; actionNonce: string; referer?: string; settingsGetter: () => object; saveButtonText?: string; wrapButton?: boolean; formClasses?: string[] | KnockoutObservable<string[]>; extraFields?: ExtraFieldList; selectedActor?: KnockoutObservable<IAmeActor | null>; } /** * Partial save form configuration that can be received from the server, generated by the PHP * component of this feature (ameKnockoutSaveForm). */ export type SaveFormConfigFromServer = Pick< SaveFormConfig, 'submitUrl' | 'action' | 'actionNonce' | 'referer' | 'saveButtonText' >; export class SaveSettingsForm { public readonly submitUrl: string; public readonly action: string; public readonly actionNonce: string; public readonly settingsGetter: () => object; public readonly settingsJson: KnockoutObservable<string>; public readonly saveButtonText: string; public readonly wrapButton: boolean; public readonly formClassString: KnockoutObservable<string>; public readonly referer: string; public readonly includesSelectedActor: boolean; public readonly selectedActorId: KnockoutObservable<string>; public readonly extraFields: ExtraFieldList; public readonly isSaving: KnockoutObservable<boolean> = ko.observable(false); constructor(config: SaveFormConfig) { this.submitUrl = config.submitUrl; this.action = config.action; this.actionNonce = config.actionNonce; this.referer = config.referer || ''; this.settingsGetter = config.settingsGetter; this.settingsJson = ko.observable(''); this.saveButtonText = config.saveButtonText || 'Save Changes'; this.wrapButton = (typeof config.wrapButton !== 'undefined') ? config.wrapButton : true; let formClasses: KnockoutObservable<string[]>; if (config.formClasses) { formClasses = ko.isObservable<string[]>(config.formClasses) ? config.formClasses : ko.observable(config.formClasses || []); } else { formClasses = ko.observable<string[]>([]); } this.formClassString = ko.pureComputed(() => formClasses().join(' ')); this.includesSelectedActor = !!config.selectedActor; this.selectedActorId = ko.pureComputed(() => { if (config.selectedActor) { const actor = config.selectedActor(); return actor ? actor.getId() : ''; } return ''; }); this.extraFields = config.extraFields || []; } saveChanges() { const settings = this.settingsGetter(); this.settingsJson(JSON.stringify(settings)); this.isSaving(true); return true; } } ko.components.register('ame-save-settings-form', { viewModel: { createViewModel: function (params: { form: SaveSettingsForm | unknown }) { if (params.form instanceof SaveSettingsForm) { return params.form; } throw new Error('Invalid form parameter'); } }, template: ` <form method="post" class="ame-ko-save-form" data-bind="submit: saveChanges, class: formClassString, attr: {action: submitUrl}"> <input type="hidden" name="settings" data-bind="value: settingsJson"> <input type="hidden" name="action" data-bind="value: action"> <input type="hidden" name="_wpnonce" data-bind="value: actionNonce"> <!-- ko if: referer --> <input type="hidden" name="_wp_http_referer" data-bind="value: referer"> <!-- /ko --> <!-- ko if: includesSelectedActor --> <input type="hidden" name="selectedActor" data-bind="value: selectedActorId"> <!-- /ko --> <!-- ko foreach: extraFields --> <!-- ko if: $data[0] --> <input type="hidden" data-bind="attr: {name: $data[0]}, value: $data[1]"> <!-- /ko --> <!-- /ko --> <!-- ko if: wrapButton --> <p class="submit"> <input type="submit" class="button button-primary" disabled="disabled" data-bind="disable: isSaving(), value: saveButtonText" /> </p> <!-- /ko --> <!-- ko ifnot: wrapButton --> <input type="submit" class="button button-primary" disabled="disabled" data-bind="disable: isSaving(), value: saveButtonText" /> <!-- /ko --> </form> ` }); }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0.02 |
proxy
|
phpinfo
|
Настройка