123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- /*!
- * B-JUI v1.2 (http://b-jui.com)
- * Git@OSC (http://git.oschina.net/xknaan/B-JUI)
- * Copyright 2014 K'naan (xknaan@163.com).
- * Licensed under Apache (http://www.apache.org/licenses/LICENSE-2.0)
- */
- /* ========================================================================
- * B-JUI: bjui-core.js v1.2
- * @author K'naan (xknaan@163.com)
- * -- Modified from dwz.core.js (author:ZhangHuihua@msn.com)
- * http://git.oschina.net/xknaan/B-JUI/blob/master/BJUI/js/bjui-core.js
- * ========================================================================
- * Copyright 2014 K'naan.
- * Licensed under Apache (http://www.apache.org/licenses/LICENSE-2.0)
- * ======================================================================== */
- +function ($) {
- 'use strict';
-
- var BJUI = {
- JSPATH : 'BJUI/',
- PLUGINPATH : 'BJUI/plugins/',
- IS_DEBUG : false,
- KeyPressed : { //key press state
- ctrl : false,
- shift : false
- },
- keyCode: {
- ENTER : 13, ESC : 27, END : 35, HOME : 36,
- SHIFT : 16, CTRL : 17, TAB : 9,
- LEFT : 37, RIGHT: 39, UP : 38, DOWN : 40,
- DELETE: 46, BACKSPACE: 8
- },
- eventType: {
- initUI : 'bjui.initUI', // When document load completed or ajax load completed, B-JUI && Plugins init
- beforeInitUI : 'bjui.beforeInitUI', // If your DOM do not init [add to DOM attribute 'data-noinit="true"']
- afterInitUI : 'bjui.afterInitUI', //
- ajaxStatus : 'bjui.ajaxStatus', // When performing ajax request, display or hidden progress bar
- resizeGrid : 'bjui.resizeGrid', // When the window or dialog resize completed
- beforeAjaxLoad : 'bjui.beforeAjaxLoad', // When perform '$.fn.ajaxUrl', to do something...
-
- beforeLoadNavtab : 'bjui.beforeLoadNavtab',
- beforeLoadDialog : 'bjui.beforeLoadDialog',
- afterLoadNavtab : 'bjui.afterLoadNavtab',
- afterLoadDialog : 'bjui.afterLoadDialog',
- beforeCloseNavtab : 'bjui.beforeCloseNavtab',
- beforeCloseDialog : 'bjui.beforeCloseDialog',
- afterCloseNavtab : 'bjui.afterCloseNavtab',
- afterCloseDialog : 'bjui.afterCloseDialog'
- },
- pageInfo: {pageCurrent:'pageCurrent', pageSize:'pageSize', orderField:'orderField', orderDirection:'orderDirection'},
- alertMsg: {displayPosition:'topcenter', alertTimeout: 6000}, //alertmsg display position && close timeout
- ajaxTimeout: 30000,
- statusCode: {ok:200, error:300, timeout:301},
- keys: {statusCode:'statusCode', message:'message'},
- ui: {
- windowWidth : 0,
- showSlidebar : true, // After the B-JUI initialization, display slidebar
- clientPaging : true, // Response paging and sorting information on the client
- overwriteHomeTab : false // When open an undefined id of navtab, whether overwrite the home navtab
- },
- debug: function(msg) {
- if (this.IS_DEBUG) {
- if (typeof(console) != 'undefined') console.log(msg)
- else alert(msg)
- }
- },
- loginInfo: {
- url : 'login.html',
- title : 'Login',
- width : 420,
- height : 260,
- mask : true
- },
- loadLogin: function() {
- var login = this.loginInfo
-
- $('body').dialog({id:'bjui-login', url:login.url, title:login.title, width:login.width, height:login.height, mask:login.mask})
- },
- init: function(options) {
- var op = $.extend({}, options)
-
- $.extend(BJUI.statusCode, op.statusCode)
- $.extend(BJUI.pageInfo, op.pageInfo)
- $.extend(BJUI.alertMsg, op.alertMsg)
- $.extend(BJUI.loginInfo, op.loginInfo)
- $.extend(BJUI.ui, op.ui)
-
- if (op.JSPATH) this.JSPATH = op.JSPATH
- if (op.PLUGINPATH) this.PLUGINPATH = op.PLUGINPATH
- if (op.ajaxTimeout) this.ajaxTimeout = op.ajaxTimeout
-
- this.IS_DEBUG = op.debug || false
- this.initEnv()
-
- // if ((!$.cookie || !$.cookie('bjui_theme')) && op.theme) $(this).theme('setTheme', op.theme)
- $(this).theme('setTheme', 'orange')
- },
- initEnv: function() {
- $(window).resize(function() {
- var ww = $(this).width()
-
- if (BJUI.ui.windowWidth) {
- if (BJUI.ui.windowWidth > 600 && BJUI.ui.windowWidth < ww)
- ww = BJUI.ui.windowWidth
- }
-
- BJUI.initLayout(ww)
- setTimeout(function() {$(this).trigger(BJUI.eventType.resizeGrid)}, 30)
- })
-
- setTimeout(function() {
- var ww = $(window).width()
-
- if (BJUI.ui.windowWidth) {
- if (BJUI.ui.windowWidth > 600 && BJUI.ui.windowWidth < ww)
- ww = BJUI.ui.windowWidth
- }
-
- BJUI.initLayout(ww)
- $(document).initui()
- }, 10)
- },
- initLayout: function(ww) {
- var iContentW = ww - (BJUI.ui.showSlidebar ? $('#bjui-sidebar').width() + 6 : 6),
- iContentH = $(window).height() - $('#bjui-header').height() - $('#bjui-footer').outerHeight(),
- navtabH = $('#bjui-navtab').find('.tabsPageHeader').height()
-
- if (BJUI.ui.windowWidth) $('#bjui-window').width(ww)
- BJUI.windowWidth = ww
-
- $('#bjui-container').height(iContentH)
- $('#bjui-navtab').width(iContentW)
- $('#bjui-leftside, #bjui-sidebar, #bjui-sidebar-s, #bjui-splitBar, #bjui-splitBarProxy').css({height:'100%'})
- $('#bjui-navtab .tabsPageContent').height(iContentH - navtabH)
-
- /* fixed pageFooter */
- setTimeout(function() {
- $('#bjui-navtab > .tabsPageContent > .navtabPage').resizePageH()
- $('#bjui-navtab > .tabsPageContent > .navtabPage').find('.bjui-layout').resizePageH()
- }, 10)
-
- /* header navbar */
- var navbarWidth = $('body').data('bjui.navbar.width'),
- $header = $('#bjui-header'), $toggle = $header.find('.bjui-navbar-toggle'), $logo = $header.find('.bjui-navbar-logo'), $navbar = $('#bjui-navbar-collapse'), $nav = $navbar.find('.bjui-navbar-right')
-
- if (!navbarWidth) {
- navbarWidth = {logoW:$logo.outerWidth(), navW:$nav.outerWidth()}
- $('body').data('bjui.navbar.width', navbarWidth)
- }
- if (navbarWidth) {
- if (ww - navbarWidth.logoW < navbarWidth.navW) {
- $toggle.show()
- $navbar.addClass('collapse menu')
- } else {
- $toggle.hide()
- $navbar.removeClass('collapse menu in')
- }
- }
- /* horizontal navbar */
- var $hnavbox = $('#bjui-hnav-navbar-box'),
- $hnavbar = $hnavbox.find('> #bjui-hnav-navbar'),
- $hmoreL = $hnavbox.prev(),
- $hmoreR = $hnavbox.next(),
- hboxWidth = $hnavbox.width(),
- liW = 0
-
- $hnavbar.find('> li').each(function(i) {
- var $li = $(this)
-
- liW += $li.outerWidth()
-
- if (liW > hboxWidth) {
- $hmoreR.show()
- $hnavbox.data('hnav.move', true).data('hnav.liw', liW)
- } else {
- $hmoreL.hide()
- $hmoreR.hide()
- $hnavbox.removeData('hnav.move')
- }
- })
- },
- regional: {},
- setRegional: function(key, value) {
- BJUI.regional[key] = value
- },
- getRegional : function(key) {
- if (String(key).indexOf('.') >= 0) {
- var msg, arr = String(key).split('.')
-
- for (var i = 0; i < arr.length; i++) {
- if (!msg) msg = BJUI.regional[arr[i]]
- else msg = msg[arr[i]]
- }
-
- return msg
- } else {
- return BJUI.regional[key]
- }
- },
- doRegional: function(frag, regional) {
- $.each(regional, function(k, v) {
- frag = frag.replaceAll('#'+ k +'#', v)
- })
-
- return frag
- }
- }
-
- window.BJUI = BJUI
-
- }(jQuery);
|