userCommonMenu.jsp 13.6 KB
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ include file="/systeminfo/init_wev8.jsp"%>
<%@ taglib uri="/WEB-INF/weaver.tld" prefix="wea"%>
<%
	// 常用菜单
	String titlename = SystemEnv.getHtmlLabelName(129413, user.getLanguage());
%>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title><%=titlename%></title>
<script type="text/javascript" src="/js/weaver_wev8.js"></script>
<script type="text/javascript" src="/page/layoutdesign/js/jquery-ui_wev8.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$('#zDialog_div_content').height($(window).height()-105);
		
		$('.drag').live("mouseover",function(){
			this.src='/proj/img/move-hot_wev8.png'
	    }).live("mouseout",function(){
	    	this.src='/proj/img/move_wev8.png'
	    });
		
		registerDragEvent();
	});
	
	function registerDragEvent() {
		var fixHelper = function(e, ui) {
			ui.children().each(function() {
			    $(this).width($(this).width()); // 在拖动时,拖动行的cell(单元格)宽度会发生改变。在这里做了处理就没问题了

			    $(this).height($(this).height());
			});
			return ui;
		};

		var copyTR = null;
		var startIdx = 0;

		var idStr = ".ListStyle";
		
		jQuery(idStr + " tbody tr").bind("mousedown", function(e) {
			copyTR = jQuery(this).next("tr.Spacing");
		});
	        
	    jQuery(idStr + " tbody").sortable({ // 这里是talbe tbody,绑定 了sortable
	        helper: fixHelper, // 调用fixHelper
	        axis: "y",
	        start: function(e, ui) {
	            ui.helper.addClass("e8_hover_tr") // 拖动时的行,要用ui.helper
	            if(ui.item.hasClass("notMove")) {
	            	e.stopPropagation && e.stopPropagation();
	            	e.cancelBubble = true;
	            }
	            if(copyTR) {
	       			copyTR.hide();
	       		}
	       		startIdx = ui.item.get(0).rowIndex;
	            return ui;
	        },
	        stop: function(e, ui) {
	            ui.item.removeClass("e8_hover_tr"); // 释放鼠标时,要用ui.item才是释放的行
	        	if(ui.item.get(0).rowIndex < 1) { // 不能拖动到表头上方

	                if(copyTR) {
	           			copyTR.show();
	           		}
	        		return false;
	        	}
	           	if(copyTR) {
		       	  	/* if(ui.item.get(0).rowIndex > startIdx) {
		        	  	ui.item.before(copyTR.clone().show());
					}else {
		        	  	ui.item.after(copyTR.clone().show());
					} */
					if(ui.item.prev("tr").attr("class") == "Spacing") {
						ui.item.after(copyTR.clone().show());
					}else {
						ui.item.before(copyTR.clone().show());
					}
		       	  	copyTR.remove();
		       	  	copyTR = null;
	       		}
	           	return ui;
	        }
	    });
	}

	function onShowLeftMenu(obj) {
		var dialog = new window.top.Dialog();
		dialog.currentWindow = window;
	 	dialog.Width = 800;
	 	dialog.Height = 650;
	 	dialog.Modal = true;
	 	dialog.Title = "<%=SystemEnv.getHtmlLabelName(32127, user.getLanguage())%>";
		dialog.URL = "/wui/theme/ecology9/page/userCommonMenu/leftMenuTree.jsp";
		dialog.show();
		dialog.callback = function(data) {
			var menuid = data.id;
			var menuname = data.name;
			$(obj).parents(".Data").find("input[name=menuid]").val(menuid);
			$(obj).parents(".Data").find("input[name=menuname]").val(menuname);
			$(obj).parents(".Data").find("input[name=menulink]").val("");
			$(obj).parents(".Data").find("input[name=leftmenuname]").val(menuname);
			dialog.close();
		};
		dialog.clear = function() {
			$(obj).parents(".Data").find("input[name=menuid]").val("");
			$(obj).parents(".Data").find("input[name=menuname]").val("");
			$(obj).parents(".Data").find("input[name=menulink]").val("");
			$(obj).parents(".Data").find("input[name=leftmenuname]").val("");
			dialog.close();
		};
	}

	function onChangeMenuType(obj) {
		if ("1" == obj.value) {
			$(obj).parent().find("input[name=menuid]").val("0");
			$(obj).parent().find("input[name=menulink]").val("");
			$(obj).parent().find("input[name=menulink]").show();
			$(obj).parent().find("input[name=leftmenuname]").hide();
			$(obj).parent().find("button[name=leftmenubtn]").hide();
		} else if ("0" == obj.value) {
			$(obj).parent().find("input[name=menulink]").hide();
			$(obj).parent().find("input[name=leftmenuname]").show();
			$(obj).parent().find("button[name=leftmenubtn]").show();
		}
	}
	
	function onNew(){
		var newRow = '<tr class="Data newRow">' +
			'<td><input type="checkbox" name="chkInTableTag" value="0" /><img src="/proj/img/move_wev8.png" class="drag" style="margin-bottom: 3px; margin-left: 5px;" /></td>' +
			'<td><input type="text" name="menuname" value="" /></td>' +
			'<td>' +
				'<select name="menutype" onChange="onChangeMenuType(this);">' +
					'<option value="0"><%=SystemEnv.getHtmlLabelName(33496, user.getLanguage())%></option>' +
					'<option value="1"><%=SystemEnv.getHtmlLabelName(18773, user.getLanguage())%></option>' +
				'</select> ' +
				'<input type="text" style="width:300px; display: none;" name="menulink" value="" />' +
				'<input type="hidden"  name="menuid" value="" />' +
				'<input type="text" name="leftmenuname" readonly="readonly" value="" />' +
				'<button type="button" class="e8_browflow" style="vertical-align: middle; margin-left: 5px;" name="leftmenubtn" onclick="onShowLeftMenu(this);"></button>' +
			'</td>' +
		'</tr>' +
		'<tr class="Spacing" style="height: 1px !important;">' +
			'<td colspan="3" class="paddingLeft0Table"><div class="intervalDivClass"></div></td>' +
		'</tr>';
		$(".ListStyle").append(newRow)
		$(".newRow").jNice(); 
		beautySelect();
	}
	
	function onSave() {
		var separator = ",dt,";
		var separator2 = ";li;";
		var data = [];
		var rows = $(".ListStyle tr[class!=HeaderForXtalbe][class!=Spacing]");
		for (var i = 0; i < rows.length; i++) {
			var row = rows[i];
			var menuid = $(row).find("input[name=menuid]").val();
			var menuname = $(row).find("input[name=menuname]").val();
			var menutype = $(row).find("select[name=menutype]").val();
			var menulink = $(row).find("input[name=menulink]").val();
			data.push(menulink + separator + menutype + separator + menuname + separator + menuid);
		}
		if (data.length) {
			$.post("/wui/theme/ecology9/page/userCommonMenu/userCommonMenuOperation.jsp",{
				method : "save",
				data : data.join(separator2)
			}, function(result) {
				result = result.trim();
				if (result == "success") {
					window.top.Dialog.alert("<%=SystemEnv.getHtmlLabelName(83551, user.getLanguage())%>", function() {
						var dialog = parent.getDialog(window);
						dialog.close();
					});
				} else {
					window.top.Dialog.alert("<%=SystemEnv.getHtmlLabelName(84544, user.getLanguage())%>");
				}
			});
		}
	}
	
	function onDelAll() {
		var table = $(".ListStyle");
		var selectedTrs = table.find("tr:has([name='chkInTableTag']:checked)");
		if (selectedTrs.size() == 0) {
			window.top.Dialog.alert(SystemEnv.getHtmlNoteName(3529, readCookie("languageidweaver")));
			return;
		}
		window.top.Dialog.confirm(SystemEnv.getHtmlNoteName(3580, readCookie("languageidweaver")), function() {
			var menuids = "";
			selectedTrs.each(function() {
				menuids += "," + $(this).find("input[name='chkInTableTag']").val();
			});
			$.post("/wui/theme/ecology9/page/userCommonMenu/userCommonMenuOperation.jsp",{
				method : "del",
				menuids : menuids.substring(1)
			}, function(result) {
				result = result.trim();
				if (result == "success") {
					selectedTrs.each(function() {
						$(this).next("tr.Spacing").remove();
						$(this).remove();
					});
					window.top.Dialog.alert("<%=SystemEnv.getHtmlLabelName(83472, user.getLanguage())%>");
				} else {
					window.top.Dialog.alert("<%=SystemEnv.getHtmlLabelName(83473, user.getLanguage())%>");
				}
			});
		});
	}

	function checkAll(checked) {
		var checkboxs = $(".ListStyle input[name=chkInTableTag]");
		if (checked) {
			checkboxs.each(function() {
				var span = $(this).next("span");
				$(this).attr("checked", true);
				if (!span.hasClass("jNiceChecked")) {
					span.addClass("jNiceChecked");
				}
			});
		} else {
			checkboxs.each(function() {
				var span = $(this).next("span");
				$(this).attr("checked", false);
				if (span.hasClass("jNiceChecked")) {
					span.removeClass("jNiceChecked");
				}
			});
		}
	}
	
	function onCancel(){
		var dialog = parent.getDialog(window);
		dialog.close();
	}
