You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
307 lines
14 KiB
307 lines
14 KiB
/********************************************
|
|
* 函數名稱:
|
|
* 目的:開啟畫面並刷新頁籤
|
|
* 作者:
|
|
* 時間:2014/04/01
|
|
* 參數說明:
|
|
strProgramId:程式ID
|
|
parameters :參數
|
|
*********************************************/
|
|
function OpenPageTab(strProgramId, parameters) {
|
|
var list = ""; //方便檢測用
|
|
var strOperation = ""; //似乎沒有作用
|
|
var strTitle = ""; //頁簽標題
|
|
var strUrl = ""; //網址
|
|
var Grouptag = "default"; //頁簽屬性,相同屬性者共用同一個頁簽
|
|
var win = window; //根物件
|
|
//var win = window.parent.document.getElementById("Main").contentWindow.frames["OperationPage"];
|
|
//var win = window; //div版本
|
|
//var win = window.parent.document.getElementById("Operation").contentWindow.document.body.innerHTML;
|
|
|
|
//var tabTemplate = "<li><a href='#{href}' id='#{id}'>#{label}</a> <span class='ui-icon ui-icon-close' role='presentation'>Remove Tab</span></li>"; //頁簽預設內容
|
|
var tabTemplate = "<li><a href='#{href}' id='#{id}'>#{label}</a> <span class='ui-icon ui-icon-close' role='presentation'>Remove Tab</span><span class='ui-icon ui-icon-refresh' role='presentation'>Refresh Tab</span></li>"; //頁簽預設內容
|
|
var para = (parameters === undefined) ? '' : parameters;
|
|
var CanView = false; //判斷有無權限
|
|
//抓取各頁面的相關參數
|
|
if (para.indexOf('ModuleDefault') >= 0) {
|
|
//Gary 模組頁面直接丟參數比較好接
|
|
CanView = true;
|
|
tabTemplate = "<li><a href='#{href}' id='#{id}'>#{label}</a></li>"; //有些不能刪除的頁簽
|
|
strUrl = './ModuleDefault.aspx?ModuleID=' + strProgramId; //
|
|
strTitle = '功能清單';
|
|
Grouptag = 'ModuleDefault';
|
|
strOperation = 'ModuleDefault';
|
|
para = ''; //清空參數,因為strURL已經帶參數了
|
|
} else {
|
|
$("#gvSearchResult tr").each(function () {
|
|
if ($(this).find("td[name=ModuleID]").html() === strProgramId) {
|
|
CanView = true;
|
|
strOperation = $(this).find("td[name=ModuleID]").html();
|
|
strTitle = $(this).find("td[name=ModuleName]").html();
|
|
strUrl = $(this).find("td[name=FilePath]").html();
|
|
Grouptag = ($(this).find("td[name=grouptag]").html() != '') ? $(this).find("td[name=grouptag]").html() : Grouptag;
|
|
list += strProgramId + "\n" + strTitle + "\n" + strUrl + "\n" + strOperation + "\n" + Grouptag;
|
|
return false; //break
|
|
}
|
|
});
|
|
}
|
|
if (!CanView) {
|
|
strTitle = '無檢視權限';
|
|
strUrl = '/NotView.aspx';
|
|
}
|
|
var tabs = window.$('#tabs').tabs();
|
|
var nowhight = window.parent.document.body.offsetHeight - win.$('#Iframe1').height() -65; //取得目前視窗的高度
|
|
var autoWidth = 'auto';
|
|
var id = "tabs-" + Grouptag; //導航Id(程式Id)tabContentHtml
|
|
var li = $(tabTemplate.replace(/#\{href\}/g, "#" + id).replace(/#\{id\}/g, Grouptag).replace(/#\{label\}/g, strTitle)); //生成新頁簽的導航元素
|
|
//ShowArtAlert(tabTemplate);
|
|
//alert(strTitle.length * 20 + 'px');
|
|
//alert(id);
|
|
//$('#' + id).css('width', strTitle.length * 25 + 'px');
|
|
var tabContentHtml = "<iframe src='" + strUrl + para + "' width='100%' height='" + nowhight + "' id='iframe" + Grouptag + "' name='" + strOperation + "' class='tabiframe' frameborder='0' border='0' cellspacing='0' allowtransparency='true' scrolling='yes' />"; //新頁簽的內容部分
|
|
//判斷內容IFrame是否存在,如果不存在就添加
|
|
if (window.document.getElementById("iframe" + Grouptag) == null) {
|
|
tabs.find(".ui-tabs-nav").append(li); //添加頁簽導航部分
|
|
}
|
|
// else if (win.document.getElementById("iframe" + Grouptag).tagName !== "A") {
|
|
// //alert(win.document.getElementById(strOperation).tagName);
|
|
// //tabs.find(".ui-tabs-nav").append(li); //添加頁簽導航部分
|
|
// } else {
|
|
// //alert(win.document.getElementById(strOperation).tagName);
|
|
// }
|
|
|
|
//判斷頁簽是否存在,如果不存在就添加,如果存在就模擬點擊
|
|
//如果參數有變動,也要更新網頁
|
|
if ($.type(tabs.find('#' + id).html()) != 'undefined') {
|
|
//如果已經開啟過則不再重複開啟
|
|
tabs.find(".ui-tabs-nav").find('#' + Grouptag).text(strTitle);
|
|
tabs.find(".ui-tabs-nav").find('#' + Grouptag).click();
|
|
//網頁內直接重新更新
|
|
if (para === 'test') {
|
|
// $('#iframe' + Grouptag ).attr("src", strUrl);
|
|
}
|
|
else {
|
|
$('#iframe' + Grouptag).attr("src", strUrl + para);
|
|
}
|
|
// alert(iframePageUrl);
|
|
} else {
|
|
//Modify By Ted 2014/08/01
|
|
tabs.append("<div id='" + id + "' class='tabdiv' style='padding:63px 0px 0px 0px; height:" + nowhight + "px; width: 100%;'>" + tabContentHtml + "</div>"); //添加頁簽內容部分
|
|
}
|
|
//reload 1 iframe
|
|
|
|
//win.$('#nowtab').text(id); //頁簽名稱更新
|
|
tabs.tabs("refresh"); //強迫刷新頁面
|
|
|
|
//取得目前的頁簽位置
|
|
var $li_now_select = tabs.find(".ui-tabs-nav").find('#' + id).parents('li').eq(0);
|
|
//alert(tabs.find("[aria-controls='" + id + "']").index());
|
|
____SetCuryLiShow(tabs.find("[aria-controls='" + id + "']").index());
|
|
//alert($li_now_select.text()); //$li_now_select.position().Left + ' ' + $li_now_select.width())
|
|
tabs.find(".ui-tabs-nav").find('#' + Grouptag).click(); //最後再點選一次,確定在畫面裡面
|
|
|
|
|
|
|
|
|
|
// var windowsize = $(window).width(); //屏幕分辨率
|
|
// $('.ui-tabs-nav').css('width', windowsize - 30); //重設寬度 要不然會爆掉
|
|
// $('.tabscarousel').find('.btn').show(); //強迫左右按鈕顯示,要不然要判斷左右按鈕的可按與不可按有點複雜
|
|
|
|
|
|
//刪除頁簽
|
|
tabs.delegate("span.ui-icon-close", "click", function () {
|
|
var panelId = $(this).closest("li").remove().attr("aria-controls");
|
|
//alert("panelId:" + panelId);
|
|
//alert($("#" + panelId).innerHTML);
|
|
//alert(document.getElementById(panelId).type);
|
|
// $("#iframe" + strOperation).remove();
|
|
$("#" + panelId).hide(); //iframe 好像無法remove 所以暫時隱藏
|
|
$("#" + panelId).remove();
|
|
tabs.tabs("refresh");
|
|
});
|
|
|
|
//Alt+Backspace鍵,刪除頁簽
|
|
tabs.bind("keyup", function (event) {
|
|
if (event.altKey && event.keyCode === $.ui.keyCode.BACKSPACE) {
|
|
var panelId = tabs.find(".ui-tabs-active").remove().attr("aria-controls");
|
|
$("#" + panelId).hide(); //好像無法remove 所以暫時隱藏
|
|
$("#" + panelId).remove();
|
|
tabs.tabs("refresh");
|
|
}
|
|
});
|
|
|
|
//重新整理頁簽
|
|
tabs.delegate("span.ui-icon-refresh", "click", function () {
|
|
var panelId = $(this).closest('li').attr("aria-controls"); //找到頁面ID(請搜尋<li><a href='#{href}' id='#{id}'>)
|
|
var getUrl = $('#' + panelId + ' iframe').attr('src'); //取得目前的連結(src)
|
|
|
|
$("#" + panelId + ' iframe').attr('src', getUrl); //重新載入連結,不等於清除功能
|
|
});
|
|
|
|
//修正IE8 pagetab顯示不正常問題,原因為jquery產生li之後會隱藏之前所創建的li,此為IE的特殊處理
|
|
$("[aria-controls^='tabs-']").each(function () {
|
|
//document.getElementById($(this)).style.display = '';
|
|
$(this).attr('style', "display:''");
|
|
});
|
|
|
|
}
|
|
|
|
function ____Li(index, width) {
|
|
this.index = index;
|
|
this.width = width;
|
|
return this;
|
|
}
|
|
function ____SetCuryLiShow(intLeftCount) {
|
|
if (intLeftCount == 0) {
|
|
return;
|
|
}
|
|
|
|
//$("#divPrevNext").hide();
|
|
var aryWidth = new Array();
|
|
$("#panel").find("li").each(function (n) {
|
|
var li = new ____Li(n, $(this).width());
|
|
aryWidth.push(li);
|
|
});
|
|
|
|
var windowsize = $(window).width() - 300; //屏幕分辨率
|
|
var _itemwidth = 0;
|
|
var intStartIndex = 0;
|
|
var intEndIndex = intLeftCount;
|
|
for (var i = intLeftCount; i >= 0; i--) {
|
|
_itemwidth += aryWidth[i].width * 1;
|
|
if (_itemwidth > windowsize) {
|
|
intStartIndex = i + 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
$("#panel").find("li").each(function (n) {
|
|
if (n >= intStartIndex) {
|
|
$(this).show();
|
|
if (n > intEndIndex) {
|
|
$("#divPrevNext").show();
|
|
}
|
|
} else {
|
|
if (n != 0 && n != ($("#panel").find("li").length - 1)) {
|
|
$(this).hide();
|
|
$("#divPrevNext").show();
|
|
}
|
|
}
|
|
});
|
|
//alert(intLeftCount);
|
|
$("#hidCuryIndex").val(intStartIndex);
|
|
}
|
|
|
|
|
|
|
|
|
|
function ___AddPageTab(strTitle, strUrl, strProgramId, strOperation, parameters) {
|
|
alert('本功能已轉OpenPageTab!!');
|
|
//如果在2014/08/01 Error 尚未有此警告出現 就可以移除本功能
|
|
}
|
|
|
|
|
|
/********************************************
|
|
* 函數名稱:GetSort
|
|
* 目的:取得路徑功能
|
|
* 作者:Gary
|
|
* 時間:2014/04/10
|
|
* 參數說明:
|
|
strModule:模組ID
|
|
*********************************************/
|
|
function GetSort(strModule) {
|
|
var list = "";
|
|
var showvalue = "";
|
|
$("#gvSearchResult tr").each(function () {
|
|
if ($(this).find("td[name=ModuleID]").html() == strModule) {
|
|
if ($(this).find("td[name=AccountNameSort]").html() != "") {
|
|
var strAccNameList = $(this).find("td[name=AccountNameSort]").html();
|
|
strAccNameList = strAccNameList.split("/");
|
|
var strModuleIDSort = $(this).find("td[name=ModuleIDSort]").html();
|
|
|
|
strModuleIDSort = strModuleIDSort.split("/");
|
|
var color; //定義路徑顏色
|
|
for (intLenght = 0; intLenght < strAccNameList.length; intLenght++) {
|
|
switch (intLenght) {
|
|
case 0: //第一層
|
|
color = "Blue";
|
|
break;
|
|
case 1: //第二層
|
|
color = "Red";
|
|
break;
|
|
case 2: //第三層
|
|
color = "Green";
|
|
break;
|
|
case 3: //第四層
|
|
color = "#C4B23B";
|
|
break;
|
|
}
|
|
|
|
showvalue = strAccNameList[intLenght] + ((intLenght < strAccNameList.length - 1) ? " >" : "");
|
|
list += "<input type='button' style='color:" + color + "' runat='server' value='" + showvalue + "' onClick=\"GetDiv('" + strModuleIDSort[intLenght] + "');\">";
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
return list;
|
|
}
|
|
|
|
|
|
/********************************************
|
|
* 函數名稱:OpenModule
|
|
* 目的:開啟畫面並刷新頁籤
|
|
* 作者:Gary
|
|
* 時間:2014/04/10
|
|
* 參數說明:
|
|
strModule:模組ID
|
|
*********************************************/
|
|
function OpenModule(strModule) {
|
|
var list = "<ul>";
|
|
$("#gvSearchResult tr").each(function () {
|
|
|
|
if ($(this).find("td[name=ModuleID]").html() == strModule) {
|
|
if ($(this).find("td[name=ParentID]").html() != "") {
|
|
list += "<li id='lireturn' class='gray-box' onclick=\"GetDiv('" + $(this).find("td[name=ParentID]").html() + "')\">";
|
|
list += "<div class='layout-icon layout-back'>";
|
|
list += "</div>";
|
|
list += "<a href='javascript:void(0);'>返回上一級...</a></li>";
|
|
}
|
|
}
|
|
if ($(this).find("td[name=ParentID]").html() == strModule && $(this).find("td[name=ShowInList]").html() != 'N') {
|
|
list += " <li oncontextmenu=\"ShowMenu('" + $(this).find("td[name=ModuleID]").html() + ';' + $(this).find("td[name=FilePath]").html() + "'); return false;\" style='color:#fff;background: " + $(this).find("td[name=BgCss]").html() + " ;' onclick=\"if('" + $(this).find("td[name=FilePath]").html() + "'!='#') parent.OpenPageTab('" + $(this).find("td[name=ModuleID]").html() + "');if('" + $(this).find("td[name=FilePath]").html() + "'=='#')GetDiv('" + $(this).find("td[name=ModuleID]").html() + "');\"> ";
|
|
list += " <div class=\"layout-icon layout-" + $(this).find("td[name=ImgPath]").html() + "\"> ";
|
|
list += " </div><a>" + $(this).find("td[name=ModuleName]").html() + "</a></li> ";
|
|
}
|
|
}
|
|
);
|
|
list += " </ul>"
|
|
return list;
|
|
}
|
|
|
|
|
|
/********************************************
|
|
* 函數名稱:SearchProgram
|
|
* 目的:搜尋程式
|
|
* 作者:Gary
|
|
* 時間:2014/04/10
|
|
* 參數說明:
|
|
strModule:模組ID
|
|
parameters :參數
|
|
*********************************************/
|
|
function SearchProgram(strSearch) {
|
|
var list ="<ul>";
|
|
var strModuleName="";
|
|
$("#gvSearchResult tr").each(function () {
|
|
strModuleName = $(this).find("td[name=ModuleName]").html();
|
|
if (strModuleName.indexOf(strSearch) > -1 && $(this).find("td[name=ParentID]").html() != '' && $(this).find("td[name=ShowInList]").html() != 'N') {
|
|
list += " <li style='color:#fff;background: " + $(this).find("td[name=BgCss]").html() + " ;' onclick=\"if('" + $(this).find("td[name=FilePath]").html() + "'!='#') parent.OpenPageTab('" + $(this).find("td[name=ModuleID]").html() + "');if('" + $(this).find("td[name=FilePath]").html() + "'=='#')GetDiv('" + $(this).find("td[name=ModuleID]").html() + "');\"> ";
|
|
list += " <div class=\"layout-icon layout-" + $(this).find("td[name=ImgPath]").html() + "\"> ";
|
|
list += " </div><a>" + $(this).find("td[name=ModuleName]").html() + "</a></li> ";
|
|
}
|
|
}
|
|
);
|
|
list += " </ul>"
|
|
return list;
|
|
}
|