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

/********************************************
* 函數名稱:
* 目的:開啟畫面並刷新頁籤
* 作者:
* 時間: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;
}