</script>
</head>
<body>
	<jsp:include page="/systeminfo/commonTabHead.jsp">
		<jsp:param name="mouldID" value="portal" />
		<jsp:param name="navName" value="<%=titlename%>" />
	</jsp:include>
	<%@ include file="/systeminfo/TopTitle_wev8.jsp"%>
	<%@ include file="/systeminfo/RightClickMenuConent_wev8.jsp"%>
	<%
		RCMenu += "{" + SystemEnv.getHtmlLabelName(82, user.getLanguage()) + ",javascript:onNew(),_self} ";
		RCMenuHeight += RCMenuHeightStep;
		RCMenu += "{" + SystemEnv.getHtmlLabelName(86, user.getLanguage()) + ",javascript:onSave(),_self} ";
		RCMenuHeight += RCMenuHeightStep;
		RCMenu += "{" + SystemEnv.getHtmlLabelName(32136, user.getLanguage()) + ",javascript:onDelAll(),_self} ";
		RCMenuHeight += RCMenuHeightStep;
	%>
	<%@ include file="/systeminfo/RightClickMenu_wev8.jsp"%>

	<table id="topTitle">
		<tr>
			<td class="rightSearchSpan">
				<input type="button" value="<%=SystemEnv.getHtmlLabelName(82, user.getLanguage())%>" class="e8_btn_top" onclick="onNew();" /> 
				<input type="button" value="<%=SystemEnv.getHtmlLabelName(32136, user.getLanguage())%>" class="e8_btn_top" onclick="onDelAll();" /> 
				<span title="<%=SystemEnv.getHtmlLabelName(23036, user.getLanguage())%>" class="cornerMenu"></span>
			</td>
		</tr>
	</table>
	<div id="zDialog_div_content" class="zDialog_div_content">
		<table class="ListStyle">
			<colgroup>
				<col width="10%" />
				<col width="25%" />
				<col width="65%" />
			</colgroup>
			<thead>
				<tr class="HeaderForXtalbe">
					<th><input type="checkbox" name="_allselectcheckbox" onclick="checkAll(this.checked);" /></th>
					<th><%=SystemEnv.getHtmlLabelName(30828, user.getLanguage())%></th>
					<th>URL</th>
				</tr>
			<thead>
			<tbody class="ui-sortable">
				
				<%
					String userCustomMenuSql = "select ucm.id, ucm.userid, ucm.menuid, ucm.menuname, ucm.menutype, ucm.menulink, " +
						" lmi.labelId, lmi.linkAddress " + 
						" from UserCommonMenu ucm left join LeftMenuInfo lmi on ucm.menuid = lmi.id " + 
						" where ucm.userid = ? and (lmi.linkAddress != '' or ucm.menulink != '') order by ucm.id asc";
					RecordSet userCustomMenuRS = new RecordSet();
					userCustomMenuRS.executeQuery(userCustomMenuSql, user.getUID());
					while (userCustomMenuRS.next()) {
						String id = userCustomMenuRS.getString("id");
						String menuname = "";
						String leftmenuname = Util.null2String(SystemEnv.getHtmlLabelName(userCustomMenuRS.getInt("labelId"), user.getLanguage()));
						if (null != userCustomMenuRS.getString("menuname") && !"".equals(userCustomMenuRS.getString("menuname"))) {
							menuname = userCustomMenuRS.getString("menuname");
						} else {
							menuname = leftmenuname;
						}
						String menutype = Util.null2String(userCustomMenuRS.getString("menutype"));
						String menulink = Util.null2String(userCustomMenuRS.getString("menulink"));
						if ("".equals(menutype) || "0".equals(menutype)) {
							//menulink = Util.null2String(userCustomMenuRS.getString("linkAddress"));
							menulink = "";
						}
						String menuid = Util.null2String(userCustomMenuRS.getString("menuid"));
				%>
				<tr class="Data">
					<td>
						<input type="checkbox" name="chkInTableTag" value="<%=id%>" />
						<img src="/proj/img/move_wev8.png" class="drag" style="margin-bottom: 3px;" />
					</td>
					<td><input type="text" name="menuname" value="<%=menuname%>" /></td>
					<td>
						<select name="menutype" onChange="onChangeMenuType(this);">
							<option value="0" <%if ("".equals(menutype) || "0".equals(menutype)) {%> selected="selected" <%}%>><%=SystemEnv.getHtmlLabelName(33496, user.getLanguage())%></option>
							<option value="1" <%if ("1".equals(menutype)) {%> selected="selected" <%}%>><%=SystemEnv.getHtmlLabelName(18773, user.getLanguage())%></option>
						</select> 
						<input type="text" style="width: 300px; <%if ("".equals(menutype) || "0".equals(menutype)) {%> display: none; <%}%>" name="menulink" value="<%=menulink%>" /> 
						<input type="hidden" name="menuid" value="<%=menuid%>" /> 
						<input type="text" <%if ("1".equals(menutype)) {%> style="display: none;" <%}%> name="leftmenuname" readonly="readonly" value="<%=leftmenuname%>" />
						<button type="button" class="e8_browflow" style="vertical-align: middle;<%if ("1".equals(menutype)) {%> display: none; <%}%>" name="leftmenubtn" onclick="onShowLeftMenu(this);"></button>
					</td>
				</tr>
				<tr class="Spacing" style="height: 1px !important;">
					<td colspan="3" class="paddingLeft0Table"><div class="intervalDivClass"></div></td>
				</tr>
				<%
					}
				%>
			</tbody>
		</table>
	</div>
	<div id="zDialog_div_bottom" class="zDialog_div_bottom">
		<wea:layout needImportDefaultJsAndCss="false">
			<wea:group context="" attributes="{\"groupDisplay\":\"none\"}">
				<wea:item type="toolbar">
					<input type="button" value="<%=SystemEnv.getHtmlLabelName(86, user.getLanguage())%>" id="zd_btn_submit" class="zd_btn_submit" onclick="onSave();" />
					<span class="e8_sep_line">|</span>
					<%-- <input type="button" value="<%=SystemEnv.getHtmlLabelName(32688, user.getLanguage())%>" id="zd_btn_syn" class="zd_btn_submit" onclick="onSyn();" />
					<span class="e8_sep_line">|</span> --%>
					<input type="button" value="<%=SystemEnv.getHtmlLabelName(309, user.getLanguage())%>" id="zd_btn_cancle" class="zd_btn_cancle" onclick="onCancel();" />
				</wea:item>
			</wea:group>
		</wea:layout>
	</div>
	<jsp:include page="/systeminfo/commonTabFoot.jsp"></jsp:include>
</body>
</html>