Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
MCMS
Commits
0dec546d
Commit
0dec546d
authored
Jan 29, 2019
by
ms-dev
Browse files
静态资源
parent
7cf2858e
Changes
297
Hide whitespace changes
Inline
Side-by-side
Too many changes to show.
To preserve performance only
20 of 297+
files are displayed.
Plain diff
Email patch
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/copy-rows/bootstrap-table-copy-rows.js
0 → 100644
View file @
0dec546d
/**
* @author Homer Glascock <HopGlascock@gmail.com>
* @version: v1.0.0
*/
!
function
(
$
)
{
"
use strict
"
;
var
calculateObjectValue
=
$
.
fn
.
bootstrapTable
.
utils
.
calculateObjectValue
,
sprintf
=
$
.
fn
.
bootstrapTable
.
utils
.
sprintf
;
var
copytext
=
function
(
text
)
{
var
textField
=
document
.
createElement
(
'
textarea
'
);
$
(
textField
).
html
(
text
);
document
.
body
.
appendChild
(
textField
);
textField
.
select
();
try
{
document
.
execCommand
(
'
copy
'
);
}
catch
(
e
)
{
console
.
log
(
"
Oops, unable to copy
"
);
}
$
(
textField
).
remove
();
};
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
copyBtn
:
false
,
copyWHiddenBtn
:
false
,
copyDelemeter
:
"
,
"
});
$
.
fn
.
bootstrapTable
.
methods
.
push
(
'
copyColumnsToClipboard
'
,
'
copyColumnsToClipboardWithHidden
'
);
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_initToolbar
=
BootstrapTable
.
prototype
.
initToolbar
;
BootstrapTable
.
prototype
.
initToolbar
=
function
()
{
_initToolbar
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
var
that
=
this
,
$btnGroup
=
this
.
$toolbar
.
find
(
'
>.btn-group
'
);
if
(
this
.
options
.
clickToSelect
||
this
.
options
.
singleSelect
)
{
if
(
this
.
options
.
copyBtn
)
{
var
copybtn
=
"
<button class='btn btn-default' id='copyBtn'><span class='glyphicon glyphicon-copy icon-pencil'></span></button>
"
;
$btnGroup
.
append
(
copybtn
);
$btnGroup
.
find
(
'
#copyBtn
'
).
click
(
function
()
{
that
.
copyColumnsToClipboard
();
});
}
if
(
this
.
options
.
copyWHiddenBtn
)
{
var
copyhiddenbtn
=
"
<button class='btn btn-default' id='copyWHiddenBtn'><span class='badge'><span class='glyphicon glyphicon-copy icon-pencil'></span></span></button>
"
;
$btnGroup
.
append
(
copyhiddenbtn
);
$btnGroup
.
find
(
'
#copyWHiddenBtn
'
).
click
(
function
()
{
that
.
copyColumnsToClipboardWithHidden
();
});
}
}
};
BootstrapTable
.
prototype
.
copyColumnsToClipboard
=
function
()
{
var
that
=
this
,
ret
=
""
,
delimet
=
this
.
options
.
copyDelemeter
;
$
.
each
(
that
.
getSelections
(),
function
(
index
,
row
)
{
$
.
each
(
that
.
options
.
columns
[
0
],
function
(
indy
,
column
)
{
if
(
column
.
field
!==
"
state
"
&&
column
.
field
!==
"
RowNumber
"
&&
column
.
visible
)
{
if
(
row
[
column
.
field
]
!==
null
)
{
ret
+=
calculateObjectValue
(
column
,
that
.
header
.
formatters
[
indy
],
[
row
[
column
.
field
],
row
,
index
],
row
[
column
.
field
]);
}
ret
+=
delimet
;
}
});
ret
+=
"
\r\n
"
;
});
copytext
(
ret
);
};
BootstrapTable
.
prototype
.
copyColumnsToClipboardWithHidden
=
function
()
{
var
that
=
this
,
ret
=
""
,
delimet
=
this
.
options
.
copyDelemeter
;
$
.
each
(
that
.
getSelections
(),
function
(
index
,
row
)
{
$
.
each
(
that
.
options
.
columns
[
0
],
function
(
indy
,
column
)
{
if
(
column
.
field
!=
"
state
"
&&
column
.
field
!==
"
RowNumber
"
)
{
if
(
row
[
column
.
field
]
!==
null
)
{
ret
+=
calculateObjectValue
(
column
,
that
.
header
.
formatters
[
indy
],
[
row
[
column
.
field
],
row
,
index
],
row
[
column
.
field
]);
}
ret
+=
delimet
;
}
});
ret
+=
"
\r\n
"
;
});
copytext
(
ret
);
};
}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/copy-rows/bootstrap-table-copy-rows.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
var
b
=
a
.
fn
.
bootstrapTable
.
utils
.
calculateObjectValue
,
c
=
(
a
.
fn
.
bootstrapTable
.
utils
.
sprintf
,
function
(
b
){
var
c
=
document
.
createElement
(
"
textarea
"
);
a
(
c
).
html
(
b
),
document
.
body
.
appendChild
(
c
),
c
.
select
();
try
{
document
.
execCommand
(
"
copy
"
)}
catch
(
d
){
console
.
log
(
"
Oops, unable to copy
"
)}
a
(
c
).
remove
()});
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
copyBtn
:
!
1
,
copyWHiddenBtn
:
!
1
,
copyDelemeter
:
"
,
"
}),
a
.
fn
.
bootstrapTable
.
methods
.
push
(
"
copyColumnsToClipboard
"
,
"
copyColumnsToClipboardWithHidden
"
);
var
d
=
a
.
fn
.
bootstrapTable
.
Constructor
,
e
=
d
.
prototype
.
initToolbar
;
d
.
prototype
.
initToolbar
=
function
(){
e
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
var
a
=
this
,
b
=
this
.
$toolbar
.
find
(
"
>.btn-group
"
);
if
(
this
.
options
.
clickToSelect
||
this
.
options
.
singleSelect
){
if
(
this
.
options
.
copyBtn
){
var
c
=
"
<button class='btn btn-default' id='copyBtn'><span class='glyphicon glyphicon-copy icon-pencil'></span></button>
"
;
b
.
append
(
c
),
b
.
find
(
"
#copyBtn
"
).
click
(
function
(){
a
.
copyColumnsToClipboard
()})}
if
(
this
.
options
.
copyWHiddenBtn
){
var
d
=
"
<button class='btn btn-default' id='copyWHiddenBtn'><span class='badge'><span class='glyphicon glyphicon-copy icon-pencil'></span></span></button>
"
;
b
.
append
(
d
),
b
.
find
(
"
#copyWHiddenBtn
"
).
click
(
function
(){
a
.
copyColumnsToClipboardWithHidden
()})}}},
d
.
prototype
.
copyColumnsToClipboard
=
function
(){
var
d
=
this
,
e
=
""
,
f
=
this
.
options
.
copyDelemeter
;
a
.
each
(
d
.
getSelections
(),
function
(
c
,
g
){
a
.
each
(
d
.
options
.
columns
[
0
],
function
(
a
,
h
){
"
state
"
!==
h
.
field
&&
"
RowNumber
"
!==
h
.
field
&&
h
.
visible
&&
(
null
!==
g
[
h
.
field
]
&&
(
e
+=
b
(
h
,
d
.
header
.
formatters
[
a
],[
g
[
h
.
field
],
g
,
c
],
g
[
h
.
field
])),
e
+=
f
)}),
e
+=
"
\r\n
"
}),
c
(
e
)},
d
.
prototype
.
copyColumnsToClipboardWithHidden
=
function
(){
var
d
=
this
,
e
=
""
,
f
=
this
.
options
.
copyDelemeter
;
a
.
each
(
d
.
getSelections
(),
function
(
c
,
g
){
a
.
each
(
d
.
options
.
columns
[
0
],
function
(
a
,
h
){
"
state
"
!=
h
.
field
&&
"
RowNumber
"
!==
h
.
field
&&
(
null
!==
g
[
h
.
field
]
&&
(
e
+=
b
(
h
,
d
.
header
.
formatters
[
a
],[
g
[
h
.
field
],
g
,
c
],
g
[
h
.
field
])),
e
+=
f
)}),
e
+=
"
\r\n
"
}),
c
(
e
)}}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/editable/bootstrap-table-editable.js
0 → 100644
View file @
0dec546d
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
* extensions: https://github.com/vitalets/x-editable
*/
(
function
(
$
)
{
'
use strict
'
;
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
editable
:
true
,
onEditableInit
:
function
()
{
return
false
;
},
onEditableSave
:
function
(
field
,
row
,
oldValue
,
$el
)
{
return
false
;
},
onEditableShown
:
function
(
field
,
row
,
$el
,
editable
)
{
return
false
;
},
onEditableHidden
:
function
(
field
,
row
,
$el
,
reason
)
{
return
false
;
}
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
Constructor
.
EVENTS
,
{
'
editable-init.bs.table
'
:
'
onEditableInit
'
,
'
editable-save.bs.table
'
:
'
onEditableSave
'
,
'
editable-shown.bs.table
'
:
'
onEditableShown
'
,
'
editable-hidden.bs.table
'
:
'
onEditableHidden
'
});
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_initTable
=
BootstrapTable
.
prototype
.
initTable
,
_initBody
=
BootstrapTable
.
prototype
.
initBody
;
BootstrapTable
.
prototype
.
initTable
=
function
()
{
var
that
=
this
;
_initTable
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
(
!
this
.
options
.
editable
)
{
return
;
}
$
.
each
(
this
.
columns
,
function
(
i
,
column
)
{
if
(
!
column
.
editable
)
{
return
;
}
var
editableOptions
=
{},
editableDataMarkup
=
[],
editableDataPrefix
=
'
editable-
'
;
var
processDataOptions
=
function
(
key
,
value
)
{
// Replace camel case with dashes.
var
dashKey
=
key
.
replace
(
/
([
A-Z
])
/g
,
function
(
$1
)
{
return
"
-
"
+
$1
.
toLowerCase
();
});
if
(
dashKey
.
slice
(
0
,
editableDataPrefix
.
length
)
==
editableDataPrefix
)
{
var
dataKey
=
dashKey
.
replace
(
editableDataPrefix
,
'
data-
'
);
editableOptions
[
dataKey
]
=
value
;
}
};
$
.
each
(
that
.
options
,
processDataOptions
);
column
.
formatter
=
column
.
formatter
||
function
(
value
,
row
,
index
)
{
return
value
;
};
column
.
_formatter
=
column
.
_formatter
?
column
.
_formatter
:
column
.
formatter
;
column
.
formatter
=
function
(
value
,
row
,
index
)
{
var
result
=
column
.
_formatter
?
column
.
_formatter
(
value
,
row
,
index
)
:
value
;
$
.
each
(
column
,
processDataOptions
);
$
.
each
(
editableOptions
,
function
(
key
,
value
)
{
editableDataMarkup
.
push
(
'
'
+
key
+
'
="
'
+
value
+
'
"
'
);
});
var
_dont_edit_formatter
=
false
;
if
(
column
.
editable
.
hasOwnProperty
(
'
noeditFormatter
'
))
{
_dont_edit_formatter
=
column
.
editable
.
noeditFormatter
(
value
,
row
,
index
);
}
if
(
_dont_edit_formatter
===
false
)
{
return
[
'
<a href="javascript:void(0)"
'
,
'
data-name="
'
+
column
.
field
+
'
"
'
,
'
data-pk="
'
+
row
[
that
.
options
.
idField
]
+
'
"
'
,
'
data-value="
'
+
result
+
'
"
'
,
editableDataMarkup
.
join
(
''
),
'
>
'
+
'
</a>
'
].
join
(
''
);
}
else
{
return
_dont_edit_formatter
;
}
};
});
};
BootstrapTable
.
prototype
.
initBody
=
function
()
{
var
that
=
this
;
_initBody
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
(
!
this
.
options
.
editable
)
{
return
;
}
$
.
each
(
this
.
columns
,
function
(
i
,
column
)
{
if
(
!
column
.
editable
)
{
return
;
}
that
.
$body
.
find
(
'
a[data-name="
'
+
column
.
field
+
'
"]
'
).
editable
(
column
.
editable
)
.
off
(
'
save
'
).
on
(
'
save
'
,
function
(
e
,
params
)
{
var
data
=
that
.
getData
(),
index
=
$
(
this
).
parents
(
'
tr[data-index]
'
).
data
(
'
index
'
),
row
=
data
[
index
],
oldValue
=
row
[
column
.
field
];
$
(
this
).
data
(
'
value
'
,
params
.
submitValue
);
row
[
column
.
field
]
=
params
.
submitValue
;
that
.
trigger
(
'
editable-save
'
,
column
.
field
,
row
,
oldValue
,
$
(
this
));
that
.
resetFooter
();
});
that
.
$body
.
find
(
'
a[data-name="
'
+
column
.
field
+
'
"]
'
).
editable
(
column
.
editable
)
.
off
(
'
shown
'
).
on
(
'
shown
'
,
function
(
e
,
editable
)
{
var
data
=
that
.
getData
(),
index
=
$
(
this
).
parents
(
'
tr[data-index]
'
).
data
(
'
index
'
),
row
=
data
[
index
];
that
.
trigger
(
'
editable-shown
'
,
column
.
field
,
row
,
$
(
this
),
editable
);
});
that
.
$body
.
find
(
'
a[data-name="
'
+
column
.
field
+
'
"]
'
).
editable
(
column
.
editable
)
.
off
(
'
hidden
'
).
on
(
'
hidden
'
,
function
(
e
,
reason
)
{
var
data
=
that
.
getData
(),
index
=
$
(
this
).
parents
(
'
tr[data-index]
'
).
data
(
'
index
'
),
row
=
data
[
index
];
that
.
trigger
(
'
editable-hidden
'
,
column
.
field
,
row
,
$
(
this
),
reason
);
});
});
this
.
trigger
(
'
editable-init
'
);
};
})(
jQuery
);
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/editable/bootstrap-table-editable.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
editable
:
!
0
,
onEditableInit
:
function
(){
return
!
1
},
onEditableSave
:
function
(){
return
!
1
},
onEditableShown
:
function
(){
return
!
1
},
onEditableHidden
:
function
(){
return
!
1
}}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
Constructor
.
EVENTS
,{
"
editable-init.bs.table
"
:
"
onEditableInit
"
,
"
editable-save.bs.table
"
:
"
onEditableSave
"
,
"
editable-shown.bs.table
"
:
"
onEditableShown
"
,
"
editable-hidden.bs.table
"
:
"
onEditableHidden
"
});
var
b
=
a
.
fn
.
bootstrapTable
.
Constructor
,
c
=
b
.
prototype
.
initTable
,
d
=
b
.
prototype
.
initBody
;
b
.
prototype
.
initTable
=
function
(){
var
b
=
this
;
c
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
this
.
options
.
editable
&&
a
.
each
(
this
.
columns
,
function
(
c
,
d
){
if
(
d
.
editable
){
var
e
=
{},
f
=
[],
g
=
"
editable-
"
,
h
=
function
(
a
,
b
){
var
c
=
a
.
replace
(
/
([
A-Z
])
/g
,
function
(
a
){
return
"
-
"
+
a
.
toLowerCase
()});
if
(
c
.
slice
(
0
,
g
.
length
)
==
g
){
var
d
=
c
.
replace
(
g
,
"
data-
"
);
e
[
d
]
=
b
}};
a
.
each
(
b
.
options
,
h
),
d
.
formatter
=
d
.
formatter
||
function
(
a
){
return
a
},
d
.
_formatter
=
d
.
_formatter
?
d
.
_formatter
:
d
.
formatter
,
d
.
formatter
=
function
(
c
,
g
,
i
){
var
j
=
d
.
_formatter
?
d
.
_formatter
(
c
,
g
,
i
):
c
;
a
.
each
(
d
,
h
),
a
.
each
(
e
,
function
(
a
,
b
){
f
.
push
(
"
"
+
a
+
'
="
'
+
b
+
'
"
'
)});
var
k
=!
1
;
return
d
.
editable
.
hasOwnProperty
(
"
noeditFormatter
"
)
&&
(
k
=
d
.
editable
.
noeditFormatter
(
c
,
g
,
i
)),
k
===!
1
?[
'
<a href="javascript:void(0)"
'
,
'
data-name="
'
+
d
.
field
+
'
"
'
,
'
data-pk="
'
+
g
[
b
.
options
.
idField
]
+
'
"
'
,
'
data-value="
'
+
j
+
'
"
'
,
f
.
join
(
""
),
"
></a>
"
].
join
(
""
):
k
}}})},
b
.
prototype
.
initBody
=
function
(){
var
b
=
this
;
d
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
this
.
options
.
editable
&&
(
a
.
each
(
this
.
columns
,
function
(
c
,
d
){
d
.
editable
&&
(
b
.
$body
.
find
(
'
a[data-name="
'
+
d
.
field
+
'
"]
'
).
editable
(
d
.
editable
).
off
(
"
save
"
).
on
(
"
save
"
,
function
(
c
,
e
){
var
f
=
b
.
getData
(),
g
=
a
(
this
).
parents
(
"
tr[data-index]
"
).
data
(
"
index
"
),
h
=
f
[
g
],
i
=
h
[
d
.
field
];
a
(
this
).
data
(
"
value
"
,
e
.
submitValue
),
h
[
d
.
field
]
=
e
.
submitValue
,
b
.
trigger
(
"
editable-save
"
,
d
.
field
,
h
,
i
,
a
(
this
)),
b
.
resetFooter
()}),
b
.
$body
.
find
(
'
a[data-name="
'
+
d
.
field
+
'
"]
'
).
editable
(
d
.
editable
).
off
(
"
shown
"
).
on
(
"
shown
"
,
function
(
c
,
e
){
var
f
=
b
.
getData
(),
g
=
a
(
this
).
parents
(
"
tr[data-index]
"
).
data
(
"
index
"
),
h
=
f
[
g
];
b
.
trigger
(
"
editable-shown
"
,
d
.
field
,
h
,
a
(
this
),
e
)}),
b
.
$body
.
find
(
'
a[data-name="
'
+
d
.
field
+
'
"]
'
).
editable
(
d
.
editable
).
off
(
"
hidden
"
).
on
(
"
hidden
"
,
function
(
c
,
e
){
var
f
=
b
.
getData
(),
g
=
a
(
this
).
parents
(
"
tr[data-index]
"
).
data
(
"
index
"
),
h
=
f
[
g
];
b
.
trigger
(
"
editable-hidden
"
,
d
.
field
,
h
,
a
(
this
),
e
)}))}),
this
.
trigger
(
"
editable-init
"
))}}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/export/bootstrap-table-export.js
0 → 100644
View file @
0dec546d
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
* extensions: https://github.com/kayalshri/tableExport.jquery.plugin
*/
(
function
(
$
)
{
'
use strict
'
;
var
sprintf
=
$
.
fn
.
bootstrapTable
.
utils
.
sprintf
;
var
TYPE_NAME
=
{
json
:
'
JSON
'
,
xml
:
'
XML
'
,
png
:
'
PNG
'
,
csv
:
'
CSV
'
,
txt
:
'
TXT
'
,
sql
:
'
SQL
'
,
doc
:
'
MS-Word
'
,
excel
:
'
MS-Excel
'
,
xlsx
:
'
MS-Excel (OpenXML)
'
,
powerpoint
:
'
MS-Powerpoint
'
,
pdf
:
'
PDF
'
};
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
showExport
:
false
,
exportDataType
:
'
basic
'
,
// basic, all, selected
// 'json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'powerpoint', 'pdf'
exportTypes
:
[
'
json
'
,
'
xml
'
,
'
csv
'
,
'
txt
'
,
'
sql
'
,
'
excel
'
],
exportOptions
:
{}
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
.
icons
,
{
export
:
'
glyphicon-export icon-share
'
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
locales
,
{
formatExport
:
function
()
{
return
'
Export data
'
;
}
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
$
.
fn
.
bootstrapTable
.
locales
);
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_initToolbar
=
BootstrapTable
.
prototype
.
initToolbar
;
BootstrapTable
.
prototype
.
initToolbar
=
function
()
{
this
.
showToolbar
=
this
.
options
.
showExport
;
_initToolbar
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
(
this
.
options
.
showExport
)
{
var
that
=
this
,
$btnGroup
=
this
.
$toolbar
.
find
(
'
>.btn-group
'
),
$export
=
$btnGroup
.
find
(
'
div.export
'
);
if
(
!
$export
.
length
)
{
$export
=
$
([
'
<div class="export btn-group">
'
,
'
<button class="btn
'
+
sprintf
(
'
btn-%s
'
,
this
.
options
.
buttonsClass
)
+
sprintf
(
'
btn-%s
'
,
this
.
options
.
iconSize
)
+
'
dropdown-toggle" aria-label="export type"
'
+
'
title="
'
+
this
.
options
.
formatExport
()
+
'
"
'
+
'
data-toggle="dropdown" type="button">
'
,
sprintf
(
'
<i class="%s %s"></i>
'
,
this
.
options
.
iconsPrefix
,
this
.
options
.
icons
.
export
),
'
<span class="caret"></span>
'
,
'
</button>
'
,
'
<ul class="dropdown-menu" role="menu">
'
,
'
</ul>
'
,
'
</div>
'
].
join
(
''
)).
appendTo
(
$btnGroup
);
var
$menu
=
$export
.
find
(
'
.dropdown-menu
'
),
exportTypes
=
this
.
options
.
exportTypes
;
if
(
typeof
this
.
options
.
exportTypes
===
'
string
'
)
{
var
types
=
this
.
options
.
exportTypes
.
slice
(
1
,
-
1
).
replace
(
/ /g
,
''
).
split
(
'
,
'
);
exportTypes
=
[];
$
.
each
(
types
,
function
(
i
,
value
)
{
exportTypes
.
push
(
value
.
slice
(
1
,
-
1
));
});
}
$
.
each
(
exportTypes
,
function
(
i
,
type
)
{
if
(
TYPE_NAME
.
hasOwnProperty
(
type
))
{
$menu
.
append
([
'
<li role="menuitem" data-type="
'
+
type
+
'
">
'
,
'
<a href="javascript:void(0)">
'
,
TYPE_NAME
[
type
],
'
</a>
'
,
'
</li>
'
].
join
(
''
));
}
});
$menu
.
find
(
'
li
'
).
click
(
function
()
{
var
type
=
$
(
this
).
data
(
'
type
'
),
doExport
=
function
()
{
that
.
$el
.
tableExport
(
$
.
extend
({},
that
.
options
.
exportOptions
,
{
type
:
type
,
escape
:
false
}));
};
if
(
that
.
options
.
exportDataType
===
'
all
'
&&
that
.
options
.
pagination
)
{
that
.
$el
.
one
(
that
.
options
.
sidePagination
===
'
server
'
?
'
post-body.bs.table
'
:
'
page-change.bs.table
'
,
function
()
{
doExport
();
that
.
togglePagination
();
});
that
.
togglePagination
();
}
else
if
(
that
.
options
.
exportDataType
===
'
selected
'
)
{
var
data
=
that
.
getData
(),
selectedData
=
that
.
getAllSelections
();
// Quick fix #2220
if
(
that
.
options
.
sidePagination
===
'
server
'
)
{
data
=
{
total
:
that
.
options
.
totalRows
};
data
[
that
.
options
.
dataField
]
=
that
.
getData
();
selectedData
=
{
total
:
that
.
options
.
totalRows
};
selectedData
[
that
.
options
.
dataField
]
=
that
.
getAllSelections
();
}
that
.
load
(
selectedData
);
doExport
();
that
.
load
(
data
);
}
else
{
doExport
();
}
});
}
}
};
})(
jQuery
);
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/export/bootstrap-table-export.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
var
b
=
a
.
fn
.
bootstrapTable
.
utils
.
sprintf
,
c
=
{
json
:
"
JSON
"
,
xml
:
"
XML
"
,
png
:
"
PNG
"
,
csv
:
"
CSV
"
,
txt
:
"
TXT
"
,
sql
:
"
SQL
"
,
doc
:
"
MS-Word
"
,
excel
:
"
MS-Excel
"
,
xlsx
:
"
MS-Excel (OpenXML)
"
,
powerpoint
:
"
MS-Powerpoint
"
,
pdf
:
"
PDF
"
};
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
showExport
:
!
1
,
exportDataType
:
"
basic
"
,
exportTypes
:[
"
json
"
,
"
xml
"
,
"
csv
"
,
"
txt
"
,
"
sql
"
,
"
excel
"
],
exportOptions
:{}}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
.
icons
,{
"
export
"
:
"
glyphicon-export icon-share
"
}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
locales
,{
formatExport
:
function
(){
return
"
Export data
"
}}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,
a
.
fn
.
bootstrapTable
.
locales
);
var
d
=
a
.
fn
.
bootstrapTable
.
Constructor
,
e
=
d
.
prototype
.
initToolbar
;
d
.
prototype
.
initToolbar
=
function
(){
if
(
this
.
showToolbar
=
this
.
options
.
showExport
,
e
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
this
.
options
.
showExport
){
var
d
=
this
,
f
=
this
.
$toolbar
.
find
(
"
>.btn-group
"
),
g
=
f
.
find
(
"
div.export
"
);
if
(
!
g
.
length
){
g
=
a
([
'
<div class="export btn-group">
'
,
'
<button class="btn
'
+
b
(
"
btn-%s
"
,
this
.
options
.
buttonsClass
)
+
b
(
"
btn-%s
"
,
this
.
options
.
iconSize
)
+
'
dropdown-toggle" aria-label="export type" title="
'
+
this
.
options
.
formatExport
()
+
'
" data-toggle="dropdown" type="button">
'
,
b
(
'
<i class="%s %s"></i>
'
,
this
.
options
.
iconsPrefix
,
this
.
options
.
icons
[
"
export
"
]),
'
<span class="caret"></span>
'
,
"
</button>
"
,
'
<ul class="dropdown-menu" role="menu">
'
,
"
</ul>
"
,
"
</div>
"
].
join
(
""
)).
appendTo
(
f
);
var
h
=
g
.
find
(
"
.dropdown-menu
"
),
i
=
this
.
options
.
exportTypes
;
if
(
"
string
"
==
typeof
this
.
options
.
exportTypes
){
var
j
=
this
.
options
.
exportTypes
.
slice
(
1
,
-
1
).
replace
(
/ /g
,
""
).
split
(
"
,
"
);
i
=
[],
a
.
each
(
j
,
function
(
a
,
b
){
i
.
push
(
b
.
slice
(
1
,
-
1
))})}
a
.
each
(
i
,
function
(
a
,
b
){
c
.
hasOwnProperty
(
b
)
&&
h
.
append
([
'
<li role="menuitem" data-type="
'
+
b
+
'
">
'
,
'
<a href="javascript:void(0)">
'
,
c
[
b
],
"
</a>
"
,
"
</li>
"
].
join
(
""
))}),
h
.
find
(
"
li
"
).
click
(
function
(){
var
b
=
a
(
this
).
data
(
"
type
"
),
c
=
function
(){
d
.
$el
.
tableExport
(
a
.
extend
({},
d
.
options
.
exportOptions
,{
type
:
b
,
escape
:
!
1
}))};
if
(
"
all
"
===
d
.
options
.
exportDataType
&&
d
.
options
.
pagination
)
d
.
$el
.
one
(
"
server
"
===
d
.
options
.
sidePagination
?
"
post-body.bs.table
"
:
"
page-change.bs.table
"
,
function
(){
c
(),
d
.
togglePagination
()}),
d
.
togglePagination
();
else
if
(
"
selected
"
===
d
.
options
.
exportDataType
){
var
e
=
d
.
getData
(),
f
=
d
.
getAllSelections
();
"
server
"
===
d
.
options
.
sidePagination
&&
(
e
=
{
total
:
d
.
options
.
totalRows
},
e
[
d
.
options
.
dataField
]
=
d
.
getData
(),
f
=
{
total
:
d
.
options
.
totalRows
},
f
[
d
.
options
.
dataField
]
=
d
.
getAllSelections
()),
d
.
load
(
f
),
c
(),
d
.
load
(
e
)}
else
c
()})}}}}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/filter-control/bootstrap-table-filter-control.css
0 → 100644
View file @
0dec546d
/**
* @author: Dennis Hernández
* @webSite: http://djhvscf.github.io/Blog
* @version: v2.1.1
*/
.no-filter-control
{
height
:
34px
;
}
.filter-control
{
margin
:
0
2px
2px
2px
;
}
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/filter-control/bootstrap-table-filter-control.js
0 → 100644
View file @
0dec546d
/**
* @author: Dennis Hernández
* @webSite: http://djhvscf.github.io/Blog
* @version: v2.1.1
*/
(
function
(
$
)
{
'
use strict
'
;
var
sprintf
=
$
.
fn
.
bootstrapTable
.
utils
.
sprintf
,
objectKeys
=
$
.
fn
.
bootstrapTable
.
utils
.
objectKeys
;
var
getOptionsFromSelectControl
=
function
(
selectControl
)
{
return
selectControl
.
get
(
selectControl
.
length
-
1
).
options
;
};
var
hideUnusedSelectOptions
=
function
(
selectControl
,
uniqueValues
)
{
var
options
=
getOptionsFromSelectControl
(
selectControl
);
for
(
var
i
=
0
;
i
<
options
.
length
;
i
++
)
{
if
(
options
[
i
].
value
!==
""
)
{
if
(
!
uniqueValues
.
hasOwnProperty
(
options
[
i
].
value
))
{
selectControl
.
find
(
sprintf
(
"
option[value='%s']
"
,
options
[
i
].
value
)).
hide
();
}
else
{
selectControl
.
find
(
sprintf
(
"
option[value='%s']
"
,
options
[
i
].
value
)).
show
();
}
}
}
};
var
addOptionToSelectControl
=
function
(
selectControl
,
value
,
text
)
{
value
=
$
.
trim
(
value
);
selectControl
=
$
(
selectControl
.
get
(
selectControl
.
length
-
1
));
if
(
!
existOptionInSelectControl
(
selectControl
,
value
))
{
selectControl
.
append
(
$
(
"
<option></option>
"
)
.
attr
(
"
value
"
,
value
)
.
text
(
$
(
'
<div />
'
).
html
(
text
).
text
()));
}
};
var
sortSelectControl
=
function
(
selectControl
)
{
var
$opts
=
selectControl
.
find
(
'
option:gt(0)
'
);
$opts
.
sort
(
function
(
a
,
b
)
{
a
=
$
(
a
).
text
().
toLowerCase
();
b
=
$
(
b
).
text
().
toLowerCase
();
if
(
$
.
isNumeric
(
a
)
&&
$
.
isNumeric
(
b
))
{
// Convert numerical values from string to float.
a
=
parseFloat
(
a
);
b
=
parseFloat
(
b
);
}
return
a
>
b
?
1
:
a
<
b
?
-
1
:
0
;
});
selectControl
.
find
(
'
option:gt(0)
'
).
remove
();
selectControl
.
append
(
$opts
);
};
var
existOptionInSelectControl
=
function
(
selectControl
,
value
)
{
var
options
=
getOptionsFromSelectControl
(
selectControl
);
for
(
var
i
=
0
;
i
<
options
.
length
;
i
++
)
{
if
(
options
[
i
].
value
===
value
.
toString
())
{
//The value is not valid to add
return
true
;
}
}
//If we get here, the value is valid to add
return
false
;
};
var
fixHeaderCSS
=
function
(
that
)
{
that
.
$tableHeader
.
css
(
'
height
'
,
'
77px
'
);
};
var
getCurrentHeader
=
function
(
that
)
{
var
header
=
that
.
$header
;
if
(
that
.
options
.
height
)
{
header
=
that
.
$tableHeader
;
}
return
header
;
};
var
getCurrentSearchControls
=
function
(
that
)
{
var
searchControls
=
'
select, input
'
;
if
(
that
.
options
.
height
)
{
searchControls
=
'
table select, table input
'
;
}
return
searchControls
;
};
var
getCursorPosition
=
function
(
el
)
{
if
(
$
.
fn
.
bootstrapTable
.
utils
.
isIEBrowser
())
{
if
(
$
(
el
).
is
(
'
input
'
))
{
var
pos
=
0
;
if
(
'
selectionStart
'
in
el
)
{
pos
=
el
.
selectionStart
;
}
else
if
(
'
selection
'
in
document
)
{
el
.
focus
();
var
Sel
=
document
.
selection
.
createRange
();
var
SelLength
=
document
.
selection
.
createRange
().
text
.
length
;
Sel
.
moveStart
(
'
character
'
,
-
el
.
value
.
length
);
pos
=
Sel
.
text
.
length
-
SelLength
;
}
return
pos
;
}
else
{
return
-
1
;
}
}
else
{
return
-
1
;
}
};
var
setCursorPosition
=
function
(
el
,
index
)
{
if
(
$
.
fn
.
bootstrapTable
.
utils
.
isIEBrowser
())
{
if
(
el
.
setSelectionRange
!==
undefined
)
{
el
.
setSelectionRange
(
index
,
index
);
}
else
{
$
(
el
).
val
(
el
.
value
);
}
}
};
var
copyValues
=
function
(
that
)
{
var
header
=
getCurrentHeader
(
that
),
searchControls
=
getCurrentSearchControls
(
that
);
that
.
options
.
valuesFilterControl
=
[];
header
.
find
(
searchControls
).
each
(
function
()
{
that
.
options
.
valuesFilterControl
.
push
(
{
field
:
$
(
this
).
closest
(
'
[data-field]
'
).
data
(
'
field
'
),
value
:
$
(
this
).
val
(),
position
:
getCursorPosition
(
$
(
this
).
get
(
0
))
});
});
};
var
setValues
=
function
(
that
)
{
var
field
=
null
,
result
=
[],
header
=
getCurrentHeader
(
that
),
searchControls
=
getCurrentSearchControls
(
that
);
if
(
that
.
options
.
valuesFilterControl
.
length
>
0
)
{
header
.
find
(
searchControls
).
each
(
function
(
index
,
ele
)
{
field
=
$
(
this
).
closest
(
'
[data-field]
'
).
data
(
'
field
'
);
result
=
$
.
grep
(
that
.
options
.
valuesFilterControl
,
function
(
valueObj
)
{
return
valueObj
.
field
===
field
;
});
if
(
result
.
length
>
0
)
{
$
(
this
).
val
(
result
[
0
].
value
);
setCursorPosition
(
$
(
this
).
get
(
0
),
result
[
0
].
position
);
}
});
}
};
var
collectBootstrapCookies
=
function
cookiesRegex
()
{
var
cookies
=
[],
foundCookies
=
document
.
cookie
.
match
(
/
(?:
bs.table.
)(\w
*
)
/g
);
if
(
foundCookies
)
{
$
.
each
(
foundCookies
,
function
(
i
,
cookie
)
{
if
(
/./
.
test
(
cookie
))
{
cookie
=
cookie
.
split
(
"
.
"
).
pop
();
}
if
(
$
.
inArray
(
cookie
,
cookies
)
===
-
1
)
{
cookies
.
push
(
cookie
);
}
});
return
cookies
;
}
};
var
initFilterSelectControls
=
function
(
that
)
{
var
data
=
that
.
data
,
itemsPerPage
=
that
.
pageTo
<
that
.
options
.
data
.
length
?
that
.
options
.
data
.
length
:
that
.
pageTo
,
isColumnSearchableViaSelect
=
function
(
column
)
{
return
column
.
filterControl
&&
column
.
filterControl
.
toLowerCase
()
===
'
select
'
&&
column
.
searchable
;
},
isFilterDataNotGiven
=
function
(
column
)
{
return
column
.
filterData
===
undefined
||
column
.
filterData
.
toLowerCase
()
===
'
column
'
;
},
hasSelectControlElement
=
function
(
selectControl
)
{
return
selectControl
&&
selectControl
.
length
>
0
;
};
var
z
=
that
.
options
.
pagination
?
(
that
.
options
.
sidePagination
===
'
server
'
?
that
.
pageTo
:
that
.
options
.
totalRows
)
:
that
.
pageTo
;
$
.
each
(
that
.
header
.
fields
,
function
(
j
,
field
)
{
var
column
=
that
.
columns
[
$
.
fn
.
bootstrapTable
.
utils
.
getFieldIndex
(
that
.
columns
,
field
)],
selectControl
=
$
(
'
.bootstrap-table-filter-control-
'
+
escapeID
(
column
.
field
));
if
(
isColumnSearchableViaSelect
(
column
)
&&
isFilterDataNotGiven
(
column
)
&&
hasSelectControlElement
(
selectControl
))
{
if
(
selectControl
.
get
(
selectControl
.
length
-
1
).
options
.
length
===
0
)
{
//Added the default option
addOptionToSelectControl
(
selectControl
,
''
,
''
);
}
var
uniqueValues
=
{};
for
(
var
i
=
0
;
i
<
z
;
i
++
)
{
//Added a new value
var
fieldValue
=
data
[
i
][
field
],
formattedValue
=
$
.
fn
.
bootstrapTable
.
utils
.
calculateObjectValue
(
that
.
header
,
that
.
header
.
formatters
[
j
],
[
fieldValue
,
data
[
i
],
i
],
fieldValue
);
uniqueValues
[
formattedValue
]
=
fieldValue
;
}
for
(
var
key
in
uniqueValues
)
{
addOptionToSelectControl
(
selectControl
,
uniqueValues
[
key
],
key
);
}
sortSelectControl
(
selectControl
);
if
(
that
.
options
.
hideUnusedSelectOptions
)
{
hideUnusedSelectOptions
(
selectControl
,
uniqueValues
);
}
}
});
};
var
escapeID
=
function
(
id
)
{
return
String
(
id
).
replace
(
/
(
:|
\.
|
\[
|
\]
|,
)
/g
,
"
\\
$1
"
);
};
var
createControls
=
function
(
that
,
header
)
{
var
addedFilterControl
=
false
,
isVisible
,
html
,
timeoutId
=
0
;
$
.
each
(
that
.
columns
,
function
(
i
,
column
)
{
isVisible
=
'
hidden
'
;
html
=
[];
if
(
!
column
.
visible
)
{
return
;
}
if
(
!
column
.
filterControl
)
{
html
.
push
(
'
<div class="no-filter-control"></div>
'
);
}
else
{
html
.
push
(
'
<div class="filter-control">
'
);
var
nameControl
=
column
.
filterControl
.
toLowerCase
();
if
(
column
.
searchable
&&
that
.
options
.
filterTemplate
[
nameControl
])
{
addedFilterControl
=
true
;
isVisible
=
'
visible
'
;
html
.
push
(
that
.
options
.
filterTemplate
[
nameControl
](
that
,
column
.
field
,
isVisible
,
column
.
filterControlPlaceholder
));
}
}
$
.
each
(
header
.
children
().
children
(),
function
(
i
,
tr
)
{
tr
=
$
(
tr
);
if
(
tr
.
data
(
'
field
'
)
===
column
.
field
)
{
tr
.
find
(
'
.fht-cell
'
).
append
(
html
.
join
(
''
));
return
false
;
}
});
if
(
column
.
filterData
!==
undefined
&&
column
.
filterData
.
toLowerCase
()
!==
'
column
'
)
{
var
filterDataType
=
getFilterDataMethod
(
filterDataMethods
,
column
.
filterData
.
substring
(
0
,
column
.
filterData
.
indexOf
(
'
:
'
)));
var
filterDataSource
,
selectControl
;
if
(
filterDataType
!==
null
)
{
filterDataSource
=
column
.
filterData
.
substring
(
column
.
filterData
.
indexOf
(
'
:
'
)
+
1
,
column
.
filterData
.
length
);
selectControl
=
$
(
'
.bootstrap-table-filter-control-
'
+
escapeID
(
column
.
field
));
addOptionToSelectControl
(
selectControl
,
''
,
''
);
filterDataType
(
filterDataSource
,
selectControl
);
}
else
{
throw
new
SyntaxError
(
'
Error. You should use any of these allowed filter data methods: var, json, url.
'
+
'
Use like this: var: {key: "value"}
'
);
}
var
variableValues
,
key
;
switch
(
filterDataType
)
{
case
'
url
'
:
$
.
ajax
({
url
:
filterDataSource
,
dataType
:
'
json
'
,
success
:
function
(
data
)
{
for
(
var
key
in
data
)
{
addOptionToSelectControl
(
selectControl
,
key
,
data
[
key
]);
}
sortSelectControl
(
selectControl
);
}
});
break
;
case
'
var
'
:
variableValues
=
window
[
filterDataSource
];
for
(
key
in
variableValues
)
{
addOptionToSelectControl
(
selectControl
,
key
,
variableValues
[
key
]);
}
sortSelectControl
(
selectControl
);
break
;
case
'
jso
'
:
variableValues
=
JSON
.
parse
(
filterDataSource
);
for
(
key
in
variableValues
)
{
addOptionToSelectControl
(
selectControl
,
key
,
variableValues
[
key
]);
}
sortSelectControl
(
selectControl
);
break
;
}
}
});
if
(
addedFilterControl
)
{
header
.
off
(
'
keyup
'
,
'
input
'
).
on
(
'
keyup
'
,
'
input
'
,
function
(
event
)
{
clearTimeout
(
timeoutId
);
timeoutId
=
setTimeout
(
function
()
{
that
.
onColumnSearch
(
event
);
},
that
.
options
.
searchTimeOut
);
});
header
.
off
(
'
change
'
,
'
select
'
).
on
(
'
change
'
,
'
select
'
,
function
(
event
)
{
clearTimeout
(
timeoutId
);
timeoutId
=
setTimeout
(
function
()
{
that
.
onColumnSearch
(
event
);
},
that
.
options
.
searchTimeOut
);
});
header
.
off
(
'
mouseup
'
,
'
input
'
).
on
(
'
mouseup
'
,
'
input
'
,
function
(
event
)
{
var
$input
=
$
(
this
),
oldValue
=
$input
.
val
();
if
(
oldValue
===
""
)
{
return
;
}
setTimeout
(
function
(){
var
newValue
=
$input
.
val
();
if
(
newValue
===
""
)
{
clearTimeout
(
timeoutId
);
timeoutId
=
setTimeout
(
function
()
{
that
.
onColumnSearch
(
event
);
},
that
.
options
.
searchTimeOut
);
}
},
1
);
});
if
(
header
.
find
(
'
.date-filter-control
'
).
length
>
0
)
{
$
.
each
(
that
.
columns
,
function
(
i
,
column
)
{
if
(
column
.
filterControl
!==
undefined
&&
column
.
filterControl
.
toLowerCase
()
===
'
datepicker
'
)
{
header
.
find
(
'
.date-filter-control.bootstrap-table-filter-control-
'
+
column
.
field
).
datepicker
(
column
.
filterDatepickerOptions
)
.
on
(
'
changeDate
'
,
function
(
e
)
{
$
(
sprintf
(
"
.%s
"
,
e
.
currentTarget
.
classList
.
toString
().
split
(
"
"
).
join
(
"
.
"
))).
val
(
e
.
currentTarget
.
value
);
//Fired the keyup event
$
(
e
.
currentTarget
).
keyup
();
});
}
});
}
}
else
{
header
.
find
(
'
.filterControl
'
).
hide
();
}
};
var
getDirectionOfSelectOptions
=
function
(
alignment
)
{
alignment
=
alignment
===
undefined
?
'
left
'
:
alignment
.
toLowerCase
();
switch
(
alignment
)
{
case
'
left
'
:
return
'
ltr
'
;
case
'
right
'
:
return
'
rtl
'
;
case
'
auto
'
:
return
'
auto
'
;
default
:
return
'
ltr
'
;
}
};
var
filterDataMethods
=
{
'
var
'
:
function
(
filterDataSource
,
selectControl
)
{
var
variableValues
=
window
[
filterDataSource
];
for
(
var
key
in
variableValues
)
{
addOptionToSelectControl
(
selectControl
,
key
,
variableValues
[
key
]);
}
sortSelectControl
(
selectControl
);
},
'
url
'
:
function
(
filterDataSource
,
selectControl
)
{
$
.
ajax
({
url
:
filterDataSource
,
dataType
:
'
json
'
,
success
:
function
(
data
)
{
for
(
var
key
in
data
)
{
addOptionToSelectControl
(
selectControl
,
key
,
data
[
key
]);
}
sortSelectControl
(
selectControl
);
}
});
},
'
json
'
:
function
(
filterDataSource
,
selectControl
)
{
var
variableValues
=
JSON
.
parse
(
filterDataSource
);
for
(
var
key
in
variableValues
)
{
addOptionToSelectControl
(
selectControl
,
key
,
variableValues
[
key
]);
}
sortSelectControl
(
selectControl
);
}
};
var
getFilterDataMethod
=
function
(
objFilterDataMethod
,
searchTerm
)
{
var
keys
=
Object
.
keys
(
objFilterDataMethod
);
for
(
var
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
if
(
keys
[
i
]
===
searchTerm
)
{
return
objFilterDataMethod
[
searchTerm
];
}
}
return
null
;
};
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
filterControl
:
false
,
onColumnSearch
:
function
(
field
,
text
)
{
return
false
;
},
filterShowClear
:
false
,
alignmentSelectControlOptions
:
undefined
,
filterTemplate
:
{
input
:
function
(
that
,
field
,
isVisible
,
placeholder
)
{
return
sprintf
(
'
<input type="text" class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" placeholder="%s">
'
,
field
,
isVisible
,
placeholder
);
},
select
:
function
(
that
,
field
,
isVisible
)
{
return
sprintf
(
'
<select class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" dir="%s"></select>
'
,
field
,
isVisible
,
getDirectionOfSelectOptions
(
that
.
options
.
alignmentSelectControlOptions
));
},
datepicker
:
function
(
that
,
field
,
isVisible
)
{
return
sprintf
(
'
<input type="text" class="form-control date-filter-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s">
'
,
field
,
isVisible
);
}
},
//internal variables
valuesFilterControl
:
[]
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
COLUMN_DEFAULTS
,
{
filterControl
:
undefined
,
filterData
:
undefined
,
filterDatepickerOptions
:
undefined
,
filterStrictSearch
:
false
,
filterStartsWithSearch
:
false
,
filterControlPlaceholder
:
""
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
Constructor
.
EVENTS
,
{
'
column-search.bs.table
'
:
'
onColumnSearch
'
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
.
icons
,
{
clear
:
'
glyphicon-trash icon-clear
'
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
locales
,
{
formatClearFilters
:
function
()
{
return
'
Clear Filters
'
;
}
});
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
$
.
fn
.
bootstrapTable
.
locales
);
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_init
=
BootstrapTable
.
prototype
.
init
,
_initToolbar
=
BootstrapTable
.
prototype
.
initToolbar
,
_initHeader
=
BootstrapTable
.
prototype
.
initHeader
,
_initBody
=
BootstrapTable
.
prototype
.
initBody
,
_initSearch
=
BootstrapTable
.
prototype
.
initSearch
;
BootstrapTable
.
prototype
.
init
=
function
()
{
//Make sure that the filterControl option is set
if
(
this
.
options
.
filterControl
)
{
var
that
=
this
;
// Compatibility: IE < 9 and old browsers
if
(
!
Object
.
keys
)
{
objectKeys
();
}
//Make sure that the internal variables are set correctly
this
.
options
.
valuesFilterControl
=
[];
this
.
$el
.
on
(
'
reset-view.bs.table
'
,
function
()
{
//Create controls on $tableHeader if the height is set
if
(
!
that
.
options
.
height
)
{
return
;
}
//Avoid recreate the controls
if
(
that
.
$tableHeader
.
find
(
'
select
'
).
length
>
0
||
that
.
$tableHeader
.
find
(
'
input
'
).
length
>
0
)
{
return
;
}
createControls
(
that
,
that
.
$tableHeader
);
}).
on
(
'
post-header.bs.table
'
,
function
()
{
setValues
(
that
);
}).
on
(
'
post-body.bs.table
'
,
function
()
{
if
(
that
.
options
.
height
)
{
fixHeaderCSS
(
that
);
}
}).
on
(
'
column-switch.bs.table
'
,
function
()
{
setValues
(
that
);
});
}
_init
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
};
BootstrapTable
.
prototype
.
initToolbar
=
function
()
{
this
.
showToolbar
=
this
.
options
.
filterControl
&&
this
.
options
.
filterShowClear
;
_initToolbar
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
(
this
.
options
.
filterControl
&&
this
.
options
.
filterShowClear
)
{
var
$btnGroup
=
this
.
$toolbar
.
find
(
'
>.btn-group
'
),
$btnClear
=
$btnGroup
.
find
(
'
.filter-show-clear
'
);
if
(
!
$btnClear
.
length
)
{
$btnClear
=
$
([
'
<button class="btn btn-default filter-show-clear"
'
,
sprintf
(
'
type="button" title="%s">
'
,
this
.
options
.
formatClearFilters
()),
sprintf
(
'
<i class="%s %s"></i>
'
,
this
.
options
.
iconsPrefix
,
this
.
options
.
icons
.
clear
),
'
</button>
'
].
join
(
''
)).
appendTo
(
$btnGroup
);
$btnClear
.
off
(
'
click
'
).
on
(
'
click
'
,
$
.
proxy
(
this
.
clearFilterControl
,
this
));
}
}
};
BootstrapTable
.
prototype
.
initHeader
=
function
()
{
_initHeader
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
(
!
this
.
options
.
filterControl
)
{
return
;
}
createControls
(
this
,
this
.
$header
);
};
BootstrapTable
.
prototype
.
initBody
=
function
()
{
_initBody
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
initFilterSelectControls
(
this
);
};
BootstrapTable
.
prototype
.
initSearch
=
function
()
{
_initSearch
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
(
this
.
options
.
sidePagination
===
'
server
'
)
{
return
;
}
var
that
=
this
;
var
fp
=
$
.
isEmptyObject
(
this
.
filterColumnsPartial
)
?
null
:
this
.
filterColumnsPartial
;
//Check partial column filter
this
.
data
=
fp
?
$
.
grep
(
this
.
data
,
function
(
item
,
i
)
{
for
(
var
key
in
fp
)
{
var
thisColumn
=
that
.
columns
[
$
.
fn
.
bootstrapTable
.
utils
.
getFieldIndex
(
that
.
columns
,
key
)];
var
fval
=
fp
[
key
].
toLowerCase
();
var
value
=
item
[
key
];
// Fix #142: search use formated data
if
(
thisColumn
&&
thisColumn
.
searchFormatter
)
{
value
=
$
.
fn
.
bootstrapTable
.
utils
.
calculateObjectValue
(
that
.
header
,
that
.
header
.
formatters
[
$
.
inArray
(
key
,
that
.
header
.
fields
)],
[
value
,
item
,
i
],
value
);
}
if
(
thisColumn
.
filterStrictSearch
)
{
if
(
!
(
$
.
inArray
(
key
,
that
.
header
.
fields
)
!==
-
1
&&
(
typeof
value
===
'
string
'
||
typeof
value
===
'
number
'
)
&&
value
.
toString
().
toLowerCase
()
===
fval
.
toString
().
toLowerCase
()))
{
return
false
;
}
}
else
if
(
thisColumn
.
filterStartsWithSearch
)
{
if
(
!
(
$
.
inArray
(
key
,
that
.
header
.
fields
)
!==
-
1
&&
(
typeof
value
===
'
string
'
||
typeof
value
===
'
number
'
)
&&
(
value
+
''
).
toLowerCase
().
indexOf
(
fval
)
===
0
))
{
return
false
;
}
}
else
{
if
(
!
(
$
.
inArray
(
key
,
that
.
header
.
fields
)
!==
-
1
&&
(
typeof
value
===
'
string
'
||
typeof
value
===
'
number
'
)
&&
(
value
+
''
).
toLowerCase
().
indexOf
(
fval
)
!==
-
1
))
{
return
false
;
}
}
}
return
true
;
})
:
this
.
data
;
};
BootstrapTable
.
prototype
.
initColumnSearch
=
function
(
filterColumnsDefaults
)
{
copyValues
(
this
);
if
(
filterColumnsDefaults
)
{
this
.
filterColumnsPartial
=
filterColumnsDefaults
;
this
.
updatePagination
();
for
(
var
filter
in
filterColumnsDefaults
)
{
this
.
trigger
(
'
column-search
'
,
filter
,
filterColumnsDefaults
[
filter
]);
}
}
};
BootstrapTable
.
prototype
.
onColumnSearch
=
function
(
event
)
{
if
(
$
.
inArray
(
event
.
keyCode
,
[
37
,
38
,
39
,
40
])
>
-
1
)
{
return
;
}
copyValues
(
this
);
var
text
=
$
.
trim
(
$
(
event
.
currentTarget
).
val
());
var
$field
=
$
(
event
.
currentTarget
).
closest
(
'
[data-field]
'
).
data
(
'
field
'
);
if
(
$
.
isEmptyObject
(
this
.
filterColumnsPartial
))
{
this
.
filterColumnsPartial
=
{};
}
if
(
text
)
{
this
.
filterColumnsPartial
[
$field
]
=
text
;
}
else
{
delete
this
.
filterColumnsPartial
[
$field
];
}
// if the searchText is the same as the previously selected column value,
// bootstrapTable will not try searching again (even though the selected column
// may be different from the previous search). As a work around
// we're manually appending some text to bootrap's searchText field
// to guarantee that it will perform a search again when we call this.onSearch(event)
this
.
searchText
+=
"
randomText
"
;
this
.
options
.
pageNumber
=
1
;
this
.
onSearch
(
event
);
this
.
trigger
(
'
column-search
'
,
$field
,
text
);
};
BootstrapTable
.
prototype
.
clearFilterControl
=
function
()
{
if
(
this
.
options
.
filterControl
&&
this
.
options
.
filterShowClear
)
{
var
that
=
this
,
cookies
=
collectBootstrapCookies
(),
header
=
getCurrentHeader
(
that
),
table
=
header
.
closest
(
'
table
'
),
controls
=
header
.
find
(
getCurrentSearchControls
(
that
)),
search
=
that
.
$toolbar
.
find
(
'
.search input
'
),
timeoutId
=
0
;
$
.
each
(
that
.
options
.
valuesFilterControl
,
function
(
i
,
item
)
{
item
.
value
=
''
;
});
setValues
(
that
);
// Clear each type of filter if it exists.
// Requires the body to reload each time a type of filter is found because we never know
// which ones are going to be present.
if
(
controls
.
length
>
0
)
{
this
.
filterColumnsPartial
=
{};
$
(
controls
[
0
]).
trigger
(
controls
[
0
].
tagName
===
'
INPUT
'
?
'
keyup
'
:
'
change
'
);
}
else
{
return
;
}
if
(
search
.
length
>
0
)
{
that
.
resetSearch
();
}
// use the default sort order if it exists. do nothing if it does not
if
(
that
.
options
.
sortName
!==
table
.
data
(
'
sortName
'
)
||
that
.
options
.
sortOrder
!==
table
.
data
(
'
sortOrder
'
))
{
var
sorter
=
header
.
find
(
sprintf
(
'
[data-field="%s"]
'
,
$
(
controls
[
0
]).
closest
(
'
table
'
).
data
(
'
sortName
'
)));
if
(
sorter
.
length
>
0
)
{
that
.
onSort
(
table
.
data
(
'
sortName
'
),
table
.
data
(
'
sortName
'
));
$
(
sorter
).
find
(
'
.sortable
'
).
trigger
(
'
click
'
);
}
}
// clear cookies once the filters are clean
clearTimeout
(
timeoutId
);
timeoutId
=
setTimeout
(
function
()
{
if
(
cookies
&&
cookies
.
length
>
0
)
{
$
.
each
(
cookies
,
function
(
i
,
item
)
{
if
(
that
.
deleteCookie
!==
undefined
)
{
that
.
deleteCookie
(
item
);
}
});
}
},
that
.
options
.
searchTimeOut
);
}
};
})(
jQuery
);
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/filter-control/bootstrap-table-filter-control.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
var
b
=
a
.
fn
.
bootstrapTable
.
utils
.
sprintf
,
c
=
a
.
fn
.
bootstrapTable
.
utils
.
objectKeys
,
d
=
function
(
a
){
return
a
.
get
(
a
.
length
-
1
).
options
},
e
=
function
(
a
,
c
){
for
(
var
e
=
d
(
a
),
f
=
0
;
f
<
e
.
length
;
f
++
)
""
!==
e
[
f
].
value
&&
(
c
.
hasOwnProperty
(
e
[
f
].
value
)?
a
.
find
(
b
(
"
option[value='%s']
"
,
e
[
f
].
value
)).
show
():
a
.
find
(
b
(
"
option[value='%s']
"
,
e
[
f
].
value
)).
hide
())},
f
=
function
(
b
,
c
,
d
){
c
=
a
.
trim
(
c
),
b
=
a
(
b
.
get
(
b
.
length
-
1
)),
h
(
b
,
c
)
||
b
.
append
(
a
(
"
<option></option>
"
).
attr
(
"
value
"
,
c
).
text
(
a
(
"
<div />
"
).
html
(
d
).
text
()))},
g
=
function
(
b
){
var
c
=
b
.
find
(
"
option:gt(0)
"
);
c
.
sort
(
function
(
b
,
c
){
return
b
=
a
(
b
).
text
().
toLowerCase
(),
c
=
a
(
c
).
text
().
toLowerCase
(),
a
.
isNumeric
(
b
)
&&
a
.
isNumeric
(
c
)
&&
(
b
=
parseFloat
(
b
),
c
=
parseFloat
(
c
)),
b
>
c
?
1
:
c
>
b
?
-
1
:
0
}),
b
.
find
(
"
option:gt(0)
"
).
remove
(),
b
.
append
(
c
)},
h
=
function
(
a
,
b
){
for
(
var
c
=
d
(
a
),
e
=
0
;
e
<
c
.
length
;
e
++
)
if
(
c
[
e
].
value
===
b
.
toString
())
return
!
0
;
return
!
1
},
i
=
function
(
a
){
a
.
$tableHeader
.
css
(
"
height
"
,
"
77px
"
)},
j
=
function
(
a
){
var
b
=
a
.
$header
;
return
a
.
options
.
height
&&
(
b
=
a
.
$tableHeader
),
b
},
k
=
function
(
a
){
var
b
=
"
select, input
"
;
return
a
.
options
.
height
&&
(
b
=
"
table select, table input
"
),
b
},
l
=
function
(
b
){
if
(
a
.
fn
.
bootstrapTable
.
utils
.
isIEBrowser
()){
if
(
a
(
b
).
is
(
"
input
"
)){
var
c
=
0
;
if
(
"
selectionStart
"
in
b
)
c
=
b
.
selectionStart
;
else
if
(
"
selection
"
in
document
){
b
.
focus
();
var
d
=
document
.
selection
.
createRange
(),
e
=
document
.
selection
.
createRange
().
text
.
length
;
d
.
moveStart
(
"
character
"
,
-
b
.
value
.
length
),
c
=
d
.
text
.
length
-
e
}
return
c
}
return
-
1
}
return
-
1
},
m
=
function
(
b
,
c
){
a
.
fn
.
bootstrapTable
.
utils
.
isIEBrowser
()
&&
(
void
0
!==
b
.
setSelectionRange
?
b
.
setSelectionRange
(
c
,
c
):
a
(
b
).
val
(
b
.
value
))},
n
=
function
(
b
){
var
c
=
j
(
b
),
d
=
k
(
b
);
b
.
options
.
valuesFilterControl
=
[],
c
.
find
(
d
).
each
(
function
(){
b
.
options
.
valuesFilterControl
.
push
({
field
:
a
(
this
).
closest
(
"
[data-field]
"
).
data
(
"
field
"
),
value
:
a
(
this
).
val
(),
position
:
l
(
a
(
this
).
get
(
0
))})})},
o
=
function
(
b
){
var
c
=
null
,
d
=
[],
e
=
j
(
b
),
f
=
k
(
b
);
b
.
options
.
valuesFilterControl
.
length
>
0
&&
e
.
find
(
f
).
each
(
function
(){
c
=
a
(
this
).
closest
(
"
[data-field]
"
).
data
(
"
field
"
),
d
=
a
.
grep
(
b
.
options
.
valuesFilterControl
,
function
(
a
){
return
a
.
field
===
c
}),
d
.
length
>
0
&&
(
a
(
this
).
val
(
d
[
0
].
value
),
m
(
a
(
this
).
get
(
0
),
d
[
0
].
position
))})},
p
=
function
(){
var
b
=
[],
c
=
document
.
cookie
.
match
(
/
(?:
bs.table.
)(\w
*
)
/g
);
return
c
?(
a
.
each
(
c
,
function
(
c
,
d
){
/./
.
test
(
d
)
&&
(
d
=
d
.
split
(
"
.
"
).
pop
()),
-
1
===
a
.
inArray
(
d
,
b
)
&&
b
.
push
(
d
)}),
b
):
void
0
},
q
=
function
(
b
){
var
c
=
b
.
data
,
d
=
(
b
.
pageTo
<
b
.
options
.
data
.
length
?
b
.
options
.
data
.
length
:
b
.
pageTo
,
function
(
a
){
return
a
.
filterControl
&&
"
select
"
===
a
.
filterControl
.
toLowerCase
()
&&
a
.
searchable
}),
h
=
function
(
a
){
return
void
0
===
a
.
filterData
||
"
column
"
===
a
.
filterData
.
toLowerCase
()},
i
=
function
(
a
){
return
a
&&
a
.
length
>
0
},
j
=
b
.
options
.
pagination
?
"
server
"
===
b
.
options
.
sidePagination
?
b
.
pageTo
:
b
.
options
.
totalRows
:
b
.
pageTo
;
a
.
each
(
b
.
header
.
fields
,
function
(
k
,
l
){
var
m
=
b
.
columns
[
a
.
fn
.
bootstrapTable
.
utils
.
getFieldIndex
(
b
.
columns
,
l
)],
n
=
a
(
"
.bootstrap-table-filter-control-
"
+
r
(
m
.
field
));
if
(
d
(
m
)
&&
h
(
m
)
&&
i
(
n
)){
0
===
n
.
get
(
n
.
length
-
1
).
options
.
length
&&
f
(
n
,
""
,
""
);
for
(
var
o
=
{},
p
=
0
;
j
>
p
;
p
++
){
var
q
=
c
[
p
][
l
],
s
=
a
.
fn
.
bootstrapTable
.
utils
.
calculateObjectValue
(
b
.
header
,
b
.
header
.
formatters
[
k
],[
q
,
c
[
p
],
p
],
q
);
o
[
s
]
=
q
}
for
(
var
t
in
o
)
f
(
n
,
o
[
t
],
t
);
g
(
n
),
b
.
options
.
hideUnusedSelectOptions
&&
e
(
n
,
o
)}})},
r
=
function
(
a
){
return
String
(
a
).
replace
(
/
(
:|
\.
|
\[
|
\]
|,
)
/g
,
"
\\
$1
"
)},
s
=
function
(
c
,
d
){
var
e
,
h
,
i
=!
1
,
j
=
0
;
a
.
each
(
c
.
columns
,
function
(
b
,
j
){
if
(
e
=
"
hidden
"
,
h
=
[],
j
.
visible
){
if
(
j
.
filterControl
){
h
.
push
(
'
<div class="filter-control">
'
);
var
k
=
j
.
filterControl
.
toLowerCase
();
j
.
searchable
&&
c
.
options
.
filterTemplate
[
k
]
&&
(
i
=!
0
,
e
=
"
visible
"
,
h
.
push
(
c
.
options
.
filterTemplate
[
k
](
c
,
j
.
field
,
e
,
j
.
filterControlPlaceholder
)))}
else
h
.
push
(
'
<div class="no-filter-control"></div>
'
);
if
(
a
.
each
(
d
.
children
().
children
(),
function
(
b
,
c
){
return
c
=
a
(
c
),
c
.
data
(
"
field
"
)
===
j
.
field
?(
c
.
find
(
"
.fht-cell
"
).
append
(
h
.
join
(
""
)),
!
1
):
void
0
}),
void
0
!==
j
.
filterData
&&
"
column
"
!==
j
.
filterData
.
toLowerCase
()){
var
l
,
m
,
n
=
v
(
u
,
j
.
filterData
.
substring
(
0
,
j
.
filterData
.
indexOf
(
"
:
"
)));
if
(
null
===
n
)
throw
new
SyntaxError
(
'
Error. You should use any of these allowed filter data methods: var, json, url. Use like this: var: {key: "value"}
'
);
l
=
j
.
filterData
.
substring
(
j
.
filterData
.
indexOf
(
"
:
"
)
+
1
,
j
.
filterData
.
length
),
m
=
a
(
"
.bootstrap-table-filter-control-
"
+
r
(
j
.
field
)),
f
(
m
,
""
,
""
),
n
(
l
,
m
);
var
o
,
p
;
switch
(
n
){
case
"
url
"
:
a
.
ajax
({
url
:
l
,
dataType
:
"
json
"
,
success
:
function
(
a
){
for
(
var
b
in
a
)
f
(
m
,
b
,
a
[
b
]);
g
(
m
)}});
break
;
case
"
var
"
:
o
=
window
[
l
];
for
(
p
in
o
)
f
(
m
,
p
,
o
[
p
]);
g
(
m
);
break
;
case
"
jso
"
:
o
=
JSON
.
parse
(
l
);
for
(
p
in
o
)
f
(
m
,
p
,
o
[
p
]);
g
(
m
)}}}}),
i
?(
d
.
off
(
"
keyup
"
,
"
input
"
).
on
(
"
keyup
"
,
"
input
"
,
function
(
a
){
clearTimeout
(
j
),
j
=
setTimeout
(
function
(){
c
.
onColumnSearch
(
a
)},
c
.
options
.
searchTimeOut
)}),
d
.
off
(
"
change
"
,
"
select
"
).
on
(
"
change
"
,
"
select
"
,
function
(
a
){
clearTimeout
(
j
),
j
=
setTimeout
(
function
(){
c
.
onColumnSearch
(
a
)},
c
.
options
.
searchTimeOut
)}),
d
.
off
(
"
mouseup
"
,
"
input
"
).
on
(
"
mouseup
"
,
"
input
"
,
function
(
b
){
var
d
=
a
(
this
),
e
=
d
.
val
();
""
!==
e
&&
setTimeout
(
function
(){
var
a
=
d
.
val
();
""
===
a
&&
(
clearTimeout
(
j
),
j
=
setTimeout
(
function
(){
c
.
onColumnSearch
(
b
)},
c
.
options
.
searchTimeOut
))},
1
)}),
d
.
find
(
"
.date-filter-control
"
).
length
>
0
&&
a
.
each
(
c
.
columns
,
function
(
c
,
e
){
void
0
!==
e
.
filterControl
&&
"
datepicker
"
===
e
.
filterControl
.
toLowerCase
()
&&
d
.
find
(
"
.date-filter-control.bootstrap-table-filter-control-
"
+
e
.
field
).
datepicker
(
e
.
filterDatepickerOptions
).
on
(
"
changeDate
"
,
function
(
c
){
a
(
b
(
"
.%s
"
,
c
.
currentTarget
.
classList
.
toString
().
split
(
"
"
).
join
(
"
.
"
))).
val
(
c
.
currentTarget
.
value
),
a
(
c
.
currentTarget
).
keyup
()})})):
d
.
find
(
"
.filterControl
"
).
hide
()},
t
=
function
(
a
){
switch
(
a
=
void
0
===
a
?
"
left
"
:
a
.
toLowerCase
()){
case
"
left
"
:
return
"
ltr
"
;
case
"
right
"
:
return
"
rtl
"
;
case
"
auto
"
:
return
"
auto
"
;
default
:
return
"
ltr
"
}},
u
=
{
"
var
"
:
function
(
a
,
b
){
var
c
=
window
[
a
];
for
(
var
d
in
c
)
f
(
b
,
d
,
c
[
d
]);
g
(
b
)},
url
:
function
(
b
,
c
){
a
.
ajax
({
url
:
b
,
dataType
:
"
json
"
,
success
:
function
(
a
){
for
(
var
b
in
a
)
f
(
c
,
b
,
a
[
b
]);
g
(
c
)}})},
json
:
function
(
a
,
b
){
var
c
=
JSON
.
parse
(
a
);
for
(
var
d
in
c
)
f
(
b
,
d
,
c
[
d
]);
g
(
b
)}},
v
=
function
(
a
,
b
){
for
(
var
c
=
Object
.
keys
(
a
),
d
=
0
;
d
<
c
.
length
;
d
++
)
if
(
c
[
d
]
===
b
)
return
a
[
b
];
return
null
};
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
filterControl
:
!
1
,
onColumnSearch
:
function
(){
return
!
1
},
filterShowClear
:
!
1
,
alignmentSelectControlOptions
:
void
0
,
filterTemplate
:{
input
:
function
(
a
,
c
,
d
,
e
){
return
b
(
'
<input type="text" class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" placeholder="%s">
'
,
c
,
d
,
e
)},
select
:
function
(
a
,
c
,
d
){
return
b
(
'
<select class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" dir="%s"></select>
'
,
c
,
d
,
t
(
a
.
options
.
alignmentSelectControlOptions
))},
datepicker
:
function
(
a
,
c
,
d
){
return
b
(
'
<input type="text" class="form-control date-filter-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s">
'
,
c
,
d
)}},
valuesFilterControl
:[]}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
COLUMN_DEFAULTS
,{
filterControl
:
void
0
,
filterData
:
void
0
,
filterDatepickerOptions
:
void
0
,
filterStrictSearch
:
!
1
,
filterStartsWithSearch
:
!
1
,
filterControlPlaceholder
:
""
}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
Constructor
.
EVENTS
,{
"
column-search.bs.table
"
:
"
onColumnSearch
"
}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
.
icons
,{
clear
:
"
glyphicon-trash icon-clear
"
}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
locales
,{
formatClearFilters
:
function
(){
return
"
Clear Filters
"
}}),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,
a
.
fn
.
bootstrapTable
.
locales
);
var
w
=
a
.
fn
.
bootstrapTable
.
Constructor
,
x
=
w
.
prototype
.
init
,
y
=
w
.
prototype
.
initToolbar
,
z
=
w
.
prototype
.
initHeader
,
A
=
w
.
prototype
.
initBody
,
B
=
w
.
prototype
.
initSearch
;
w
.
prototype
.
init
=
function
(){
if
(
this
.
options
.
filterControl
){
var
a
=
this
;
Object
.
keys
||
c
(),
this
.
options
.
valuesFilterControl
=
[],
this
.
$el
.
on
(
"
reset-view.bs.table
"
,
function
(){
a
.
options
.
height
&&
(
a
.
$tableHeader
.
find
(
"
select
"
).
length
>
0
||
a
.
$tableHeader
.
find
(
"
input
"
).
length
>
0
||
s
(
a
,
a
.
$tableHeader
))}).
on
(
"
post-header.bs.table
"
,
function
(){
o
(
a
)}).
on
(
"
post-body.bs.table
"
,
function
(){
a
.
options
.
height
&&
i
(
a
)}).
on
(
"
column-switch.bs.table
"
,
function
(){
o
(
a
)})}
x
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
))},
w
.
prototype
.
initToolbar
=
function
(){
if
(
this
.
showToolbar
=
this
.
options
.
filterControl
&&
this
.
options
.
filterShowClear
,
y
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
this
.
options
.
filterControl
&&
this
.
options
.
filterShowClear
){
var
c
=
this
.
$toolbar
.
find
(
"
>.btn-group
"
),
d
=
c
.
find
(
"
.filter-show-clear
"
);
d
.
length
||
(
d
=
a
([
'
<button class="btn btn-default filter-show-clear"
'
,
b
(
'
type="button" title="%s">
'
,
this
.
options
.
formatClearFilters
()),
b
(
'
<i class="%s %s"></i>
'
,
this
.
options
.
iconsPrefix
,
this
.
options
.
icons
.
clear
),
"
</button>
"
].
join
(
""
)).
appendTo
(
c
),
d
.
off
(
"
click
"
).
on
(
"
click
"
,
a
.
proxy
(
this
.
clearFilterControl
,
this
)))}},
w
.
prototype
.
initHeader
=
function
(){
z
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
this
.
options
.
filterControl
&&
s
(
this
,
this
.
$header
)},
w
.
prototype
.
initBody
=
function
(){
A
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
q
(
this
)},
w
.
prototype
.
initSearch
=
function
(){
if
(
B
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
"
server
"
!==
this
.
options
.
sidePagination
){
var
b
=
this
,
c
=
a
.
isEmptyObject
(
this
.
filterColumnsPartial
)?
null
:
this
.
filterColumnsPartial
;
this
.
data
=
c
?
a
.
grep
(
this
.
data
,
function
(
d
,
e
){
for
(
var
f
in
c
){
var
g
=
b
.
columns
[
a
.
fn
.
bootstrapTable
.
utils
.
getFieldIndex
(
b
.
columns
,
f
)],
h
=
c
[
f
].
toLowerCase
(),
i
=
d
[
f
];
if
(
g
&&
g
.
searchFormatter
&&
(
i
=
a
.
fn
.
bootstrapTable
.
utils
.
calculateObjectValue
(
b
.
header
,
b
.
header
.
formatters
[
a
.
inArray
(
f
,
b
.
header
.
fields
)],[
i
,
d
,
e
],
i
)),
g
.
filterStrictSearch
){
if
(
-
1
===
a
.
inArray
(
f
,
b
.
header
.
fields
)
||
"
string
"
!=
typeof
i
&&
"
number
"
!=
typeof
i
||
i
.
toString
().
toLowerCase
()
!==
h
.
toString
().
toLowerCase
())
return
!
1
}
else
if
(
g
.
filterStartsWithSearch
){
if
(
-
1
===
a
.
inArray
(
f
,
b
.
header
.
fields
)
||
"
string
"
!=
typeof
i
&&
"
number
"
!=
typeof
i
||
0
!==
(
i
+
""
).
toLowerCase
().
indexOf
(
h
))
return
!
1
}
else
if
(
-
1
===
a
.
inArray
(
f
,
b
.
header
.
fields
)
||
"
string
"
!=
typeof
i
&&
"
number
"
!=
typeof
i
||-
1
===
(
i
+
""
).
toLowerCase
().
indexOf
(
h
))
return
!
1
}
return
!
0
}):
this
.
data
}},
w
.
prototype
.
initColumnSearch
=
function
(
a
){
if
(
n
(
this
),
a
){
this
.
filterColumnsPartial
=
a
,
this
.
updatePagination
();
for
(
var
b
in
a
)
this
.
trigger
(
"
column-search
"
,
b
,
a
[
b
])}},
w
.
prototype
.
onColumnSearch
=
function
(
b
){
if
(
!
(
a
.
inArray
(
b
.
keyCode
,[
37
,
38
,
39
,
40
])
>-
1
)){
n
(
this
);
var
c
=
a
.
trim
(
a
(
b
.
currentTarget
).
val
()),
d
=
a
(
b
.
currentTarget
).
closest
(
"
[data-field]
"
).
data
(
"
field
"
);
a
.
isEmptyObject
(
this
.
filterColumnsPartial
)
&&
(
this
.
filterColumnsPartial
=
{}),
c
?
this
.
filterColumnsPartial
[
d
]
=
c
:
delete
this
.
filterColumnsPartial
[
d
],
this
.
searchText
+=
"
randomText
"
,
this
.
options
.
pageNumber
=
1
,
this
.
onSearch
(
b
),
this
.
trigger
(
"
column-search
"
,
d
,
c
)}},
w
.
prototype
.
clearFilterControl
=
function
(){
if
(
this
.
options
.
filterControl
&&
this
.
options
.
filterShowClear
){
var
c
=
this
,
d
=
p
(),
e
=
j
(
c
),
f
=
e
.
closest
(
"
table
"
),
g
=
e
.
find
(
k
(
c
)),
h
=
c
.
$toolbar
.
find
(
"
.search input
"
),
i
=
0
;
if
(
a
.
each
(
c
.
options
.
valuesFilterControl
,
function
(
a
,
b
){
b
.
value
=
""
}),
o
(
c
),
!
(
g
.
length
>
0
))
return
;
if
(
this
.
filterColumnsPartial
=
{},
a
(
g
[
0
]).
trigger
(
"
INPUT
"
===
g
[
0
].
tagName
?
"
keyup
"
:
"
change
"
),
h
.
length
>
0
&&
c
.
resetSearch
(),
c
.
options
.
sortName
!==
f
.
data
(
"
sortName
"
)
||
c
.
options
.
sortOrder
!==
f
.
data
(
"
sortOrder
"
)){
var
l
=
e
.
find
(
b
(
'
[data-field="%s"]
'
,
a
(
g
[
0
]).
closest
(
"
table
"
).
data
(
"
sortName
"
)));
l
.
length
>
0
&&
(
c
.
onSort
(
f
.
data
(
"
sortName
"
),
f
.
data
(
"
sortName
"
)),
a
(
l
).
find
(
"
.sortable
"
).
trigger
(
"
click
"
))}
clearTimeout
(
i
),
i
=
setTimeout
(
function
(){
d
&&
d
.
length
>
0
&&
a
.
each
(
d
,
function
(
a
,
b
){
void
0
!==
c
.
deleteCookie
&&
c
.
deleteCookie
(
b
)})},
c
.
options
.
searchTimeOut
)}}}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/filter/bootstrap-table-filter.js
0 → 100644
View file @
0dec546d
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
* extensions: https://github.com/lukaskral/bootstrap-table-filter
*/
!
function
(
$
)
{
'
use strict
'
;
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
showFilter
:
false
});
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_init
=
BootstrapTable
.
prototype
.
init
,
_initSearch
=
BootstrapTable
.
prototype
.
initSearch
;
BootstrapTable
.
prototype
.
init
=
function
()
{
_init
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
var
that
=
this
;
this
.
$el
.
on
(
'
load-success.bs.table
'
,
function
()
{
if
(
that
.
options
.
showFilter
)
{
$
(
that
.
options
.
toolbar
).
bootstrapTableFilter
({
connectTo
:
that
.
$el
});
}
});
};
BootstrapTable
.
prototype
.
initSearch
=
function
()
{
_initSearch
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
(
this
.
options
.
sidePagination
!==
'
server
'
)
{
if
(
typeof
this
.
searchCallback
===
'
function
'
)
{
this
.
data
=
$
.
grep
(
this
.
options
.
data
,
this
.
searchCallback
);
}
}
};
BootstrapTable
.
prototype
.
getData
=
function
()
{
return
(
this
.
searchText
||
this
.
searchCallback
)
?
this
.
data
:
this
.
options
.
data
;
};
BootstrapTable
.
prototype
.
getColumns
=
function
()
{
return
this
.
columns
;
};
BootstrapTable
.
prototype
.
registerSearchCallback
=
function
(
callback
)
{
this
.
searchCallback
=
callback
;
};
BootstrapTable
.
prototype
.
updateSearch
=
function
()
{
this
.
options
.
pageNumber
=
1
;
this
.
initSearch
();
this
.
updatePagination
();
};
BootstrapTable
.
prototype
.
getServerUrl
=
function
()
{
return
(
this
.
options
.
sidePagination
===
'
server
'
)
?
this
.
options
.
url
:
false
;
};
$
.
fn
.
bootstrapTable
.
methods
.
push
(
'
getColumns
'
,
'
registerSearchCallback
'
,
'
updateSearch
'
,
'
getServerUrl
'
);
}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/filter/bootstrap-table-filter.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
showFilter
:
!
1
});
var
b
=
a
.
fn
.
bootstrapTable
.
Constructor
,
c
=
b
.
prototype
.
init
,
d
=
b
.
prototype
.
initSearch
;
b
.
prototype
.
init
=
function
(){
c
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
var
b
=
this
;
this
.
$el
.
on
(
"
load-success.bs.table
"
,
function
(){
b
.
options
.
showFilter
&&
a
(
b
.
options
.
toolbar
).
bootstrapTableFilter
({
connectTo
:
b
.
$el
})})},
b
.
prototype
.
initSearch
=
function
(){
d
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
"
server
"
!==
this
.
options
.
sidePagination
&&
"
function
"
==
typeof
this
.
searchCallback
&&
(
this
.
data
=
a
.
grep
(
this
.
options
.
data
,
this
.
searchCallback
))},
b
.
prototype
.
getData
=
function
(){
return
this
.
searchText
||
this
.
searchCallback
?
this
.
data
:
this
.
options
.
data
},
b
.
prototype
.
getColumns
=
function
(){
return
this
.
columns
},
b
.
prototype
.
registerSearchCallback
=
function
(
a
){
this
.
searchCallback
=
a
},
b
.
prototype
.
updateSearch
=
function
(){
this
.
options
.
pageNumber
=
1
,
this
.
initSearch
(),
this
.
updatePagination
()},
b
.
prototype
.
getServerUrl
=
function
(){
return
"
server
"
===
this
.
options
.
sidePagination
?
this
.
options
.
url
:
!
1
},
a
.
fn
.
bootstrapTable
.
methods
.
push
(
"
getColumns
"
,
"
registerSearchCallback
"
,
"
updateSearch
"
,
"
getServerUrl
"
)}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/flat-json/bootstrap-table-flat-json.js
0 → 100644
View file @
0dec546d
/**
* @author: Dennis Hernández
* @webSite: http://djhvscf.github.io/Blog
* @version: v1.3.0
*/
(
function
(
$
)
{
'
use strict
'
;
var
flat
=
function
(
element
,
that
)
{
var
result
=
{};
function
recurse
(
cur
,
prop
)
{
if
(
Object
(
cur
)
!==
cur
)
{
result
[
prop
]
=
cur
;
}
else
if
(
$
.
isArray
(
cur
))
{
for
(
var
i
=
0
,
l
=
cur
.
length
;
i
<
l
;
i
++
)
{
recurse
(
cur
[
i
],
prop
?
prop
+
that
.
options
.
flatSeparator
+
i
:
""
+
i
);
if
(
l
==
0
)
{
result
[
prop
]
=
[];
}
}
}
else
{
var
isEmpty
=
true
;
for
(
var
p
in
cur
)
{
isEmpty
=
false
;
recurse
(
cur
[
p
],
prop
?
prop
+
that
.
options
.
flatSeparator
+
p
:
p
);
}
if
(
isEmpty
)
{
result
[
prop
]
=
{};
}
}
}
recurse
(
element
,
""
);
return
result
;
};
var
flatHelper
=
function
(
data
,
that
)
{
var
flatArray
=
[];
$
.
each
(
!
$
.
isArray
(
data
)
?
[
data
]
:
data
,
function
(
i
,
element
)
{
flatArray
.
push
(
flat
(
element
,
that
));
});
return
flatArray
;
};
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
flat
:
false
,
flatSeparator
:
'
.
'
});
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_initData
=
BootstrapTable
.
prototype
.
initData
;
BootstrapTable
.
prototype
.
initData
=
function
(
data
,
type
)
{
if
(
this
.
options
.
flat
)
{
data
=
flatHelper
(
data
?
data
:
this
.
options
.
data
,
this
);
}
_initData
.
apply
(
this
,
[
data
,
type
]);
};
})(
jQuery
);
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/flat-json/bootstrap-table-flat-json.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
var
b
=
function
(
b
,
c
){
function
d
(
b
,
f
){
if
(
Object
(
b
)
!==
b
)
e
[
f
]
=
b
;
else
if
(
a
.
isArray
(
b
))
for
(
var
g
=
0
,
h
=
b
.
length
;
h
>
g
;
g
++
)
d
(
b
[
g
],
f
?
f
+
c
.
options
.
flatSeparator
+
g
:
""
+
g
),
0
==
h
&&
(
e
[
f
]
=
[]);
else
{
var
i
=!
0
;
for
(
var
j
in
b
)
i
=!
1
,
d
(
b
[
j
],
f
?
f
+
c
.
options
.
flatSeparator
+
j
:
j
);
i
&&
(
e
[
f
]
=
{})}}
var
e
=
{};
return
d
(
b
,
""
),
e
},
c
=
function
(
c
,
d
){
var
e
=
[];
return
a
.
each
(
a
.
isArray
(
c
)?
c
:[
c
],
function
(
a
,
c
){
e
.
push
(
b
(
c
,
d
))}),
e
};
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
flat
:
!
1
,
flatSeparator
:
"
.
"
});
var
d
=
a
.
fn
.
bootstrapTable
.
Constructor
,
e
=
d
.
prototype
.
initData
;
d
.
prototype
.
initData
=
function
(
a
,
b
){
this
.
options
.
flat
&&
(
a
=
c
(
a
?
a
:
this
.
options
.
data
,
this
)),
e
.
apply
(
this
,[
a
,
b
])}}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/group-by-v2/bootstrap-table-group-by.css
0 → 100644
View file @
0dec546d
.bootstrap-table
.table
>
tbody
>
tr
.groupBy
{
cursor
:
pointer
;
}
.bootstrap-table
.table
>
tbody
>
tr
.groupBy.expanded
{
}
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/group-by-v2/bootstrap-table-group-by.js
0 → 100644
View file @
0dec546d
/**
* @author: Yura Knoxville
* @version: v1.0.0
*/
!
function
(
$
)
{
'
use strict
'
;
var
initBodyCaller
,
tableGroups
;
// it only does '%s', and return '' when arguments are undefined
var
sprintf
=
function
(
str
)
{
var
args
=
arguments
,
flag
=
true
,
i
=
1
;
str
=
str
.
replace
(
/%s/g
,
function
()
{
var
arg
=
args
[
i
++
];
if
(
typeof
arg
===
'
undefined
'
)
{
flag
=
false
;
return
''
;
}
return
arg
;
});
return
flag
?
str
:
''
;
};
var
groupBy
=
function
(
array
,
f
)
{
var
groups
=
{};
array
.
forEach
(
function
(
o
)
{
var
group
=
f
(
o
);
groups
[
group
]
=
groups
[
group
]
||
[];
groups
[
group
].
push
(
o
);
});
return
groups
;
};
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
groupBy
:
false
,
groupByField
:
''
});
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_initSort
=
BootstrapTable
.
prototype
.
initSort
,
_initBody
=
BootstrapTable
.
prototype
.
initBody
,
_updateSelected
=
BootstrapTable
.
prototype
.
updateSelected
;
BootstrapTable
.
prototype
.
initSort
=
function
()
{
_initSort
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
var
that
=
this
;
tableGroups
=
[];
if
((
this
.
options
.
groupBy
)
&&
(
this
.
options
.
groupByField
!==
''
))
{
if
((
this
.
options
.
sortName
!=
this
.
options
.
groupByField
))
{
this
.
data
.
sort
(
function
(
a
,
b
)
{
return
a
[
that
.
options
.
groupByField
].
localeCompare
(
b
[
that
.
options
.
groupByField
]);
});
}
var
that
=
this
;
var
groups
=
groupBy
(
that
.
data
,
function
(
item
)
{
return
[
item
[
that
.
options
.
groupByField
]];
});
var
index
=
0
;
$
.
each
(
groups
,
function
(
key
,
value
)
{
tableGroups
.
push
({
id
:
index
,
name
:
key
});
value
.
forEach
(
function
(
item
)
{
if
(
!
item
.
_data
)
{
item
.
_data
=
{};
}
item
.
_data
[
'
parent-index
'
]
=
index
;
});
index
++
;
});
}
}
BootstrapTable
.
prototype
.
initBody
=
function
()
{
initBodyCaller
=
true
;
_initBody
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
((
this
.
options
.
groupBy
)
&&
(
this
.
options
.
groupByField
!==
''
))
{
var
that
=
this
,
checkBox
=
false
,
visibleColumns
=
0
;
this
.
columns
.
forEach
(
function
(
column
)
{
if
(
column
.
checkbox
)
{
checkBox
=
true
;
}
else
{
if
(
column
.
visible
)
{
visibleColumns
+=
1
;
}
}
});
if
(
this
.
options
.
detailView
&&
!
this
.
options
.
cardView
)
{
visibleColumns
+=
1
;
}
tableGroups
.
forEach
(
function
(
item
){
var
html
=
[];
html
.
push
(
sprintf
(
'
<tr class="info groupBy expanded" data-group-index="%s">
'
,
item
.
id
));
if
(
that
.
options
.
detailView
&&
!
that
.
options
.
cardView
)
{
html
.
push
(
'
<td class="detail"></td>
'
);
}
if
(
checkBox
)
{
html
.
push
(
'
<td class="bs-checkbox">
'
,
'
<input name="btSelectGroup" type="checkbox" />
'
,
'
</td>
'
);
}
html
.
push
(
'
<td
'
,
sprintf
(
'
colspan="%s"
'
,
visibleColumns
),
'
>
'
,
item
.
name
,
'
</td>
'
);
html
.
push
(
'
</tr>
'
);
that
.
$body
.
find
(
'
tr[data-parent-index=
'
+
item
.
id
+
'
]:first
'
).
before
(
$
(
html
.
join
(
''
)));
});
this
.
$selectGroup
=
[];
this
.
$body
.
find
(
'
[name="btSelectGroup"]
'
).
each
(
function
()
{
var
self
=
$
(
this
);
that
.
$selectGroup
.
push
({
group
:
self
,
item
:
that
.
$selectItem
.
filter
(
function
()
{
return
(
$
(
this
).
closest
(
'
tr
'
).
data
(
'
parent-index
'
)
===
self
.
closest
(
'
tr
'
).
data
(
'
group-index
'
));
})
});
});
this
.
$container
.
off
(
'
click
'
,
'
.groupBy
'
)
.
on
(
'
click
'
,
'
.groupBy
'
,
function
()
{
$
(
this
).
toggleClass
(
'
expanded
'
);
that
.
$body
.
find
(
'
tr[data-parent-index=
'
+
$
(
this
).
closest
(
'
tr
'
).
data
(
'
group-index
'
)
+
'
]
'
).
toggleClass
(
'
hidden
'
);
});
this
.
$container
.
off
(
'
click
'
,
'
[name="btSelectGroup"]
'
)
.
on
(
'
click
'
,
'
[name="btSelectGroup"]
'
,
function
(
event
)
{
event
.
stopImmediatePropagation
();
var
self
=
$
(
this
);
var
checked
=
self
.
prop
(
'
checked
'
);
that
[
checked
?
'
checkGroup
'
:
'
uncheckGroup
'
](
$
(
this
).
closest
(
'
tr
'
).
data
(
'
group-index
'
));
});
}
initBodyCaller
=
false
;
this
.
updateSelected
();
};
BootstrapTable
.
prototype
.
updateSelected
=
function
()
{
if
(
!
initBodyCaller
)
{
_updateSelected
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
if
((
this
.
options
.
groupBy
)
&&
(
this
.
options
.
groupByField
!==
''
))
{
this
.
$selectGroup
.
forEach
(
function
(
item
)
{
var
checkGroup
=
item
.
item
.
filter
(
'
:enabled
'
).
length
===
item
.
item
.
filter
(
'
:enabled
'
).
filter
(
'
:checked
'
).
length
;
item
.
group
.
prop
(
'
checked
'
,
checkGroup
);
});
}
}
};
BootstrapTable
.
prototype
.
getGroupSelections
=
function
(
index
)
{
var
that
=
this
;
return
$
.
grep
(
this
.
data
,
function
(
row
)
{
return
(
row
[
that
.
header
.
stateField
]
&&
(
row
.
_data
[
'
parent-index
'
]
===
index
));
});
};
BootstrapTable
.
prototype
.
checkGroup
=
function
(
index
)
{
this
.
checkGroup_
(
index
,
true
);
};
BootstrapTable
.
prototype
.
uncheckGroup
=
function
(
index
)
{
this
.
checkGroup_
(
index
,
false
);
};
BootstrapTable
.
prototype
.
checkGroup_
=
function
(
index
,
checked
)
{
var
rows
;
var
filter
=
function
()
{
return
(
$
(
this
).
closest
(
'
tr
'
).
data
(
'
parent-index
'
)
===
index
);
};
if
(
!
checked
)
{
rows
=
this
.
getGroupSelections
(
index
);
}
this
.
$selectItem
.
filter
(
filter
).
prop
(
'
checked
'
,
checked
);
this
.
updateRows
();
this
.
updateSelected
();
if
(
checked
)
{
rows
=
this
.
getGroupSelections
(
index
);
}
this
.
trigger
(
checked
?
'
check-all
'
:
'
uncheck-all
'
,
rows
);
};
}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/group-by-v2/bootstrap-table-group-by.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
var
b
,
c
,
d
=
function
(
a
){
var
b
=
arguments
,
c
=!
0
,
d
=
1
;
return
a
=
a
.
replace
(
/%s/g
,
function
(){
var
a
=
b
[
d
++
];
return
"
undefined
"
==
typeof
a
?(
c
=!
1
,
""
):
a
}),
c
?
a
:
""
},
e
=
function
(
a
,
b
){
var
c
=
{};
return
a
.
forEach
(
function
(
a
){
var
d
=
b
(
a
);
c
[
d
]
=
c
[
d
]
||
[],
c
[
d
].
push
(
a
)}),
c
};
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
groupBy
:
!
1
,
groupByField
:
""
});
var
f
=
a
.
fn
.
bootstrapTable
.
Constructor
,
g
=
f
.
prototype
.
initSort
,
h
=
f
.
prototype
.
initBody
,
i
=
f
.
prototype
.
updateSelected
;
f
.
prototype
.
initSort
=
function
(){
g
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
var
b
=
this
;
if
(
c
=
[],
this
.
options
.
groupBy
&&
""
!==
this
.
options
.
groupByField
){
this
.
options
.
sortName
!=
this
.
options
.
groupByField
&&
this
.
data
.
sort
(
function
(
a
,
c
){
return
a
[
b
.
options
.
groupByField
].
localeCompare
(
c
[
b
.
options
.
groupByField
])});
var
b
=
this
,
d
=
e
(
b
.
data
,
function
(
a
){
return
[
a
[
b
.
options
.
groupByField
]]}),
f
=
0
;
a
.
each
(
d
,
function
(
a
,
b
){
c
.
push
({
id
:
f
,
name
:
a
}),
b
.
forEach
(
function
(
a
){
a
.
_data
||
(
a
.
_data
=
{}),
a
.
_data
[
"
parent-index
"
]
=
f
}),
f
++
})}},
f
.
prototype
.
initBody
=
function
(){
if
(
b
=!
0
,
h
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
this
.
options
.
groupBy
&&
""
!==
this
.
options
.
groupByField
){
var
e
=
this
,
f
=!
1
,
g
=
0
;
this
.
columns
.
forEach
(
function
(
a
){
a
.
checkbox
?
f
=!
0
:
a
.
visible
&&
(
g
+=
1
)}),
this
.
options
.
detailView
&&!
this
.
options
.
cardView
&&
(
g
+=
1
),
c
.
forEach
(
function
(
b
){
var
c
=
[];
c
.
push
(
d
(
'
<tr class="info groupBy expanded" data-group-index="%s">
'
,
b
.
id
)),
e
.
options
.
detailView
&&!
e
.
options
.
cardView
&&
c
.
push
(
'
<td class="detail"></td>
'
),
f
&&
c
.
push
(
'
<td class="bs-checkbox">
'
,
'
<input name="btSelectGroup" type="checkbox" />
'
,
"
</td>
"
),
c
.
push
(
"
<td
"
,
d
(
'
colspan="%s"
'
,
g
),
"
>
"
,
b
.
name
,
"
</td>
"
),
c
.
push
(
"
</tr>
"
),
e
.
$body
.
find
(
"
tr[data-parent-index=
"
+
b
.
id
+
"
]:first
"
).
before
(
a
(
c
.
join
(
""
)))}),
this
.
$selectGroup
=
[],
this
.
$body
.
find
(
'
[name="btSelectGroup"]
'
).
each
(
function
(){
var
b
=
a
(
this
);
e
.
$selectGroup
.
push
({
group
:
b
,
item
:
e
.
$selectItem
.
filter
(
function
(){
return
a
(
this
).
closest
(
"
tr
"
).
data
(
"
parent-index
"
)
===
b
.
closest
(
"
tr
"
).
data
(
"
group-index
"
)})})}),
this
.
$container
.
off
(
"
click
"
,
"
.groupBy
"
).
on
(
"
click
"
,
"
.groupBy
"
,
function
(){
a
(
this
).
toggleClass
(
"
expanded
"
),
e
.
$body
.
find
(
"
tr[data-parent-index=
"
+
a
(
this
).
closest
(
"
tr
"
).
data
(
"
group-index
"
)
+
"
]
"
).
toggleClass
(
"
hidden
"
)}),
this
.
$container
.
off
(
"
click
"
,
'
[name="btSelectGroup"]
'
).
on
(
"
click
"
,
'
[name="btSelectGroup"]
'
,
function
(
b
){
b
.
stopImmediatePropagation
();
var
c
=
a
(
this
),
d
=
c
.
prop
(
"
checked
"
);
e
[
d
?
"
checkGroup
"
:
"
uncheckGroup
"
](
a
(
this
).
closest
(
"
tr
"
).
data
(
"
group-index
"
))})}
b
=!
1
,
this
.
updateSelected
()},
f
.
prototype
.
updateSelected
=
function
(){
b
||
(
i
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
)),
this
.
options
.
groupBy
&&
""
!==
this
.
options
.
groupByField
&&
this
.
$selectGroup
.
forEach
(
function
(
a
){
var
b
=
a
.
item
.
filter
(
"
:enabled
"
).
length
===
a
.
item
.
filter
(
"
:enabled
"
).
filter
(
"
:checked
"
).
length
;
a
.
group
.
prop
(
"
checked
"
,
b
)}))},
f
.
prototype
.
getGroupSelections
=
function
(
b
){
var
c
=
this
;
return
a
.
grep
(
this
.
data
,
function
(
a
){
return
a
[
c
.
header
.
stateField
]
&&
a
.
_data
[
"
parent-index
"
]
===
b
})},
f
.
prototype
.
checkGroup
=
function
(
a
){
this
.
checkGroup_
(
a
,
!
0
)},
f
.
prototype
.
uncheckGroup
=
function
(
a
){
this
.
checkGroup_
(
a
,
!
1
)},
f
.
prototype
.
checkGroup_
=
function
(
b
,
c
){
var
d
,
e
=
function
(){
return
a
(
this
).
closest
(
"
tr
"
).
data
(
"
parent-index
"
)
===
b
};
c
||
(
d
=
this
.
getGroupSelections
(
b
)),
this
.
$selectItem
.
filter
(
e
).
prop
(
"
checked
"
,
c
),
this
.
updateRows
(),
this
.
updateSelected
(),
c
&&
(
d
=
this
.
getGroupSelections
(
b
)),
this
.
trigger
(
c
?
"
check-all
"
:
"
uncheck-all
"
,
d
)}}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/group-by/bootstrap-table-group-by.css
0 → 100644
View file @
0dec546d
table
.treetable
tbody
tr
td
{
cursor
:
default
;
}
table
.treetable
span
{
background-position
:
center
left
;
background-repeat
:
no-repeat
;
padding
:
.2em
0
.2em
1.5em
;
}
table
.treetable
tr
.collapsed
span
.indenter
a
{
background-image
:
url(data:image/png;base64,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)
;
padding-right
:
12px
;
}
table
.treetable
tr
.expanded
span
.indenter
a
{
background-image
:
url(data:image/png;base64,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)
;
padding-right
:
12px
;
}
table
.treetable
tr
.branch
{
background-color
:
#f9f9f9
;
}
table
.treetable
tr
.selected
{
background-color
:
#3875d7
;
color
:
#fff
;
}
table
.treetable
tr
span
.indenter
a
{
outline
:
none
;
/* Expander shows outline after upgrading to 3.0 (#141) */
}
table
.treetable
tr
.collapsed.selected
span
.indenter
a
{
background-image
:
url(data:image/png;base64,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)
;
}
table
.treetable
tr
.expanded.selected
span
.indenter
a
{
background-image
:
url(data:image/png;base64,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)
;
}
table
.treetable
tr
.accept
{
background-color
:
#a3bce4
;
color
:
#fff
}
table
.treetable
tr
.collapsed.accept
td
span
.indenter
a
{
background-image
:
url(data:image/x-png;base64,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)
;
}
table
.treetable
tr
.expanded.accept
td
span
.indenter
a
{
background-image
:
url(data:image/x-png;base64,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)
;
}
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/group-by/bootstrap-table-group-by.js
0 → 100644
View file @
0dec546d
/**
* @author: Dennis Hernández
* @webSite: http://djhvscf.github.io/Blog
* @version: v1.1.0
*/
!
function
(
$
)
{
'
use strict
'
;
var
originalRowAttr
,
dataTTId
=
'
data-tt-id
'
,
dataTTParentId
=
'
data-tt-parent-id
'
,
obj
=
{},
parentId
=
undefined
;
var
getParentRowId
=
function
(
that
,
id
)
{
var
parentRows
=
that
.
$body
.
find
(
'
tr
'
).
not
(
'
[
'
+
'
data-tt-parent-id]
'
);
for
(
var
i
=
0
;
i
<
parentRows
.
length
;
i
++
)
{
if
(
i
===
id
)
{
return
$
(
parentRows
[
i
]).
attr
(
'
data-tt-id
'
);
}
}
return
undefined
;
};
var
sumData
=
function
(
that
,
data
)
{
var
sumRow
=
{};
$
.
each
(
data
,
function
(
i
,
row
)
{
if
(
!
row
.
IsParent
)
{
for
(
var
prop
in
row
)
{
if
(
!
isNaN
(
parseFloat
(
row
[
prop
])))
{
if
(
that
.
columns
[
$
.
fn
.
bootstrapTable
.
utils
.
getFieldIndex
(
that
.
columns
,
prop
)].
groupBySumGroup
)
{
if
(
sumRow
[
prop
]
===
undefined
)
{
sumRow
[
prop
]
=
0
;
}
sumRow
[
prop
]
+=
+
row
[
prop
];
}
}
}
}
});
return
sumRow
;
};
var
rowAttr
=
function
(
row
,
index
)
{
//Call the User Defined Function
originalRowAttr
.
apply
([
row
,
index
]);
obj
[
dataTTId
.
toString
()]
=
index
;
if
(
!
row
.
IsParent
)
{
obj
[
dataTTParentId
.
toString
()]
=
parentId
===
undefined
?
index
:
parentId
;
}
else
{
parentId
=
index
;
delete
obj
[
dataTTParentId
.
toString
()];
}
return
obj
;
};
var
setObjectKeys
=
function
()
{
// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
Object
.
keys
=
function
(
o
)
{
if
(
o
!==
Object
(
o
))
{
throw
new
TypeError
(
'
Object.keys called on a non-object
'
);
}
var
k
=
[],
p
;
for
(
p
in
o
)
{
if
(
Object
.
prototype
.
hasOwnProperty
.
call
(
o
,
p
))
{
k
.
push
(
p
);
}
}
return
k
;
}
};
var
getDataArrayFromItem
=
function
(
that
,
item
)
{
var
itemDataArray
=
[];
for
(
var
i
=
0
;
i
<
that
.
options
.
groupByField
.
length
;
i
++
)
{
itemDataArray
.
push
(
item
[
that
.
options
.
groupByField
[
i
]]);
}
return
itemDataArray
;
};
var
getNewRow
=
function
(
that
,
result
,
index
)
{
var
newRow
=
{};
for
(
var
i
=
0
;
i
<
that
.
options
.
groupByField
.
length
;
i
++
)
{
newRow
[
that
.
options
.
groupByField
[
i
].
toString
()]
=
result
[
index
][
0
][
that
.
options
.
groupByField
[
i
]];
}
newRow
.
IsParent
=
true
;
return
newRow
;
};
var
groupBy
=
function
(
array
,
f
)
{
var
groups
=
{};
$
.
each
(
array
,
function
(
i
,
o
)
{
var
group
=
JSON
.
stringify
(
f
(
o
));
groups
[
group
]
=
groups
[
group
]
||
[];
groups
[
group
].
push
(
o
);
});
return
Object
.
keys
(
groups
).
map
(
function
(
group
)
{
return
groups
[
group
];
});
};
var
makeGrouped
=
function
(
that
,
data
)
{
var
newData
=
[],
sumRow
=
{};
var
result
=
groupBy
(
data
,
function
(
item
)
{
return
getDataArrayFromItem
(
that
,
item
);
});
for
(
var
i
=
0
;
i
<
result
.
length
;
i
++
)
{
result
[
i
].
unshift
(
getNewRow
(
that
,
result
,
i
));
if
(
that
.
options
.
groupBySumGroup
)
{
sumRow
=
sumData
(
that
,
result
[
i
]);
if
(
!
$
.
isEmptyObject
(
sumRow
))
{
result
[
i
].
push
(
sumRow
);
}
}
}
newData
=
newData
.
concat
.
apply
(
newData
,
result
);
if
(
!
that
.
options
.
loaded
&&
newData
.
length
>
0
)
{
that
.
options
.
loaded
=
true
;
that
.
options
.
originalData
=
that
.
options
.
data
;
that
.
options
.
data
=
newData
;
}
return
newData
;
};
$
.
extend
(
$
.
fn
.
bootstrapTable
.
defaults
,
{
groupBy
:
false
,
groupByField
:
[],
groupBySumGroup
:
false
,
groupByInitExpanded
:
undefined
,
//node, 'all'
//internal variables
loaded
:
false
,
originalData
:
undefined
});
$
.
fn
.
bootstrapTable
.
methods
.
push
(
'
collapseAll
'
,
'
expandAll
'
,
'
refreshGroupByField
'
);
$
.
extend
(
$
.
fn
.
bootstrapTable
.
COLUMN_DEFAULTS
,
{
groupBySumGroup
:
false
});
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
,
_init
=
BootstrapTable
.
prototype
.
init
,
_initData
=
BootstrapTable
.
prototype
.
initData
;
BootstrapTable
.
prototype
.
init
=
function
()
{
//Temporal validation
if
(
!
this
.
options
.
sortName
)
{
if
((
this
.
options
.
groupBy
)
&&
(
this
.
options
.
groupByField
.
length
>
0
))
{
var
that
=
this
;
// Compatibility: IE < 9 and old browsers
if
(
!
Object
.
keys
)
{
$
.
fn
.
bootstrapTable
.
utils
.
objectKeys
();
}
//Make sure that the internal variables are set correctly
this
.
options
.
loaded
=
false
;
this
.
options
.
originalData
=
undefined
;
originalRowAttr
=
this
.
options
.
rowAttributes
;
this
.
options
.
rowAttributes
=
rowAttr
;
this
.
$el
.
on
(
'
post-body.bs.table
'
,
function
()
{
that
.
$el
.
treetable
({
expandable
:
true
,
onNodeExpand
:
function
()
{
if
(
that
.
options
.
height
)
{
that
.
resetHeader
();
}
},
onNodeCollapse
:
function
()
{
if
(
that
.
options
.
height
)
{
that
.
resetHeader
();
}
}
},
true
);
if
(
that
.
options
.
groupByInitExpanded
!==
undefined
)
{
if
(
typeof
that
.
options
.
groupByInitExpanded
===
'
number
'
)
{
that
.
expandNode
(
that
.
options
.
groupByInitExpanded
);
}
else
if
(
that
.
options
.
groupByInitExpanded
.
toLowerCase
()
===
'
all
'
)
{
that
.
expandAll
();
}
}
});
}
}
_init
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
));
};
BootstrapTable
.
prototype
.
initData
=
function
(
data
,
type
)
{
//Temporal validation
if
(
!
this
.
options
.
sortName
)
{
if
((
this
.
options
.
groupBy
)
&&
(
this
.
options
.
groupByField
.
length
>
0
))
{
this
.
options
.
groupByField
=
typeof
this
.
options
.
groupByField
===
'
string
'
?
this
.
options
.
groupByField
.
replace
(
'
[
'
,
''
).
replace
(
'
]
'
,
''
)
.
replace
(
/ /g
,
''
).
toLowerCase
().
split
(
'
,
'
)
:
this
.
options
.
groupByField
;
data
=
makeGrouped
(
this
,
data
?
data
:
this
.
options
.
data
);
}
}
_initData
.
apply
(
this
,
[
data
,
type
]);
};
BootstrapTable
.
prototype
.
expandAll
=
function
()
{
this
.
$el
.
treetable
(
'
expandAll
'
);
};
BootstrapTable
.
prototype
.
collapseAll
=
function
()
{
this
.
$el
.
treetable
(
'
collapseAll
'
);
};
BootstrapTable
.
prototype
.
expandNode
=
function
(
id
)
{
id
=
getParentRowId
(
this
,
id
);
if
(
id
!==
undefined
)
{
this
.
$el
.
treetable
(
'
expandNode
'
,
id
);
}
};
BootstrapTable
.
prototype
.
refreshGroupByField
=
function
(
groupByFields
)
{
if
(
!
$
.
fn
.
bootstrapTable
.
utils
.
compareObjects
(
this
.
options
.
groupByField
,
groupByFields
))
{
this
.
options
.
groupByField
=
groupByFields
;
this
.
load
(
this
.
options
.
originalData
);
}
};
}(
jQuery
);
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/group-by/bootstrap-table-group-by.min.js
0 → 100644
View file @
0dec546d
/*
* bootstrap-table - v1.11.1 - 2017-02-22
* https://github.com/wenzhixin/bootstrap-table
* Copyright (c) 2017 zhixin wen
* Licensed MIT License
*/
!
function
(
a
){
"
use strict
"
;
var
b
,
c
=
"
data-tt-id
"
,
d
=
"
data-tt-parent-id
"
,
e
=
{},
f
=
void
0
,
g
=
function
(
b
,
c
){
for
(
var
d
=
b
.
$body
.
find
(
"
tr
"
).
not
(
"
[data-tt-parent-id]
"
),
e
=
0
;
e
<
d
.
length
;
e
++
)
if
(
e
===
c
)
return
a
(
d
[
e
]).
attr
(
"
data-tt-id
"
);
return
void
0
},
h
=
function
(
b
,
c
){
var
d
=
{};
return
a
.
each
(
c
,
function
(
c
,
e
){
if
(
!
e
.
IsParent
)
for
(
var
f
in
e
)
isNaN
(
parseFloat
(
e
[
f
]))
||
b
.
columns
[
a
.
fn
.
bootstrapTable
.
utils
.
getFieldIndex
(
b
.
columns
,
f
)].
groupBySumGroup
&&
(
void
0
===
d
[
f
]
&&
(
d
[
f
]
=
0
),
d
[
f
]
+=+
e
[
f
])}),
d
},
i
=
function
(
a
,
g
){
return
b
.
apply
([
a
,
g
]),
e
[
c
.
toString
()]
=
g
,
a
.
IsParent
?(
f
=
g
,
delete
e
[
d
.
toString
()]):
e
[
d
.
toString
()]
=
void
0
===
f
?
g
:
f
,
e
},
j
=
function
(
a
,
b
){
for
(
var
c
=
[],
d
=
0
;
d
<
a
.
options
.
groupByField
.
length
;
d
++
)
c
.
push
(
b
[
a
.
options
.
groupByField
[
d
]]);
return
c
},
k
=
function
(
a
,
b
,
c
){
for
(
var
d
=
{},
e
=
0
;
e
<
a
.
options
.
groupByField
.
length
;
e
++
)
d
[
a
.
options
.
groupByField
[
e
].
toString
()]
=
b
[
c
][
0
][
a
.
options
.
groupByField
[
e
]];
return
d
.
IsParent
=!
0
,
d
},
l
=
function
(
b
,
c
){
var
d
=
{};
return
a
.
each
(
b
,
function
(
a
,
b
){
var
e
=
JSON
.
stringify
(
c
(
b
));
d
[
e
]
=
d
[
e
]
||
[],
d
[
e
].
push
(
b
)}),
Object
.
keys
(
d
).
map
(
function
(
a
){
return
d
[
a
]})},
m
=
function
(
b
,
c
){
for
(
var
d
=
[],
e
=
{},
f
=
l
(
c
,
function
(
a
){
return
j
(
b
,
a
)}),
g
=
0
;
g
<
f
.
length
;
g
++
)
f
[
g
].
unshift
(
k
(
b
,
f
,
g
)),
b
.
options
.
groupBySumGroup
&&
(
e
=
h
(
b
,
f
[
g
]),
a
.
isEmptyObject
(
e
)
||
f
[
g
].
push
(
e
));
return
d
=
d
.
concat
.
apply
(
d
,
f
),
!
b
.
options
.
loaded
&&
d
.
length
>
0
&&
(
b
.
options
.
loaded
=!
0
,
b
.
options
.
originalData
=
b
.
options
.
data
,
b
.
options
.
data
=
d
),
d
};
a
.
extend
(
a
.
fn
.
bootstrapTable
.
defaults
,{
groupBy
:
!
1
,
groupByField
:[],
groupBySumGroup
:
!
1
,
groupByInitExpanded
:
void
0
,
loaded
:
!
1
,
originalData
:
void
0
}),
a
.
fn
.
bootstrapTable
.
methods
.
push
(
"
collapseAll
"
,
"
expandAll
"
,
"
refreshGroupByField
"
),
a
.
extend
(
a
.
fn
.
bootstrapTable
.
COLUMN_DEFAULTS
,{
groupBySumGroup
:
!
1
});
var
n
=
a
.
fn
.
bootstrapTable
.
Constructor
,
o
=
n
.
prototype
.
init
,
p
=
n
.
prototype
.
initData
;
n
.
prototype
.
init
=
function
(){
if
(
!
this
.
options
.
sortName
&&
this
.
options
.
groupBy
&&
this
.
options
.
groupByField
.
length
>
0
){
var
c
=
this
;
Object
.
keys
||
a
.
fn
.
bootstrapTable
.
utils
.
objectKeys
(),
this
.
options
.
loaded
=!
1
,
this
.
options
.
originalData
=
void
0
,
b
=
this
.
options
.
rowAttributes
,
this
.
options
.
rowAttributes
=
i
,
this
.
$el
.
on
(
"
post-body.bs.table
"
,
function
(){
c
.
$el
.
treetable
({
expandable
:
!
0
,
onNodeExpand
:
function
(){
c
.
options
.
height
&&
c
.
resetHeader
()},
onNodeCollapse
:
function
(){
c
.
options
.
height
&&
c
.
resetHeader
()}},
!
0
),
void
0
!==
c
.
options
.
groupByInitExpanded
&&
(
"
number
"
==
typeof
c
.
options
.
groupByInitExpanded
?
c
.
expandNode
(
c
.
options
.
groupByInitExpanded
):
"
all
"
===
c
.
options
.
groupByInitExpanded
.
toLowerCase
()
&&
c
.
expandAll
())})}
o
.
apply
(
this
,
Array
.
prototype
.
slice
.
apply
(
arguments
))},
n
.
prototype
.
initData
=
function
(
a
,
b
){
this
.
options
.
sortName
||
this
.
options
.
groupBy
&&
this
.
options
.
groupByField
.
length
>
0
&&
(
this
.
options
.
groupByField
=
"
string
"
==
typeof
this
.
options
.
groupByField
?
this
.
options
.
groupByField
.
replace
(
"
[
"
,
""
).
replace
(
"
]
"
,
""
).
replace
(
/ /g
,
""
).
toLowerCase
().
split
(
"
,
"
):
this
.
options
.
groupByField
,
a
=
m
(
this
,
a
?
a
:
this
.
options
.
data
)),
p
.
apply
(
this
,[
a
,
b
])},
n
.
prototype
.
expandAll
=
function
(){
this
.
$el
.
treetable
(
"
expandAll
"
)},
n
.
prototype
.
collapseAll
=
function
(){
this
.
$el
.
treetable
(
"
collapseAll
"
)},
n
.
prototype
.
expandNode
=
function
(
a
){
a
=
g
(
this
,
a
),
void
0
!==
a
&&
this
.
$el
.
treetable
(
"
expandNode
"
,
a
)},
n
.
prototype
.
refreshGroupByField
=
function
(
b
){
a
.
fn
.
bootstrapTable
.
utils
.
compareObjects
(
this
.
options
.
groupByField
,
b
)
||
(
this
.
options
.
groupByField
=
b
,
this
.
load
(
this
.
options
.
originalData
))}}(
jQuery
);
\ No newline at end of file
src/main/webapp/static/plugins/bootstrap-table/1.11.1/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js
0 → 100644
View file @
0dec546d
/**
* @author: Jewway
* @version: v1.0.0
*/
!
function
(
$
)
{
'
use strict
'
;
var
BootstrapTable
=
$
.
fn
.
bootstrapTable
.
Constructor
;
BootstrapTable
.
prototype
.
changeTitle
=
function
(
locale
)
{
$
.
each
(
this
.
options
.
columns
,
function
(
idx
,
columnList
)
{
$
.
each
(
columnList
,
function
(
idx
,
column
)
{
if
(
column
.
field
)
{
column
.
title
=
locale
[
column
.
field
];
}
});
});
this
.
initHeader
();
this
.
initBody
();
this
.
initToolbar
();
};
BootstrapTable
.
prototype
.
changeLocale
=
function
(
localeId
)
{
this
.
options
.
locale
=
localeId
;
this
.
initLocale
();
this
.
initPagination
();
};
$
.
fn
.
bootstrapTable
.
methods
.
push
(
'
changeTitle
'
);
$
.
fn
.
bootstrapTable
.
methods
.
push
(
'
changeLocale
'
);
}(
jQuery
);
\ No newline at end of file
Prev
1
2
3
4
5
6
7
8
…
15
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment