rails_modular_admin 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +71 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/config/rails_modular_admin_manifest.js +2 -0
  6. data/app/assets/javascripts/index.js +87 -0
  7. data/app/assets/javascripts/rails_modular_admin.js +3 -0
  8. data/app/assets/javascripts/rails_modular_admin/_common/_helpers/code-helper.js +36 -0
  9. data/app/assets/javascripts/rails_modular_admin/_common/_helpers/for-helper.js +8 -0
  10. data/app/assets/javascripts/rails_modular_admin/_common/_helpers/is-helper.js +98 -0
  11. data/app/assets/javascripts/rails_modular_admin/_common/_helpers/times-helper.js +11 -0
  12. data/app/assets/javascripts/rails_modular_admin/_common/animations/animations.js +14 -0
  13. data/app/assets/javascripts/rails_modular_admin/_common/items-list/items-list.js +19 -0
  14. data/app/assets/javascripts/rails_modular_admin/_common/nprogress/nprogress.js +9 -0
  15. data/app/assets/javascripts/rails_modular_admin/_common/sameheight-items/sameheight-items.js +44 -0
  16. data/app/assets/javascripts/rails_modular_admin/app.js +1429 -0
  17. data/app/assets/javascripts/rails_modular_admin/app/_common/editor/editor-helper.js +10 -0
  18. data/app/assets/javascripts/rails_modular_admin/app/_common/editor/editor.js +34 -0
  19. data/app/assets/javascripts/rails_modular_admin/app/_common/header/nav/nav.js +14 -0
  20. data/app/assets/javascripts/rails_modular_admin/app/_common/modals/modal-media/modal-media.js +23 -0
  21. data/app/assets/javascripts/rails_modular_admin/app/_common/sidebar/customize/customize.js +155 -0
  22. data/app/assets/javascripts/rails_modular_admin/app/_common/sidebar/sidebar.js +38 -0
  23. data/app/assets/javascripts/rails_modular_admin/app/charts/charts-flot/charts-flot.js +329 -0
  24. data/app/assets/javascripts/rails_modular_admin/app/charts/charts-morris/charts-morris.js +125 -0
  25. data/app/assets/javascripts/rails_modular_admin/app/dashboard/history/history.js +145 -0
  26. data/app/assets/javascripts/rails_modular_admin/app/dashboard/items/items.js +41 -0
  27. data/app/assets/javascripts/rails_modular_admin/app/dashboard/sales-breakdown/sales-breakdown.js +37 -0
  28. data/app/assets/javascripts/rails_modular_admin/app/dashboard/sales-by-countries/sales-by-countries.js +50 -0
  29. data/app/assets/javascripts/rails_modular_admin/app/dashboard/tasks/tasks.js +13 -0
  30. data/app/assets/javascripts/rails_modular_admin/app/forms/input-groups/input-groups.js +14 -0
  31. data/app/assets/javascripts/rails_modular_admin/app/items/editor/item-editor.js +34 -0
  32. data/app/assets/javascripts/rails_modular_admin/app/items/list/items-list.js +44 -0
  33. data/app/assets/javascripts/rails_modular_admin/app/pages/error.js +18 -0
  34. data/app/assets/javascripts/rails_modular_admin/auth/login/login.js +35 -0
  35. data/app/assets/javascripts/rails_modular_admin/auth/reset/reset.js +31 -0
  36. data/app/assets/javascripts/rails_modular_admin/auth/signup/signup.js +88 -0
  37. data/app/assets/javascripts/rails_modular_admin/config.js +51 -0
  38. data/app/assets/javascripts/rails_modular_admin/main.js +16 -0
  39. data/app/assets/javascripts/rails_modular_admin/vendor.js +60485 -0
  40. data/app/assets/stylesheets/rails_modular_admin.scss +1 -0
  41. data/app/assets/stylesheets/rails_modular_admin/_common/_styles/_mixins.scss +103 -0
  42. data/app/assets/stylesheets/rails_modular_admin/_common/_styles/layout.scss +74 -0
  43. data/app/assets/stylesheets/rails_modular_admin/_common/_styles/misc.scss +115 -0
  44. data/app/assets/stylesheets/rails_modular_admin/_common/_styles/typography.scss +60 -0
  45. data/app/assets/stylesheets/rails_modular_admin/_common/alert/alert.scss +27 -0
  46. data/app/assets/stylesheets/rails_modular_admin/_common/animations/animations.scss +4 -0
  47. data/app/assets/stylesheets/rails_modular_admin/_common/button/button.scss +117 -0
  48. data/app/assets/stylesheets/rails_modular_admin/_common/card/card.scss +200 -0
  49. data/app/assets/stylesheets/rails_modular_admin/_common/chart/chart.scss +9 -0
  50. data/app/assets/stylesheets/rails_modular_admin/_common/dropdown/dropdown.scss +28 -0
  51. data/app/assets/stylesheets/rails_modular_admin/_common/flex/flex.scss +14 -0
  52. data/app/assets/stylesheets/rails_modular_admin/_common/form/form.scss +235 -0
  53. data/app/assets/stylesheets/rails_modular_admin/_common/images-container/images-container.scss +129 -0
  54. data/app/assets/stylesheets/rails_modular_admin/_common/items-list/items-list.scss +388 -0
  55. data/app/assets/stylesheets/rails_modular_admin/_common/logo/logo.scss +46 -0
  56. data/app/assets/stylesheets/rails_modular_admin/_common/modal/modal-tabs.scss +27 -0
  57. data/app/assets/stylesheets/rails_modular_admin/_common/navigation/navigation.scss +114 -0
  58. data/app/assets/stylesheets/rails_modular_admin/_common/nprogress/nprogress.scss +22 -0
  59. data/app/assets/stylesheets/rails_modular_admin/_common/pagination/pagination.scss +20 -0
  60. data/app/assets/stylesheets/rails_modular_admin/_common/sameheight-items/sameheight-items.scss +5 -0
  61. data/app/assets/stylesheets/rails_modular_admin/_common/scrollbar/scrollbar.scss +24 -0
  62. data/app/assets/stylesheets/rails_modular_admin/_common/table/table.scss +12 -0
  63. data/app/assets/stylesheets/rails_modular_admin/_main.scss +41 -0
  64. data/app/assets/stylesheets/rails_modular_admin/_themes/blue-theme.scss +1 -0
  65. data/app/assets/stylesheets/rails_modular_admin/_themes/custom-theme.scss +0 -0
  66. data/app/assets/stylesheets/rails_modular_admin/_themes/green-theme.scss +10 -0
  67. data/app/assets/stylesheets/rails_modular_admin/_themes/orange-theme.scss +12 -0
  68. data/app/assets/stylesheets/rails_modular_admin/_themes/purple-theme.scss +6 -0
  69. data/app/assets/stylesheets/rails_modular_admin/_themes/red-theme.scss +11 -0
  70. data/app/assets/stylesheets/rails_modular_admin/_themes/seagreen-theme.scss +9 -0
  71. data/app/assets/stylesheets/rails_modular_admin/_variables.scss +109 -0
  72. data/app/assets/stylesheets/rails_modular_admin/app/_common/editor/editor.scss +28 -0
  73. data/app/assets/stylesheets/rails_modular_admin/app/_common/footer/footer.scss +68 -0
  74. data/app/assets/stylesheets/rails_modular_admin/app/_common/header/buttons/buttons.scss +30 -0
  75. data/app/assets/stylesheets/rails_modular_admin/app/_common/header/collapse/collapse.scss +23 -0
  76. data/app/assets/stylesheets/rails_modular_admin/app/_common/header/header.scss +33 -0
  77. data/app/assets/stylesheets/rails_modular_admin/app/_common/header/nav/nav.scss +64 -0
  78. data/app/assets/stylesheets/rails_modular_admin/app/_common/header/nav/notifications/notifications.scss +126 -0
  79. data/app/assets/stylesheets/rails_modular_admin/app/_common/header/nav/profile/profile.scss +93 -0
  80. data/app/assets/stylesheets/rails_modular_admin/app/_common/header/search/search.scss +68 -0
  81. data/app/assets/stylesheets/rails_modular_admin/app/_common/modals/modal-media/modal-media.scss +56 -0
  82. data/app/assets/stylesheets/rails_modular_admin/app/_common/modals/modals.scss +19 -0
  83. data/app/assets/stylesheets/rails_modular_admin/app/_common/sidebar/customize/customize.scss +157 -0
  84. data/app/assets/stylesheets/rails_modular_admin/app/_common/sidebar/header/header.scss +14 -0
  85. data/app/assets/stylesheets/rails_modular_admin/app/_common/sidebar/sidebar.scss +240 -0
  86. data/app/assets/stylesheets/rails_modular_admin/app/app.scss +72 -0
  87. data/app/assets/stylesheets/rails_modular_admin/app/charts/charts-flot/charts-flot.scss +18 -0
  88. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/dashboard.scss +7 -0
  89. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/history/history.scss +6 -0
  90. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/items/items-header.scss +81 -0
  91. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/items/items-list.scss +102 -0
  92. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/sales-breakdown/sales-breakdown.scss +7 -0
  93. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/sales-by-countries/sales-by-countries.scss +14 -0
  94. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/stats/stats.scss +70 -0
  95. data/app/assets/stylesheets/rails_modular_admin/app/dashboard/tasks/tasks.scss +47 -0
  96. data/app/assets/stylesheets/rails_modular_admin/app/items/editor/item-editor.scss +3 -0
  97. data/app/assets/stylesheets/rails_modular_admin/app/items/list/items-list.scss +330 -0
  98. data/app/assets/stylesheets/rails_modular_admin/app/pages/error.scss +73 -0
  99. data/app/assets/stylesheets/rails_modular_admin/app/pages/screenful/screenful.scss +101 -0
  100. data/app/assets/stylesheets/rails_modular_admin/app/tables/responsive-tables/responsive-tables.scss +77 -0
  101. data/app/assets/stylesheets/rails_modular_admin/application.scss +26 -0
  102. data/app/assets/stylesheets/rails_modular_admin/auth/auth.scss +72 -0
  103. data/app/controllers/rails_modular_admin/application_controller.rb +5 -0
  104. data/app/helpers/rails_modular_admin/application_helper.rb +4 -0
  105. data/app/jobs/rails_modular_admin/application_job.rb +4 -0
  106. data/app/mailers/rails_modular_admin/application_mailer.rb +6 -0
  107. data/app/models/rails_modular_admin/application_record.rb +5 -0
  108. data/app/views/layouts/rails_modular_admin/application.html.erb +16 -0
  109. data/config/initializers/assets.rb +1 -0
  110. data/config/routes.rb +2 -0
  111. data/lib/generators/rails_modular_admin/USAGE +8 -0
  112. data/lib/generators/rails_modular_admin/install_generator.rb +12 -0
  113. data/lib/generators/rails_modular_admin/templates/custom-theme.scss +14 -0
  114. data/lib/rails_modular_admin.rb +11 -0
  115. data/lib/rails_modular_admin/engine.rb +5 -0
  116. data/lib/rails_modular_admin/version.rb +3 -0
  117. data/lib/tasks/rails_modular_admin_tasks.rake +47 -0
  118. metadata +205 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b87a4389dafaf3e36acebc70d287b90dd3da6a16
