chaltron 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +22 -12
- data/Rakefile +3 -0
- data/app/assets/javascripts/chaltron/datatables.js.coffee +13 -16
- data/app/assets/javascripts/chaltron/datatables.js.coffee~ +106 -0
- data/app/assets/javascripts/chaltron.js +4 -4
- data/app/assets/javascripts/chaltron.js~ +13 -0
- data/app/assets/javascripts/dataTables/dataTables.bootstrap.min.js +8 -0
- data/app/assets/javascripts/dataTables/extras/dataTables.responsive.min.js +19 -0
- data/app/assets/javascripts/dataTables/extras/dataTables.select.min.js +23 -0
- data/app/assets/javascripts/dataTables/jquery.dataTables.min.js +163 -0
- data/app/assets/stylesheets/chaltron.scss +4 -4
- data/app/assets/stylesheets/dataTables/dataTables.bootstrap.css +167 -0
- data/app/assets/stylesheets/dataTables/extras/responsive.bootstrap.css +106 -0
- data/app/assets/stylesheets/dataTables/extras/select.dataTables.css +100 -0
- data/app/helpers/chaltron/ldap_helper.rb +3 -3
- data/app/helpers/chaltron_helper.rb +15 -0
- data/config/locales/en.yml +1 -0
- data/config/locales/it.yml +1 -0
- data/lib/chaltron/engine.rb +0 -1
- data/lib/chaltron/ldap/person.rb +1 -1
- data/lib/chaltron/version.rb +1 -1
- data/lib/generators/chaltron/templates/app/views/layouts/_footer.html.erb +10 -0
- data/lib/generators/chaltron/templates/app/views/layouts/application.html.erb +1 -0
- data/lib/templates/erb/scaffold/index.html.erb +1 -16
- data/lib/templates/erb/scaffold/index.html.erb~ +28 -0
- metadata +13 -31
- data/app/assets/stylesheets/chaltron/datatables.scss +0 -14
- data/app/assets/stylesheets/chaltron/layout.scss~ +0 -68
- data/app/controllers/chaltron/omniauth_callbacks_controller.rb~ +0 -34
- data/app/controllers/chaltron/users_controller.rb~ +0 -94
- data/app/models/user.rb~ +0 -28
- data/app/views/chaltron/users/index.html.erb~ +0 -48
- data/app/views/devise/sessions/_new_ldap.html.erb~ +0 -31
- data/app/views/devise/sessions/_new_local.html.erb~ +0 -20
- data/app/views/locales/en.yml~ +0 -91
- data/app/views/locales/it.yml~ +0 -91
- data/config/initializers/devise.rb~ +0 -256
- data/lib/chaltron/controllers/helpers.rb~ +0 -61
- data/lib/chaltron/engine.rb~ +0 -47
- data/lib/chaltron/ldap/user.rb~ +0 -88
- data/lib/chaltron/version.rb~ +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04a26003fe77f074bc5338438162de022181977c
|
4
|
+
data.tar.gz: 5cd76996bc7515911ae75c2eb4a2a0e18eacc365
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3164668cb7f1a83b126fc4adc955b1818bb0cb6beefbe659eb20f004a1ff07e455522133306825aa37f4f8568e26d9d97eab59ad4d5582b71f2d87dcd45a618c
|
7
|
+
data.tar.gz: 22b51a5420bc8f7c84d3875ce45e0f54ccc1fb584bac5bd3e59eb3e04f361efd745bcea933c07ff5398ee166400796485196392273e384b3864131d5adeb36f2
|
data/README.md
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
# Chaltron [![Gem Version](https://badge.fury.io/rb/chaltron.svg)](http://badge.fury.io/rb/chaltron)
|
1
|
+
# Chaltron [![Gem Version](https://badge.fury.io/rb/chaltron.svg)](http://badge.fury.io/rb/chaltron) [![Build Status](https://travis-ci.org/vicvega/chaltron.svg?branch=master)](http://travis-ci.org/vicvega/chaltron) [![Dependency Status](https://gemnasium.com/vicvega/chaltron.svg)](https://gemnasium.com/vicvega/chaltron)
|
2
2
|
|
3
|
-
[![Build Status](https://api.travis-ci.org/vicvega/chaltron.png?branch=master)](http://travis-ci.org/vicvega/chaltron)
|
4
3
|
[![Coverage Status](https://coveralls.io/repos/vicvega/chaltron/badge.svg?branch=master&service=github)](https://coveralls.io/github/vicvega/chaltron?branch=master)
|
5
4
|
[![Code Climate](https://codeclimate.com/github/vicvega/chaltron/badges/gpa.svg)](https://codeclimate.com/github/vicvega/chaltron)
|
6
|
-
[![Dependency Status](https://gemnasium.com/vicvega/chaltron.png)](https://gemnasium.com/vicvega/chaltron)
|
7
5
|
[![PullReview stats](https://www.pullreview.com/github/vicvega/chaltron/badges/master.svg?)](https://www.pullreview.com/github/vicvega/chaltron/reviews/master)
|
6
|
+
[![security](https://hakiri.io/github/vicvega/chaltron/master.svg)](https://hakiri.io/github/vicvega/chaltron/master)
|
8
7
|
|
9
8
|
In a fresh new rails application simply add to your `Gemfile`
|
10
9
|
```
|
@@ -18,27 +17,38 @@ Now run
|
|
18
17
|
```
|
19
18
|
rails generate chaltron:install
|
20
19
|
```
|
21
|
-
to create a ready-to-go application, powered by
|
22
|
-
|
23
|
-
* [devise](https://github.com/plataformatec/devise/)
|
24
|
-
* [cancancan](https://github.com/CanCanCommunity/cancancan/)
|
25
|
-
* [bootstrap](https://github.com/twbs/bootstrap-sass)
|
26
|
-
* [font-awesome](https://github.com/FortAwesome/font-awesome-sass)
|
27
|
-
* datatables [client side](https://github.com/rweng/jquery-datatables-rails) or [server side](https://github.com/antillas21/ajax-datatables-rails) processing
|
28
20
|
|
29
21
|
Start your app
|
30
22
|
```
|
31
23
|
rails server
|
32
24
|
```
|
33
25
|
|
26
|
+
Login with local user `bella` and `password.1`
|
27
|
+
|
28
|
+
Enjoy!
|
29
|
+
|
30
|
+
## Features
|
31
|
+
|
34
32
|
Chaltron provides
|
35
33
|
* local user (creation, authentication, forgotten password management...)
|
36
34
|
* LDAP user (search, creation, authentication)
|
37
35
|
* authorization (roles and permissions)
|
38
36
|
* utility for log messages (syslog enabled)
|
39
37
|
|
40
|
-
|
38
|
+
Chaltron is powered by
|
41
39
|
|
42
|
-
|
40
|
+
* [devise](https://github.com/plataformatec/devise/)
|
41
|
+
* [cancancan](https://github.com/CanCanCommunity/cancancan/)
|
42
|
+
* [bootstrap](https://github.com/twbs/bootstrap-sass)
|
43
|
+
* [font-awesome](https://github.com/FortAwesome/font-awesome-sass)
|
44
|
+
* [datatables](http://datatables.net/)
|
43
45
|
|
44
46
|
Refer to [wiki pages](https://github.com/vicvega/chaltron/wiki) for further instructions
|
47
|
+
|
48
|
+
## Contributing
|
49
|
+
|
50
|
+
1. Fork it
|
51
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
52
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
53
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
54
|
+
5. Create new Pull Request
|
data/Rakefile
CHANGED
@@ -16,16 +16,13 @@ class DataTableBuilder
|
|
16
16
|
@initTable(container: div, params: {
|
17
17
|
paging: false
|
18
18
|
# default sorting: username (2nd column) asc
|
19
|
-
|
20
|
-
|
21
|
-
{
|
19
|
+
order: [[1,'asc']]
|
20
|
+
columnDefs: [
|
21
|
+
{ orderable: false, className: 'select-checkbox', targets: 0 }
|
22
22
|
]
|
23
23
|
dom: 'T<"clear">lfrtip'
|
24
|
-
|
25
|
-
|
26
|
-
aButtons: [ ]
|
27
|
-
}}
|
28
|
-
)
|
24
|
+
select: { style: 'multi', info: false }
|
25
|
+
})
|
29
26
|
|
30
27
|
# logs
|
31
28
|
div = $('table#logs')
|
@@ -34,9 +31,9 @@ class DataTableBuilder
|
|
34
31
|
serverSide: true
|
35
32
|
ajax: div.data('source')
|
36
33
|
# default sorting: date (2nd column) desc
|
37
|
-
|
38
|
-
|
39
|
-
{
|
34
|
+
order: [[1,'desc']]
|
35
|
+
columnDefs: [
|
36
|
+
{ orderSequence: ['desc', 'asc'], targets: [ 1 ] }
|
40
37
|
]
|
41
38
|
})
|
42
39
|
|
@@ -71,10 +68,10 @@ $.fn.dataTable.moment('DD MMM HH:mm')
|
|
71
68
|
|
72
69
|
$ ->
|
73
70
|
$('form#ldap_create').on 'submit', (e) ->
|
74
|
-
table = TableTools.fnGetMasters()[0]
|
75
|
-
data = table.fnGetSelectedData()
|
76
71
|
|
77
|
-
|
72
|
+
count = $('table#ldap_create').DataTable().rows( { selected: true } ).count()
|
73
|
+
|
74
|
+
if count == 0
|
78
75
|
message = Chaltron.locales('error_message')
|
79
76
|
label = Chaltron.locales('error_label')
|
80
77
|
|
@@ -92,10 +89,10 @@ $ ->
|
|
92
89
|
|
93
90
|
e.preventDefault()
|
94
91
|
|
95
|
-
for
|
92
|
+
for i in [0..count-1]
|
96
93
|
$('<input/>', {
|
97
94
|
name: 'uids[]',
|
98
95
|
type: 'hidden',
|
99
96
|
multiple: 'multiple',
|
100
|
-
value:
|
97
|
+
value: $('table#ldap_create').DataTable().rows( { selected: true } ).data()[i][1]
|
101
98
|
}).appendTo(@)
|
@@ -0,0 +1,106 @@
|
|
1
|
+
class DataTableBuilder
|
2
|
+
constructor: ->
|
3
|
+
@defaultOptions = {
|
4
|
+
destroy: true
|
5
|
+
autoWidth: false
|
6
|
+
responsive: true
|
7
|
+
stateSave: true
|
8
|
+
}
|
9
|
+
|
10
|
+
go: ->
|
11
|
+
# users
|
12
|
+
div = $('table#users')
|
13
|
+
@initTable(container: div)
|
14
|
+
# ldap create
|
15
|
+
div = $('table#ldap_create')
|
16
|
+
@initTable(container: div, params: {
|
17
|
+
paging: false
|
18
|
+
# default sorting: username (2nd column) asc
|
19
|
+
order: [[1,'asc']]
|
20
|
+
columnDefs: [
|
21
|
+
{ orderable: false, className: 'select-checkbox', targets: 0 }
|
22
|
+
]
|
23
|
+
dom: 'T<"clear">lfrtip'
|
24
|
+
select: { style: 'multi', info: false }
|
25
|
+
})
|
26
|
+
|
27
|
+
# logs
|
28
|
+
div = $('table#logs')
|
29
|
+
@initTable(container: div, params: {
|
30
|
+
processing: true
|
31
|
+
serverSide: true
|
32
|
+
ajax: div.data('source')
|
33
|
+
# default sorting: date (2nd column) desc
|
34
|
+
order: [[1,'desc']]
|
35
|
+
columnDefs: [
|
36
|
+
{ orderSequence: ['desc', 'asc'], targets: [ 1 ] }
|
37
|
+
]
|
38
|
+
})
|
39
|
+
|
40
|
+
# datatable class
|
41
|
+
div = $('table.datatable')
|
42
|
+
@initTable(container: div)
|
43
|
+
|
44
|
+
# datatable class (server side processing)
|
45
|
+
div = $('table[remote=true].datatable')
|
46
|
+
@initTable(container: div, params: {
|
47
|
+
processing: true
|
48
|
+
serverSide: true
|
49
|
+
ajax: div.data('source')
|
50
|
+
})
|
51
|
+
|
52
|
+
initTable: ({container, params} = {}) ->
|
53
|
+
if container.length > 0
|
54
|
+
params ?= {}
|
55
|
+
# add custom params if any
|
56
|
+
settings = $.extend({}, @defaultOptions, params)
|
57
|
+
# add language
|
58
|
+
settings = $.extend({}, settings, {language: Chaltron.locales('datatable')})
|
59
|
+
|
60
|
+
container.DataTable(settings)
|
61
|
+
|
62
|
+
$(document).on 'page:change', ->
|
63
|
+
table = new DataTableBuilder
|
64
|
+
table.go()
|
65
|
+
|
66
|
+
# specify date format (for sorting)
|
67
|
+
$.fn.dataTable.moment('DD MMM HH:mm')
|
68
|
+
|
69
|
+
$ ->
|
70
|
+
$('form#ldap_create').on 'submit', (e) ->
|
71
|
+
|
72
|
+
count = $('table#ldap_create').DataTable().rows( { selected: true } ).count()
|
73
|
+
|
74
|
+
|
75
|
+
console.log("----------------------------------- " + count)
|
76
|
+
|
77
|
+
if count == 0
|
78
|
+
message = Chaltron.locales('error_message')
|
79
|
+
label = Chaltron.locales('error_label')
|
80
|
+
|
81
|
+
flash = $("div.alert-warning:contains('#{message}')")
|
82
|
+
if flash.length == 0
|
83
|
+
# display warning flash message
|
84
|
+
flash = $("<div><strong>#{label}</strong>: #{message}</div>").addClass('alert alert-warning')
|
85
|
+
$('.flash-container').append(flash)
|
86
|
+
else
|
87
|
+
flash.show()
|
88
|
+
# closable
|
89
|
+
flash.click -> $(@).fadeOut()
|
90
|
+
# self disappearing
|
91
|
+
setTimeout (-> flash.fadeOut()), 5000
|
92
|
+
|
93
|
+
e.preventDefault()
|
94
|
+
|
95
|
+
for i in [0..count-1]
|
96
|
+
|
97
|
+
console.log("------CICLO FOR----------------------------- " + i)
|
98
|
+
console.log("------CICLO FOR----------------------------- " + $('table#ldap_create').DataTable().rows( { selected: true } ).data()[i][1])
|
99
|
+
|
100
|
+
|
101
|
+
$('<input/>', {
|
102
|
+
name: 'uids[]',
|
103
|
+
type: 'hidden',
|
104
|
+
multiple: 'multiple',
|
105
|
+
value: $('table#ldap_create').DataTable().rows( { selected: true } ).data()[i][1]
|
106
|
+
}).appendTo(@)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
//= require bootstrap-sprockets
|
2
|
-
//= require dataTables/jquery.dataTables
|
3
|
-
//= require dataTables/
|
4
|
-
//= require dataTables/extras/dataTables.responsive
|
5
|
-
//= require dataTables/extras/dataTables.
|
2
|
+
//= require dataTables/jquery.dataTables.min
|
3
|
+
//= require dataTables/dataTables.bootstrap.min
|
4
|
+
//= require dataTables/extras/dataTables.responsive.min
|
5
|
+
//= require dataTables/extras/dataTables.select.min
|
6
6
|
//= require nprogress
|
7
7
|
//= require nprogress-turbolinks
|
8
8
|
//= require nprogress-ajax
|
@@ -0,0 +1,13 @@
|
|
1
|
+
//= require bootstrap-sprockets
|
2
|
+
//= require dataTables/jquery.dataTables
|
3
|
+
//= require dataTables/dataTables.bootstrap
|
4
|
+
//= require dataTables/extras/dataTables.responsive
|
5
|
+
//= require dataTables/extras/dataTables.select
|
6
|
+
//= require nprogress
|
7
|
+
//= require nprogress-turbolinks
|
8
|
+
//= require nprogress-ajax
|
9
|
+
//= require moment
|
10
|
+
//= require moment/it.js
|
11
|
+
//= require datetime-moment
|
12
|
+
|
13
|
+
//= require_tree ./chaltron
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/*!
|
2
|
+
DataTables Bootstrap 3 integration
|
3
|
+
©2011-2014 SpryMedia Ltd - datatables.net/license
|
4
|
+
*/
|
5
|
+
(function(l,q){var d=function(b,c){b.extend(!0,c.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(c.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm"});c.ext.renderer.pageButton.bootstrap=function(g,d,r,s,i,m){var t=new c.Api(g),u=g.oClasses,j=g.oLanguage.oPaginate,e,f,n=0,p=function(c,d){var k,h,o,a,l=function(a){a.preventDefault();
|
6
|
+
b(a.currentTarget).hasClass("disabled")||t.page(a.data.action).draw("page")};k=0;for(h=d.length;k<h;k++)if(a=d[k],b.isArray(a))p(c,a);else{f=e="";switch(a){case "ellipsis":e="…";f="disabled";break;case "first":e=j.sFirst;f=a+(0<i?"":" disabled");break;case "previous":e=j.sPrevious;f=a+(0<i?"":" disabled");break;case "next":e=j.sNext;f=a+(i<m-1?"":" disabled");break;case "last":e=j.sLast;f=a+(i<m-1?"":" disabled");break;default:e=a+1,f=i===a?"active":""}e&&(o=b("<li>",{"class":u.sPageButton+
|
7
|
+
" "+f,id:0===r&&"string"===typeof a?g.sTableId+"_"+a:null}).append(b("<a>",{href:"#","aria-controls":g.sTableId,"data-dt-idx":n,tabindex:g.iTabIndex}).html(e)).appendTo(c),g.oApi._fnBindAction(o,{action:a},l),n++)}},h;try{h=b(d).find(q.activeElement).data("dt-idx")}catch(l){}p(b(d).empty().html('<ul class="pagination"/>').children("ul"),s);h&&b(d).find("[data-dt-idx="+h+"]").focus()};c.TableTools&&(b.extend(!0,c.TableTools.classes,{container:"DTTT btn-group",buttons:{normal:"btn btn-default",disabled:"disabled"},
|
8
|
+
collection:{container:"DTTT_dropdown dropdown-menu",buttons:{normal:"",disabled:"disabled"}},print:{info:"DTTT_print_info"},select:{row:"active"}}),b.extend(!0,c.TableTools.DEFAULTS.oTags,{collection:{container:"ul",button:"li",liner:"a"}}))};"function"===typeof define&&define.amd?define(["jquery","datatables"],d):"object"===typeof exports?d(require("jquery"),require("datatables")):jQuery&&d(jQuery,jQuery.fn.dataTable)})(window,document);
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/*!
|
2
|
+
Responsive 1.0.7
|
3
|
+
2014-2015 SpryMedia Ltd - datatables.net/license
|
4
|
+
*/
|
5
|
+
(function(n,p){var o=function(e,k){var h=function(d,a){if(!k.versionCheck||!k.versionCheck("1.10.1"))throw"DataTables Responsive requires DataTables 1.10.1 or newer";this.s={dt:new k.Api(d),columns:[]};this.s.dt.settings()[0].responsive||(a&&"string"===typeof a.details&&(a.details={type:a.details}),this.c=e.extend(!0,{},h.defaults,k.defaults.responsive,a),d.responsive=this,this._constructor())};h.prototype={_constructor:function(){var d=this,a=this.s.dt;a.settings()[0]._responsive=this;e(n).on("resize.dtr orientationchange.dtr",
|
6
|
+
a.settings()[0].oApi._fnThrottle(function(){d._resize()}));a.on("destroy.dtr",function(){e(n).off("resize.dtr orientationchange.dtr draw.dtr")});this.c.breakpoints.sort(function(a,c){return a.width<c.width?1:a.width>c.width?-1:0});this._classLogic();this._resizeAuto();var c=this.c.details;c.type&&(d._detailsInit(),this._detailsVis(),a.on("column-visibility.dtr",function(){d._detailsVis()}),a.on("draw.dtr",function(){a.rows({page:"current"}).iterator("row",function(b,c){var f=a.row(c);if(f.child.isShown()){var i=
|
7
|
+
d.c.details.renderer(a,c);f.child(i,"child").show()}})}),e(a.table().node()).addClass("dtr-"+c.type));this._resize()},_columnsVisiblity:function(d){var a=this.s.dt,c=this.s.columns,b,g,f=e.map(c,function(a){return a.auto&&null===a.minWidth?!1:!0===a.auto?"-":-1!==e.inArray(d,a.includeIn)}),i=0;b=0;for(g=f.length;b<g;b++)!0===f[b]&&(i+=c[b].minWidth);b=a.settings()[0].oScroll;b=b.sY||b.sX?b.iBarWidth:0;a=a.table().container().offsetWidth-b-i;b=0;for(g=f.length;b<g;b++)c[b].control&&(a-=c[b].minWidth);
|
8
|
+
i=!1;b=0;for(g=f.length;b<g;b++)"-"===f[b]&&!c[b].control&&(i||0>a-c[b].minWidth?(i=!0,f[b]=!1):f[b]=!0,a-=c[b].minWidth);a=!1;b=0;for(g=c.length;b<g;b++)if(!c[b].control&&!c[b].never&&!f[b]){a=!0;break}b=0;for(g=c.length;b<g;b++)c[b].control&&(f[b]=a);-1===e.inArray(!0,f)&&(f[0]=!0);return f},_classLogic:function(){var d=this,a=this.c.breakpoints,c=this.s.dt.columns().eq(0).map(function(a){a=this.column(a).header().className;return{className:a,includeIn:[],auto:!1,control:!1,never:a.match(/\bnever\b/)?
|
9
|
+
!0:!1}}),b=function(a,b){var d=c[a].includeIn;-1===e.inArray(b,d)&&d.push(b)},g=function(f,g,e,j){if(e)if("max-"===e){j=d._find(g).width;g=0;for(e=a.length;g<e;g++)a[g].width<=j&&b(f,a[g].name)}else if("min-"===e){j=d._find(g).width;g=0;for(e=a.length;g<e;g++)a[g].width>=j&&b(f,a[g].name)}else{if("not-"===e){g=0;for(e=a.length;g<e;g++)-1===a[g].name.indexOf(j)&&b(f,a[g].name)}}else c[f].includeIn.push(g)};c.each(function(b,c){for(var d=b.className.split(" "),j=!1,h=0,k=d.length;h<k;h++){var l=e.trim(d[h]);
|
10
|
+
if("all"===l){j=!0;b.includeIn=e.map(a,function(a){return a.name});return}if("none"===l||"never"===l){j=!0;return}if("control"===l){j=!0;b.control=!0;return}e.each(a,function(a,b){var d=b.name.split("-"),e=l.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));e&&(j=!0,e[2]===d[0]&&e[3]==="-"+d[1]?g(c,b.name,e[1],e[2]+e[3]):e[2]===d[0]&&!e[3]&&g(c,b.name,e[1],e[2]))})}j||(b.auto=!0)});this.s.columns=c},_detailsInit:function(){var d=this,a=this.s.dt,c=this.c.details;"inline"===c.type&&
|
11
|
+
(c.target="td:first-child");var b=c.target;e(a.table().body()).on("click","string"===typeof b?b:"td",function(){if(e(a.table().node()).hasClass("collapsed")&&a.row(e(this).closest("tr")).length){if(typeof b==="number"){var c=b<0?a.columns().eq(0).length+b:b;if(a.cell(this).index().column!==c)return}c=a.row(e(this).closest("tr"));if(c.child.isShown()){c.child(false);e(c.node()).removeClass("parent")}else{var f=d.c.details.renderer(a,c[0]);c.child(f,"child").show();e(c.node()).addClass("parent")}}})},
|
12
|
+
_detailsVis:function(){var d=this,a=this.s.dt,c=a.columns().indexes().filter(function(b){var c=a.column(b);return c.visible()?null:e(c.header()).hasClass("never")?null:b}),b=!0;if(0===c.length||1===c.length&&this.s.columns[c[0]].control)b=!1;b?a.rows({page:"current"}).eq(0).each(function(b){b=a.row(b);if(b.child()){var c=d.c.details.renderer(a,b[0]);!1===c?b.child.hide():b.child(c,"child").show()}}):a.rows({page:"current"}).eq(0).each(function(b){a.row(b).child.hide()})},_find:function(d){for(var a=
|
13
|
+
this.c.breakpoints,c=0,b=a.length;c<b;c++)if(a[c].name===d)return a[c]},_resize:function(){var d=this.s.dt,a=e(n).width(),c=this.c.breakpoints,b=c[0].name,g=this.s.columns,f;for(f=c.length-1;0<=f;f--)if(a<=c[f].width){b=c[f].name;break}var i=this._columnsVisiblity(b),c=!1;f=0;for(a=g.length;f<a;f++)if(!1===i[f]&&!g[f].never){c=!0;break}e(d.table().node()).toggleClass("collapsed",c);d.columns().eq(0).each(function(a,b){d.column(a).visible(i[b])})},_resizeAuto:function(){var d=this.s.dt,a=this.s.columns;
|
14
|
+
if(this.c.auto&&-1!==e.inArray(!0,e.map(a,function(a){return a.auto}))){d.table().node();var c=d.table().node().cloneNode(!1),b=e(d.table().header().cloneNode(!1)).appendTo(c),g=e(d.table().body().cloneNode(!1)).appendTo(c);e(d.table().footer()).clone(!1).appendTo(c);d.rows({page:"current"}).indexes().flatten().each(function(a){var b=d.row(a).node().cloneNode(!0);d.columns(":hidden").flatten().length&&e(b).append(d.cells(a,":hidden").nodes().to$().clone());e(b).appendTo(g)});var f=d.columns().header().to$().clone(!1);
|
15
|
+
e("<tr/>").append(f).appendTo(b);"inline"===this.c.details.type&&e(c).addClass("dtr-inline collapsed");c=e("<div/>").css({width:1,height:1,overflow:"hidden"}).append(c);c.find("th.never, td.never").remove();c.insertBefore(d.table().node());d.columns().eq(0).each(function(b){a[b].minWidth=f[b].offsetWidth||0});c.remove()}}};h.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];h.defaults={breakpoints:h.breakpoints,
|
16
|
+
auto:!0,details:{renderer:function(d,a){var c=d.cells(a,":hidden").eq(0).map(function(a){var c=e(d.column(a.column).header()),a=d.cell(a).index();if(c.hasClass("control")||c.hasClass("never"))return"";var f=d.settings()[0],f=f.oApi._fnGetCellData(f,a.row,a.column,"display");(c=c.text())&&(c+=":");return'<li data-dtr-index="'+a.column+'"><span class="dtr-title">'+c+'</span> <span class="dtr-data">'+f+"</span></li>"}).toArray().join("");return c?e('<ul data-dtr-index="'+a+'"/>').append(c):!1},target:0,
|
17
|
+
type:"inline"}};var m=e.fn.dataTable.Api;m.register("responsive()",function(){return this});m.register("responsive.index()",function(d){d=e(d);return{column:d.data("dtr-index"),row:d.parent().data("dtr-index")}});m.register("responsive.rebuild()",function(){return this.iterator("table",function(d){d._responsive&&d._responsive._classLogic()})});m.register("responsive.recalc()",function(){return this.iterator("table",function(d){d._responsive&&(d._responsive._resizeAuto(),d._responsive._resize())})});
|
18
|
+
h.version="1.0.7";e.fn.dataTable.Responsive=h;e.fn.DataTable.Responsive=h;e(p).on("init.dt.dtr",function(d,a){if("dt"===d.namespace&&(e(a.nTable).hasClass("responsive")||e(a.nTable).hasClass("dt-responsive")||a.oInit.responsive||k.defaults.responsive)){var c=a.oInit.responsive;!1!==c&&new h(a,e.isPlainObject(c)?c:{})}});return h};"function"===typeof define&&define.amd?define(["jquery","datatables"],o):"object"===typeof exports?o(require("jquery"),require("datatables")):jQuery&&!jQuery.fn.dataTable.Responsive&&
|
19
|
+
o(jQuery,jQuery.fn.dataTable)})(window,document);
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/*!
|
2
|
+
Select for DataTables 1.0.1
|
3
|
+
2015 SpryMedia Ltd - datatables.net/license/mit
|
4
|
+
*/
|
5
|
+
(function(j,u,i){j=function(e,h){function j(a){var c=a.settings()[0]._select.selector;e(a.table().body()).off("mousedown.dtSelect",c).off("mouseup.dtSelect",c).off("click.dtSelect",c);e("body").off("click.dtSelect")}function s(a){var c=e(a.table().body()),b=a.settings()[0],d=b._select.selector;c.on("mousedown.dtSelect",d,function(b){if(b.shiftKey)c.css("-moz-user-select","none").one("selectstart.dtSelect",d,function(){return!1})}).on("mouseup.dtSelect",d,function(){c.css("-moz-user-select","")}).on("click.dtSelect",
|
6
|
+
d,function(b){var d=a.select.items(),f=a.cell(this).index(),k=a.settings()[0];e(b.target).closest("tbody")[0]==c[0]&&a.cell(b.target).any()&&("row"===d?(d=f.row,r(b,a,k,"row",d)):"column"===d?(d=a.cell(b.target).index().column,r(b,a,k,"column",d)):"cell"===d&&(d=a.cell(b.target).index(),r(b,a,k,"cell",d)),k._select_lastCell=f)});e("body").on("click.dtSelect",function(c){b._select.blurable&&!e(c.target).parents().filter(a.table().container()).length&&(e(c.target).parents("div.DTE").length||o(b,!0))})}
|
7
|
+
function l(a,c,b,d){if(!d||a.flatten().length)b.unshift(a),e(a.table().node()).triggerHandler(c+".dt",b)}function t(a){var c=a.settings()[0];if(c._select.info&&c.aanFeatures.i){var b=e('<span class="select-info"/>'),d=function(c,d){b.append(e('<span class="select-item"/>').append(a.i18n("select."+c+"s",{_:"%d "+c+"s selected","0":"",1:"1 "+c+" selected"},d)))};d("row",a.rows({selected:!0}).flatten().length);d("column",a.columns({selected:!0}).flatten().length);d("cell",a.cells({selected:!0}).flatten().length);
|
8
|
+
e.each(c.aanFeatures.i,function(c,a){var a=e(a),d=a.children("span.select-info");d.length&&d.remove();""!==b.text()&&a.append(b)})}}function o(a,c){if(c||"single"===a._select.style){var b=new h.Api(a);b.rows({selected:!0}).deselect();b.columns({selected:!0}).deselect();b.cells({selected:!0}).deselect()}}function r(a,c,b,d,g){var q=c.select.style(),f=c[d](g,{selected:!0}).any();"os"===q?a.ctrlKey||a.metaKey?c[d](g).select(!f):a.shiftKey?"cell"===d?(d=b._select_lastCell||null,f=function(b,a){if(b>a)var d=
|
9
|
+
a,a=b,b=d;var f=!1;return c.columns(":visible").indexes().filter(function(c){c===b&&(f=!0);return c===a?(f=!1,!0):f})},a=function(b,a){var d=c.rows({search:"applied"}).indexes();if(d.indexOf(b)>d.indexOf(a))var f=a,a=b,b=f;var g=!1;return d.filter(function(c){c===b&&(g=!0);return c===a?(g=!1,!0):g})},!c.cells({selected:!0}).any()&&!d?(f=f(0,g.column),d=a(0,g.row)):(f=f(d.column,g.column),d=a(d.row,g.row)),d=c.cells(d,f).flatten(),c.cells(g,{selected:!0}).any()?c.cells(d).deselect():c.cells(d).select()):
|
10
|
+
(a=b._select_lastCell?b._select_lastCell[d]:null,f=c[d+"s"]({search:"applied"}).indexes(),a=e.inArray(a,f),b=e.inArray(g,f),!c[d+"s"]({selected:!0}).any()&&-1===a?f.splice(e.inArray(g,f)+1,f.length):(a>b&&(q=b,b=a,a=q),f.splice(b+1,f.length),f.splice(0,a)),c[d](g,{selected:!0}).any())?(f.splice(e.inArray(g,f),1),c[d+"s"](f).deselect()):c[d+"s"](f).select():(a=c[d+"s"]({selected:!0}),f&&1===a.flatten().length?c[d](g).deselect():(a.deselect(),c[d](g).select())):c[d](g).select(!f)}function p(a,c){return function(b){return b.i18n("buttons."+
|
11
|
+
a,c)}}h.select={};h.select.version="1.0.1";e.each([{type:"row",prop:"aoData"},{type:"column",prop:"aoColumns"}],function(a,c){h.ext.selector[c.type].push(function(b,a,g){var a=a.selected,e,f=[];if(a===i)return g;for(var k=0,h=g.length;k<h;k++)e=b[c.prop][g[k]],(!0===a&&!0===e._select_selected||!1===a&&!e._select_selected)&&f.push(g[k]);return f})});h.ext.selector.cell.push(function(a,c,b){var c=c.selected,d,g=[];if(c===i)return b;for(var e=0,f=b.length;e<f;e++)d=a.aoData[b[e].row],(!0===c&&d._selected_cells&&
|
12
|
+
!0===d._selected_cells[b[e].column]||!1===c&&(!d._selected_cells||!d._selected_cells[b[e].column]))&&g.push(b[e]);return g});var m=h.Api.register,n=h.Api.registerPlural;m("select()",function(){});m("select.blurable()",function(a){return a===i?this.context[0]._select.blurable:this.iterator("table",function(c){c._select.blurable=a})});m("select.info()",function(a){return t===i?this.context[0]._select.info:this.iterator("table",function(c){c._select.info=a})});m("select.items()",function(a){return a===
|
13
|
+
i?this.context[0]._select.items:this.iterator("table",function(c){c._select.items=a;l(new h.Api(c),"selectItems",[a])})});m("select.style()",function(a){return a===i?this.context[0]._select.style:this.iterator("table",function(c){c._select.style=a;if(!c._select_init){var b=new h.Api(c);c.aoRowCreatedCallback.push({fn:function(b,a,d){a=c.aoData[d];a._select_selected&&e(b).addClass("selected");b=0;for(d=c.aoColumns.length;b<d;b++)(c.aoColumns[b]._select_selected||a._selected_cells&&a._selected_cells[b])&&
|
14
|
+
e(a.anCells[b]).addClass("selected")},sName:"select-deferRender"});b.on("preXhr.dt.dtSelect",function(){var a=b.rows({selected:!0}).ids(!0).filter(function(b){return b!==i}),c=b.cells({selected:!0}).eq(0).map(function(c){var a=b.row(c.row).id(!0);return a?{row:a,column:c.column}:i}).filter(function(b){return b!==i});b.one("draw.dt.dtSelect",function(){b.rows(a).select();c.any()&&c.each(function(c){b.cells(c.row,c.column).select()})})});b.on("draw.dtSelect.dt select.dtSelect.dt deselect.dtSelect.dt",
|
15
|
+
function(){t(b)});b.on("destroy.dtSelect",function(){j(b);b.off(".dtSelect")})}var d=new h.Api(c);j(d);"api"!==a&&s(d);l(new h.Api(c),"selectStyle",[a])})});m("select.selector()",function(a){return a===i?this.context[0]._select.selector:this.iterator("table",function(c){j(new h.Api(c));c._select.selector=a;"api"!==c._select.style&&s(new h.Api(c))})});n("rows().select()","row().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("row",function(b,c){o(b);b.aoData[c]._select_selected=
|
16
|
+
!0;e(b.aoData[c].nTr).addClass("selected")});this.iterator("table",function(b,a){l(c,"select",["row",c[a]],!0)});return this});n("columns().select()","column().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("column",function(b,c){o(b);b.aoColumns[c]._select_selected=!0;var a=(new h.Api(b)).column(c);e(a.header()).addClass("selected");e(a.footer()).addClass("selected");a.nodes().to$().addClass("selected")});this.iterator("table",function(b,a){l(c,"select",["column",
|
17
|
+
c[a]],!0)});return this});n("cells().select()","cell().select()",function(a){var c=this;if(!1===a)return this.deselect();this.iterator("cell",function(b,c,a){o(b);b=b.aoData[c];b._selected_cells===i&&(b._selected_cells=[]);b._selected_cells[a]=!0;b.anCells&&e(b.anCells[a]).addClass("selected")});this.iterator("table",function(b,a){l(c,"select",["cell",c[a]],!0)});return this});n("rows().deselect()","row().deselect()",function(){var a=this;this.iterator("row",function(a,b){a.aoData[b]._select_selected=
|
18
|
+
!1;e(a.aoData[b].nTr).removeClass("selected")});this.iterator("table",function(c,b){l(a,"deselect",["row",a[b]],!0)});return this});n("columns().deselect()","column().deselect()",function(){var a=this;this.iterator("column",function(a,b){a.aoColumns[b]._select_selected=!1;var d=new h.Api(a),g=d.column(b);e(g.header()).removeClass("selected");e(g.footer()).removeClass("selected");d.cells(null,b).indexes().each(function(b){var d=a.aoData[b.row],g=d._selected_cells;d.anCells&&(!g||!g[b.column])&&e(d.anCells[b.column]).removeClass("selected")})});
|
19
|
+
this.iterator("table",function(c,b){l(a,"deselect",["column",a[b]],!0)});return this});n("cells().deselect()","cell().deselect()",function(){var a=this;this.iterator("cell",function(a,b,d){b=a.aoData[b];b._selected_cells[d]=!1;b.anCells&&!a.aoColumns[d]._select_selected&&e(b.anCells[d]).removeClass("selected")});this.iterator("table",function(c,b){l(a,"deselect",["cell",a[b]],!0)});return this});e.extend(h.ext.buttons,{selected:{text:p("selected","Selected"),className:"buttons-selected",init:function(a){var c=
|
20
|
+
this;a.on("draw.dt.DT select.dt.DT deselect.dt.DT",function(){var a=c.rows({selected:!0}).any()||c.columns({selected:!0}).any()||c.cells({selected:!0}).any();c.enable(a)});this.disable()}},selectedSingle:{text:p("selectedSingle","Selected single"),className:"buttons-selected-single",init:function(a){var c=this;a.on("draw.dt.DT select.dt.DT deselect.dt.DT",function(){var b=a.rows({selected:!0}).flatten().length+a.columns({selected:!0}).flatten().length+a.cells({selected:!0}).flatten().length;c.enable(1===
|
21
|
+
b)});this.disable()}},selectAll:{text:p("selectAll","Select all"),className:"buttons-select-all",action:function(){this[this.select.items()+"s"]().select()}},selectNone:{text:p("selectNone","Deselect all"),className:"buttons-select-none",action:function(){o(this.settings()[0],!0)}}});e.each(["Row","Column","Cell"],function(a,c){var b=c.toLowerCase();h.ext.buttons["select"+c+"s"]={text:p("select"+c+"s","Select "+b+"s"),className:"buttons-select-"+b+"s",action:function(){this.select.items(b)},init:function(a){var c=
|
22
|
+
this;a.on("selectItems.dt.DT",function(a,d,e){c.active(e===b)})}}});e(u).on("init.dt.dtSelect",function(a,c){if("dt"===a.namespace){var b=c.oInit.select||h.defaults.select,d=new h.Api(c),g="row",j="api",f=!1,k=!0,l="td, th";c._select={};if(!0===b)j="os";else if("string"===typeof b)j=b;else if(e.isPlainObject(b)&&(b.blurable!==i&&(f=b.blurable),b.info!==i&&(k=b.info),b.items!==i&&(g=b.items),b.style!==i&&(j=b.style),b.selector!==i))l=b.selector;d.select.selector(l);d.select.items(g);d.select.style(j);
|
23
|
+
d.select.blurable(f);d.select.info(k);e(d.table().node()).hasClass("selectable")&&d.select.style("os")}})};"function"===typeof define&&define.amd?define(["jquery","datatables"],j):"object"===typeof exports?j(require("jquery"),require("datatables")):jQuery&&!jQuery.fn.dataTable.select&&j(jQuery,jQuery.fn.dataTable)})(window,document);
|