跳转到内容

User:ZhaoFJx/tools/todo.js

维基百科,自由的百科全书
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
//<nowiki>
//改编自[[User:魔琴/gadgets/todo]],修改适配工作列表
mw.loader.using(['mediawiki.util', 'mediawiki.api', 'ext.gadget.site-lib'/* ,'ext.gadget.HanAssist'*/ ], function () {

    function han(s, t) {
        return wgULS(s, t);
    }

    var API = new mw.Api();
    var cmt = "";
    var user = mw.config.get('wgUserName');
    var page = mw.config.get('wgPageName');
    var dl;
    
    if (user === null)
        return;

    var personallink = mw.util.addPortletLink('p-personal', '/wiki/Special:Mypage/to_do', '任务列表', 'pt-zv-todo', han('待办事项', '待辦事項'), null, '#pt-sandbox');
    
    var link = mw.util.addPortletLink('p-cactions', '#', '+to_do', 'ca-zv-todo', han('列入待办事项', '列入待辦事項'));

    $(link).click(function(event) {
        main();
    });

    function main() {
        cmt = ""; 

        var html =
        '<div id="zv-todo-dialog">' +
        '<p>' + han('备注', '備註') +
        '<textarea name="zv-todo-cmt" id="zv-todo-cmt" rows=2 placeholder=' + han('按下回车,自动保存','按下Enter,自動保存') + '></textarea>' +
        '</div>';

        if (dl) {
            dl.html(html).closest('.ui-dialog-content').dialog('destroy').remove();
            dl = null;
        }

        dl = $(html).dialog({
            title: han('加入待办事项', '加入待辦事項'),
            minWidth: 600,
            minHeight: 200,
            buttons: [
                {
                    text: '保存',
                    click: function () {
                        processCmt();
                        post();
                        $(this).dialog('close');
                    }
                },
                {
                    text: '取消',
                    click: function () {
                        processCmt();
                        $(this).dialog('close');
                    }
                }
            ]
        });

        $('#zv-todo-cmt').val(cmt);

        $('#zv-todo-cmt').keypress(function(e) {
            if (e.keyCode == $.ui.keyCode.ENTER) {
                processCmt();
                post();
                $('#zv-todo-dialog').dialog('close');
            }

        });

    }

    function post() {
        a = '\n# [[:' + page + ']]:' + cmt + '&nbsp;——~~~~~'
        pro = API.postWithToken('csrf', {
            action: 'edit',
            title: 'User:' + user + '/to_do', // 修改为 to_do
            appendtext: a,
            summary: '[[User:ZhaoFJx/tools/todo.js|自动化TODO工具]]'
        }).then(function () {
            mw.notify('添加成功');
            cmt = ""
        }, function (e) {
            mw.notify(e);
        });
    }

    function processCmt() {
        cmt = $('#zv-todo-cmt').val()
    }

});
//</nowiki>