kadmin 0.3.1 → 0.3.2

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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +44 -44
  3. data/Rakefile +146 -146
  4. data/app/assets/javascripts/modular/app.js +1388 -1388
  5. data/app/assets/javascripts/modular/application.js +3 -3
  6. data/app/assets/javascripts/modular/vendor.js +57671 -57671
  7. data/app/assets/stylesheets/kadmin/typeahead-select.scss +2 -0
  8. data/app/assets/stylesheets/modular/app-blue.css +2795 -2795
  9. data/app/assets/stylesheets/modular/app-custom.css +2795 -2795
  10. data/app/assets/stylesheets/modular/app-green.css +2795 -2795
  11. data/app/assets/stylesheets/modular/app-orange.css +2795 -2795
  12. data/app/assets/stylesheets/modular/app-purple.css +2795 -2795
  13. data/app/assets/stylesheets/modular/app-red.css +2795 -2795
  14. data/app/assets/stylesheets/modular/app-seagreen.css +2795 -2795
  15. data/app/assets/stylesheets/modular/app.css +2795 -2795
  16. data/app/assets/stylesheets/modular/custom.css +51 -19
  17. data/app/assets/stylesheets/modular/vendor.css +12999 -12999
  18. data/app/controllers/kadmin/application_controller.rb +64 -64
  19. data/app/controllers/kadmin/auth_controller.rb +98 -98
  20. data/app/controllers/kadmin/concerns/authorized_user.rb +67 -67
  21. data/app/controllers/kadmin/dash_controller.rb +19 -19
  22. data/app/decorators/kadmin/finder_decorator.rb +50 -50
  23. data/app/decorators/kadmin/pager_decorator.rb +33 -33
  24. data/app/helpers/kadmin/alert_helper.rb +59 -59
  25. data/app/helpers/kadmin/application_helper.rb +4 -4
  26. data/app/helpers/kadmin/bootstrap_helper.rb +23 -23
  27. data/app/helpers/kadmin/form_builder.rb +9 -9
  28. data/app/helpers/kadmin/forms/inverted_check_box.rb +10 -10
  29. data/app/helpers/kadmin/navigation_helper.rb +28 -28
  30. data/app/helpers/kadmin/pagination_helper.rb +95 -95
  31. data/app/views/kadmin/auth/login.html.erb +4 -4
  32. data/app/views/kadmin/components/_finder.html.erb +14 -18
  33. data/app/views/kadmin/components/finder/_empty.html.erb +3 -3
  34. data/app/views/kadmin/components/finder/_form.erb +10 -10
  35. data/app/views/kadmin/components/finder/_header.html.erb +14 -11
  36. data/app/views/kadmin/dash/index.html.erb +5 -5
  37. data/app/views/kadmin/error.html.erb +5 -5
  38. data/app/views/kadmin/helpers/_alerts.html.erb +4 -4
  39. data/app/views/kadmin/helpers/_form_errors.html.erb +10 -10
  40. data/app/views/layouts/modular/application.html.erb +134 -132
  41. data/config/initializers/action_view.rb +2 -2
  42. data/config/initializers/assets.rb +5 -5
  43. data/config/locales/de.yml +25 -25
  44. data/config/locales/en.yml +24 -24
  45. data/config/routes.rb +12 -12
  46. data/lib/kadmin.rb +22 -22
  47. data/lib/kadmin/auth.rb +31 -31
  48. data/lib/kadmin/auth/configuration.rb +66 -66
  49. data/lib/kadmin/auth/unauthorized_error.rb +14 -14
  50. data/lib/kadmin/auth/user.rb +15 -15
  51. data/lib/kadmin/auth/user_store.rb +21 -21
  52. data/lib/kadmin/configuration.rb +18 -18
  53. data/lib/kadmin/engine.rb +15 -15
  54. data/lib/kadmin/error.rb +7 -7
  55. data/lib/kadmin/errors/authorization.rb +15 -15
  56. data/lib/kadmin/finder.rb +66 -66
  57. data/lib/kadmin/form.rb +179 -179
  58. data/lib/kadmin/pager.rb +93 -93
  59. data/lib/kadmin/version.rb +3 -3
  60. data/test/dummy/README.rdoc +28 -28
  61. data/test/dummy/Rakefile +6 -6
  62. data/test/dummy/app/assets/javascripts/application.js +13 -13
  63. data/test/dummy/app/assets/stylesheets/application.css +15 -15
  64. data/test/dummy/app/controllers/admin/application_controller.rb +11 -11
  65. data/test/dummy/app/controllers/admin/people_controller.rb +89 -89
  66. data/test/dummy/app/controllers/admin_controller.rb +4 -4
  67. data/test/dummy/app/controllers/application_controller.rb +5 -5
  68. data/test/dummy/app/controllers/authorized_controller.rb +8 -8
  69. data/test/dummy/app/helpers/application_helper.rb +2 -2
  70. data/test/dummy/app/models/group.rb +8 -8
  71. data/test/dummy/app/models/group_person.rb +6 -6
  72. data/test/dummy/app/models/person.rb +20 -20
  73. data/test/dummy/app/views/admin/index.html.erb +1 -1
  74. data/test/dummy/app/views/admin/people/_form.html.erb +34 -34
  75. data/test/dummy/app/views/admin/people/_table.html.erb +33 -33
  76. data/test/dummy/app/views/admin/people/edit.html.erb +4 -4
  77. data/test/dummy/app/views/admin/people/index.html.erb +3 -3
  78. data/test/dummy/app/views/admin/people/new.html.erb +5 -5
  79. data/test/dummy/app/views/admin/people/show.html.erb +3 -3
  80. data/test/dummy/app/views/authorized/index.html.erb +1 -1
  81. data/test/dummy/app/views/layouts/application.html.erb +14 -14
  82. data/test/dummy/bin/bundle +3 -3
  83. data/test/dummy/bin/rails +4 -4
  84. data/test/dummy/bin/rake +4 -4
  85. data/test/dummy/bin/setup +29 -29
  86. data/test/dummy/config.ru +4 -4
  87. data/test/dummy/config/application.rb +39 -39
  88. data/test/dummy/config/boot.rb +5 -5
  89. data/test/dummy/config/database.yml +22 -22
  90. data/test/dummy/config/environment.rb +5 -5
  91. data/test/dummy/config/environments/development.rb +41 -41
  92. data/test/dummy/config/environments/production.rb +79 -79
  93. data/test/dummy/config/environments/test.rb +42 -42
  94. data/test/dummy/config/initializers/assets.rb +10 -10
  95. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -7
  96. data/test/dummy/config/initializers/cookies_serializer.rb +3 -3
  97. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -4
  98. data/test/dummy/config/initializers/inflections.rb +16 -16
  99. data/test/dummy/config/initializers/kadmin.rb +24 -24
  100. data/test/dummy/config/initializers/mime_types.rb +4 -4
  101. data/test/dummy/config/initializers/session_store.rb +3 -3
  102. data/test/dummy/config/initializers/wrap_parameters.rb +14 -14
  103. data/test/dummy/config/locales/en.yml +17 -17
  104. data/test/dummy/config/routes.rb +13 -13
  105. data/test/dummy/config/secrets.yml +22 -22
  106. data/test/dummy/db/migrate/20161006114509_create_people.rb +11 -11
  107. data/test/dummy/db/migrate/20161006134459_create_groups.rb +11 -11
  108. data/test/dummy/db/migrate/20161006134746_create_group_people.rb +11 -11
  109. data/test/dummy/db/schema.rb +43 -43
  110. data/test/dummy/lib/forms/group_form.rb +16 -16
  111. data/test/dummy/lib/forms/person_form.rb +19 -19
  112. data/test/dummy/public/404.html +67 -67
  113. data/test/dummy/public/422.html +67 -67
  114. data/test/dummy/public/500.html +66 -66
  115. data/test/dummy/test/fixtures/children.yml +11 -11
  116. data/test/dummy/test/fixtures/group_people.yml +11 -11
  117. data/test/dummy/test/fixtures/groups.yml +11 -11
  118. data/test/dummy/test/fixtures/people.yml +11 -11
  119. data/test/dummy/test/models/group_person_test.rb +7 -7
  120. data/test/dummy/test/models/group_test.rb +7 -7
  121. data/test/kadmin/form_test.rb +6 -6
  122. data/test/test_helper.rb +32 -32
  123. metadata +54 -53
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21cce308b3ecc8fd9d110c2f8a13ca3968d4b38a
4
- data.tar.gz: 1c8b9eca417dfd0a5d7e167f18e5e3979d6c61ab
3
+ metadata.gz: e3dc6ef5445adb7aa1413f0d61e4b5377a0c9af9
4
+ data.tar.gz: 8a55b3f0c83604e6c694bee962cb4c959dd7f3cb
5
5
  SHA512:
