dwz.ui.js 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. function initEnv() {
  2. $("body").append(DWZ.frag["dwzFrag"]);
  3. $(window).resize(function(){
  4. initLayout();
  5. $(this).trigger(DWZ.eventType.resizeGrid);
  6. });
  7. var ajaxbg = $("#background,#progressBar");
  8. ajaxbg.hide();
  9. $(document).ajaxStart(function(){
  10. ajaxbg.show();
  11. }).ajaxStop(function(){
  12. ajaxbg.hide();
  13. });
  14. $("#leftside").jBar({minW:150, maxW:700});
  15. if ($.taskBar) $.taskBar.init();
  16. navTab.init();
  17. if ($.fn.switchEnv) $("#switchEnvBox").switchEnv();
  18. if ($.fn.navMenu) $("#navMenu").navMenu();
  19. setTimeout(function(){
  20. initLayout();
  21. initUI();
  22. // navTab styles
  23. var jTabsPH = $("div.tabsPageHeader");
  24. jTabsPH.find(".tabsLeft").hoverClass("tabsLeftHover");
  25. jTabsPH.find(".tabsRight").hoverClass("tabsRightHover");
  26. jTabsPH.find(".tabsMore").hoverClass("tabsMoreHover");
  27. }, 10);
  28. }
  29. function initLayout(){
  30. var iContentW = $(window).width() - (DWZ.ui.sbar ? $("#sidebar").width() + 10 : 34) - 5;
  31. //var iContentH = $(window).height() - $("#header").height() - 34;
  32. var iContentH = $(window).height() - $("#header").height() - 34;
  33. $("#container").width(iContentW);
  34. $("#container .tabsPageContent").height(iContentH - 34).find("[layoutH]").layoutH();
  35. $("#sidebar, #sidebar_s .collapse, #splitBar, #splitBarProxy").height(iContentH - 5);
  36. $("#taskbar").css({top: iContentH + $("#header").height() + 5, width:$(window).width()});
  37. }
  38. function initUI(_box){
  39. var $p = $(_box || document);
  40. $("div.panel", $p).jPanel();
  41. //tables
  42. $("table.table", $p).jTable();
  43. // css tables
  44. $('table.list', $p).cssTable();
  45. //auto bind tabs
  46. $("div.tabs", $p).each(function(){
  47. var $this = $(this);
  48. var options = {};
  49. options.currentIndex = $this.attr("currentIndex") || 0;
  50. options.eventType = $this.attr("eventType") || "click";
  51. $this.tabs(options);
  52. });
  53. $("ul.tree", $p).jTree();
  54. $('div.accordion', $p).each(function(){
  55. var $this = $(this);
  56. $this.accordion({fillSpace:$this.attr("fillSpace"),alwaysOpen:true,active:0});
  57. });
  58. $(":button.checkboxCtrl, :checkbox.checkboxCtrl", $p).checkboxCtrl($p);
  59. if ($.fn.combox) $("select.combox",$p).combox();
  60. if ($.fn.xheditor) {
  61. $("textarea.editor", $p).each(function(){
  62. var $this = $(this);
  63. var op = {html5Upload:false, skin: 'vista',tools: $this.attr("tools") || 'full'};
  64. var upAttrs = [
  65. ["upLinkUrl","upLinkExt","zip,rar,txt"],
  66. ["upImgUrl","upImgExt","jpg,jpeg,gif,png"],
  67. ["upFlashUrl","upFlashExt","swf"],
  68. ["upMediaUrl","upMediaExt","avi"]
  69. ];
  70. $(upAttrs).each(function(i){
  71. var urlAttr = upAttrs[i][0];
  72. var extAttr = upAttrs[i][1];
  73. if ($this.attr(urlAttr)) {
  74. op[urlAttr] = $this.attr(urlAttr);
  75. op[extAttr] = $this.attr(extAttr) || upAttrs[i][2];
  76. }
  77. });
  78. $this.xheditor(op);
  79. });
  80. }
  81. if ($.fn.uploadify) {
  82. $(":file[uploaderOption]", $p).each(function(){
  83. var $this = $(this);
  84. var options = {
  85. fileObjName: $this.attr("name") || "file",
  86. auto: true,
  87. multi: true,
  88. onUploadError: uploadifyError
  89. };
  90. var uploaderOption = DWZ.jsonEval($this.attr("uploaderOption"));
  91. $.extend(options, uploaderOption);
  92. DWZ.debug("uploaderOption: "+DWZ.obj2str(uploaderOption));
  93. $this.uploadify(options);
  94. });
  95. }
  96. // init styles
  97. $("input[type=text], input[type=password], textarea", $p).addClass("textInput").focusClass("focus");
  98. $("input[readonly], textarea[readonly]", $p).addClass("readonly");
  99. $("input[disabled=true], textarea[disabled=true]", $p).addClass("disabled");
  100. $("input[type=text]", $p).not("div.tabs input[type=text]", $p).filter("[alt]").inputAlert();
  101. //Grid ToolBar
  102. $("div.panelBar li, div.panelBar", $p).hoverClass("hover");
  103. //Button
  104. $("div.button", $p).hoverClass("buttonHover");
  105. $("div.buttonActive", $p).hoverClass("buttonActiveHover");
  106. //tabsPageHeader
  107. $("div.tabsHeader li, div.tabsPageHeader li, div.accordionHeader, div.accordion", $p).hoverClass("hover");
  108. //validate form
  109. if ($.fn.validate) {
  110. $("form.required-validate", $p).each(function(){
  111. var $form = $(this);
  112. $form.validate({
  113. onsubmit: false,
  114. focusInvalid: false,
  115. focusCleanup: true,
  116. errorElement: "span",
  117. ignore:".ignore",
  118. invalidHandler: function(form, validator) {
  119. var errors = validator.numberOfInvalids();
  120. if (errors) {
  121. var message = DWZ.msg("validateFormError",[errors]);
  122. alertMsg.error(message);
  123. }
  124. }
  125. });
  126. $form.find('input[customvalid]').each(function(){
  127. var $input = $(this);
  128. $input.rules("add", {
  129. customvalid: $input.attr("customvalid")
  130. })
  131. });
  132. });
  133. }
  134. if ($.fn.datepicker){
  135. $('input.date', $p).each(function(){
  136. var $this = $(this);
  137. var opts = {};
  138. if ($this.attr("dateFmt")) opts.pattern = $this.attr("dateFmt");
  139. if ($this.attr("minDate")) opts.minDate = $this.attr("minDate");
  140. if ($this.attr("maxDate")) opts.maxDate = $this.attr("maxDate");
  141. if ($this.attr("mmStep")) opts.mmStep = $this.attr("mmStep");
  142. if ($this.attr("ssStep")) opts.ssStep = $this.attr("ssStep");
  143. $this.datepicker(opts);
  144. });
  145. }
  146. // navTab
  147. $("a[target=navTab]", $p).each(function(){
  148. $(this).click(function(event){
  149. var $this = $(this);
  150. var title = $this.attr("title") || $this.text();
  151. var tabid = $this.attr("rel") || "_blank";
  152. var fresh = eval($this.attr("fresh") || "true");
  153. var external = eval($this.attr("external") || "false");
  154. var url = unescape($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first"));
  155. DWZ.debug(url);
  156. if (!url.isFinishedTm()) {
  157. alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg"));
  158. return false;
  159. }
  160. navTab.openTab(tabid, url,{title:title, fresh:fresh, external:external});
  161. event.preventDefault();
  162. });
  163. });
  164. //dialogs
  165. $("a[target=dialog]", $p).each(function(){
  166. $(this).click(function(event){
  167. var $this = $(this);
  168. var title = $this.attr("title") || $this.text();
  169. var rel = $this.attr("rel") || "_blank";
  170. var options = {};
  171. var w = $this.attr("width");
  172. var h = $this.attr("height");
  173. if (w) options.width = w;
  174. if (h) options.height = h;
  175. options.max = eval($this.attr("max") || "false");
  176. options.mask = eval($this.attr("mask") || "false");
  177. options.maxable = eval($this.attr("maxable") || "true");
  178. options.minable = eval($this.attr("minable") || "true");
  179. options.fresh = eval($this.attr("fresh") || "true");
  180. options.resizable = eval($this.attr("resizable") || "true");
  181. options.drawable = eval($this.attr("drawable") || "true");
  182. options.close = eval($this.attr("close") || "");
  183. options.param = $this.attr("param") || "";
  184. var url = unescape($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first"));
  185. DWZ.debug(url);
  186. if (!url.isFinishedTm()) {
  187. alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg"));
  188. return false;
  189. }
  190. $.pdialog.open(url, rel, title, options);
  191. return false;
  192. });
  193. });
  194. $("a[target=ajax]", $p).each(function(){
  195. $(this).click(function(event){
  196. var $this = $(this);
  197. var rel = $this.attr("rel");
  198. if (rel) {
  199. var $rel = $("#"+rel);
  200. $rel.loadUrl($this.attr("href"), {}, function(){
  201. $rel.find("[layoutH]").layoutH();
  202. });
  203. }
  204. event.preventDefault();
  205. });
  206. });
  207. $("div.pagination", $p).each(function(){
  208. var $this = $(this);
  209. $this.pagination({
  210. targetType:$this.attr("targetType"),
  211. rel:$this.attr("rel"),
  212. totalCount:$this.attr("totalCount"),
  213. numPerPage:$this.attr("numPerPage"),
  214. pageNumShown:$this.attr("pageNumShown"),
  215. currentPage:$this.attr("currentPage")
  216. });
  217. });
  218. if ($.fn.sortDrag) $("div.sortDrag", $p).sortDrag();
  219. // dwz.ajax.js
  220. if ($.fn.ajaxTodo) $("a[target=ajaxTodo]", $p).ajaxTodo();
  221. if ($.fn.dwzExport) $("a[target=dwzExport]", $p).dwzExport();
  222. if ($.fn.lookup) $("a[lookupGroup]", $p).lookup();
  223. if ($.fn.multLookup) $("[multLookup]:button", $p).multLookup();
  224. if ($.fn.suggest) $("input[suggestFields]", $p).suggest();
  225. if ($.fn.itemDetail) $("table.itemDetail", $p).itemDetail();
  226. if ($.fn.selectedTodo) $("a[target=selectedTodo]", $p).selectedTodo();
  227. if ($.fn.pagerForm) $("form[rel=pagerForm]", $p).pagerForm({parentBox:$p});
  228. // 执行第三方jQuery插件【 第三方jQuery插件注册:DWZ.regPlugins.push(function($p){}); 】
  229. $.each(DWZ.regPlugins, function(index, fn){
  230. fn($p);
  231. });
  232. }