├── LICENSE ├── README.md ├── assets ├── js │ └── massActions.js └── plugins │ └── bootstrap-datepicker │ ├── css │ ├── bootstrap-datepicker.css │ ├── bootstrap-datepicker.min.css │ ├── bootstrap-datepicker.standalone.css │ ├── bootstrap-datepicker.standalone.min.css │ ├── bootstrap-datepicker3.css │ ├── bootstrap-datepicker3.min.css │ ├── bootstrap-datepicker3.standalone.css │ └── bootstrap-datepicker3.standalone.min.css │ ├── js │ ├── bootstrap-datepicker.js │ └── bootstrap-datepicker.min.js │ └── locales │ ├── bootstrap-datepicker.ar.min.js │ ├── bootstrap-datepicker.az.min.js │ ├── bootstrap-datepicker.bg.min.js │ ├── bootstrap-datepicker.bs.min.js │ ├── bootstrap-datepicker.ca.min.js │ ├── bootstrap-datepicker.cs.min.js │ ├── bootstrap-datepicker.cy.min.js │ ├── bootstrap-datepicker.da.min.js │ ├── bootstrap-datepicker.de.min.js │ ├── bootstrap-datepicker.el.min.js │ ├── bootstrap-datepicker.en-GB.min.js │ ├── bootstrap-datepicker.es.min.js │ ├── bootstrap-datepicker.et.min.js │ ├── bootstrap-datepicker.eu.min.js │ ├── bootstrap-datepicker.fa.min.js │ ├── bootstrap-datepicker.fi.min.js │ ├── bootstrap-datepicker.fo.min.js │ ├── bootstrap-datepicker.fr-CH.min.js │ ├── bootstrap-datepicker.fr.min.js │ ├── bootstrap-datepicker.gl.min.js │ ├── bootstrap-datepicker.he.min.js │ ├── bootstrap-datepicker.hr.min.js │ ├── bootstrap-datepicker.hu.min.js │ ├── bootstrap-datepicker.hy.min.js │ ├── bootstrap-datepicker.id.min.js │ ├── bootstrap-datepicker.is.min.js │ ├── bootstrap-datepicker.it-CH.min.js │ ├── bootstrap-datepicker.it.min.js │ ├── bootstrap-datepicker.ja.min.js │ ├── bootstrap-datepicker.ka.min.js │ ├── bootstrap-datepicker.kh.min.js │ ├── bootstrap-datepicker.kk.min.js │ ├── bootstrap-datepicker.kr.min.js │ ├── bootstrap-datepicker.lt.min.js │ ├── bootstrap-datepicker.lv.min.js │ ├── bootstrap-datepicker.me.min.js │ ├── bootstrap-datepicker.mk.min.js │ ├── bootstrap-datepicker.ms.min.js │ ├── bootstrap-datepicker.nb.min.js │ ├── bootstrap-datepicker.nl-BE.min.js │ ├── bootstrap-datepicker.nl.min.js │ ├── bootstrap-datepicker.no.min.js │ ├── bootstrap-datepicker.pl.min.js │ ├── bootstrap-datepicker.pt-BR.min.js │ ├── bootstrap-datepicker.pt.min.js │ ├── bootstrap-datepicker.ro.min.js │ ├── bootstrap-datepicker.rs-latin.min.js │ ├── bootstrap-datepicker.rs.min.js │ ├── bootstrap-datepicker.ru.min.js │ ├── bootstrap-datepicker.sk.min.js │ ├── bootstrap-datepicker.sl.min.js │ ├── bootstrap-datepicker.sq.min.js │ ├── bootstrap-datepicker.sr-latin.min.js │ ├── bootstrap-datepicker.sr.min.js │ ├── bootstrap-datepicker.sv.min.js │ ├── bootstrap-datepicker.sw.min.js │ ├── bootstrap-datepicker.th.min.js │ ├── bootstrap-datepicker.tr.min.js │ ├── bootstrap-datepicker.uk.min.js │ ├── bootstrap-datepicker.vi.min.js │ ├── bootstrap-datepicker.zh-CN.min.js │ └── bootstrap-datepicker.zh-TW.min.js ├── composer.json ├── resources ├── lang │ ├── en │ │ └── grids.php │ └── fr │ │ └── grids.php └── views │ ├── assets │ ├── head.blade.php │ ├── scripts.blade.php │ └── styles.blade.php │ ├── fields │ ├── boolean.blade.php │ ├── date.blade.php │ ├── manyRelation.blade.php │ ├── oneRelation.blade.php │ └── text.blade.php │ ├── filters.blade.php │ ├── pagination.blade.php │ ├── paginationInfos.blade.php │ └── table.blade.php └── src ├── Action.php ├── ActionsCollection.php ├── Components ├── Collection.php └── Iterator.php ├── Exceptions ├── FieldFilterableMustBeBooleanException.php ├── FieldLabelMustBeStringException.php ├── FieldNameMustBeStringException.php ├── FieldSortableMustBeBooleanException.php ├── PaginationMustBeIntegerException.php └── SortableIsDisableOnRelationsException.php ├── Field.php ├── Fields ├── Boolean.php ├── Custom.php ├── Date.php ├── Field.php ├── ManyRelation.php ├── OneRelation.php └── Text.php ├── FieldsCollection.php ├── Grids.php ├── GridsFacade.php ├── GridsServiceProvider.php ├── GridsShortcuts.php ├── MassAction.php └── SingleAction.php /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 DUMONT Kévin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Grids 2 | 3 | Grids is a datagrid widget for laravel 5. It easily generate datatables from your entities. 4 | The generated HTML use Twitter Bootstrap, but you can override templates. 5 | 6 | ## Comming soon 7 | 8 | - A demo with more examples 9 | - CSV/Exel export 10 | - Possibility to extend the plugin, and add custom fields 11 | - Styling fields 12 | - And more... 13 | 14 | ## Install 15 | 16 | First, add this in your **composer.json** 17 | 18 | ``` 19 | "require": { 20 | "sygmaa/grids": "dev-master" 21 | } 22 | ``` 23 | 24 | Then, add a new Service provider in your **config/app.php** : 25 | 26 | `'Sygmaa\Grids\GridsServiceProvider',` 27 | 28 | And for the Facade : 29 | 30 | `'Grids' => 'Sygmaa\Grids\GridsFacade',` 31 | 32 | After, if you want override views or languages, you can run this command : 33 | 34 | `php artisan vendor:publish` 35 | 36 | Then, you must add these lines in your template : 37 | ```php 38 | {!! Grids::head() !!} 39 | {!! Grids::styles() !!} 40 | {!! Grids::scripts() !!} 41 | ``` 42 | 43 | ## Simple example 44 | 45 | In your controller : 46 | 47 | ```php 48 | $grid = Grids::make(new Model()) 49 | // Pagination; 15 is the number of results to show by page 50 | ->paginate(15) 51 | // Show a reset button to clear filters (In the filter form) 52 | ->reset() 53 | // You can add a condition... 54 | ->where('field', '<', 'content') 55 | // ...Many conditions 56 | ->where('field', 'content') 57 | // Where In SQL Statement is supported 58 | ->whereIn('field', ['content1', 'content2']) 59 | // Order by SQL Statement is supported 60 | ->orderBy('field', 'ASC') 61 | // Add a new field (name, Label) 62 | ->addField(Grids::text('id', 'ID') 63 | // Define the primary key (needed) 64 | ->setPrimary() 65 | // The field will be hidden 66 | ->setVisible(false) 67 | ) 68 | // You can create a custom field with a callback 69 | ->addField(Grids::custom('custom', 'custom', function($row){ 70 | // You can access to the data of the actual row 71 | return $row->name; 72 | }) 73 | ->addField(Grids::text('name', 'Name') 74 | // An order by on this field will be available 75 | ->setSortable() 76 | // We can search keywords in an input 77 | ->setFilterable() 78 | ) 79 | // Eloquent OneToMany/OneToOne relation 80 | // entities.name -> "entities" is your association method in your model ( entities() ) 81 | // "name" is th name of the field in the associated model 82 | ->addField(Grids::oneRelation('entities.name', 'Label of entity', 'App\Models\EntityName') 83 | // You can filter the relation field 84 | ->setFilterable() 85 | ) 86 | // Eloquent ManyToMany relation 87 | // entity.name -> "entity" is your association method in your model ( entity() ), like oneRelation 88 | // "name" is th name of the field in the associated model, like oneRelation 89 | // The result is a list (separated by comas) 90 | ->addField(Grids::manyRelation('entity.name', 'Label of entity', 'App\Models\EntityName') 91 | ->setFilterable() 92 | ) 93 | // Date field 94 | ->addField(Grids::date('updated_at', 'Dernière modification', 'd/m/Y H:i:s') 95 | ->setSortable() 96 | ->setFilterable() // You will have a bootstrap calendar to select period 97 | ) 98 | // Add a mass action (For example : to delete entries) 99 | ->addAction(Grids::massAction("Delete", URL::route('model.delete'))) 100 | // Add a single action at the end of the row : you can for example return a button 101 | ->addAction(Grids::action("Edit", function($label, $row){ 102 | $url = URL::route('model.edit', ['id' => $row->id]); 103 | return ''. $label .''; 104 | })); // Add 105 | ``` 106 | 107 | And the template : 108 | 109 | ```php 110 |
111 | 112 | {!! $grid->renderFilters() !!} 113 |
114 |
115 | 130 |
131 | ``` 132 | 133 | ## License 134 | 135 | 136 | Grids in under a [MIT License](http://opensource.org/licenses/MIT). 137 | -------------------------------------------------------------------------------- /assets/js/massActions.js: -------------------------------------------------------------------------------- 1 | function check() { 2 | var f = document.getElementById('grids-form'); 3 | var s = document.getElementById('grids-massActions'); 4 | if( s.selectedIndex > 0 ) { 5 | f.setAttribute("action", s.options[1].value) ; 6 | f.setAttribute("method", "POST"); 7 | } else { 8 | f.setAttribute("method", "GET") ; 9 | f.removeAttribute("action") ; 10 | } 11 | } 12 | 13 | function toggle(source) { 14 | checkboxes = document.getElementsByName('grids-ids[]'); 15 | for(var i=0, n=checkboxes.length;i div { 76 | display: none; 77 | } 78 | .datepicker.days .datepicker-days, 79 | .datepicker.months .datepicker-months, 80 | .datepicker.years .datepicker-years { 81 | display: block; 82 | } 83 | .datepicker table { 84 | margin: 0; 85 | -webkit-touch-callout: none; 86 | -webkit-user-select: none; 87 | -khtml-user-select: none; 88 | -moz-user-select: none; 89 | -ms-user-select: none; 90 | user-select: none; 91 | } 92 | .datepicker td, 93 | .datepicker th { 94 | text-align: center; 95 | width: 20px; 96 | height: 20px; 97 | -webkit-border-radius: 4px; 98 | -moz-border-radius: 4px; 99 | border-radius: 4px; 100 | border: none; 101 | } 102 | .table-striped .datepicker table tr td, 103 | .table-striped .datepicker table tr th { 104 | background-color: transparent; 105 | } 106 | .datepicker table tr td.day:hover, 107 | .datepicker table tr td.day.focused { 108 | background: #eeeeee; 109 | cursor: pointer; 110 | } 111 | .datepicker table tr td.old, 112 | .datepicker table tr td.new { 113 | color: #999999; 114 | } 115 | .datepicker table tr td.disabled, 116 | .datepicker table tr td.disabled:hover { 117 | background: none; 118 | color: #999999; 119 | cursor: default; 120 | } 121 | .datepicker table tr td.today, 122 | .datepicker table tr td.today:hover, 123 | .datepicker table tr td.today.disabled, 124 | .datepicker table tr td.today.disabled:hover { 125 | background-color: #fde19a; 126 | background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a); 127 | background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a); 128 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); 129 | background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a); 130 | background-image: -o-linear-gradient(top, #fdd49a, #fdf59a); 131 | background-image: linear-gradient(top, #fdd49a, #fdf59a); 132 | background-repeat: repeat-x; 133 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); 134 | border-color: #fdf59a #fdf59a #fbed50; 135 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 136 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 137 | color: #000; 138 | } 139 | .datepicker table tr td.today:hover, 140 | .datepicker table tr td.today:hover:hover, 141 | .datepicker table tr td.today.disabled:hover, 142 | .datepicker table tr td.today.disabled:hover:hover, 143 | .datepicker table tr td.today:active, 144 | .datepicker table tr td.today:hover:active, 145 | .datepicker table tr td.today.disabled:active, 146 | .datepicker table tr td.today.disabled:hover:active, 147 | .datepicker table tr td.today.active, 148 | .datepicker table tr td.today:hover.active, 149 | .datepicker table tr td.today.disabled.active, 150 | .datepicker table tr td.today.disabled:hover.active, 151 | .datepicker table tr td.today.disabled, 152 | .datepicker table tr td.today:hover.disabled, 153 | .datepicker table tr td.today.disabled.disabled, 154 | .datepicker table tr td.today.disabled:hover.disabled, 155 | .datepicker table tr td.today[disabled], 156 | .datepicker table tr td.today:hover[disabled], 157 | .datepicker table tr td.today.disabled[disabled], 158 | .datepicker table tr td.today.disabled:hover[disabled] { 159 | background-color: #fdf59a; 160 | } 161 | .datepicker table tr td.today:active, 162 | .datepicker table tr td.today:hover:active, 163 | .datepicker table tr td.today.disabled:active, 164 | .datepicker table tr td.today.disabled:hover:active, 165 | .datepicker table tr td.today.active, 166 | .datepicker table tr td.today:hover.active, 167 | .datepicker table tr td.today.disabled.active, 168 | .datepicker table tr td.today.disabled:hover.active { 169 | background-color: #fbf069 \9; 170 | } 171 | .datepicker table tr td.today:hover:hover { 172 | color: #000; 173 | } 174 | .datepicker table tr td.today.active:hover { 175 | color: #fff; 176 | } 177 | .datepicker table tr td.range, 178 | .datepicker table tr td.range:hover, 179 | .datepicker table tr td.range.disabled, 180 | .datepicker table tr td.range.disabled:hover { 181 | background: #eeeeee; 182 | -webkit-border-radius: 0; 183 | -moz-border-radius: 0; 184 | border-radius: 0; 185 | } 186 | .datepicker table tr td.range.today, 187 | .datepicker table tr td.range.today:hover, 188 | .datepicker table tr td.range.today.disabled, 189 | .datepicker table tr td.range.today.disabled:hover { 190 | background-color: #f3d17a; 191 | background-image: -moz-linear-gradient(top, #f3c17a, #f3e97a); 192 | background-image: -ms-linear-gradient(top, #f3c17a, #f3e97a); 193 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a)); 194 | background-image: -webkit-linear-gradient(top, #f3c17a, #f3e97a); 195 | background-image: -o-linear-gradient(top, #f3c17a, #f3e97a); 196 | background-image: linear-gradient(top, #f3c17a, #f3e97a); 197 | background-repeat: repeat-x; 198 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); 199 | border-color: #f3e97a #f3e97a #edde34; 200 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 201 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 202 | -webkit-border-radius: 0; 203 | -moz-border-radius: 0; 204 | border-radius: 0; 205 | } 206 | .datepicker table tr td.range.today:hover, 207 | .datepicker table tr td.range.today:hover:hover, 208 | .datepicker table tr td.range.today.disabled:hover, 209 | .datepicker table tr td.range.today.disabled:hover:hover, 210 | .datepicker table tr td.range.today:active, 211 | .datepicker table tr td.range.today:hover:active, 212 | .datepicker table tr td.range.today.disabled:active, 213 | .datepicker table tr td.range.today.disabled:hover:active, 214 | .datepicker table tr td.range.today.active, 215 | .datepicker table tr td.range.today:hover.active, 216 | .datepicker table tr td.range.today.disabled.active, 217 | .datepicker table tr td.range.today.disabled:hover.active, 218 | .datepicker table tr td.range.today.disabled, 219 | .datepicker table tr td.range.today:hover.disabled, 220 | .datepicker table tr td.range.today.disabled.disabled, 221 | .datepicker table tr td.range.today.disabled:hover.disabled, 222 | .datepicker table tr td.range.today[disabled], 223 | .datepicker table tr td.range.today:hover[disabled], 224 | .datepicker table tr td.range.today.disabled[disabled], 225 | .datepicker table tr td.range.today.disabled:hover[disabled] { 226 | background-color: #f3e97a; 227 | } 228 | .datepicker table tr td.range.today:active, 229 | .datepicker table tr td.range.today:hover:active, 230 | .datepicker table tr td.range.today.disabled:active, 231 | .datepicker table tr td.range.today.disabled:hover:active, 232 | .datepicker table tr td.range.today.active, 233 | .datepicker table tr td.range.today:hover.active, 234 | .datepicker table tr td.range.today.disabled.active, 235 | .datepicker table tr td.range.today.disabled:hover.active { 236 | background-color: #efe24b \9; 237 | } 238 | .datepicker table tr td.selected, 239 | .datepicker table tr td.selected:hover, 240 | .datepicker table tr td.selected.disabled, 241 | .datepicker table tr td.selected.disabled:hover { 242 | background-color: #9e9e9e; 243 | background-image: -moz-linear-gradient(top, #b3b3b3, #808080); 244 | background-image: -ms-linear-gradient(top, #b3b3b3, #808080); 245 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080)); 246 | background-image: -webkit-linear-gradient(top, #b3b3b3, #808080); 247 | background-image: -o-linear-gradient(top, #b3b3b3, #808080); 248 | background-image: linear-gradient(top, #b3b3b3, #808080); 249 | background-repeat: repeat-x; 250 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); 251 | border-color: #808080 #808080 #595959; 252 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 253 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 254 | color: #fff; 255 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 256 | } 257 | .datepicker table tr td.selected:hover, 258 | .datepicker table tr td.selected:hover:hover, 259 | .datepicker table tr td.selected.disabled:hover, 260 | .datepicker table tr td.selected.disabled:hover:hover, 261 | .datepicker table tr td.selected:active, 262 | .datepicker table tr td.selected:hover:active, 263 | .datepicker table tr td.selected.disabled:active, 264 | .datepicker table tr td.selected.disabled:hover:active, 265 | .datepicker table tr td.selected.active, 266 | .datepicker table tr td.selected:hover.active, 267 | .datepicker table tr td.selected.disabled.active, 268 | .datepicker table tr td.selected.disabled:hover.active, 269 | .datepicker table tr td.selected.disabled, 270 | .datepicker table tr td.selected:hover.disabled, 271 | .datepicker table tr td.selected.disabled.disabled, 272 | .datepicker table tr td.selected.disabled:hover.disabled, 273 | .datepicker table tr td.selected[disabled], 274 | .datepicker table tr td.selected:hover[disabled], 275 | .datepicker table tr td.selected.disabled[disabled], 276 | .datepicker table tr td.selected.disabled:hover[disabled] { 277 | background-color: #808080; 278 | } 279 | .datepicker table tr td.selected:active, 280 | .datepicker table tr td.selected:hover:active, 281 | .datepicker table tr td.selected.disabled:active, 282 | .datepicker table tr td.selected.disabled:hover:active, 283 | .datepicker table tr td.selected.active, 284 | .datepicker table tr td.selected:hover.active, 285 | .datepicker table tr td.selected.disabled.active, 286 | .datepicker table tr td.selected.disabled:hover.active { 287 | background-color: #666666 \9; 288 | } 289 | .datepicker table tr td.active, 290 | .datepicker table tr td.active:hover, 291 | .datepicker table tr td.active.disabled, 292 | .datepicker table tr td.active.disabled:hover { 293 | background-color: #006dcc; 294 | background-image: -moz-linear-gradient(top, #0088cc, #0044cc); 295 | background-image: -ms-linear-gradient(top, #0088cc, #0044cc); 296 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); 297 | background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); 298 | background-image: -o-linear-gradient(top, #0088cc, #0044cc); 299 | background-image: linear-gradient(top, #0088cc, #0044cc); 300 | background-repeat: repeat-x; 301 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); 302 | border-color: #0044cc #0044cc #002a80; 303 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 304 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 305 | color: #fff; 306 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 307 | } 308 | .datepicker table tr td.active:hover, 309 | .datepicker table tr td.active:hover:hover, 310 | .datepicker table tr td.active.disabled:hover, 311 | .datepicker table tr td.active.disabled:hover:hover, 312 | .datepicker table tr td.active:active, 313 | .datepicker table tr td.active:hover:active, 314 | .datepicker table tr td.active.disabled:active, 315 | .datepicker table tr td.active.disabled:hover:active, 316 | .datepicker table tr td.active.active, 317 | .datepicker table tr td.active:hover.active, 318 | .datepicker table tr td.active.disabled.active, 319 | .datepicker table tr td.active.disabled:hover.active, 320 | .datepicker table tr td.active.disabled, 321 | .datepicker table tr td.active:hover.disabled, 322 | .datepicker table tr td.active.disabled.disabled, 323 | .datepicker table tr td.active.disabled:hover.disabled, 324 | .datepicker table tr td.active[disabled], 325 | .datepicker table tr td.active:hover[disabled], 326 | .datepicker table tr td.active.disabled[disabled], 327 | .datepicker table tr td.active.disabled:hover[disabled] { 328 | background-color: #0044cc; 329 | } 330 | .datepicker table tr td.active:active, 331 | .datepicker table tr td.active:hover:active, 332 | .datepicker table tr td.active.disabled:active, 333 | .datepicker table tr td.active.disabled:hover:active, 334 | .datepicker table tr td.active.active, 335 | .datepicker table tr td.active:hover.active, 336 | .datepicker table tr td.active.disabled.active, 337 | .datepicker table tr td.active.disabled:hover.active { 338 | background-color: #003399 \9; 339 | } 340 | .datepicker table tr td span { 341 | display: block; 342 | width: 23%; 343 | height: 54px; 344 | line-height: 54px; 345 | float: left; 346 | margin: 1%; 347 | cursor: pointer; 348 | -webkit-border-radius: 4px; 349 | -moz-border-radius: 4px; 350 | border-radius: 4px; 351 | } 352 | .datepicker table tr td span:hover { 353 | background: #eeeeee; 354 | } 355 | .datepicker table tr td span.disabled, 356 | .datepicker table tr td span.disabled:hover { 357 | background: none; 358 | color: #999999; 359 | cursor: default; 360 | } 361 | .datepicker table tr td span.active, 362 | .datepicker table tr td span.active:hover, 363 | .datepicker table tr td span.active.disabled, 364 | .datepicker table tr td span.active.disabled:hover { 365 | background-color: #006dcc; 366 | background-image: -moz-linear-gradient(top, #0088cc, #0044cc); 367 | background-image: -ms-linear-gradient(top, #0088cc, #0044cc); 368 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); 369 | background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); 370 | background-image: -o-linear-gradient(top, #0088cc, #0044cc); 371 | background-image: linear-gradient(top, #0088cc, #0044cc); 372 | background-repeat: repeat-x; 373 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); 374 | border-color: #0044cc #0044cc #002a80; 375 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 376 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 377 | color: #fff; 378 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 379 | } 380 | .datepicker table tr td span.active:hover, 381 | .datepicker table tr td span.active:hover:hover, 382 | .datepicker table tr td span.active.disabled:hover, 383 | .datepicker table tr td span.active.disabled:hover:hover, 384 | .datepicker table tr td span.active:active, 385 | .datepicker table tr td span.active:hover:active, 386 | .datepicker table tr td span.active.disabled:active, 387 | .datepicker table tr td span.active.disabled:hover:active, 388 | .datepicker table tr td span.active.active, 389 | .datepicker table tr td span.active:hover.active, 390 | .datepicker table tr td span.active.disabled.active, 391 | .datepicker table tr td span.active.disabled:hover.active, 392 | .datepicker table tr td span.active.disabled, 393 | .datepicker table tr td span.active:hover.disabled, 394 | .datepicker table tr td span.active.disabled.disabled, 395 | .datepicker table tr td span.active.disabled:hover.disabled, 396 | .datepicker table tr td span.active[disabled], 397 | .datepicker table tr td span.active:hover[disabled], 398 | .datepicker table tr td span.active.disabled[disabled], 399 | .datepicker table tr td span.active.disabled:hover[disabled] { 400 | background-color: #0044cc; 401 | } 402 | .datepicker table tr td span.active:active, 403 | .datepicker table tr td span.active:hover:active, 404 | .datepicker table tr td span.active.disabled:active, 405 | .datepicker table tr td span.active.disabled:hover:active, 406 | .datepicker table tr td span.active.active, 407 | .datepicker table tr td span.active:hover.active, 408 | .datepicker table tr td span.active.disabled.active, 409 | .datepicker table tr td span.active.disabled:hover.active { 410 | background-color: #003399 \9; 411 | } 412 | .datepicker table tr td span.old, 413 | .datepicker table tr td span.new { 414 | color: #999999; 415 | } 416 | .datepicker .datepicker-switch { 417 | width: 145px; 418 | } 419 | .datepicker thead tr:first-child th, 420 | .datepicker tfoot tr th { 421 | cursor: pointer; 422 | } 423 | .datepicker thead tr:first-child th:hover, 424 | .datepicker tfoot tr th:hover { 425 | background: #eeeeee; 426 | } 427 | .datepicker .cw { 428 | font-size: 10px; 429 | width: 12px; 430 | padding: 0 2px 0 5px; 431 | vertical-align: middle; 432 | } 433 | .datepicker thead tr:first-child .cw { 434 | cursor: default; 435 | background-color: transparent; 436 | } 437 | .input-append.date .add-on, 438 | .input-prepend.date .add-on { 439 | cursor: pointer; 440 | } 441 | .input-append.date .add-on i, 442 | .input-prepend.date .add-on i { 443 | margin-top: 3px; 444 | } 445 | .input-daterange input { 446 | text-align: center; 447 | } 448 | .input-daterange input:first-child { 449 | -webkit-border-radius: 3px 0 0 3px; 450 | -moz-border-radius: 3px 0 0 3px; 451 | border-radius: 3px 0 0 3px; 452 | } 453 | .input-daterange input:last-child { 454 | -webkit-border-radius: 0 3px 3px 0; 455 | -moz-border-radius: 0 3px 3px 0; 456 | border-radius: 0 3px 3px 0; 457 | } 458 | .input-daterange .add-on { 459 | display: inline-block; 460 | width: auto; 461 | min-width: 16px; 462 | height: 18px; 463 | padding: 4px 5px; 464 | font-weight: normal; 465 | line-height: 18px; 466 | text-align: center; 467 | text-shadow: 0 1px 0 #ffffff; 468 | vertical-align: middle; 469 | background-color: #eeeeee; 470 | border: 1px solid #ccc; 471 | margin-left: -5px; 472 | margin-right: -5px; 473 | } 474 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/css/bootstrap-datepicker.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datepicker for Bootstrap v1.4.0 (https://github.com/eternicode/bootstrap-datepicker) 3 | * 4 | * Copyright 2012 Stefan Petre 5 | * Improvements by Andrew Rowls 6 | * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) 7 | */ 8 | .datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker.datepicker-rtl{direction:rtl}.datepicker.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-top:before{top:-7px}.datepicker-dropdown.datepicker-orient-top:after{top:-6px}.datepicker-dropdown.datepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker>div{display:none}.datepicker.days .datepicker-days,.datepicker.months .datepicker-months,.datepicker.years .datepicker-years{display:block}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day:hover,.datepicker table tr td.day.focused{background:#eee;cursor:pointer}.datepicker table tr td.old,.datepicker table tr td.new{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.today,.datepicker table tr td.today:hover,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover{background-color:#fde19a;background-image:-moz-linear-gradient(top,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(top,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(top,#fdd49a,#fdf59a);background-image:-o-linear-gradient(top,#fdd49a,#fdf59a);background-image:linear-gradient(top,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today:hover,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today:active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today[disabled],.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today.disabled:hover[disabled]{background-color:#fdf59a}.datepicker table tr td.today:active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:hover.active{background-color:#fbf069 \9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range:hover,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(top,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(top,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(top,#f3c17a,#f3e97a);background-image:-o-linear-gradient(top,#f3c17a,#f3e97a);background-image:linear-gradient(top,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today[disabled],.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today.disabled:hover[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:hover.active{background-color:#efe24b \9}.datepicker table tr td.selected,.datepicker table tr td.selected:hover,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(top,#b3b3b3,gray);background-image:-ms-linear-gradient(top,#b3b3b3,gray);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(gray));background-image:-webkit-linear-gradient(top,#b3b3b3,gray);background-image:-o-linear-gradient(top,#b3b3b3,gray);background-image:linear-gradient(top,#b3b3b3,gray);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:gray #808080 #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected[disabled],.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected.disabled:hover[disabled]{background-color:gray}.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:hover.active{background-color:#666 \9}.datepicker table tr td.active,.datepicker table tr td.active:hover,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active:hover,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active[disabled],.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active.disabled:hover[disabled]{background-color:#04c}.datepicker table tr td.active:active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:hover.active{background-color:#039 \9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active[disabled],.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active.disabled:hover[disabled]{background-color:#04c}.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:hover.active{background-color:#039 \9}.datepicker table tr td span.old,.datepicker table tr td span.new{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker thead tr:first-child th,.datepicker tfoot tr th{cursor:pointer}.datepicker thead tr:first-child th:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.datepicker thead tr:first-child .cw{cursor:default;background-color:transparent}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/css/bootstrap-datepicker.standalone.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datepicker for Bootstrap v1.4.0 (https://github.com/eternicode/bootstrap-datepicker) 3 | * 4 | * Copyright 2012 Stefan Petre 5 | * Improvements by Andrew Rowls 6 | * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) 7 | */ 8 | .datepicker { 9 | padding: 4px; 10 | -webkit-border-radius: 4px; 11 | -moz-border-radius: 4px; 12 | border-radius: 4px; 13 | direction: ltr; 14 | } 15 | .datepicker-inline { 16 | width: 220px; 17 | } 18 | .datepicker.datepicker-rtl { 19 | direction: rtl; 20 | } 21 | .datepicker.datepicker-rtl table tr td span { 22 | float: right; 23 | } 24 | .datepicker-dropdown { 25 | top: 0; 26 | left: 0; 27 | } 28 | .datepicker-dropdown:before { 29 | content: ''; 30 | display: inline-block; 31 | border-left: 7px solid transparent; 32 | border-right: 7px solid transparent; 33 | border-bottom: 7px solid #ccc; 34 | border-top: 0; 35 | border-bottom-color: rgba(0, 0, 0, 0.2); 36 | position: absolute; 37 | } 38 | .datepicker-dropdown:after { 39 | content: ''; 40 | display: inline-block; 41 | border-left: 6px solid transparent; 42 | border-right: 6px solid transparent; 43 | border-bottom: 6px solid #ffffff; 44 | border-top: 0; 45 | position: absolute; 46 | } 47 | .datepicker-dropdown.datepicker-orient-left:before { 48 | left: 6px; 49 | } 50 | .datepicker-dropdown.datepicker-orient-left:after { 51 | left: 7px; 52 | } 53 | .datepicker-dropdown.datepicker-orient-right:before { 54 | right: 6px; 55 | } 56 | .datepicker-dropdown.datepicker-orient-right:after { 57 | right: 7px; 58 | } 59 | .datepicker-dropdown.datepicker-orient-top:before { 60 | top: -7px; 61 | } 62 | .datepicker-dropdown.datepicker-orient-top:after { 63 | top: -6px; 64 | } 65 | .datepicker-dropdown.datepicker-orient-bottom:before { 66 | bottom: -7px; 67 | border-bottom: 0; 68 | border-top: 7px solid #999; 69 | } 70 | .datepicker-dropdown.datepicker-orient-bottom:after { 71 | bottom: -6px; 72 | border-bottom: 0; 73 | border-top: 6px solid #ffffff; 74 | } 75 | .datepicker > div { 76 | display: none; 77 | } 78 | .datepicker.days .datepicker-days, 79 | .datepicker.months .datepicker-months, 80 | .datepicker.years .datepicker-years { 81 | display: block; 82 | } 83 | .datepicker table { 84 | margin: 0; 85 | -webkit-touch-callout: none; 86 | -webkit-user-select: none; 87 | -khtml-user-select: none; 88 | -moz-user-select: none; 89 | -ms-user-select: none; 90 | user-select: none; 91 | } 92 | .datepicker td, 93 | .datepicker th { 94 | text-align: center; 95 | width: 20px; 96 | height: 20px; 97 | -webkit-border-radius: 4px; 98 | -moz-border-radius: 4px; 99 | border-radius: 4px; 100 | border: none; 101 | } 102 | .table-striped .datepicker table tr td, 103 | .table-striped .datepicker table tr th { 104 | background-color: transparent; 105 | } 106 | .datepicker table tr td.day:hover, 107 | .datepicker table tr td.day.focused { 108 | background: #eeeeee; 109 | cursor: pointer; 110 | } 111 | .datepicker table tr td.old, 112 | .datepicker table tr td.new { 113 | color: #999999; 114 | } 115 | .datepicker table tr td.disabled, 116 | .datepicker table tr td.disabled:hover { 117 | background: none; 118 | color: #999999; 119 | cursor: default; 120 | } 121 | .datepicker table tr td.today, 122 | .datepicker table tr td.today:hover, 123 | .datepicker table tr td.today.disabled, 124 | .datepicker table tr td.today.disabled:hover { 125 | background-color: #fde19a; 126 | background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a); 127 | background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a); 128 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); 129 | background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a); 130 | background-image: -o-linear-gradient(top, #fdd49a, #fdf59a); 131 | background-image: linear-gradient(top, #fdd49a, #fdf59a); 132 | background-repeat: repeat-x; 133 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); 134 | border-color: #fdf59a #fdf59a #fbed50; 135 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 136 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 137 | color: #000; 138 | } 139 | .datepicker table tr td.today:hover, 140 | .datepicker table tr td.today:hover:hover, 141 | .datepicker table tr td.today.disabled:hover, 142 | .datepicker table tr td.today.disabled:hover:hover, 143 | .datepicker table tr td.today:active, 144 | .datepicker table tr td.today:hover:active, 145 | .datepicker table tr td.today.disabled:active, 146 | .datepicker table tr td.today.disabled:hover:active, 147 | .datepicker table tr td.today.active, 148 | .datepicker table tr td.today:hover.active, 149 | .datepicker table tr td.today.disabled.active, 150 | .datepicker table tr td.today.disabled:hover.active, 151 | .datepicker table tr td.today.disabled, 152 | .datepicker table tr td.today:hover.disabled, 153 | .datepicker table tr td.today.disabled.disabled, 154 | .datepicker table tr td.today.disabled:hover.disabled, 155 | .datepicker table tr td.today[disabled], 156 | .datepicker table tr td.today:hover[disabled], 157 | .datepicker table tr td.today.disabled[disabled], 158 | .datepicker table tr td.today.disabled:hover[disabled] { 159 | background-color: #fdf59a; 160 | } 161 | .datepicker table tr td.today:active, 162 | .datepicker table tr td.today:hover:active, 163 | .datepicker table tr td.today.disabled:active, 164 | .datepicker table tr td.today.disabled:hover:active, 165 | .datepicker table tr td.today.active, 166 | .datepicker table tr td.today:hover.active, 167 | .datepicker table tr td.today.disabled.active, 168 | .datepicker table tr td.today.disabled:hover.active { 169 | background-color: #fbf069 \9; 170 | } 171 | .datepicker table tr td.today:hover:hover { 172 | color: #000; 173 | } 174 | .datepicker table tr td.today.active:hover { 175 | color: #fff; 176 | } 177 | .datepicker table tr td.range, 178 | .datepicker table tr td.range:hover, 179 | .datepicker table tr td.range.disabled, 180 | .datepicker table tr td.range.disabled:hover { 181 | background: #eeeeee; 182 | -webkit-border-radius: 0; 183 | -moz-border-radius: 0; 184 | border-radius: 0; 185 | } 186 | .datepicker table tr td.range.today, 187 | .datepicker table tr td.range.today:hover, 188 | .datepicker table tr td.range.today.disabled, 189 | .datepicker table tr td.range.today.disabled:hover { 190 | background-color: #f3d17a; 191 | background-image: -moz-linear-gradient(top, #f3c17a, #f3e97a); 192 | background-image: -ms-linear-gradient(top, #f3c17a, #f3e97a); 193 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a)); 194 | background-image: -webkit-linear-gradient(top, #f3c17a, #f3e97a); 195 | background-image: -o-linear-gradient(top, #f3c17a, #f3e97a); 196 | background-image: linear-gradient(top, #f3c17a, #f3e97a); 197 | background-repeat: repeat-x; 198 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); 199 | border-color: #f3e97a #f3e97a #edde34; 200 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 201 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 202 | -webkit-border-radius: 0; 203 | -moz-border-radius: 0; 204 | border-radius: 0; 205 | } 206 | .datepicker table tr td.range.today:hover, 207 | .datepicker table tr td.range.today:hover:hover, 208 | .datepicker table tr td.range.today.disabled:hover, 209 | .datepicker table tr td.range.today.disabled:hover:hover, 210 | .datepicker table tr td.range.today:active, 211 | .datepicker table tr td.range.today:hover:active, 212 | .datepicker table tr td.range.today.disabled:active, 213 | .datepicker table tr td.range.today.disabled:hover:active, 214 | .datepicker table tr td.range.today.active, 215 | .datepicker table tr td.range.today:hover.active, 216 | .datepicker table tr td.range.today.disabled.active, 217 | .datepicker table tr td.range.today.disabled:hover.active, 218 | .datepicker table tr td.range.today.disabled, 219 | .datepicker table tr td.range.today:hover.disabled, 220 | .datepicker table tr td.range.today.disabled.disabled, 221 | .datepicker table tr td.range.today.disabled:hover.disabled, 222 | .datepicker table tr td.range.today[disabled], 223 | .datepicker table tr td.range.today:hover[disabled], 224 | .datepicker table tr td.range.today.disabled[disabled], 225 | .datepicker table tr td.range.today.disabled:hover[disabled] { 226 | background-color: #f3e97a; 227 | } 228 | .datepicker table tr td.range.today:active, 229 | .datepicker table tr td.range.today:hover:active, 230 | .datepicker table tr td.range.today.disabled:active, 231 | .datepicker table tr td.range.today.disabled:hover:active, 232 | .datepicker table tr td.range.today.active, 233 | .datepicker table tr td.range.today:hover.active, 234 | .datepicker table tr td.range.today.disabled.active, 235 | .datepicker table tr td.range.today.disabled:hover.active { 236 | background-color: #efe24b \9; 237 | } 238 | .datepicker table tr td.selected, 239 | .datepicker table tr td.selected:hover, 240 | .datepicker table tr td.selected.disabled, 241 | .datepicker table tr td.selected.disabled:hover { 242 | background-color: #9e9e9e; 243 | background-image: -moz-linear-gradient(top, #b3b3b3, #808080); 244 | background-image: -ms-linear-gradient(top, #b3b3b3, #808080); 245 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080)); 246 | background-image: -webkit-linear-gradient(top, #b3b3b3, #808080); 247 | background-image: -o-linear-gradient(top, #b3b3b3, #808080); 248 | background-image: linear-gradient(top, #b3b3b3, #808080); 249 | background-repeat: repeat-x; 250 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); 251 | border-color: #808080 #808080 #595959; 252 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 253 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 254 | color: #fff; 255 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 256 | } 257 | .datepicker table tr td.selected:hover, 258 | .datepicker table tr td.selected:hover:hover, 259 | .datepicker table tr td.selected.disabled:hover, 260 | .datepicker table tr td.selected.disabled:hover:hover, 261 | .datepicker table tr td.selected:active, 262 | .datepicker table tr td.selected:hover:active, 263 | .datepicker table tr td.selected.disabled:active, 264 | .datepicker table tr td.selected.disabled:hover:active, 265 | .datepicker table tr td.selected.active, 266 | .datepicker table tr td.selected:hover.active, 267 | .datepicker table tr td.selected.disabled.active, 268 | .datepicker table tr td.selected.disabled:hover.active, 269 | .datepicker table tr td.selected.disabled, 270 | .datepicker table tr td.selected:hover.disabled, 271 | .datepicker table tr td.selected.disabled.disabled, 272 | .datepicker table tr td.selected.disabled:hover.disabled, 273 | .datepicker table tr td.selected[disabled], 274 | .datepicker table tr td.selected:hover[disabled], 275 | .datepicker table tr td.selected.disabled[disabled], 276 | .datepicker table tr td.selected.disabled:hover[disabled] { 277 | background-color: #808080; 278 | } 279 | .datepicker table tr td.selected:active, 280 | .datepicker table tr td.selected:hover:active, 281 | .datepicker table tr td.selected.disabled:active, 282 | .datepicker table tr td.selected.disabled:hover:active, 283 | .datepicker table tr td.selected.active, 284 | .datepicker table tr td.selected:hover.active, 285 | .datepicker table tr td.selected.disabled.active, 286 | .datepicker table tr td.selected.disabled:hover.active { 287 | background-color: #666666 \9; 288 | } 289 | .datepicker table tr td.active, 290 | .datepicker table tr td.active:hover, 291 | .datepicker table tr td.active.disabled, 292 | .datepicker table tr td.active.disabled:hover { 293 | background-color: #006dcc; 294 | background-image: -moz-linear-gradient(top, #0088cc, #0044cc); 295 | background-image: -ms-linear-gradient(top, #0088cc, #0044cc); 296 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); 297 | background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); 298 | background-image: -o-linear-gradient(top, #0088cc, #0044cc); 299 | background-image: linear-gradient(top, #0088cc, #0044cc); 300 | background-repeat: repeat-x; 301 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); 302 | border-color: #0044cc #0044cc #002a80; 303 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 304 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 305 | color: #fff; 306 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 307 | } 308 | .datepicker table tr td.active:hover, 309 | .datepicker table tr td.active:hover:hover, 310 | .datepicker table tr td.active.disabled:hover, 311 | .datepicker table tr td.active.disabled:hover:hover, 312 | .datepicker table tr td.active:active, 313 | .datepicker table tr td.active:hover:active, 314 | .datepicker table tr td.active.disabled:active, 315 | .datepicker table tr td.active.disabled:hover:active, 316 | .datepicker table tr td.active.active, 317 | .datepicker table tr td.active:hover.active, 318 | .datepicker table tr td.active.disabled.active, 319 | .datepicker table tr td.active.disabled:hover.active, 320 | .datepicker table tr td.active.disabled, 321 | .datepicker table tr td.active:hover.disabled, 322 | .datepicker table tr td.active.disabled.disabled, 323 | .datepicker table tr td.active.disabled:hover.disabled, 324 | .datepicker table tr td.active[disabled], 325 | .datepicker table tr td.active:hover[disabled], 326 | .datepicker table tr td.active.disabled[disabled], 327 | .datepicker table tr td.active.disabled:hover[disabled] { 328 | background-color: #0044cc; 329 | } 330 | .datepicker table tr td.active:active, 331 | .datepicker table tr td.active:hover:active, 332 | .datepicker table tr td.active.disabled:active, 333 | .datepicker table tr td.active.disabled:hover:active, 334 | .datepicker table tr td.active.active, 335 | .datepicker table tr td.active:hover.active, 336 | .datepicker table tr td.active.disabled.active, 337 | .datepicker table tr td.active.disabled:hover.active { 338 | background-color: #003399 \9; 339 | } 340 | .datepicker table tr td span { 341 | display: block; 342 | width: 23%; 343 | height: 54px; 344 | line-height: 54px; 345 | float: left; 346 | margin: 1%; 347 | cursor: pointer; 348 | -webkit-border-radius: 4px; 349 | -moz-border-radius: 4px; 350 | border-radius: 4px; 351 | } 352 | .datepicker table tr td span:hover { 353 | background: #eeeeee; 354 | } 355 | .datepicker table tr td span.disabled, 356 | .datepicker table tr td span.disabled:hover { 357 | background: none; 358 | color: #999999; 359 | cursor: default; 360 | } 361 | .datepicker table tr td span.active, 362 | .datepicker table tr td span.active:hover, 363 | .datepicker table tr td span.active.disabled, 364 | .datepicker table tr td span.active.disabled:hover { 365 | background-color: #006dcc; 366 | background-image: -moz-linear-gradient(top, #0088cc, #0044cc); 367 | background-image: -ms-linear-gradient(top, #0088cc, #0044cc); 368 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); 369 | background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); 370 | background-image: -o-linear-gradient(top, #0088cc, #0044cc); 371 | background-image: linear-gradient(top, #0088cc, #0044cc); 372 | background-repeat: repeat-x; 373 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); 374 | border-color: #0044cc #0044cc #002a80; 375 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 376 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 377 | color: #fff; 378 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 379 | } 380 | .datepicker table tr td span.active:hover, 381 | .datepicker table tr td span.active:hover:hover, 382 | .datepicker table tr td span.active.disabled:hover, 383 | .datepicker table tr td span.active.disabled:hover:hover, 384 | .datepicker table tr td span.active:active, 385 | .datepicker table tr td span.active:hover:active, 386 | .datepicker table tr td span.active.disabled:active, 387 | .datepicker table tr td span.active.disabled:hover:active, 388 | .datepicker table tr td span.active.active, 389 | .datepicker table tr td span.active:hover.active, 390 | .datepicker table tr td span.active.disabled.active, 391 | .datepicker table tr td span.active.disabled:hover.active, 392 | .datepicker table tr td span.active.disabled, 393 | .datepicker table tr td span.active:hover.disabled, 394 | .datepicker table tr td span.active.disabled.disabled, 395 | .datepicker table tr td span.active.disabled:hover.disabled, 396 | .datepicker table tr td span.active[disabled], 397 | .datepicker table tr td span.active:hover[disabled], 398 | .datepicker table tr td span.active.disabled[disabled], 399 | .datepicker table tr td span.active.disabled:hover[disabled] { 400 | background-color: #0044cc; 401 | } 402 | .datepicker table tr td span.active:active, 403 | .datepicker table tr td span.active:hover:active, 404 | .datepicker table tr td span.active.disabled:active, 405 | .datepicker table tr td span.active.disabled:hover:active, 406 | .datepicker table tr td span.active.active, 407 | .datepicker table tr td span.active:hover.active, 408 | .datepicker table tr td span.active.disabled.active, 409 | .datepicker table tr td span.active.disabled:hover.active { 410 | background-color: #003399 \9; 411 | } 412 | .datepicker table tr td span.old, 413 | .datepicker table tr td span.new { 414 | color: #999999; 415 | } 416 | .datepicker .datepicker-switch { 417 | width: 145px; 418 | } 419 | .datepicker thead tr:first-child th, 420 | .datepicker tfoot tr th { 421 | cursor: pointer; 422 | } 423 | .datepicker thead tr:first-child th:hover, 424 | .datepicker tfoot tr th:hover { 425 | background: #eeeeee; 426 | } 427 | .datepicker .cw { 428 | font-size: 10px; 429 | width: 12px; 430 | padding: 0 2px 0 5px; 431 | vertical-align: middle; 432 | } 433 | .datepicker thead tr:first-child .cw { 434 | cursor: default; 435 | background-color: transparent; 436 | } 437 | .input-append.date .add-on, 438 | .input-prepend.date .add-on { 439 | cursor: pointer; 440 | } 441 | .input-append.date .add-on i, 442 | .input-prepend.date .add-on i { 443 | margin-top: 3px; 444 | } 445 | .input-daterange input { 446 | text-align: center; 447 | } 448 | .input-daterange input:first-child { 449 | -webkit-border-radius: 3px 0 0 3px; 450 | -moz-border-radius: 3px 0 0 3px; 451 | border-radius: 3px 0 0 3px; 452 | } 453 | .input-daterange input:last-child { 454 | -webkit-border-radius: 0 3px 3px 0; 455 | -moz-border-radius: 0 3px 3px 0; 456 | border-radius: 0 3px 3px 0; 457 | } 458 | .input-daterange .add-on { 459 | display: inline-block; 460 | width: auto; 461 | min-width: 16px; 462 | height: 20px; 463 | padding: 4px 5px; 464 | font-weight: normal; 465 | line-height: 20px; 466 | text-align: center; 467 | text-shadow: 0 1px 0 #ffffff; 468 | vertical-align: middle; 469 | background-color: #eeeeee; 470 | border: 1px solid #ccc; 471 | margin-left: -5px; 472 | margin-right: -5px; 473 | } 474 | .datepicker.dropdown-menu { 475 | position: absolute; 476 | top: 100%; 477 | left: 0; 478 | z-index: 1000; 479 | float: left; 480 | display: none; 481 | min-width: 160px; 482 | list-style: none; 483 | background-color: #ffffff; 484 | border: 1px solid #ccc; 485 | border: 1px solid rgba(0, 0, 0, 0.2); 486 | -webkit-border-radius: 5px; 487 | -moz-border-radius: 5px; 488 | border-radius: 5px; 489 | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 490 | -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 491 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 492 | -webkit-background-clip: padding-box; 493 | -moz-background-clip: padding; 494 | background-clip: padding-box; 495 | *border-right-width: 2px; 496 | *border-bottom-width: 2px; 497 | color: #333333; 498 | font-size: 13px; 499 | line-height: 20px; 500 | } 501 | .datepicker.dropdown-menu th, 502 | .datepicker.datepicker-inline th, 503 | .datepicker.dropdown-menu td, 504 | .datepicker.datepicker-inline td { 505 | padding: 4px 5px; 506 | } 507 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/css/bootstrap-datepicker.standalone.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datepicker for Bootstrap v1.4.0 (https://github.com/eternicode/bootstrap-datepicker) 3 | * 4 | * Copyright 2012 Stefan Petre 5 | * Improvements by Andrew Rowls 6 | * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) 7 | */ 8 | .datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker.datepicker-rtl{direction:rtl}.datepicker.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-top:before{top:-7px}.datepicker-dropdown.datepicker-orient-top:after{top:-6px}.datepicker-dropdown.datepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker>div{display:none}.datepicker.days .datepicker-days,.datepicker.months .datepicker-months,.datepicker.years .datepicker-years{display:block}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day:hover,.datepicker table tr td.day.focused{background:#eee;cursor:pointer}.datepicker table tr td.old,.datepicker table tr td.new{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.today,.datepicker table tr td.today:hover,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover{background-color:#fde19a;background-image:-moz-linear-gradient(top,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(top,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(top,#fdd49a,#fdf59a);background-image:-o-linear-gradient(top,#fdd49a,#fdf59a);background-image:linear-gradient(top,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today:hover,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today:active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today[disabled],.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today.disabled:hover[disabled]{background-color:#fdf59a}.datepicker table tr td.today:active,.datepicker table tr td.today:hover:active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:hover.active{background-color:#fbf069 \9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range:hover,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(top,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(top,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(top,#f3c17a,#f3e97a);background-image:-o-linear-gradient(top,#f3c17a,#f3e97a);background-image:linear-gradient(top,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today[disabled],.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today.disabled:hover[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:hover.active{background-color:#efe24b \9}.datepicker table tr td.selected,.datepicker table tr td.selected:hover,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(top,#b3b3b3,gray);background-image:-ms-linear-gradient(top,#b3b3b3,gray);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(gray));background-image:-webkit-linear-gradient(top,#b3b3b3,gray);background-image:-o-linear-gradient(top,#b3b3b3,gray);background-image:linear-gradient(top,#b3b3b3,gray);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:gray #808080 #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected[disabled],.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected.disabled:hover[disabled]{background-color:gray}.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:hover.active{background-color:#666 \9}.datepicker table tr td.active,.datepicker table tr td.active:hover,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active:hover,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active:active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active[disabled],.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active.disabled:hover[disabled]{background-color:#04c}.datepicker table tr td.active:active,.datepicker table tr td.active:hover:active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:hover.active{background-color:#039 \9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover{background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-ms-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(top,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active[disabled],.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active.disabled:hover[disabled]{background-color:#04c}.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:hover.active{background-color:#039 \9}.datepicker table tr td span.old,.datepicker table tr td span.new{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker thead tr:first-child th,.datepicker tfoot tr th{cursor:pointer}.datepicker thead tr:first-child th:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.datepicker thead tr:first-child .cw{cursor:default;background-color:transparent}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:20px;padding:4px 5px;font-weight:400;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px}.datepicker.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;color:#333;font-size:13px;line-height:20px}.datepicker.dropdown-menu th,.datepicker.datepicker-inline th,.datepicker.dropdown-menu td,.datepicker.datepicker-inline td{padding:4px 5px} -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datepicker for Bootstrap v1.4.0 (https://github.com/eternicode/bootstrap-datepicker) 3 | * 4 | * Copyright 2012 Stefan Petre 5 | * Improvements by Andrew Rowls 6 | * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) 7 | */ 8 | !function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(a){return function(){return this[a].apply(this,arguments)}}function g(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function h(b){var c={};if(p[b]||(b=b.split("-")[0],p[b])){var d=p[b];return a.each(o,function(a,b){b in d&&(c[b]=d[b])}),c}}var i=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;d>c;c++)if(this[c].valueOf()===b)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new i;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),j=function(b,c){this._process_options(c),this.dates=new i,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInline=!1,this.isInput=this.element.is("input"),this.component=this.element.hasClass("date")?this.element.find(".add-on, .input-group-addon, .btn"):!1,this.hasInput=this.component&&this.element.find("input").length,this.component&&0===this.component.length&&(this.component=!1),this.picker=a(q.template),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("tfoot .today, tfoot .clear").attr("colspan",function(a,b){return parseInt(b)+1}),this._allow_update=!1,this.setStartDate(this._o.startDate),this.setEndDate(this._o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.setDatesDisabled(this.o.datesDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};j.prototype={constructor:j,_process_options:function(e){this._o=a.extend({},this._o,e);var f=this.o=a.extend({},this._o),g=f.language;switch(p[g]||(g=g.split("-")[0],p[g]||(g=n.language)),f.language=g,f.startView){case 2:case"decade":f.startView=2;break;case 1:case"year":f.startView=1;break;default:f.startView=0}switch(f.minViewMode){case 1:case"months":f.minViewMode=1;break;case 2:case"years":f.minViewMode=2;break;default:f.minViewMode=0}f.startView=Math.max(f.startView,f.minViewMode),f.multidate!==!0&&(f.multidate=Number(f.multidate)||!1,f.multidate!==!1&&(f.multidate=Math.max(0,f.multidate))),f.multidateSeparator=String(f.multidateSeparator),f.weekStart%=7,f.weekEnd=(f.weekStart+6)%7;var h=q.parseFormat(f.format);if(f.startDate!==-1/0&&(f.startDate=f.startDate?f.startDate instanceof Date?this._local_to_utc(this._zero_time(f.startDate)):q.parseDate(f.startDate,h,f.language):-1/0),1/0!==f.endDate&&(f.endDate=f.endDate?f.endDate instanceof Date?this._local_to_utc(this._zero_time(f.endDate)):q.parseDate(f.endDate,h,f.language):1/0),f.daysOfWeekDisabled=f.daysOfWeekDisabled||[],a.isArray(f.daysOfWeekDisabled)||(f.daysOfWeekDisabled=f.daysOfWeekDisabled.split(/[,\s]*/)),f.daysOfWeekDisabled=a.map(f.daysOfWeekDisabled,function(a){return parseInt(a,10)}),f.datesDisabled=f.datesDisabled||[],!a.isArray(f.datesDisabled)){var i=[];i.push(q.parseDate(f.datesDisabled,h,f.language)),f.datesDisabled=i}f.datesDisabled=a.map(f.datesDisabled,function(a){return q.parseDate(a,h,f.language)});var j=String(f.orientation).toLowerCase().split(/\s+/g),k=f.orientation.toLowerCase();if(j=a.grep(j,function(a){return/^auto|left|right|top|bottom$/.test(a)}),f.orientation={x:"auto",y:"auto"},k&&"auto"!==k)if(1===j.length)switch(j[0]){case"top":case"bottom":f.orientation.y=j[0];break;case"left":case"right":f.orientation.x=j[0]}else k=a.grep(j,function(a){return/^left|right$/.test(a)}),f.orientation.x=k[0]||"auto",k=a.grep(j,function(a){return/^top|bottom$/.test(a)}),f.orientation.y=k[0]||"auto";else;if(f.defaultViewDate){var l=f.defaultViewDate.year||(new Date).getFullYear(),m=f.defaultViewDate.month||0,o=f.defaultViewDate.day||1;f.defaultViewDate=c(l,m,o)}else f.defaultViewDate=d();f.showOnFocus=f.showOnFocus!==b?f.showOnFocus:!0},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;fe?(this.picker.addClass("datepicker-orient-right"),n=k.left+m-b):this.picker.addClass("datepicker-orient-left");var p,q,r=this.o.orientation.y;if("auto"===r&&(p=-g+o-c,q=g+f-(o+l+c),r=Math.max(p,q)===q?"top":"bottom"),this.picker.addClass("datepicker-orient-"+r),"top"===r?o+=l:o-=c+parseInt(this.picker.css("padding-top")),this.o.rtl){var s=e-(n+m);this.picker.css({top:o,right:s,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.element.find("input").val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return q.parseDate(a,this.o.format,this.o.language)},this)),c=a.grep(c,a.proxy(function(a){return athis.o.endDate||!a},this),!0),this.dates.replace(c),this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDatethis.o.endDate&&(this.viewDate=new Date(this.o.endDate)),d?this.setValue():c.length&&String(b)!==String(this.dates)&&this._trigger("changeDate"),!this.dates.length&&b.length&&this._trigger("clearDate"),this.fill(),this},fillDow:function(){var a=this.o.weekStart,b="";if(this.o.calendarWeeks){this.picker.find(".datepicker-days thead tr:first-child .datepicker-switch").attr("colspan",function(a,b){return parseInt(b)+1});var c=' ';b+=c}for(;a'+p[this.o.language].daysMin[a++%7]+"";b+="",this.picker.find(".datepicker-days thead").append(b)},fillMonths:function(){for(var a="",b=0;12>b;)a+=''+p[this.o.language].monthsShort[b++]+"";this.picker.find(".datepicker-months td").html(a)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],d=this.viewDate.getUTCFullYear(),f=this.viewDate.getUTCMonth(),g=new Date;return b.getUTCFullYear()d||b.getUTCFullYear()===d&&b.getUTCMonth()>f)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&b.getUTCFullYear()===g.getFullYear()&&b.getUTCMonth()===g.getMonth()&&b.getUTCDate()===g.getDate()&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),(b.valueOf()this.o.endDate||-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled))&&c.push("disabled"),this.o.datesDisabled.length>0&&a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0&&c.push("disabled","disabled-date"),this.range&&(b>this.range[0]&&b"),this.o.calendarWeeks)){var u=new Date(+n+(this.o.weekStart-n.getUTCDay()-7)%7*864e5),v=new Date(Number(u)+(11-u.getUTCDay())%7*864e5),w=new Date(Number(w=c(v.getUTCFullYear(),0,1))+(11-w.getUTCDay())%7*864e5),x=(v-w)/864e5/7+1;t.push(''+x+"")}if(s=this.getClassNames(n),s.push("day"),this.o.beforeShowDay!==a.noop){var y=this.o.beforeShowDay(this._utc_to_local(n));y===b?y={}:"boolean"==typeof y?y={enabled:y}:"string"==typeof y&&(y={classes:y}),y.enabled===!1&&s.push("disabled"),y.classes&&(s=s.concat(y.classes.split(/\s+/))),y.tooltip&&(d=y.tooltip)}s=a.unique(s),t.push('"+n.getUTCDate()+""),d=null,n.getUTCDay()===this.o.weekEnd&&t.push(""),n.setUTCDate(n.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(t.join(""));var z=this.picker.find(".datepicker-months").find("th:eq(1)").text(f).end().find("span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===f&&z.eq(b.getUTCMonth()).addClass("active")}),(h>f||f>j)&&z.addClass("disabled"),f===h&&z.slice(0,i).addClass("disabled"),f===j&&z.slice(k+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var A=this;a.each(z,function(b,c){if(!a(c).hasClass("disabled")){var d=new Date(f,b,1),e=A.o.beforeShowMonth(d);e===!1&&a(c).addClass("disabled")}})}t="",f=10*parseInt(f/10,10);var B=this.picker.find(".datepicker-years").find("th:eq(1)").text(f+"-"+(f+9)).end().find("td");f-=1;for(var C,D=a.map(this.dates,function(a){return a.getUTCFullYear()}),E=-1;11>E;E++)C=["year"],-1===E?C.push("old"):10===E&&C.push("new"),-1!==a.inArray(f,D)&&C.push("active"),(h>f||f>j)&&C.push("disabled"),t+=''+f+"",f+=1;B.html(t)}},updateNavArrows:function(){if(this._allow_update){var a=new Date(this.viewDate),b=a.getUTCFullYear(),c=a.getUTCMonth();switch(this.viewMode){case 0:this.picker.find(".prev").css(this.o.startDate!==-1/0&&b<=this.o.startDate.getUTCFullYear()&&c<=this.o.startDate.getUTCMonth()?{visibility:"hidden"}:{visibility:"visible"}),this.picker.find(".next").css(1/0!==this.o.endDate&&b>=this.o.endDate.getUTCFullYear()&&c>=this.o.endDate.getUTCMonth()?{visibility:"hidden"}:{visibility:"visible"});break;case 1:case 2:this.picker.find(".prev").css(this.o.startDate!==-1/0&&b<=this.o.startDate.getUTCFullYear()?{visibility:"hidden"}:{visibility:"visible"}),this.picker.find(".next").css(1/0!==this.o.endDate&&b>=this.o.endDate.getUTCFullYear()?{visibility:"hidden"}:{visibility:"visible"})}}},click:function(b){b.preventDefault();var d,e,f,g=a(b.target).closest("span, td, th");if(1===g.length)switch(g[0].nodeName.toLowerCase()){case"th":switch(g[0].className){case"datepicker-switch":this.showMode(1);break;case"prev":case"next":var h=q.modes[this.viewMode].navStep*("prev"===g[0].className?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveMonth(this.viewDate,h),this._trigger("changeMonth",this.viewDate);break;case 1:case 2:this.viewDate=this.moveYear(this.viewDate,h),1===this.viewMode&&this._trigger("changeYear",this.viewDate)}this.fill();break;case"today":var i=new Date;i=c(i.getFullYear(),i.getMonth(),i.getDate(),0,0,0),this.showMode(-2);var j="linked"===this.o.todayBtn?null:"view";this._setDate(i,j);break;case"clear":this.clearDates()}break;case"span":g.hasClass("disabled")||(this.viewDate.setUTCDate(1),g.hasClass("month")?(f=1,e=g.parent().find("span").index(g),d=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(e),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode&&this._setDate(c(d,e,f))):(f=1,e=0,d=parseInt(g.text(),10)||0,this.viewDate.setUTCFullYear(d),this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(c(d,e,f))),this.showMode(-1),this.fill());break;case"td":g.hasClass("day")&&!g.hasClass("disabled")&&(f=parseInt(g.text(),10)||1,d=this.viewDate.getUTCFullYear(),e=this.viewDate.getUTCMonth(),g.hasClass("old")?0===e?(e=11,d-=1):e-=1:g.hasClass("new")&&(11===e?(e=0,d+=1):e+=1),this._setDate(c(d,e,f)))}this.picker.is(":visible")&&this._focused_from&&a(this._focused_from).focus(),delete this._focused_from},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),b&&"view"!==b||(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate");var c;this.isInput?c=this.element:this.component&&(c=this.element.find("input")),c&&c.change(),!this.o.autoclose||b&&"date"!==b||this.hide()},moveMonth:function(a,c){if(!a)return b;if(!c)return a;var d,e,f=new Date(a.valueOf()),g=f.getUTCDate(),h=f.getUTCMonth(),i=Math.abs(c);if(c=c>0?1:-1,1===i)e=-1===c?function(){return f.getUTCMonth()===h}:function(){return f.getUTCMonth()!==d},d=h+c,f.setUTCMonth(d),(0>d||d>11)&&(d=(d+12)%12);else{for(var j=0;i>j;j++)f=this.moveMonth(f,c);d=f.getUTCMonth(),f.setUTCDate(g),e=function(){return d!==f.getUTCMonth()}}for(;e();)f.setUTCDate(--g),f.setUTCMonth(d);return f},moveYear:function(a,b){return this.moveMonth(a,12*b)},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(27===a.keyCode&&this.show());var b,c,e,f=!1,g=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault();break;case 37:case 39:if(!this.o.keyboardNavigation)break;b=37===a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.dates.get(-1)||d(),b),e=this.moveYear(g,b),this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveMonth(this.dates.get(-1)||d(),b),e=this.moveMonth(g,b),this._trigger("changeMonth",this.viewDate)):(c=new Date(this.dates.get(-1)||d()),c.setUTCDate(c.getUTCDate()+b),e=new Date(g),e.setUTCDate(g.getUTCDate()+b)),this.dateWithinRange(e)&&(this.focusDate=this.viewDate=e,this.setValue(),this.fill(),a.preventDefault());break;case 38:case 40:if(!this.o.keyboardNavigation)break;b=38===a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.dates.get(-1)||d(),b),e=this.moveYear(g,b),this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveMonth(this.dates.get(-1)||d(),b),e=this.moveMonth(g,b),this._trigger("changeMonth",this.viewDate)):(c=new Date(this.dates.get(-1)||d()),c.setUTCDate(c.getUTCDate()+7*b),e=new Date(g),e.setUTCDate(g.getUTCDate()+7*b)),this.dateWithinRange(e)&&(this.focusDate=this.viewDate=e,this.setValue(),this.fill(),a.preventDefault());break;case 32:break;case 13:g=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(g),f=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),"function"==typeof a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}if(f){this._trigger(this.dates.length?"changeDate":"clearDate");var h;this.isInput?h=this.element:this.component&&(h=this.element.find("input")),h&&h.change()}},showMode:function(a){a&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(2,this.viewMode+a))),this.picker.children("div").hide().filter(".datepicker-"+q.modes[this.viewMode].clsName).css("display","block"),this.updateNavArrows()}};var k=function(b,c){this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,m.call(a(this.inputs),c).bind("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a(b).data("datepicker")}),this.updateDates()};k.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(b){if(!this.updating){this.updating=!0;var c=a(b.target).data("datepicker"),d=c.getUTCDate(),e=a.inArray(b.target,this.inputs),f=e-1,g=e+1,h=this.inputs.length;if(-1!==e){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b.setUTCDate(d)}),d=0&&dthis.dates[g])for(;h>g&&d>this.dates[g];)this.pickers[g++].setUTCDate(d);this.updateDates(),delete this.updating}}},remove:function(){a.map(this.pickers,function(a){a.remove()}),delete this.element.data().datepicker}};var l=a.fn.datepicker,m=function(c){var d=Array.apply(null,arguments);d.shift();var e;return this.each(function(){var f=a(this),i=f.data("datepicker"),l="object"==typeof c&&c;if(!i){var m=g(this,"date"),o=a.extend({},n,m,l),p=h(o.language),q=a.extend({},n,p,m,l);if(f.hasClass("input-daterange")||q.inputs){var r={inputs:q.inputs||f.find("input").toArray()};f.data("datepicker",i=new k(this,a.extend(q,r)))}else f.data("datepicker",i=new j(this,q))}return"string"==typeof c&&"function"==typeof i[c]&&(e=i[c].apply(i,d),e!==b)?!1:void 0}),e!==b?e:this};a.fn.datepicker=m;var n=a.fn.datepicker.defaults={autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-1/0,startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,container:"body"},o=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=j;var p=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear"}},q={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(a){return a%4===0&&a%100!==0||a%400===0},getDaysInMonth:function(a,b){return[31,q.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,parseFormat:function(a){var b=a.replace(this.validParts,"\x00").split("\x00"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(d,e,f){function g(){var a=this.slice(0,m[k].length),b=m[k].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!d)return b;if(d instanceof Date)return d;"string"==typeof e&&(e=q.parseFormat(e));var h,i,k,l=/([\-+]\d+)([dmwy])/,m=d.match(/([\-+]\d+)([dmwy])/g);if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(d)){for(d=new Date,k=0;kb;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};t.M=t.MM=t.mm=t.m,t.dd=t.d,d=c(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0);var u=e.parts.slice();if(m.length!==u.length&&(u=a(u).filter(function(b,c){return-1!==a.inArray(c,s)}).toArray()),m.length===u.length){var v;for(k=0,v=u.length;v>k;k++){if(n=parseInt(m[k],10),h=u[k],isNaN(n))switch(h){case"MM":o=a(p[f].months).filter(g),n=a.inArray(o[0],p[f].months)+1;break;case"M":o=a(p[f].monthsShort).filter(g),n=a.inArray(o[0],p[f].monthsShort)+1}r[h]=n}var w,x;for(k=0;k=g;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'«»',contTemplate:'',footTemplate:''};q.template='
'+q.headTemplate+""+q.footTemplate+'
'+q.headTemplate+q.contTemplate+q.footTemplate+'
'+q.headTemplate+q.contTemplate+q.footTemplate+"
",a.fn.datepicker.DPGlobal=q,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=l,this},a.fn.datepicker.version="1.4.0",a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),m.call(c,"show"))}),a(function(){m.call(a('[data-provide="datepicker-inline"]'))})}(window.jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.ar={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.az={days:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə","Bazar"],daysShort:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş.","B."],daysMin:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş.","B."],months:["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","İyun","İyul","Avq","Sen","Okt","Noy","Dek"],today:"Bu gün",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.bg={days:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота","Неделя"],daysShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб","Нед"],daysMin:["Н","П","В","С","Ч","П","С","Н"],months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Ян","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек"],today:"днес"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.bs={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota","Nedjelja"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub","Ned"],daysMin:["N","Po","U","Sr","Č","Pe","Su","N"],months:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.ca={days:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte","Diumenge"],daysShort:["Diu","Dil","Dmt","Dmc","Dij","Div","Dis","Diu"],daysMin:["dg","dl","dt","dc","dj","dv","ds","dg"],months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Des"],today:"Avui",clear:"Esborrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.cs={days:["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota","Neděle"],daysShort:["Ned","Pon","Úte","Stř","Čtv","Pát","Sob","Ned"],daysMin:["Ne","Po","Út","St","Čt","Pá","So","Ne"],months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],monthsShort:["Led","Úno","Bře","Dub","Kvě","Čer","Čnc","Srp","Zář","Říj","Lis","Pro"],today:"Dnes",clear:"Vymazat",weekStart:1,format:"d.m.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.cy={days:["Sul","Llun","Mawrth","Mercher","Iau","Gwener","Sadwrn","Sul"],daysShort:["Sul","Llu","Maw","Mer","Iau","Gwe","Sad","Sul"],daysMin:["Su","Ll","Ma","Me","Ia","Gwe","Sa","Su"],months:["Ionawr","Chewfror","Mawrth","Ebrill","Mai","Mehefin","Gorfennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],monthsShort:["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rha"],today:"Heddiw"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.da={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag","Søndag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør","Søn"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø","Sø"],months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"I Dag",clear:"Nulstil"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam","Son"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa","So"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.el={days:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο","Κυριακή"],daysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ","Κυρ"],daysMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα","Κυ"],months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μάι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],today:"Σήμερα",clear:"Καθαρισμός",weekStart:1,format:"d/m/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates["en-GB"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.es={days:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo"],daysShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb","Dom"],daysMin:["Do","Lu","Ma","Mi","Ju","Vi","Sa","Do"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthsShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],today:"Hoy",clear:"Borrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.et={days:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev","Pühapäev"],daysShort:["Pühap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup","Pühap"],daysMin:["P","E","T","K","N","R","L","P"],months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthsShort:["Jaan","Veebr","Märts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],today:"Täna",clear:"Tühjenda",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.eu={days:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata","Igandea"],daysShort:["Ig","Al","Ar","Az","Og","Ol","Lr","Ig"],daysMin:["Ig","Al","Ar","Az","Og","Ol","Lr","Ig"],months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],monthsShort:["Urt","Ots","Mar","Api","Mai","Eka","Uzt","Abu","Ira","Urr","Aza","Abe"],today:"Gaur"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.fa={days:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"],daysShort:["یک","دو","سه","چهار","پنج","جمعه","شنبه","یک"],daysMin:["ی","د","س","چ","پ","ج","ش","ی"],months:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthsShort:["ژان","فور","مار","آور","مه","ژون","ژوی","اوت","سپت","اکت","نوا","دسا"],today:"امروز",clear:"پاک کن",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.fi={days:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai","sunnuntai"],daysShort:["sun","maa","tii","kes","tor","per","lau","sun"],daysMin:["su","ma","ti","ke","to","pe","la","su"],months:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mar","jou"],today:"tänään",weekStart:1,format:"d.m.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.fo={days:["Sunnudagur","Mánadagur","Týsdagur","Mikudagur","Hósdagur","Fríggjadagur","Leygardagur","Sunnudagur"],daysShort:["Sun","Mán","Týs","Mik","Hós","Frí","Ley","Sun"],daysMin:["Su","Má","Tý","Mi","Hó","Fr","Le","Su"],months:["Januar","Februar","Marts","Apríl","Mei","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"Í Dag",clear:"Reinsa"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.fr={days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"],daysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam","Dim"],daysMin:["D","L","Ma","Me","J","V","S","D"],months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aou","Sep","Oct","Nov","Déc"],today:"Aujourd'hui",clear:"Effacer",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.fr={days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"],daysShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam.","dim."],daysMin:["d","l","ma","me","j","v","s","d"],months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthsShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],today:"Aujourd'hui",clear:"Effacer",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.gl={days:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado","Domingo"],daysShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb","Dom"],daysMin:["Do","Lu","Ma","Me","Xo","Ve","Sa","Do"],months:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["Xan","Feb","Mar","Abr","Mai","Xun","Xul","Ago","Sep","Out","Nov","Dec"],today:"Hoxe",clear:"Limpar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.he={days:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"],daysShort:["א","ב","ג","ד","ה","ו","ש","א"],daysMin:["א","ב","ג","ד","ה","ו","ש","א"],months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],today:"היום",rtl:!0}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.hr={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota","Nedjelja"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub","Ned"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su","Ne"],months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthsShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],today:"Danas"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.hu={days:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat","Vasárnap"],daysShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo","Vas"],daysMin:["Va","Hé","Ke","Sz","Cs","Pé","Sz","Va"],months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthsShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Sze","Okt","Nov","Dec"],today:"Ma",weekStart:1,format:"yyyy.mm.dd"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.hy={days:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ","Կիրակի"],daysShort:["Կիր","Երկ","Երք","Չոր","Հնգ","Ուր","Շաբ","Կիր"],daysMin:["Կի","Եկ","Եք","Չո","Հի","Ու","Շա","Կի"],months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],monthsShort:["Հնվ","Փետ","Մար","Ապր","Մայ","Հուն","Հուլ","Օգս","Սեպ","Հոկ","Նոյ","Դեկ"],today:"Այսօր",clear:"Ջնջել",format:"dd.mm.yyyy",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.id={days:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu"],daysShort:["Mgu","Sen","Sel","Rab","Kam","Jum","Sab","Mgu"],daysMin:["Mg","Sn","Sl","Ra","Ka","Ju","Sa","Mg"],months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des"],today:"Hari Ini",clear:"Kosongkan"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.is={days:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur","Sunnudagur"],daysShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau","Sun"],daysMin:["Su","Má","Þr","Mi","Fi","Fö","La","Su"],months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],today:"Í Dag"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Dom"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa","Do"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",clear:"Cancella",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato","Domenica"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Dom"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa","Do"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",clear:"Cancella",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.ja={days:["日曜","月曜","火曜","水曜","木曜","金曜","土曜","日曜"],daysShort:["日","月","火","水","木","金","土","日"],daysMin:["日","月","火","水","木","金","土","日"],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",format:"yyyy/mm/dd",clear:"クリア"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.ka={days:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი","კვირა"],daysShort:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ","კვი"],daysMin:["კვ","ორ","სა","ოთ","ხუ","პა","შა","კვ"],months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომები","ნოემბერი","დეკემბერი"],monthsShort:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],today:"დღეს",clear:"გასუფთავება",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.kh={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍","អាទិត្យ"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍","អា.ទិ"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍","អា.ទិ"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.kk={days:["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі","Жексенбі"],daysShort:["Жек","Дүй","Сей","Сәр","Бей","Жұм","Сен","Жек"],daysMin:["Жк","Дс","Сс","Ср","Бс","Жм","Сн","Жк"],months:["Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым","Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан"],monthsShort:["Қаң","Ақп","Нау","Сәу","Мамыр","Мау","Шлд","Тмз","Қыр","Қзн","Қар","Жел"],today:"Бүгін",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.kr={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일","일요일"],daysShort:["일","월","화","수","목","금","토","일"],daysMin:["일","월","화","수","목","금","토","일"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.lt={days:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis","Sekmadienis"],daysShort:["S","Pr","A","T","K","Pn","Š","S"],daysMin:["Sk","Pr","An","Tr","Ke","Pn","Št","Sk"],months:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthsShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],today:"Šiandien",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.lv={days:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena","Svētdiena"],daysShort:["Sv","P","O","T","C","Pk","S","Sv"],daysMin:["Sv","Pr","Ot","Tr","Ce","Pk","Se","Sv"],months:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],today:"Šodien",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.me={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota","Nedjelja"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub","Ned"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su","Ne"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,clear:"Izbriši",format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.mk={days:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота","Недела"],daysShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб","Нед"],daysMin:["Не","По","Вт","Ср","Че","Пе","Са","Не"],months:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],today:"Денес",format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.ms={days:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu","Ahad"],daysShort:["Aha","Isn","Sel","Rab","Kha","Jum","Sab","Aha"],daysMin:["Ah","Is","Se","Ra","Kh","Ju","Sa","Ah"],months:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],today:"Hari Ini"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.nb.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.nb={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag","Søndag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør","Søn"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø","Sø"],months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"I Dag"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates["nl-BE"]={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag","zondag"],daysShort:["zo","ma","di","wo","do","vr","za","zo"],daysMin:["zo","ma","di","wo","do","vr","za","zo"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",clear:"Leegmaken",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.nl={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag","zondag"],daysShort:["zo","ma","di","wo","do","vr","za","zo"],daysMin:["zo","ma","di","wo","do","vr","za","zo"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",clear:"Wissen",weekStart:1,format:"dd-mm-yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.no={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø"],months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"I dag",clear:"Nullstill",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.pl={days:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota","Niedziela"],daysShort:["Nie","Pn","Wt","Śr","Czw","Pt","So","Nie"],daysMin:["N","Pn","Wt","Śr","Cz","Pt","So","N"],months:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthsShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],today:"Dzisiaj",weekStart:1,clear:"Wyczyść"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates["pt-BR"]={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado","Domingo"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb","Dom"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa","Do"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",clear:"Limpar"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.pt={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado","Domingo"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb","Dom"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa","Do"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",clear:"Limpar"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.ro={days:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă","Duminică"],daysShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm","Dum"],daysMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ","Du"],months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthsShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],today:"Astăzi",clear:"Șterge",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates["rs-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota","Nedelja"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub","Ned"],daysMin:["N","Po","U","Sr","Č","Pe","Su","N"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.rs={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота","Недеља"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб","Нед"],daysMin:["Н","По","У","Ср","Ч","Пе","Су","Н"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.ru={days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота","Воскресенье"],daysShort:["Вск","Пнд","Втр","Срд","Чтв","Птн","Суб","Вск"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб","Вс"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",format:"dd.mm.yyyy",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.sk={days:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota","Nedeľa"],daysShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob","Ned"],daysMin:["Ne","Po","Ut","St","Št","Pia","So","Ne"],months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],today:"Dnes"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.sl={days:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota","Nedelja"],daysShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob","Ned"],daysMin:["Ne","Po","To","Sr","Če","Pe","So","Ne"],months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danes"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.sq={days:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë","E Diel"],daysShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu","Die"],daysMin:["Di","Hë","Ma","Më","En","Pr","Sht","Di"],months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],monthsShort:["Jan","Shk","Mar","Pri","Maj","Qer","Korr","Gu","Sht","Tet","Nën","Dhjet"],today:"Sot"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates["sr-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota","Nedelja"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub","Ned"],daysMin:["N","Po","U","Sr","Č","Pe","Su","N"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.sr={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота","Недеља"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб","Нед"],daysMin:["Н","По","У","Ср","Ч","Пе","Су","Н"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.sv={days:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag","Söndag"],daysShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör","Sön"],daysMin:["Sö","Må","Ti","On","To","Fr","Lö","Sö"],months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"Idag",format:"yyyy-mm-dd",weekStart:1,clear:"Rensa"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.sw={days:["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi","Jumapili"],daysShort:["J2","J3","J4","J5","Alh","Ij","J1","J2"],daysMin:["2","3","4","5","A","I","1","2"],months:["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"],monthsShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Des"],today:"Leo"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.th={days:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"],daysShort:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],daysMin:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthsShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],today:"วันนี้"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.tr={days:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar"],daysShort:["Pz","Pzt","Sal","Çrş","Prş","Cu","Cts","Pz"],daysMin:["Pz","Pzt","Sa","Çr","Pr","Cu","Ct","Pz"],months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthsShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],today:"Bugün",clear:"Temizle",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.uk={days:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота","Неділя"],daysShort:["Нед","Пнд","Втр","Срд","Чтв","Птн","Суб","Нед"],daysMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб","Нд"],months:["Cічень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthsShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],today:"Сьогодні",clear:"Очистити",format:"dd.mm.yyyy",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates.vi={days:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy","Chủ nhật"],daysShort:["CN","Thứ 2","Thứ 3","Thứ 4","Thứ 5","Thứ 6","Thứ 7","CN"],daysMin:["CN","T2","T3","T4","T5","T6","T7","CN"],months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],monthsShort:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],today:"Hôm nay",clear:"Xóa",format:"dd/mm/yyyy"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates["zh-CN"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"],daysShort:["周日","周一","周二","周三","周四","周五","周六","周日"],daysMin:["日","一","二","三","四","五","六","日"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],today:"今日",format:"yyyy年mm月dd日",weekStart:1,clear:"清空"}}(jQuery); -------------------------------------------------------------------------------- /assets/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.datepicker.dates["zh-TW"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"],daysShort:["週日","週一","週二","週三","週四","週五","週六","週日"],daysMin:["日","一","二","三","四","五","六","日"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],today:"今天",format:"yyyy年mm月dd日",weekStart:1}}(jQuery); -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sygmaa/grids", 3 | "description": "A Datagrid widget for laravel 5. It easily generate datatables from your entities.", 4 | "homepage": "https://github.com/sygmaa/grids", 5 | "type": "library", 6 | "license": "MIT", 7 | "keywords": [ 8 | "grids", 9 | "datagrid laravel 5", 10 | "laravel 5 datagrid", 11 | "tables", 12 | "datatable", 13 | "datagrid", 14 | "grids", 15 | "grid laravel", 16 | "sygmaa", 17 | "laravel 5", 18 | "table laravel" 19 | ], 20 | "authors": [ 21 | { 22 | "name": "Kévin DUMONT", 23 | "email": "k.dumont1994@gmail.com", 24 | "homepage": "http://kevindumont.fr", 25 | "role": "Developer" 26 | } 27 | ], 28 | "require": { 29 | "php": ">=5.4.0", 30 | "illuminate/support": ">=4.2" 31 | }, 32 | "autoload": { 33 | "psr-4": { 34 | "Sygmaa\\Grids\\": "src/" 35 | } 36 | }, 37 | "support": { 38 | "email": "k.dumont1994@gmail.com", 39 | "source": "https://github.com/sygmaa/grids", 40 | "issues": "https://github.com/sygmaa/grids/issues" 41 | }, 42 | "minimum-stability": "dev" 43 | } 44 | -------------------------------------------------------------------------------- /resources/lang/en/grids.php: -------------------------------------------------------------------------------- 1 | 'Yes', 5 | 'no' => 'No', 6 | 'search.by' => 'Search by :name', 7 | 'apply' => 'Apply', 8 | 'ok' => 'Ok', 9 | 'reset' => 'Reset', 10 | 'first' => 'First', 11 | 'previous' => 'Previous', 12 | 'next' => 'Next', 13 | 'last' => 'Last', 14 | 'results' => 'result|results', 15 | 'total' => 'total', 16 | 'page' => 'page', 17 | 'of' => 'of', 18 | 'to' => 'to', 19 | 'select' => 'Please select', 20 | 'actions' => 'Actions', 21 | 'areYouSure' => 'Are you sure ?', 22 | ]; -------------------------------------------------------------------------------- /resources/lang/fr/grids.php: -------------------------------------------------------------------------------- 1 | 'Oui', 5 | 'no' => 'Non', 6 | 'search.by' => 'Rechercher par :name', 7 | 'apply' => 'Appliquer', 8 | 'ok' => 'Ok', 9 | 'reset' => 'Réinitialiser', 10 | 'first' => 'Première', 11 | 'previous' => 'Précédente', 12 | 'next' => 'Suivante', 13 | 'last' => 'Dernière', 14 | 'results' => 'résultat|résultats', 15 | 'total' => 'au total', 16 | 'page' => 'page', 17 | 'of' => 'sur', 18 | 'to' => 'à', 19 | 'select' => 'Sélectionnez une valeur', 20 | 'actions' => 'Actions', 21 | 'areYouSure' => 'Etes-vous certain ?', 22 | ]; -------------------------------------------------------------------------------- /resources/views/assets/head.blade.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/views/assets/scripts.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /resources/views/assets/styles.blade.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/views/fields/boolean.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label($field, Lang::get('grids::grids.search.by', ['name' => $field->getLabel()])) !!} 3 | 4 |
5 | {!! Form::text($field->getName(), $request->input($field->getName()), ['class' => "datepicker form-control"]) !!} 6 |
7 |
8 |
-------------------------------------------------------------------------------- /resources/views/fields/date.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label($field, Lang::get('grids::grids.search.by', ['name' => $field->getLabel()])) !!} 3 | 4 |
5 | {!! Form::text($field->getName().'Start', $request->input($field->getName().'Start'), ['class' => "datepicker form-control"]) !!} 6 | @lang('grids::grids.to') 7 | {!! Form::text($field->getName().'End', $request->input($field->getName().'End'), ['class' => "datepicker form-control"]) !!} 8 |
9 |
10 |
-------------------------------------------------------------------------------- /resources/views/fields/manyRelation.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label($field->getNameForUrl(), Lang::get('grids::grids.search.by', ['name' => $field->getLabel()])) !!} 3 | {!! Form::select($field->getNameForUrl(), [null => Lang::get("grids::grids.select")] + $model, $input, ['class' => "form-control"]) !!} 4 |
5 |
-------------------------------------------------------------------------------- /resources/views/fields/oneRelation.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label($field->getNameForUrl(), Lang::get('grids::grids.search.by', ['name' => $field->getLabel()])) !!} 3 | {!! Form::select($field->getNameForUrl(), [null => Lang::get("grids::grids.select")] + $model, $input, ['class' => "form-control"]) !!} 4 |
5 |
-------------------------------------------------------------------------------- /resources/views/fields/text.blade.php: -------------------------------------------------------------------------------- 1 |
2 | {!! Form::label($field, Lang::get('grids::grids.search.by', ['name' => $field->getLabel()]) ." : ") !!} 3 | {!! Form::text($field, $request->input($field->getName()), [ 4 | 'class' => "form-control", 5 | 'placeholder' => Lang::get('grids::grids.search.by', ['name' => $field->getLabel()])."..." 6 | ]) !!} 7 |
8 |
-------------------------------------------------------------------------------- /resources/views/filters.blade.php: -------------------------------------------------------------------------------- 1 | {{-- Filter form --}} 2 |
3 | @foreach($fields as $field) 4 | @if($field->isFilterable()) 5 | {!! $field->renderFilter() !!} 6 | 7 | @endif 8 | @endforeach 9 | 10 | @if(isset($filterable)) 11 |
12 | {!! Form::submit(Lang::get('grids::grids.apply'), ['class' => "btn btn-primary",]) !!} 13 | @if($reset) 14 | @lang('grids::grids.reset') 15 | @endif 16 |
17 | @endif 18 |
-------------------------------------------------------------------------------- /resources/views/pagination.blade.php: -------------------------------------------------------------------------------- 1 |
    2 | @if($rows->currentPage() > 1) 3 | 4 |
  • 5 | 6 | @lang('grids::grids.first') 7 | 8 |
  • 9 | 10 | @if($rows->currentPage()-1 >= 1) 11 |
  • 12 | 13 | @lang('grids::grids.previous') 14 | 15 |
  • 16 | @endif 17 | @endif 18 | 19 | @if($rows->currentPage() >= 1 && $rows->currentPage() <= 5 && $rows->lastPage() >= 10) 20 | 21 | @for($i= 1; $i <= 10; $i++) 22 |
  • currentPage()) class="active" @endif> 23 | 24 | {{ $i }} 25 | 26 |
  • 27 | @endfor 28 | 29 | @elseif($rows->currentPage() <= $rows->lastPage() && $rows->currentPage() >= $rows->lastPage() - 5 && $rows->lastPage() >= 10) 30 | 31 | @for($i = $rows->lastPage() - 10; $i <= $rows->lastPage() ; $i++) 32 |
  • currentPage())class="active"@endif> 33 | 34 | {{ $i }} 35 | 36 |
  • 37 | @endfor 38 | 39 | @elseif($rows->currentPage() > $rows->lastPage() && $rows->currentPage() < $rows->lastPage() - 5 && $rows->lastPage() >= 10) 40 | 41 | @for($i = ($rows->currentPage() - 5); $i < ($rows->currentPage() + 5); $i++) 42 |
  • currentPage())class="active"@endif> 43 | 44 | {{ $i }} 45 | 46 |
  • 47 | @endfor 48 | @else 49 | @for($i = 1; $i <= $rows->lastPage(); $i++) 50 |
  • currentPage()) class="active" @endif> 51 | 52 | {{ $i }} 53 | 54 |
  • 55 | @endfor 56 | @endif 57 | 58 | @if($rows->currentPage() < $rows->lastPage()) 59 | 60 | @if($rows->currentPage() + 1 <= $rows->lastPage()) 61 |
  • 62 | 63 | @lang('grids::grids.next') 64 | 65 |
  • 66 | @endif 67 | 68 |
  • 69 | 70 | @lang('grids::grids.last') 71 | 72 |
  • 73 | @endif 74 |
-------------------------------------------------------------------------------- /resources/views/paginationInfos.blade.php: -------------------------------------------------------------------------------- 1 | {{ $rows->count() }} {{ Lang::choice('grids::grids.results', $rows->count()) }} 2 | ({{ $rows->total() }} @lang('grids::grids.total')), 3 | @lang('grids::grids.page') {{ $rows->currentPage() }} @lang('grids::grids.of') {{ $rows->lastPage() == 0 ? 1 : $rows->lastPage() }} -------------------------------------------------------------------------------- /resources/views/table.blade.php: -------------------------------------------------------------------------------- 1 | {{-- Data table --}} 2 | 3 | {!! Form::open(['id' => 'grids-form']) !!} 4 | 5 | @if($massActions ) 6 |
7 |
8 | {!! Form::label('grids-massActions', Lang::get('grids::grids.actions') . " : ") !!} 9 | {!! Form::select('urlMassAction', [null => Lang::get("grids::grids.select")] + $massActions, null, [ 10 | 'class' => "form-control", 11 | 'id' => "grids-massActions", 12 | 'onchange' => "check()" 13 | ]) !!} 14 | {!! Form::hidden('_token', csrf_token()) !!} 15 | {!! Form::submit(Lang::get("grids::grids.ok"), [ 16 | 'class' => "btn btn-primary", 17 | 'onclick' => "return confirm('" . Lang::get("grids::grids.areYouSure") . "');" 18 | ]) !!} 19 |
20 |
21 |
22 |
23 | @endif 24 | 25 | 26 | 27 | 28 | @if($actions) 29 | @foreach($actions as $action) 30 | @if($action->isMassAction()) 31 | 34 | @endif 35 | @endforeach 36 | @endif 37 | 38 | @foreach($fields as $field) 39 | @if($field->isVisible()) 40 | 55 | @endif 56 | @endforeach 57 | 58 | @if($singlesAction = $actions->getSingleActions()) 59 | 60 | @endif 61 | 62 | 63 | 64 | @foreach($rows as $row) 65 | 66 | @if($actions) 67 | @foreach($actions as $action) 68 | @if($action->isMassAction()) 69 | getPrimary()->getName() ?> 70 | 71 | @endif 72 | @endforeach 73 | @endif 74 | 75 | @foreach($fields as $field) 76 | @if($field->isVisible()) 77 | 78 | @endif 79 | @endforeach 80 | 81 | @if($singlesAction) 82 | 87 | @endif 88 | 89 | 90 | @endforeach 91 | 92 |
32 | 33 | 41 | {{ $field->getLabel() }} 42 | 43 | @if($field->isSortable()) 44 | @if($request->input('sort'.ucfirst($field->getName())) == "desc") 45 | 46 | 47 | 48 | @else 49 | 50 | 51 | 52 | @endif 53 | @endif 54 | @lang('grids::grids.actions')
{!! Form::checkbox('grids-ids[]', $row->$primary) !!}{!! $field->render($row) !!} 83 | @foreach($singlesAction as $action) 84 | {!! $action->getCallback($action->getLabel(), $row) !!} 85 | @endforeach 86 |
93 | {!! Form::close() !!} -------------------------------------------------------------------------------- /src/Action.php: -------------------------------------------------------------------------------- 1 | request = $request; 33 | $this->label = $label; 34 | } 35 | 36 | /** 37 | * @return mixed 38 | */ 39 | public function getLabel() 40 | { 41 | return $this->label; 42 | } 43 | 44 | /** 45 | * @return mixed 46 | */ 47 | public function isMassAction() 48 | { 49 | return is_a($this, 'Sygmaa\Grids\MassAction'); 50 | } 51 | 52 | /** 53 | * @param mixed $label 54 | */ 55 | public function setLabel($label) 56 | { 57 | $this->label = $label; 58 | } 59 | } -------------------------------------------------------------------------------- /src/ActionsCollection.php: -------------------------------------------------------------------------------- 1 | add($action); 17 | } 18 | 19 | /** 20 | * @return array 21 | */ 22 | public function getMassActions() 23 | { 24 | $return = array(); 25 | 26 | foreach($this->array as $action){ 27 | if($action->isMassAction()) 28 | $return[] = $action; 29 | } 30 | return $return; 31 | } 32 | 33 | /** 34 | * @return array 35 | */ 36 | public function getSingleActions() 37 | { 38 | $return = array(); 39 | 40 | foreach($this->array as $action){ 41 | if(!$action->isMassAction()) 42 | $return[] = $action; 43 | } 44 | return $return; 45 | } 46 | 47 | 48 | /** 49 | * @return array 50 | */ 51 | public function getAll() 52 | { 53 | $return = array(); 54 | 55 | foreach($this->array as $field) 56 | $return[] = $field->getName(); 57 | 58 | return $return; 59 | } 60 | } -------------------------------------------------------------------------------- /src/Components/Collection.php: -------------------------------------------------------------------------------- 1 | array[$this->count++] = $array; 25 | return $this->array[$this->count - 1]; 26 | } 27 | 28 | /** 29 | * @return Iterator 30 | */ 31 | public function getIterator() 32 | { 33 | return new Iterator($this->array); 34 | } 35 | } -------------------------------------------------------------------------------- /src/Components/Iterator.php: -------------------------------------------------------------------------------- 1 | array = $array; 16 | } 17 | 18 | /** 19 | * 20 | */ 21 | public function rewind() 22 | { 23 | reset($this->array); 24 | } 25 | 26 | /** 27 | * @return mixed 28 | */ 29 | public function current() 30 | { 31 | return current($this->array); 32 | } 33 | 34 | /** 35 | * @return mixed 36 | */ 37 | public function key() 38 | { 39 | return key($this->array); 40 | } 41 | 42 | /** 43 | * @return mixed 44 | */ 45 | public function next() 46 | { 47 | return next($this->array); 48 | } 49 | 50 | /** 51 | * @return bool 52 | */ 53 | public function valid() 54 | { 55 | return ($this->key() !== null && $this->key() !== false); 56 | } 57 | } -------------------------------------------------------------------------------- /src/Exceptions/FieldFilterableMustBeBooleanException.php: -------------------------------------------------------------------------------- 1 | name; 53 | } 54 | 55 | /** 56 | * @param Request $request 57 | * @param Grids $grids 58 | * @param $name 59 | * @param $label 60 | * @throws FieldLabelMustBeStringException 61 | * @throws FieldNameMustBeStringException 62 | */ 63 | public function __construct(Request $request, $name, $label) 64 | { 65 | if(!is_string($name)) 66 | throw new FieldNameMustBeStringException(); 67 | 68 | if(!is_string($label)) 69 | throw new FieldLabelMustBeStringException(); 70 | 71 | $this->name = $name; 72 | $this->label = $label; 73 | $this->request = $request; 74 | $this->sortable = false; 75 | $this->filterable = false; 76 | $this->primary = false; 77 | $this->visible = true; 78 | } 79 | 80 | /** 81 | * @return int 82 | */ 83 | public function isPrimary() 84 | { 85 | return $this->primary; 86 | } 87 | 88 | /** 89 | * @param int $primary 90 | */ 91 | public function setPrimary() 92 | { 93 | $this->primary = true; 94 | return $this; 95 | } 96 | 97 | /** 98 | * $name Getter 99 | * @return string 100 | */ 101 | public function getName() 102 | { 103 | return $this->name; 104 | } 105 | 106 | /** 107 | * $label Getter 108 | * @return string 109 | */ 110 | public function getLabel() 111 | { 112 | return $this->label; 113 | } 114 | 115 | /** 116 | * $label Setter 117 | * @param $label 118 | * @return $this 119 | * @throws FieldLabelMustBeStringException 120 | */ 121 | public function setLabel($label) 122 | { 123 | if(!is_string($label)) 124 | throw new FieldLabelMustBeStringException(); 125 | 126 | $this->label = $label; 127 | return $this; 128 | } 129 | 130 | /** 131 | * $sortable Getter 132 | * @return string 133 | */ 134 | public function isSortable() 135 | { 136 | return $this->sortable; 137 | } 138 | 139 | /** 140 | * $sortable Setter 141 | * @return $this 142 | */ 143 | public function setSortable($sortable = true) 144 | { 145 | if(!is_bool($sortable)) 146 | throw new FieldSortableMustBeBooleanException(); 147 | 148 | $this->sortable = $sortable; 149 | return $this; 150 | } 151 | 152 | /** 153 | * $filterable Getter 154 | * @return string 155 | */ 156 | public function isFilterable() 157 | { 158 | return $this->filterable; 159 | } 160 | 161 | /** 162 | * $filterable Setter 163 | * @return $this 164 | */ 165 | public function setFilterable($filterable = true) 166 | { 167 | if(!is_bool($filterable)) 168 | throw new FieldFilterableMustBeBooleanException(); 169 | 170 | $this->filterable = $filterable; 171 | return $this; 172 | } 173 | 174 | /** 175 | * @param $order 176 | * @return string 177 | */ 178 | public function sortingUrl($order) 179 | { 180 | $inputName = 'sort'. ucfirst($this->getName()); 181 | return $this->request->url() . '?' . http_build_query(array_merge($this->request->except($inputName), [$inputName => $order])); 182 | } 183 | 184 | /** 185 | * @param $visible 186 | * @return $this 187 | */ 188 | public function setVisible($visible) 189 | { 190 | $this->visible = $visible; 191 | return $this; 192 | } 193 | 194 | /** 195 | * @return bool 196 | */ 197 | public function isVisible() 198 | { 199 | return $this->visible; 200 | } 201 | } -------------------------------------------------------------------------------- /src/Fields/Boolean.php: -------------------------------------------------------------------------------- 1 | getName(); 30 | if(isset($row->$nameField) && $row->$nameField) { 31 | return Lang::get('grids::grids.yes'); 32 | } 33 | return Lang::get('grids::grids.no'); 34 | } 35 | 36 | /** 37 | * @return $this 38 | */ 39 | function renderFilter() 40 | { 41 | throw new Exception('This feature is not implemented. Coming soon.'); 42 | } 43 | 44 | /** 45 | * @return mixed 46 | */ 47 | function getFilters($model) 48 | { 49 | throw new Exception('This feature is not implemented. Coming soon.'); 50 | } 51 | } -------------------------------------------------------------------------------- /src/Fields/Custom.php: -------------------------------------------------------------------------------- 1 | callback = $callback; 21 | } 22 | 23 | /** 24 | * @param $data 25 | * @return mixed 26 | */ 27 | function render($row) 28 | { 29 | $return = $this->callback; 30 | 31 | if($row && is_callable($return)) 32 | return $return($row); 33 | return false; 34 | } 35 | 36 | /** 37 | * @return $this 38 | */ 39 | function renderFilter() 40 | { 41 | throw new \Exception('This feature is disabled for this field'); 42 | } 43 | 44 | /** 45 | * @return mixed 46 | */ 47 | function getFilters($model) 48 | { 49 | throw new \Exception('This feature is disabled for this field'); 50 | } 51 | } -------------------------------------------------------------------------------- /src/Fields/Date.php: -------------------------------------------------------------------------------- 1 | formatting = $formatting; 21 | } 22 | 23 | /** 24 | * @return mixed 25 | */ 26 | public function getFormatting() 27 | { 28 | return $this->formatting; 29 | } 30 | 31 | /** 32 | * @param $data 33 | * @return mixed 34 | */ 35 | function render($row) 36 | { 37 | $nameField = $this->getName(); 38 | if(isset($row->$nameField)) { 39 | $datetime = new \DateTime($row->$nameField); 40 | return $datetime->format($this->formatting); 41 | } 42 | return ""; 43 | } 44 | 45 | /** 46 | * @return $this 47 | */ 48 | function renderFilter() 49 | { 50 | return view('grids::fields.date') 51 | ->with('request', $this->request) 52 | ->with('field', $this); 53 | } 54 | 55 | /** 56 | * @return mixed 57 | */ 58 | function getFilters($model) 59 | { 60 | $start = $this->request->input($this->getName()."Start"); 61 | $end = $this->request->input($this->getName()."End"); 62 | 63 | if($this->validateDate($start) && $this->validateDate($end)) { 64 | return $model 65 | ->where($this->getName(), '>=', new \DateTime($start)) 66 | ->where($this->getName(), '<=', with(new \DateTime($end))->add(new \DateInterval('P1D'))); 67 | } 68 | return $model; 69 | } 70 | 71 | /** 72 | * @param $date 73 | * @return bool 74 | */ 75 | private function validateDate($date) 76 | { 77 | $d = \DateTime::createFromFormat('Y-m-d', $date); 78 | return $d && $d->format('Y-m-d') == $date; 79 | } 80 | } -------------------------------------------------------------------------------- /src/Fields/Field.php: -------------------------------------------------------------------------------- 1 | name; 53 | } 54 | 55 | /** 56 | * @param Request $request 57 | * @param Grids $grids 58 | * @param $name 59 | * @param $label 60 | * @throws FieldLabelMustBeStringException 61 | * @throws FieldNameMustBeStringException 62 | */ 63 | public function __construct(Request $request, $name, $label) 64 | { 65 | if(!is_string($name)) 66 | throw new FieldNameMustBeStringException(); 67 | 68 | if(!is_string($label)) 69 | throw new FieldLabelMustBeStringException(); 70 | 71 | $this->name = $name; 72 | $this->label = $label; 73 | $this->request = $request; 74 | $this->sortable = false; 75 | $this->filterable = false; 76 | $this->primary = false; 77 | $this->visible = true; 78 | } 79 | 80 | /** 81 | * @return int 82 | */ 83 | public function isPrimary() 84 | { 85 | return $this->primary; 86 | } 87 | 88 | /** 89 | * @param int $primary 90 | */ 91 | public function setPrimary() 92 | { 93 | $this->primary = true; 94 | return $this; 95 | } 96 | 97 | /** 98 | * $name Getter 99 | * @return string 100 | */ 101 | public function getName() 102 | { 103 | return $this->name; 104 | } 105 | 106 | /** 107 | * $label Getter 108 | * @return string 109 | */ 110 | public function getLabel() 111 | { 112 | return $this->label; 113 | } 114 | 115 | /** 116 | * $label Setter 117 | * @param $label 118 | * @return $this 119 | * @throws FieldLabelMustBeStringException 120 | */ 121 | public function setLabel($label) 122 | { 123 | if(!is_string($label)) 124 | throw new FieldLabelMustBeStringException(); 125 | 126 | $this->label = $label; 127 | return $this; 128 | } 129 | 130 | /** 131 | * $sortable Getter 132 | * @return string 133 | */ 134 | public function isSortable() 135 | { 136 | return $this->sortable; 137 | } 138 | 139 | /** 140 | * $sortable Setter 141 | * @return $this 142 | */ 143 | public function setSortable($sortable = true) 144 | { 145 | if(!is_bool($sortable)) 146 | throw new FieldSortableMustBeBooleanException(); 147 | 148 | $this->sortable = $sortable; 149 | return $this; 150 | } 151 | 152 | /** 153 | * $filterable Getter 154 | * @return string 155 | */ 156 | public function isFilterable() 157 | { 158 | return $this->filterable; 159 | } 160 | 161 | /** 162 | * $filterable Setter 163 | * @return $this 164 | */ 165 | public function setFilterable($filterable = true) 166 | { 167 | if(!is_bool($filterable)) 168 | throw new FieldFilterableMustBeBooleanException(); 169 | 170 | $this->filterable = $filterable; 171 | return $this; 172 | } 173 | 174 | /** 175 | * @param $order 176 | * @return string 177 | */ 178 | public function sortingUrl($order) 179 | { 180 | $inputName = 'sort'. ucfirst($this->getName()); 181 | return $this->request->url() . '?' . http_build_query(array_merge($this->request->except($inputName), [$inputName => $order])); 182 | } 183 | 184 | /** 185 | * @param $visible 186 | * @return $this 187 | */ 188 | public function setVisible($visible) 189 | { 190 | $this->visible = $visible; 191 | return $this; 192 | } 193 | 194 | /** 195 | * @return bool 196 | */ 197 | public function isVisible() 198 | { 199 | return $this->visible; 200 | } 201 | 202 | /** 203 | * @return $this 204 | */ 205 | abstract function render($data); 206 | 207 | /** 208 | * @return $this 209 | */ 210 | abstract function renderFilter(); 211 | 212 | /** 213 | * @param $model 214 | * @param $input 215 | * @return mixed 216 | */ 217 | abstract function getFilters($model); 218 | } -------------------------------------------------------------------------------- /src/Fields/ManyRelation.php: -------------------------------------------------------------------------------- 1 | relation = $explode[0]; 43 | $this->name = $explode[1]; 44 | $this->modelName = $modelName; 45 | } 46 | 47 | /** 48 | * @param bool $sortable 49 | */ 50 | public function setSortable($sortable = true) 51 | { 52 | throw new SortableIsDisableOnRelationsException(); 53 | } 54 | 55 | /** 56 | * @return $this 57 | */ 58 | function render($row) 59 | { 60 | $relation = $this->relation; 61 | $name = $this->name; 62 | $return = ''; 63 | $count = 0; 64 | $size = count($row->$relation); 65 | 66 | foreach($row->$relation as $entity){ 67 | $return .= $entity->$name; 68 | if($count < $size - 1) 69 | $return .= ', '; 70 | $count++; 71 | } 72 | 73 | return $return; 74 | } 75 | 76 | /** 77 | * @return string 78 | */ 79 | public function getNameForUrl() 80 | { 81 | return $this->relation . ucfirst($this->name); 82 | } 83 | 84 | /** 85 | * @return $this 86 | */ 87 | function renderFilter() 88 | { 89 | $model = new $this->modelName(); 90 | 91 | return view('grids::fields.manyRelation') 92 | ->with('input', $this->request->input($this->getNameForUrl())) 93 | ->with('field', $this) 94 | ->with('model', $model->lists($this->name, $model->getKeyName())); 95 | } 96 | 97 | /** 98 | * @param $model 99 | * @param $input 100 | * @return mixed 101 | */ 102 | function getFilters($model) 103 | { 104 | $relation = $this->relation; 105 | $input = $this->request->input($this->getNameForUrl()); 106 | $primaryKey = $model->getModel()->$relation()->getRelated()->getKeyName(); 107 | 108 | if($input) { 109 | $model = $model->whereHas($relation, function($q) use ($input, $primaryKey) { 110 | $q->where($primaryKey, '=', $input); 111 | }); 112 | } 113 | return $model; 114 | } 115 | } -------------------------------------------------------------------------------- /src/Fields/OneRelation.php: -------------------------------------------------------------------------------- 1 | relation = $explode[0]; 42 | $this->name = $explode[1]; 43 | $this->modelName = $modelName; 44 | } 45 | 46 | /** 47 | * @param bool $sortable 48 | */ 49 | public function setSortable($sortable = true) 50 | { 51 | throw new SortableIsDisableOnRelationsException(); 52 | } 53 | 54 | /** 55 | * @return string 56 | */ 57 | public function getNameForUrl() 58 | { 59 | return $this->relation . ucfirst($this->name); 60 | } 61 | 62 | /** 63 | * @return $this 64 | */ 65 | function render($row) 66 | { 67 | $relation = $this->relation; 68 | $name = $this->name; 69 | if($row->$relation) 70 | return $row->$relation->$name; 71 | } 72 | 73 | /** 74 | * @return $this 75 | */ 76 | function renderFilter() 77 | { 78 | $model = new $this->modelName(); 79 | 80 | return view('grids::fields.oneRelation') 81 | ->with('input', $this->request->input($this->getNameForUrl())) 82 | ->with('field', $this) 83 | ->with('model', $model->lists($this->name, $model->getKeyName())); 84 | } 85 | 86 | /** 87 | * @param $model 88 | * @param $input 89 | * @return mixed 90 | */ 91 | function getFilters($model) 92 | { 93 | $relation = $this->relation; 94 | $input = $this->request->input($this->getNameForUrl()); 95 | $foreignKey = $model->getModel()->$relation()->getForeignKey(); 96 | 97 | if($input) 98 | $model = $model->where($foreignKey, '=', $input); 99 | return $model; 100 | } 101 | } -------------------------------------------------------------------------------- /src/Fields/Text.php: -------------------------------------------------------------------------------- 1 | getName(); 17 | if(isset($row->$nameField)) 18 | return $row->$nameField; 19 | return ""; 20 | } 21 | 22 | /** 23 | * @return $this 24 | */ 25 | function renderFilter() 26 | { 27 | return view('grids::fields.text') 28 | ->with('request', $this->request) 29 | ->with('field', $this); 30 | } 31 | 32 | /** 33 | * @param $model 34 | * @param $input 35 | * @return mixed 36 | */ 37 | function getFilters($model) 38 | { 39 | if($input = $this->request->input($this->getName())) 40 | return $model->orWhere($this->getName(), 'LIKE', "%$input%"); 41 | return $model; 42 | } 43 | } -------------------------------------------------------------------------------- /src/FieldsCollection.php: -------------------------------------------------------------------------------- 1 | add($field); 18 | } 19 | 20 | /** 21 | * @return array 22 | */ 23 | public function getAll() 24 | { 25 | $return = array(); 26 | 27 | foreach($this->array as $field) 28 | $return[] = $field->getName(); 29 | 30 | return $return; 31 | } 32 | 33 | /** 34 | * @return array 35 | */ 36 | public function getPrimary() 37 | { 38 | foreach($this->array as $field) 39 | { 40 | if($field->isPrimary()) 41 | return $field; 42 | } 43 | return false; 44 | } 45 | } -------------------------------------------------------------------------------- /src/Grids.php: -------------------------------------------------------------------------------- 1 | fieldsCollection = new FieldsCollection(); 66 | $this->actionsCollection = new ActionsCollection(); 67 | $this->request = $request; 68 | $this->model = $model; 69 | $this->reset = false; 70 | $this->pagination = 15; 71 | $this->conditions = array(); 72 | $this->inConditions = array(); 73 | $this->orders = array(); 74 | } 75 | 76 | /** 77 | * @param $name 78 | * @param string $label 79 | * @return $this 80 | */ 81 | public function addField(Field $field) 82 | { 83 | $this->fieldsCollection->addFields($field); 84 | return $this; 85 | } 86 | 87 | /** 88 | * @param $field 89 | * @return $this 90 | */ 91 | public function addAction(Action $action) 92 | { 93 | $this->actionsCollection->addAction($action); 94 | return $this; 95 | } 96 | 97 | /** 98 | * @param $nbEntries 99 | * @return $this 100 | */ 101 | public function paginate($nbEntries) 102 | { 103 | $this->pagination = $nbEntries; 104 | return $this; 105 | } 106 | 107 | /** 108 | * @return $this 109 | */ 110 | public function reset() 111 | { 112 | $this->reset = true; 113 | return $this; 114 | } 115 | 116 | /** 117 | * @return mixed 118 | */ 119 | protected function rows() 120 | { 121 | if(!$this->rows) { 122 | $model = $this->model; 123 | 124 | foreach($this->fieldsCollection as $field) { 125 | 126 | if($field->isFilterable()) 127 | $model = $field->getFilters($model); 128 | 129 | 130 | if($field->isSortable()){ 131 | 132 | $inputName = 'sort' . ucfirst($field->getName()); 133 | $inputValue = strtoupper($this->request->input($inputName)); 134 | 135 | if($inputValue && ($inputValue == "ASC" || $inputValue == "DESC")) 136 | $model = $model->orderBy($field->getName(), $inputValue); 137 | } 138 | } 139 | 140 | foreach($this->conditions as $condition) { 141 | if(isset($condition['operator'])) 142 | $model = $model->where($condition['key'], $condition['operator'], $condition['value']); 143 | else 144 | $model = $model->where($condition['key'], $condition['value']); 145 | } 146 | 147 | foreach($this->inConditions as $condition) { 148 | $model = $model->whereIn($condition['key'], $condition['array']); 149 | } 150 | 151 | foreach($this->orders as $order) { 152 | $model = $model->orderBy($order['key'], $order['value']); 153 | } 154 | 155 | $this->rows = $model->paginate($this->pagination)->setPath($this->request->url()); 156 | } 157 | return $this->rows; 158 | } 159 | 160 | /** 161 | * @return $this 162 | */ 163 | public function renderPaginationInfos() 164 | { 165 | return view('grids::paginationInfos') 166 | ->with('rows', $this->rows()); 167 | } 168 | 169 | /** 170 | * @return $this 171 | */ 172 | public function renderPagination() 173 | { 174 | $url = $this->request->url() . '?' . http_build_query($this->request->except('page')); 175 | 176 | return view('grids::pagination') 177 | ->with('url', $url) 178 | ->with('rows', $this->rows()); 179 | } 180 | 181 | /** 182 | * @return $this 183 | */ 184 | public function renderFilters() 185 | { 186 | return view('grids::filters') 187 | ->with('fields', $this->fieldsCollection) 188 | ->with('reset', $this->reset) 189 | ->with('request', $this->request) 190 | ->with('rows', $this->rows()); 191 | } 192 | 193 | /** 194 | * @return $this 195 | */ 196 | public function renderTable() 197 | { 198 | $massActions = $this->actionsCollection->getMassActions(); 199 | 200 | $array = array(); 201 | 202 | foreach($massActions as $action) { 203 | $array[$action->getUrl()] = $action->getLabel(); 204 | } 205 | 206 | return view('grids::table') 207 | ->with('fields', $this->fieldsCollection) 208 | ->with('actions', $this->actionsCollection) 209 | ->with('massActions', $array) 210 | ->with('request', $this->request) 211 | ->with('rows', $this->rows()); 212 | } 213 | 214 | /** 215 | * @param $key 216 | * @param $operator 217 | * @param null $value 218 | * @return $this 219 | */ 220 | public function where($key, $operator, $value = null) 221 | { 222 | $condition = array( 223 | 'key' => $key 224 | ); 225 | 226 | if(isset($value)) { 227 | $condition['operator'] = $operator; 228 | $condition['value'] = $value; 229 | } else { 230 | $condition['value'] = $operator; 231 | } 232 | 233 | $this->conditions[] = $condition; 234 | return $this; 235 | } 236 | 237 | /** 238 | * @param $key 239 | * @param $array 240 | * @return $this 241 | */ 242 | public function whereIn($key, $array) 243 | { 244 | $condition = array(); 245 | $condition['key'] = $key; 246 | $condition['array'] = $array; 247 | $this->inConditions[] = $condition; 248 | return $this; 249 | } 250 | 251 | /** 252 | * @param $key 253 | * @param $value 254 | * @return $this 255 | */ 256 | public function orderBy($key, $value) 257 | { 258 | $order = array(); 259 | $order['key'] = $key; 260 | $order['value'] = $value; 261 | $this->orders[] = $order; 262 | return $this; 263 | } 264 | } -------------------------------------------------------------------------------- /src/GridsFacade.php: -------------------------------------------------------------------------------- 1 | loadViewsFrom(__DIR__.'/../resources/views', 'grids'); 15 | $this->loadTranslationsFrom(__DIR__.'/../resources/lang', 'grids'); 16 | 17 | $this->publishes([ 18 | __DIR__.'/../resources/views' => base_path('resources/views/vendor/grids/') 19 | ], 'grids'); 20 | 21 | $this->publishes([ 22 | __DIR__.'/../assets' => public_path('vendor/grids'), 23 | ], 'public'); 24 | } 25 | 26 | /** 27 | * Register the service provider. 28 | * 29 | * @return void 30 | */ 31 | public function register() 32 | { 33 | $this->app->bindShared('grids', function($app) 34 | { 35 | return new GridsShortcuts($app['request']); 36 | }); 37 | $this->app->alias('grids', 'Sygmaa\Grids\Grids'); 38 | } 39 | 40 | /** 41 | * Get the services provided by the provider. 42 | * 43 | * @return array 44 | */ 45 | public function provides() 46 | { 47 | return array('grids'); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/GridsShortcuts.php: -------------------------------------------------------------------------------- 1 | request = $request; 27 | } 28 | 29 | /** 30 | * @param Model $model 31 | * @return mixed 32 | */ 33 | public function make(Model $model) 34 | { 35 | return new Grids($this->request, $model); 36 | } 37 | 38 | /** 39 | * @param $label 40 | * @param $callback 41 | * @return Action 42 | */ 43 | public function action($label, $callback) 44 | { 45 | return new SingleAction($this->request, $label, $callback); 46 | } 47 | 48 | /** 49 | * @param $label 50 | * @param $url 51 | * @return Action 52 | */ 53 | public function massAction($label, $url) 54 | { 55 | return new MassAction($this->request, $label, $url); 56 | } 57 | 58 | /** 59 | * @param $name 60 | * @param $label 61 | * @return Fields\Text 62 | */ 63 | public function text($name, $label = null) 64 | { 65 | return new Fields\Text($this->request, $name, isset($label) ? $label : $name); 66 | } 67 | 68 | /** 69 | * @param $name 70 | * @param $label 71 | * @param $modelName 72 | * @return Fields\ManyRelation 73 | */ 74 | public function manyRelation($name, $label, $modelName) 75 | { 76 | return new Fields\ManyRelation($this->request, $name, $label, $modelName); 77 | } 78 | 79 | /** 80 | * @param $name 81 | * @param $label 82 | * @param $modelName 83 | * @return Fields\ManyRelation 84 | */ 85 | public function oneRelation($name, $label, $modelName) 86 | { 87 | return new Fields\OneRelation($this->request, $name, $label, $modelName); 88 | } 89 | 90 | /** 91 | * @param $name 92 | * @param $label 93 | * @return Fields\Boolean 94 | */ 95 | public function boolean($name, $label) 96 | { 97 | return new Fields\Boolean($this->request, $name, $label); 98 | } 99 | 100 | public function custom($name, $label, $callback) 101 | { 102 | return new Fields\Custom($this->request, $name, $label, $callback); 103 | } 104 | 105 | /** 106 | * @param $name 107 | * @param $label 108 | * @return Fields\Date 109 | */ 110 | public function date($name, $label, $formatting) 111 | { 112 | return new Fields\Date($this->request, $name, $label, $formatting); 113 | } 114 | 115 | /** 116 | * @return \Illuminate\View\View 117 | */ 118 | public function head() 119 | { 120 | return view('grids::assets.head'); 121 | } 122 | 123 | /** 124 | * @return \Illuminate\View\View 125 | */ 126 | public function styles() 127 | { 128 | return view('grids::assets.styles'); 129 | } 130 | 131 | /** 132 | * @return \Illuminate\View\View 133 | */ 134 | public function scripts() 135 | { 136 | return view('grids::assets.scripts'); 137 | } 138 | } 139 | -------------------------------------------------------------------------------- /src/MassAction.php: -------------------------------------------------------------------------------- 1 | url = $url; 26 | } 27 | 28 | /** 29 | * @return mixed 30 | */ 31 | public function getUrl() 32 | { 33 | return $this->url; 34 | } 35 | 36 | /** 37 | * @param mixed $url 38 | */ 39 | public function setUrl($url) 40 | { 41 | $this->url = $url; 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /src/SingleAction.php: -------------------------------------------------------------------------------- 1 | callback = $callback; 26 | } 27 | 28 | /** 29 | * @return mixed 30 | */ 31 | public function getCallback($label, $row = false) 32 | { 33 | $return = $this->callback; 34 | 35 | if($row && is_callable($return)) 36 | return $return($label, $row); 37 | return false; 38 | } 39 | 40 | /** 41 | * @param mixed $callback 42 | */ 43 | public function setCallback($callback) 44 | { 45 | $this->callback = $callback; 46 | } 47 | } --------------------------------------------------------------------------------