6
- metadata.gz: 6effd0e1fee3447a302a8bf1ef8997c06806c560a2ffcd8e2d8dd63238e1c4afa8d4619c1878f7827620d28af6d0d3c4f484c5d4f0f601f02d1e881994760099
7
- data.tar.gz: 06c39580c287ff1252a213c3ce526b901746a0d23700e215018e63fdba51bdb16f9e3006e3612c62ba2d28ed946687566a20ef69449e685bdf754c679b2866d3
6
+ metadata.gz: 75c6f7eda17fa179a3869eef24deb1b697328e4896bb6a506f55259e2b7b9d661f58085742a64cf827853999a35c986c125855cb0b52373b3ddc8377ec3b17c0
7
+ data.tar.gz: 3d07658282022fca03273ba1a5ba2aeafcc8000bb48dc6202267566a53977fcac5750285fd88fcabb8ecb561cf332d0a95873814e0639ab944a38bab27bcd776
data/README.md CHANGED
@@ -1,44 +1,44 @@
1
- # Kadmin
2
-
3
- [![GitHub release](https://img.shields.io/badge/release-0.3.1-blue.png)](https://github.com/barcoo/kadmin/releases/tag/0.3.1)
4
-
5
- Collection of utility, configuration, etc., for admin areas in different projects.
6
- Theme based on [Modular Admin](https://github.com/modularcode/modular-admin-html)
7
-
8
- ## Installation
9
-
10
- Add to your gemfile:
11
-
12
- ```ruby
13
- gem 'kadmin', git: 'git@github.com:barcoo/kadmin.git'
14
- ```
15
-
16
- ## Web
17
-
18
- If you wish to use the web front-end, make sure to ```require 'kadmin'```
19
-
20
- See the test application ```test/dummy``` for more info.
21
-
22
- ## Development
23
-
24
- Clone, bundle install
25
-
26
- Make sure test coverage stays > 90%, and make sure ```master``` stays green.
27
-
28
- ## Release
29
-
30
- ___Note___: eventually use one of the popular git release scripts to tag, create tag notes, etc., based on git changelog.
31
-
32
- When you want to create a new release, use the rake task ```cim:release``` (in the main Rakefile)
33
-
34
- ```shell
35
- bundle exec rake cim:release
36
- ```
37
-
38
- ## Roadmap
39
-
40
- TODOs:
41
-
42
- * [ ] Finish form objects (destruction and creation) + tests + examples
43
- * [ ] Make a generic typehead-select form object
44
- * [x] Wrap Finder objects + view helpers
1
+ # Kadmin
2
+
3
+ [![GitHub release](https://img.shields.io/badge/release-0.3.2-blue.png)](https://github.com/barcoo/kadmin/releases/tag/0.3.2)
4
+
5
+ Collection of utility, configuration, etc., for admin areas in different projects.
6
+ Theme based on [Modular Admin](https://github.com/modularcode/modular-admin-html)
7
+
8
+ ## Installation
9
+
10
+ Add to your gemfile:
11
+
12
+ ```ruby
13
+ gem 'kadmin', git: 'git@github.com:barcoo/kadmin.git'
14
+ ```
15
+
16
+ ## Web
17
+
18
+ If you wish to use the web front-end, make sure to ```require 'kadmin'```
19
+
20
+ See the test application ```test/dummy``` for more info.
21
+
22
+ ## Development
23
+
24
+ Clone, bundle install
25
+
26
+ Make sure test coverage stays > 90%, and make sure ```master``` stays green.
27
+
28
+ ## Release
29
+
30
+ ___Note___: eventually use one of the popular git release scripts to tag, create tag notes, etc., based on git changelog.
31
+
32
+ When you want to create a new release, use the rake task ```cim:release``` (in the main Rakefile)
33
+
34
+ ```shell
35
+ bundle exec rake cim:release
36
+ ```
37
+
38
+ ## Roadmap
39
+
40
+ TODOs:
41
+
42
+ * [ ] Finish form objects (destruction and creation) + tests + examples
43
+ * [ ] Make a generic typehead-select form object
44
+ * [x] Wrap Finder objects + view helpers
data/Rakefile CHANGED
@@ -1,146 +1,146 @@
1
- require 'English'
2
-
3
- begin
4
- require 'bundler/setup'
5
- rescue LoadError
6
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
- end
8
-
9
- APP_RAKEFILE = File.expand_path('../test/dummy/Rakefile', __FILE__)
10
- load 'rails/tasks/engine.rake'
11
- load 'rails/tasks/statistics.rake'
12
-
13
- Bundler::GemHelper.install_tasks
14
-
15
- require 'rake/testtask'
16
-
17
- Rake::TestTask.new(:test) do |t|
18
- t.libs << 'lib'
19
- t.libs << 'test'
20
- t.pattern = 'test/**/*_test.rb'
21
- t.verbose = false
22
- end
23
-
24
- task default: :test
25
-
26
- require 'yard'
27
-
28
- YARD::Rake::YardocTask.new do |t|
29
- t.files = ['lib/**/*.rb', 'app/**/*.rb', 'config/**/*.rb']
30
- t.options = ['--output-dir=./docs']
31
- end
32
-
33
- require 'kadmin/version'
34
-
35
- namespace :cim do
36
- desc 'Tags, updates README, and CHANGELOG and pushes to Github. Requires ruby-git'
37
- task :release do
38
- tasks = ['cim:assert_clean_repo', 'cim:git_fetch', 'cim:set_new_version', 'cim:update_readme', 'cim:update_changelog', 'cim:commit_changes', 'cim:tag']
39
- begin
40
- tasks.each { |task| Rake::Task[task].invoke }
41
- `git push && git push origin '#{Kadmin::VERSION}'`
42
- rescue => error
43
- puts ">>> ERROR: #{error}; might want to reset your repository"
44
- end
45
- end
46
-
47
- desc 'Fails if the current repository is not clean'
48
- task :assert_clean_repo do
49
- status = `git status -s`.chomp.strip
50
- if status.strip.empty?
51
- status = `git log origin/master..HEAD`.chomp.strip # check if we have unpushed commits
52
- if status.strip.empty?
53
- puts '>>> Repository is clean!'
54
- else
55
- puts '>>> Please push your committed changes before releasing!'
56
- exit(-1)
57
- end
58
- else
59
- puts '>>> Please stash or commit your changes before releasing!'
60
- exit(-1)
61
- end
62
- end
63
-
64
- desc 'Fetches latest tags/commits'
65
- task :git_fetch do
66
- puts '>>> Fetching latest git refs'
67
- `git fetch --tags`
68
- end
69
-
70
- desc 'Requests the new version number'
71
- task :set_new_version do
72
- STDOUT.print(">>> New version number (current: #{Kadmin::VERSION}; leave blank if already updated): ")
73
- input = STDIN.gets.strip.tr("'", "\'")
74
-
75
- current = if input.empty?
76
- Kadmin::VERSION
77
- else
78
- unless input =~ /[0-9]+\.[0-9]+\.[0-9]+/
79
- puts '>>> Please use semantic versioning!'
80
- exit(-1)
81
- end
82
-
83
- input
84
- end
85
-
86
- latest = `git describe --abbrev=0`.chomp.strip
87
- unless Gem::Version.new(current) > Gem::Version.new(latest)
88
- puts ">>> Latest tagged version is #{latest}; make sure gem version (#{current}) is greater!"
89
- exit(-1)
90
- end
91
-
92
- if !input.empty?
93
- `sed -i -u "s@VERSION = '#{Kadmin::VERSION}'@VERSION = '#{input}'@" #{File.expand_path('../lib/kadmin/version.rb', __FILE__)}`
94
- $VERBOSE = nil
95
- Kadmin.const_set('VERSION', input)
96
- $VERBOSE = false
97
-
98
- `bundle check` # force updating version
99
- end
100
- end
101
-
102
- desc 'Updates README with latest version'
103
- task :update_readme do
104
- puts '>>> Updating README.md'
105
- replace = %([![GitHub release](https://img.shields.io/badge/release-#{Kadmin::VERSION}-blue.png)](https://github.com/barcoo/kadmin/releases/tag/#{Kadmin::VERSION}))
106
-
107
- `sed -i -u 's@^\\[\\!\\[GitHub release\\].*$@#{replace}@' README.md`
108
- end
109
-
110
- desc 'Updates CHANGELOG with commit log from last tag to this one'
111
- task :update_changelog do
112
- puts '>>> Updating CHANGELOG.md'
113
- latest = `git describe --abbrev=0`.chomp.strip
114
- range = $CHILD_STATUS.success? && !latest.empty? ? "'#{latest}'..HEAD" : ''
115
-
116
- log = `git log --pretty=format:'- [%h](https://github.com/barcoo/kadmin/commit/%h) *%ad* __%s__ (%an)' --date=short #{range}`.chomp
117
-
118
- changelog = File.open('.CHANGELOG.md', 'w')
119
- changelog.write("# Changelog\n\n###{Kadmin::VERSION}\n\n#{log}\n\n")
120
- File.open('CHANGELOG.md', 'r') do |file|
121
- file.readline # skip first two lines
122
- file.readline
123
-
124
- while buffer = file.read(2048) # rubocop: disable Lint/AssignmentInCondition
125
- changelog.write(buffer)
126
- end
127
- end
128
-
129
- changelog.close
130
- `mv '.CHANGELOG.md' 'CHANGELOG.md'`
131
- end
132
-
133
- desc 'Commits the README/CHANGELOG changes'
134
- task :commit_changes do
135
- puts '>>> Committing updates to README/CHANGELOG'
136
- `git commit -am'Updated README.md and CHANGELOG.md on new release'`
137
- end
138
-
139
- desc 'Creates and pushes the tag to git'
140
- task :tag do
141
- puts '>>> Tagging'
142
- STDOUT.print('>>> Please enter a tag message: ')
143
- input = STDIN.gets.strip.tr("'", "\'")
144
- `git tag -a '#{Kadmin::VERSION}' -m '#{input}'`
145
- end
146
- end
1
+ require 'English'
2
+
3
+ begin
4
+ require 'bundler/setup'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
9
+ APP_RAKEFILE = File.expand_path('../test/dummy/Rakefile', __FILE__)
10
+ load 'rails/tasks/engine.rake'
11
+ load 'rails/tasks/statistics.rake'
12
+
13
+ Bundler::GemHelper.install_tasks
14
+
15
+ require 'rake/testtask'
16
+
17
+ Rake::TestTask.new(:test) do |t|
18
+ t.libs << 'lib'
19
+ t.libs << 'test'
20
+ t.pattern = 'test/**/*_test.rb'
21
+ t.verbose = false
22
+ end
23
+
24
+ task default: :test
25
+
26
+ require 'yard'
27
+
28
+ YARD::Rake::YardocTask.new do |t|
29
+ t.files = ['lib/**/*.rb', 'app/**/*.rb', 'config/**/*.rb']
30
+ t.options = ['--output-dir=./docs']
31
+ end
32
+
33
+ require 'kadmin/version'
34
+
35
+ namespace :cim do
36
+ desc 'Tags, updates README, and CHANGELOG and pushes to Github. Requires ruby-git'
37
+ task :release do
38
+ tasks = ['cim:assert_clean_repo', 'cim:git_fetch', 'cim:set_new_version', 'cim:update_readme', 'cim:update_changelog', 'cim:commit_changes', 'cim:tag']
39
+ begin
40
+ tasks.each { |task| Rake::Task[task].invoke }
41
+ `git push && git push origin '#{Kadmin::VERSION}'`
42
+ rescue => error
43
+ puts ">>> ERROR: #{error}; might want to reset your repository"
44
+ end
45
+ end
46
+
47
+ desc 'Fails if the current repository is not clean'
48
+ task :assert_clean_repo do
49
+ status = `git status -s`.chomp.strip
50
+ if status.strip.empty?
51
+ status = `git log origin/master..HEAD`.chomp.strip # check if we have unpushed commits
52
+ if status.strip.empty?
53
+ puts '>>> Repository is clean!'
54
+ else
55
+ puts '>>> Please push your committed changes before releasing!'
56
+ exit(-1)
57
+ end
58
+ else
59
+ puts '>>> Please stash or commit your changes before releasing!'
60
+ exit(-1)
61
+ end
62
+ end
63
+
64
+ desc 'Fetches latest tags/commits'
65
+ task :git_fetch do
66
+ puts '>>> Fetching latest git refs'
67
+ `git fetch --tags`
68
+ end
69
+
70
+ desc 'Requests the new version number'
71
+ task :set_new_version do
72
+ STDOUT.print(">>> New version number (current: #{Kadmin::VERSION}; leave blank if already updated): ")
73
+ input = STDIN.gets.strip.tr("'", "\'")
74
+
75
+ current = if input.empty?
76
+ Kadmin::VERSION
77
+ else
78
+ unless input =~ /[0-9]+\.[0-9]+\.[0-9]+/
79
+ puts '>>> Please use semantic versioning!'
80
+ exit(-1)
81
+ end
82
+
83
+ input
84
+ end
85
+
86
+ latest = `git describe --abbrev=0`.chomp.strip
87
+ unless Gem::Version.new(current) > Gem::Version.new(latest)
88
+ puts ">>> Latest tagged version is #{latest}; make sure gem version (#{current}) is greater!"
89
+ exit(-1)
90
+ end
91
+
92
+ if !input.empty?
93
+ `sed -i -u "s@VERSION = '#{Kadmin::VERSION}'@VERSION = '#{input}'@" #{File.expand_path('../lib/kadmin/version.rb', __FILE__)}`
94
+ $VERBOSE = nil
95
+ Kadmin.const_set('VERSION', input)
96
+ $VERBOSE = false
97
+
98
+ `bundle check` # force updating version
99
+ end
100
+ end
101
+
102
+ desc 'Updates README with latest version'
103
+ task :update_readme do
104
+ puts '>>> Updating README.md'
105
+ replace = %([![GitHub release](https://img.shields.io/badge/release-#{Kadmin::VERSION}-blue.png)](https://github.com/barcoo/kadmin/releases/tag/#{Kadmin::VERSION}))
106
+
107
+ `sed -i -u 's@^\\[\\!\\[GitHub release\\].*$@#{replace}@' README.md`
108
+ end
109
+
110
+ desc 'Updates CHANGELOG with commit log from last tag to this one'
111
+ task :update_changelog do
112
+ puts '>>> Updating CHANGELOG.md'
113
+ latest = `git describe --abbrev=0`.chomp.strip
114
+ range = $CHILD_STATUS.success? && !latest.empty? ? "'#{latest}'..HEAD" : ''
115
+
116
+ log = `git log --pretty=format:'- [%h](https://github.com/barcoo/kadmin/commit/%h) *%ad* __%s__ (%an)' --date=short #{range}`.chomp
117
+
118
+ changelog = File.open('.CHANGELOG.md', 'w')
119
+ changelog.write("# Changelog\n\n###{Kadmin::VERSION}\n\n#{log}\n\n")
120
+ File.open('CHANGELOG.md', 'r') do |file|
121
+ file.readline # skip first two lines
122
+ file.readline
123
+
124
+ while buffer = file.read(2048) # rubocop: disable Lint/AssignmentInCondition
125
+ changelog.write(buffer)
126
+ end
127
+ end
128
+
129
+ changelog.close
130
+ `mv '.CHANGELOG.md' 'CHANGELOG.md'`
131
+ end
132
+
133
+ desc 'Commits the README/CHANGELOG changes'
134
+ task :commit_changes do
135
+ puts '>>> Committing updates to README/CHANGELOG'
136
+ `git commit -am'Updated README.md and CHANGELOG.md on new release'`
137
+ end
138
+
139
+ desc 'Creates and pushes the tag to git'
140
+ task :tag do
141
+ puts '>>> Tagging'
142
+ STDOUT.print('>>> Please enter a tag message: ')
143
+ input = STDIN.gets.strip.tr("'", "\'")
144
+ `git tag -a '#{Kadmin::VERSION}' -m '#{input}'`
145
+ end
146
+ end
@@ -1,1389 +1,1389 @@
1
- var config = window.config = {};
2
-
3
- // Config reference element
4
- var $ref = $("#ref");
5
-
6
- // Configure responsive bootstrap toolkit
7
- config.ResponsiveBootstrapToolkitVisibilityDivs = {
8
- 'xs': $('<div class="device-xs hidden-sm-up"></div>'),
9
- 'sm': $('<div class="device-sm hidden-xs-down hidden-md-up"></div>'),
10
- 'md': $('<div class="device-md hidden-sm-down hidden-lg-up"></div>'),
11
- 'lg': $('<div class="device-lg hidden-md-down hidden-xl-up"></div>'),
12
- 'xl': $('<div class="device-xl hidden-lg-down "></div>'),
13
- };
14
-
15
- ResponsiveBootstrapToolkit.use('Custom', config.ResponsiveBootstrapToolkitVisibilityDivs);
16
-
17
- //validation configuration
18
- config.validations = {
19
- debug: true,
20
- errorClass:'has-error',
21
- validClass:'success',
22
- errorElement:"span",
23
-
24
- // add error class
25
- highlight: function(element, errorClass, validClass) {
26
- $(element).parents("div.form-group")
27
- .addClass(errorClass)
28
- .removeClass(validClass);
29
- },
30
-
31
- // add error class
32
- unhighlight: function(element, errorClass, validClass) {
33
- $(element).parents(".has-error")
34
- .removeClass(errorClass)
35
- .addClass(validClass);
36
- },
37
-
38
- // submit handler
39
- submitHandler: function(form) {
40
- form.submit();
41
- }
42
- }
43
-
44
- //delay time configuration
45
- config.delayTime = 50;
46
-
47
- // chart configurations
48
- config.chart = {};
49
-
50
- config.chart.colorPrimary = tinycolor($ref.find(".chart .color-primary").css("color"));
51
- config.chart.colorSecondary = tinycolor($ref.find(".chart .color-secondary").css("color"));
52
- $(function() {
53
- animate({
54
- name: 'flipInY',
55
- selector: '.error-card > .error-title-block'
56
- });
57
-
58
-
59
- setTimeout(function(){
60
- var $el = $('.error-card > .error-container');
61
-
62
- animate({
63
- name: 'fadeInUp',
64
- selector: $el
65
- });
66
-
67
- $el.addClass('visible');
68
- }, 1000);
69
- })
70
- //LoginForm validation
71
- $(function() {
72
- if (!$('#login-form').length) {
73
- return false;
74
- }
75
-
76
- var loginValidationSettings = {
77
- rules: {
78
- username: {
79
- required: true,
80
- email: true
81
- },
82
- password: "required",
83
- agree: "required"
84
- },
85
- messages: {
86
- username: {
87
- required: "Please enter username",
88
- email: "Please enter a valid email address"
89
- },
90
- password: "Please enter password",
91
- agree: "Please accept our policy"
92
- },
93
- invalidHandler: function() {
94
- animate({
95
- name: 'shake',
96
- selector: '.auth-container > .card'
97
- });
98
- }
99
- }
100
-
101
- $.extend(loginValidationSettings, config.validations);
102
-
103
- $('#login-form').validate(loginValidationSettings);
104
- })
105
- //LoginForm validation
106
- $(function() {
107
- if (!$('#reset-form').length) {
108
- return false;
109
- }
110
-
111
- var resetValidationSettings = {
112
- rules: {
113
- email1: {
114
- required: true,
115
- email: true
116
- }
117
- },
118
- messages: {
119
- email1: {
120
- required: "Please enter email address",
121
- email: "Please enter a valid email address"
122
- }
123
- },
124
- invalidHandler: function() {
125
- animate({
126
- name: 'shake',
127
- selector: '.auth-container > .card'
128
- });
129
- }
130
- }
131
-
132
- $.extend(resetValidationSettings, config.validations);
133
-
134
- $('#reset-form').validate(resetValidationSettings);
135
- })
136
- //LoginForm validation
137
- $(function() {
138
- if (!$('#signup-form').length) {
139
- return false;
140
- }
141
-
142
- var signupValidationSettings = {
143
- rules: {
144
- firstname: {
145
- required: true,
146
- },
147
- lastname: {
148
- required: true,
149
- },
150
- email: {
151
- required: true,
152
- email: true
153
- },
154
- password: {
155
- required: true,
156
- minlength: 8
157
- },
158
- retype_password: {
159
- required: true,
160
- minlength: 8,
161
- equalTo: "#password"
162
- },
163
- agree: {
164
- required: true,
165
- }
166
- },
167
- groups: {
168
- name: "firstname lastname",
169
- pass: "password retype_password",
170
- },
171
- errorPlacement: function(error, element) {
172
- if (
173
- element.attr("name") == "firstname" ||
174
- element.attr("name") == "lastname"
175
- ) {
176
- error.insertAfter($("#lastname").closest('.row'));
177
- element.parents("div.form-group")
178
- .addClass('has-error');
179
- }
180
- else if (
181
- element.attr("name") == "password" ||
182
- element.attr("name") == "retype_password"
183
- ) {
184
- error.insertAfter($("#retype_password").closest('.row'));
185
- element.parents("div.form-group")
186
- .addClass('has-error');
187
- }
188
- else if (element.attr("name") == "agree") {
189
- error.insertAfter("#agree-text");
190
- }
191
- else {
192
- error.insertAfter(element);
193
- }
194
- },
195
- messages: {
196
- firstname: "Please enter firstname and lastname",
197
- lastname: "Please enter firstname and lastname",
198
- email: {
199
- required: "Please enter email",
200
- email: "Please enter a valid email address"
201
- },
202
- password: {
203
- required: "Please enter password fields.",
204
- minlength: "Passwords should be at least 8 characters."
205
- },
206
- retype_password: {
207
- required: "Please enter password fields.",
208
- minlength: "Passwords should be at least 8 characters."
209
- },
210
- agree: "Please accept our policy"
211
- },
212
- invalidHandler: function() {
213
- animate({
214
- name: 'shake',
215
- selector: '.auth-container > .card'
216
- });
217
- }
218
- }
219
-
220
- $.extend(signupValidationSettings, config.validations);
221
-
222
- $('#signup-form').validate(signupValidationSettings);
223
- });
224
- /***********************************************
225
- * Animation Settings
226
- ***********************************************/
227
- function animate(options) {
228
- var animationName = "animated " + options.name;
229
- var animationEnd = "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend";
230
- $(options.selector)
231
- .addClass(animationName)
232
- .one(animationEnd,
233
- function(){
234
- $(this).removeClass(animationName);
235
- }
236
- );
237
- }
238
-
239
- $(function() {
240
- var $itemActions = $(".item-actions-dropdown");
241
-
242
- $(document).on('click',function(e) {
243
- if (!$(e.target).closest('.item-actions-dropdown').length) {
244
- $itemActions.removeClass('active');
245
- }
246
- });
247
-
248
- $('.item-actions-toggle-btn').on('click',function(e){
249
- e.preventDefault();
250
-
251
- var $thisActionList = $(this).closest('.item-actions-dropdown');
252
-
253
- $itemActions.not($thisActionList).removeClass('active');
254
-
255
- $thisActionList.toggleClass('active');
256
- });
257
- });
258
-
259
- /***********************************************
260
- * NProgress Settings
261
- ***********************************************/
262
- var npSettings = {
263
- easing: 'ease',
264
- speed: 500
265
- }
266
-
267
- NProgress.configure(npSettings);
268
- $(function() {
269
- setSameHeights();
270
-
271
- var resizeTimer;
272
-
273
- $(window).resize(function() {
274
- clearTimeout(resizeTimer);
275
- resizeTimer = setTimeout(setSameHeights, 150);
276
- });
277
- });
278
-
279
-
280
- function setSameHeights($container) {
281
-
282
- $container = $container || $('.sameheight-container');
283
-
284
- var viewport = ResponsiveBootstrapToolkit.current();
285
-
286
- $container.each(function() {
287
-
288
- var $items = $(this).find(".sameheight-item");
289
-
290
- // Get max height of items in container
291
- var maxHeight = 0;
292
-
293
- $items.each(function() {
294
- $(this).css({height: 'auto'});
295
- maxHeight = Math.max(maxHeight, $(this).innerHeight());
296
- });
297
-
298
-
299
- // Set heights of items
300
- $items.each(function() {
301
- // Ignored viewports for item
302
- var excludedStr = $(this).data('exclude') || '';
303
- var excluded = excludedStr.split(',');
304
-
305
- // Set height of element if it's not excluded on
306
- if (excluded.indexOf(viewport) === -1) {
307
- $(this).innerHeight(maxHeight);
308
- }
309
- });
310
- });
311
- }
312
-
313
- //Flot Bar Chart
314
- $(function() {
315
-
316
- if (!$('#flot-bar-chart').length) {
317
- return false;
318
- }
319
-
320
- function drawFlotCharts() {
321
-
322
- var barOptions = {
323
- series: {
324
- bars: {
325
- show: true,
326
- barWidth: 0.6,
327
- fill: true,
328
- fillColor: {
329
- colors: [{
330
- opacity: 0.8
331
- }, {
332
- opacity: 0.8
333
- }]
334
- }
335
- }
336
- },
337
- xaxis: {
338
- tickDecimals: 0
339
- },
340
- colors: [config.chart.colorPrimary],
341
- grid: {
342
- color: "#999999",
343
- hoverable: true,
344
- clickable: true,
345
- tickColor: "#D4D4D4",
346
- borderWidth:0
347
- },
348
- legend: {
349
- show: false
350
- },
351
- tooltip: true,
352
- tooltipOpts: {
353
- content: "x: %x, y: %y"
354
- }
355
- };
356
- var barData = {
357
- label: "bar",
358
- data: [
359
- [1, 34],
360
- [2, 25],
361
- [3, 19],
362
- [4, 34],
363
- [5, 32],
364
- [6, 44]
365
- ]
366
- };
367
- $.plot($("#flot-bar-chart"), [barData], barOptions);
368
-
369
-
370
- // Flot line chart
371
- var lineOptions = {
372
- series: {
373
- lines: {
374
- show: true,
375
- lineWidth: 2,
376
- fill: true,
377
- fillColor: {
378
- colors: [{
379
- opacity: 0.0
380
- }, {
381
- opacity: 0.0
382
- }]
383
- }
384
- }
385
- },
386
- xaxis: {
387
- tickDecimals: 0
388
- },
389
- colors: [config.chart.colorPrimary],
390
- grid: {
391
- color: "#999999",
392
- hoverable: true,
393
- clickable: true,
394
- tickColor: "#D4D4D4",
395
- borderWidth:0
396
- },
397
- legend: {
398
- show: false
399
- },
400
- tooltip: true,
401
- tooltipOpts: {
402
- content: "x: %x, y: %y"
403
- }
404
- };
405
- var barData = {
406
- label: "bar",
407
- data: [
408
- [1, 34],
409
- [2, 25],
410
- [3, 19],
411
- [4, 34],
412
- [5, 32],
413
- [6, 44]
414
- ]
415
- };
416
- $.plot($("#flot-line-chart"), [barData], lineOptions);
417
-
418
- //Flot Pie Chart
419
- var data = [{
420
- label: "Sales 1",
421
- data: 21,
422
- color: tinycolor(config.chart.colorPrimary.toString()).lighten(20),
423
- }, {
424
- label: "Sales 2",
425
- data: 15,
426
- color: tinycolor(config.chart.colorPrimary.toString()).lighten(10),
427
- }, {
428
- label: "Sales 3",
429
- data: 7,
430
- color: tinycolor(config.chart.colorPrimary.toString()),
431
- }, {
432
- label: "Sales 4",
433
- data: 52,
434
- color: tinycolor(config.chart.colorPrimary.toString()).darken(10),
435
- }];
436
-
437
- var plotObj = $.plot($("#flot-pie-chart"), data, {
438
- series: {
439
- pie: {
440
- show: true
441
- }
442
- },
443
- grid: {
444
- hoverable: true
445
- },
446
- tooltip: true,
447
- tooltipOpts: {
448
- content: "%p.0%, %s", // show percentages, rounding to 2 decimal places
449
- shifts: {
450
- x: 20,
451
- y: 0
452
- },
453
- defaultTheme: false
454
- }
455
- });
456
-
457
-
458
- //live chart example
459
- var container = $("#flot-line-chart-moving");
460
- container.empty();
461
- // Determine how many data points to keep based on the placeholder's initial size;
462
- // this gives us a nice high-res plot while avoiding more than one point per pixel.
463
-
464
- var maximum = container.outerWidth() / 10 || 100;
465
-
466
- //
467
-
468
- var data = [];
469
-
470
- function getRandomData() {
471
-
472
- if (data.length) {
473
- data = data.slice(1);
474
- }
475
-
476
- while (data.length < maximum) {
477
- var previous = data.length ? data[data.length - 1] : 50;
478
- var y = previous + Math.random() * 10 - 5;
479
- data.push(y < 0 ? 0 : y > 100 ? 100 : y);
480
- }
481
-
482
- // zip the generated y values with the x values
483
-
484
- var res = [];
485
- for (var i = 0; i < data.length; ++i) {
486
- res.push([i, data[i]])
487
- }
488
-
489
- return res;
490
- }
491
-
492
- series = [{
493
- data: getRandomData(),
494
- lines: {
495
- fill: true
496
- }
497
- }];
498
-
499
-
500
- var plot = $.plot(container, series, {
501
- grid: {
502
-
503
- color: "#999999",
504
- tickColor: "#D4D4D4",
505
- borderWidth:0,
506
- minBorderMargin: 20,
507
- labelMargin: 10,
508
- backgroundColor: {
509
- colors: ["#ffffff", "#ffffff"]
510
- },
511
- margin: {
512
- top: 8,
513
- bottom: 20,
514
- left: 20
515
- },
516
- markings: function(axes) {
517
- var markings = [];
518
- var xaxis = axes.xaxis;
519
- for (var x = Math.floor(xaxis.min); x < xaxis.max; x += xaxis.tickSize * 2) {
520
- markings.push({
521
- xaxis: {
522
- from: x,
523
- to: x + xaxis.tickSize
524
- },
525
- color: "#fff"
526
- });
527
- }
528
- return markings;
529
- }
530
- },
531
- colors: [config.chart.colorPrimary.toString()],
532
- xaxis: {
533
- tickFormatter: function() {
534
- return "";
535
- }
536
- },
537
- yaxis: {
538
- min: 0,
539
- max: 110
540
- },
541
- legend: {
542
- show: true
543
- }
544
- });
545
-
546
- // Update the random dataset at 25FPS for a smoothly-animating chart
547
-
548
- setInterval(function updateRandom() {
549
- series[0].data = getRandomData();
550
- plot.setData(series);
551
- plot.draw();
552
- }, 40);
553
-
554
-
555
- //Flot Multiple Axes Line Chart
556
- var oilpricesFull = [ [1167692400000, 61.05], [1167778800000, 58.32], [1167865200000, 57.35], [1167951600000, 56.31], [1168210800000, 55.55], [1168297200000, 55.64], [1168383600000, 54.02], [1168470000000, 51.88], [1168556400000, 52.99], [1168815600000, 52.99], [1168902000000, 51.21], [1168988400000, 52.24], [1169074800000, 50.48], [1169161200000, 51.99], [1169420400000, 51.13], [1169506800000, 55.04], [1169593200000, 55.37], [1169679600000, 54.23], [1169766000000, 55.42], [1170025200000, 54.01], [1170111600000, 56.97], [1170198000000, 58.14], [1170284400000, 58.14], [1170370800000, 59.02], [1170630000000, 58.74], [1170716400000, 58.88], [1170802800000, 57.71], [1170889200000, 59.71], [1170975600000, 59.89], [1171234800000, 57.81], [1171321200000, 59.06], [1171407600000, 58.00], [1171494000000, 57.99], [1171580400000, 59.39], [1171839600000, 59.39], [1171926000000, 58.07], [1172012400000, 60.07], [1172098800000, 61.14], [1172444400000, 61.39], [1172530800000, 61.46], [1172617200000, 61.79], [1172703600000, 62.00], [1172790000000, 60.07], [1173135600000, 60.69], [1173222000000, 61.82], [1173308400000, 60.05], [1173654000000, 58.91], [1173740400000, 57.93], [1173826800000, 58.16], [1173913200000, 57.55], [1173999600000, 57.11], [1174258800000, 56.59], [1174345200000, 59.61], [1174518000000, 61.69], [1174604400000, 62.28], [1174860000000, 62.91], [1174946400000, 62.93], [1175032800000, 64.03], [1175119200000, 66.03], [1175205600000, 65.87], [1175464800000, 64.64], [1175637600000, 64.38], [1175724000000, 64.28], [1175810400000, 64.28], [1176069600000, 61.51], [1176156000000, 61.89], [1176242400000, 62.01], [1176328800000, 63.85], [1176415200000, 63.63], [1176674400000, 63.61], [1176760800000, 63.10], [1176847200000, 63.13], [1176933600000, 61.83], [1177020000000, 63.38], [1177279200000, 64.58], [1177452000000, 65.84], [1177538400000, 65.06], [1177624800000, 66.46], [1177884000000, 64.40], [1178056800000, 63.68], [1178143200000, 63.19], [1178229600000, 61.93], [1178488800000, 61.47], [1178575200000, 61.55], [1178748000000, 61.81], [1178834400000, 62.37], [1179093600000, 62.46], [1179180000000, 63.17], [1179266400000, 62.55], [1179352800000, 64.94], [1179698400000, 66.27], [1179784800000, 65.50], [1179871200000, 65.77], [1179957600000, 64.18], [1180044000000, 65.20], [1180389600000, 63.15], [1180476000000, 63.49], [1180562400000, 65.08], [1180908000000, 66.30], [1180994400000, 65.96], [1181167200000, 66.93], [1181253600000, 65.98], [1181599200000, 65.35], [1181685600000, 66.26], [1181858400000, 68.00], [1182117600000, 69.09], [1182204000000, 69.10], [1182290400000, 68.19], [1182376800000, 68.19], [1182463200000, 69.14], [1182722400000, 68.19], [1182808800000, 67.77], [1182895200000, 68.97], [1182981600000, 69.57], [1183068000000, 70.68], [1183327200000, 71.09], [1183413600000, 70.92], [1183586400000, 71.81], [1183672800000, 72.81], [1183932000000, 72.19], [1184018400000, 72.56], [1184191200000, 72.50], [1184277600000, 74.15], [1184623200000, 75.05], [1184796000000, 75.92], [1184882400000, 75.57], [1185141600000, 74.89], [1185228000000, 73.56], [1185314400000, 75.57], [1185400800000, 74.95], [1185487200000, 76.83], [1185832800000, 78.21], [1185919200000, 76.53], [1186005600000, 76.86], [1186092000000, 76.00], [1186437600000, 71.59], [1186696800000, 71.47], [1186956000000, 71.62], [1187042400000, 71.00], [1187301600000, 71.98], [1187560800000, 71.12], [1187647200000, 69.47], [1187733600000, 69.26], [1187820000000, 69.83], [1187906400000, 71.09], [1188165600000, 71.73], [1188338400000, 73.36], [1188511200000, 74.04], [1188856800000, 76.30], [1189116000000, 77.49], [1189461600000, 78.23], [1189548000000, 79.91], [1189634400000, 80.09], [1189720800000, 79.10], [1189980000000, 80.57], [1190066400000, 81.93], [1190239200000, 83.32], [1190325600000, 81.62], [1190584800000, 80.95], [1190671200000, 79.53], [1190757600000, 80.30], [1190844000000, 82.88], [1190930400000, 81.66], [1191189600000, 80.24], [1191276000000, 80.05], [1191362400000, 79.94], [1191448800000, 81.44], [1191535200000, 81.22], [1191794400000, 79.02], [1191880800000, 80.26], [1191967200000, 80.30], [1192053600000, 83.08], [1192140000000, 83.69], [1192399200000, 86.13], [1192485600000, 87.61], [1192572000000, 87.40], [1192658400000, 89.47], [1192744800000, 88.60], [1193004000000, 87.56], [1193090400000, 87.56], [1193176800000, 87.10], [1193263200000, 91.86], [1193612400000, 93.53], [1193698800000, 94.53], [1193871600000, 95.93], [1194217200000, 93.98], [1194303600000, 96.37], [1194476400000, 95.46], [1194562800000, 96.32], [1195081200000, 93.43], [1195167600000, 95.10], [1195426800000, 94.64], [1195513200000, 95.10], [1196031600000, 97.70], [1196118000000, 94.42], [1196204400000, 90.62], [1196290800000, 91.01], [1196377200000, 88.71], [1196636400000, 88.32], [1196809200000, 90.23], [1196982000000, 88.28], [1197241200000, 87.86], [1197327600000, 90.02], [1197414000000, 92.25], [1197586800000, 90.63], [1197846000000, 90.63], [1197932400000, 90.49], [1198018800000, 91.24], [1198105200000, 91.06], [1198191600000, 90.49], [1198710000000, 96.62], [1198796400000, 96.00], [1199142000000, 99.62], [1199314800000, 99.18], [1199401200000, 95.09], [1199660400000, 96.33], [1199833200000, 95.67], [1200351600000, 91.90], [1200438000000, 90.84], [1200524400000, 90.13], [1200610800000, 90.57], [1200956400000, 89.21], [1201042800000, 86.99], [1201129200000, 89.85], [1201474800000, 90.99], [1201561200000, 91.64], [1201647600000, 92.33], [1201734000000, 91.75], [1202079600000, 90.02], [1202166000000, 88.41], [1202252400000, 87.14], [1202338800000, 88.11], [1202425200000, 91.77], [1202770800000, 92.78], [1202857200000, 93.27], [1202943600000, 95.46], [1203030000000, 95.46], [1203289200000, 101.74], [1203462000000, 98.81], [1203894000000, 100.88], [1204066800000, 99.64], [1204153200000, 102.59], [1204239600000, 101.84], [1204498800000, 99.52], [1204585200000, 99.52], [1204671600000, 104.52], [1204758000000, 105.47], [1204844400000, 105.15], [1205103600000, 108.75], [1205276400000, 109.92], [1205362800000, 110.33], [1205449200000, 110.21], [1205708400000, 105.68], [1205967600000, 101.84], [1206313200000, 100.86], [1206399600000, 101.22], [1206486000000, 105.90], [1206572400000, 107.58], [1206658800000, 105.62], [1206914400000, 101.58], [1207000800000, 100.98], [1207173600000, 103.83], [1207260000000, 106.23], [1207605600000, 108.50], [1207778400000, 110.11], [1207864800000, 110.14], [1208210400000, 113.79], [1208296800000, 114.93], [1208383200000, 114.86], [1208728800000, 117.48], [1208815200000, 118.30], [1208988000000, 116.06], [1209074400000, 118.52], [1209333600000, 118.75], [1209420000000, 113.46], [1209592800000, 112.52], [1210024800000, 121.84], [1210111200000, 123.53], [1210197600000, 123.69], [1210543200000, 124.23], [1210629600000, 125.80], [1210716000000, 126.29], [1211148000000, 127.05], [1211320800000, 129.07], [1211493600000, 132.19], [1211839200000, 128.85], [1212357600000, 127.76], [1212703200000, 138.54], [1212962400000, 136.80], [1213135200000, 136.38], [1213308000000, 134.86], [1213653600000, 134.01], [1213740000000, 136.68], [1213912800000, 135.65], [1214172000000, 134.62], [1214258400000, 134.62], [1214344800000, 134.62], [1214431200000, 139.64], [1214517600000, 140.21], [1214776800000, 140.00], [1214863200000, 140.97], [1214949600000, 143.57], [1215036000000, 145.29], [1215381600000, 141.37], [1215468000000, 136.04], [1215727200000, 146.40], [1215986400000, 145.18], [1216072800000, 138.74], [1216159200000, 134.60], [1216245600000, 129.29], [1216332000000, 130.65], [1216677600000, 127.95], [1216850400000, 127.95], [1217282400000, 122.19], [1217455200000, 124.08], [1217541600000, 125.10], [1217800800000, 121.41], [1217887200000, 119.17], [1217973600000, 118.58], [1218060000000, 120.02], [1218405600000, 114.45], [1218492000000, 113.01], [1218578400000, 116.00], [1218751200000, 113.77], [1219010400000, 112.87], [1219096800000, 114.53], [1219269600000, 114.98], [1219356000000, 114.98], [1219701600000, 116.27], [1219788000000, 118.15], [1219874400000, 115.59], [1219960800000, 115.46], [1220306400000, 109.71], [1220392800000, 109.35], [1220565600000, 106.23], [1220824800000, 106.34] ];
557
- var exchangeratesFull = [ [1167606000000, 0.7580], [1167692400000, 0.7580], [1167778800000, 0.75470], [1167865200000, 0.75490], [1167951600000, 0.76130], [1168038000000, 0.76550], [1168124400000, 0.76930], [1168210800000, 0.76940], [1168297200000, 0.76880], [1168383600000, 0.76780], [1168470000000, 0.77080], [1168556400000, 0.77270], [1168642800000, 0.77490], [1168729200000, 0.77410], [1168815600000, 0.77410], [1168902000000, 0.77320], [1168988400000, 0.77270], [1169074800000, 0.77370], [1169161200000, 0.77240], [1169247600000, 0.77120], [1169334000000, 0.7720], [1169420400000, 0.77210], [1169506800000, 0.77170], [1169593200000, 0.77040], [1169679600000, 0.7690], [1169766000000, 0.77110], [1169852400000, 0.7740], [1169938800000, 0.77450], [1170025200000, 0.77450], [1170111600000, 0.7740], [1170198000000, 0.77160], [1170284400000, 0.77130], [1170370800000, 0.76780], [1170457200000, 0.76880], [1170543600000, 0.77180], [1170630000000, 0.77180], [1170716400000, 0.77280], [1170802800000, 0.77290], [1170889200000, 0.76980], [1170975600000, 0.76850], [1171062000000, 0.76810], [1171148400000, 0.7690], [1171234800000, 0.7690], [1171321200000, 0.76980], [1171407600000, 0.76990], [1171494000000, 0.76510], [1171580400000, 0.76130], [1171666800000, 0.76160], [1171753200000, 0.76140], [1171839600000, 0.76140], [1171926000000, 0.76070], [1172012400000, 0.76020], [1172098800000, 0.76110], [1172185200000, 0.76220], [1172271600000, 0.76150], [1172358000000, 0.75980], [1172444400000, 0.75980], [1172530800000, 0.75920], [1172617200000, 0.75730], [1172703600000, 0.75660], [1172790000000, 0.75670], [1172876400000, 0.75910], [1172962800000, 0.75820], [1173049200000, 0.75850], [1173135600000, 0.76130], [1173222000000, 0.76310], [1173308400000, 0.76150], [1173394800000, 0.760], [1173481200000, 0.76130], [1173567600000, 0.76270], [1173654000000, 0.76270], [1173740400000, 0.76080], [1173826800000, 0.75830], [1173913200000, 0.75750], [1173999600000, 0.75620], [1174086000000, 0.7520], [1174172400000, 0.75120], [1174258800000, 0.75120], [1174345200000, 0.75170], [1174431600000, 0.7520], [1174518000000, 0.75110], [1174604400000, 0.7480], [1174690800000, 0.75090], [1174777200000, 0.75310], [1174860000000, 0.75310], [1174946400000, 0.75270], [1175032800000, 0.74980], [1175119200000, 0.74930], [1175205600000, 0.75040], [1175292000000, 0.750], [1175378400000, 0.74910], [1175464800000, 0.74910], [1175551200000, 0.74850], [1175637600000, 0.74840], [1175724000000, 0.74920], [1175810400000, 0.74710], [1175896800000, 0.74590], [1175983200000, 0.74770], [1176069600000, 0.74770], [1176156000000, 0.74830], [1176242400000, 0.74580], [1176328800000, 0.74480], [1176415200000, 0.7430], [1176501600000, 0.73990], [1176588000000, 0.73950], [1176674400000, 0.73950], [1176760800000, 0.73780], [1176847200000, 0.73820], [1176933600000, 0.73620], [1177020000000, 0.73550], [1177106400000, 0.73480], [1177192800000, 0.73610], [1177279200000, 0.73610], [1177365600000, 0.73650], [1177452000000, 0.73620], [1177538400000, 0.73310], [1177624800000, 0.73390], [1177711200000, 0.73440], [1177797600000, 0.73270], [1177884000000, 0.73270], [1177970400000, 0.73360], [1178056800000, 0.73330], [1178143200000, 0.73590], [1178229600000, 0.73590], [1178316000000, 0.73720], [1178402400000, 0.7360], [1178488800000, 0.7360], [1178575200000, 0.7350], [1178661600000, 0.73650], [1178748000000, 0.73840], [1178834400000, 0.73950], [1178920800000, 0.74130], [1179007200000, 0.73970], [1179093600000, 0.73960], [1179180000000, 0.73850], [1179266400000, 0.73780], [1179352800000, 0.73660], [1179439200000, 0.740], [1179525600000, 0.74110], [1179612000000, 0.74060], [1179698400000, 0.74050], [1179784800000, 0.74140], [1179871200000, 0.74310], [1179957600000, 0.74310], [1180044000000, 0.74380], [1180130400000, 0.74430], [1180216800000, 0.74430], [1180303200000, 0.74430], [1180389600000, 0.74340], [1180476000000, 0.74290], [1180562400000, 0.74420], [1180648800000, 0.7440], [1180735200000, 0.74390], [1180821600000, 0.74370], [1180908000000, 0.74370], [1180994400000, 0.74290], [1181080800000, 0.74030], [1181167200000, 0.73990], [1181253600000, 0.74180], [1181340000000, 0.74680], [1181426400000, 0.7480], [1181512800000, 0.7480], [1181599200000, 0.7490], [1181685600000, 0.74940], [1181772000000, 0.75220], [1181858400000, 0.75150], [1181944800000, 0.75020], [1182031200000, 0.74720], [1182117600000, 0.74720], [1182204000000, 0.74620], [1182290400000, 0.74550], [1182376800000, 0.74490], [1182463200000, 0.74670], [1182549600000, 0.74580], [1182636000000, 0.74270], [1182722400000, 0.74270], [1182808800000, 0.7430], [1182895200000, 0.74290], [1182981600000, 0.7440], [1183068000000, 0.7430], [1183154400000, 0.74220], [1183240800000, 0.73880], [1183327200000, 0.73880], [1183413600000, 0.73690], [1183500000000, 0.73450], [1183586400000, 0.73450], [1183672800000, 0.73450], [1183759200000, 0.73520], [1183845600000, 0.73410], [1183932000000, 0.73410], [1184018400000, 0.7340], [1184104800000, 0.73240], [1184191200000, 0.72720], [1184277600000, 0.72640], [1184364000000, 0.72550], [1184450400000, 0.72580], [1184536800000, 0.72580], [1184623200000, 0.72560], [1184709600000, 0.72570], [1184796000000, 0.72470], [1184882400000, 0.72430], [1184968800000, 0.72440], [1185055200000, 0.72350], [1185141600000, 0.72350], [1185228000000, 0.72350], [1185314400000, 0.72350], [1185400800000, 0.72620], [1185487200000, 0.72880], [1185573600000, 0.73010], [1185660000000, 0.73370], [1185746400000, 0.73370], [1185832800000, 0.73240], [1185919200000, 0.72970], [1186005600000, 0.73170], [1186092000000, 0.73150], [1186178400000, 0.72880], [1186264800000, 0.72630], [1186351200000, 0.72630], [1186437600000, 0.72420], [1186524000000, 0.72530], [1186610400000, 0.72640], [1186696800000, 0.7270], [1186783200000, 0.73120], [1186869600000, 0.73050], [1186956000000, 0.73050], [1187042400000, 0.73180], [1187128800000, 0.73580], [1187215200000, 0.74090], [1187301600000, 0.74540], [1187388000000, 0.74370], [1187474400000, 0.74240], [1187560800000, 0.74240], [1187647200000, 0.74150], [1187733600000, 0.74190], [1187820000000, 0.74140], [1187906400000, 0.73770], [1187992800000, 0.73550], [1188079200000, 0.73150], [1188165600000, 0.73150], [1188252000000, 0.7320], [1188338400000, 0.73320], [1188424800000, 0.73460], [1188511200000, 0.73280], [1188597600000, 0.73230], [1188684000000, 0.7340], [1188770400000, 0.7340], [1188856800000, 0.73360], [1188943200000, 0.73510], [1189029600000, 0.73460], [1189116000000, 0.73210], [1189202400000, 0.72940], [1189288800000, 0.72660], [1189375200000, 0.72660], [1189461600000, 0.72540], [1189548000000, 0.72420], [1189634400000, 0.72130], [1189720800000, 0.71970], [1189807200000, 0.72090], [1189893600000, 0.7210], [1189980000000, 0.7210], [1190066400000, 0.7210], [1190152800000, 0.72090], [1190239200000, 0.71590], [1190325600000, 0.71330], [1190412000000, 0.71050], [1190498400000, 0.70990], [1190584800000, 0.70990], [1190671200000, 0.70930], [1190757600000, 0.70930], [1190844000000, 0.70760], [1190930400000, 0.7070], [1191016800000, 0.70490], [1191103200000, 0.70120], [1191189600000, 0.70110], [1191276000000, 0.70190], [1191362400000, 0.70460], [1191448800000, 0.70630], [1191535200000, 0.70890], [1191621600000, 0.70770], [1191708000000, 0.70770], [1191794400000, 0.70770], [1191880800000, 0.70910], [1191967200000, 0.71180], [1192053600000, 0.70790], [1192140000000, 0.70530], [1192226400000, 0.7050], [1192312800000, 0.70550], [1192399200000, 0.70550], [1192485600000, 0.70450], [1192572000000, 0.70510], [1192658400000, 0.70510], [1192744800000, 0.70170], [1192831200000, 0.70], [1192917600000, 0.69950], [1193004000000, 0.69940], [1193090400000, 0.70140], [1193176800000, 0.70360], [1193263200000, 0.70210], [1193349600000, 0.70020], [1193436000000, 0.69670], [1193522400000, 0.6950], [1193612400000, 0.6950], [1193698800000, 0.69390], [1193785200000, 0.6940], [1193871600000, 0.69220], [1193958000000, 0.69190], [1194044400000, 0.69140], [1194130800000, 0.68940], [1194217200000, 0.68910], [1194303600000, 0.69040], [1194390000000, 0.6890], [1194476400000, 0.68340], [1194562800000, 0.68230], [1194649200000, 0.68070], [1194735600000, 0.68150], [1194822000000, 0.68150], [1194908400000, 0.68470], [1194994800000, 0.68590], [1195081200000, 0.68220], [1195167600000, 0.68270], [1195254000000, 0.68370], [1195340400000, 0.68230], [1195426800000, 0.68220], [1195513200000, 0.68220], [1195599600000, 0.67920], [1195686000000, 0.67460], [1195772400000, 0.67350], [1195858800000, 0.67310], [1195945200000, 0.67420], [1196031600000, 0.67440], [1196118000000, 0.67390], [1196204400000, 0.67310], [1196290800000, 0.67610], [1196377200000, 0.67610], [1196463600000, 0.67850], [1196550000000, 0.68180], [1196636400000, 0.68360], [1196722800000, 0.68230], [1196809200000, 0.68050], [1196895600000, 0.67930], [1196982000000, 0.68490], [1197068400000, 0.68330], [1197154800000, 0.68250], [1197241200000, 0.68250], [1197327600000, 0.68160], [1197414000000, 0.67990], [1197500400000, 0.68130], [1197586800000, 0.68090], [1197673200000, 0.68680], [1197759600000, 0.69330], [1197846000000, 0.69330], [1197932400000, 0.69450], [1198018800000, 0.69440], [1198105200000, 0.69460], [1198191600000, 0.69640], [1198278000000, 0.69650], [1198364400000, 0.69560], [1198450800000, 0.69560], [1198537200000, 0.6950], [1198623600000, 0.69480], [1198710000000, 0.69280], [1198796400000, 0.68870], [1198882800000, 0.68240], [1198969200000, 0.67940], [1199055600000, 0.67940], [1199142000000, 0.68030], [1199228400000, 0.68550], [1199314800000, 0.68240], [1199401200000, 0.67910], [1199487600000, 0.67830], [1199574000000, 0.67850], [1199660400000, 0.67850], [1199746800000, 0.67970], [1199833200000, 0.680], [1199919600000, 0.68030], [1200006000000, 0.68050], [1200092400000, 0.6760], [1200178800000, 0.6770], [1200265200000, 0.6770], [1200351600000, 0.67360], [1200438000000, 0.67260], [1200524400000, 0.67640], [1200610800000, 0.68210], [1200697200000, 0.68310], [1200783600000, 0.68420], [1200870000000, 0.68420], [1200956400000, 0.68870], [1201042800000, 0.69030], [1201129200000, 0.68480], [1201215600000, 0.68240], [1201302000000, 0.67880], [1201388400000, 0.68140], [1201474800000, 0.68140], [1201561200000, 0.67970], [1201647600000, 0.67690], [1201734000000, 0.67650], [1201820400000, 0.67330], [1201906800000, 0.67290], [1201993200000, 0.67580], [1202079600000, 0.67580], [1202166000000, 0.6750], [1202252400000, 0.6780], [1202338800000, 0.68330], [1202425200000, 0.68560], [1202511600000, 0.69030], [1202598000000, 0.68960], [1202684400000, 0.68960], [1202770800000, 0.68820], [1202857200000, 0.68790], [1202943600000, 0.68620], [1203030000000, 0.68520], [1203116400000, 0.68230], [1203202800000, 0.68130], [1203289200000, 0.68130], [1203375600000, 0.68220], [1203462000000, 0.68020], [1203548400000, 0.68020], [1203634800000, 0.67840], [1203721200000, 0.67480], [1203807600000, 0.67470], [1203894000000, 0.67470], [1203980400000, 0.67480], [1204066800000, 0.67330], [1204153200000, 0.6650], [1204239600000, 0.66110], [1204326000000, 0.65830], [1204412400000, 0.6590], [1204498800000, 0.6590], [1204585200000, 0.65810], [1204671600000, 0.65780], [1204758000000, 0.65740], [1204844400000, 0.65320], [1204930800000, 0.65020], [1205017200000, 0.65140], [1205103600000, 0.65140], [1205190000000, 0.65070], [1205276400000, 0.6510], [1205362800000, 0.64890], [1205449200000, 0.64240], [1205535600000, 0.64060], [1205622000000, 0.63820], [1205708400000, 0.63820], [1205794800000, 0.63410], [1205881200000, 0.63440], [1205967600000, 0.63780], [1206054000000, 0.64390], [1206140400000, 0.64780], [1206226800000, 0.64810], [1206313200000, 0.64810], [1206399600000, 0.64940], [1206486000000, 0.64380], [1206572400000, 0.63770], [1206658800000, 0.63290], [1206745200000, 0.63360], [1206831600000, 0.63330], [1206914400000, 0.63330], [1207000800000, 0.6330], [1207087200000, 0.63710], [1207173600000, 0.64030], [1207260000000, 0.63960], [1207346400000, 0.63640], [1207432800000, 0.63560], [1207519200000, 0.63560], [1207605600000, 0.63680], [1207692000000, 0.63570], [1207778400000, 0.63540], [1207864800000, 0.6320], [1207951200000, 0.63320], [1208037600000, 0.63280], [1208124000000, 0.63310], [1208210400000, 0.63420], [1208296800000, 0.63210], [1208383200000, 0.63020], [1208469600000, 0.62780], [1208556000000, 0.63080], [1208642400000, 0.63240], [1208728800000, 0.63240], [1208815200000, 0.63070], [1208901600000, 0.62770], [1208988000000, 0.62690], [1209074400000, 0.63350], [1209160800000, 0.63920], [1209247200000, 0.640], [1209333600000, 0.64010], [1209420000000, 0.63960], [1209506400000, 0.64070], [1209592800000, 0.64230], [1209679200000, 0.64290], [1209765600000, 0.64720], [1209852000000, 0.64850], [1209938400000, 0.64860], [1210024800000, 0.64670], [1210111200000, 0.64440], [1210197600000, 0.64670], [1210284000000, 0.65090], [1210370400000, 0.64780], [1210456800000, 0.64610], [1210543200000, 0.64610], [1210629600000, 0.64680], [1210716000000, 0.64490], [1210802400000, 0.6470], [1210888800000, 0.64610], [1210975200000, 0.64520], [1211061600000, 0.64220], [1211148000000, 0.64220], [1211234400000, 0.64250], [1211320800000, 0.64140], [1211407200000, 0.63660], [1211493600000, 0.63460], [1211580000000, 0.6350], [1211666400000, 0.63460], [1211752800000, 0.63460], [1211839200000, 0.63430], [1211925600000, 0.63460], [1212012000000, 0.63790], [1212098400000, 0.64160], [1212184800000, 0.64420], [1212271200000, 0.64310], [1212357600000, 0.64310], [1212444000000, 0.64350], [1212530400000, 0.6440], [1212616800000, 0.64730], [1212703200000, 0.64690], [1212789600000, 0.63860], [1212876000000, 0.63560], [1212962400000, 0.6340], [1213048800000, 0.63460], [1213135200000, 0.6430], [1213221600000, 0.64520], [1213308000000, 0.64670], [1213394400000, 0.65060], [1213480800000, 0.65040], [1213567200000, 0.65030], [1213653600000, 0.64810], [1213740000000, 0.64510], [1213826400000, 0.6450], [1213912800000, 0.64410], [1213999200000, 0.64140], [1214085600000, 0.64090], [1214172000000, 0.64090], [1214258400000, 0.64280], [1214344800000, 0.64310], [1214431200000, 0.64180], [1214517600000, 0.63710], [1214604000000, 0.63490], [1214690400000, 0.63330], [1214776800000, 0.63340], [1214863200000, 0.63380], [1214949600000, 0.63420], [1215036000000, 0.6320], [1215122400000, 0.63180], [1215208800000, 0.6370], [1215295200000, 0.63680], [1215381600000, 0.63680], [1215468000000, 0.63830], [1215554400000, 0.63710], [1215640800000, 0.63710], [1215727200000, 0.63550], [1215813600000, 0.6320], [1215900000000, 0.62770], [1215986400000, 0.62760], [1216072800000, 0.62910], [1216159200000, 0.62740], [1216245600000, 0.62930], [1216332000000, 0.63110], [1216418400000, 0.6310], [1216504800000, 0.63120], [1216591200000, 0.63120], [1216677600000, 0.63040], [1216764000000, 0.62940], [1216850400000, 0.63480], [1216936800000, 0.63780], [1217023200000, 0.63680], [1217109600000, 0.63680], [1217196000000, 0.63680], [1217282400000, 0.6360], [1217368800000, 0.6370], [1217455200000, 0.64180], [1217541600000, 0.64110], [1217628000000, 0.64350], [1217714400000, 0.64270], [1217800800000, 0.64270], [1217887200000, 0.64190], [1217973600000, 0.64460], [1218060000000, 0.64680], [1218146400000, 0.64870], [1218232800000, 0.65940], [1218319200000, 0.66660], [1218405600000, 0.66660], [1218492000000, 0.66780], [1218578400000, 0.67120], [1218664800000, 0.67050], [1218751200000, 0.67180], [1218837600000, 0.67840], [1218924000000, 0.68110], [1219010400000, 0.68110], [1219096800000, 0.67940], [1219183200000, 0.68040], [1219269600000, 0.67810], [1219356000000, 0.67560], [1219442400000, 0.67350], [1219528800000, 0.67630], [1219615200000, 0.67620], [1219701600000, 0.67770], [1219788000000, 0.68150], [1219874400000, 0.68020], [1219960800000, 0.6780], [1220047200000, 0.67960], [1220133600000, 0.68170], [1220220000000, 0.68170], [1220306400000, 0.68320], [1220392800000, 0.68770], [1220479200000, 0.69120], [1220565600000, 0.69140], [1220652000000, 0.70090], [1220738400000, 0.70120], [1220824800000, 0.7010], [1220911200000, 0.70050]
558
- ];
559
-
560
- oilprices = [];
561
- exchangerates = [];
562
-
563
-
564
- oilpricesFull.map(function(item, index) {
565
- if (index % 8 === 0) {
566
- oilprices.push(item);
567
- }
568
- });
569
-
570
- exchangeratesFull.map(function(item, index) {
571
- if (index % 8 === 0) {
572
- exchangerates.push(item);
573
- }
574
- });
575
-
576
-
577
-
578
- function euroFormatter(v, axis) {
579
- return v.toFixed(axis.tickDecimals) + "€";
580
- }
581
-
582
- function doPlot(position) {
583
- $.plot($("#flot-line-chart-multi"), [{
584
- data: oilprices,
585
- label: "Oil price ($)"
586
- }, {
587
- data: exchangerates,
588
- label: "USD/EUR exchange rate",
589
- yaxis: 2
590
- }], {
591
- xaxes: [{
592
- mode: 'time'
593
- }],
594
- yaxes: [{
595
- min: 0
596
- }, {
597
- // align if we are to the right
598
- alignTicksWithAxis: position == "right" ? 1 : null,
599
- position: position,
600
- tickFormatter: euroFormatter
601
- }],
602
- legend: {
603
- position: 'sw'
604
- },
605
- colors: [config.chart.colorPrimary.toString()],
606
- grid: {
607
- color: "#999999",
608
- hoverable: true,
609
- clickable: true,
610
- tickColor: "#D4D4D4",
611
- borderWidth:0,
612
- hoverable: true //IMPORTANT! this is needed for tooltip to work,
613
-
614
- },
615
- tooltip: true,
616
- tooltipOpts: {
617
- content: "%s for %x was %y",
618
- xDateFormat: "%y-%m-%d",
619
-
620
- onHover: function(flotItem, $tooltipEl) {
621
- // console.log(flotItem, $tooltipEl);
622
- }
623
- }
624
-
625
- });
626
- }
627
-
628
- doPlot("right");
629
-
630
- $("button").click(function() {
631
- doPlot($(this).text());
632
- });
633
-
634
- }
635
-
636
- drawFlotCharts();
637
-
638
- $(document).on("themechange", function(){
639
- drawFlotCharts();
640
- });
641
-
642
- });
643
- $(function() {
644
-
645
- if (!$('#morris-one-line-chart').length) {
646
- return false;
647
- }
648
-
649
- function drawMorrisCharts() {
650
-
651
- $('#morris-one-line-chart').empty();
652
-
653
- Morris.Line({
654
- element: 'morris-one-line-chart',
655
- data: [
656
- { year: '2008', value: 5 },
657
- { year: '2009', value: 10 },
658
- { year: '2010', value: 8 },
659
- { year: '2011', value: 22 },
660
- { year: '2012', value: 8 },
661
- { year: '2014', value: 10 },
662
- { year: '2015', value: 5 }
663
- ],
664
- xkey: 'year',
665
- ykeys: ['value'],
666
- resize: true,
667
- lineWidth:4,
668
- labels: ['Value'],
669
- lineColors: [config.chart.colorPrimary.toString()],
670
- pointSize:5,
671
- });
672
-
673
- $('#morris-area-chart').empty();
674
-
675
- Morris.Area({
676
- element: 'morris-area-chart',
677
- data: [{ period: '2010 Q1', iphone: 2666, ipad: null, itouch: 2647 },
678
- { period: '2010 Q2', iphone: 2778, ipad: 2294, itouch: 2441 },
679
- { period: '2010 Q3', iphone: 4912, ipad: 1969, itouch: 2501 },
680
- { period: '2010 Q4', iphone: 3767, ipad: 3597, itouch: 5689 },
681
- { period: '2011 Q1', iphone: 6810, ipad: 1914, itouch: 2293 },
682
- { period: '2011 Q2', iphone: 5670, ipad: 4293, itouch: 1881 },
683
- { period: '2011 Q3', iphone: 4820, ipad: 3795, itouch: 1588 },
684
- { period: '2011 Q4', iphone: 15073, ipad: 5967, itouch: 5175 },
685
- { period: '2012 Q1', iphone: 10687, ipad: 4460, itouch: 2028 },
686
- { period: '2012 Q2', iphone: 8432, ipad: 5713, itouch: 1791 } ],
687
- xkey: 'period',
688
- ykeys: ['iphone', 'ipad', 'itouch'],
689
- labels: ['iPhone', 'iPad', 'iPod Touch'],
690
- pointSize: 2,
691
- hideHover: 'auto',
692
- resize: true,
693
- lineColors: [
694
- tinycolor(config.chart.colorPrimary.toString()).lighten(10).toString(),
695
- tinycolor(config.chart.colorPrimary.toString()).darken(10).toString(),
696
- config.chart.colorPrimary.toString()
697
- ],
698
- lineWidth:2,
699
- pointSize:1,
700
- });
701
-
702
- $('#morris-donut-chart').empty();
703
-
704
- Morris.Donut({
705
- element: 'morris-donut-chart',
706
- data: [{ label: "Download Sales", value: 12 },
707
- { label: "In-Store Sales", value: 30 },
708
- { label: "Mail-Order Sales", value: 20 } ],
709
- resize: true,
710
- colors: [
711
- tinycolor(config.chart.colorPrimary.toString()).lighten(10).toString(),
712
- tinycolor(config.chart.colorPrimary.toString()).darken(10).toString(),
713
- config.chart.colorPrimary.toString()
714
- ],
715
- });
716
-
717
- $('#morris-bar-chart').empty();
718
-
719
- Morris.Bar({
720
- element: 'morris-bar-chart',
721
- data: [{ y: '2006', a: 60, b: 50 },
722
- { y: '2007', a: 75, b: 65 },
723
- { y: '2008', a: 50, b: 40 },
724
- { y: '2009', a: 75, b: 65 },
725
- { y: '2010', a: 50, b: 40 },
726
- { y: '2011', a: 75, b: 65 },
727
- { y: '2012', a: 100, b: 90 } ],
728
- xkey: 'y',
729
- ykeys: ['a', 'b'],
730
- labels: ['Series A', 'Series B'],
731
- hideHover: 'auto',
732
- resize: true,
733
- barColors: [
734
- config.chart.colorPrimary.toString(),
735
- tinycolor(config.chart.colorPrimary.toString()).darken(10).toString()
736
- ],
737
- });
738
-
739
- $('#morris-line-chart').empty();
740
-
741
- Morris.Line({
742
- element: 'morris-line-chart',
743
- data: [{ y: '2006', a: 100, b: 90 },
744
- { y: '2007', a: 75, b: 65 },
745
- { y: '2008', a: 50, b: 40 },
746
- { y: '2009', a: 75, b: 65 },
747
- { y: '2010', a: 50, b: 40 },
748
- { y: '2011', a: 75, b: 65 },
749
- { y: '2012', a: 100, b: 90 } ],
750
- xkey: 'y',
751
- ykeys: ['a', 'b'],
752
- labels: ['Series A', 'Series B'],
753
- hideHover: 'auto',
754
- resize: true,
755
- lineColors: [
756
- config.chart.colorPrimary.toString(),
757
- tinycolor(config.chart.colorPrimary.toString()).darken(10).toString()
758
- ],
759
- });
760
- }
761
-
762
- drawMorrisCharts();
763
-
764
- $(document).on("themechange", function(){
765
- drawMorrisCharts();
766
- });
767
- });
768
- $(function() {
769
-
770
- if (!$('#dashboard-visits-chart').length) {
771
- return false;
772
- }
773
-
774
- // drawing visits chart
775
- drawVisitsChart();
776
-
777
- var el = null;
778
- var item = 'visits';
779
-
780
- $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
781
-
782
- el = e.target;
783
- item = $(el).attr('href').replace('#', '');
784
- switchHistoryCharts(item);
785
-
786
- });
787
-
788
- $(document).on("themechange", function(){
789
- switchHistoryCharts(item);
790
- });
791
-
792
- function switchHistoryCharts(item){
793
- var chartSelector = "#dashboard-" + item + "-chart";
794
-
795
- if ($(chartSelector).has('svg').length) {
796
- $(chartSelector).empty();
797
- }
798
-
799
- switch(item){
800
- case 'visits':
801
- drawVisitsChart();
802
- break;
803
- case 'downloads':
804
- drawDownloadsChart();
805
- break;
806
- }
807
- }
808
-
809
- function drawVisitsChart(){
810
- var dataVisits = [
811
- { x: '2015-09-01', y: 70},
812
- { x: '2015-09-02', y: 75 },
813
- { x: '2015-09-03', y: 50},
814
- { x: '2015-09-04', y: 75 },
815
- { x: '2015-09-05', y: 50 },
816
- { x: '2015-09-06', y: 75 },
817
- { x: '2015-09-07', y: 86 }
818
- ];
819
-
820
-
821
- Morris.Line({
822
- element: 'dashboard-visits-chart',
823
- data: dataVisits,
824
- xkey: 'x',
825
- ykeys: ['y'],
826
- ymin: 'auto 40',
827
- labels: ['Visits'],
828
- xLabels: "day",
829
- hideHover: 'auto',
830
- yLabelFormat: function (y) {
831
- // Only integers
832
- if (y === parseInt(y, 10)) {
833
- return y;
834
- }
835
- else {
836
- return '';
837
- }
838
- },
839
- resize: true,
840
- lineColors: [
841
- config.chart.colorSecondary.toString(),
842
- ],
843
- pointFillColors: [
844
- config.chart.colorPrimary.toString(),
845
- ]
846
- });
847
- }
848
-
849
- function drawDownloadsChart(){
850
-
851
- var dataDownloads = [
852
- {
853
- year: '2006',
854
- downloads: 1300
855
- },
856
- {
857
- year: '2007',
858
- downloads: 1526
859
- },
860
- {
861
- year: '2008',
862
- downloads: 2000
863
- },
864
- {
865
- year: '2009',
866
- downloads: 1800
867
- },
868
- {
869
- year: '2010',
870
- downloads: 1650
871
- },
872
- {
873
- year: '2011',
874
- downloads: 620
875
- },
876
- {
877
- year: '2012',
878
- downloads: 1000
879
- },
880
- {
881
- year: '2013',
882
- downloads: 1896
883
- },
884
- {
885
- year: '2014',
886
- downloads: 850
887
- },
888
- {
889
- year: '2015',
890
- downloads: 1500
891
- }
892
- ];
893
-
894
-
895
- Morris.Bar({
896
- element: 'dashboard-downloads-chart',
897
- data: dataDownloads,
898
- xkey: 'year',
899
- ykeys: ['downloads'],
900
- labels: ['Downloads'],
901
- hideHover: 'auto',
902
- resize: true,
903
- barColors: [
904
- config.chart.colorPrimary.toString(),
905
- tinycolor(config.chart.colorPrimary.toString()).darken(10).toString()
906
- ],
907
- });
908
- }
909
- });
910
-
911
-
912
-
913
-
914
- $(function() {
915
-
916
-
917
- function drawDashboardItemsListSparklines(){
918
- $(".dashboard-page .items .sparkline").each(function() {
919
- var type = $(this).data('type');
920
-
921
- // There is predefined data
922
- if ($(this).data('data')) {
923
- var data = $(this).data('data').split(',').map(function(item) {
924
- if (item.indexOf(":") > 0) {
925
- return item.split(":");
926
- }
927
- else {
928
- return item;
929
- }
930
- });
931
- }
932
- // Generate random data
933
- else {
934
- var data = [];
935
- for (var i = 0; i < 17; i++) {
936
- data.push(Math.round(100 * Math.random()));
937
- }
938
- }
939
-
940
-
941
- $(this).sparkline(data, {
942
- barColor: config.chart.colorPrimary.toString(),
943
- height: $(this).height(),
944
- type: type
945
- });
946
- });
947
- }
948
-
949
- drawDashboardItemsListSparklines();
950
-
951
- $(document).on("themechange", function(){
952
- drawDashboardItemsListSparklines();
953
- });
954
- });
955
- $(function() {
956
-
957
- var $dashboardSalesBreakdownChart = $('#dashboard-sales-breakdown-chart');
958
-
959
- if (!$dashboardSalesBreakdownChart.length) {
960
- return false;
961
- }
962
-
963
- function drawSalesChart(){
964
-
965
- $dashboardSalesBreakdownChart.empty();
966
-
967
- Morris.Donut({
968
- element: 'dashboard-sales-breakdown-chart',
969
- data: [{ label: "Download Sales", value: 12 },
970
- { label: "In-Store Sales", value: 30 },
971
- { label: "Mail-Order Sales", value: 20 } ],
972
- resize: true,
973
- colors: [
974
- tinycolor(config.chart.colorPrimary.toString()).lighten(10).toString(),
975
- tinycolor(config.chart.colorPrimary.toString()).darken(8).toString(),
976
- config.chart.colorPrimary.toString()
977
- ],
978
- });
979
-
980
- var $sameheightContainer = $dashboardSalesBreakdownChart.closest(".sameheight-container");
981
-
982
- setSameHeights($sameheightContainer);
983
- }
984
-
985
- drawSalesChart();
986
-
987
- $(document).on("themechange", function(){
988
- drawSalesChart();
989
- });
990
-
991
- })
992
- $(function() {
993
-
994
- var $dashboardSalesMap = $('#dashboard-sales-map');
995
-
996
- if (!$dashboardSalesMap.length) {
997
- return false;
998
- }
999
-
1000
- function drawSalesMap() {
1001
-
1002
- $dashboardSalesMap.empty();
1003
-
1004
- var color = config.chart.colorPrimary.toHexString();
1005
- var darkColor = tinycolor(config.chart.colorPrimary.toString()).darken(40).toHexString();
1006
- var selectedColor = tinycolor(config.chart.colorPrimary.toString()).darken(10).toHexString();
1007
-
1008
- var sales_data = {
1009
- us: 2000,
1010
- ru: 2000,
1011
- gb: 10000,
1012
- fr: 10000,
1013
- de: 10000,
1014
- cn: 10000,
1015
- in: 10000,
1016
- sa: 10000,
1017
- ca: 10000,
1018
- br: 5000,
1019
- au: 5000
1020
- };
1021
-
1022
- $dashboardSalesMap.vectorMap({
1023
- map: 'world_en',
1024
- backgroundColor: 'transparent',
1025
- color: '#E5E3E5',
1026
- hoverOpacity: 0.7,
1027
- selectedColor: selectedColor,
1028
- enableZoom: true,
1029
- showTooltip: true,
1030
- values: sales_data,
1031
- scaleColors: [ color, darkColor],
1032
- normalizeFunction: 'linear'
1033
- });
1034
- }
1035
-
1036
- drawSalesMap();
1037
-
1038
- $(document).on("themechange", function(){
1039
- drawSalesMap();
1040
- });
1041
- });
1042
- $(function() {
1043
-
1044
- $('.actions-list > li').on('click', '.check', function(e){
1045
- e.preventDefault();
1046
-
1047
- $(this).parents('.tasks-item')
1048
- .find('.checkbox')
1049
- .prop("checked", true);
1050
-
1051
- removeActionList();
1052
- });
1053
-
1054
- });
1055
- $(function(){
1056
-
1057
- // set sortable options
1058
- $('.images-container').sortable({
1059
- animation: 150,
1060
- handle: ".control-btn.move",
1061
- draggable: ".image-container",
1062
- onMove: function (evt) {
1063
- var $relatedElem = $(evt.related);
1064
-
1065
- if ($relatedElem.hasClass('add-image')) {
1066
- return false;
1067
- }
1068
- }
1069
- });
1070
-
1071
-
1072
- $controlsButtons = $('.controls');
1073
-
1074
- $controlsButtonsStar = $controlsButtons.find('.star');
1075
- $controlsButtonsRemove = $controlsButtons.find('.remove');
1076
-
1077
- $controlsButtonsStar.on('click',function(e){
1078
- e.preventDefault();
1079
-
1080
- $controlsButtonsStar.removeClass('active');
1081
- $controlsButtonsStar.parents('.image-container').removeClass('main');
1082
-
1083
- $(this).addClass('active');
1084
-
1085
- $(this).parents('.image-container').addClass('main');
1086
- })
1087
-
1088
- })
1089
- $(function() {
1090
-
1091
- if (!$('#select-all-items').length) {
1092
- return false;
1093
- }
1094
-
1095
-
1096
- $('#select-all-items').on('change', function() {
1097
- var $this = $(this).children(':checkbox').get(0);
1098
-
1099
- $(this).parents('li')
1100
- .siblings()
1101
- .find(':checkbox')
1102
- .prop('checked', $this.checked)
1103
- .val($this.checked)
1104
- .change();
1105
- });
1106
-
1107
-
1108
- function drawItemsListSparklines(){
1109
- $(".items-list-page .sparkline").each(function() {
1110
- var type = $(this).data('type');
1111
-
1112
- // Generate random data
1113
- var data = [];
1114
- for (var i = 0; i < 17; i++) {
1115
- data.push(Math.round(100 * Math.random()));
1116
- }
1117
-
1118
- $(this).sparkline(data, {
1119
- barColor: config.chart.colorPrimary.toString(),
1120
- height: $(this).height(),
1121
- type: type
1122
- });
1123
- });
1124
- }
1125
-
1126
- drawItemsListSparklines();
1127
-
1128
- $(document).on("themechange", function(){
1129
- drawItemsListSparklines();
1130
- });
1131
-
1132
- });
1133
- //LoginForm validation
1134
- $(function() {
1135
- if (!$('.form-control').length) {
1136
- return false;
1137
- }
1138
-
1139
- $('.form-control').focus(function() {
1140
- $(this).siblings('.input-group-addon').addClass('focus');
1141
- });
1142
-
1143
- $('.form-control').blur(function() {
1144
- $(this).siblings('.input-group-addon').removeClass('focus');
1145
- });
1146
- });
1147
- $(function() {
1148
-
1149
- $(".wyswyg").each(function() {
1150
-
1151
- var $toolbar = $(this).find(".toolbar");
1152
- var $editor = $(this).find(".editor");
1153
-
1154
-
1155
- var editor = new Quill($editor.get(0), {
1156
- theme: 'snow'
1157
- });
1158
-
1159
- editor.addModule('toolbar', {
1160
- container: $toolbar.get(0) // Selector for toolbar container
1161
- });
1162
-
1163
-
1164
-
1165
- });
1166
-
1167
- });
1168
- $(function () {
1169
-
1170
- $('#sidebar-menu, #customize-menu').metisMenu({
1171
- activeClass: 'open'
1172
- });
1173
-
1174
-
1175
- $('#sidebar-collapse-btn').on('click', function(event){
1176
- event.preventDefault();
1177
-
1178
- $("#app").toggleClass("sidebar-open");
1179
- });
1180
-
1181
- $("#sidebar-overlay").on('click', function() {
1182
- $("#app").removeClass("sidebar-open");
1183
- });
1184
-
1185
- });
1186
- var modalMedia = {
1187
- $el: $("#modal-media"),
1188
- result: {},
1189
- options: {},
1190
- open: function(options) {
1191
- options = options || {};
1192
- this.options = options;
1193
-
1194
-
1195
- this.$el.modal('show');
1196
- },
1197
- close: function() {
1198
- if ($.isFunction(this.options.beforeClose)) {
1199
- this.options.beforeClose(this.result);
1200
- }
1201
-
1202
- this.$el.modal('hide');
1203
-
1204
- if ($.isFunction(this.options.afterClose)) {
1205
- this.options.beforeClose(this.result);
1206
- }
1207
- }
1208
- };
1209
- $(function() {
1210
- $('.nav-profile > li > a').on('click', function() {
1211
- var $el = $(this).next();
1212
-
1213
- animate({
1214
- name: 'flipInX',
1215
- selector: $el
1216
- });
1217
- });
1218
- })
1219
- $(function () {
1220
-
1221
- // Local storage settings
1222
- var themeSettings = getThemeSettings();
1223
-
1224
- // Elements
1225
-
1226
- var $app = $('#app');
1227
- var $styleLink = $('#theme-style');
1228
- var $customizeMenu = $('#customize-menu');
1229
-
1230
- // Color switcher
1231
- var $customizeMenuColorBtns = $customizeMenu.find('.color-item');
1232
-
1233
- // Position switchers
1234
- var $customizeMenuRadioBtns = $customizeMenu.find('.radio');
1235
-
1236
-
1237
- // /////////////////////////////////////////////////
1238
-
1239
- // Initial state
1240
-
1241
- // On setting event, set corresponding options
1242
-
1243
- // Update customize view based on options
1244
-
1245
- // Update theme based on options
1246
-
1247
- /************************************************
1248
- * Initial State
1249
- *************************************************/
1250
-
1251
- setThemeSettings();
1252
-
1253
- /************************************************
1254
- * Events
1255
- *************************************************/
1256
-
1257
- // set theme type
1258
- $customizeMenuColorBtns.on('click', function() {
1259
- themeSettings.themeName = $(this).data('theme');
1260
-
1261
- setThemeSettings();
1262
- });
1263
-
1264
-
1265
- $customizeMenuRadioBtns.on('click', function() {
1266
-
1267
- var optionName = $(this).prop('name');
1268
- var value = $(this).val();
1269
-
1270
- themeSettings[optionName] = value;
1271
-
1272
- setThemeSettings();
1273
- });
1274
-
1275
- function setThemeSettings() {
1276
- setThemeState()
1277
- .delay(config.delayTime)
1278
- .queue(function (next) {
1279
-
1280
- setThemeColor();
1281
- setThemeControlsState();
1282
- saveThemeSettings();
1283
-
1284
- $(document).trigger("themechange");
1285
-
1286
- next();
1287
- });
1288
- }
1289
-
1290
- /************************************************
1291
- * Update theme based on options
1292
- *************************************************/
1293
-
1294
- function setThemeState() {
1295
- // set theme type
1296
- if (themeSettings.themeName) {
1297
- $styleLink.attr('href', 'css/app-' + themeSettings.themeName + '.css');
1298
- }
1299
- else {
1300
- $styleLink.attr('href', 'css/app.css');
1301
- }
1302
-
1303
- // App classes
1304
- $app.removeClass('header-fixed footer-fixed sidebar-fixed');
1305
-
1306
- // set header
1307
- $app.addClass(themeSettings.headerPosition);
1308
-
1309
- // set footer
1310
- $app.addClass(themeSettings.footerPosition);
1311
-
1312
- // set footer
1313
- $app.addClass(themeSettings.sidebarPosition);
1314
-
1315
- return $app;
1316
- }
1317
-
1318
- /************************************************
1319
- * Update theme controls based on options
1320
- *************************************************/
1321
-
1322
- function setThemeControlsState() {
1323
- // set color switcher
1324
- $customizeMenuColorBtns.each(function() {
1325
- if($(this).data('theme') === themeSettings.themeName) {
1326
- $(this).addClass('active');
1327
- }
1328
- else {
1329
- $(this).removeClass('active');
1330
- }
1331
- });
1332
-
1333
- // set radio buttons
1334
- $customizeMenuRadioBtns.each(function() {
1335
- var name = $(this).prop('name');
1336
- var value = $(this).val();
1337
-
1338
- if (themeSettings[name] === value) {
1339
- $(this).prop("checked", true );
1340
- }
1341
- else {
1342
- $(this).prop("checked", false );
1343
- }
1344
- });
1345
- }
1346
-
1347
- /************************************************
1348
- * Update theme color
1349
- *************************************************/
1350
- function setThemeColor(){
1351
- config.chart.colorPrimary = tinycolor($ref.find(".chart .color-primary").css("color"));
1352
- config.chart.colorSecondary = tinycolor($ref.find(".chart .color-secondary").css("color"));
1353
- }
1354
-
1355
- /************************************************
1356
- * Storage Functions
1357
- *************************************************/
1358
-
1359
- function getThemeSettings() {
1360
- var settings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {};
1361
-
1362
- settings.headerPosition = settings.headerPosition || '';
1363
- settings.sidebarPosition = settings.sidebarPosition || '';
1364
- settings.footerPosition = settings.footerPosition || '';
1365
-
1366
- return settings;
1367
- }
1368
-
1369
- function saveThemeSettings() {
1370
- localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
1371
- }
1372
-
1373
- });
1374
- $(function() {
1375
-
1376
- $("body").addClass("loaded");
1377
-
1378
- });
1379
-
1380
-
1381
- /***********************************************
1382
- * NProgress Settings
1383
- ***********************************************/
1384
-
1385
- // start load bar
1386
- NProgress.start();
1387
-
1388
- // end loading bar
1
+ var config = window.config = {};
2
+
3
+ // Config reference element
4
+ var $ref = $("#ref");
5
+
6
+ // Configure responsive bootstrap toolkit
7
+ config.ResponsiveBootstrapToolkitVisibilityDivs = {
8
+ 'xs': $('<div class="device-xs hidden-sm-up"></div>'),
9
+ 'sm': $('<div class="device-sm hidden-xs-down hidden-md-up"></div>'),
10
+ 'md': $('<div class="device-md hidden-sm-down hidden-lg-up"></div>'),
11
+ 'lg': $('<div class="device-lg hidden-md-down hidden-xl-up"></div>'),
12
+ 'xl': $('<div class="device-xl hidden-lg-down "></div>'),
13
+ };
14
+
15
+ ResponsiveBootstrapToolkit.use('Custom', config.ResponsiveBootstrapToolkitVisibilityDivs);
16
+
17
+ //validation configuration
18
+ config.validations = {
19
+ debug: true,
20
+ errorClass:'has-error',
21
+ validClass:'success',
22
+ errorElement:"span",
23
+
24
+ // add error class
25
+ highlight: function(element, errorClass, validClass) {
26
+ $(element).parents("div.form-group")
27
+ .addClass(errorClass)
28
+ .removeClass(validClass);
29
+ },
30
+
31
+ // add error class
32
+ unhighlight: function(element, errorClass, validClass) {
33
+ $(element).parents(".has-error")
34
+ .removeClass(errorClass)
35
+ .addClass(validClass);
36
+ },
37
+
38
+ // submit handler
39
+ submitHandler: function(form) {
40
+ form.submit();
41
+ }
42
+ }
43
+
44
+ //delay time configuration
45
+ config.delayTime = 50;
46
+
47
+ // chart configurations
48
+ config.chart = {};
49
+
50
+ config.chart.colorPrimary = tinycolor($ref.find(".chart .color-primary").css("color"));
51
+ config.chart.colorSecondary = tinycolor($ref.find(".chart .color-secondary").css("color"));
52
+ $(function() {
53
+ animate({
54
+ name: 'flipInY',
55
+ selector: '.error-card > .error-title-block'
56
+ });
57
+
58
+
59
+ setTimeout(function(){
60
+ var $el = $('.error-card > .error-container');
61
+
62
+ animate({
63
+ name: 'fadeInUp',
64
+ selector: $el
65
+ });
66
+
67
+ $el.addClass('visible');
68
+ }, 1000);
69
+ })
70
+ //LoginForm validation
71
+ $(function() {
72
+ if (!$('#login-form').length) {
73
+ return false;
74
+ }
75
+
76
+ var loginValidationSettings = {
77
+ rules: {
78
+ username: {
79
+ required: true,
80
+ email: true
81
+ },
82
+ password: "required",
83
+ agree: "required"
84
+ },
85
+ messages: {
86
+ username: {
87
+ required: "Please enter username",
88
+ email: "Please enter a valid email address"
89
+ },
90
+ password: "Please enter password",
91
+ agree: "Please accept our policy"
92
+ },
93
+ invalidHandler: function() {
94
+ animate({
95
+ name: 'shake',
96
+ selector: '.auth-container > .card'
97
+ });
98
+ }
99
+ }
100
+
101
+ $.extend(loginValidationSettings, config.validations);
102
+
103
+ $('#login-form').validate(loginValidationSettings);
104
+ })
105
+ //LoginForm validation
106
+ $(function() {
107
+ if (!$('#reset-form').length) {
108
+ return false;
109
+ }
110
+
111
+ var resetValidationSettings = {
112
+ rules: {
113
+ email1: {
114
+ required: true,
115
+ email: true
116
+ }
117
+ },
118
+ messages: {
119
+ email1: {
120
+ required: "Please enter email address",
121
+ email: "Please enter a valid email address"
122
+ }
123
+ },
124
+ invalidHandler: function() {
125
+ animate({
126
+ name: 'shake',
127
+ selector: '.auth-container > .card'
128
+ });
129
+ }
130
+ }
131
+
132
+ $.extend(resetValidationSettings, config.validations);
133
+
134
+ $('#reset-form').validate(resetValidationSettings);
135
+ })
136
+ //LoginForm validation
137
+ $(function() {
138
+ if (!$('#signup-form').length) {
139
+ return false;
140
+ }
141
+
142
+ var signupValidationSettings = {
143
+ rules: {
144
+ firstname: {
145
+ required: true,
146
+ },
147
+ lastname: {
148
+ required: true,
149
+ },
150
+ email: {
151
+ required: true,
152
+ email: true
153
+ },
154
+ password: {
155
+ required: true,
156
+ minlength: 8
157
+ },
158
+ retype_password: {
159
+ required: true,
160
+ minlength: 8,
161
+ equalTo: "#password"
162
+ },
163
+ agree: {
164
+ required: true,
165
+ }
166
+ },
167
+ groups: {
168
+ name: "firstname lastname",
169
+ pass: "password retype_password",
170
+ },
171
+ errorPlacement: function(error, element) {
172
+ if (
173
+ element.attr("name") == "firstname" ||
174
+ element.attr("name") == "lastname"
175
+ ) {
176
+ error.insertAfter($("#lastname").closest('.row'));
177
+ element.parents("div.form-group")
178
+ .addClass('has-error');
179
+ }
180
+ else if (
181
+ element.attr("name") == "password" ||
182
+ element.attr("name") == "retype_password"
183
+ ) {
184
+ error.insertAfter($("#retype_password").closest('.row'));
185
+ element.parents("div.form-group")
186
+ .addClass('has-error');
187
+ }
188
+ else if (element.attr("name") == "agree") {
189
+ error.insertAfter("#agree-text");
190
+ }
191
+ else {
192
+ error.insertAfter(element);
193
+ }
194
+ },
195
+ messages: {
196
+ firstname: "Please enter firstname and lastname",
197
+ lastname: "Please enter firstname and lastname",
198
+ email: {
199
+ required: "Please enter email",
200
+ email: "Please enter a valid email address"
201
+ },
202
+ password: {
203
+ required: "Please enter password fields.",
204
+ minlength: "Passwords should be at least 8 characters."
205
+ },
206
+ retype_password: {
207
+ required: "Please enter password fields.",
208
+ minlength: "Passwords should be at least 8 characters."
209
+ },
210
+ agree: "Please accept our policy"
211
+ },
212
+ invalidHandler: function() {
213
+ animate({
214
+ name: 'shake',
215
+ selector: '.auth-container > .card'
216
+ });
217
+ }
218
+ }
219
+
220
+ $.extend(signupValidationSettings, config.validations);
221
+
222
+ $('#signup-form').validate(signupValidationSettings);
223
+ });
224
+ /***********************************************
225
+ * Animation Settings
226
+ ***********************************************/
227
+ function animate(options) {
228
+ var animationName = "animated " + options.name;
229
+ var animationEnd = "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend";
230
+ $(options.selector)
231
+ .addClass(animationName)
232
+ .one(animationEnd,
233
+ function(){
234
+ $(this).removeClass(animationName);
235
+ }
236
+ );
237
+ }
238
+
239
+ $(function() {
240
+ var $itemActions = $(".item-actions-dropdown");
241
+
242
+ $(document).on('click',function(e) {
243
+ if (!$(e.target).closest('.item-actions-dropdown').length) {
244
+ $itemActions.removeClass('active');
245
+ }
246
+ });
247
+
248
+ $('.item-actions-toggle-btn').on('click',function(e){
249
+ e.preventDefault();
250
+
251
+ var $thisActionList = $(this).closest('.item-actions-dropdown');
252
+
253
+ $itemActions.not($thisActionList).removeClass('active');
254
+
255
+ $thisActionList.toggleClass('active');
256
+ });
257
+ });
258
+
259
+ /***********************************************
260
+ * NProgress Settings
261
+ ***********************************************/
262
+ var npSettings = {
263
+ easing: 'ease',
264
+ speed: 500
265
+ }
266
+
267
+ NProgress.configure(npSettings);
268
+ $(function() {
269
+ setSameHeights();
270
+
271
+ var resizeTimer;
272
+
273
+ $(window).resize(function() {
274
+ clearTimeout(resizeTimer);
275
+ resizeTimer = setTimeout(setSameHeights, 150);
276
+ });
277
+ });
278
+
279
+
280
+ function setSameHeights($container) {
281
+
282
+ $container = $container || $('.sameheight-container');
283
+
284
+ var viewport = ResponsiveBootstrapToolkit.current();
285
+
286
+ $container.each(function() {
287
+
288
+ var $items = $(this).find(".sameheight-item");
289
+
290
+ // Get max height of items in container
291
+ var maxHeight = 0;
292
+
293
+ $items.each(function() {
294
+ $(this).css({height: 'auto'});
295
+ maxHeight = Math.max(maxHeight, $(this).innerHeight());
296
+ });
297
+
298
+
299
+ // Set heights of items
300
+ $items.each(function() {
301
+ // Ignored viewports for item
302
+ var excludedStr = $(this).data('exclude') || '';
303
+ var excluded = excludedStr.split(',');
304
+
305
+ // Set height of element if it's not excluded on
306
+ if (excluded.indexOf(viewport) === -1) {
307
+ $(this).innerHeight(maxHeight);
308
+ }
309
+ });
310
+ });
311
+ }
312
+
313
+ //Flot Bar Chart
314
+ $(function() {
315
+
316
+ if (!$('#flot-bar-chart').length) {
317
+ return false;
318
+ }
319
+
320
+ function drawFlotCharts() {
321
+
322
+ var barOptions = {
323
+ series: {
324
+ bars: {
325
+ show: true,
326
+ barWidth: 0.6,
327
+ fill: true,
328
+ fillColor: {
329
+ colors: [{
330
+ opacity: 0.8
331
+ }, {
332
+ opacity: 0.8
333
+ }]
334
+ }
335
+ }
336
+ },
337
+ xaxis: {
338
+ tickDecimals: 0
339
+ },
340
+ colors: [config.chart.colorPrimary],
341
+ grid: {
342
+ color: "#999999",
343
+ hoverable: true,
344
+ clickable: true,
345
+ tickColor: "#D4D4D4",
346
+ borderWidth:0
347
+ },
348
+ legend: {
349
+ show: false
350
+ },
351
+ tooltip: true,
352
+ tooltipOpts: {
353
+ content: "x: %x, y: %y"
354
+ }
355
+ };
356
+ var barData = {
357
+ label: "bar",
358
+ data: [
359
+ [1, 34],
360
+ [2, 25],
361
+ [3, 19],
362
+ [4, 34],
363
+ [5, 32],
364
+ [6, 44]
365
+ ]
366
+ };
367
+ $.plot($("#flot-bar-chart"), [barData], barOptions);
368
+
369
+
370
+ // Flot line chart
371
+ var lineOptions = {
372
+ series: {
373
+ lines: {
374
+ show: true,
375
+ lineWidth: 2,
376
+ fill: true,
377
+ fillColor: {
378
+ colors: [{
379
+ opacity: 0.0
380
+ }, {
381
+ opacity: 0.0
382
+ }]
383
+ }
384
+ }
385
+ },
386
+ xaxis: {
387
+ tickDecimals: 0
388
+ },
389
+ colors: [config.chart.colorPrimary],
390
+ grid: {
391
+ color: "#999999",
392
+ hoverable: true,
393
+ clickable: true,
394
+ tickColor: "#D4D4D4",
395
+ borderWidth:0
396
+ },
397
+ legend: {
398
+ show: false
399
+ },
400
+ tooltip: true,
401
+ tooltipOpts: {
402
+ content: "x: %x, y: %y"
403
+ }
404
+ };
405
+ var barData = {
406
+ label: "bar",
407
+ data: [
408
+ [1, 34],
409
+ [2, 25],
410
+ [3, 19],
411
+ [4, 34],
412
+ [5, 32],
413
+ [6, 44]
414
+ ]
415
+ };
416
+ $.plot($("#flot-line-chart"), [barData], lineOptions);
417
+
418
+ //Flot Pie Chart
419
+ var data = [{
420
+ label: "Sales 1",
421
+ data: 21,
422
+ color: tinycolor(config.chart.colorPrimary.toString()).lighten(20),
423
+ }, {
424
+ label: "Sales 2",
425
+ data: 15,
426
+ color: tinycolor(config.chart.colorPrimary.toString()).lighten(10),
427
+ }, {
428
+ label: "Sales 3",
429
+ data: 7,
430
+ color: tinycolor(config.chart.colorPrimary.toString()),
431
+ }, {
432
+ label: "Sales 4",
433
+ data: 52,
434
+ color: tinycolor(config.chart.colorPrimary.toString()).darken(10),
435
+ }];
436
+
437
+ var plotObj = $.plot($("#flot-pie-chart"), data, {
438
+ series: {
439
+ pie: {
440
+ show: true
441
+ }
442
+ },
443
+ grid: {
444
+ hoverable: true
445
+ },
446
+ tooltip: true,
447
+ tooltipOpts: {
448
+ content: "%p.0%, %s", // show percentages, rounding to 2 decimal places
449
+ shifts: {
450
+ x: 20,
451
+ y: 0
452
+ },
453
+ defaultTheme: false
454
+ }
455
+ });
456
+
457
+
458
+ //live chart example
459
+ var container = $("#flot-line-chart-moving");
460
+ container.empty();
461
+ // Determine how many data points to keep based on the placeholder's initial size;
462
+ // this gives us a nice high-res plot while avoiding more than one point per pixel.
463
+
464
+ var maximum = container.outerWidth() / 10 || 100;
465
+
466
+ //
467
+
468
+ var data = [];
469
+
470
+ function getRandomData() {
471
+
472
+ if (data.length) {
473
+ data = data.slice(1);
474
+ }
475
+
476
+ while (data.length < maximum) {
477
+ var previous = data.length ? data[data.length - 1] : 50;
478
+ var y = previous + Math.random() * 10 - 5;
479
+ data.push(y < 0 ? 0 : y > 100 ? 100 : y);
480
+ }
481
+
482
+ // zip the generated y values with the x values
483
+
484
+ var res = [];
485
+ for (var i = 0; i < data.length; ++i) {
486
+ res.push([i, data[i]])
487
+ }
488
+
489
+ return res;
490
+ }
491
+
492
+ series = [{
493
+ data: getRandomData(),
494
+ lines: {
495
+ fill: true
496
+ }
497
+ }];
498
+
499
+
500
+ var plot = $.plot(container, series, {
501
+ grid: {
502
+
503
+ color: "#999999",
504
+ tickColor: "#D4D4D4",
505
+ borderWidth:0,
506
+ minBorderMargin: 20,
507
+ labelMargin: 10,
508
+ backgroundColor: {
509
+ colors: ["#ffffff", "#ffffff"]
510
+ },
511
+ margin: {
512
+ top: 8,
513
+ bottom: 20,
514
+ left: 20
515
+ },
516
+ markings: function(axes) {
517
+ var markings = [];
518
+ var xaxis = axes.xaxis;
519
+ for (var x = Math.floor(xaxis.min); x < xaxis.max; x += xaxis.tickSize * 2) {
520
+ markings.push({
521
+ xaxis: {
522
+ from: x,
523
+ to: x + xaxis.tickSize
524
+ },
525
+ color: "#fff"
526
+ });
527
+ }
528
+ return markings;
529
+ }
530
+ },
531
+ colors: [config.chart.colorPrimary.toString()],
532
+ xaxis: {
533
+ tickFormatter: function() {
534
+ return "";
535
+ }
536
+ },
537
+ yaxis: {
538
+ min: 0,
539
+ max: 110
540
+ },
541
+ legend: {
542
+ show: true
543
+ }
544
+ });
545
+
546
+ // Update the random dataset at 25FPS for a smoothly-animating chart
547
+
548
+ setInterval(function updateRandom() {
549
+ series[0].data = getRandomData();
550
+ plot.setData(series);
551
+ plot.draw();
552
+ }, 40);
553
+
554
+
555
+ //Flot Multiple Axes Line Chart
556
+ var oilpricesFull = [ [1167692400000, 61.05], [1167778800000, 58.32], [1167865200000, 57.35], [1167951600000, 56.31], [1168210800000, 55.55], [1168297200000, 55.64], [1168383600000, 54.02], [1168470000000, 51.88], [1168556400000, 52.99], [1168815600000, 52.99], [1168902000000, 51.21], [1168988400000, 52.24], [1169074800000, 50.48], [1169161200000, 51.99], [1169420400000, 51.13], [1169506800000, 55.04], [1169593200000, 55.37], [1169679600000, 54.23], [1169766000000, 55.42], [1170025200000, 54.01], [1170111600000, 56.97], [1170198000000, 58.14], [1170284400000, 58.14], [1170370800000, 59.02], [1170630000000, 58.74], [1170716400000, 58.88], [1170802800000, 57.71], [1170889200000, 59.71], [1170975600000, 59.89], [1171234800000, 57.81], [1171321200000, 59.06], [1171407600000, 58.00], [1171494000000, 57.99], [1171580400000, 59.39], [1171839600000, 59.39], [1171926000000, 58.07], [1172012400000, 60.07], [1172098800000, 61.14], [1172444400000, 61.39], [1172530800000, 61.46], [1172617200000, 61.79], [1172703600000, 62.00], [1172790000000, 60.07], [1173135600000, 60.69], [1173222000000, 61.82], [1173308400000, 60.05], [1173654000000, 58.91], [1173740400000, 57.93], [1173826800000, 58.16], [1173913200000, 57.55], [1173999600000, 57.11], [1174258800000, 56.59], [1174345200000, 59.61], [1174518000000, 61.69], [1174604400000, 62.28], [1174860000000, 62.91], [1174946400000, 62.93], [1175032800000, 64.03], [1175119200000, 66.03], [1175205600000, 65.87], [1175464800000, 64.64], [1175637600000, 64.38], [1175724000000, 64.28], [1175810400000, 64.28], [1176069600000, 61.51], [1176156000000, 61.89], [1176242400000, 62.01], [1176328800000, 63.85], [1176415200000, 63.63], [1176674400000, 63.61], [1176760800000, 63.10], [1176847200000, 63.13], [1176933600000, 61.83], [1177020000000, 63.38], [1177279200000, 64.58], [1177452000000, 65.84], [1177538400000, 65.06], [1177624800000, 66.46], [1177884000000, 64.40], [1178056800000, 63.68], [1178143200000, 63.19], [1178229600000, 61.93], [1178488800000, 61.47], [1178575200000, 61.55], [1178748000000, 61.81], [1178834400000, 62.37], [1179093600000, 62.46], [1179180000000, 63.17], [1179266400000, 62.55], [1179352800000, 64.94], [1179698400000, 66.27], [1179784800000, 65.50], [1179871200000, 65.77], [1179957600000, 64.18], [1180044000000, 65.20], [1180389600000, 63.15], [1180476000000, 63.49], [1180562400000, 65.08], [1180908000000, 66.30], [1180994400000, 65.96], [1181167200000, 66.93], [1181253600000, 65.98], [1181599200000, 65.35], [1181685600000, 66.26], [1181858400000, 68.00], [1182117600000, 69.09], [1182204000000, 69.10], [1182290400000, 68.19], [1182376800000, 68.19], [1182463200000, 69.14], [1182722400000, 68.19], [1182808800000, 67.77], [1182895200000, 68.97], [1182981600000, 69.57], [1183068000000, 70.68], [1183327200000, 71.09], [1183413600000, 70.92], [1183586400000, 71.81], [1183672800000, 72.81], [1183932000000, 72.19], [1184018400000, 72.56], [1184191200000, 72.50], [1184277600000, 74.15], [1184623200000, 75.05], [1184796000000, 75.92], [1184882400000, 75.57], [1185141600000, 74.89], [1185228000000, 73.56], [1185314400000, 75.57], [1185400800000, 74.95], [1185487200000, 76.83], [1185832800000, 78.21], [1185919200000, 76.53], [1186005600000, 76.86], [1186092000000, 76.00], [1186437600000, 71.59], [1186696800000, 71.47], [1186956000000, 71.62], [1187042400000, 71.00], [1187301600000, 71.98], [1187560800000, 71.12], [1187647200000, 69.47], [1187733600000, 69.26], [1187820000000, 69.83], [1187906400000, 71.09], [1188165600000, 71.73], [1188338400000, 73.36], [1188511200000, 74.04], [1188856800000, 76.30], [1189116000000, 77.49], [1189461600000, 78.23], [1189548000000, 79.91], [1189634400000, 80.09], [1189720800000, 79.10], [1189980000000, 80.57], [1190066400000, 81.93], [1190239200000, 83.32], [1190325600000, 81.62], [1190584800000, 80.95], [1190671200000, 79.53], [1190757600000, 80.30], [1190844000000, 82.88], [1190930400000, 81.66], [1191189600000, 80.24], [1191276000000, 80.05], [1191362400000, 79.94], [1191448800000, 81.44], [1191535200000, 81.22], [1191794400000, 79.02], [1191880800000, 80.26], [1191967200000, 80.30], [1192053600000, 83.08], [1192140000000, 83.69], [1192399200000, 86.13], [1192485600000, 87.61], [1192572000000, 87.40], [1192658400000, 89.47], [1192744800000, 88.60], [1193004000000, 87.56], [1193090400000, 87.56], [1193176800000, 87.10], [1193263200000, 91.86], [1193612400000, 93.53], [1193698800000, 94.53], [1193871600000, 95.93], [1194217200000, 93.98], [1194303600000, 96.37], [1194476400000, 95.46], [1194562800000, 96.32], [1195081200000, 93.43], [1195167600000, 95.10], [1195426800000, 94.64], [1195513200000, 95.10], [1196031600000, 97.70], [1196118000000, 94.42], [1196204400000, 90.62], [1196290800000, 91.01], [1196377200000, 88.71], [1196636400000, 88.32], [1196809200000, 90.23], [1196982000000, 88.28], [1197241200000, 87.86], [1197327600000, 90.02], [1197414000000, 92.25], [1197586800000, 90.63], [1197846000000, 90.63], [1197932400000, 90.49], [1198018800000, 91.24], [1198105200000, 91.06], [1198191600000, 90.49], [1198710000000, 96.62], [1198796400000, 96.00], [1199142000000, 99.62], [1199314800000, 99.18], [1199401200000, 95.09], [1199660400000, 96.33], [1199833200000, 95.67], [1200351600000, 91.90], [1200438000000, 90.84], [1200524400000, 90.13], [1200610800000, 90.57], [1200956400000, 89.21], [1201042800000, 86.99], [1201129200000, 89.85], [1201474800000, 90.99], [1201561200000, 91.64], [1201647600000, 92.33], [1201734000000, 91.75], [1202079600000, 90.02], [1202166000000, 88.41], [1202252400000, 87.14], [1202338800000, 88.11], [1202425200000, 91.77], [1202770800000, 92.78], [1202857200000, 93.27], [1202943600000, 95.46], [1203030000000, 95.46], [1203289200000, 101.74], [1203462000000, 98.81], [1203894000000, 100.88], [1204066800000, 99.64], [1204153200000, 102.59], [1204239600000, 101.84], [1204498800000, 99.52], [1204585200000, 99.52], [1204671600000, 104.52], [1204758000000, 105.47], [1204844400000, 105.15], [1205103600000, 108.75], [1205276400000, 109.92], [1205362800000, 110.33], [1205449200000, 110.21], [1205708400000, 105.68], [1205967600000, 101.84], [1206313200000, 100.86], [1206399600000, 101.22], [1206486000000, 105.90], [1206572400000, 107.58], [1206658800000, 105.62], [1206914400000, 101.58], [1207000800000, 100.98], [1207173600000, 103.83], [1207260000000, 106.23], [1207605600000, 108.50], [1207778400000, 110.11], [1207864800000, 110.14], [1208210400000, 113.79], [1208296800000, 114.93], [1208383200000, 114.86], [1208728800000, 117.48], [1208815200000, 118.30], [1208988000000, 116.06], [1209074400000, 118.52], [1209333600000, 118.75], [1209420000000, 113.46], [1209592800000, 112.52], [1210024800000, 121.84], [1210111200000, 123.53], [1210197600000, 123.69], [1210543200000, 124.23], [1210629600000, 125.80], [1210716000000, 126.29], [1211148000000, 127.05], [1211320800000, 129.07], [1211493600000, 132.19], [1211839200000, 128.85], [1212357600000, 127.76], [1212703200000, 138.54], [1212962400000, 136.80], [1213135200000, 136.38], [1213308000000, 134.86], [1213653600000, 134.01], [1213740000000, 136.68], [1213912800000, 135.65], [1214172000000, 134.62], [1214258400000, 134.62], [1214344800000, 134.62], [1214431200000, 139.64], [1214517600000, 140.21], [1214776800000, 140.00], [1214863200000, 140.97], [1214949600000, 143.57], [1215036000000, 145.29], [1215381600000, 141.37], [1215468000000, 136.04], [1215727200000, 146.40], [1215986400000, 145.18], [1216072800000, 138.74], [1216159200000, 134.60], [1216245600000, 129.29], [1216332000000, 130.65], [1216677600000, 127.95], [1216850400000, 127.95], [1217282400000, 122.19], [1217455200000, 124.08], [1217541600000, 125.10], [1217800800000, 121.41], [1217887200000, 119.17], [1217973600000, 118.58], [1218060000000, 120.02], [1218405600000, 114.45], [1218492000000, 113.01], [1218578400000, 116.00], [1218751200000, 113.77], [1219010400000, 112.87], [1219096800000, 114.53], [1219269600000, 114.98], [1219356000000, 114.98], [1219701600000, 116.27], [1219788000000, 118.15], [1219874400000, 115.59], [1219960800000, 115.46], [1220306400000, 109.71], [1220392800000, 109.35], [1220565600000, 106.23], [1220824800000, 106.34] ];
557
+ var exchangeratesFull = [ [1167606000000, 0.7580], [1167692400000, 0.7580], [1167778800000, 0.75470], [1167865200000, 0.75490], [1167951600000, 0.76130], [1168038000000, 0.76550], [1168124400000, 0.76930], [1168210800000, 0.76940], [1168297200000, 0.76880], [1168383600000, 0.76780], [1168470000000, 0.77080], [1168556400000, 0.77270], [1168642800000, 0.77490], [1168729200000, 0.77410], [1168815600000, 0.77410], [1168902000000, 0.77320], [1168988400000, 0.77270], [1169074800000, 0.77370], [1169161200000, 0.77240], [1169247600000, 0.77120], [1169334000000, 0.7720], [1169420400000, 0.77210], [1169506800000, 0.77170], [1169593200000, 0.77040], [1169679600000, 0.7690], [1169766000000, 0.77110], [1169852400000, 0.7740], [1169938800000, 0.77450], [1170025200000, 0.77450], [1170111600000, 0.7740], [1170198000000, 0.77160], [1170284400000, 0.77130], [1170370800000, 0.76780], [1170457200000, 0.76880], [1170543600000, 0.77180], [1170630000000, 0.77180], [1170716400000, 0.77280], [1170802800000, 0.77290], [1170889200000, 0.76980], [1170975600000, 0.76850], [1171062000000, 0.76810], [1171148400000, 0.7690], [1171234800000, 0.7690], [1171321200000, 0.76980], [1171407600000, 0.76990], [1171494000000, 0.76510], [1171580400000, 0.76130], [1171666800000, 0.76160], [1171753200000, 0.76140], [1171839600000, 0.76140], [1171926000000, 0.76070], [1172012400000, 0.76020], [1172098800000, 0.76110], [1172185200000, 0.76220], [1172271600000, 0.76150], [1172358000000, 0.75980], [1172444400000, 0.75980], [1172530800000, 0.75920], [1172617200000, 0.75730], [1172703600000, 0.75660], [1172790000000, 0.75670], [1172876400000, 0.75910], [1172962800000, 0.75820], [1173049200000, 0.75850], [1173135600000, 0.76130], [1173222000000, 0.76310], [1173308400000, 0.76150], [1173394800000, 0.760], [1173481200000, 0.76130], [1173567600000, 0.76270], [1173654000000, 0.76270], [1173740400000, 0.76080], [1173826800000, 0.75830], [1173913200000, 0.75750], [1173999600000, 0.75620], [1174086000000, 0.7520], [1174172400000, 0.75120], [1174258800000, 0.75120], [1174345200000, 0.75170], [1174431600000, 0.7520], [1174518000000, 0.75110], [1174604400000, 0.7480], [1174690800000, 0.75090], [1174777200000, 0.75310], [1174860000000, 0.75310], [1174946400000, 0.75270], [1175032800000, 0.74980], [1175119200000, 0.74930], [1175205600000, 0.75040], [1175292000000, 0.750], [1175378400000, 0.74910], [1175464800000, 0.74910], [1175551200000, 0.74850], [1175637600000, 0.74840], [1175724000000, 0.74920], [1175810400000, 0.74710], [1175896800000, 0.74590], [1175983200000, 0.74770], [1176069600000, 0.74770], [1176156000000, 0.74830], [1176242400000, 0.74580], [1176328800000, 0.74480], [1176415200000, 0.7430], [1176501600000, 0.73990], [1176588000000, 0.73950], [1176674400000, 0.73950], [1176760800000, 0.73780], [1176847200000, 0.73820], [1176933600000, 0.73620], [1177020000000, 0.73550], [1177106400000, 0.73480], [1177192800000, 0.73610], [1177279200000, 0.73610], [1177365600000, 0.73650], [1177452000000, 0.73620], [1177538400000, 0.73310], [1177624800000, 0.73390], [1177711200000, 0.73440], [1177797600000, 0.73270], [1177884000000, 0.73270], [1177970400000, 0.73360], [1178056800000, 0.73330], [1178143200000, 0.73590], [1178229600000, 0.73590], [1178316000000, 0.73720], [1178402400000, 0.7360], [1178488800000, 0.7360], [1178575200000, 0.7350], [1178661600000, 0.73650], [1178748000000, 0.73840], [1178834400000, 0.73950], [1178920800000, 0.74130], [1179007200000, 0.73970], [1179093600000, 0.73960], [1179180000000, 0.73850], [1179266400000, 0.73780], [1179352800000, 0.73660], [1179439200000, 0.740], [1179525600000, 0.74110], [1179612000000, 0.74060], [1179698400000, 0.74050], [1179784800000, 0.74140], [1179871200000, 0.74310], [1179957600000, 0.74310], [1180044000000, 0.74380], [1180130400000, 0.74430], [1180216800000, 0.74430], [1180303200000, 0.74430], [1180389600000, 0.74340], [1180476000000, 0.74290], [1180562400000, 0.74420], [1180648800000, 0.7440], [1180735200000, 0.74390], [1180821600000, 0.74370], [1180908000000, 0.74370], [1180994400000, 0.74290], [1181080800000, 0.74030], [1181167200000, 0.73990], [1181253600000, 0.74180], [1181340000000, 0.74680], [1181426400000, 0.7480], [1181512800000, 0.7480], [1181599200000, 0.7490], [1181685600000, 0.74940], [1181772000000, 0.75220], [1181858400000, 0.75150], [1181944800000, 0.75020], [1182031200000, 0.74720], [1182117600000, 0.74720], [1182204000000, 0.74620], [1182290400000, 0.74550], [1182376800000, 0.74490], [1182463200000, 0.74670], [1182549600000, 0.74580], [1182636000000, 0.74270], [1182722400000, 0.74270], [1182808800000, 0.7430], [1182895200000, 0.74290], [1182981600000, 0.7440], [1183068000000, 0.7430], [1183154400000, 0.74220], [1183240800000, 0.73880], [1183327200000, 0.73880], [1183413600000, 0.73690], [1183500000000, 0.73450], [1183586400000, 0.73450], [1183672800000, 0.73450], [1183759200000, 0.73520], [1183845600000, 0.73410], [1183932000000, 0.73410], [1184018400000, 0.7340], [1184104800000, 0.73240], [1184191200000, 0.72720], [1184277600000, 0.72640], [1184364000000, 0.72550], [1184450400000, 0.72580], [1184536800000, 0.72580], [1184623200000, 0.72560], [1184709600000, 0.72570], [1184796000000, 0.72470], [1184882400000, 0.72430], [1184968800000, 0.72440], [1185055200000, 0.72350], [1185141600000, 0.72350], [1185228000000, 0.72350], [1185314400000, 0.72350], [1185400800000, 0.72620], [1185487200000, 0.72880], [1185573600000, 0.73010], [1185660000000, 0.73370], [1185746400000, 0.73370], [1185832800000, 0.73240], [1185919200000, 0.72970], [1186005600000, 0.73170], [1186092000000, 0.73150], [1186178400000, 0.72880], [1186264800000, 0.72630], [1186351200000, 0.72630], [1186437600000, 0.72420], [1186524000000, 0.72530], [1186610400000, 0.72640], [1186696800000, 0.7270], [1186783200000, 0.73120], [1186869600000, 0.73050], [1186956000000, 0.73050], [1187042400000, 0.73180], [1187128800000, 0.73580], [1187215200000, 0.74090], [1187301600000, 0.74540], [1187388000000, 0.74370], [1187474400000, 0.74240], [1187560800000, 0.74240], [1187647200000, 0.74150], [1187733600000, 0.74190], [1187820000000, 0.74140], [1187906400000, 0.73770], [1187992800000, 0.73550], [1188079200000, 0.73150], [1188165600000, 0.73150], [1188252000000, 0.7320], [1188338400000, 0.73320], [1188424800000, 0.73460], [1188511200000, 0.73280], [1188597600000, 0.73230], [1188684000000, 0.7340], [1188770400000, 0.7340], [1188856800000, 0.73360], [1188943200000, 0.73510], [1189029600000, 0.73460], [1189116000000, 0.73210], [1189202400000, 0.72940], [1189288800000, 0.72660], [1189375200000, 0.72660], [1189461600000, 0.72540], [1189548000000, 0.72420], [1189634400000, 0.72130], [1189720800000, 0.71970], [1189807200000, 0.72090], [1189893600000, 0.7210], [1189980000000, 0.7210], [1190066400000, 0.7210], [1190152800000, 0.72090], [1190239200000, 0.71590], [1190325600000, 0.71330], [1190412000000, 0.71050], [1190498400000, 0.70990], [1190584800000, 0.70990], [1190671200000, 0.70930], [1190757600000, 0.70930], [1190844000000, 0.70760], [1190930400000, 0.7070], [1191016800000, 0.70490], [1191103200000, 0.70120], [1191189600000, 0.70110], [1191276000000, 0.70190], [1191362400000, 0.70460], [1191448800000, 0.70630], [1191535200000, 0.70890], [1191621600000, 0.70770], [1191708000000, 0.70770], [1191794400000, 0.70770], [1191880800000, 0.70910], [1191967200000, 0.71180], [1192053600000, 0.70790], [1192140000000, 0.70530], [1192226400000, 0.7050], [1192312800000, 0.70550], [1192399200000, 0.70550], [1192485600000, 0.70450], [1192572000000, 0.70510], [1192658400000, 0.70510], [1192744800000, 0.70170], [1192831200000, 0.70], [1192917600000, 0.69950], [1193004000000, 0.69940], [1193090400000, 0.70140], [1193176800000, 0.70360], [1193263200000, 0.70210], [1193349600000, 0.70020], [1193436000000, 0.69670], [1193522400000, 0.6950], [1193612400000, 0.6950], [1193698800000, 0.69390], [1193785200000, 0.6940], [1193871600000, 0.69220], [1193958000000, 0.69190], [1194044400000, 0.69140], [1194130800000, 0.68940], [1194217200000, 0.68910], [1194303600000, 0.69040], [1194390000000, 0.6890], [1194476400000, 0.68340], [1194562800000, 0.68230], [1194649200000, 0.68070], [1194735600000, 0.68150], [1194822000000, 0.68150], [1194908400000, 0.68470], [1194994800000, 0.68590], [1195081200000, 0.68220], [1195167600000, 0.68270], [1195254000000, 0.68370], [1195340400000, 0.68230], [1195426800000, 0.68220], [1195513200000, 0.68220], [1195599600000, 0.67920], [1195686000000, 0.67460], [1195772400000, 0.67350], [1195858800000, 0.67310], [1195945200000, 0.67420], [1196031600000, 0.67440], [1196118000000, 0.67390], [1196204400000, 0.67310], [1196290800000, 0.67610], [1196377200000, 0.67610], [1196463600000, 0.67850], [1196550000000, 0.68180], [1196636400000, 0.68360], [1196722800000, 0.68230], [1196809200000, 0.68050], [1196895600000, 0.67930], [1196982000000, 0.68490], [1197068400000, 0.68330], [1197154800000, 0.68250], [1197241200000, 0.68250], [1197327600000, 0.68160], [1197414000000, 0.67990], [1197500400000, 0.68130], [1197586800000, 0.68090], [1197673200000, 0.68680], [1197759600000, 0.69330], [1197846000000, 0.69330], [1197932400000, 0.69450], [1198018800000, 0.69440], [1198105200000, 0.69460], [1198191600000, 0.69640], [1198278000000, 0.69650], [1198364400000, 0.69560], [1198450800000, 0.69560], [1198537200000, 0.6950], [1198623600000, 0.69480], [1198710000000, 0.69280], [1198796400000, 0.68870], [1198882800000, 0.68240], [1198969200000, 0.67940], [1199055600000, 0.67940], [1199142000000, 0.68030], [1199228400000, 0.68550], [1199314800000, 0.68240], [1199401200000, 0.67910], [1199487600000, 0.67830], [1199574000000, 0.67850], [1199660400000, 0.67850], [1199746800000, 0.67970], [1199833200000, 0.680], [1199919600000, 0.68030], [1200006000000, 0.68050], [1200092400000, 0.6760], [1200178800000, 0.6770], [1200265200000, 0.6770], [1200351600000, 0.67360], [1200438000000, 0.67260], [1200524400000, 0.67640], [1200610800000, 0.68210], [1200697200000, 0.68310], [1200783600000, 0.68420], [1200870000000, 0.68420], [1200956400000, 0.68870], [1201042800000, 0.69030], [1201129200000, 0.68480], [1201215600000, 0.68240], [1201302000000, 0.67880], [1201388400000, 0.68140], [1201474800000, 0.68140], [1201561200000, 0.67970], [1201647600000, 0.67690], [1201734000000, 0.67650], [1201820400000, 0.67330], [1201906800000, 0.67290], [1201993200000, 0.67580], [1202079600000, 0.67580], [1202166000000, 0.6750], [1202252400000, 0.6780], [1202338800000, 0.68330], [1202425200000, 0.68560], [1202511600000, 0.69030], [1202598000000, 0.68960], [1202684400000, 0.68960], [1202770800000, 0.68820], [1202857200000, 0.68790], [1202943600000, 0.68620], [1203030000000, 0.68520], [1203116400000, 0.68230], [1203202800000, 0.68130], [1203289200000, 0.68130], [1203375600000, 0.68220], [1203462000000, 0.68020], [1203548400000, 0.68020], [1203634800000, 0.67840], [1203721200000, 0.67480], [1203807600000, 0.67470], [1203894000000, 0.67470], [1203980400000, 0.67480], [1204066800000, 0.67330], [1204153200000, 0.6650], [1204239600000, 0.66110], [1204326000000, 0.65830], [1204412400000, 0.6590], [1204498800000, 0.6590], [1204585200000, 0.65810], [1204671600000, 0.65780], [1204758000000, 0.65740], [1204844400000, 0.65320], [1204930800000, 0.65020], [1205017200000, 0.65140], [1205103600000, 0.65140], [1205190000000, 0.65070], [1205276400000, 0.6510], [1205362800000, 0.64890], [1205449200000, 0.64240], [1205535600000, 0.64060], [1205622000000, 0.63820], [1205708400000, 0.63820], [1205794800000, 0.63410], [1205881200000, 0.63440], [1205967600000, 0.63780], [1206054000000, 0.64390], [1206140400000, 0.64780], [1206226800000, 0.64810], [1206313200000, 0.64810], [1206399600000, 0.64940], [1206486000000, 0.64380], [1206572400000, 0.63770], [1206658800000, 0.63290], [1206745200000, 0.63360], [1206831600000, 0.63330], [1206914400000, 0.63330], [1207000800000, 0.6330], [1207087200000, 0.63710], [1207173600000, 0.64030], [1207260000000, 0.63960], [1207346400000, 0.63640], [1207432800000, 0.63560], [1207519200000, 0.63560], [1207605600000, 0.63680], [1207692000000, 0.63570], [1207778400000, 0.63540], [1207864800000, 0.6320], [1207951200000, 0.63320], [1208037600000, 0.63280], [1208124000000, 0.63310], [1208210400000, 0.63420], [1208296800000, 0.63210], [1208383200000, 0.63020], [1208469600000, 0.62780], [1208556000000, 0.63080], [1208642400000, 0.63240], [1208728800000, 0.63240], [1208815200000, 0.63070], [1208901600000, 0.62770], [1208988000000, 0.62690], [1209074400000, 0.63350], [1209160800000, 0.63920], [1209247200000, 0.640], [1209333600000, 0.64010], [1209420000000, 0.63960], [1209506400000, 0.64070], [1209592800000, 0.64230], [1209679200000, 0.64290], [1209765600000, 0.64720], [1209852000000, 0.64850], [1209938400000, 0.64860], [1210024800000, 0.64670], [1210111200000, 0.64440], [1210197600000, 0.64670], [1210284000000, 0.65090], [1210370400000, 0.64780], [1210456800000, 0.64610], [1210543200000, 0.64610], [1210629600000, 0.64680], [1210716000000, 0.64490], [1210802400000, 0.6470], [1210888800000, 0.64610], [1210975200000, 0.64520], [1211061600000, 0.64220], [1211148000000, 0.64220], [1211234400000, 0.64250], [1211320800000, 0.64140], [1211407200000, 0.63660], [1211493600000, 0.63460], [1211580000000, 0.6350], [1211666400000, 0.63460], [1211752800000, 0.63460], [1211839200000, 0.63430], [1211925600000, 0.63460], [1212012000000, 0.63790], [1212098400000, 0.64160], [1212184800000, 0.64420], [1212271200000, 0.64310], [1212357600000, 0.64310], [1212444000000, 0.64350], [1212530400000, 0.6440], [1212616800000, 0.64730], [1212703200000, 0.64690], [1212789600000, 0.63860], [1212876000000, 0.63560], [1212962400000, 0.6340], [1213048800000, 0.63460], [1213135200000, 0.6430], [1213221600000, 0.64520], [1213308000000, 0.64670], [1213394400000, 0.65060], [1213480800000, 0.65040], [1213567200000, 0.65030], [1213653600000, 0.64810], [1213740000000, 0.64510], [1213826400000, 0.6450], [1213912800000, 0.64410], [1213999200000, 0.64140], [1214085600000, 0.64090], [1214172000000, 0.64090], [1214258400000, 0.64280], [1214344800000, 0.64310], [1214431200000, 0.64180], [1214517600000, 0.63710], [1214604000000, 0.63490], [1214690400000, 0.63330], [1214776800000, 0.63340], [1214863200000, 0.63380], [1214949600000, 0.63420], [1215036000000, 0.6320], [1215122400000, 0.63180], [1215208800000, 0.6370], [1215295200000, 0.63680], [1215381600000, 0.63680], [1215468000000, 0.63830], [1215554400000, 0.63710], [1215640800000, 0.63710], [1215727200000, 0.63550], [1215813600000, 0.6320], [1215900000000, 0.62770], [1215986400000, 0.62760], [1216072800000, 0.62910], [1216159200000, 0.62740], [1216245600000, 0.62930], [1216332000000, 0.63110], [1216418400000, 0.6310], [1216504800000, 0.63120], [1216591200000, 0.63120], [1216677600000, 0.63040], [1216764000000, 0.62940], [1216850400000, 0.63480], [1216936800000, 0.63780], [1217023200000, 0.63680], [1217109600000, 0.63680], [1217196000000, 0.63680], [1217282400000, 0.6360], [1217368800000, 0.6370], [1217455200000, 0.64180], [1217541600000, 0.64110], [1217628000000, 0.64350], [1217714400000, 0.64270], [1217800800000, 0.64270], [1217887200000, 0.64190], [1217973600000, 0.64460], [1218060000000, 0.64680], [1218146400000, 0.64870], [1218232800000, 0.65940], [1218319200000, 0.66660], [1218405600000, 0.66660], [1218492000000, 0.66780], [1218578400000, 0.67120], [1218664800000, 0.67050], [1218751200000, 0.67180], [1218837600000, 0.67840], [1218924000000, 0.68110], [1219010400000, 0.68110], [1219096800000, 0.67940], [1219183200000, 0.68040], [1219269600000, 0.67810], [1219356000000, 0.67560], [1219442400000, 0.67350], [1219528800000, 0.67630], [1219615200000, 0.67620], [1219701600000, 0.67770], [1219788000000, 0.68150], [1219874400000, 0.68020], [1219960800000, 0.6780], [1220047200000, 0.67960], [1220133600000, 0.68170], [1220220000000, 0.68170], [1220306400000, 0.68320], [1220392800000, 0.68770], [1220479200000, 0.69120], [1220565600000, 0.69140], [1220652000000, 0.70090], [1220738400000, 0.70120], [1220824800000, 0.7010], [1220911200000, 0.70050]
558
+ ];
559
+
560
+ oilprices = [];
561
+ exchangerates = [];
562
+
563
+
564
+ oilpricesFull.map(function(item, index) {
565
+ if (index % 8 === 0) {
566
+ oilprices.push(item);
567
+ }
568
+ });
569
+
570
+ exchangeratesFull.map(function(item, index) {
571
+ if (index % 8 === 0) {
572
+ exchangerates.push(item);
573
+ }
574
+ });
575
+
576
+
577
+
578
+ function euroFormatter(v, axis) {
579
+ return v.toFixed(axis.tickDecimals) + "€";
580
+ }
581
+
582
+ function doPlot(position) {
583
+ $.plot($("#flot-line-chart-multi"), [{
584
+ data: oilprices,
585
+ label: "Oil price ($)"
586
+ }, {
587
+ data: exchangerates,
588
+ label: "USD/EUR exchange rate",
589
+ yaxis: 2
590
+ }], {
591
+ xaxes: [{
592
+ mode: 'time'
593
+ }],
594
+ yaxes: [{
595
+ min: 0
596
+ }, {
597
+ // align if we are to the right
598
+ alignTicksWithAxis: position == "right" ? 1 : null,
599
+ position: position,
600
+ tickFormatter: euroFormatter
601
+ }],
602
+ legend: {
603
+ position: 'sw'
604
+ },
605
+ colors: [config.chart.colorPrimary.toString()],
606
+ grid: {
607
+ color: "#999999",
608
+ hoverable: true,
609
+ clickable: true,
610
+ tickColor: "#D4D4D4",
611
+ borderWidth:0,
612
+ hoverable: true //IMPORTANT! this is needed for tooltip to work,
613
+
614
+ },
615
+ tooltip: true,
616
+ tooltipOpts: {
617
+ content: "%s for %x was %y",
618
+ xDateFormat: "%y-%m-%d",
619
+
620
+ onHover: function(flotItem, $tooltipEl) {
621
+ // console.log(flotItem, $tooltipEl);
622
+ }
623
+ }
624
+
625
+ });
626
+ }
627
+
628
+ doPlot("right");
629
+
630
+ $("button").click(function() {
631
+ doPlot($(this).text());
632
+ });
633
+
634
+ }
635
+
636
+ drawFlotCharts();
637
+
638
+ $(document).on("themechange", function(){
639
+ drawFlotCharts();
640
+ });
641
+
642
+ });
643
+ $(function() {
644
+
645
+ if (!$('#morris-one-line-chart').length) {
646
+ return false;
647
+ }
648
+
649
+ function drawMorrisCharts() {
650
+
651
+ $('#morris-one-line-chart').empty();
652
+
653
+ Morris.Line({
654
+ element: 'morris-one-line-chart',
655
+ data: [
656
+ { year: '2008', value: 5 },
657
+ { year: '2009', value: 10 },
658
+ { year: '2010', value: 8 },
659
+ { year: '2011', value: 22 },
660
+ { year: '2012', value: 8 },
661
+ { year: '2014', value: 10 },
662
+ { year: '2015', value: 5 }
663
+ ],
664
+ xkey: 'year',
665
+ ykeys: ['value'],
666
+ resize: true,
667
+ lineWidth:4,
668
+ labels: ['Value'],
669
+ lineColors: [config.chart.colorPrimary.toString()],
670
+ pointSize:5,
671
+ });
672
+
673
+ $('#morris-area-chart').empty();
674
+
675
+ Morris.Area({
676
+ element: 'morris-area-chart',
677
+ data: [{ period: '2010 Q1', iphone: 2666, ipad: null, itouch: 2647 },
678
+ { period: '2010 Q2', iphone: 2778, ipad: 2294, itouch: 2441 },
679
+ { period: '2010 Q3', iphone: 4912, ipad: 1969, itouch: 2501 },
680
+ { period: '2010 Q4', iphone: 3767, ipad: 3597, itouch: 5689 },
681
+ { period: '2011 Q1', iphone: 6810, ipad: 1914, itouch: 2293 },
682
+ { period: '2011 Q2', iphone: 5670, ipad: 4293, itouch: 1881 },
683
+ { period: '2011 Q3', iphone: 4820, ipad: 3795, itouch: 1588 },
684
+ { period: '2011 Q4', iphone: 15073, ipad: 5967, itouch: 5175 },
685
+ { period: '2012 Q1', iphone: 10687, ipad: 4460, itouch: 2028 },
686
+ { period: '2012 Q2', iphone: 8432, ipad: 5713, itouch: 1791 } ],
687
+ xkey: 'period',
688
+ ykeys: ['iphone', 'ipad', 'itouch'],
689
+ labels: ['iPhone', 'iPad', 'iPod Touch'],
690
+ pointSize: 2,
691
+ hideHover: 'auto',
692
+ resize: true,
693
+ lineColors: [
694
+ tinycolor(config.chart.colorPrimary.toString()).lighten(10).toString(),
695
+ tinycolor(config.chart.colorPrimary.toString()).darken(10).toString(),
696
+ config.chart.colorPrimary.toString()
697
+ ],
698
+ lineWidth:2,
699
+ pointSize:1,
700
+ });
701
+
702
+ $('#morris-donut-chart').empty();
703
+
704
+ Morris.Donut({
705
+ element: 'morris-donut-chart',
706
+ data: [{ label: "Download Sales", value: 12 },
707
+ { label: "In-Store Sales", value: 30 },
708
+ { label: "Mail-Order Sales", value: 20 } ],
709
+ resize: true,
710
+ colors: [
711
+ tinycolor(config.chart.colorPrimary.toString()).lighten(10).toString(),
712
+ tinycolor(config.chart.colorPrimary.toString()).darken(10).toString(),
713
+ config.chart.colorPrimary.toString()
714
+ ],
715
+ });
716
+
717
+ $('#morris-bar-chart').empty();
718
+
719
+ Morris.Bar({
720
+ element: 'morris-bar-chart',
721
+ data: [{ y: '2006', a: 60, b: 50 },
722
+ { y: '2007', a: 75, b: 65 },
723
+ { y: '2008', a: 50, b: 40 },
724
+ { y: '2009', a: 75, b: 65 },
725
+ { y: '2010', a: 50, b: 40 },
726
+ { y: '2011', a: 75, b: 65 },
727
+ { y: '2012', a: 100, b: 90 } ],
728
+ xkey: 'y',
729
+ ykeys: ['a', 'b'],
730
+ labels: ['Series A', 'Series B'],
731
+ hideHover: 'auto',
732
+ resize: true,
733
+ barColors: [
734
+ config.chart.colorPrimary.toString(),
735
+ tinycolor(config.chart.colorPrimary.toString()).darken(10).toString()
736
+ ],
737
+ });
738
+
739
+ $('#morris-line-chart').empty();
740
+
741
+ Morris.Line({
742
+ element: 'morris-line-chart',
743
+ data: [{ y: '2006', a: 100, b: 90 },
744
+ { y: '2007', a: 75, b: 65 },
745
+ { y: '2008', a: 50, b: 40 },
746
+ { y: '2009', a: 75, b: 65 },
747
+ { y: '2010', a: 50, b: 40 },
748
+ { y: '2011', a: 75, b: 65 },
749
+ { y: '2012', a: 100, b: 90 } ],
750
+ xkey: 'y',
751
+ ykeys: ['a', 'b'],
752
+ labels: ['Series A', 'Series B'],
753
+ hideHover: 'auto',
754
+ resize: true,
755
+ lineColors: [
756
+ config.chart.colorPrimary.toString(),
757
+ tinycolor(config.chart.colorPrimary.toString()).darken(10).toString()
758
+ ],
759
+ });
760
+ }
761
+
762
+ drawMorrisCharts();
763
+
764
+ $(document).on("themechange", function(){
765
+ drawMorrisCharts();
766
+ });
767
+ });
768
+ $(function() {
769
+
770
+ if (!$('#dashboard-visits-chart').length) {
771
+ return false;
772
+ }
773
+
774
+ // drawing visits chart
775
+ drawVisitsChart();
776
+
777
+ var el = null;
778
+ var item = 'visits';
779
+
780
+ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
781
+
782
+ el = e.target;
783
+ item = $(el).attr('href').replace('#', '');
784
+ switchHistoryCharts(item);
785
+
786
+ });
787
+
788
+ $(document).on("themechange", function(){
789
+ switchHistoryCharts(item);
790
+ });
791
+
792
+ function switchHistoryCharts(item){
793
+ var chartSelector = "#dashboard-" + item + "-chart";
794
+
795
+ if ($(chartSelector).has('svg').length) {
796
+ $(chartSelector).empty();
797
+ }
798
+
799
+ switch(item){
800
+ case 'visits':
801
+ drawVisitsChart();
802
+ break;
803
+ case 'downloads':
804
+ drawDownloadsChart();
805
+ break;
806
+ }
807
+ }
808
+
809
+ function drawVisitsChart(){
810
+ var dataVisits = [
811
+ { x: '2015-09-01', y: 70},
812
+ { x: '2015-09-02', y: 75 },
813
+ { x: '2015-09-03', y: 50},
814
+ { x: '2015-09-04', y: 75 },
815
+ { x: '2015-09-05', y: 50 },
816
+ { x: '2015-09-06', y: 75 },
817
+ { x: '2015-09-07', y: 86 }
818
+ ];
819
+
820
+
821
+ Morris.Line({
822
+ element: 'dashboard-visits-chart',
823
+ data: dataVisits,
824
+ xkey: 'x',
825
+ ykeys: ['y'],
826
+ ymin: 'auto 40',
827
+ labels: ['Visits'],
828
+ xLabels: "day",
829
+ hideHover: 'auto',
830
+ yLabelFormat: function (y) {
831
+ // Only integers
832
+ if (y === parseInt(y, 10)) {
833
+ return y;
834
+ }
835
+ else {
836
+ return '';
837
+ }
838
+ },
839
+ resize: true,
840
+ lineColors: [
841
+ config.chart.colorSecondary.toString(),
842
+ ],
843
+ pointFillColors: [
844
+ config.chart.colorPrimary.toString(),
845
+ ]
846
+ });
847
+ }
848
+
849
+ function drawDownloadsChart(){
850
+
851
+ var dataDownloads = [
852
+ {
853
+ year: '2006',
854
+ downloads: 1300
855
+ },
856
+ {
857
+ year: '2007',
858
+ downloads: 1526
859
+ },
860
+ {
861
+ year: '2008',
862
+ downloads: 2000
863
+ },
864
+ {
865
+ year: '2009',
866
+ downloads: 1800
867
+ },
868
+ {
869
+ year: '2010',
870
+ downloads: 1650
871
+ },
872
+ {
873
+ year: '2011',
874
+ downloads: 620
875
+ },
876
+ {
877
+ year: '2012',
878
+ downloads: 1000
879
+ },
880
+ {
881
+ year: '2013',
882
+ downloads: 1896
883
+ },
884
+ {
885
+ year: '2014',
886
+ downloads: 850
887
+ },
888
+ {
889
+ year: '2015',
890
+ downloads: 1500
891
+ }
892
+ ];
893
+
894
+
895
+ Morris.Bar({
896
+ element: 'dashboard-downloads-chart',
897
+ data: dataDownloads,
898
+ xkey: 'year',
899
+ ykeys: ['downloads'],
900
+ labels: ['Downloads'],
901
+ hideHover: 'auto',
902
+ resize: true,
903
+ barColors: [
904
+ config.chart.colorPrimary.toString(),
905
+ tinycolor(config.chart.colorPrimary.toString()).darken(10).toString()
906
+ ],
907
+ });
908
+ }
909
+ });
910
+
911
+
912
+
913
+
914
+ $(function() {
915
+
916
+
917
+ function drawDashboardItemsListSparklines(){
918
+ $(".dashboard-page .items .sparkline").each(function() {
919
+ var type = $(this).data('type');
920
+
921
+ // There is predefined data
922
+ if ($(this).data('data')) {
923
+ var data = $(this).data('data').split(',').map(function(item) {
924
+ if (item.indexOf(":") > 0) {
925
+ return item.split(":");
926
+ }
927
+ else {
928
+ return item;
929
+ }
930
+ });
931
+ }
932
+ // Generate random data
933
+ else {
934
+ var data = [];
935
+ for (var i = 0; i < 17; i++) {
936
+ data.push(Math.round(100 * Math.random()));
937
+ }
938
+ }
939
+
940
+
941
+ $(this).sparkline(data, {
942
+ barColor: config.chart.colorPrimary.toString(),
943
+ height: $(this).height(),
944
+ type: type
945
+ });
946
+ });
947
+ }
948
+
949
+ drawDashboardItemsListSparklines();
950
+
951
+ $(document).on("themechange", function(){
952
+ drawDashboardItemsListSparklines();
953
+ });
954
+ });
955
+ $(function() {
956
+
957
+ var $dashboardSalesBreakdownChart = $('#dashboard-sales-breakdown-chart');
958
+
959
+ if (!$dashboardSalesBreakdownChart.length) {
960
+ return false;
961
+ }
962
+
963
+ function drawSalesChart(){
964
+
965
+ $dashboardSalesBreakdownChart.empty();
966
+
967
+ Morris.Donut({
968
+ element: 'dashboard-sales-breakdown-chart',
969
+ data: [{ label: "Download Sales", value: 12 },
970
+ { label: "In-Store Sales", value: 30 },
971
+ { label: "Mail-Order Sales", value: 20 } ],
972
+ resize: true,
973
+ colors: [
974
+ tinycolor(config.chart.colorPrimary.toString()).lighten(10).toString(),
975
+ tinycolor(config.chart.colorPrimary.toString()).darken(8).toString(),
976
+ config.chart.colorPrimary.toString()
977
+ ],
978
+ });
979
+
980
+ var $sameheightContainer = $dashboardSalesBreakdownChart.closest(".sameheight-container");
981
+
982
+ setSameHeights($sameheightContainer);
983
+ }
984
+
985
+ drawSalesChart();
986
+
987
+ $(document).on("themechange", function(){
988
+ drawSalesChart();
989
+ });
990
+
991
+ })
992
+ $(function() {
993
+
994
+ var $dashboardSalesMap = $('#dashboard-sales-map');
995
+
996
+ if (!$dashboardSalesMap.length) {
997
+ return false;
998
+ }
999
+
1000
+ function drawSalesMap() {
1001
+
1002
+ $dashboardSalesMap.empty();
1003
+
1004
+ var color = config.chart.colorPrimary.toHexString();
1005
+ var darkColor = tinycolor(config.chart.colorPrimary.toString()).darken(40).toHexString();
1006
+ var selectedColor = tinycolor(config.chart.colorPrimary.toString()).darken(10).toHexString();
1007
+
1008
+ var sales_data = {
1009
+ us: 2000,
1010
+ ru: 2000,
1011
+ gb: 10000,
1012
+ fr: 10000,
1013
+ de: 10000,
1014
+ cn: 10000,
1015
+ in: 10000,
1016
+ sa: 10000,
1017
+ ca: 10000,
1018
+ br: 5000,
1019
+ au: 5000
1020
+ };
1021
+
1022
+ $dashboardSalesMap.vectorMap({
1023
+ map: 'world_en',
1024
+ backgroundColor: 'transparent',
1025
+ color: '#E5E3E5',
1026
+ hoverOpacity: 0.7,
1027
+ selectedColor: selectedColor,
1028
+ enableZoom: true,
1029
+ showTooltip: true,
1030
+ values: sales_data,
1031
+ scaleColors: [ color, darkColor],
1032
+ normalizeFunction: 'linear'
1033
+ });
1034
+ }
1035
+
1036
+ drawSalesMap();
1037
+
1038
+ $(document).on("themechange", function(){
1039
+ drawSalesMap();
1040
+ });
1041
+ });
1042
+ $(function() {
1043
+
1044
+ $('.actions-list > li').on('click', '.check', function(e){
1045
+ e.preventDefault();
1046
+
1047
+ $(this).parents('.tasks-item')
1048
+ .find('.checkbox')
1049
+ .prop("checked", true);
1050
+
1051
+ removeActionList();
1052
+ });
1053
+
1054
+ });
1055
+ $(function(){
1056
+
1057
+ // set sortable options
1058
+ $('.images-container').sortable({
1059
+ animation: 150,
1060
+ handle: ".control-btn.move",
1061
+ draggable: ".image-container",
1062
+ onMove: function (evt) {
1063
+ var $relatedElem = $(evt.related);
1064
+
1065
+ if ($relatedElem.hasClass('add-image')) {
1066
+ return false;
1067
+ }
1068
+ }
1069
+ });
1070
+
1071
+
1072
+ $controlsButtons = $('.controls');
1073
+
1074
+ $controlsButtonsStar = $controlsButtons.find('.star');
1075
+ $controlsButtonsRemove = $controlsButtons.find('.remove');
1076
+
1077
+ $controlsButtonsStar.on('click',function(e){
1078
+ e.preventDefault();
1079
+
1080
+ $controlsButtonsStar.removeClass('active');
1081
+ $controlsButtonsStar.parents('.image-container').removeClass('main');
1082
+
1083
+ $(this).addClass('active');
1084
+
1085
+ $(this).parents('.image-container').addClass('main');
1086
+ })
1087
+
1088
+ })
1089
+ $(function() {
1090
+
1091
+ if (!$('#select-all-items').length) {
1092
+ return false;
1093
+ }
1094
+
1095
+
1096
+ $('#select-all-items').on('change', function() {
1097
+ var $this = $(this).children(':checkbox').get(0);
1098
+
1099
+ $(this).parents('li')
1100
+ .siblings()
1101
+ .find(':checkbox')
1102
+ .prop('checked', $this.checked)
1103
+ .val($this.checked)
1104
+ .change();
1105
+ });
1106
+
1107
+
1108
+ function drawItemsListSparklines(){
1109
+ $(".items-list-page .sparkline").each(function() {
1110
+ var type = $(this).data('type');
1111
+
1112
+ // Generate random data
1113
+ var data = [];
1114
+ for (var i = 0; i < 17; i++) {
1115
+ data.push(Math.round(100 * Math.random()));
1116
+ }
1117
+
1118
+ $(this).sparkline(data, {
1119
+ barColor: config.chart.colorPrimary.toString(),
1120
+ height: $(this).height(),
1121
+ type: type
1122
+ });
1123
+ });
1124
+ }
1125
+
1126
+ drawItemsListSparklines();
1127
+
1128
+ $(document).on("themechange", function(){
1129
+ drawItemsListSparklines();
1130
+ });
1131
+
1132
+ });
1133
+ //LoginForm validation
1134
+ $(function() {
1135
+ if (!$('.form-control').length) {
1136
+ return false;
1137
+ }
1138
+
1139
+ $('.form-control').focus(function() {
1140
+ $(this).siblings('.input-group-addon').addClass('focus');
1141
+ });
1142
+
1143
+ $('.form-control').blur(function() {
1144
+ $(this).siblings('.input-group-addon').removeClass('focus');
1145
+ });
1146
+ });
1147
+ $(function() {
1148
+
1149
+ $(".wyswyg").each(function() {
1150
+
1151
+ var $toolbar = $(this).find(".toolbar");
1152
+ var $editor = $(this).find(".editor");
1153
+
1154
+
1155
+ var editor = new Quill($editor.get(0), {
1156
+ theme: 'snow'
1157
+ });
1158
+
1159
+ editor.addModule('toolbar', {
1160
+ container: $toolbar.get(0) // Selector for toolbar container
1161
+ });
1162
+
1163
+
1164
+
1165
+ });
1166
+
1167
+ });
1168
+ $(function () {
1169
+
1170
+ $('#sidebar-menu, #customize-menu').metisMenu({
1171
+ activeClass: 'open'
1172
+ });
1173
+
1174
+
1175
+ $('#sidebar-collapse-btn').on('click', function(event){
1176
+ event.preventDefault();
1177
+
1178
+ $("#app").toggleClass("sidebar-open");
1179
+ });
1180
+
1181
+ $("#sidebar-overlay").on('click', function() {
1182
+ $("#app").removeClass("sidebar-open");
1183
+ });
1184
+
1185
+ });
1186
+ var modalMedia = {
1187
+ $el: $("#modal-media"),
1188
+ result: {},
1189
+ options: {},
1190
+ open: function(options) {
1191
+ options = options || {};
1192
+ this.options = options;
1193
+
1194
+
1195
+ this.$el.modal('show');
1196
+ },
1197
+ close: function() {
1198
+ if ($.isFunction(this.options.beforeClose)) {
1199
+ this.options.beforeClose(this.result);
1200
+ }
1201
+
1202
+ this.$el.modal('hide');
1203
+
1204
+ if ($.isFunction(this.options.afterClose)) {
1205
+ this.options.beforeClose(this.result);
1206
+ }
1207
+ }
1208
+ };
1209
+ $(function() {
1210
+ $('.nav-profile > li > a').on('click', function() {
1211
+ var $el = $(this).next();
1212
+
1213
+ animate({
1214
+ name: 'flipInX',
1215
+ selector: $el
1216
+ });
1217
+ });
1218
+ })
1219
+ $(function () {
1220
+
1221
+ // Local storage settings
1222
+ var themeSettings = getThemeSettings();
1223
+
1224
+ // Elements
1225
+
1226
+ var $app = $('#app');
1227
+ var $styleLink = $('#theme-style');
1228
+ var $customizeMenu = $('#customize-menu');
1229
+
1230
+ // Color switcher
1231
+ var $customizeMenuColorBtns = $customizeMenu.find('.color-item');
1232
+
1233
+ // Position switchers
1234
+ var $customizeMenuRadioBtns = $customizeMenu.find('.radio');
1235
+
1236
+
1237
+ // /////////////////////////////////////////////////
1238
+
1239
+ // Initial state
1240
+
1241
+ // On setting event, set corresponding options
1242
+
1243
+ // Update customize view based on options
1244
+
1245
+ // Update theme based on options
1246
+
1247
+ /************************************************
1248
+ * Initial State
1249
+ *************************************************/
1250
+
1251
+ setThemeSettings();
1252
+
1253
+ /************************************************
1254
+ * Events
1255
+ *************************************************/
1256
+
1257
+ // set theme type
1258
+ $customizeMenuColorBtns.on('click', function() {
1259
+ themeSettings.themeName = $(this).data('theme');
1260
+
1261
+ setThemeSettings();
1262
+ });
1263
+
1264
+
1265
+ $customizeMenuRadioBtns.on('click', function() {
1266
+
1267
+ var optionName = $(this).prop('name');
1268
+ var value = $(this).val();
1269
+
1270
+ themeSettings[optionName] = value;
1271
+
1272
+ setThemeSettings();
1273
+ });
1274
+
1275
+ function setThemeSettings() {
1276
+ setThemeState()
1277
+ .delay(config.delayTime)
1278
+ .queue(function (next) {
1279
+
1280
+ setThemeColor();
1281
+ setThemeControlsState();
1282
+ saveThemeSettings();
1283
+
1284
+ $(document).trigger("themechange");
1285
+
1286
+ next();
1287
+ });
1288
+ }
1289
+
1290
+ /************************************************
1291
+ * Update theme based on options
1292
+ *************************************************/
1293
+
1294
+ function setThemeState() {
1295
+ // set theme type
1296
+ if (themeSettings.themeName) {
1297
+ $styleLink.attr('href', 'css/app-' + themeSettings.themeName + '.css');
1298
+ }
1299
+ else {
1300
+ $styleLink.attr('href', 'css/app.css');
1301
+ }
1302
+
1303
+ // App classes
1304
+ $app.removeClass('header-fixed footer-fixed sidebar-fixed');
1305
+
1306
+ // set header
1307
+ $app.addClass(themeSettings.headerPosition);
1308
+
1309
+ // set footer
1310
+ $app.addClass(themeSettings.footerPosition);
1311
+
1312
+ // set footer
1313
+ $app.addClass(themeSettings.sidebarPosition);
1314
+
1315
+ return $app;
1316
+ }
1317
+
1318
+ /************************************************
1319
+ * Update theme controls based on options
1320
+ *************************************************/
1321
+
1322
+ function setThemeControlsState() {
1323
+ // set color switcher
1324
+ $customizeMenuColorBtns.each(function() {
1325
+ if($(this).data('theme') === themeSettings.themeName) {
1326
+ $(this).addClass('active');
1327
+ }
1328
+ else {
1329
+ $(this).removeClass('active');
1330
+ }
1331
+ });
1332
+
1333
+ // set radio buttons
1334
+ $customizeMenuRadioBtns.each(function() {
1335
+ var name = $(this).prop('name');
1336
+ var value = $(this).val();
1337
+
1338
+ if (themeSettings[name] === value) {
1339
+ $(this).prop("checked", true );
1340
+ }
1341
+ else {
1342
+ $(this).prop("checked", false );
1343
+ }
1344
+ });
1345
+ }
1346
+
1347
+ /************************************************
1348
+ * Update theme color
1349
+ *************************************************/
1350
+ function setThemeColor(){
1351
+ config.chart.colorPrimary = tinycolor($ref.find(".chart .color-primary").css("color"));
1352
+ config.chart.colorSecondary = tinycolor($ref.find(".chart .color-secondary").css("color"));
1353
+ }
1354
+
1355
+ /************************************************
1356
+ * Storage Functions
1357
+ *************************************************/
1358
+
1359
+ function getThemeSettings() {
1360
+ var settings = (localStorage.getItem('themeSettings')) ? JSON.parse(localStorage.getItem('themeSettings')) : {};
1361
+
1362
+ settings.headerPosition = settings.headerPosition || '';
1363
+ settings.sidebarPosition = settings.sidebarPosition || '';
1364
+ settings.footerPosition = settings.footerPosition || '';
1365
+
1366
+ return settings;
1367
+ }
1368
+
1369
+ function saveThemeSettings() {
1370
+ localStorage.setItem('themeSettings', JSON.stringify(themeSettings));
1371
+ }
1372
+
1373
+ });
1374
+ $(function() {
1375
+
1376
+ $("body").addClass("loaded");
1377
+
1378
+ });
1379
+
1380
+
1381
+ /***********************************************
1382
+ * NProgress Settings
1383
+ ***********************************************/
1384
+
1385
+ // start load bar
1386
+ NProgress.start();
1387
+
1388
+ // end loading bar
1389
1389
  NProgress.done();