初始化
@@ -0,0 +1,67 @@
|
||||
@charset "utf-8";
|
||||
/*
|
||||
* artDialog skin
|
||||
* http://code.google.com/p/artdialog/
|
||||
* (c) 2009-2011 TangBin, http://www.planeArt.cn
|
||||
*
|
||||
* This is licensed under the GNU LGPL, version 2.1 or later.
|
||||
* For details, see: http://creativecommons.org/licenses/LGPL/2.1/
|
||||
*/
|
||||
|
||||
/* common start */
|
||||
body { _margin:0; _height:100%; /*IE6 BUG*/ }
|
||||
.aui_outer { text-align:left; }
|
||||
table.aui_border, table.aui_dialog { border:0; margin:0; border-collapse:collapse; width:auto; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_c, .aui_e, .aui_sw, .aui_s, .aui_se, .aui_header, .aui_tdIcon, .aui_main, .aui_footer { padding:0; }
|
||||
.aui_header, .aui_buttons button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
|
||||
.aui_title { overflow:hidden; text-overflow: ellipsis; }
|
||||
.aui_state_noTitle .aui_title { display:none; }
|
||||
.aui_close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
|
||||
.aui_close:hover { text-decoration:none; }
|
||||
.aui_main { text-align:center; min-width:9em; min-width:0\9/*IE8 BUG*/; }
|
||||
.aui_content { display:inline-block; *zoom:1; *display:inline; text-align:left; border:none 0; }
|
||||
.aui_content.aui_state_full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
|
||||
.aui_loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(icons/loading.gif) no-repeat center center; }
|
||||
.aui_icon { vertical-align: middle; }
|
||||
.aui_icon div { width:48px; height:48px; margin:10px 0 10px 10px; background-position: center center; background-repeat:no-repeat; }
|
||||
.aui_buttons { padding:8px; text-align:right; white-space:nowrap; }
|
||||
.aui_buttons button { margin-left:15px; padding: 6px 8px; cursor: pointer; display: inline-block; text-align: center; line-height: 1; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: solid 1px #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, 1); box-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
|
||||
.aui_buttons button::-moz-focus-inner{ border:0; padding:0; margin:0; }
|
||||
.aui_buttons button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
|
||||
.aui_buttons button:hover { color:#000; border-color:#666; }
|
||||
.aui_buttons button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 5px rgba(66, 109, 201, .9), inset 0 1px 1em rgba(0, 0, 0, .3); }
|
||||
.aui_buttons button[disabled] { cursor:default; color:#666; background:#DDD; border: solid 1px #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
|
||||
button.aui_state_highlight { color: #FFF; border: solid 1px #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
|
||||
button.aui_state_highlight:hover { color:#FFF; border-color:#0F3A56; }
|
||||
button.aui_state_highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
|
||||
/* common end */
|
||||
|
||||
.aui_inner { background:#FFF; }
|
||||
/*.aui_outer, .aui_inner { border:1px solid rgba(0, 0, 0, .7); border:1px solid #333\9; }*/
|
||||
.aui_border { box-shadow: inset 0 0 1px rgba(255, 255, 255, .9); }
|
||||
.aui_nw, .aui_ne, .aui_sw, .aui_se { width:1px; height:1px; }
|
||||
.aui_nw, .aui_n, .aui_ne, .aui_w, .aui_e, .aui_sw, .aui_s, .aui_se { background:rgba(0, 0, 0, .4); background:#000\9!important; filter:alpha(opacity=40); }
|
||||
.aui_state_lock .aui_nw, .aui_state_lock .aui_n, .aui_state_lock .aui_ne, .aui_state_lock .aui_w, .aui_state_lock .aui_e, .aui_state_lock .aui_sw, .aui_state_lock .aui_s, .aui_state_lock .aui_se { background:rgba(0, 0, 0, .5); background:#000\9!important; filter:alpha(opacity=50); }
|
||||
.aui_state_focus .aui_dialog { box-shadow: 0 0 3px rgba(0, 0, 0, 0.4); }
|
||||
.aui_state_focus .aui_outer { box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1); }
|
||||
.aui_state_lock .aui_border { box-shadow:0 3px 26px rgba(0, 0, 0, .9); }
|
||||
.aui_state_drag .aui_outer, .aui_outer:active { box-shadow:none; }
|
||||
.aui_titleBar { position:relative; height:100%; }
|
||||
.aui_title { font-size: 14px;height:38px; line-height:38px; padding:0 28px 0 10px; text-shadow:0 1px 0 rgba(255, 255, 255, .7); background-color:#F6F6F6; font-weight:bold; color:#95a7ae; font-family: Tahoma, Arial/9!important; background-color:#F6F6F6; background: linear-gradient(top, #edf5f8, #bdc6cd); background: -moz-linear-gradient(top, #F6F6F6, #F6F6F6); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F6F6F6), to(#F6F6F6)); border-top:1px solid #edf5f8; border-bottom:1px solid #b6bec5; }
|
||||
.aui_state_focus .aui_title { color:#4c5a5f; }
|
||||
.aui_state_drag .aui_title { background: linear-gradient(top, #bdc6cd, #edf5f8); background: -moz-linear-gradient(top, #bdc6cd, #edf5f8); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#bdc6cd), to(#edf5f8)); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bdc6cd', endColorstr='#edf5f8'); box-shadow:none; }
|
||||
.aui_state_drag .aui_titleBar { box-shadow:none; }
|
||||
.aui_close { padding:0; top:4px; right:4px; width:21px; height:21px; line-height:21px; font-size:18px; color:#68767b; text-align:center; font-family: Helvetica, STHeiti; _font-family: Tahoma, '\u9ed1\u4f53', 'Book Antiqua', Palatino; text-shadow:0 1px 0 rgba(255, 255, 255, .9); }
|
||||
.aui_close:hover { background:#C72015; color:#FFF; }
|
||||
.aui_close:active { box-shadow: none; }
|
||||
.aui_content { color:#666; }
|
||||
.aui_state_focus .aui_content { color:#000; }
|
||||
.aui_buttons { background-color:#F6F6F6; border-top:solid 1px #DADEE5; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_se { width:3px; height:3px; }
|
||||
.aui_state_noTitle .aui_inner { border:1px solid #666; background:#FFF; }
|
||||
.aui_state_noTitle .aui_outer { border:none 0; box-shadow:none; }
|
||||
.aui_state_noTitle .aui_nw, .aui_state_noTitle .aui_n, .aui_state_noTitle .aui_ne, .aui_state_noTitle .aui_w, .aui_state_noTitle .aui_e, .aui_state_noTitle .aui_sw, .aui_state_noTitle .aui_s, .aui_state_noTitle .aui_se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
|
||||
.aui_state_noTitle .aui_titleBar { bottom:0; _bottom:0; _margin-top:0; }
|
||||
.aui_state_noTitle .aui_close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
|
||||
.aui_state_noTitle .aui_close:hover, .aui_state_noTitle .aui_close:active { text-decoration:none; color:#900; }
|
||||
.aui_state_noTitle .aui_dialog { box-shadow: none; }
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 701 B |
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,242 @@
|
||||
/**
|
||||
* @author zhixin wen <wenzhixin2010@gmail.com>
|
||||
* @version: v1.0.1
|
||||
* Modificated 16.08.16 by Aleksej Tokarev (Loecha)
|
||||
* - Sorting Problem solved
|
||||
* - Recalculated Size of fixed Columns
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.extend($.fn.bootstrapTable.defaults, {
|
||||
fixedColumns: false,
|
||||
fixedNumber: 1
|
||||
});
|
||||
|
||||
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
||||
_initHeader = BootstrapTable.prototype.initHeader,
|
||||
_initBody = BootstrapTable.prototype.initBody,
|
||||
_resetView = BootstrapTable.prototype.resetView,
|
||||
_getCaret = BootstrapTable.prototype.getCaret; // Add: Aleksej
|
||||
|
||||
BootstrapTable.prototype.initFixedColumns = function () {
|
||||
this.$fixedHeader = $([
|
||||
'<div class="fixed-table-header-columns">',
|
||||
'<table>',
|
||||
'<thead></thead>',
|
||||
'</table>',
|
||||
'</div>'].join(''));
|
||||
|
||||
this.timeoutHeaderColumns_ = 0;
|
||||
this.$fixedHeader.find('table').attr('class', this.$el.attr('class'));
|
||||
this.$fixedHeaderColumns = this.$fixedHeader.find('thead');
|
||||
this.$tableHeader.before(this.$fixedHeader);
|
||||
|
||||
this.$fixedBody = $([
|
||||
'<div class="fixed-table-body-columns">',
|
||||
'<table>',
|
||||
'<tbody></tbody>',
|
||||
'</table>',
|
||||
'</div>'].join(''));
|
||||
|
||||
this.timeoutBodyColumns_ = 0;
|
||||
this.$fixedBody.find('table').attr('class', this.$el.attr('class'));
|
||||
this.$fixedBodyColumns = this.$fixedBody.find('tbody');
|
||||
this.$tableBody.before(this.$fixedBody);
|
||||
};
|
||||
|
||||
BootstrapTable.prototype.initHeader = function () {
|
||||
_initHeader.apply(this, Array.prototype.slice.apply(arguments));
|
||||
|
||||
if (!this.options.fixedColumns) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.initFixedColumns();
|
||||
|
||||
var that = this, $trs = this.$header.find('tr').clone(true); //Fix: Aleksej "clone()" mit "clone(true)" ersetzt
|
||||
$trs.each(function () {
|
||||
// This causes layout problems:
|
||||
//$(this).find('th:gt(' + (that.options.fixedNumber -1) + ')').remove(); // Fix: Aleksej "-1" hinnzugef�gt. Denn immer eine Spalte Mehr geblieben ist
|
||||
$(this).find('th:gt(' + that.options.fixedNumber + ')').remove();
|
||||
});
|
||||
this.$fixedHeaderColumns.html('').append($trs);
|
||||
};
|
||||
|
||||
BootstrapTable.prototype.initBody = function () {
|
||||
_initBody.apply(this, Array.prototype.slice.apply(arguments));
|
||||
|
||||
if (!this.options.fixedColumns) {
|
||||
return;
|
||||
}
|
||||
|
||||
var that = this,
|
||||
rowspan = 0;
|
||||
|
||||
this.$fixedBodyColumns.html('');
|
||||
this.$body.find('> tr[data-index]').each(function () {
|
||||
var $tr = $(this).clone(),
|
||||
$tds = $tr.find('td');
|
||||
|
||||
var dataIndex = $tr.attr("data-index");
|
||||
$tr = $("<tr></tr>");
|
||||
$tr.attr("data-index", dataIndex);
|
||||
|
||||
var end = that.options.fixedNumber;
|
||||
if (rowspan > 0) {
|
||||
--end;
|
||||
--rowspan;
|
||||
}
|
||||
for (var i = 0; i < end; i++) {
|
||||
$tr.append($tds.eq(i).clone());
|
||||
}
|
||||
that.$fixedBodyColumns.append($tr);
|
||||
|
||||
if ($tds.eq(0).attr('rowspan')){
|
||||
rowspan = $tds.eq(0).attr('rowspan') - 1;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
BootstrapTable.prototype.resetView = function () {
|
||||
_resetView.apply(this, Array.prototype.slice.apply(arguments));
|
||||
|
||||
if (!this.options.fixedColumns) {
|
||||
return;
|
||||
}
|
||||
|
||||
clearTimeout(this.timeoutHeaderColumns_);
|
||||
this.timeoutHeaderColumns_ = setTimeout($.proxy(this.fitHeaderColumns, this), this.$el.is(':hidden') ? 100 : 0);
|
||||
|
||||
clearTimeout(this.timeoutBodyColumns_);
|
||||
this.timeoutBodyColumns_ = setTimeout($.proxy(this.fitBodyColumns, this), this.$el.is(':hidden') ? 100 : 0);
|
||||
};
|
||||
|
||||
BootstrapTable.prototype.fitHeaderColumns = function () {
|
||||
var that = this,
|
||||
visibleFields = this.getVisibleFields(),
|
||||
headerWidth = 0;
|
||||
|
||||
this.$body.find('tr:first-child:not(.no-records-found) > *').each(function (i) {
|
||||
var $this = $(this),
|
||||
index = i;
|
||||
|
||||
if (i >= that.options.fixedNumber) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (that.options.detailView && !that.options.cardView) {
|
||||
index = i - 1;
|
||||
}
|
||||
|
||||
var $th = that.$fixedHeader.find('th[data-field="' + visibleFields[index] + '"]');
|
||||
$th.find('.fht-cell').width($this.innerWidth());
|
||||
headerWidth += $this.outerWidth();
|
||||
|
||||
$th.data('fix-pos', index);
|
||||
});
|
||||
this.$fixedHeader.width(headerWidth + 1).show();
|
||||
|
||||
// fix click event
|
||||
this.$fixedHeader.delegate("tr th", 'click', function() {
|
||||
$(this).parents(".fixed-table-container").find(".fixed-table-body table thead tr th:eq("+$(this).data("fix-pos")+") .sortable").click();
|
||||
})
|
||||
};
|
||||
|
||||
/**
|
||||
* Add: Aleksej
|
||||
* Hook f�r getCaret. Aktualisieren Header bei Fixed-Columns wenn diese sortiert wurden
|
||||
* @method getCaret
|
||||
* @for BootstrapTable
|
||||
*/
|
||||
BootstrapTable.prototype.getCaret = function () {
|
||||
var result = _getCaret.apply(this, arguments);
|
||||
|
||||
if (this.options.fixedColumns && this.$fixedHeaderColumns instanceof jQuery) {
|
||||
var that = this, $th;
|
||||
|
||||
$.each(this.$fixedHeaderColumns.find('th'), function (i, th) {
|
||||
$th = $(th);
|
||||
$th.find('.sortable').removeClass('desc asc').addClass($th.data('field') === that.options.sortName ? that.options.sortOrder : 'both');
|
||||
});
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* Add: Aleksej, zum berechnen von Scrollbar-Gr��e
|
||||
* @method calcScrollBarSize
|
||||
* @return Number
|
||||
*/
|
||||
BootstrapTable.prototype.calcScrollBarSize = function () {
|
||||
// Es ist egal, ob H�he oder Breite
|
||||
var tmpWidth = 100,
|
||||
$container = $('<div>').css({
|
||||
width : tmpWidth,
|
||||
overflow : 'scroll',
|
||||
visibility : 'hidden'}
|
||||
).appendTo('body'),
|
||||
widthWithScroll = $('<div>').css({
|
||||
width: '100%'
|
||||
}).appendTo($container).outerWidth();
|
||||
|
||||
$container.remove();
|
||||
return tmpWidth - widthWithScroll;
|
||||
};
|
||||
|
||||
BootstrapTable.prototype.fitBodyColumns = function () {
|
||||
var that = this,
|
||||
borderHeight = (parseInt(this.$el.css('border-bottom-width')) + parseInt(this.$el.css('border-top-width'))), // Add. Aleksej
|
||||
top = this.$fixedHeader.outerHeight() + borderHeight, // Fix. Aleksej "-2" mit "+ borderHeight" ersetzt
|
||||
// the fixed height should reduce the scorll-x height
|
||||
height = this.$tableBody.height() - this.calcScrollBarSize(); // Fix. Aleksej "-14" mit "- this.calcScrollBarSize()" ersetzt
|
||||
|
||||
if (!this.$body.find('> tr[data-index]').length) {
|
||||
this.$fixedBody.hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.options.height) {
|
||||
top = this.$fixedHeader.height();
|
||||
height = height - top;
|
||||
}
|
||||
|
||||
this.$fixedBody.css({
|
||||
width: this.$fixedHeader.width(),
|
||||
height: height,
|
||||
top: top
|
||||
}).show();
|
||||
|
||||
this.$body.find('> tr').each(function (i) {
|
||||
that.$fixedBody.find('tr:eq(' + i + ')').height($(this).height() - 1);
|
||||
});
|
||||
|
||||
// events
|
||||
this.$tableBody.on('scroll', function () {
|
||||
that.$fixedBody.find('table').css('top', -$(this).scrollTop());
|
||||
});
|
||||
this.$body.find('> tr[data-index]').off('hover').hover(function () {
|
||||
var index = $(this).data('index');
|
||||
that.$fixedBody.find('tr[data-index="' + index + '"]').addClass('hover');
|
||||
}, function () {
|
||||
var index = $(this).data('index');
|
||||
that.$fixedBody.find('tr[data-index="' + index + '"]').removeClass('hover');
|
||||
});
|
||||
this.$fixedBody.find('tr[data-index]').off('hover').hover(function () {
|
||||
var index = $(this).data('index');
|
||||
that.$body.find('tr[data-index="' + index + '"]').addClass('hover');
|
||||
}, function () {
|
||||
var index = $(this).data('index');
|
||||
that.$body.find('> tr[data-index="' + index + '"]').removeClass('hover');
|
||||
});
|
||||
|
||||
// fix td width bug
|
||||
var $first_tr = that.$body.find('tr:eq(0)');
|
||||
that.$fixedBody.find('tr:eq(0)').find("td").each(function(index) {
|
||||
$(this).width($first_tr.find("td:eq("+index+")").width())
|
||||
});
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 701 B |
|
After Width: | Height: | Size: 1.7 KiB |