├── .gitignore ├── LICENSE ├── README.md ├── account ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── code_update ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── dashboard ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── execute ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── templatetags │ ├── __init__.py │ └── estimate.py ├── tests.py ├── urls.py └── views.py ├── files_manager ├── __init__.py ├── admin.py ├── estimate.py ├── migrations │ └── __init__.py ├── models.py ├── templatetags │ ├── __init__.py │ └── cut_list.py ├── tests.py ├── urls.py └── views.py ├── groups ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── install.txt ├── jobs ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── manage.py ├── middleware ├── __init__.py ├── access_log.py ├── django_slow_log.py └── migrations │ └── __init__.py ├── minions ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── returner ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py └── views.py ├── saltapi.conf ├── saltshaker-init.sql.txt ├── saltshaker ├── __init__.py ├── migrations │ └── __init__.py ├── settings.py ├── urls.py └── wsgi.py ├── screenshots ├── 2015-12-14_155129.png ├── 2015-12-14_160819.png ├── 2015-12-14_160836.png ├── 2015-12-14_160850.png ├── 2015-12-14_160940.png ├── 2015-12-14_160959.png ├── 2015-12-14_161057.png ├── 2015-12-14_161120.png ├── 2015-12-14_161141.png ├── 2015-12-14_161224.png ├── 2015-12-14_161243.png ├── 2015-12-14_161252.png ├── 2015-12-14_171227.png ├── 2016-05-09_103922.png ├── 2016-05-09_104603.png ├── 2016-05-09_104626.png ├── 2016-05-09_104645.png ├── 2016-05-09_104702.png ├── 2016-05-09_104718.png ├── 2016-05-09_104737.png ├── 2016-05-09_104750.png └── 2016-05-09_104800.png ├── shaker ├── __init__.py ├── admin.py ├── check_service.py ├── cron.py ├── highstate.py ├── migrations │ └── __init__.py ├── models.py ├── nodegroups.py ├── salt_module_crawler.py ├── shaker_core.py ├── tasks.py ├── tests.py ├── urls.py └── views.py ├── states_config ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── static ├── bower_components │ ├── bootstrap-social │ │ ├── .bower.json │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── README.md │ │ ├── bootstrap-social.css │ │ ├── bootstrap-social.less │ │ ├── bootstrap-social.scss │ │ └── bower.json │ ├── bootstrap │ │ ├── .bower.json │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ │ ├── css │ │ │ │ ├── bootstrap-theme.css │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ └── bootstrap.min.css │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── js │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── npm.js │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── grunt │ │ │ ├── .jshintrc │ │ │ ├── bs-commonjs-generator.js │ │ │ ├── bs-glyphicons-data-generator.js │ │ │ ├── bs-lessdoc-parser.js │ │ │ ├── bs-raw-files-generator.js │ │ │ ├── configBridge.json │ │ │ └── sauce_browsers.yml │ │ ├── js │ │ │ ├── .jscsrc │ │ │ ├── .jshintrc │ │ │ ├── affix.js │ │ │ ├── alert.js │ │ │ ├── button.js │ │ │ ├── carousel.js │ │ │ ├── collapse.js │ │ │ ├── dropdown.js │ │ │ ├── modal.js │ │ │ ├── popover.js │ │ │ ├── scrollspy.js │ │ │ ├── tab.js │ │ │ ├── tooltip.js │ │ │ └── transition.js │ │ ├── less │ │ │ ├── .csscomb.json │ │ │ ├── .csslintrc │ │ │ ├── alerts.less │ │ │ ├── badges.less │ │ │ ├── bootstrap.less │ │ │ ├── breadcrumbs.less │ │ │ ├── button-groups.less │ │ │ ├── buttons.less │ │ │ ├── carousel.less │ │ │ ├── close.less │ │ │ ├── code.less │ │ │ ├── component-animations.less │ │ │ ├── dropdowns.less │ │ │ ├── forms.less │ │ │ ├── glyphicons.less │ │ │ ├── grid.less │ │ │ ├── input-groups.less │ │ │ ├── jumbotron.less │ │ │ ├── labels.less │ │ │ ├── list-group.less │ │ │ ├── media.less │ │ │ ├── mixins.less │ │ │ ├── mixins │ │ │ │ ├── alerts.less │ │ │ │ ├── background-variant.less │ │ │ │ ├── border-radius.less │ │ │ │ ├── buttons.less │ │ │ │ ├── center-block.less │ │ │ │ ├── clearfix.less │ │ │ │ ├── forms.less │ │ │ │ ├── gradients.less │ │ │ │ ├── grid-framework.less │ │ │ │ ├── grid.less │ │ │ │ ├── hide-text.less │ │ │ │ ├── image.less │ │ │ │ ├── labels.less │ │ │ │ ├── list-group.less │ │ │ │ ├── nav-divider.less │ │ │ │ ├── nav-vertical-align.less │ │ │ │ ├── opacity.less │ │ │ │ ├── pagination.less │ │ │ │ ├── panels.less │ │ │ │ ├── progress-bar.less │ │ │ │ ├── reset-filter.less │ │ │ │ ├── resize.less │ │ │ │ ├── responsive-visibility.less │ │ │ │ ├── size.less │ │ │ │ ├── tab-focus.less │ │ │ │ ├── table-row.less │ │ │ │ ├── text-emphasis.less │ │ │ │ ├── text-overflow.less │ │ │ │ └── vendor-prefixes.less │ │ │ ├── modals.less │ │ │ ├── navbar.less │ │ │ ├── navs.less │ │ │ ├── normalize.less │ │ │ ├── pager.less │ │ │ ├── pagination.less │ │ │ ├── panels.less │ │ │ ├── popovers.less │ │ │ ├── print.less │ │ │ ├── progress-bars.less │ │ │ ├── responsive-embed.less │ │ │ ├── responsive-utilities.less │ │ │ ├── scaffolding.less │ │ │ ├── tables.less │ │ │ ├── theme.less │ │ │ ├── thumbnails.less │ │ │ ├── tooltip.less │ │ │ ├── type.less │ │ │ ├── utilities.less │ │ │ ├── variables.less │ │ │ └── wells.less │ │ └── package.json │ ├── datatables-plugins │ │ ├── .bower.json │ │ ├── README.md │ │ ├── api │ │ │ ├── average().js │ │ │ ├── column().title().js │ │ │ ├── columns().order().js │ │ │ ├── fnAddDataAndDisplay.js │ │ │ ├── fnAddTr.js │ │ │ ├── fnColumnIndexToVisible.js │ │ │ ├── fnDataUpdate.js │ │ │ ├── fnDisplayRow.js │ │ │ ├── fnDisplayStart.js │ │ │ ├── fnFakeRowspan.js │ │ │ ├── fnFilterAll.js │ │ │ ├── fnFilterClear.js │ │ │ ├── fnFilterOnReturn.js │ │ │ ├── fnFindCellRowIndexes.js │ │ │ ├── fnFindCellRowNodes.js │ │ │ ├── fnGetAdjacentTr.js │ │ │ ├── fnGetColumnData.js │ │ │ ├── fnGetColumnIndex.js │ │ │ ├── fnGetHiddenNodes.js │ │ │ ├── fnGetTd.js │ │ │ ├── fnGetTds.js │ │ │ ├── fnLengthChange.js │ │ │ ├── fnMultiFilter.js │ │ │ ├── fnPagingInfo.js │ │ │ ├── fnProcessingIndicator.js │ │ │ ├── fnReloadAjax.js │ │ │ ├── fnSetFilteringDelay.js │ │ │ ├── fnSortNeutral.js │ │ │ ├── fnStandingRedraw.js │ │ │ ├── fnVisibleToColumnIndex.js │ │ │ ├── index.html │ │ │ ├── page.jumpToData().js │ │ │ └── sum().js │ │ ├── features │ │ │ ├── alphabetSearch │ │ │ │ ├── dataTables.alphabetSearch.css │ │ │ │ ├── dataTables.alphabetSearch.js │ │ │ │ └── dataTables.alphabetSearch.min.js │ │ │ ├── lengthLinks │ │ │ │ ├── dataTables.lengthLinks.css │ │ │ │ ├── dataTables.lengthLinks.js │ │ │ │ └── dataTables.lengthLinks.min.js │ │ │ └── searchHighlight │ │ │ │ ├── dataTables.searchHighlight.css │ │ │ │ ├── dataTables.searchHighlight.js │ │ │ │ └── dataTables.searchHighlight.min.js │ │ ├── filtering │ │ │ ├── index.html │ │ │ ├── row-based │ │ │ │ ├── TableTools.ShowSelectedOnly.js │ │ │ │ ├── range_dates.js │ │ │ │ └── range_numbers.js │ │ │ └── type-based │ │ │ │ ├── accent-neutralise.js │ │ │ │ ├── html.js │ │ │ │ └── phoneNumber.js │ │ ├── i18n │ │ │ ├── Afrikaans.lang │ │ │ ├── Albanian.lang │ │ │ ├── Arabic.lang │ │ │ ├── Azerbaijan.lang │ │ │ ├── Bangla.lang │ │ │ ├── Belarusian.lang │ │ │ ├── Bulgarian.lang │ │ │ ├── Catalan.lang │ │ │ ├── Chinese-traditional.lang │ │ │ ├── Chinese.lang │ │ │ ├── Croatian.lang │ │ │ ├── Czech.lang │ │ │ ├── Danish.lang │ │ │ ├── Dutch.lang │ │ │ ├── English.lang │ │ │ ├── Estonian.lang │ │ │ ├── Filipino.lang │ │ │ ├── Finnish.lang │ │ │ ├── French.lang │ │ │ ├── Galician.lang │ │ │ ├── Georgian.lang │ │ │ ├── German.lang │ │ │ ├── Greek.lang │ │ │ ├── Gujarati.lang │ │ │ ├── Hebrew.lang │ │ │ ├── Hindi.lang │ │ │ ├── Hungarian.lang │ │ │ ├── Icelandic.lang │ │ │ ├── Indonesian-Alternative.lang │ │ │ ├── Indonesian.lang │ │ │ ├── Irish.lang │ │ │ ├── Italian.lang │ │ │ ├── Japanese.lang │ │ │ ├── Korean.lang │ │ │ ├── Latvian.lang │ │ │ ├── Lithuanian.lang │ │ │ ├── Macedonian.lang │ │ │ ├── Malay.lang │ │ │ ├── Norwegian.lang │ │ │ ├── Persian.lang │ │ │ ├── Polish.lang │ │ │ ├── Portuguese-Brasil.lang │ │ │ ├── Portuguese.lang │ │ │ ├── Romanian.lang │ │ │ ├── Russian.lang │ │ │ ├── Serbian.lang │ │ │ ├── Slovak.lang │ │ │ ├── Slovenian.lang │ │ │ ├── Spanish.lang │ │ │ ├── Swahili.lang │ │ │ ├── Swedish.lang │ │ │ ├── Tamil.lang │ │ │ ├── Thai.lang │ │ │ ├── Turkish.lang │ │ │ ├── Ukranian.lang │ │ │ ├── Urdu.lang │ │ │ ├── Uzbek.lang │ │ │ ├── Vietnamese.lang │ │ │ └── index.html │ │ ├── integration │ │ │ ├── bootstrap │ │ │ │ ├── 1 │ │ │ │ │ ├── dataTables.bootstrap.css │ │ │ │ │ └── dataTables.bootstrap.js │ │ │ │ ├── 2 │ │ │ │ │ ├── dataTables.bootstrap.css │ │ │ │ │ ├── dataTables.bootstrap.js │ │ │ │ │ ├── dataTables.bootstrap.min.js │ │ │ │ │ └── index.html │ │ │ │ ├── 3 │ │ │ │ │ ├── dataTables.bootstrap.css │ │ │ │ │ ├── dataTables.bootstrap.js │ │ │ │ │ ├── dataTables.bootstrap.min.js │ │ │ │ │ └── index.html │ │ │ │ └── images │ │ │ │ │ ├── sort_asc.png │ │ │ │ │ ├── sort_asc_disabled.png │ │ │ │ │ ├── sort_both.png │ │ │ │ │ ├── sort_desc.png │ │ │ │ │ └── sort_desc_disabled.png │ │ │ ├── font-awesome │ │ │ │ ├── bootstrap.html │ │ │ │ ├── dataTables.fontAwesome.css │ │ │ │ ├── datatables.html │ │ │ │ └── foundation.html │ │ │ ├── foundation │ │ │ │ ├── dataTables.foundation.css │ │ │ │ ├── dataTables.foundation.js │ │ │ │ ├── dataTables.foundation.min.js │ │ │ │ ├── images │ │ │ │ │ ├── sort_asc.png │ │ │ │ │ ├── sort_asc_disabled.png │ │ │ │ │ ├── sort_both.png │ │ │ │ │ ├── sort_desc.png │ │ │ │ │ └── sort_desc_disabled.png │ │ │ │ └── index.html │ │ │ └── jqueryui │ │ │ │ ├── dataTables.jqueryui.css │ │ │ │ ├── dataTables.jqueryui.js │ │ │ │ ├── dataTables.jqueryui.min.js │ │ │ │ ├── dataTables.jqueryui.scss │ │ │ │ └── index.html │ │ ├── make.sh │ │ ├── pagination │ │ │ ├── ellipses.js │ │ │ ├── extjs.js │ │ │ ├── four_button.js │ │ │ ├── index.html │ │ │ ├── input.js │ │ │ ├── jPaginator │ │ │ │ └── dataTables.jPaginator.js │ │ │ ├── scrolling.js │ │ │ └── select.js │ │ ├── sorting │ │ │ ├── .DS_Store │ │ │ ├── alt-string.js │ │ │ ├── anti-the.js │ │ │ ├── chinese-string.js │ │ │ ├── currency.js │ │ │ ├── custom-data-source │ │ │ │ ├── dom-checkbox.js │ │ │ │ ├── dom-select.js │ │ │ │ └── dom-text.js │ │ │ ├── date-dd-MMM-yyyy.js │ │ │ ├── date-de.js │ │ │ ├── date-eu.js │ │ │ ├── date-euro.js │ │ │ ├── date-uk.js │ │ │ ├── datetime-moment.js │ │ │ ├── datetime-us.js │ │ │ ├── enum.js │ │ │ ├── file-size.js │ │ │ ├── formatted-numbers.js │ │ │ ├── index.html │ │ │ ├── ip-address.js │ │ │ ├── monthYear.js │ │ │ ├── natural.js │ │ │ ├── num-html.js │ │ │ ├── numeric-comma.js │ │ │ ├── percent.js │ │ │ ├── persian.js │ │ │ ├── scientific.js │ │ │ ├── signed-num.js │ │ │ ├── stringMonthYear.js │ │ │ ├── time.js │ │ │ ├── title-numeric.js │ │ │ ├── title-string.js │ │ │ └── turkish-string.js │ │ └── type-detection │ │ │ ├── currency.js │ │ │ ├── date-uk.js │ │ │ ├── file-size.js │ │ │ ├── formatted-num.js │ │ │ ├── index.html │ │ │ ├── ip-address.js │ │ │ ├── num-html.js │ │ │ └── numeric-comma.js │ ├── datatables-responsive │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── Readme.md │ │ ├── bower.json │ │ ├── css │ │ │ ├── dataTables.responsive.css │ │ │ └── dataTables.responsive.scss │ │ ├── docs │ │ │ ├── api │ │ │ │ ├── responsive.index().xml │ │ │ │ └── responsive.recalc().xml │ │ │ └── option │ │ │ │ ├── responsive.breakpoints.xml │ │ │ │ ├── responsive.details.renderer.xml │ │ │ │ ├── responsive.details.target.xml │ │ │ │ ├── responsive.details.type.xml │ │ │ │ ├── responsive.details.xml │ │ │ │ └── responsive.xml │ │ ├── examples │ │ │ ├── .DS_Store │ │ │ ├── child-rows │ │ │ │ ├── column-control.xml │ │ │ │ ├── custom-renderer.xml │ │ │ │ ├── disable-child-rows.xml │ │ │ │ ├── index.xml │ │ │ │ ├── right-column.xml │ │ │ │ └── whole-row-control.xml │ │ │ ├── display-control │ │ │ │ ├── auto.xml │ │ │ │ ├── classes.xml │ │ │ │ ├── index.xml │ │ │ │ └── init-classes.xml │ │ │ ├── index.xml │ │ │ ├── initialisation │ │ │ │ ├── .DS_Store │ │ │ │ ├── ajax.xml │ │ │ │ ├── className.xml │ │ │ │ ├── default.xml │ │ │ │ ├── index.xml │ │ │ │ ├── new.xml │ │ │ │ └── option.xml │ │ │ └── styling │ │ │ │ ├── bootstrap.xml │ │ │ │ ├── foundation.xml │ │ │ │ └── index.xml │ │ ├── js │ │ │ └── dataTables.responsive.js │ │ └── make.sh │ ├── datatables │ │ ├── .bower.json │ │ ├── Contributing.md │ │ ├── Readme.md │ │ ├── bower.json │ │ ├── license.txt │ │ └── media │ │ │ ├── css │ │ │ ├── jquery.dataTables.css │ │ │ ├── jquery.dataTables.min.css │ │ │ └── jquery.dataTables_themeroller.css │ │ │ ├── images │ │ │ ├── Sorting icons.psd │ │ │ ├── back_disabled.png │ │ │ ├── back_enabled.png │ │ │ ├── back_enabled_hover.png │ │ │ ├── favicon.ico │ │ │ ├── forward_disabled.png │ │ │ ├── forward_enabled.png │ │ │ ├── forward_enabled_hover.png │ │ │ ├── sort_asc.png │ │ │ ├── sort_asc_disabled.png │ │ │ ├── sort_both.png │ │ │ ├── sort_desc.png │ │ │ └── sort_desc_disabled.png │ │ │ └── js │ │ │ ├── jquery.dataTables.js │ │ │ ├── jquery.dataTables.min.js │ │ │ └── jquery.js │ ├── font-awesome │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── bower.json │ │ ├── css │ │ │ ├── font-awesome.css │ │ │ └── font-awesome.min.css │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ └── fontawesome-webfont.woff │ │ ├── less │ │ │ ├── bordered-pulled.less │ │ │ ├── core.less │ │ │ ├── extras.less │ │ │ ├── fixed-width.less │ │ │ ├── font-awesome.less │ │ │ ├── icons.less │ │ │ ├── larger.less │ │ │ ├── list.less │ │ │ ├── mixins.less │ │ │ ├── path.less │ │ │ ├── rotated-flipped.less │ │ │ ├── spinning.less │ │ │ ├── stacked.less │ │ │ └── variables.less │ │ └── scss │ │ │ ├── _bordered-pulled.scss │ │ │ ├── _core.scss │ │ │ ├── _extras.scss │ │ │ ├── _fixed-width.scss │ │ │ ├── _icons.scss │ │ │ ├── _larger.scss │ │ │ ├── _list.scss │ │ │ ├── _mixins.scss │ │ │ ├── _path.scss │ │ │ ├── _rotated-flipped.scss │ │ │ ├── _spinning.scss │ │ │ ├── _stacked.scss │ │ │ ├── _variables.scss │ │ │ └── font-awesome.scss │ ├── holderjs │ │ ├── .bower.json │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .jshintrc │ │ ├── README.md │ │ ├── bower.json │ │ ├── composer.json │ │ ├── gulpfile.js │ │ ├── holder.js │ │ ├── package.json │ │ ├── src │ │ │ ├── augment.js │ │ │ ├── holder.js │ │ │ ├── ondomready.js │ │ │ └── polyfills.js │ │ └── test │ │ │ ├── .gitignore │ │ │ ├── image.jpg │ │ │ └── index.html │ ├── jquery │ │ ├── .bower.json │ │ ├── MIT-LICENSE.txt │ │ ├── bower.json │ │ ├── dist │ │ │ ├── jquery.js │ │ │ ├── jquery.min.js │ │ │ └── jquery.min.map │ │ └── src │ │ │ ├── ajax.js │ │ │ ├── ajax │ │ │ ├── jsonp.js │ │ │ ├── load.js │ │ │ ├── parseJSON.js │ │ │ ├── parseXML.js │ │ │ ├── script.js │ │ │ ├── var │ │ │ │ ├── nonce.js │ │ │ │ └── rquery.js │ │ │ └── xhr.js │ │ │ ├── attributes.js │ │ │ ├── attributes │ │ │ ├── attr.js │ │ │ ├── classes.js │ │ │ ├── prop.js │ │ │ ├── support.js │ │ │ └── val.js │ │ │ ├── callbacks.js │ │ │ ├── core.js │ │ │ ├── core │ │ │ ├── access.js │ │ │ ├── init.js │ │ │ ├── parseHTML.js │ │ │ ├── ready.js │ │ │ └── var │ │ │ │ └── rsingleTag.js │ │ │ ├── css.js │ │ │ ├── css │ │ │ ├── addGetHookIf.js │ │ │ ├── curCSS.js │ │ │ ├── defaultDisplay.js │ │ │ ├── hiddenVisibleSelectors.js │ │ │ ├── support.js │ │ │ ├── swap.js │ │ │ └── var │ │ │ │ ├── cssExpand.js │ │ │ │ ├── getStyles.js │ │ │ │ ├── isHidden.js │ │ │ │ ├── rmargin.js │ │ │ │ └── rnumnonpx.js │ │ │ ├── data.js │ │ │ ├── data │ │ │ ├── Data.js │ │ │ ├── accepts.js │ │ │ └── var │ │ │ │ ├── data_priv.js │ │ │ │ └── data_user.js │ │ │ ├── deferred.js │ │ │ ├── deprecated.js │ │ │ ├── dimensions.js │ │ │ ├── effects.js │ │ │ ├── effects │ │ │ ├── Tween.js │ │ │ └── animatedSelector.js │ │ │ ├── event.js │ │ │ ├── event │ │ │ ├── ajax.js │ │ │ ├── alias.js │ │ │ └── support.js │ │ │ ├── exports │ │ │ ├── amd.js │ │ │ └── global.js │ │ │ ├── intro.js │ │ │ ├── jquery.js │ │ │ ├── manipulation.js │ │ │ ├── manipulation │ │ │ ├── _evalUrl.js │ │ │ ├── support.js │ │ │ └── var │ │ │ │ └── rcheckableType.js │ │ │ ├── offset.js │ │ │ ├── outro.js │ │ │ ├── queue.js │ │ │ ├── queue │ │ │ └── delay.js │ │ │ ├── selector-native.js │ │ │ ├── selector-sizzle.js │ │ │ ├── selector.js │ │ │ ├── serialize.js │ │ │ ├── sizzle │ │ │ └── dist │ │ │ │ ├── sizzle.js │ │ │ │ ├── sizzle.min.js │ │ │ │ └── sizzle.min.map │ │ │ ├── traversing.js │ │ │ ├── traversing │ │ │ ├── findFilter.js │ │ │ └── var │ │ │ │ └── rneedsContext.js │ │ │ ├── var │ │ │ ├── arr.js │ │ │ ├── class2type.js │ │ │ ├── concat.js │ │ │ ├── hasOwn.js │ │ │ ├── indexOf.js │ │ │ ├── pnum.js │ │ │ ├── push.js │ │ │ ├── rnotwhite.js │ │ │ ├── slice.js │ │ │ ├── strundefined.js │ │ │ ├── support.js │ │ │ └── toString.js │ │ │ └── wrap.js │ ├── metisMenu │ │ ├── .bower.json │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ │ ├── metisMenu.css │ │ │ ├── metisMenu.js │ │ │ ├── metisMenu.min.css │ │ │ └── metisMenu.min.js │ │ ├── package.json │ │ └── src │ │ │ ├── metisMenu.css │ │ │ └── metisMenu.js │ ├── mocha │ │ ├── .bower.json │ │ ├── History.md │ │ ├── LICENSE │ │ ├── Readme.md │ │ ├── bower.json │ │ ├── media │ │ │ └── logo.svg │ │ ├── mocha.css │ │ └── mocha.js │ ├── morrisjs │ │ ├── .bower.json │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── Gruntfile.js │ │ ├── README.md │ │ ├── bower.json │ │ ├── bower.travis.json │ │ ├── examples │ │ │ ├── _template.html │ │ │ ├── area-as-line.html │ │ │ ├── area.html │ │ │ ├── bar-colors.html │ │ │ ├── bar-no-axes.html │ │ │ ├── bar.html │ │ │ ├── days.html │ │ │ ├── decimal-custom-hover.html │ │ │ ├── diagonal-xlabels-bar.html │ │ │ ├── diagonal-xlabels.html │ │ │ ├── donut-colors.html │ │ │ ├── donut-formatter.html │ │ │ ├── donut.html │ │ │ ├── dst.html │ │ │ ├── events.html │ │ │ ├── goals.html │ │ │ ├── lib │ │ │ │ ├── example.css │ │ │ │ └── example.js │ │ │ ├── months-no-smooth.html │ │ │ ├── negative.html │ │ │ ├── no-grid.html │ │ │ ├── non-continuous.html │ │ │ ├── non-date.html │ │ │ ├── quarters.html │ │ │ ├── resize.html │ │ │ ├── stacked_bars.html │ │ │ ├── timestamps.html │ │ │ ├── updating.html │ │ │ ├── weeks.html │ │ │ └── years.html │ │ ├── less │ │ │ └── morris.core.less │ │ ├── lib │ │ │ ├── morris.area.coffee │ │ │ ├── morris.bar.coffee │ │ │ ├── morris.coffee │ │ │ ├── morris.donut.coffee │ │ │ ├── morris.grid.coffee │ │ │ ├── morris.hover.coffee │ │ │ └── morris.line.coffee │ │ ├── morris.css │ │ ├── morris.js │ │ ├── morris.min.js │ │ ├── package.json │ │ └── spec │ │ │ ├── lib │ │ │ ├── area │ │ │ │ └── area_spec.coffee │ │ │ ├── bar │ │ │ │ ├── bar_spec.coffee │ │ │ │ └── colours.coffee │ │ │ ├── commas_spec.coffee │ │ │ ├── donut │ │ │ │ └── donut_spec.coffee │ │ │ ├── grid │ │ │ │ ├── auto_grid_lines_spec.coffee │ │ │ │ ├── set_data_spec.coffee │ │ │ │ └── y_label_format_spec.coffee │ │ │ ├── hover_spec.coffee │ │ │ ├── label_series_spec.coffee │ │ │ ├── line │ │ │ │ └── line_spec.coffee │ │ │ ├── pad_spec.coffee │ │ │ └── parse_time_spec.coffee │ │ │ ├── specs.html │ │ │ ├── support │ │ │ └── placeholder.coffee │ │ │ └── viz │ │ │ ├── examples.js │ │ │ ├── exemplary │ │ │ ├── area0.png │ │ │ ├── bar0.png │ │ │ ├── line0.png │ │ │ └── stacked_bar0.png │ │ │ ├── run.sh │ │ │ ├── test.html │ │ │ └── visual_specs.js │ └── raphael │ │ ├── .bower.json │ │ ├── bower.json │ │ ├── dev │ │ ├── amdDev.js │ │ └── require.js │ │ ├── license.txt │ │ ├── raphael-min.js │ │ └── raphael.js ├── dist │ ├── css │ │ ├── sb-admin-2.css │ │ └── timeline.css │ └── js │ │ └── sb-admin-2.js ├── echarts2 │ └── build │ │ ├── dist │ │ ├── chart │ │ │ ├── bar.js │ │ │ ├── chord.js │ │ │ ├── eventRiver.js │ │ │ ├── force.js │ │ │ ├── funnel.js │ │ │ ├── gauge.js │ │ │ ├── heatmap.js │ │ │ ├── k.js │ │ │ ├── line.js │ │ │ ├── map.js │ │ │ ├── pie.js │ │ │ ├── radar.js │ │ │ ├── scatter.js │ │ │ ├── tree.js │ │ │ ├── treemap.js │ │ │ ├── venn.js │ │ │ └── wordCloud.js │ │ ├── echarts-all.js │ │ └── echarts.js │ │ ├── echarts-optimize-conf.js │ │ └── source │ │ ├── chart │ │ ├── bar.js │ │ ├── chord.js │ │ ├── eventRiver.js │ │ ├── force.js │ │ ├── funnel.js │ │ ├── gauge.js │ │ ├── heatmap.js │ │ ├── k.js │ │ ├── line.js │ │ ├── map.js │ │ ├── pie.js │ │ ├── radar.js │ │ ├── scatter.js │ │ ├── tree.js │ │ ├── treemap.js │ │ ├── venn.js │ │ └── wordCloud.js │ │ ├── echarts-all.js │ │ └── echarts.js ├── images │ ├── favicon.ico │ └── logo.png ├── js │ ├── flot-data.js │ └── morris-data.js ├── less │ ├── mixins.less │ ├── sb-admin-2.less │ └── variables.less └── select2-4.0.2 │ └── dist │ ├── css │ ├── select2.css │ └── select2.min.css │ └── js │ ├── i18n │ ├── ar.js │ ├── az.js │ ├── bg.js │ ├── ca.js │ ├── cs.js │ ├── da.js │ ├── de.js │ ├── en.js │ ├── es.js │ ├── et.js │ ├── eu.js │ ├── fa.js │ ├── fi.js │ ├── fr.js │ ├── gl.js │ ├── he.js │ ├── hi.js │ ├── hr.js │ ├── hu.js │ ├── id.js │ ├── is.js │ ├── it.js │ ├── ja.js │ ├── ko.js │ ├── lt.js │ ├── lv.js │ ├── mk.js │ ├── ms.js │ ├── nb.js │ ├── nl.js │ ├── pl.js │ ├── pt-BR.js │ ├── pt.js │ ├── ro.js │ ├── ru.js │ ├── sk.js │ ├── sr-Cyrl.js │ ├── sr.js │ ├── sv.js │ ├── th.js │ ├── tr.js │ ├── uk.js │ ├── vi.js │ ├── zh-CN.js │ └── zh-TW.js │ ├── select2.full.js │ ├── select2.full.min.js │ ├── select2.js │ └── select2.min.js ├── supervisord.conf ├── system_setup ├── __init__.py ├── admin.py ├── migrations │ └── __init__.py ├── models.py ├── tests.py ├── urls.py └── views.py ├── templates ├── account │ ├── error.html │ ├── login.html │ ├── manage_business.html │ ├── manage_privilege.html │ └── manage_user.html ├── base.html ├── blank.html ├── bower.json ├── dashboard │ └── index.html ├── execute │ ├── minions_salt_result.html │ ├── minions_salt_runcmd.html │ ├── minions_shell_result.html │ └── minions_shell_runcmd.html ├── files_manager │ └── manage_file.html ├── groups │ ├── manage_group.html │ └── manage_host.html ├── jobs │ ├── jobs_detail.html │ ├── jobs_history.html │ ├── jobs_manage.html │ └── jobs_schedule.html ├── minions │ ├── minions_asset_info.html │ ├── minions_keys.html │ ├── minions_servers_status.html │ └── minions_status.html ├── states_config │ ├── highstate.html │ ├── highstate.html.bak │ └── highstate_result.html └── system_setup │ └── system_tools.html └── utility ├── __init__.py ├── admin.py ├── migrations └── __init__.py ├── models.py ├── tests.py ├── utility.py └── views.py /account/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/account/__init__.py -------------------------------------------------------------------------------- /account/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /account/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/account/migrations/__init__.py -------------------------------------------------------------------------------- /account/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /code_update/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/code_update/__init__.py -------------------------------------------------------------------------------- /code_update/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /code_update/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/code_update/migrations/__init__.py -------------------------------------------------------------------------------- /code_update/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /code_update/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /code_update/urls.py: -------------------------------------------------------------------------------- 1 | """saltshaker URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/1.8/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Add an import: from blog import urls as blog_urls 14 | 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) 15 | """ 16 | from django.conf.urls import include, url 17 | from . import views 18 | 19 | urlpatterns = [ 20 | #url(r'^$', views.index,name='index'), 21 | #url(r'^shaker/', views.index,name='index') 22 | ] 23 | -------------------------------------------------------------------------------- /code_update/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /dashboard/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/dashboard/__init__.py -------------------------------------------------------------------------------- /dashboard/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /dashboard/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/dashboard/migrations/__init__.py -------------------------------------------------------------------------------- /dashboard/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | 5 | -------------------------------------------------------------------------------- /dashboard/urls.py: -------------------------------------------------------------------------------- 1 | """saltshaker URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/1.8/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Add an import: from blog import urls as blog_urls 14 | 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) 15 | """ 16 | from django.conf.urls import include, url 17 | from . import views 18 | 19 | urlpatterns = [ 20 | url(r'^$', views.index, name='index'), 21 | url(r'get_queue', views.get_queue, name='get_queue'), 22 | ] 23 | -------------------------------------------------------------------------------- /execute/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/execute/__init__.py -------------------------------------------------------------------------------- /execute/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /execute/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/execute/migrations/__init__.py -------------------------------------------------------------------------------- /execute/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/execute/templatetags/__init__.py -------------------------------------------------------------------------------- /execute/templatetags/estimate.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | register = template.Library() 4 | 5 | @register.filter(is_safe=True) 6 | def to_str(value): 7 | if type(value) == list: 8 | value_str = '\n'.join(value) 9 | return value_str 10 | elif type(value) == dict: 11 | value_l = [] 12 | for key in value: 13 | tmp = str(key) + '\n ' + str(value[key]) 14 | value_l.append(tmp) 15 | value_str = '\n'.join(value_l) 16 | return value_str 17 | else: 18 | return value 19 | 20 | @register.filter(is_safe=True) 21 | def sort_ip(ip_list): 22 | try: 23 | ip_list.sort(lambda x, y: int(x.split('.')[3])-int(y.split('.')[3])) 24 | return ip_list 25 | except: 26 | return ip_list 27 | 28 | 29 | 30 | @register.filter(is_safe=True) 31 | def ListToStr(l,nu): 32 | return l[nu] 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /execute/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /files_manager/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/files_manager/__init__.py -------------------------------------------------------------------------------- /files_manager/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /files_manager/estimate.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | register = template.Library() 4 | 5 | @register.filter(is_safe=True) 6 | def to_str(value): 7 | if type(value) == list: 8 | value_str = '\n'.join(value) 9 | return value_str 10 | elif type(value) == dict: 11 | value_l = [] 12 | for key in value: 13 | tmp = str(key) + '\n ' + str(value[key]) 14 | value_l.append(tmp) 15 | value_str = '\n'.join(value_l) 16 | return value_str 17 | else: 18 | return value 19 | 20 | 21 | 22 | @register.filter(is_safe=True) 23 | def ListToStr(l,nu): 24 | return l[nu] 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /files_manager/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/files_manager/migrations/__init__.py -------------------------------------------------------------------------------- /files_manager/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | 5 | -------------------------------------------------------------------------------- /files_manager/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/files_manager/templatetags/__init__.py -------------------------------------------------------------------------------- /files_manager/templatetags/cut_list.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | register = template.Library() 4 | 5 | 6 | @register.filter(is_safe=True) 7 | def ListToStr(l,nu): 8 | return l[nu] 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /files_manager/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /files_manager/urls.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | #!/bin/env python 3 | 4 | from django.conf.urls import include, url 5 | from . import views 6 | 7 | urlpatterns = [ 8 | url(r'^manage_file', views.manage_file,name='manage_file'), 9 | url(r'^del_file', views.del_file,name='del_file'), 10 | url(r'^upload_file', views.upload_file,name='upload_file'), 11 | ] 12 | -------------------------------------------------------------------------------- /groups/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/groups/__init__.py -------------------------------------------------------------------------------- /groups/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /groups/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/groups/migrations/__init__.py -------------------------------------------------------------------------------- /groups/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /jobs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/jobs/__init__.py -------------------------------------------------------------------------------- /jobs/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /jobs/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/jobs/migrations/__init__.py -------------------------------------------------------------------------------- /jobs/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /jobs/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "saltshaker.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /middleware/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/middleware/__init__.py -------------------------------------------------------------------------------- /middleware/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/middleware/migrations/__init__.py -------------------------------------------------------------------------------- /minions/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/minions/__init__.py -------------------------------------------------------------------------------- /minions/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /minions/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/minions/migrations/__init__.py -------------------------------------------------------------------------------- /minions/models.py: -------------------------------------------------------------------------------- 1 | #-*- coding:utf-8 -*- 2 | from django.db import models 3 | 4 | 5 | 6 | class Minions_status(models.Model): 7 | class Meta: 8 | db_table = "minions_status" 9 | minion_id = models.CharField(max_length=128, null=True, blank=True) 10 | minion_version = models.CharField(max_length=128, null=True, blank=True) 11 | minion_status = models.CharField(max_length=128, null=True, blank=True) 12 | minion_config = models.BooleanField(default=False) 13 | 14 | 15 | def __unicode__(self): 16 | return u'%s %s %s' % (self.minion_id, self.minion_version, self.minion_status) -------------------------------------------------------------------------------- /minions/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /returner/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/returner/__init__.py -------------------------------------------------------------------------------- /returner/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /returner/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/returner/migrations/__init__.py -------------------------------------------------------------------------------- /returner/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /returner/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | -------------------------------------------------------------------------------- /saltapi.conf: -------------------------------------------------------------------------------- 1 | rest_cherrypy: 2 | port: 8000 3 | host: 0.0.0.0 4 | disable_ssl: true 5 | external_auth: 6 | pam: 7 | admin: 8 | - .* 9 | - '@runner' 10 | - '@wheel' 11 | -------------------------------------------------------------------------------- /saltshaker/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/saltshaker/__init__.py -------------------------------------------------------------------------------- /saltshaker/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/saltshaker/migrations/__init__.py -------------------------------------------------------------------------------- /saltshaker/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for saltshaker project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "saltshaker.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /screenshots/2015-12-14_155129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_155129.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_160819.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_160819.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_160836.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_160836.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_160850.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_160850.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_160940.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_160940.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_160959.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_160959.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_161057.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_161057.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_161120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_161120.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_161141.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_161141.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_161224.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_161224.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_161243.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_161243.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_161252.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_161252.png -------------------------------------------------------------------------------- /screenshots/2015-12-14_171227.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2015-12-14_171227.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_103922.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_103922.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104603.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104603.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104626.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104626.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104645.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104645.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104702.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104702.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104718.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104718.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104737.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104737.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104750.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104750.png -------------------------------------------------------------------------------- /screenshots/2016-05-09_104800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/screenshots/2016-05-09_104800.png -------------------------------------------------------------------------------- /shaker/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/shaker/__init__.py -------------------------------------------------------------------------------- /shaker/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /shaker/check_service.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import socket 4 | 5 | def CheckPort(service, ip, port): 6 | s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 7 | try: 8 | s.connect((ip, int(port))) 9 | s.shutdown(2) 10 | return {service: 'Up'} 11 | except: 12 | return {service: 'Down'} 13 | 14 | def CheckProgress(service, name): 15 | progress = os.popen('ps aux | grep "' + name + '" | grep -v grep').readlines() 16 | if progress: 17 | return {service: 'Up'} 18 | else: 19 | return {service: 'Down'} 20 | 21 | if __name__ == '__main__': 22 | CheckPort('salt_master', '127.0.01', 4505) 23 | CheckProgress('celery','celery') -------------------------------------------------------------------------------- /shaker/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/shaker/migrations/__init__.py -------------------------------------------------------------------------------- /shaker/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /shaker/urls.py: -------------------------------------------------------------------------------- 1 | """saltshaker URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/1.8/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Add an import: from blog import urls as blog_urls 14 | 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) 15 | """ 16 | from django.conf.urls import include, url 17 | from . import views 18 | 19 | -------------------------------------------------------------------------------- /shaker/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | -------------------------------------------------------------------------------- /states_config/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/states_config/__init__.py -------------------------------------------------------------------------------- /states_config/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /states_config/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/states_config/migrations/__init__.py -------------------------------------------------------------------------------- /states_config/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.contrib.auth.models import User 3 | 4 | from account.models import Businesses,UserProfiles 5 | 6 | class Highstate(models.Model): 7 | name = models.CharField(max_length=50,unique=True) 8 | business = models.ManyToManyField(Businesses) 9 | content = models.TextField() 10 | informations = models.CharField(max_length=200) 11 | enabled = models.BooleanField(default=True) 12 | 13 | def __unicode__(self): 14 | return self.name 15 | 16 | -------------------------------------------------------------------------------- /states_config/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap-social/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-social", 3 | "main": "bootstrap-social.css", 4 | "licence": "MIT", 5 | "ignore": [ 6 | "assets", 7 | "../index.html", 8 | "LICENCE" 9 | ], 10 | "dependencies": { 11 | "bootstrap": "~3", 12 | "font-awesome": "~4.2" 13 | }, 14 | "homepage": "https://github.com/lipis/bootstrap-social", 15 | "version": "4.8.0", 16 | "_release": "4.8.0", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "4.8.0", 20 | "commit": "918fc55c3c938377a7618ec0f115846e50d4b883" 21 | }, 22 | "_source": "git://github.com/lipis/bootstrap-social.git", 23 | "_target": "~4.8.0", 24 | "_originalSource": "bootstrap-social", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /static/bower_components/bootstrap-social/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | indent_style = space 7 | indent_size = 2 8 | end_of_line = lf 9 | charset = utf-8 10 | trim_trailing_whitespace = true 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap-social/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | dev 3 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap-social/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bootstrap-social", 3 | "main": "bootstrap-social.css", 4 | "licence": "MIT", 5 | "ignore": [ 6 | "assets", 7 | "../index.html", 8 | "LICENCE" 9 | ], 10 | "dependencies": { 11 | "bootstrap": "~3", 12 | "font-awesome": "~4.2" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/bower_components/bootstrap/dist/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /static/bower_components/bootstrap/grunt/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends" : "../js/.jshintrc", 3 | "asi" : false, 4 | "browser" : false, 5 | "es3" : false, 6 | "node" : true 7 | } 8 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/grunt/bs-commonjs-generator.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var fs = require('fs'); 3 | var path = require('path'); 4 | 5 | var COMMONJS_BANNER = '// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\n'; 6 | 7 | module.exports = function generateCommonJSModule(grunt, srcFiles, destFilepath) { 8 | var destDir = path.dirname(destFilepath); 9 | 10 | function srcPathToDestRequire(srcFilepath) { 11 | var requirePath = path.relative(destDir, srcFilepath).replace(/\\/g, '/'); 12 | return 'require(\'' + requirePath + '\')'; 13 | } 14 | 15 | var moduleOutputJs = COMMONJS_BANNER + srcFiles.map(srcPathToDestRequire).join('\n'); 16 | try { 17 | fs.writeFileSync(destFilepath, moduleOutputJs); 18 | } 19 | catch (err) { 20 | grunt.fail.warn(err); 21 | } 22 | grunt.log.writeln('File ' + destFilepath.cyan + ' created.'); 23 | }; 24 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/js/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "asi" : true, 3 | "browser" : true, 4 | "eqeqeq" : false, 5 | "eqnull" : true, 6 | "es3" : true, 7 | "expr" : true, 8 | "jquery" : true, 9 | "latedef" : true, 10 | "laxbreak" : true, 11 | "nonbsp" : true, 12 | "strict" : true, 13 | "undef" : true, 14 | "unused" : true 15 | } 16 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/.csslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "adjoining-classes": false, 3 | "box-sizing": false, 4 | "box-model": false, 5 | "compatible-vendor-prefixes": false, 6 | "floats": false, 7 | "font-sizes": false, 8 | "gradients": false, 9 | "important": false, 10 | "known-properties": false, 11 | "outline-none": false, 12 | "qualified-headings": false, 13 | "regex-selectors": false, 14 | "shorthand": false, 15 | "text-indent": false, 16 | "unique-headings": false, 17 | "universal-selector": false, 18 | "unqualified-attributes": false 19 | } 20 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // 2 | // Breadcrumbs 3 | // -------------------------------------------------- 4 | 5 | 6 | .breadcrumb { 7 | padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal; 8 | margin-bottom: @line-height-computed; 9 | list-style: none; 10 | background-color: @breadcrumb-bg; 11 | border-radius: @border-radius-base; 12 | 13 | > li { 14 | display: inline-block; 15 | 16 | + li:before { 17 | content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space 18 | padding: 0 5px; 19 | color: @breadcrumb-color; 20 | } 21 | } 22 | 23 | > .active { 24 | color: @breadcrumb-active-color; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/close.less: -------------------------------------------------------------------------------- 1 | // 2 | // Close icons 3 | // -------------------------------------------------- 4 | 5 | 6 | .close { 7 | float: right; 8 | font-size: (@font-size-base * 1.5); 9 | font-weight: @close-font-weight; 10 | line-height: 1; 11 | color: @close-color; 12 | text-shadow: @close-text-shadow; 13 | .opacity(.2); 14 | 15 | &:hover, 16 | &:focus { 17 | color: @close-color; 18 | text-decoration: none; 19 | cursor: pointer; 20 | .opacity(.5); 21 | } 22 | 23 | // Additional properties for button version 24 | // iOS requires the button element instead of an anchor tag. 25 | // If you want the anchor version, it requires `href="#"`. 26 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile 27 | button& { 28 | padding: 0; 29 | cursor: pointer; 30 | background: transparent; 31 | border: 0; 32 | -webkit-appearance: none; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/component-animations.less: -------------------------------------------------------------------------------- 1 | // 2 | // Component animations 3 | // -------------------------------------------------- 4 | 5 | // Heads up! 6 | // 7 | // We don't use the `.opacity()` mixin here since it causes a bug with text 8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. 9 | 10 | .fade { 11 | opacity: 0; 12 | .transition(opacity .15s linear); 13 | &.in { 14 | opacity: 1; 15 | } 16 | } 17 | 18 | .collapse { 19 | display: none; 20 | visibility: hidden; 21 | 22 | &.in { display: block; visibility: visible; } 23 | tr&.in { display: table-row; } 24 | tbody&.in { display: table-row-group; } 25 | } 26 | 27 | .collapsing { 28 | position: relative; 29 | height: 0; 30 | overflow: hidden; 31 | .transition-property(~"height, visibility"); 32 | .transition-duration(.35s); 33 | .transition-timing-function(ease); 34 | } 35 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/alerts.less: -------------------------------------------------------------------------------- 1 | // Alerts 2 | 3 | .alert-variant(@background; @border; @text-color) { 4 | background-color: @background; 5 | border-color: @border; 6 | color: @text-color; 7 | 8 | hr { 9 | border-top-color: darken(@border, 5%); 10 | } 11 | .alert-link { 12 | color: darken(@text-color, 10%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/background-variant.less: -------------------------------------------------------------------------------- 1 | // Contextual backgrounds 2 | 3 | .bg-variant(@color) { 4 | background-color: @color; 5 | a&:hover { 6 | background-color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/border-radius.less: -------------------------------------------------------------------------------- 1 | // Single side border-radius 2 | 3 | .border-top-radius(@radius) { 4 | border-top-right-radius: @radius; 5 | border-top-left-radius: @radius; 6 | } 7 | .border-right-radius(@radius) { 8 | border-bottom-right-radius: @radius; 9 | border-top-right-radius: @radius; 10 | } 11 | .border-bottom-radius(@radius) { 12 | border-bottom-right-radius: @radius; 13 | border-bottom-left-radius: @radius; 14 | } 15 | .border-left-radius(@radius) { 16 | border-bottom-left-radius: @radius; 17 | border-top-left-radius: @radius; 18 | } 19 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/center-block.less: -------------------------------------------------------------------------------- 1 | // Center-align a block level element 2 | 3 | .center-block() { 4 | display: block; 5 | margin-left: auto; 6 | margin-right: auto; 7 | } 8 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/clearfix.less: -------------------------------------------------------------------------------- 1 | // Clearfix 2 | // 3 | // For modern browsers 4 | // 1. The space content is one way to avoid an Opera bug when the 5 | // contenteditable attribute is included anywhere else in the document. 6 | // Otherwise it causes space to appear at the top and bottom of elements 7 | // that are clearfixed. 8 | // 2. The use of `table` rather than `block` is only necessary if using 9 | // `:before` to contain the top-margins of child elements. 10 | // 11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/ 12 | 13 | .clearfix() { 14 | &:before, 15 | &:after { 16 | content: " "; // 1 17 | display: table; // 2 18 | } 19 | &:after { 20 | clear: both; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/hide-text.less: -------------------------------------------------------------------------------- 1 | // CSS image replacement 2 | // 3 | // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for 4 | // mixins being reused as classes with the same name, this doesn't hold up. As 5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. 6 | // 7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 8 | 9 | // Deprecated as of v3.0.1 (will be removed in v4) 10 | .hide-text() { 11 | font: ~"0/0" a; 12 | color: transparent; 13 | text-shadow: none; 14 | background-color: transparent; 15 | border: 0; 16 | } 17 | 18 | // New mixin to use as of v3.0.1 19 | .text-hide() { 20 | .hide-text(); 21 | } 22 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/labels.less: -------------------------------------------------------------------------------- 1 | // Labels 2 | 3 | .label-variant(@color) { 4 | background-color: @color; 5 | 6 | &[href] { 7 | &:hover, 8 | &:focus { 9 | background-color: darken(@color, 10%); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/list-group.less: -------------------------------------------------------------------------------- 1 | // List Groups 2 | 3 | .list-group-item-variant(@state; @background; @color) { 4 | .list-group-item-@{state} { 5 | color: @color; 6 | background-color: @background; 7 | 8 | a& { 9 | color: @color; 10 | 11 | .list-group-item-heading { 12 | color: inherit; 13 | } 14 | 15 | &:hover, 16 | &:focus { 17 | color: @color; 18 | background-color: darken(@background, 5%); 19 | } 20 | &.active, 21 | &.active:hover, 22 | &.active:focus { 23 | color: #fff; 24 | background-color: @color; 25 | border-color: @color; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/nav-divider.less: -------------------------------------------------------------------------------- 1 | // Horizontal dividers 2 | // 3 | // Dividers (basically an hr) within dropdowns and nav lists 4 | 5 | .nav-divider(@color: #e5e5e5) { 6 | height: 1px; 7 | margin: ((@line-height-computed / 2) - 1) 0; 8 | overflow: hidden; 9 | background-color: @color; 10 | } 11 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/nav-vertical-align.less: -------------------------------------------------------------------------------- 1 | // Navbar vertical align 2 | // 3 | // Vertically center elements in the navbar. 4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin. 5 | 6 | .navbar-vertical-align(@element-height) { 7 | margin-top: ((@navbar-height - @element-height) / 2); 8 | margin-bottom: ((@navbar-height - @element-height) / 2); 9 | } 10 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/opacity.less: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | .opacity(@opacity) { 4 | opacity: @opacity; 5 | // IE8 filter 6 | @opacity-ie: (@opacity * 100); 7 | filter: ~"alpha(opacity=@{opacity-ie})"; 8 | } 9 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/pagination.less: -------------------------------------------------------------------------------- 1 | // Pagination 2 | 3 | .pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) { 4 | > li { 5 | > a, 6 | > span { 7 | padding: @padding-vertical @padding-horizontal; 8 | font-size: @font-size; 9 | } 10 | &:first-child { 11 | > a, 12 | > span { 13 | .border-left-radius(@border-radius); 14 | } 15 | } 16 | &:last-child { 17 | > a, 18 | > span { 19 | .border-right-radius(@border-radius); 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/panels.less: -------------------------------------------------------------------------------- 1 | // Panels 2 | 3 | .panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) { 4 | border-color: @border; 5 | 6 | & > .panel-heading { 7 | color: @heading-text-color; 8 | background-color: @heading-bg-color; 9 | border-color: @heading-border; 10 | 11 | + .panel-collapse > .panel-body { 12 | border-top-color: @border; 13 | } 14 | .badge { 15 | color: @heading-bg-color; 16 | background-color: @heading-text-color; 17 | } 18 | } 19 | & > .panel-footer { 20 | + .panel-collapse > .panel-body { 21 | border-bottom-color: @border; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/progress-bar.less: -------------------------------------------------------------------------------- 1 | // Progress bars 2 | 3 | .progress-bar-variant(@color) { 4 | background-color: @color; 5 | 6 | // Deprecated parent class requirement as of v3.2.0 7 | .progress-striped & { 8 | #gradient > .striped(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/reset-filter.less: -------------------------------------------------------------------------------- 1 | // Reset filters for IE 2 | // 3 | // When you need to remove a gradient background, do not forget to use this to reset 4 | // the IE filter for IE9 and below. 5 | 6 | .reset-filter() { 7 | filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); 8 | } 9 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/resize.less: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | .resizable(@direction) { 4 | resize: @direction; // Options: horizontal, vertical, both 5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 6 | } 7 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/responsive-visibility.less: -------------------------------------------------------------------------------- 1 | // Responsive utilities 2 | 3 | // 4 | // More easily include all the states for responsive-utilities.less. 5 | .responsive-visibility() { 6 | display: block !important; 7 | table& { display: table; } 8 | tr& { display: table-row !important; } 9 | th&, 10 | td& { display: table-cell !important; } 11 | } 12 | 13 | .responsive-invisibility() { 14 | display: none !important; 15 | } 16 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/size.less: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | .size(@width; @height) { 4 | width: @width; 5 | height: @height; 6 | } 7 | 8 | .square(@size) { 9 | .size(@size; @size); 10 | } 11 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/tab-focus.less: -------------------------------------------------------------------------------- 1 | // WebKit-style focus 2 | 3 | .tab-focus() { 4 | // Default 5 | outline: thin dotted; 6 | // WebKit 7 | outline: 5px auto -webkit-focus-ring-color; 8 | outline-offset: -2px; 9 | } 10 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/table-row.less: -------------------------------------------------------------------------------- 1 | // Tables 2 | 3 | .table-row-variant(@state; @background) { 4 | // Exact selectors below required to override `.table-striped` and prevent 5 | // inheritance to nested tables. 6 | .table > thead > tr, 7 | .table > tbody > tr, 8 | .table > tfoot > tr { 9 | > td.@{state}, 10 | > th.@{state}, 11 | &.@{state} > td, 12 | &.@{state} > th { 13 | background-color: @background; 14 | } 15 | } 16 | 17 | // Hover states for `.table-hover` 18 | // Note: this is not available for cells or rows within `thead` or `tfoot`. 19 | .table-hover > tbody > tr { 20 | > td.@{state}:hover, 21 | > th.@{state}:hover, 22 | &.@{state}:hover > td, 23 | &:hover > .@{state}, 24 | &.@{state}:hover > th { 25 | background-color: darken(@background, 5%); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/text-emphasis.less: -------------------------------------------------------------------------------- 1 | // Typography 2 | 3 | .text-emphasis-variant(@color) { 4 | color: @color; 5 | a&:hover { 6 | color: darken(@color, 10%); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/mixins/text-overflow.less: -------------------------------------------------------------------------------- 1 | // Text overflow 2 | // Requires inline-block or block for proper styling 3 | 4 | .text-overflow() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/responsive-embed.less: -------------------------------------------------------------------------------- 1 | // Embeds responsive 2 | // 3 | // Credit: Nicolas Gallagher and SUIT CSS. 4 | 5 | .embed-responsive { 6 | position: relative; 7 | display: block; 8 | height: 0; 9 | padding: 0; 10 | overflow: hidden; 11 | 12 | .embed-responsive-item, 13 | iframe, 14 | embed, 15 | object, 16 | video { 17 | position: absolute; 18 | top: 0; 19 | left: 0; 20 | bottom: 0; 21 | height: 100%; 22 | width: 100%; 23 | border: 0; 24 | } 25 | 26 | // Modifier class for 16:9 aspect ratio 27 | &.embed-responsive-16by9 { 28 | padding-bottom: 56.25%; 29 | } 30 | 31 | // Modifier class for 4:3 aspect ratio 32 | &.embed-responsive-4by3 { 33 | padding-bottom: 75%; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/thumbnails.less: -------------------------------------------------------------------------------- 1 | // 2 | // Thumbnails 3 | // -------------------------------------------------- 4 | 5 | 6 | // Mixin and adjust the regular image class 7 | .thumbnail { 8 | display: block; 9 | padding: @thumbnail-padding; 10 | margin-bottom: @line-height-computed; 11 | line-height: @line-height-base; 12 | background-color: @thumbnail-bg; 13 | border: 1px solid @thumbnail-border; 14 | border-radius: @thumbnail-border-radius; 15 | .transition(border .2s ease-in-out); 16 | 17 | > img, 18 | a > img { 19 | &:extend(.img-responsive); 20 | margin-left: auto; 21 | margin-right: auto; 22 | } 23 | 24 | // Add a hover state for linked versions only 25 | a&:hover, 26 | a&:focus, 27 | a&.active { 28 | border-color: @link-color; 29 | } 30 | 31 | // Image captions 32 | .caption { 33 | padding: @thumbnail-caption-padding; 34 | color: @thumbnail-caption-color; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /static/bower_components/bootstrap/less/wells.less: -------------------------------------------------------------------------------- 1 | // 2 | // Wells 3 | // -------------------------------------------------- 4 | 5 | 6 | // Base class 7 | .well { 8 | min-height: 20px; 9 | padding: 19px; 10 | margin-bottom: 20px; 11 | background-color: @well-bg; 12 | border: 1px solid @well-border; 13 | border-radius: @border-radius-base; 14 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); 15 | blockquote { 16 | border-color: #ddd; 17 | border-color: rgba(0,0,0,.15); 18 | } 19 | } 20 | 21 | // Sizes 22 | .well-lg { 23 | padding: 24px; 24 | border-radius: @border-radius-large; 25 | } 26 | .well-sm { 27 | padding: 9px; 28 | border-radius: @border-radius-small; 29 | } 30 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "datatables-plugins", 3 | "homepage": "https://github.com/DataTables/Plugins", 4 | "version": "1.0.1", 5 | "_release": "1.0.1", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "1.0.1", 9 | "commit": "a94e328df63c79af43123b99ada5ff88d601a31d" 10 | }, 11 | "_source": "git://github.com/DataTables/Plugins.git", 12 | "_target": "~1.0.1", 13 | "_originalSource": "datatables-plugins", 14 | "_direct": true 15 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/api/column().title().js: -------------------------------------------------------------------------------- 1 | /** 2 | * This plug-in will read the text from the header cell of a column, returning 3 | * that value. 4 | * 5 | * @name column().title() 6 | * @summary Get the title of a column 7 | * @author Alejandro Navarro 8 | * @requires DataTables 1.10+ 9 | * 10 | * @returns {String} Column title 11 | * 12 | * @example 13 | * // Read the title text of column index 3 14 | * var table = $('#example').DataTable(); 15 | * table.column( 3 ).title(); 16 | */ 17 | 18 | $.fn.dataTable.Api.register( 'column().title()', function () { 19 | var colheader = this.header(); 20 | return $(colheader).text().trim(); 21 | } ); -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/features/alphabetSearch/dataTables.alphabetSearch.css: -------------------------------------------------------------------------------- 1 | div.alphabet { 2 | position: relative; 3 | display: table; 4 | width: 100%; 5 | margin-bottom: 1em; 6 | } 7 | 8 | div.alphabet span { 9 | display: table-cell; 10 | color: #3174c7; 11 | cursor: pointer; 12 | text-align: center; 13 | width: 3.5% 14 | } 15 | 16 | div.alphabet span:hover { 17 | text-decoration: underline; 18 | } 19 | 20 | div.alphabet span.active { 21 | color: black; 22 | } 23 | 24 | div.alphabet span.empty { 25 | color: red; 26 | } 27 | 28 | div.alphabetInfo { 29 | display: block; 30 | position: absolute; 31 | background-color: #111; 32 | border-radius: 3px; 33 | color: white; 34 | top: 2em; 35 | height: 1.8em; 36 | padding-top: 0.4em; 37 | text-align: center; 38 | z-index: 1; 39 | } 40 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/features/lengthLinks/dataTables.lengthLinks.css: -------------------------------------------------------------------------------- 1 | 2 | div.dataTables_length a.active { 3 | color: black; 4 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/features/searchHighlight/dataTables.searchHighlight.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | table.dataTable span.highlight { 4 | background-color: #FFFF88; 5 | } 6 | 7 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/features/searchHighlight/dataTables.searchHighlight.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | SearchHighlight for DataTables v1.0.1 3 | 2014 SpryMedia Ltd - datatables.net/license 4 | */ 5 | (function(f,c,b){b(c).on("init.dt.dth",function(c,d){var a=new b.fn.dataTable.Api(d),e=b(a.table().body());if(b(a.table().node()).hasClass("searchHighlight")||d.oInit.searchHighlight||b.fn.dataTable.defaults.searchHighlight)a.on("draw.dt.dth column-visibility.dt.dth",function(){e.unhighlight();a.rows({filter:"applied"}).data().length&&e.highlight(a.search().split(" "))}).on("destroy",function(){a.off("draw.dt.dth column-visibility.dt.dth")})})})(window,document,jQuery); 6 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Arabic.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Arabic translation 3 | * @name Arabic 4 | * @anchor Arabic 5 | * @author Ossama Khayat 6 | */ 7 | 8 | { 9 | "sProcessing": "جاري التحميل...", 10 | "sLengthMenu": "أظهر مُدخلات _MENU_", 11 | "sZeroRecords": "لم يُعثر على أية سجلات", 12 | "sInfo": "إظهار _START_ إلى _END_ من أصل _TOTAL_ مُدخل", 13 | "sInfoEmpty": "يعرض 0 إلى 0 من أصل 0 سجلّ", 14 | "sInfoFiltered": "(منتقاة من مجموع _MAX_ مُدخل)", 15 | "sInfoPostFix": "", 16 | "sSearch": "ابحث:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "الأول", 20 | "sPrevious": "السابق", 21 | "sNext": "التالي", 22 | "sLast": "الأخير" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Bangla.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Bangla translation 3 | * @name Bangla 4 | * @anchor Bangla 5 | * @author Md. Khaled Ben Islam 6 | */ 7 | 8 | { 9 | "sProcessing": "প্রসেসিং হচ্ছে...", 10 | "sLengthMenu": "_MENU_ টা এন্ট্রি দেখাও", 11 | "sZeroRecords": "আপনি যা অনুসন্ধান করেছেন তার সাথে মিলে যাওয়া কোন রেকর্ড খুঁজে পাওয়া যায় নাই", 12 | "sInfo": "_TOTAL_ টা এন্ট্রির মধ্যে _START_ থেকে _END_ পর্যন্ত দেখানো হচ্ছে", 13 | "sInfoEmpty": "কোন এন্ট্রি খুঁজে পাওয়া যায় নাই", 14 | "sInfoFiltered": "(মোট _MAX_ টা এন্ট্রির মধ্যে থেকে বাছাইকৃত)", 15 | "sInfoPostFix": "", 16 | "sSearch": "অনুসন্ধান:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "প্রথমটা", 20 | "sPrevious": "আগেরটা", 21 | "sNext": "পরবর্তীটা", 22 | "sLast": "শেষেরটা" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Belarusian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Belarusian translation 3 | * @name Belarusian 4 | * @anchor Belarusian 5 | * @author vkachurka 6 | */ 7 | { 8 | "sProcessing": "Пачакайце...", 9 | "sLengthMenu": "Паказваць _MENU_ запісаў", 10 | "sZeroRecords": "Запісы адсутнічаюць.", 11 | "sInfo": "Запісы з _START_ па _END_ з _TOTAL_ запісаў", 12 | "sInfoEmpty": "Запісы з 0 па 0 з 0 запісаў", 13 | "sInfoFiltered": "(адфільтравана з _MAX_ запісаў)", 14 | "sInfoPostFix": "", 15 | "sSearch": "Пошук:", 16 | "sUrl": "", 17 | "oPaginate": { 18 | "sFirst": "Першая", 19 | "sPrevious": "Папярэдняя", 20 | "sNext": "Наступная", 21 | "sLast": "Апошняя" 22 | }, 23 | "oAria": { 24 | "sSortAscending": ": актываваць для сартавання слупка па ўзрастанні", 25 | "sSortDescending": ": актываваць для сартавання слупка па змяншэнні" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Bulgarian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Bulgarian translation 3 | * @name Bulgarian 4 | * @anchor Bulgarian 5 | * @author Rostislav Stoyanov 6 | */ 7 | 8 | { 9 | "sProcessing": "Обработка на резултатите...", 10 | "sLengthMenu": "Показване на _MENU_ резултата", 11 | "sZeroRecords": "Няма намерени резултати", 12 | "sInfo": "Показване на резултати от _START_ до _END_ от общо _TOTAL_", 13 | "sInfoEmpty": "Показване на резултати от 0 до 0 от общо 0", 14 | "sInfoFiltered": "(филтрирани от общо _MAX_ резултата)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Търсене във всички колони:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Първа", 20 | "sPrevious": "Предишна", 21 | "sNext": "Следваща", 22 | "sLast": "Последна" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Catalan.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Catalan translation 3 | * @name Catalan 4 | * @anchor Catalan 5 | * @author Sergi 6 | */ 7 | 8 | { 9 | "sProcessing": "Processant...", 10 | "sLengthMenu": "Mostra _MENU_ registres", 11 | "sZeroRecords": "No s'han trobat registres.", 12 | "sInfo": "Mostrant de _START_ a _END_ de _TOTAL_ registres", 13 | "sInfoEmpty": "Mostrant de 0 a 0 de 0 registres", 14 | "sInfoFiltered": "(filtrat de _MAX_ total registres)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Filtrar:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Primer", 20 | "sPrevious": "Anterior", 21 | "sNext": "Següent", 22 | "sLast": "Últim" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Chinese-traditional.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Chinese (traditional) translation 3 | * @name Chinese (traditional) 4 | * @anchor Chinese (traditional) 5 | * @author GimmeRank Affiliate 6 | */ 7 | 8 | { 9 | "sProcessing":   "處理中...", 10 | "sLengthMenu":   "顯示 _MENU_ 項結果", 11 | "sZeroRecords":  "沒有匹配結果", 12 | "sInfo":         "顯示第 _START_ 至 _END_ 項結果,共 _TOTAL_ 項", 13 | "sInfoEmpty":    "顯示第 0 至 0 項結果,共 0 項", 14 | "sInfoFiltered": "(從 _MAX_ 項結果過濾)", 15 | "sInfoPostFix":  "", 16 | "sSearch":       "搜索:", 17 | "sUrl":          "", 18 | "oPaginate": { 19 | "sFirst":    "首頁", 20 | "sPrevious": "上頁", 21 | "sNext":     "下頁", 22 | "sLast":     "尾頁" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Chinese.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Chinese translation 3 | * @name Chinese 4 | * @anchor Chinese 5 | * @author Chi Cheng 6 | */ 7 | 8 | { 9 | "sProcessing": "处理中...", 10 | "sLengthMenu": "显示 _MENU_ 项结果", 11 | "sZeroRecords": "没有匹配结果", 12 | "sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项", 13 | "sInfoEmpty": "显示第 0 至 0 项结果,共 0 项", 14 | "sInfoFiltered": "(由 _MAX_ 项结果过滤)", 15 | "sInfoPostFix": "", 16 | "sSearch": "搜索:", 17 | "sUrl": "", 18 | "sEmptyTable": "表中数据为空", 19 | "sLoadingRecords": "载入中...", 20 | "sInfoThousands": ",", 21 | "oPaginate": { 22 | "sFirst": "首页", 23 | "sPrevious": "上页", 24 | "sNext": "下页", 25 | "sLast": "末页" 26 | }, 27 | "oAria": { 28 | "sSortAscending": ": 以升序排列此列", 29 | "sSortDescending": ": 以降序排列此列" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Czech.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Czech translation 3 | * @name Czech 4 | * @anchor Czech 5 | * @author Magerio 6 | */ 7 | 8 | { 9 | "sProcessing": "Provádím...", 10 | "sLengthMenu": "Zobraz záznamů _MENU_", 11 | "sZeroRecords": "Žádné záznamy nebyly nalezeny", 12 | "sInfo": "Zobrazuji _START_ až _END_ z celkem _TOTAL_ záznamů", 13 | "sInfoEmpty": "Zobrazuji 0 až 0 z 0 záznamů", 14 | "sInfoFiltered": "(filtrováno z celkem _MAX_ záznamů)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Hledat:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "První", 20 | "sPrevious": "Předchozí", 21 | "sNext": "Další", 22 | "sLast": "Poslední" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Danish.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Danish translation 3 | * @name Danish 4 | * @anchor Danish 5 | * @author Werner Knudsen 6 | */ 7 | 8 | { 9 | "sProcessing": "Henter...", 10 | "sLengthMenu": "Vis _MENU_ linjer", 11 | "sZeroRecords": "Ingen linjer matcher søgningen", 12 | "sInfo": "Viser _START_ til _END_ af _TOTAL_ linjer", 13 | "sInfoEmpty": "Viser 0 til 0 af 0 linjer", 14 | "sInfoFiltered": "(filtreret fra _MAX_ linjer)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Søg:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Første", 20 | "sPrevious": "Forrige", 21 | "sNext": "Næste", 22 | "sLast": "Sidste" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Dutch.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Dutch translation 3 | * @name Dutch 4 | * @anchor Dutch 5 | * @author Erwin Kerk and ashwin 6 | */ 7 | 8 | { 9 | "sProcessing": "Bezig...", 10 | "sLengthMenu": "_MENU_ resultaten weergeven", 11 | "sZeroRecords": "Geen resultaten gevonden", 12 | "sInfo": "_START_ tot _END_ van _TOTAL_ resultaten", 13 | "sInfoEmpty": "Geen resultaten om weer te geven", 14 | "sInfoFiltered": " (gefilterd uit _MAX_ resultaten)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Zoeken:", 17 | "sEmptyTable": "Geen resultaten aanwezig in de tabel", 18 | "sInfoThousands": ".", 19 | "sLoadingRecords": "Een moment geduld aub - bezig met laden...", 20 | "oPaginate": { 21 | "sFirst": "Eerste", 22 | "sLast": "Laatste", 23 | "sNext": "Volgende", 24 | "sPrevious": "Vorige" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Estonian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Estonian translation 3 | * @name Estonian 4 | * @anchor Estonian 5 | * @author Janek Todoruk 6 | */ 7 | 8 | { 9 | "sProcessing": "Palun oodake, koostan kuvamiseks nimekirja!", 10 | "sLengthMenu": "Näita kirjeid _MENU_ kaupa", 11 | "sZeroRecords": "Otsitavat vastet ei leitud.", 12 | "sInfo": "Kuvatud: _TOTAL_ kirjet (_START_-_END_)", 13 | "sInfoEmpty": "Otsinguvasteid ei leitud", 14 | "sInfoFiltered": " - filteeritud _MAX_ kirje seast.", 15 | "sInfoPostFix": "Kõik kuvatud kirjed põhinevad reaalsetel tulemustel.", 16 | "sSearch": "Otsi kõikide tulemuste seast:", 17 | "oPaginate": { 18 | "sFirst": "Algus", 19 | "sPrevious": "Eelmine", 20 | "sNext": "Järgmine", 21 | "sLast": "Viimane" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Filipino.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Filipino translation 3 | * @name Filipino 4 | * @anchor Filipino 5 | * @author Citi360 6 | */ 7 | 8 | { 9 | "sProcessing": "Pagproseso...", 10 | "sLengthMenu": "Ipakita _MENU_ entries", 11 | "sZeroRecords": "Walang katugmang mga talaan na natagpuan", 12 | "sInfo": "Ipinapakita ang _START_ sa _END_ ng _TOTAL_ entries", 13 | "sInfoEmpty": "Ipinapakita ang 0-0 ng 0 entries", 14 | "sInfoFiltered": "(na-filter mula _MAX_ kabuuang entries)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Paghahanap:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Unang", 20 | "sPrevious": "Nakaraan", 21 | "sNext": "Susunod", 22 | "sLast": "Huli" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Finnish.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Finnish translation 3 | * @name Finnish 4 | * @anchor Finnish 5 | * @author Seppo Äyräväinen 6 | */ 7 | 8 | { 9 | "sProcessing": "Hetkinen...", 10 | "sLengthMenu": "Näytä kerralla _MENU_ riviä", 11 | "sZeroRecords": "Tietoja ei löytynyt", 12 | "sInfo": "Näytetään rivit _START_ - _END_ (yhteensä _TOTAL_ )", 13 | "sInfoEmpty": "Näytetään 0 - 0 (yhteensä 0)", 14 | "sInfoFiltered": "(suodatettu _MAX_ tuloksen joukosta)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Etsi:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Ensimmäinen", 20 | "sPrevious": "Edellinen", 21 | "sNext": "Seuraava", 22 | "sLast": "Viimeinen" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Georgian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Georgian translation 3 | * @name Georgian 4 | * @anchor Georgian 5 | * @author Mikheil Nadareishvili 6 | */ 7 | 8 | { 9 | "sProcessing": "მიმდინარეობს დამუშავება...", 10 | "sLengthMenu": "აჩვენე _MENU_ ჩანაწერი", 11 | "sZeroRecords": "არაფერი მოიძებნა", 12 | "sInfo": "ნაჩვენებია ჩანაწერები _START_–დან _END_–მდე, სულ _TOTAL_ ჩანაწერია", 13 | "sInfoEmpty": "ნაჩვენებია ჩანაწერები 0–დან 0–მდე, სულ 0 ჩანაწერია", 14 | "sInfoFiltered": "(გაფილტრული შედეგი _MAX_ ჩანაწერიდან)", 15 | "sInfoPostFix": "", 16 | "sSearch": "ძიება:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "პირველი", 20 | "sPrevious": "წინა", 21 | "sNext": "შემდეგი", 22 | "sLast": "ბოლო" 23 | } 24 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Greek.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Greek translation 3 | * @name Greek 4 | * @anchor Greek 5 | * @author Abraam Ziogas 6 | */ 7 | 8 | { 9 | "sProcessing": "Επεξεργασία...", 10 | "sLengthMenu": "Δείξε _MENU_ εγγραφές", 11 | "sZeroRecords": "Δεν βρέθηκαν εγγραφές που να ταιριάζουν", 12 | "sInfo": "Δείχνοντας _START_ εως _END_ από _TOTAL_ εγγραφές", 13 | "sInfoEmpty": "Δείχνοντας 0 εως 0 από 0 εγγραφές", 14 | "sInfoFiltered": "(φιλτραρισμένες από _MAX_ συνολικά εγγραφές)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Αναζήτηση:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Πρώτη", 20 | "sPrevious": "Προηγούμενη", 21 | "sNext": "Επόμενη", 22 | "sLast": "Τελευταία" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Hebrew.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Hebrew translation 3 | * @name Hebrew 4 | * @anchor Hebrew 5 | * @author Neil Osman (WW3) 6 | */ 7 | 8 | { 9 | "sProcessing": "מעבד...", 10 | "sLengthMenu": "הצג _MENU_ פריטים", 11 | "sZeroRecords": "לא נמצאו רשומות מתאימות", 12 | "sInfo": "_START_ עד _END_ מתוך _TOTAL_ רשומות" , 13 | "sInfoEmpty": "0 עד 0 מתוך 0 רשומות", 14 | "sInfoFiltered": "(מסונן מסך _MAX_ רשומות)", 15 | "sInfoPostFix": "", 16 | "sSearch": "חפש:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "ראשון", 20 | "sPrevious": "קודם", 21 | "sNext": "הבא", 22 | "sLast": "אחרון" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Hindi.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Hindi translation 3 | * @name Hindi 4 | * @anchor Hindi 5 | * @author Outshine Solutions 6 | */ 7 | 8 | { 9 | "sProcessing": "प्रगति पे हैं ...", 10 | "sLengthMenu": " _MENU_ प्रविष्टियां दिखाएं ", 11 | "sZeroRecords": "रिकॉर्ड्स का मेल नहीं मिला", 12 | "sInfo": "_START_ to _END_ of _TOTAL_ प्रविष्टियां दिखा रहे हैं", 13 | "sInfoEmpty": "0 में से 0 से 0 प्रविष्टियां दिखा रहे हैं", 14 | "sInfoFiltered": "(_MAX_ कुल प्रविष्टियों में से छठा हुआ)", 15 | "sInfoPostFix": "", 16 | "sSearch": "खोजें:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "प्रथम", 20 | "sPrevious": "पिछला", 21 | "sNext": "अगला", 22 | "sLast": "अंतिम" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Icelandic.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Icelandic translation 3 | * @name Icelandic 4 | * @anchor Icelandic 5 | * @author Finnur Kolbeinsson 6 | */ 7 | 8 | { 9 | "sEmptyTable": "Engin gögn eru í þessari töflu", 10 | "sInfo": "Sýni _START_ til _END_ af _TOTAL_ færslum", 11 | "sInfoEmpty": "Sýni 0 til 0 af 0 færslum", 12 | "sInfoFiltered": "(síað út frá _MAX_ færslum)", 13 | "sInfoPostFix": "", 14 | "sInfoThousands": ".", 15 | "sLengthMenu": "Sýna _MENU_ færslur", 16 | "sLoadingRecords": "Hleð...", 17 | "sProcessing": "Úrvinnsla...", 18 | "sSearch": "Leita:", 19 | "sZeroRecords": "Engar færslur fundust", 20 | "oPaginate": { 21 | "sFirst": "Fyrsta", 22 | "sLast": "Síðasta", 23 | "sNext": "Næsta", 24 | "sPrevious": "Fyrri" 25 | }, 26 | "oAria": { 27 | "sSortAscending": ": virkja til að raða dálki í hækkandi röð", 28 | "sSortDescending": ": virkja til að raða dálki lækkandi í röð" 29 | } 30 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Indonesian-Alternative.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Indonesian translation 3 | * @name Indonesian 4 | * @anchor Indonesian 5 | * @author Landung Wahana 6 | */ 7 | 8 | { 9 | "sProcessing": "Sedang proses...", 10 | "sLengthMenu": "Tampilan _MENU_ entri", 11 | "sZeroRecords": "Tidak ditemukan data yang sesuai", 12 | "sInfo": "Tampilan _START_ sampai _END_ dari _TOTAL_ entri", 13 | "sInfoEmpty": "Tampilan 0 hingga 0 dari 0 entri", 14 | "sInfoFiltered": "(disaring dari _MAX_ entri keseluruhan)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Cari:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Awal", 20 | "sPrevious": "Balik", 21 | "sNext": "Lanjut", 22 | "sLast": "Akhir" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Indonesian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Indonesian translation 3 | * @name Indonesian 4 | * @anchor Indonesian 5 | * @author Cipto Hadi 6 | */ 7 | 8 | { 9 | "sProcessing": "Sedang memproses...", 10 | "sLengthMenu": "Tampilkan _MENU_ entri", 11 | "sZeroRecords": "Tidak ditemukan data yang sesuai", 12 | "sInfo": "Menampilkan _START_ sampai _END_ dari _TOTAL_ entri", 13 | "sInfoEmpty": "Menampilkan 0 sampai 0 dari 0 entri", 14 | "sInfoFiltered": "(disaring dari _MAX_ entri keseluruhan)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Cari:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Pertama", 20 | "sPrevious": "Sebelumnya", 21 | "sNext": "Selanjutnya", 22 | "sLast": "Terakhir" 23 | } 24 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Irish.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Irish translation 3 | * @name Irish 4 | * @anchor Irish 5 | * @author Lets Be Famous Journal 6 | */ 7 | 8 | { 9 | "sProcessing": "Próiseáil...", 10 | "sLengthMenu": "Taispeáin iontrálacha _MENU_", 11 | "sZeroRecords": "Gan aon taifead meaitseáil aimsithe", 12 | "sInfo": "_START_ Showing a _END_ na n-iontrálacha _TOTAL_", 13 | "sInfoEmpty": "Showing 0-0 na n-iontrálacha 0", 14 | "sInfoFiltered": "(scagtha ó _MAX_ iontrálacha iomlán)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Cuardaigh:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "An Chéad", 20 | "sPrevious": "Roimhe Seo", 21 | "sNext": "Ar Aghaidh", 22 | "sLast": "Last" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Japanese.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Japanese translation 3 | * @name Japanese 4 | * @anchor Japanese 5 | * @author yusuke 6 | */ 7 | 8 | { 9 | "sProcessing": "処理中...", 10 | "sLengthMenu": "_MENU_ 件表示", 11 | "sZeroRecords": "データはありません。", 12 | "sInfo": " _TOTAL_ 件中 _START_ から _END_ まで表示", 13 | "sInfoEmpty": " 0 件中 0 から 0 まで表示", 14 | "sInfoFiltered": "(全 _MAX_ 件より抽出)", 15 | "sInfoPostFix": "", 16 | "sSearch": "検索:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "先頭", 20 | "sPrevious": "前", 21 | "sNext": "次", 22 | "sLast": "最終" 23 | } 24 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Korean.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Korean translation 3 | * @name Korean 4 | * @anchor Korean 5 | * @author WonGoo Lee 6 | */ 7 | 8 | { 9 | "sEmptyTable": "데이터가 없습니다", 10 | "sInfo": "_START_ - _END_ / _TOTAL_", 11 | "sInfoEmpty": "0 - 0 / 0", 12 | "sInfoFiltered": "(총 _MAX_ 개)", 13 | "sInfoPostFix": "", 14 | "sInfoThousands": ",", 15 | "sLengthMenu": "페이지당 줄수 _MENU_", 16 | "sLoadingRecords": "읽는중...", 17 | "sProcessing": "처리중...", 18 | "sSearch": "검색:", 19 | "sZeroRecords": "검색 결과가 없습니다", 20 | "oPaginate": { 21 | "sFirst": "처음", 22 | "sLast": "마지막", 23 | "sNext": "다음", 24 | "sPrevious": "이전" 25 | }, 26 | "oAria": { 27 | "sSortAscending": ": 오름차순 정렬", 28 | "sSortDescending": ": 내림차순 정렬" 29 | } 30 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Latvian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Latvian translation 3 | * @name Latvian 4 | * @anchor Latvian 5 | * @author Oskars Podans 6 | */ 7 | 8 | { 9 | "sProcessing": "Uzgaidiet...", 10 | "sLengthMenu": "Rādīt _MENU_ ierakstus", 11 | "sZeroRecords": "Nav atrasti vaicājumam atbilstoši ieraksti", 12 | "sInfo": "Parādīti _START_. līdz _END_. no _TOTAL_ ierakstiem", 13 | "sInfoEmpty": "Nav ierakstu", 14 | "sInfoFiltered": "(atlasīts no pavisam _MAX_ ierakstiem)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Meklēt:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Pirmā", 20 | "sPrevious": "Iepriekšējā", 21 | "sNext": "Nākošā", 22 | "sLast": "Pēdējā" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Lithuanian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Lithuanian translation 3 | * @name Lithuanian 4 | * @anchor Lithuanian 5 | * @author Kęstutis Morkūnas 6 | */ 7 | 8 | { 9 | "sProcessing": "Apdorojama...", 10 | "sLengthMenu": "Rodyti _MENU_ įrašus", 11 | "sZeroRecords": "Įrašų nerasta", 12 | "sInfo": "Rodomi įrašai nuo _START_ iki _END_ iš _TOTAL_ įrašų", 13 | "sInfoEmpty": "Rodomi įrašai nuo 0 iki 0 iš 0", 14 | "sInfoFiltered": "(atrinkta iš _MAX_ įrašų)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Ieškoti:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Pirmas", 20 | "sPrevious": "Ankstesnis", 21 | "sNext": "Tolimesnis", 22 | "sLast": "Paskutinis" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Macedonian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Macedonian translation 3 | * @name Macedonian 4 | * @anchor Macedonian 5 | * @author Bojan Petkovski 6 | */ 7 | 8 | { 9 | "sProcessing": "Процесирање...", 10 | "sLengthMenu": "Прикажи _MENU_ записи", 11 | "sZeroRecords": "Не се пронајдени записи", 12 | "sEmptyTable": "Нема податоци во табелата", 13 | "sLoadingRecords": "Вчитување...", 14 | "sInfo": "Прикажани _START_ до _END_ од _TOTAL_ записи", 15 | "sInfoEmpty": "Прикажани 0 до 0 од 0 записи", 16 | "sInfoFiltered": "(филтрирано од вкупно _MAX_ записи)", 17 | "sInfoPostFix": "", 18 | "sSearch": "Барај", 19 | "sUrl": "", 20 | "oPaginate": { 21 | "sFirst": "Почетна", 22 | "sPrevious": "Претходна", 23 | "sNext": "Следна", 24 | "sLast": "Последна" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Norwegian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Norwegian translation 3 | * @name Norwegian 4 | * @anchor Norwegian 5 | * @author Petter Ekrann 6 | */ 7 | 8 | { 9 | "sProcessing": "Laster...", 10 | "sLengthMenu": "Vis _MENU_ linjer", 11 | "sZeroRecords": "Ingen linjer matcher søket", 12 | "sInfo": "Viser _START_ til _END_ av _TOTAL_ linjer", 13 | "sInfoEmpty": "Viser 0 til 0 av 0 linjer", 14 | "sInfoFiltered": "(filtrert fra _MAX_ totalt antall linjer)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Søk:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Første", 20 | "sPrevious": "Forrige", 21 | "sNext": "Neste", 22 | "sLast": "Siste" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Persian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Persian translation 3 | * @name Persian 4 | * @anchor Persian 5 | * @author Ehsan Chavoshi 6 | */ 7 | 8 | { 9 | "sProcessing": "درحال پردازش...", 10 | "sLengthMenu": "نمایش محتویات _MENU_", 11 | "sZeroRecords": "موردی یافت نشد", 12 | "sInfo": "نمایش _START_ تا _END_ از مجموع _TOTAL_ مورد", 13 | "sInfoEmpty": "تهی", 14 | "sInfoFiltered": "(فیلتر شده از مجموع _MAX_ مورد)", 15 | "sInfoPostFix": "", 16 | "sSearch": "جستجو:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "ابتدا", 20 | "sPrevious": "قبلی", 21 | "sNext": "بعدی", 22 | "sLast": "انتها" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Portuguese.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Portuguese translation 3 | * @name Portuguese 4 | * @anchor Portuguese 5 | * @author Nuno Felicio 6 | */ 7 | 8 | { 9 | "sProcessing": "A processar...", 10 | "sLengthMenu": "Mostrar _MENU_ registos", 11 | "sZeroRecords": "Não foram encontrados resultados", 12 | "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registos", 13 | "sInfoEmpty": "Mostrando de 0 até 0 de 0 registos", 14 | "sInfoFiltered": "(filtrado de _MAX_ registos no total)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Procurar:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Primeiro", 20 | "sPrevious": "Anterior", 21 | "sNext": "Seguinte", 22 | "sLast": "Último" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Romanian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Romanian translation 3 | * @name Romanian 4 | * @anchor Romanian 5 | * @author Alexandru Jurubita 6 | */ 7 | 8 | { 9 | "sProcessing": "Proceseaza...", 10 | "sLengthMenu": "Afiseaza _MENU_ inregistrari pe pagina", 11 | "sZeroRecords": "Nu am gasit nimic - ne pare rau", 12 | "sInfo": "Afisate de la _START_ la _END_ din _TOTAL_ inregistrari", 13 | "sInfoEmpty": "Afisate de la 0 la 0 din 0 inregistrari", 14 | "sInfoFiltered": "(filtrate dintr-un total de _MAX_ inregistrari)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Cauta:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Prima", 20 | "sPrevious": "Precedenta", 21 | "sNext": "Urmatoarea", 22 | "sLast": "Ultima" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Russian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Russian translation 3 | * @name Russian 4 | * @anchor Russian 5 | * @author Tjoma 6 | * @autor aspyatkin 7 | */ 8 | 9 | { 10 | "processing": "Подождите...", 11 | "search": "Поиск:", 12 | "lengthMenu": "Показать _MENU_ записей", 13 | "info": "Записи с _START_ до _END_ из _TOTAL_ записей", 14 | "infoEmpty": "Записи с 0 до 0 из 0 записей", 15 | "infoFiltered": "(отфильтровано из _MAX_ записей)", 16 | "infoPostFix": "", 17 | "loadingRecords": "Загрузка записей...", 18 | "zeroRecords": "Записи отсутствуют.", 19 | "emptyTable:": "В таблице отсутствуют данные", 20 | "paginate": { 21 | "first": "Первая", 22 | "previous": "Предыдущая", 23 | "next": "Следующая", 24 | "last": "Последняя" 25 | }, 26 | "aria": { 27 | "sortAscending": ": активировать для сортировки столбца по возрастанию", 28 | "sortDescending": ": активировать для сортировки столбца по убыванию" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Serbian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Serbian translation (Latin alphabet) 3 | * @name Serbian (Latin) 4 | * @anchor Serbian (Latin) 5 | * @author Marko Novakovic 6 | */ 7 | 8 | { 9 | "sProcessing": "Procesiranje u toku...", 10 | "sLengthMenu": "Prikaži _MENU_ elemenata", 11 | "sZeroRecords": "Nije pronađen nijedan rezultat", 12 | "sInfo": "Prikaz _START_ do _END_ od ukupno _TOTAL_ elemenata", 13 | "sInfoEmpty": "Prikaz 0 do 0 od ukupno 0 elemenata", 14 | "sInfoFiltered": "(filtrirano od ukupno _MAX_ elemenata)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Pretraga:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Početna", 20 | "sPrevious": "Prethodna", 21 | "sNext": "Sledeća", 22 | "sLast": "Poslednja" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Slovenian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Slovenian translation 3 | * @name Slovenian 4 | * @anchor Slovenian 5 | * @author Marko Kroflic, Blaž Brenčič and Andrej Florjančič 6 | */ 7 | 8 | { 9 | "sEmptyTable": "Nobenih podatkov ni na voljo", 10 | "sInfo": "Prikazujem _START_ do _END_ od _TOTAL_ zapisov", 11 | "sInfoEmpty": "Prikazujem 0 do 0 od 0 zapisov", 12 | "sInfoFiltered": "(filtrirano od _MAX_ vseh zapisov)", 13 | "sInfoPostFix": "", 14 | "sInfoThousands": ",", 15 | "sLengthMenu": "Prikaži _MENU_ zapisov", 16 | "sLoadingRecords": "Nalagam...", 17 | "sProcessing": "Obdelujem...", 18 | "sSearch": "Išči:", 19 | "sZeroRecords": "Nobeden zapis ne ustreza", 20 | "oPaginate": { 21 | "sFirst": "Prvi", 22 | "sLast": "Zadnji", 23 | "sNext": "Nasl.", 24 | "sPrevious": "Pred." 25 | }, 26 | "oAria": { 27 | "sSortAscending": ": vključite za naraščujoči sort", 28 | "sSortDescending": ": vključite za padajoči sort" 29 | } 30 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Thai.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Thai translation 3 | * @name Thai 4 | * @anchor Thai 5 | * @author Thanva Thonglor 6 | */ 7 | 8 | { 9 | "sProcessing": "กำลังดำเนินการ...", 10 | "sLengthMenu": "แสดง_MENU_ แถว", 11 | "sZeroRecords": "ไม่พบข้อมูล", 12 | "sInfo": "แสดง _START_ ถึง _END_ จาก _TOTAL_ แถว", 13 | "sInfoEmpty": "แสดง 0 ถึง 0 จาก 0 แถว", 14 | "sInfoFiltered": "(กรองข้อมูล _MAX_ ทุกแถว)", 15 | "sInfoPostFix": "", 16 | "sSearch": "ค้นหา:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "เิริ่มต้น", 20 | "sPrevious": "ก่อนหน้า", 21 | "sNext": "ถัดไป", 22 | "sLast": "สุดท้าย" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Turkish.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Turkish translation 3 | * @name Turkish 4 | * @anchor Turkish 5 | * @author Umit Gorkem 6 | */ 7 | 8 | { 9 | "sProcessing": "İşleniyor...", 10 | "sLengthMenu": "Sayfada _MENU_ Kayıt Göster", 11 | "sZeroRecords": "Eşleşen Kayıt Bulunmadı", 12 | "sInfo": " _TOTAL_ Kayıttan _START_ - _END_ Arası Kayıtlar", 13 | "sInfoEmpty": "Kayıt Yok", 14 | "sInfoFiltered": "( _MAX_ Kayıt İçerisinden Bulunan)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Bul:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "İlk", 20 | "sPrevious": "Önceki", 21 | "sNext": "Sonraki", 22 | "sLast": "Son" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Ukranian.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Ukranian translation 3 | * @name Ukranian 4 | * @anchor Ukranian 5 | * @author antyrat 6 | */ 7 | 8 | { 9 | "sProcessing": "Зачекайте...", 10 | "sLengthMenu": "Показати _MENU_ записів", 11 | "sZeroRecords": "Записи відсутні.", 12 | "sInfo": "Записи з _START_ по _END_ із _TOTAL_ записів", 13 | "sInfoEmpty": "Записи з 0 по 0 із 0 записів", 14 | "sInfoFiltered": "(відфільтровано з _MAX_ записів)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Пошук:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Перша", 20 | "sPrevious": "Попередня", 21 | "sNext": "Наступна", 22 | "sLast": "Остання" 23 | }, 24 | "oAria": { 25 | "sSortAscending": ": активувати для сортування стовпців за зростанням", 26 | "sSortDescending": ": активувати для сортування стовпців за спаданням" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Urdu.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Urdu translation 3 | * @name Urdu 4 | * @anchor Urdu 5 | * @author Zafar Subzwari 6 | */ 7 | 8 | { 9 | "sProcessing": "ہے جاري عملدرامد...", 10 | "sLengthMenu": "دکہائين شقيں کي (_MENU_) فہرست", 11 | "sZeroRecords": "ملے نہيں مفروضات جلتے ملتے کوئ", 12 | "sInfo": "فہرست کي تک _END_ سے _START_ سے ميں _TOTAL_ فہرست پوري ہے نظر پيش", 13 | "sInfoEmpty": "فہرست کي تک 0 سے 0 سے ميں 0 قل ہے نظر پيشّ", 14 | "sInfoFiltered": "(فہرست ہوئ چھني سے ميں _MAX_ قل)", 15 | "sInfoPostFix": "", 16 | "sSearch": "کرو تلاش:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "پہلا", 20 | "sPrevious": "پچہلا", 21 | "sNext": "اگلا", 22 | "sLast": "آخري" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Uzbek.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Uzbek translation 3 | * @name Uzbek 4 | * @anchor Uzbek 5 | * @author Farkhod Dadajanov 6 | */ 7 | 8 | { 9 | "sEmptyTable": "Ma'lumot yo'q", 10 | "sInfo": "Umumiy _TOTAL_ yozuvlarlardan _START_ dan _END_ gachasi ko'rsatilmoqda", 11 | "sInfoEmpty": "Umumiy 0 yozuvlardan 0 dan 0 gachasi ko'rsatilmoqda", 12 | "sInfoFiltered": "(_MAX_ yozuvlardan filtrlandi)", 13 | "sInfoPostFix": "", 14 | "sLengthMenu": "_MENU_ ta yozuvlarni ko'rsat", 15 | "sLoadingRecords": "Yozuvlar yuklanmoqda...", 16 | "sProcessing": "Ishlayapman...", 17 | "sSearch": "Izlash:", 18 | "sZeroRecords": "Ma'lumot yo'q.", 19 | "oPaginate": { 20 | "sFirst": "Birinchi", 21 | "sPrevious": "Avvalgi", 22 | "sNext": "Keyingi", 23 | "sLast": "Son'ggi" 24 | }, 25 | "oAria": { 26 | "sSortAscending": ": to'g'ri tartiblash", 27 | "sSortDescending": ": teskari tartiblash" 28 | } 29 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/i18n/Vietnamese.lang: -------------------------------------------------------------------------------- 1 | /** 2 | * Vietnamese translation 3 | * @name Vietnamese 4 | * @anchor Vietnamese 5 | * @author Trinh Phuoc Thai 6 | */ 7 | 8 | { 9 | "sProcessing": "Đang xử lý...", 10 | "sLengthMenu": "Xem _MENU_ mục", 11 | "sZeroRecords": "Không tìm thấy dòng nào phù hợp", 12 | "sInfo": "Đang xem _START_ đến _END_ trong tổng số _TOTAL_ mục", 13 | "sInfoEmpty": "Đang xem 0 đến 0 trong tổng số 0 mục", 14 | "sInfoFiltered": "(được lọc từ _MAX_ mục)", 15 | "sInfoPostFix": "", 16 | "sSearch": "Tìm:", 17 | "sUrl": "", 18 | "oPaginate": { 19 | "sFirst": "Đầu", 20 | "sPrevious": "Trước", 21 | "sNext": "Tiếp", 22 | "sLast": "Cuối" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/bootstrap/1/dataTables.bootstrap.css: -------------------------------------------------------------------------------- 1 | div.dataTables_length label { 2 | width: 460px; 3 | float: left; 4 | text-align: left; 5 | } 6 | 7 | div.dataTables_length select { 8 | width: 75px; 9 | } 10 | 11 | div.dataTables_filter label { 12 | float: right; 13 | width: 460px; 14 | } 15 | 16 | div.dataTables_info { 17 | padding-top: 8px; 18 | } 19 | 20 | div.dataTables_paginate { 21 | float: right; 22 | margin: 0; 23 | } 24 | 25 | table { 26 | margin: 1em 0; 27 | clear: both; 28 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/bootstrap/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/bootstrap/images/sort_asc.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/bootstrap/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/bootstrap/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/bootstrap/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/bootstrap/images/sort_both.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/bootstrap/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/bootstrap/images/sort_desc.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/bootstrap/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/bootstrap/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/foundation/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/foundation/images/sort_asc.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/foundation/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/foundation/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/foundation/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/foundation/images/sort_both.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/foundation/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/foundation/images/sort_desc.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/integration/foundation/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/integration/foundation/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/sorting/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-plugins/sorting/.DS_Store -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/sorting/alt-string.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Sort on the 'alt' tag of images in a column. This is particularly useful if 3 | * you have a column of images (ticks and crosses for example) and you want to 4 | * control the sorting using the alt tag. 5 | * 6 | * @name Alt string 7 | * @summary Use the `alt` attribute of an image tag as the data to sort upon. 8 | * @author _Jumpy_ 9 | * 10 | * @example 11 | * $('#example').dataTable( { 12 | * columnDefs: [ 13 | * { type: 'alt-string', targets: 0 } 14 | * ] 15 | * } ); 16 | */ 17 | 18 | jQuery.extend( jQuery.fn.dataTableExt.oSort, { 19 | "alt-string-pre": function ( a ) { 20 | return a.match(/alt="(.*?)"/)[1].toLowerCase(); 21 | }, 22 | 23 | "alt-string-asc": function( a, b ) { 24 | return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 25 | }, 26 | 27 | "alt-string-desc": function(a,b) { 28 | return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 29 | } 30 | } ); 31 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/sorting/custom-data-source/dom-checkbox.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Read information from a column of checkboxes (input elements with type 3 | * checkbox) and return an array to use as a basis for sorting. 4 | * 5 | * @summary Sort based on the checked state of checkboxes in a column 6 | * @name Checkbox data source 7 | * @author [Allan Jardine](http://sprymedia.co.uk) 8 | */ 9 | 10 | $.fn.dataTable.ext.order['dom-checkbox'] = function ( settings, col ) 11 | { 12 | return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { 13 | return $('input', td).prop('checked') ? '1' : '0'; 14 | } ); 15 | }; 16 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/sorting/custom-data-source/dom-select.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Read information from a column of select (drop down) menus and return an 3 | * array to use as a basis for sorting. 4 | * 5 | * @summary Sort based on the value of the `dt-tag select` options in a column 6 | * @name Select menu data source 7 | * @requires DataTables 1.10+ 8 | * @author [Allan Jardine](http://sprymedia.co.uk) 9 | */ 10 | 11 | $.fn.dataTable.ext.order['dom-select'] = function ( settings, col ) 12 | { 13 | return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { 14 | return $('select', td).val(); 15 | } ); 16 | }; 17 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/sorting/custom-data-source/dom-text.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Read information from a column of input (type text) elements and return an 3 | * array to use as a basis for sorting. 4 | * 5 | * @summary Sorting based on the values of `dt-tag input` elements in a column. 6 | * @name Input element data source 7 | * @requires DataTables 1.10+ 8 | * @author [Allan Jardine](http://sprymedia.co.uk) 9 | */ 10 | 11 | $.fn.dataTable.ext.order['dom-text'] = function ( settings, col ) 12 | { 13 | return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) { 14 | return $('input', td).val(); 15 | } ); 16 | }; 17 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/sorting/scientific.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This plug-in will treat numbers which are in scientific notation (for 3 | * example `1E-10`, `1.2E6` etc) and sort them numerically. 4 | * 5 | * @name Scientific notation sorting 6 | * @summary Sort data which is written in exponential notation. 7 | * @author [Nick Schurch](http://datatables.net/forums/profile/21757/nickschurch) 8 | * 9 | * @example 10 | * $('#example').dataTable( { 11 | * columnDefs: [ 12 | * { type: 'scientific', targets: 0 } 13 | * ] 14 | * } ); 15 | */ 16 | 17 | jQuery.extend( jQuery.fn.dataTableExt.oSort, { 18 | "scientific-pre": function ( a ) { 19 | return parseFloat(a); 20 | }, 21 | 22 | "scientific-asc": function ( a, b ) { 23 | return ((a < b) ? -1 : ((a > b) ? 1 : 0)); 24 | }, 25 | 26 | "scientific-desc": function ( a, b ) { 27 | return ((a < b) ? 1 : ((a > b) ? -1 : 0)); 28 | } 29 | } ); 30 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/type-detection/date-uk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Automatically detect British (`dd/mm/yyyy`) date types. Goes with the UK 3 | * date sorting plug-in. 4 | * 5 | * @name Date (`dd/mm/yyyy`) 6 | * @summary Detect data which is in the date format `dd/mm/yyyy` 7 | * @author Andy McMaster 8 | */ 9 | 10 | jQuery.fn.dataTableExt.aTypes.unshift( 11 | function ( sData ) 12 | { 13 | if (sData !== null && sData.match(/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20|21)\d\d$/)) 14 | { 15 | return 'date-uk'; 16 | } 17 | return null; 18 | } 19 | ); 20 | -------------------------------------------------------------------------------- /static/bower_components/datatables-plugins/type-detection/ip-address.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Automatically detect IP addresses in dot notation. Goes perfectly with the 3 | * IP address sorting function. 4 | * 5 | * @name IP address detection 6 | * @summary Detect data which is in IP address notation 7 | * @author Brad Wasson 8 | */ 9 | 10 | jQuery.fn.dataTableExt.aTypes.unshift( 11 | function ( sData ) 12 | { 13 | if (/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(sData)) { 14 | return 'ip-address'; 15 | } 16 | return null; 17 | } 18 | ); 19 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "datatables-responsive", 3 | "version": "1.0.3", 4 | "main": [ 5 | "js/dataTables.responsive.js", 6 | "css/dataTables.responsive.css" 7 | ], 8 | "dependencies": { 9 | "jquery": ">=1.7.0", 10 | "datatables": ">=1.10.1" 11 | }, 12 | "homepage": "https://github.com/DataTables/Responsive", 13 | "_release": "1.0.3", 14 | "_resolution": { 15 | "type": "version", 16 | "tag": "1.0.3", 17 | "commit": "21e780fff0ebf78ca67f714d8ec07ca4f20a104b" 18 | }, 19 | "_source": "git://github.com/DataTables/Responsive.git", 20 | "_target": "~1.0.3", 21 | "_originalSource": "datatables-responsive", 22 | "_direct": true 23 | } -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/.gitignore: -------------------------------------------------------------------------------- 1 | .sass-cache 2 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-responsive/Readme.md -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "datatables-responsive", 3 | "version": "1.0.2", 4 | "main": [ 5 | "js/dataTables.responsive.js", 6 | "css/dataTables.responsive.css" 7 | ], 8 | "dependencies": { 9 | "jquery": ">=1.7.0", 10 | "datatables": ">=1.10.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-responsive/examples/.DS_Store -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/child-rows/disable-child-rows.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 17 | 18 | 19 | Disable child rows 20 | 21 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/child-rows/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Child row control 5 | 6 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/display-control/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Display control 5 | 6 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Responsive DataTables 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/initialisation/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables-responsive/examples/initialisation/.DS_Store -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/initialisation/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Initialisation 5 | 6 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/examples/styling/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Styling 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /static/bower_components/datatables-responsive/make.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | OUT_DIR=$1 4 | DEBUG=$2 5 | 6 | # Change into script's own dir 7 | cd $(dirname $0) 8 | 9 | DT_SRC=$(dirname $(dirname $(pwd))) 10 | DT_BUILT="${DT_SRC}/built/DataTables" 11 | . $DT_SRC/build/include.sh 12 | 13 | # Copy CSS 14 | scss_compile css/dataTables.responsive.scss 15 | rsync -r css $OUT_DIR 16 | 17 | # Copy images 18 | #rsync -r images $OUT_DIR 19 | 20 | # Copy JS 21 | rsync -r js $OUT_DIR 22 | js_compress $OUT_DIR/js/dataTables.responsive.js 23 | 24 | # Copy and build examples 25 | rsync -r examples $OUT_DIR 26 | examples_process $OUT_DIR/examples 27 | 28 | # Readme 29 | cp Readme.md $OUT_DIR 30 | 31 | -------------------------------------------------------------------------------- /static/bower_components/datatables/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "datatables", 3 | "version": "1.10.4", 4 | "main": [ 5 | "media/js/jquery.dataTables.js", 6 | "media/css/jquery.dataTables.css" 7 | ], 8 | "dependencies": { 9 | "jquery": ">=1.7.0" 10 | }, 11 | "license": "MIT", 12 | "keywords": [ 13 | "jquery", 14 | "datatables", 15 | "table", 16 | "javascript", 17 | "library" 18 | ], 19 | "ignore": [ 20 | "/.*", 21 | "examples", 22 | "media/unit_testing", 23 | "composer.json", 24 | "dataTables.jquery.json", 25 | "package.json" 26 | ], 27 | "homepage": "https://github.com/DataTables/DataTables", 28 | "_release": "1.10.4", 29 | "_resolution": { 30 | "type": "version", 31 | "tag": "1.10.4", 32 | "commit": "96866489a52266c4b356364d7756dde8b7a0c172" 33 | }, 34 | "_source": "git://github.com/DataTables/DataTables.git", 35 | "_target": ">=1.10.1", 36 | "_originalSource": "datatables" 37 | } -------------------------------------------------------------------------------- /static/bower_components/datatables/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "datatables", 3 | "version": "1.10.4", 4 | "main": [ 5 | "media/js/jquery.dataTables.js", 6 | "media/css/jquery.dataTables.css" 7 | ], 8 | "dependencies": { 9 | "jquery": ">=1.7.0" 10 | }, 11 | "license": "MIT", 12 | "keywords": [ 13 | "jquery", 14 | "datatables", 15 | "table", 16 | "javascript", 17 | "library" 18 | ], 19 | "ignore": [ 20 | "/.*", 21 | "examples", 22 | "media/unit_testing", 23 | "composer.json", 24 | "dataTables.jquery.json", 25 | "package.json" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/Sorting icons.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/Sorting icons.psd -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/back_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/back_disabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/back_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/back_enabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/back_enabled_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/back_enabled_hover.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/favicon.ico -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/forward_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/forward_disabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/forward_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/forward_enabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/forward_enabled_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/forward_enabled_hover.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/sort_asc.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/sort_both.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/sort_desc.png -------------------------------------------------------------------------------- /static/bower_components/datatables/media/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/datatables/media/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /static/bower_components/font-awesome/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "version": "4.2.0", 5 | "keywords": [], 6 | "homepage": "http://fontawesome.io", 7 | "dependencies": {}, 8 | "devDependencies": {}, 9 | "license": [ 10 | "OFL-1.1", 11 | "MIT", 12 | "CC-BY-3.0" 13 | ], 14 | "main": [ 15 | "./css/font-awesome.css", 16 | "./fonts/*" 17 | ], 18 | "ignore": [ 19 | "*/.*", 20 | "*.json", 21 | "src", 22 | "*.yml", 23 | "Gemfile", 24 | "Gemfile.lock", 25 | "*.md" 26 | ], 27 | "_release": "4.2.0", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "v4.2.0", 31 | "commit": "0b924144a95a54fa738d0450ff66c1dabd11ae74" 32 | }, 33 | "_source": "git://github.com/FortAwesome/Font-Awesome.git", 34 | "_target": "~4.2", 35 | "_originalSource": "font-awesome" 36 | } -------------------------------------------------------------------------------- /static/bower_components/font-awesome/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/.npmignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | 34 | # don't need these in the npm package. 35 | src/ 36 | _config.yml 37 | bower.json 38 | component.json 39 | composer.json 40 | CONTRIBUTING.md 41 | Gemfile 42 | Gemfile.lock 43 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "version": "4.2.0", 5 | "keywords": [], 6 | "homepage": "http://fontawesome.io", 7 | "dependencies": {}, 8 | "devDependencies": {}, 9 | "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], 10 | "main": [ 11 | "./css/font-awesome.css", 12 | "./fonts/*" 13 | ], 14 | "ignore": [ 15 | "*/.*", 16 | "*.json", 17 | "src", 18 | "*.yml", 19 | "Gemfile", 20 | "Gemfile.lock", 21 | "*.md" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/bower_components/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/bower_components/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/bower_components/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/extras.less: -------------------------------------------------------------------------------- 1 | // Extras 2 | // -------------------------- 3 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "spinning.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 9 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 10 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 11 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/spinning.less: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | @-webkit-keyframes fa-spin { 10 | 0% { 11 | -webkit-transform: rotate(0deg); 12 | transform: rotate(0deg); 13 | } 14 | 100% { 15 | -webkit-transform: rotate(359deg); 16 | transform: rotate(359deg); 17 | } 18 | } 19 | 20 | @keyframes fa-spin { 21 | 0% { 22 | -webkit-transform: rotate(0deg); 23 | transform: rotate(0deg); 24 | } 25 | 100% { 26 | -webkit-transform: rotate(359deg); 27 | transform: rotate(359deg); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal 14px/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 9 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 10 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 11 | //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_spinning.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | @-webkit-keyframes fa-spin { 10 | 0% { 11 | -webkit-transform: rotate(0deg); 12 | transform: rotate(0deg); 13 | } 14 | 100% { 15 | -webkit-transform: rotate(359deg); 16 | transform: rotate(359deg); 17 | } 18 | } 19 | 20 | @keyframes fa-spin { 21 | 0% { 22 | -webkit-transform: rotate(0deg); 23 | transform: rotate(0deg); 24 | } 25 | 100% { 26 | -webkit-transform: rotate(359deg); 27 | transform: rotate(359deg); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /static/bower_components/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "spinning"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /static/bower_components/holderjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "holderjs", 3 | "main": "holder.js", 4 | "homepage": "https://github.com/imsky/holder", 5 | "version": "2.4.1", 6 | "_release": "2.4.1", 7 | "_resolution": { 8 | "type": "version", 9 | "tag": "v2.4.1", 10 | "commit": "bd2e0be3c5c86afbdef1da092eb72c8ce7d52dce" 11 | }, 12 | "_source": "git://github.com/imsky/holder.git", 13 | "_target": "~2.4.1", 14 | "_originalSource": "holderjs", 15 | "_direct": true 16 | } -------------------------------------------------------------------------------- /static/bower_components/holderjs/.gitattributes: -------------------------------------------------------------------------------- 1 | # Automatically normalize line endings for all text-based files 2 | * text=auto 3 | -------------------------------------------------------------------------------- /static/bower_components/holderjs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | todo.md 3 | -------------------------------------------------------------------------------- /static/bower_components/holderjs/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "quotmark": true, 3 | "boss": true, 4 | "eqnull": true, 5 | "expr": true, 6 | "funcscope": true, 7 | "loopfunc": true, 8 | "smarttabs": true, 9 | "node": true, 10 | "browser": true 11 | } 12 | -------------------------------------------------------------------------------- /static/bower_components/holderjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "holderjs", 3 | "main": "holder.js" 4 | } 5 | -------------------------------------------------------------------------------- /static/bower_components/holderjs/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "imsky/holder", 3 | "description": "Client-side image placeholders.", 4 | "homepage": "https://github.com/imsky/holder", 5 | "keywords": [ 6 | "images", 7 | "placeholders", 8 | "client-side", 9 | "canvas", 10 | "generation", 11 | "development" 12 | ], 13 | "license": "MIT", 14 | "type": "component", 15 | "authors": [ 16 | { 17 | "name": "Ivan Malopinsky", 18 | "homepage": "http://imsky.co" 19 | } 20 | ], 21 | "require": { 22 | "robloach/component-installer": "*" 23 | }, 24 | "extra": { 25 | "component": { 26 | "scripts": [ 27 | "holder.js" 28 | ], 29 | "files": [ 30 | "holder.min.js" 31 | ] 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /static/bower_components/holderjs/test/.gitignore: -------------------------------------------------------------------------------- 1 | performance.html 2 | benchmark.js 3 | lodash.js 4 | require.js 5 | test.js 6 | ua-parser.js -------------------------------------------------------------------------------- /static/bower_components/holderjs/test/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/holderjs/test/image.jpg -------------------------------------------------------------------------------- /static/bower_components/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.3", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "speed", 10 | "test", 11 | "*.md", 12 | "AUTHORS.txt", 13 | "Gruntfile.js", 14 | "package.json" 15 | ], 16 | "devDependencies": { 17 | "sizzle": "2.1.1-jquery.2.1.2", 18 | "requirejs": "2.1.10", 19 | "qunit": "1.14.0", 20 | "sinon": "1.8.1" 21 | }, 22 | "keywords": [ 23 | "jquery", 24 | "javascript", 25 | "library" 26 | ], 27 | "homepage": "https://github.com/jquery/jquery", 28 | "_release": "2.1.3", 29 | "_resolution": { 30 | "type": "version", 31 | "tag": "2.1.3", 32 | "commit": "8f2a9d9272d6ed7f32d3a484740ab342c02541e0" 33 | }, 34 | "_source": "git://github.com/jquery/jquery.git", 35 | "_target": ">= 1.9.1", 36 | "_originalSource": "jquery" 37 | } -------------------------------------------------------------------------------- /static/bower_components/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "2.1.3", 4 | "main": "dist/jquery.js", 5 | "license": "MIT", 6 | "ignore": [ 7 | "**/.*", 8 | "build", 9 | "speed", 10 | "test", 11 | "*.md", 12 | "AUTHORS.txt", 13 | "Gruntfile.js", 14 | "package.json" 15 | ], 16 | "devDependencies": { 17 | "sizzle": "2.1.1-jquery.2.1.2", 18 | "requirejs": "2.1.10", 19 | "qunit": "1.14.0", 20 | "sinon": "1.8.1" 21 | }, 22 | "keywords": [ 23 | "jquery", 24 | "javascript", 25 | "library" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/ajax/parseJSON.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Support: Android 2.3 6 | // Workaround failure to string-cast null input 7 | jQuery.parseJSON = function( data ) { 8 | return JSON.parse( data + "" ); 9 | }; 10 | 11 | return jQuery.parseJSON; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // Cross-browser xml parsing 6 | jQuery.parseXML = function( data ) { 7 | var xml, tmp; 8 | if ( !data || typeof data !== "string" ) { 9 | return null; 10 | } 11 | 12 | // Support: IE9 13 | try { 14 | tmp = new DOMParser(); 15 | xml = tmp.parseFromString( data, "text/xml" ); 16 | } catch ( e ) { 17 | xml = undefined; 18 | } 19 | 20 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 21 | jQuery.error( "Invalid XML: " + data ); 22 | } 23 | return xml; 24 | }; 25 | 26 | return jQuery.parseXML; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core" 3 | ], function( jQuery ) { 4 | return jQuery.now(); 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\?/); 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | // Return jQuery for attributes-only inclusion 10 | return jQuery; 11 | }); 12 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // Match a standalone tag 3 | return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); 4 | }); 5 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/addGetHookIf.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | 3 | function addGetHookIf( conditionFn, hookFn ) { 4 | // Define the hook, we'll check on the first run if it's really needed. 5 | return { 6 | get: function() { 7 | if ( conditionFn() ) { 8 | // Hook not needed (or it's not possible to use it due 9 | // to missing dependency), remove it. 10 | delete this.get; 11 | return; 12 | } 13 | 14 | // Hook needed; redefine it so that the support test is not executed again. 15 | return (this.get = hookFn).apply( this, arguments ); 16 | } 17 | }; 18 | } 19 | 20 | return addGetHookIf; 21 | 22 | }); 23 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | jQuery.expr.filters.hidden = function( elem ) { 7 | // Support: Opera <= 12.12 8 | // Opera reports offsetWidths and offsetHeights less than zero on some elements 9 | return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; 10 | }; 11 | jQuery.expr.filters.visible = function( elem ) { 12 | return !jQuery.expr.filters.hidden( elem ); 13 | }; 14 | 15 | }); 16 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/swap.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | // A method for quickly swapping in/out CSS properties to get correct calculations. 6 | jQuery.swap = function( elem, options, callback, args ) { 7 | var ret, name, 8 | old = {}; 9 | 10 | // Remember the old values, and insert the new ones 11 | for ( name in options ) { 12 | old[ name ] = elem.style[ name ]; 13 | elem.style[ name ] = options[ name ]; 14 | } 15 | 16 | ret = callback.apply( elem, args || [] ); 17 | 18 | // Revert the old values 19 | for ( name in options ) { 20 | elem.style[ name ] = old[ name ]; 21 | } 22 | 23 | return ret; 24 | }; 25 | 26 | return jQuery.swap; 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return [ "Top", "Right", "Bottom", "Left" ]; 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return function( elem ) { 3 | // Support: IE<=11+, Firefox<=30+ (#15098, #14150) 4 | // IE throws on elements created in popups 5 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 6 | if ( elem.ownerDocument.defaultView.opener ) { 7 | return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); 8 | } 9 | 10 | return window.getComputedStyle( elem, null ); 11 | }; 12 | }); 13 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/var/isHidden.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | // css is assumed 5 | ], function( jQuery ) { 6 | 7 | return function( elem, el ) { 8 | // isHidden might be called from jQuery#filter function; 9 | // in that case, element will be second argument 10 | elem = el || elem; 11 | return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); 12 | }; 13 | }); 14 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/var/rmargin.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^margin/); 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/data/accepts.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | jQuery.acceptData = function( owner ) { 9 | // Accepts only: 10 | // - Node 11 | // - Node.ELEMENT_NODE 12 | // - Node.DOCUMENT_NODE 13 | // - Object 14 | // - Any 15 | /* jshint -W018 */ 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | return jQuery.acceptData; 20 | }); 21 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/data/var/data_priv.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/data/var/data_user.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../Data" 3 | ], function( Data ) { 4 | return new Data(); 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/deprecated.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./traversing" 4 | ], function( jQuery ) { 5 | 6 | // The number of elements contained in the matched element set 7 | jQuery.fn.size = function() { 8 | return this.length; 9 | }; 10 | 11 | jQuery.fn.andSelf = jQuery.fn.addBack; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | jQuery.expr.filters.animated = function( elem ) { 8 | return jQuery.grep(jQuery.timers, function( fn ) { 9 | return elem === fn.elem; 10 | }).length; 11 | }; 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | // Attach a bunch of functions for handling common AJAX events 7 | jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { 8 | jQuery.fn[ type ] = function( fn ) { 9 | return this.on( type, fn ); 10 | }; 11 | }); 12 | 13 | }); 14 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | support.focusinBubbles = "onfocusin" in window; 6 | 7 | return support; 8 | 9 | }); 10 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/exports/global.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../var/strundefined" 4 | ], function( jQuery, strundefined ) { 5 | 6 | var 7 | // Map over jQuery in case of overwrite 8 | _jQuery = window.jQuery, 9 | 10 | // Map over the $ in case of overwrite 11 | _$ = window.$; 12 | 13 | jQuery.noConflict = function( deep ) { 14 | if ( window.$ === jQuery ) { 15 | window.$ = _$; 16 | } 17 | 18 | if ( deep && window.jQuery === jQuery ) { 19 | window.jQuery = _jQuery; 20 | } 21 | 22 | return jQuery; 23 | }; 24 | 25 | // Expose jQuery and $ identifiers, even in AMD 26 | // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 27 | // and CommonJS for browser emulators (#13566) 28 | if ( typeof noGlobal === strundefined ) { 29 | window.jQuery = window.$ = jQuery; 30 | } 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/jquery.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "./selector", 4 | "./traversing", 5 | "./callbacks", 6 | "./deferred", 7 | "./core/ready", 8 | "./data", 9 | "./queue", 10 | "./queue/delay", 11 | "./attributes", 12 | "./event", 13 | "./event/alias", 14 | "./manipulation", 15 | "./manipulation/_evalUrl", 16 | "./wrap", 17 | "./css", 18 | "./css/hiddenVisibleSelectors", 19 | "./serialize", 20 | "./ajax", 21 | "./ajax/xhr", 22 | "./ajax/script", 23 | "./ajax/jsonp", 24 | "./ajax/load", 25 | "./event/ajax", 26 | "./effects", 27 | "./effects/animatedSelector", 28 | "./offset", 29 | "./dimensions", 30 | "./deprecated", 31 | "./exports/amd", 32 | "./exports/global" 33 | ], function( jQuery ) { 34 | 35 | return jQuery; 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | jQuery._evalUrl = function( url ) { 6 | return jQuery.ajax({ 7 | url: url, 8 | type: "GET", 9 | dataType: "script", 10 | async: false, 11 | global: false, 12 | "throws": true 13 | }); 14 | }; 15 | 16 | return jQuery._evalUrl; 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/^(?:checkbox|radio)$/i); 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/outro.js: -------------------------------------------------------------------------------- 1 | })); 2 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/queue/delay.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../core", 3 | "../queue", 4 | "../effects" // Delay is optional because of this dependency 5 | ], function( jQuery ) { 6 | 7 | // Based off of the plugin by Clint Helfers, with permission. 8 | // http://blindsignals.com/index.php/2009/07/jquery-delay/ 9 | jQuery.fn.delay = function( time, type ) { 10 | time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 11 | type = type || "fx"; 12 | 13 | return this.queue( type, function( next, hooks ) { 14 | var timeout = setTimeout( next, time ); 15 | hooks.stop = function() { 16 | clearTimeout( timeout ); 17 | }; 18 | }); 19 | }; 20 | 21 | return jQuery.fn.delay; 22 | }); 23 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./core", 3 | "sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | jQuery.find = Sizzle; 7 | jQuery.expr = Sizzle.selectors; 8 | jQuery.expr[":"] = jQuery.expr.pseudos; 9 | jQuery.unique = Sizzle.uniqueSort; 10 | jQuery.text = Sizzle.getText; 11 | jQuery.isXMLDoc = Sizzle.isXML; 12 | jQuery.contains = Sizzle.contains; 13 | 14 | }); 15 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define([ "./selector-sizzle" ]); 2 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | return jQuery.expr.match.needsContext; 6 | }); 7 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return []; 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // [[Class]] -> type pairs 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.concat; 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.hasOwnProperty; 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.indexOf; 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.push; 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/rnotwhite.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return (/\S+/g); 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./arr" 3 | ], function( arr ) { 4 | return arr.slice; 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/strundefined.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | return typeof undefined; 3 | }); 4 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | // All support tests are defined in their respective modules. 3 | return {}; 4 | }); 5 | -------------------------------------------------------------------------------- /static/bower_components/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define([ 2 | "./class2type" 3 | ], function( class2type ) { 4 | return class2type.toString; 5 | }); 6 | -------------------------------------------------------------------------------- /static/bower_components/metisMenu/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "metisMenu", 3 | "version": "1.1.3", 4 | "homepage": "https://github.com/onokumus/metisMenu", 5 | "authors": [ 6 | "onokumus " 7 | ], 8 | "description": "Easy menu jQuery plugin for Twitter Bootstrap 3", 9 | "main": [ 10 | "dist/metisMenu.js", 11 | "dist/metisMenu.css" 12 | ], 13 | "keywords": [ 14 | "twitter", 15 | "bootstrap", 16 | "twbs", 17 | "jquery", 18 | "menu", 19 | "accordion", 20 | "toggle", 21 | "metis", 22 | "metisMenu" 23 | ], 24 | "license": "MIT", 25 | "ignore": [ 26 | "**/.*", 27 | "node_modules", 28 | "bower_components", 29 | "test", 30 | "tests" 31 | ], 32 | "dependencies": { 33 | "bootstrap": "~3.3.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /static/bower_components/metisMenu/dist/metisMenu.min.css: -------------------------------------------------------------------------------- 1 | /* 2 | * metismenu - v1.1.3 3 | * Easy menu jQuery plugin for Twitter Bootstrap 3 4 | * https://github.com/onokumus/metisMenu 5 | * 6 | * Made by Osman Nuri Okumus 7 | * Under MIT License 8 | */ 9 | 10 | .arrow{float:right;line-height:1.42857}.glyphicon.arrow:before{content:"\e079"}.active>a>.glyphicon.arrow:before{content:"\e114"}.fa.arrow:before{content:"\f104"}.active>a>.fa.arrow:before{content:"\f107"}.plus-times{float:right}.fa.plus-times:before{content:"\f067"}.active>a>.fa.plus-times{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.plus-minus{float:right}.fa.plus-minus:before{content:"\f067"}.active>a>.fa.plus-minus:before{content:"\f068"} -------------------------------------------------------------------------------- /static/bower_components/mocha/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mocha", 3 | "version": "1.17.1", 4 | "main": "mocha.js", 5 | "ignore": [ 6 | "bin", 7 | "editors", 8 | "images", 9 | "lib", 10 | "support", 11 | "test", 12 | ".gitignore", 13 | ".npmignore", 14 | ".travis.yml", 15 | "component.json", 16 | "index.js", 17 | "Makefile", 18 | "package.json" 19 | ], 20 | "homepage": "https://github.com/mochajs/mocha", 21 | "_release": "1.17.1", 22 | "_resolution": { 23 | "type": "version", 24 | "tag": "1.17.1", 25 | "commit": "7fc565ee3e225cb7a66bf39ae9c2c05b346675c1" 26 | }, 27 | "_source": "git://github.com/mochajs/mocha.git", 28 | "_target": "~1.17.1", 29 | "_originalSource": "mocha" 30 | } -------------------------------------------------------------------------------- /static/bower_components/mocha/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mocha", 3 | "version": "1.17.1", 4 | "main": "mocha.js", 5 | "ignore": [ 6 | "bin", 7 | "editors", 8 | "images", 9 | "lib", 10 | "support", 11 | "test", 12 | ".gitignore", 13 | ".npmignore", 14 | ".travis.yml", 15 | "component.json", 16 | "index.js", 17 | "Makefile", 18 | "package.json" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /static/bower_components/mocha/media/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | mocha 8 | 9 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "morris.js", 3 | "version": "0.5.1", 4 | "main": [ 5 | "./morris.js", 6 | "./morris.css" 7 | ], 8 | "dependencies": { 9 | "jquery": ">= 2.1.0", 10 | "raphael": ">= 2.0", 11 | "mocha": "~1.17.1" 12 | }, 13 | "devDependencies": { 14 | "mocha": "~1.17.1", 15 | "chai": "~1.9.0", 16 | "chai-jquery": "~1.2.1", 17 | "sinon": "http://sinonjs.org/releases/sinon-1.8.1.js", 18 | "sinon-chai": "~2.5.0" 19 | }, 20 | "homepage": "https://github.com/morrisjs/morris.js", 21 | "_release": "0.5.1", 22 | "_resolution": { 23 | "type": "version", 24 | "tag": "0.5.1", 25 | "commit": "d5cf1410eda7055eaf2c7d218d4cb24ec5ed55c8" 26 | }, 27 | "_source": "git://github.com/morrisjs/morris.js.git", 28 | "_target": "~0.5.1", 29 | "_originalSource": "morrisjs", 30 | "_direct": true 31 | } -------------------------------------------------------------------------------- /static/bower_components/morrisjs/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | node_modules/ 3 | spec/viz/output/ 4 | spec/viz/diff/ 5 | bower_components 6 | .idea 7 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.10 4 | before_script: 5 | - "npm install -g grunt-cli" 6 | - "npm install" 7 | - "cp -f bower.travis.json bower.json" 8 | - 'sed -i -e "s/JQUERY/$JQUERY/" bower.json' 9 | - 'sed -i -e "s/RAPHAEL/$RAPHAEL/" bower.json' 10 | - "bower install" 11 | env: 12 | - JQUERY="~> 1.8.0" RAPHAEL="~> 2.0.0" 13 | - JQUERY="~> 1.9.0" RAPHAEL="~> 2.0.0" 14 | - JQUERY="~> 2.0.0" RAPHAEL="~> 2.0.0" 15 | - JQUERY="~> 2.1.0" RAPHAEL="~> 2.0.0" 16 | - JQUERY="~> 1.8.0" RAPHAEL="~> 2.1.0" 17 | - JQUERY="~> 1.9.0" RAPHAEL="~> 2.1.0" 18 | - JQUERY="~> 2.0.0" RAPHAEL="~> 2.1.0" 19 | - JQUERY="~> 2.1.0" RAPHAEL="~> 2.1.0" 20 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "morris.js", 3 | "version": "0.5.0", 4 | "main": [ 5 | "./morris.js", 6 | "./morris.css" 7 | ], 8 | "dependencies": { 9 | "jquery": ">= 2.1.0", 10 | "raphael": ">= 2.0", 11 | "mocha": "~1.17.1" 12 | }, 13 | "devDependencies": { 14 | "mocha": "~1.17.1", 15 | "chai": "~1.9.0", 16 | "chai-jquery": "~1.2.1", 17 | "sinon": "http://sinonjs.org/releases/sinon-1.8.1.js", 18 | "sinon-chai": "~2.5.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/bower.travis.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "morris.js", 3 | "version": "0.5.0", 4 | "main": [ 5 | "./morris.js", 6 | "./morris.css" 7 | ], 8 | "dependencies": { 9 | "jquery": "JQUERY", 10 | "raphael": "RAPHAEL", 11 | "mocha": "~1.17.1" 12 | }, 13 | "devDependencies": { 14 | "mocha": "~1.17.1", 15 | "chai": "~1.9.0", 16 | "chai-jquery": "~1.2.1", 17 | "sinon": "http://sinonjs.org/releases/sinon-1.8.1.js", 18 | "sinon-chai": "~2.5.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/examples/_template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |

Title

13 |
14 |
15 | // Insert code here:
16 | // it'll get eval()-ed and prettyprinted.
17 | 
18 | 19 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/examples/lib/example.css: -------------------------------------------------------------------------------- 1 | body { 2 | width: 800px; 3 | margin: 0 auto; 4 | } 5 | #graph { 6 | width: 800px; 7 | height: 250px; 8 | margin: 20px auto 0 auto; 9 | } 10 | pre { 11 | height: 250px; 12 | overflow: auto; 13 | } 14 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/examples/lib/example.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | eval($('#code').text()); 3 | prettyPrint(); 4 | }); -------------------------------------------------------------------------------- /static/bower_components/morrisjs/less/morris.core.less: -------------------------------------------------------------------------------- 1 | .morris-hover { 2 | position: absolute; 3 | z-index: 1000; 4 | 5 | &.morris-default-style { 6 | border-radius: 10px; 7 | padding: 6px; 8 | color: #666; 9 | background: rgba(255, 255, 255, 0.8); 10 | border: solid 2px rgba(230, 230, 230, 0.8); 11 | 12 | font-family: sans-serif; 13 | font-size: 12px; 14 | text-align: center; 15 | 16 | .morris-hover-row-label { 17 | font-weight: bold; 18 | margin: 0.25em 0; 19 | } 20 | 21 | .morris-hover-point { 22 | white-space: nowrap; 23 | margin: 0.1em 0; 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/morris.css: -------------------------------------------------------------------------------- 1 | .morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0} 2 | .morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0} 3 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/lib/grid/y_label_format_spec.coffee: -------------------------------------------------------------------------------- 1 | describe 'Morris.Grid#yLabelFormat', -> 2 | 3 | it 'should use custom formatter for y labels', -> 4 | formatter = (label) -> 5 | flabel = parseFloat(label) / 1000 6 | "#{flabel.toFixed(1)}k" 7 | line = Morris.Line 8 | element: 'graph' 9 | data: [{x: 1, y: 1500}, {x: 2, y: 2500}] 10 | xkey: 'x' 11 | ykeys: ['y'] 12 | labels: ['dontcare'] 13 | preUnits: "$" 14 | yLabelFormat: formatter 15 | line.yLabelFormat(1500).should.equal "1.5k" 16 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/lib/pad_spec.coffee: -------------------------------------------------------------------------------- 1 | describe '#pad', -> 2 | 3 | it 'should pad numbers', -> 4 | Morris.pad2(0).should.equal("00") 5 | Morris.pad2(1).should.equal("01") 6 | Morris.pad2(2).should.equal("02") 7 | Morris.pad2(3).should.equal("03") 8 | Morris.pad2(4).should.equal("04") 9 | Morris.pad2(5).should.equal("05") 10 | Morris.pad2(6).should.equal("06") 11 | Morris.pad2(7).should.equal("07") 12 | Morris.pad2(8).should.equal("08") 13 | Morris.pad2(9).should.equal("09") 14 | Morris.pad2(10).should.equal("10") 15 | Morris.pad2(12).should.equal("12") 16 | Morris.pad2(34).should.equal("34") 17 | Morris.pad2(123).should.equal("123") -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/support/placeholder.coffee: -------------------------------------------------------------------------------- 1 | beforeEach -> 2 | placeholder = $('
') 3 | $('#test').append(placeholder) 4 | 5 | afterEach -> 6 | $('#test').empty() 7 | -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/viz/exemplary/area0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/morrisjs/spec/viz/exemplary/area0.png -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/viz/exemplary/bar0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/morrisjs/spec/viz/exemplary/bar0.png -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/viz/exemplary/line0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/morrisjs/spec/viz/exemplary/line0.png -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/viz/exemplary/stacked_bar0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/bower_components/morrisjs/spec/viz/exemplary/stacked_bar0.png -------------------------------------------------------------------------------- /static/bower_components/morrisjs/spec/viz/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # visual_specs.js creates output in output/XXX.png 4 | phantomjs visual_specs.js 5 | 6 | # clear out old diffs 7 | mkdir -p diff 8 | rm -f diff/* 9 | 10 | # generate diffs 11 | PASS=1 12 | for i in exemplary/*.png 13 | do 14 | FN=`basename $i` 15 | perceptualdiff $i output/$FN -output diff/$FN 16 | if [ $? -eq 0 ] 17 | then 18 | echo "OK: $FN" 19 | else 20 | echo "FAIL: $FN" 21 | PASS=0 22 | fi 23 | done 24 | 25 | # pass / fail 26 | if [ $PASS -eq 1 ] 27 | then 28 | echo "Success." 29 | else 30 | echo "Failed." 31 | exit 1 32 | fi 33 | -------------------------------------------------------------------------------- /static/bower_components/raphael/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "raphael", 3 | "version": "2.1.2", 4 | "main": "raphael.js", 5 | "ignore": [ 6 | "eve", 7 | "**/.*", 8 | "*.html", 9 | "*.json", 10 | "*.markdown", 11 | "*.md", 12 | "copy.js", 13 | "Gruntfile.js", 14 | "raphael.core.js", 15 | "raphael.svg.js", 16 | "raphael.vml.js", 17 | "reference.js" 18 | ], 19 | "homepage": "https://github.com/DmitryBaranovskiy/raphael", 20 | "_release": "2.1.2", 21 | "_resolution": { 22 | "type": "version", 23 | "tag": "v2.1.2", 24 | "commit": "3331359c102e23dc72a224ba65e4fdec6f20894c" 25 | }, 26 | "_source": "git://github.com/DmitryBaranovskiy/raphael.git", 27 | "_target": ">= 2.0", 28 | "_originalSource": "raphael" 29 | } -------------------------------------------------------------------------------- /static/bower_components/raphael/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "raphael", 3 | "version": "2.1.1", 4 | "main": "raphael.js", 5 | "ignore": [ 6 | "eve", 7 | "**/.*", 8 | "*.html", 9 | "*.json", 10 | "*.markdown", 11 | "*.md", 12 | "copy.js", 13 | "Gruntfile.js", 14 | "raphael.core.js", 15 | "raphael.svg.js", 16 | "raphael.vml.js", 17 | "reference.js" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /static/bower_components/raphael/dev/amdDev.js: -------------------------------------------------------------------------------- 1 | require(['../raphael'], function(Raphael){ 2 | var paper = Raphael(0, 0, 640, 720, "container"); 3 | 4 | // Work here 5 | 6 | }); -------------------------------------------------------------------------------- /static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/images/favicon.ico -------------------------------------------------------------------------------- /static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/static/images/logo.png -------------------------------------------------------------------------------- /static/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | -------------------------------------------------------------------------------- /static/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | 3 | @gray-darker: lighten(#000, 13.5%); 4 | @gray-dark: lighten(#000, 20%); 5 | @gray: lighten(#000, 33.5%); 6 | @gray-light: lighten(#000, 60%); 7 | @gray-lighter: lighten(#000, 93.5%); 8 | @gray-lightest: lighten(#000, 97.25%); 9 | @brand-primary: #428bca; 10 | @brand-success: #5cb85c; 11 | @brand-info: #5bc0de; 12 | @brand-warning: #f0ad4e; 13 | @brand-danger: #d9534f; 14 | 15 | -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/ar.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="الرجاء حذف "+t+" عناصر";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="الرجاء إضافة "+t+" عناصر";return n},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(e){var t="تستطيع إختيار "+e.maximum+" بنود فقط";return t},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/az.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/bg.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/ca.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/da.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/de.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/es.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/et.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/eu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/fa.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/fi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/fr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/gl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/he.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק ";return t===1?n+="תו אחד":n+=t+" תווים",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס ";return t===1?n+="תו אחד":n+=t+" תווים",n+=" או יותר",n},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור עד ";return e.maximum===1?t+="פריט אחד":t+=e.maximum+" פריטים",t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/hi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/hr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/hu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/id.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/is.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/it.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/ja.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" 文字を削除してください";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="少なくとも "+t+" 文字を入力してください";return n},loadingMore:function(){return"読み込み中…"},maximumSelected:function(e){var t=e.maximum+" 件しか選択できません";return t},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/ko.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/lt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%100>9&&e%100<21||e%10===0?e%10>1?n:r:t}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"ių","ius","į"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"ių","ius","į"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ų","us","ą"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/lv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/mk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/ms.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Sila hapuskan "+t+" aksara"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Sila masukkan "+t+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(e){return"Anda hanya boleh memilih "+e.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/nb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/nl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t=e.maximum==1?"kan":"kunnen",n="Er "+t+" maar "+e.maximum+" item";return e.maximum!=1&&(n+="s"),n+=" worden geselecteerd",n},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/pl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maximum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/pt-BR.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/pt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/ro.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return t!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți "+t+"sau mai multe caractere";return n},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",e.maximum!==1&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/sr-Cyrl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr-Cyrl",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Обришите "+n+" симбол";return r+=e(n,"","а","а"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Укуцајте бар још "+n+" симбол";return r+=e(n,"","а","а"),r},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(t){var n="Можете изабрати само "+t.maximum+" ставк";return n+=e(t.maximum,"у","е","и"),n},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/sr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/sv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/th.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/tr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/uk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/vi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/zh-CN.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /static/select2-4.0.2/dist/js/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.2 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /system_setup/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/system_setup/__init__.py -------------------------------------------------------------------------------- /system_setup/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /system_setup/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/system_setup/migrations/__init__.py -------------------------------------------------------------------------------- /system_setup/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /system_setup/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /templates/states_config/highstate_result.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {% load staticfiles %} 11 | 12 | 13 | 14 |
15 |
16 | 17 |
18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /utility/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/utility/__init__.py -------------------------------------------------------------------------------- /utility/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /utility/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yueyongyue/saltshaker/d32cdd0aa13098bdc77bb3abd4a92c10fa517dd1/utility/migrations/__init__.py -------------------------------------------------------------------------------- /utility/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /utility/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /utility/views.py: -------------------------------------------------------------------------------- 1 | from django.shortcuts import render 2 | 3 | # Create your views here. 4 | --------------------------------------------------------------------------------