MediaWiki:Edittool-CustomTable.js

出自 ProgWiki
前往: 導覽搜尋

注意:在您儲存之後您必須清除瀏覽器快取才可看到最新的變動。

  • Firefox / Safari:按住 Shift 時點選 重新整理,或按 Ctrl-F5Ctrl-R (Mac 則為 ⌘-R)
  • Google Chrome:Ctrl-Shift-R (Mac 則為 ⌘-Shift-R)
  • Internet Explorer:按住 Ctrl 時點選 重新整理,或按 Ctrl-F5
  • Opera:進入 工具 → 偏好設定 中清除快取。
//參考:http://zh.wikipedia.org/wiki/Wikipedia:維基百科工具/編輯工具/彈出表格按鈕
 
addEditButton('btnCustomTable',{
	src        : "0/04/Button_array.png",
	tagOpen    : '',
	sampleText : '',
	tagClose   : '',
	speedTip   : "插入表格(彈出提示)",
	action     : popupCustomTableConfig
});
 
importStylesheetURI('/prog/extensions/jQuery/ui/themes/base/jquery-ui-1.7.2.custom.css');
 
importScriptURI('/prog/extensions/jQuery/ui/jquery-ui-1.7.2.custom.min.js');
 
var setCustomTableConfig = {
    id:'CustomTableConfig',
    title:'表格標題',
    col:2,
    row:2,
    border:1,
    IsSort:'checked'
};
 
function insertCustomTable()
{
    try {
	var code = "\n";
	code += '{| border="' + setCustomTableConfig.border + '"';
        code += ' class="wikitable';
        if ((setCustomTableConfig.IsSort == true) || (setCustomTableConfig.IsSort == 'checked')) {
            code += ' sortable';
        }
        code +=  '"\n';
        code += '|-\n';
 
	for (var i=0;i<setCustomTableConfig.col;i++) 
            code += '! 欄位 ' + i + "\n";
 
	for (var j=0;j<setCustomTableConfig.row;j++)
        {
		code += '|-\n';
		for (var i=0;i<setCustomTableConfig.col;i++)
                {
			code += '| 内容('+j+','+i+')\n';
		}
	}
 
	code += '|}\n';
	insertTags('','', code);
        $('#'+setCustomTableConfig.id).dialog('close');
    }
    catch (e) 
    {
        alert(e.toString());
    }
}
 
function SetToCustomTableConfig()
{
    try 
    {
        with(setCustomTableConfig)
        {
	    row = $('#'+id+'_inputRow').val();
            col = $('#'+id+'_inputCol').val();
	    border = $('#'+id+'_inputBorder').val();
	    IsSort = $('#'+id+'_inputIsSort').attr('checked');
//alert("debug:"+IsSort);
        }
    }
    catch (e) 
    {
        //alert('參數有誤,請重新輸入!');
        alert(e.toString());
        return false;
    }
    return true;
}
 
function popupCustomTableConfig()
{
    if (!document.getElementById(setCustomTableConfig.id))
    {
        var div = document.createElement('div');
        div.setAttribute("id", setCustomTableConfig.id);
        div.setAttribute("title", "表格参数");
        div.setAttribute("height", "400");
        div.setAttribute("width","500");
 
        var code = '<p>请输入想要生成表格的参数:</p>';
 
	    code += '行数:<input type="text" id="' + setCustomTableConfig.id +'_inputRow" value="'+setCustomTableConfig.row+'" /><br/>';
 
	    code += '列数:<input type="text" id="' + setCustomTableConfig.id +'_inputCol" value="'+setCustomTableConfig.col+'" /><br/>';
 
	    code += '邊框寬度:<input type="text" id="' + setCustomTableConfig.id +'_inputBorder" value="'+setCustomTableConfig.border+'" /><br/>';
 
	    code += '可否排序:<input type="checkbox" id="' + setCustomTableConfig.id +'_inputIsSort" checked="' +setCustomTableConfig.IsSort +'" /><br/><hr/>';
 
        code += '<input type="button" id="' + setCustomTableConfig.id +'_insert" onclick="if (SetToCustomTableConfig()) insertCustomTable();" value="將代码插入到编辑窗口中"></input>';
 
        code += '<input type="button" id="' + setCustomTableConfig.id +'_close" onclick="$(\'#'+setCustomTableConfig.id+'\').dialog(\'close\');" value="取消"></input>';
 
        div.innerHTML = code;
 
try {
        document.getElementsByTagName("body")[0].appendChild(div);
}
catch(e) {alert(e.toString());}
 
        with($('#'+setCustomTableConfig.id ))
        {
            show();
            dialog();
        }
    } 
    else
    {
        with($('#'+setCustomTableConfig.id ))
        {
            if (dialog('isOpen') == false) {
                dialog('open');
            }
        }
    }
 
    return false;
}