chaltron 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +22 -12
  3. data/Rakefile +3 -0
  4. data/app/assets/javascripts/chaltron/datatables.js.coffee +13 -16
  5. data/app/assets/javascripts/chaltron/datatables.js.coffee~ +106 -0
  6. data/app/assets/javascripts/chaltron.js +4 -4
  7. data/app/assets/javascripts/chaltron.js~ +13 -0
  8. data/app/assets/javascripts/dataTables/dataTables.bootstrap.min.js +8 -0
  9. data/app/assets/javascripts/dataTables/extras/dataTables.responsive.min.js +19 -0
  10. data/app/assets/javascripts/dataTables/extras/dataTables.select.min.js +23 -0
  11. data/app/assets/javascripts/dataTables/jquery.dataTables.min.js +163 -0
  12. data/app/assets/stylesheets/chaltron.scss +4 -4
  13. data/app/assets/stylesheets/dataTables/dataTables.bootstrap.css +167 -0
  14. data/app/assets/stylesheets/dataTables/extras/responsive.bootstrap.css +106 -0
  15. data/app/assets/stylesheets/dataTables/extras/select.dataTables.css +100 -0
  16. data/app/helpers/chaltron/ldap_helper.rb +3 -3
  17. data/app/helpers/chaltron_helper.rb +15 -0
  18. data/config/locales/en.yml +1 -0
  19. data/config/locales/it.yml +1 -0
  20. data/lib/chaltron/engine.rb +0 -1
  21. data/lib/chaltron/ldap/person.rb +1 -1
  22. data/lib/chaltron/version.rb +1 -1
  23. data/lib/generators/chaltron/templates/app/views/layouts/_footer.html.erb +10 -0
  24. data/lib/generators/chaltron/templates/app/views/layouts/application.html.erb +1 -0
  25. data/lib/templates/erb/scaffold/index.html.erb +1 -16
  26. data/lib/templates/erb/scaffold/index.html.erb~ +28 -0
  27. metadata +13 -31
  28. data/app/assets/stylesheets/chaltron/datatables.scss +0 -14
  29. data/app/assets/stylesheets/chaltron/layout.scss~ +0 -68
  30. data/app/controllers/chaltron/omniauth_callbacks_controller.rb~ +0 -34
  31. data/app/controllers/chaltron/users_controller.rb~ +0 -94
  32. data/app/models/user.rb~ +0 -28
  33. data/app/views/chaltron/users/index.html.erb~ +0 -48
  34. data/app/views/devise/sessions/_new_ldap.html.erb~ +0 -31
  35. data/app/views/devise/sessions/_new_local.html.erb~ +0 -20
  36. data/app/views/locales/en.yml~ +0 -91
  37. data/app/views/locales/it.yml~ +0 -91
  38. data/config/initializers/devise.rb~ +0 -256
  39. data/lib/chaltron/controllers/helpers.rb~ +0 -61
  40. data/lib/chaltron/engine.rb~ +0 -47
  41. data/lib/chaltron/ldap/user.rb~ +0 -88
  42. data/lib/chaltron/version.rb~ +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9930da7720c0e4d19aeca6675e60a013d323e421
4
- data.tar.gz: fd940fbb766e2a37932a1ac5fc6b4a641d91e508
3
+ metadata.gz: 04a26003fe77f074bc5338438162de022181977c
4
+ data.tar.gz: 5cd76996bc7515911ae75c2eb4a2a0e18eacc365
5
5
  SHA512:
6
- metadata.gz: d0bc22a40c751d9eeca5ffd89cafd22cf5aebe730b5d8063250e2ffbfcdd2dd53f203915f5e2b64d17dd1459cb4894824a39516ff25d41b2854586e8570529cc
7
- data.tar.gz: 0bc5262f0db91a51303c6b179dd316e8d1fb4704cc0f47dc2f9c2b18f528b004c2ce427db284a0283533493f62cd0d79d9cc77f677f4b28f034c8eeb61242053
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
- Login with local user `bella` and `password.1`
38
+ Chaltron is powered by
41
39
 
42
- Enjoy!
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
@@ -19,6 +19,9 @@ load 'rails/tasks/engine.rake'
19
19
 
20
20
  require 'rake/clean'
21
21
 
22
+
23
+ load 'rails/tasks/statistics.rake'
24
+
22
25
  Bundler::GemHelper.install_tasks
23
26
 
24
27
  Dir[File.join(File.dirname(__FILE__), 'tasks/**/*.rake')].each { |f| load f }
@@ -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
- aaSorting: [[1,'asc']]
20
- aoColumnDefs: [
21
- { bSortable: false, aTargets: [ 0 ] }
19
+ order: [[1,'asc']]
20
+ columnDefs: [
21
+ { orderable: false, className: 'select-checkbox', targets: 0 }
22
22
  ]
23
23
  dom: 'T<"clear">lfrtip'
24
- tableTools: {
25
- sRowSelect: 'multi'
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
- aaSorting: [[1,'desc']]
38
- aoColumnDefs: [
39
- { asSorting: ['desc', 'asc'], aTargets: [ 1 ] }
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
- if data.length == 0
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 d in data
92
+ for i in [0..count-1]
96
93
  $('<input/>', {
97
94
  name: 'uids[]',
98
95
  type: 'hidden',
99
96
  multiple: 'multiple',
100
- value: d[1]
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/bootstrap/3/jquery.dataTables.bootstrap
4
- //= require dataTables/extras/dataTables.responsive
5
- //= require dataTables/extras/dataTables.tableTools
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="&hellip;";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);