4
+ data.tar.gz: 161253ecd0b57d646cbd0b2332ddb89c0c824eee
5
+ SHA512:
6
+ metadata.gz: 7c4e18c9d696c3bb20214989a84ff250f4c1c0d95b56a4bce883caec2d334e12ec8d0659b8d723f96f5b50d0d76a885a027e8e12e80c215ef0c84e0c05032143
7
+ data.tar.gz: a07bc23eb1de6afea38b7a49a0206819b927ed95c527038ac655a498d97e974b63fbf27a71a3388b4688bb52e60f4a80d5220d2d298363bafc0b0f4d810c14e0
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2018 Will Payne
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # RailsModularAdmin
2
+ This plugin is designed to quickly generate views for Rails applications in need of dashboard functionality. This includes admin panels and SaaS applications. I found that over the course of my projects, I needed Dashboard pages very often, so by creating this gem, I'm at least saving my self a bunch of time.
3
+
4
+ ## Usage
5
+ Easiest way is to run the install task:
6
+ ```bash
7
+ $ rails g rails_modular_admin:install
8
+ ```
9
+
10
+
11
+ ## Installation
12
+ Add this line to your application's Gemfile:
13
+ ```ruby
14
+ gem 'rails_modular_admin'
15
+ ```
16
+
17
+ And then execute:
18
+ ```bash
19
+ $ bundle
20
+ ```
21
+
22
+ You will additionally need to install the dependencies, by adding these to your package.json:
23
+ ```
24
+ "animate.css": "^3.5.2",
25
+ "bootstrap": "^4.0.0",
26
+ "dropzone": "^5.3.0",
27
+ "jquery": "^3.0.0",
28
+ "jquery-flot": "^0.8.3",
29
+ "jquery-sparkline": "^2.4.0",
30
+ "jquery-touchswipe": "^1.6.18",
31
+ "jquery-validation": "^1.17.0",
32
+ "jquery.browser": "^0.1.0",
33
+ "jquery.flot.tooltip": "^0.9.0",
34
+ "jqvmap": "^1.5.1",
35
+ "metismenu": "^2.7.2",
36
+ "morris.js": "^0.5.0",
37
+ "nprogress": "^0.2.0",
38
+ "opencollective": "^1.0.3",
39
+ "popper.js": "^1.12.9",
40
+ "quill": "^1.3.5",
41
+ "raphael": "^2.2.7",
42
+ "responsive-toolkit": "^2.6.3",
43
+ "sortablejs": "^1.7.0",
44
+ "tether": "^1.4.3",
45
+ "tinycolor2": "^1.4.1"
46
+ ```
47
+ Then, run:
48
+ ```bash
49
+ yarn install
50
+ ```
51
+
52
+ Now install through the included generator:
53
+ ```bash
54
+ rails g rails_modular_admin:install
55
+ ```
56
+
57
+ The install generator copies over the custom theme.scss file, which you can use to include your own color scheme. Finally, add the following line to your application.scss:
58
+ ```scss
59
+ @import "rails_modular_admin";
60
+ ```
61
+
62
+ ```javascript
63
+ //= require rails_modular_admin
64
+ ```
65
+
66
+ ## Contributing
67
+ Write a pull request and I'll get to it as soon as I can.
68
+
69
+ ## License
70
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
71
+ # RailsModularAdmin
data/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'RailsModularAdmin'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+ APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
18
+ load 'rails/tasks/engine.rake'
19
+
20
+ load 'rails/tasks/statistics.rake'
21
+
22
+ load 'lib/tasks/rails_modular_admin_tasks.rake'
23
+
24
+ require 'bundler/gem_tasks'
25
+
26
+ require 'rake/testtask'
27
+
28
+ Rake::TestTask.new(:test) do |t|
29
+ t.libs << 'test'
30
+ t.pattern = 'test/**/*_test.rb'
31
+ t.verbose = false
32
+ end
33
+
34
+ task default: :test
@@ -0,0 +1,2 @@
1
+ //= link_directory ../javascripts/rails_modular_admin .js
2
+ //= link_directory ../stylesheets/rails_modular_admin .css
@@ -0,0 +1,87 @@
1
+ var path = require('path');
2
+
3
+ var rootDir = path.resolve("../"); // Root dir
4
+ var srcDir = path.resolve("../src"); // Source files
5
+ var destDir = path.resolve("../dist"); // Build destination
6
+ var npmDir = path.resolve("../node_modules"); // Npm dir
7
+
8
+ var config = {
9
+ rootDir: rootDir,
10
+ srcDir: srcDir,
11
+ destDir: destDir,
12
+ npmDir: npmDir,
13
+ port: 4000,
14
+ paths: {}
15
+ };
16
+
17
+ // Vendor libs paths
18
+ config.paths.vendor = {
19
+ scripts: [
20
+ npmDir + '/jquery/dist/jquery.js',
21
+ npmDir + '/jquery-flot/jquery.flot.js',
22
+ npmDir + '/jquery-flot/jquery.flot.resize.js',
23
+ npmDir + '/jquery-flot/jquery.flot.pie.js',
24
+ npmDir + '/jquery-flot/jquery.flot.time.js',
25
+ npmDir + '/jquery.flot.tooltip/js/jquery.flot.tooltip.js',
26
+ npmDir + '/jquery-validation/dist/jquery.validate.js',
27
+ npmDir + '/jquery-sparkline/jquery.sparkline.js',
28
+ npmDir + '/jqvmap/dist/jquery.vmap.js',
29
+ npmDir + '/jqvmap/dist/maps/jquery.vmap.world.js',
30
+ npmDir + '/metismenu/dist/metisMenu.js',
31
+ npmDir + '/nprogress/nprogress.js',
32
+ npmDir + '/quill/dist/quill.js',
33
+ npmDir + '/responsive-toolkit/dist/bootstrap-toolkit.js',
34
+ npmDir + '/sortablejs/Sortable.js',
35
+ npmDir + '/tether/dist/js/tether.js',
36
+ npmDir + '/tinycolor2/tinycolor.js',
37
+ npmDir + '/dropzone/dist/dropzone.js',
38
+ npmDir + '/jquery-touchswipe/jquery.touchSwipe.js',
39
+ npmDir + '/jquery.browser/dist/jquery.browser.js',
40
+ npmDir + '/popper.js/dist/umd/popper.js',
41
+ npmDir + '/bootstrap/dist/js/bootstrap.js',
42
+ npmDir + '/raphael/raphael.js',
43
+ npmDir + '/morris.js/morris.js',
44
+ ],
45
+ styles: [
46
+ npmDir + '/animate.css/animate.css',
47
+ npmDir + '/font-awesome/css/font-awesome.css',
48
+ npmDir + '/jqvmap/dist/jqvmap.css',
49
+ npmDir + '/metismenu/dist/metisMenu.css',
50
+ npmDir + '/nprogress/nprogress.css',
51
+ npmDir + '/dropzone/dist/dropzone.css',
52
+ npmDir + '/quill/dist/quill.core.css',
53
+ npmDir + '/quill/dist/quill.snow.css',
54
+ npmDir + '/morris.js/morris.css',
55
+ npmDir + '/bootstrap/dist/css/bootstrap.css',
56
+ ],
57
+ fonts: [
58
+ npmDir + '/font-awesome/fonts/*'
59
+ ],
60
+ assets: [],
61
+ };
62
+
63
+ // Application Paths
64
+ config.paths.app = {
65
+ scripts: [
66
+ srcDir + "/config.js",
67
+ srcDir + "/**/!(_context|config|main|*-helper)*.js",
68
+ srcDir + "/main.js",
69
+ "!" + srcDir + "/_vendor/**"
70
+ ],
71
+ styles: [
72
+ srcDir + "/_main.scss",
73
+ srcDir + "/**/!(_main|_variables|*-theme)*.scss",
74
+ ],
75
+ themes: srcDir + "/**/*-theme.scss",
76
+ templates: srcDir + "/**/*.hbs",
77
+ pages: srcDir + "/**/*-page.hbs",
78
+ layouts: srcDir + "/**/*-layout.hbs",
79
+ helpers: [
80
+ srcDir + "/**/*-helper.js",
81
+ rootDir + '/node_modules/handlebars-layouts/index.js',
82
+ ],
83
+ assets: srcDir + "/_assets/**/*"
84
+ };
85
+
86
+
87
+ module.exports = config;
@@ -0,0 +1,3 @@
1
+ //= require bootstrap
2
+ //= require rails_modular_admin/vendor
3
+ //= require rails_modular_admin/app
@@ -0,0 +1,36 @@
1
+ module.exports.register = function (handlebars) {
2
+ handlebars.registerHelper('code', function(options) {
3
+
4
+ var className = options.hash.lang || "";
5
+
6
+ // Input html
7
+ var input = options.fn(this);
8
+
9
+ // Escale html to string
10
+ input = handlebars.Utils.escapeExpression(input);
11
+
12
+ // Break by lines
13
+ var lines = input.split("\n");
14
+
15
+ // Get number of tabs before first line
16
+ var numTabs = getNumFrontTabs(lines[0]);
17
+
18
+ // Remove tabs before
19
+ lines = lines.map(function(line) {
20
+ return line.substring(numTabs);
21
+ });
22
+
23
+ // Rejoin the lines
24
+ return "<pre><code class='" + className + "'>" + lines.join("\n") + "</code></pre>";
25
+ });
26
+ };
27
+
28
+
29
+ function getNumFrontTabs(line) {
30
+ var count = 0;
31
+ var index = 0;
32
+ while (line.charAt(index++) === "\t") {
33
+ count++;
34
+ }
35
+ return count;
36
+ }
@@ -0,0 +1,8 @@
1
+ module.exports.register = function (handlebars) {
2
+ handlebars.registerHelper('for', function(from, to, incr, block) {
3
+ var accum = '';
4
+ for(var i = from; i < to; i += incr)
5
+ accum += block.fn(i);
6
+ return accum;
7
+ });
8
+ };
@@ -0,0 +1,98 @@
1
+ /*
2
+ Custom handlebars helpers which allows to make
3
+
4
+ {{#is a '===' b}}}
5
+
6
+ {{/is}}
7
+ */
8
+
9
+ module.exports.register = function (handlebars) {
10
+
11
+ var isArray = function(value) {
12
+ return Object.prototype.toString.call(value) === '[object Array]';
13
+ }
14
+
15
+ var ExpressionRegistry = function() {
16
+ this.expressions = [];
17
+ };
18
+
19
+ ExpressionRegistry.prototype.add = function (operator, method) {
20
+ this.expressions[operator] = method;
21
+ };
22
+
23
+ ExpressionRegistry.prototype.call = function (operator, left, right) {
24
+ if ( ! this.expressions.hasOwnProperty(operator)) {
25
+ throw new Error('Unknown operator "'+operator+'"');
26
+ }
27
+
28
+ return this.expressions[operator](left, right);
29
+ };
30
+
31
+ var eR = new ExpressionRegistry;
32
+ eR.add('not', function(left, right) {
33
+ return left != right;
34
+ });
35
+ eR.add('>', function(left, right) {
36
+ return left > right;
37
+ });
38
+ eR.add('<', function(left, right) {
39
+ return left < right;
40
+ });
41
+ eR.add('>=', function(left, right) {
42
+ return left >= right;
43
+ });
44
+ eR.add('<=', function(left, right) {
45
+ return left <= right;
46
+ });
47
+
48
+ eR.add('==', function(left, right) {
49
+ return left == right;
50
+ });
51
+
52
+ eR.add('===', function(left, right) {
53
+ return left === right;
54
+ });
55
+ eR.add('!==', function(left, right) {
56
+ return left !== right;
57
+ });
58
+ eR.add('in', function(left, right) {
59
+ if ( ! isArray(right)) {
60
+ right = right.split(',');
61
+ }
62
+ return right.indexOf(left) !== -1;
63
+ });
64
+
65
+ var isHelper = function() {
66
+ var args = arguments
67
+ , left = args[0]
68
+ , operator = args[1]
69
+ , right = args[2]
70
+ , options = args[3]
71
+ ;
72
+
73
+
74
+ // console.log(args);
75
+
76
+ if (args.length == 2) {
77
+ options = args[1];
78
+ if (left) return options.fn(this);
79
+ return options.inverse(this);
80
+ }
81
+
82
+ if (args.length == 3) {
83
+ right = args[1];
84
+ options = args[2];
85
+ if (left == right) return options.fn(this);
86
+ return options.inverse(this);
87
+ }
88
+
89
+ if (eR.call(operator, left, right)) {
90
+ return options.fn(this);
91
+ }
92
+ return options.inverse(this);
93
+ };
94
+
95
+ handlebars.registerHelper('is', isHelper);
96
+
97
+ return eR;
98
+ };
@@ -0,0 +1,11 @@
1
+ module.exports.register = function (handlebars) {
2
+ handlebars.registerHelper('times', function(n, block) {
3
+ var accum = '';
4
+
5
+ for(var i = 0; i < n; ++i) {
6
+ accum += block.fn(i);
7
+ }
8
+
9
+ return accum;
10
+ });
11
+ };
@@ -0,0 +1,14 @@
1
+ /***********************************************
2
+ * Animation Settings
3
+ ***********************************************/
4
+ function animate(options) {
5
+ var animationName = "animated " + options.name;
6
+ var animationEnd = "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend";
7
+ $(options.selector)
8
+ .addClass(animationName)
9
+ .one(animationEnd,
10
+ function(){
11
+ $(this).removeClass(animationName);
12
+ }
13
+ );
14
+ }
@@ -0,0 +1,19 @@
1
+ $(function() {
2
+ var $itemActions = $(".item-actions-dropdown");
3
+
4
+ $(document).on('click',function(e) {
5
+ if (!$(e.target).closest('.item-actions-dropdown').length) {
6
+ $itemActions.removeClass('active');
7
+ }
8
+ });
9
+
10
+ $('.item-actions-toggle-btn').on('click',function(e){
11
+ e.preventDefault();
12
+
13
+ var $thisActionList = $(this).closest('.item-actions-dropdown');
14
+
15
+ $itemActions.not($thisActionList).removeClass('active');
16
+
17
+ $thisActionList.toggleClass('active');
18
+ });
19
+ });
@@ -0,0 +1,9 @@
1
+ /***********************************************
2
+ * NProgress Settings
3
+ ***********************************************/
4
+ var npSettings = {
5
+ easing: 'ease',
6
+ speed: 500
7
+ }
8
+
9
+ NProgress.configure(npSettings);
@@ -0,0 +1,44 @@
1
+ $(function() {
2
+ setSameHeights();
3
+
4
+ var resizeTimer;
5
+
6
+ $(window).resize(function() {
7
+ clearTimeout(resizeTimer);
8
+ resizeTimer = setTimeout(setSameHeights, 150);
9
+ });
10
+ });
11
+
12
+
13
+ function setSameHeights($container) {
14
+
15
+ $container = $container || $('.sameheight-container');
16
+
17
+ var viewport = ResponsiveBootstrapToolkit.current();
18
+
19
+ $container.each(function() {
20
+
21
+ var $items = $(this).find(".sameheight-item");
22
+
23
+ // Get max height of items in container
24
+ var maxHeight = 0;
25
+
26
+ $items.each(function() {
27
+ $(this).css({height: 'auto'});
28
+ maxHeight = Math.max(maxHeight, $(this).innerHeight());
29
+ });
30
+
31
+
32
+ // Set heights of items
33
+ $items.each(function() {
34
+ // Ignored viewports for item
35
+ var excludedStr = $(this).data('exclude') || '';
36
+ var excluded = excludedStr.split(',');
37
+
38
+ // Set height of element if it's not excluded on
39
+ if (excluded.indexOf(viewport) === -1) {
40
+ $(this).innerHeight(maxHeight);
41
+ }
42
+ });
43
+ });
44
+ }