User:Doğu/Adiutor-OPT.js

/* * Adiutor: A gadget to assist various user actions * Author: Vikipolimer * Translation: Kadı * Licencing and attribution: WP:Adiutor * Module: Adiutor options */ /* */ $.when(mw.loader.using(["mediawiki.user", "oojs-ui-core", "oojs-ui-windows", ]), $.ready).then(function {   var mwConfig = mw.config.get(["wgAction", "wgPageName", "wgTitle", "wgUserGroups", "wgUserName", "wgCanonicalNamespace", "wgNamespaceNumber"]);    var api = new mw.Api;    var prdSendMessageToCreator = localStorage.getItem("prdSendMessageToCreator") == "true";

function AdiutorOptionsDialog(config) { AdiutorOptionsDialog.super.call(this, config); }   OO.inheritClass(AdiutorOptionsDialog, OO.ui.ProcessDialog); AdiutorOptionsDialog.static.name = 'AdiutorOptionsDialog'; AdiutorOptionsDialog.static.title = 'Adiutor - Options'; AdiutorOptionsDialog.static.actions = [{ action: 'save', label: 'Update', flags: ['primary', 'progressive'] }, {       label: 'Cancel', flags: 'safe' }];   AdiutorOptionsDialog.prototype.initialize = function { AdiutorOptionsDialog.super.prototype.initialize.apply(this, arguments); this.content = new OO.ui.PanelLayout({           padded: true,            expanded: false        }); AdiutorSettings = new OO.ui.FieldsetLayout({           label: 'Settings',        }); AdiutorSettings.addItems([           csdSendMessageToCreator = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("csdSendMessageToCreator") == "true"            }), { align: 'inline', label: 'Notify the creator of the page which nominated for speedy deletion.', help: 'Explanation' }),           /*afdSendMessageToCreator = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("afdSendMessageToCreator") == "true"            }), { align: 'inline', label: 'Notify the creator of the page which nominated for deletion.', help: 'Explanation' }),*/           prdSendMessageToCreator = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("prdSendMessageToCreator") == "true"            }), { align: 'inline', label: 'Notify the user who created the page which proposed for deletion.', help: 'Explanation' }),           csdLogNominatedPages = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("csdLogNominatedPages") == "true"            }), { align: 'inline', label: 'Log speedy deletion requests', help: 'Explanation' }),           csdLogPageName = new OO.ui.FieldLayout(new OO.ui.TextInputWidget({                value: localStorage.getItem("csdLogPageName"),            }), { label: 'Name of CSD Logs', help: 'Explanation' }),           /*afdLogNominatedPages = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("afdLogNominatedPages") == "true"            }), { align: 'inline', label: 'Keep a log of pages which I have nominated for deletion', help: 'Explanation' }),           afdLogPageName = new OO.ui.FieldLayout(new OO.ui.TextInputWidget({                value: localStorage.getItem("afdLogPageName")            }), { label: 'Name of AFD Logs', help: 'Explanation' }),*/           prdLogNominatedPages = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("prdLogNominatedPages") == "true"            }), { align: 'inline', label: 'Keep a log of pages that I proposed for deletion.', help: 'Explanation' }),           prdLogPageName = new OO.ui.FieldLayout(new OO.ui.TextInputWidget({                value: localStorage.getItem("prdLogPageName"),            }), { label: 'Name of PROD Logs', help: 'Explanation' }),           /*            afdNominateOpinionsLog = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("afdNominateOpinionsLog") == "true"            }), { align: 'inline', label: 'Log my AFD comments', help: 'Explanation' }),           afdOpinionLogPageName = new OO.ui.FieldLayout(new OO.ui.TextInputWidget({                value: localStorage.getItem("afdOpinionLogPageName"),            }), { label: 'Name of AFD comments log', help: 'Explanation' }),*/           showMyStatus = new OO.ui.FieldLayout(new OO.ui.CheckboxInputWidget({                selected: localStorage.getItem("showMyStatus") == "true"            }), { align: 'inline', label: 'Show users activity status', help: 'When this option is activated, you can see the activity status on the user pages.' }),       ]);        this.content.$element.append(AdiutorSettings.$element); this.$body.append(this.content.$element); };   AdiutorOptionsDialog.prototype.getActionProcess = function(action) { var dialog = this; if (action) { return new OO.ui.Process(function {               UpdatedOptions = JSON.stringify([{ "name": "csdSendMessageToCreator", "value": csdSendMessageToCreator.fieldWidget.selected }, {                   "name": "csdLogNominatedPages", "value": csdLogNominatedPages.fieldWidget.selected }, {                   "name": "csdLogPageName", "value": csdLogPageName.fieldWidget.value }, {                   "name": "afdSendMessageToCreator", "value": afdSendMessageToCreator.fieldWidget.selected }, {                   "name": "afdLogNominatedPages", "value": afdLogNominatedPages.fieldWidget.selected }, {                   "name": "afdLogPageName", "value": afdLogPageName.fieldWidget.value }, {                   "name": "prdSendMessageToCreator", "value": prdSendMessageToCreator.fieldWidget.selected }, {                   "name": "prdLogNominatedPages", "value": prdLogNominatedPages.fieldWidget.selected }, {                   "name": "prdLogPageName", "value": prdLogPageName.fieldWidget.value }, {                   "name": "afdNominateOpinionsLog", "value": afdNominateOpinionsLog.fieldWidget.selected }, {                   "name": "afdOpinionLogPageName", "value": afdOpinionLogPageName.fieldWidget.value }, {                   "name": "showMyStatus", "value": showMyStatus.fieldWidget.selected }, {                   "name": "MyStatus", "value": "active" }]);               updateOptions(UpdatedOptions);                dialog.close({ action: action });           });        }        return AdiutorOptionsDialog.super.prototype.getActionProcess.call(this, action); };   var windowManager = new OO.ui.WindowManager; $(document.body).append(windowManager.$element); var dialog = new AdiutorOptionsDialog; windowManager.addWindows([dialog]); windowManager.openWindow(dialog);

function updateOptions(UpdatedOptions) { api.postWithToken('csrf', {           action: 'edit',            title: 'User:' + mwConfig.wgUserName + '/Adiutor-options.js',            text: UpdatedOptions,            //tags: 'Adiutor',            summary: 'Adiutor user settings has been updated',            format: 'json'        }).done(function {            var Notification = new OO.ui.MessageWidget({ type: 'success', label: 'Your Adiutor setting has been updated successfully.', classes: ['afd-helper-notification'], showClose: true });           $('.mw-page-container-inner').append(Notification.$element);            setTimeout(function { $(".afd-helper-notification").hide('blind', {}, 500); }, 5000);       });    } }); /* */