123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- var panels = [];
- var autoRefreshPanels = [];
- var autoRefreshWindow;
- function getPanelOptions(id){
- for(var i=0; i<panels.length; i++){
- if (panels[i].id == id) {
- return panels[i];
- }
- }
- return undefined;
- }
- function addPanels(portalPanels){
- for(var i=0; i<portalPanels.length; i++){
- var options = getPanelOptions(portalPanels[i].id);
- if (options){
- var p = $('<div/>').attr('id',options.id).appendTo('#portal');
- p.panel(options);
- var columnIndex = portalPanels[i].index?portalPanels[i].index:i;
- var column = $('#portal').portal('getColumn');
- if(column){
- columnIndex = columnIndex%column;
- }
- $('#portal').portal('add',{
- panel:p,
- columnIndex:columnIndex
- });
- }
- }
-
- }
- $(function() {
- $('#portal').portal({
- border:false,
- fit:true
- });
- loadUsingPortal();
- function loadUsingPortal(){
- $('#portal').portal("removeAll");
- panels = [];
- autoRefreshPanels = [];
- ajaxRequest(WEBROOT + "/UserPortal/showUsingList.action", {
- }, function(response) {
- var data = response.data;
- for ( var i = 0; i < data.length; i++) {
- var portalPanelId = data[i].id;
- var title = data[i].title;
- var panel = {
- id:portalPanelId,
- title:title,
- height:data[i].height,
- width:data[i].width,
- index:data[i].index,
- href:data[i].href,
- tools:[{
- iconCls:'panel-tool-max',
- handler:function(event){
- var portalPanelId = event.currentTarget.parentElement.parentElement.nextSibling.id;
- var title = "";
- var maxHref = "";
- var maxPortalId = 'portal_'+portalPanelId;
- var maxPortalPanel = $('<div id="'+maxPortalId+'"></div>').appendTo(top);
- for ( var i = 0; i < data.length; i++) {
- if(data[i].id == portalPanelId){
- maxHref = data[i].maxHref;
- title = data[i].title;
- autoRefreshWindow = {window:maxPortalPanel,time:data[i].refreshTime,remainderTime:data[i].refreshTime};
- break;
- }
- }
- openWin(maxPortalPanel, {
- title:title,
- width:$(window).width(),
- height:$(window).height(),
- onClose: function() {
- maxPortalPanel.remove();
- autoRefreshWindow = undefined;
- }
- });
- maxPortalPanel.window('refresh', maxHref);
- }
- },{
- iconCls:'icon-edit',
- handler:function(event){
- var portalPanelId = event.currentTarget.parentElement.parentElement.nextSibling.id;
- var portalPopWindowId = 'portal_popWindow_'+portalPanelId;
- var portalForm = 'portal_form_'+portalPanelId;
- var portalPopWindow = $('<div id="'+portalPopWindowId+'"></div>').appendTo(document);
- portalPopWindow.append('<form id="'+portalForm+'"><input type="hidden" name="id" value="'+portalPanelId+'" /><table><tr><td class="title">自动刷新:</td><td><input type="checkbox" name="isAutoRefresh" id="isAutoRefresh" value="1" /></td></tr><tr><td class="title">刷新时间:</td><td><input type="text" class="easyui-numberbox" name="refreshTime" id="refreshTime" /></td></tr><tr><td colspan="2"><a href="#" icon="icon-save" id="saveUserPortalBtn" class="easyui-linkbutton">保存</a></td></tr></table></form>');
-
- portalPopWindow.find('#saveUserPortalBtn').click(function(){
- var windowId = portalPopWindow.find("input[name='id']").val();
- var index = -1;
- for ( var i = 0; i < autoRefreshPanels.length; i++) {
- if(autoRefreshPanels[i].panel.attr("id") == windowId){
- index = i;
- break;
- }
- }
- if(portalPopWindow.find('#isAutoRefresh').attr("checked")){
- for ( var i = 0; i < panels.length; i++) {
- if(panels[i].id == windowId){
- var initedPanels = $("#portal").portal("getPanels");
- for ( var j = 0; j < initedPanels.length; j++) {
- if(initedPanels[i].attr("id") == panels[i].id){
- var newElement = {panel: initedPanels[i],time:portalPopWindow.find("#refreshTime").val(),remainderTime:portalPopWindow.find("#refreshTime").val()};
- if(index == -1){
- autoRefreshPanels.push(newElement);
- }else{
- autoRefreshPanels.splice(index, 1, newElement);
- }
- break;
- }
- }
- }
- }
- }else{
- if(index){
- autoRefreshPanels.splice(index, 1);
- }
- }
- ajaxRequest(WEBROOT + '/UserPortal/savePortalEdit.action', {
- 'formData' : JSON.stringify(portalPopWindow.find('#'+portalForm).getFormValue())
- }, function(data) {
- showMsg('提示', '保存成功');
- });
- });
- openWin(portalPopWindow, {
- title:'编辑',
- onOpen: function() {
- portalPopWindow.find('#'+portalForm).form('reset');
- ajaxRequest(WEBROOT + '/UserPortal/showPortalEdit.action', {
- id : portalPanelId
- }, function(data) {
- if(data.code == "success"){
- data.data.id = undefined;
- portalPopWindow.find('#'+portalForm).fillForm(data.data);
- }else{
- showMsg('提示', '读取失败');
- }
- });
- },
- onClose: function() {
- portalPopWindow.remove();
- }
- });
- }
- }]
- };
- if(data[i].isAutoRefresh){
- autoRefreshPanels.push({panel:panel,time:data[i].refreshTime,remainderTime:data[i].refreshTime});
- }
- panels.push(panel);
- }
- addPanels(panels);
- if(autoRefreshPanels.length > 0){
- var initedPanels = $("#portal").portal("getPanels");
- for ( var i = 0; i < initedPanels.length; i++) {
- for ( var j = 0; j < autoRefreshPanels.length; j++) {
- if(initedPanels[i].attr("id") == autoRefreshPanels[j].panel.id){
- autoRefreshPanels[j].panel = initedPanels[i];
- }
- }
- }
- }
- $("#portal").portal("resize");
- });
- }
- setInterval(function(){
- for ( var i = 0; i < autoRefreshPanels.length; i++) {
- autoRefreshPanels[i].remainderTime = autoRefreshPanels[i].remainderTime - 1000;
- if(autoRefreshPanels[i].remainderTime <= 0){
- autoRefreshPanels[i].panel.panel("refresh");
- autoRefreshPanels[i].remainderTime = autoRefreshPanels[i].time;
- }
- if(autoRefreshWindow){
- autoRefreshWindow.remainderTime = autoRefreshWindow.remainderTime - 1000;
- if(autoRefreshWindow.remainderTime <= 0){
- autoRefreshWindow.window.window('refresh');
- autoRefreshWindow.remainderTime = autoRefreshWindow.time;
- }
- }
- }
- }, 1000);
- $("#portal").dblclick(function(){
- var portalEdit = $('<div id="portal_dblEdit"></div>').appendTo(top);
- var portalGrid = $('<table id="portalGrid"></table>').appendTo(portalEdit);
- portalGrid.datagrid({
- url:WEBROOT + '/UserPortal/showUserPortalList.action',
- idField:"id",
- height:350,
- columns:[[
- {field:'id',checkbox:true,width:100},
- {field:'title',title:'名称',width:100}
- ]],
- onLoadSuccess : function(data){
- var rows = data.rows;
- ajaxRequest(WEBROOT + "/UserPortal/showUsingList.action", {
- }, function(response) {
- var using = response.data;
- for ( var i = 0; i < rows.length; i++) {
- for ( var j = 0; j < using.length; j++) {
- if(using[j].id == rows[i].id){
- portalGrid.datagrid("selectRecord", using[j].id);
- }
- }
- }
- });
- }
- });
- openWin(portalEdit, {
- title:"订阅Portal",
- onClose: function() {
- portalEdit.remove();
- }
- });
- var userPortalSelect = $('<a href="#" icon="icon-save" id="userPortalSelectBtn" class="easyui-linkbutton">确认</a>').appendTo(portalEdit);
- userPortalSelect.click(function(){
- var rows = portalGrid.datagrid("getSelections");
- var ids = [];
- for ( var i = 0; i < rows.length; i++) {
- if (rows[i]["id"]) {
- ids.push(rows[i]["id"]);
- }
- }
- ajaxRequest(WEBROOT + '/UserPortal/saveUserPortalSelect.action', {
- ids : $.encodeJSON(ids)
- }, function(data) {
- if(data.code == "success"){
- loadUsingPortal();
- }else{
- showMsg('提示', '保存失败');
- }
- });
- });
- });
- $("#savePortalLocationBtn").click(function(){
- var layout = $("#portal").portal("getLayout");
- ajaxRequest(WEBROOT + '/UserPortal/saveUserPortalPosition.action', {
- layout : $.encodeJSON(layout)
- }, function(data) {
- if(data.code == "success"){
- showMsg('提示', '保存成功');
- }else{
- showMsg('提示', '保存失败');
- }
- });
- });
- function json2str(o) {
- var arr = [];
- var fmt = function(s) {
- if (typeof s == 'object' && s != null) return json2str(s);
- return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
- };
- for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
- return '{' + arr.join(',') + '}';
- }
- });
|