voltar 0.0.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/fonts/FontAwesome.otf +0 -0
  6. data/app/assets/fonts/Simple-Line-Icons.eot +0 -0
  7. data/app/assets/fonts/Simple-Line-Icons.svg +1369 -0
  8. data/app/assets/fonts/Simple-Line-Icons.ttf +0 -0
  9. data/app/assets/fonts/Simple-Line-Icons.woff +0 -0
  10. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  11. data/app/assets/fonts/fontawesome-webfont.svg +520 -0
  12. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  13. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  14. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  15. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  16. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  17. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  18. data/app/assets/fonts/sourcesanspro/sourcesanspro-bold.woff +0 -0
  19. data/app/assets/fonts/sourcesanspro/sourcesanspro-light.woff +0 -0
  20. data/app/assets/fonts/sourcesanspro/sourcesanspro.woff +0 -0
  21. data/app/assets/javascripts/voltar/app.js +203 -0
  22. data/app/assets/javascripts/voltar/application.js +33 -0
  23. data/app/assets/javascripts/voltar/controllers/app_ctrl.js.erb +673 -0
  24. data/app/assets/javascripts/voltar/directives/app_directives.js +345 -0
  25. data/app/assets/javascripts/voltar/factories/app_services.js +255 -0
  26. data/app/assets/javascripts/voltar/stripe.js.coffee +2 -0
  27. data/app/assets/stylesheets/voltar/app.css +4990 -0
  28. data/app/assets/stylesheets/voltar/application.css +23 -0
  29. data/app/assets/stylesheets/voltar/voltar.css.scss +93 -0
  30. data/app/controllers/voltar/application_controller.rb +4 -0
  31. data/app/controllers/voltar/dashboard_controller.rb +11 -0
  32. data/app/helpers/voltar/application_helper.rb +4 -0
  33. data/app/views/layouts/voltar/application.html.erb +40 -0
  34. data/app/views/voltar/account/_billing.html.erb +552 -0
  35. data/app/views/voltar/account/_locations.html.erb +135 -0
  36. data/app/views/voltar/account/_managers.html +134 -0
  37. data/app/views/voltar/account/_password.html.erb +57 -0
  38. data/app/views/voltar/account/_profile.html.erb +84 -0
  39. data/app/views/voltar/dashboard/index.html.erb +0 -0
  40. data/app/views/voltar/inventory/_delete_dialog.html.erb +16 -0
  41. data/app/views/voltar/inventory/_edit.html.erb +244 -0
  42. data/app/views/voltar/inventory/_index.html.erb +160 -0
  43. data/app/views/voltar/inventory/_mark_as_sold_dialog.html.erb +26 -0
  44. data/app/views/voltar/shared/_keen_js.html.haml +11 -0
  45. data/app/views/voltar/shared/_voltar_app.html.erb +83 -0
  46. data/app/views/voltar/shared/_voltar_aside.html.erb +71 -0
  47. data/app/views/voltar/shared/_voltar_footer.html.erb +13 -0
  48. data/app/views/voltar/shared/_voltar_header.html.erb +156 -0
  49. data/app/views/voltar/shared/app/_country_province_select.html +19 -0
  50. data/app/views/voltar/shared/app/_dashboard.html.erb +243 -0
  51. data/app/views/voltar/shared/app/_notifications.html.erb +13 -0
  52. data/app/views/voltar/shared/app/_spinner.html.erb +8 -0
  53. data/config/routes.rb +4 -0
  54. data/lib/tasks/voltar_tasks.rake +4 -0
  55. data/lib/voltar.rb +5 -0
  56. data/lib/voltar/engine.rb +15 -0
  57. data/lib/voltar/version.rb +3 -0
  58. data/test/dummy/README.rdoc +28 -0
  59. data/test/dummy/Rakefile +6 -0
  60. data/test/dummy/app/assets/javascripts/application.js +13 -0
  61. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  62. data/test/dummy/app/controllers/application_controller.rb +5 -0
  63. data/test/dummy/app/helpers/application_helper.rb +2 -0
  64. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  65. data/test/dummy/bin/bundle +3 -0
  66. data/test/dummy/bin/rails +4 -0
  67. data/test/dummy/bin/rake +4 -0
  68. data/test/dummy/bin/setup +29 -0
  69. data/test/dummy/config.ru +4 -0
  70. data/test/dummy/config/application.rb +26 -0
  71. data/test/dummy/config/boot.rb +5 -0
  72. data/test/dummy/config/database.yml +25 -0
  73. data/test/dummy/config/environment.rb +5 -0
  74. data/test/dummy/config/environments/development.rb +41 -0
  75. data/test/dummy/config/environments/production.rb +76 -0
  76. data/test/dummy/config/environments/test.rb +39 -0
  77. data/test/dummy/config/initializers/assets.rb +11 -0
  78. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  79. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  80. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  81. data/test/dummy/config/initializers/inflections.rb +16 -0
  82. data/test/dummy/config/initializers/mime_types.rb +4 -0
  83. data/test/dummy/config/initializers/session_store.rb +3 -0
  84. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  85. data/test/dummy/config/locales/en.yml +23 -0
  86. data/test/dummy/config/routes.rb +4 -0
  87. data/test/dummy/config/secrets.yml +22 -0
  88. data/test/dummy/log/development.log +0 -0
  89. data/test/dummy/public/404.html +67 -0
  90. data/test/dummy/public/422.html +67 -0
  91. data/test/dummy/public/500.html +66 -0
  92. data/test/dummy/public/favicon.ico +0 -0
  93. data/test/integration/navigation_test.rb +10 -0
  94. data/test/test_helper.rb +15 -0
  95. data/test/voltar_test.rb +7 -0
  96. data/vendor/assets/images/voltar/a0.jpg +0 -0
  97. data/vendor/assets/images/voltar/a1.jpg +0 -0
  98. data/vendor/assets/images/voltar/a10.jpg +0 -0
  99. data/vendor/assets/images/voltar/a2.jpg +0 -0
  100. data/vendor/assets/images/voltar/a3.jpg +0 -0
  101. data/vendor/assets/images/voltar/a4.jpg +0 -0
  102. data/vendor/assets/images/voltar/a5.jpg +0 -0
  103. data/vendor/assets/images/voltar/a6.jpg +0 -0
  104. data/vendor/assets/images/voltar/a7.jpg +0 -0
  105. data/vendor/assets/images/voltar/a8.jpg +0 -0
  106. data/vendor/assets/images/voltar/a9.jpg +0 -0
  107. data/vendor/assets/images/voltar/b0.jpg +0 -0
  108. data/vendor/assets/images/voltar/b1.jpg +0 -0
  109. data/vendor/assets/images/voltar/b2.jpg +0 -0
  110. data/vendor/assets/images/voltar/b3.jpg +0 -0
  111. data/vendor/assets/images/voltar/b4.jpg +0 -0
  112. data/vendor/assets/images/voltar/b5.jpg +0 -0
  113. data/vendor/assets/images/voltar/c0.jpg +0 -0
  114. data/vendor/assets/images/voltar/c1.jpg +0 -0
  115. data/vendor/assets/images/voltar/c2.jpg +0 -0
  116. data/vendor/assets/images/voltar/c3.jpg +0 -0
  117. data/vendor/assets/images/voltar/c4.jpg +0 -0
  118. data/vendor/assets/images/voltar/c5.jpg +0 -0
  119. data/vendor/assets/images/voltar/chosen-sprite.png +0 -0
  120. data/vendor/assets/images/voltar/chosen-sprite@2x.png +0 -0
  121. data/vendor/assets/images/voltar/logo.png +0 -0
  122. data/vendor/assets/images/voltar/p0.jpg +0 -0
  123. data/vendor/assets/javascripts/voltar/angular-animate.js +1689 -0
  124. data/vendor/assets/javascripts/voltar/angular-contenteditable.js +98 -0
  125. data/vendor/assets/javascripts/voltar/angular-cookies.js +206 -0
  126. data/vendor/assets/javascripts/voltar/angular-sanitize.js +647 -0
  127. data/vendor/assets/javascripts/voltar/angular-ui-router.js +3658 -0
  128. data/vendor/assets/javascripts/voltar/angular.js +22024 -0
  129. data/vendor/assets/javascripts/voltar/chosen.jquery.min.js +2 -0
  130. data/vendor/assets/javascripts/voltar/easypiechart/jquery.easy-pie-chart.js +209 -0
  131. data/vendor/assets/javascripts/voltar/flot/jquery.flot.min.js +29 -0
  132. data/vendor/assets/javascripts/voltar/flot/jquery.flot.orderBars.js +187 -0
  133. data/vendor/assets/javascripts/voltar/flot/jquery.flot.pie.min.js +56 -0
  134. data/vendor/assets/javascripts/voltar/flot/jquery.flot.resize.js +60 -0
  135. data/vendor/assets/javascripts/voltar/flot/jquery.flot.spline.js +212 -0
  136. data/vendor/assets/javascripts/voltar/flot/jquery.flot.tooltip.min.js +12 -0
  137. data/vendor/assets/javascripts/voltar/jquery.min.js +5 -0
  138. data/vendor/assets/javascripts/voltar/moment.js +2856 -0
  139. data/vendor/assets/javascripts/voltar/ngStorage.js +103 -0
  140. data/vendor/assets/javascripts/voltar/ocLazyLoad.js +906 -0
  141. data/vendor/assets/javascripts/voltar/smart-table.min.js +1 -0
  142. data/vendor/assets/javascripts/voltar/sparkline/jquery.sparkline.min.js +2 -0
  143. data/vendor/assets/javascripts/voltar/toaster.js +185 -0
  144. data/vendor/assets/javascripts/voltar/ui-bootstrap-tpls.js +4116 -0
  145. data/vendor/assets/javascripts/voltar/ui-jq.js +86 -0
  146. data/vendor/assets/javascripts/voltar/ui-load.js +93 -0
  147. data/vendor/assets/javascripts/voltar/ui-validate.js +119 -0
  148. data/vendor/assets/stylesheets/voltar/animate.css +1098 -0
  149. data/vendor/assets/stylesheets/voltar/bootstrap.css +6202 -0
  150. data/vendor/assets/stylesheets/voltar/chosen.css +399 -0
  151. data/vendor/assets/stylesheets/voltar/font-awesome.min.css +4 -0
  152. data/vendor/assets/stylesheets/voltar/font.css +18 -0
  153. data/vendor/assets/stylesheets/voltar/simple-line-icons.css +526 -0
  154. data/vendor/assets/stylesheets/voltar/toaster.css +213 -0
  155. metadata +333 -0
@@ -0,0 +1,135 @@
1
+ <script type="text/ng-template" id='locations.html'>
2
+
3
+ <div class="bg-light lter b-b wrapper-md">
4
+ <h1 class="m-n font-thin h3">Locations</h1>
5
+ <small class="text-muted">Manage your locations here</small>
6
+ </div>
7
+
8
+ <div class="wrapper-md" data-ng-controller="LocationsController">
9
+
10
+ <div class='row'>
11
+ <div class='col-sm-6'>
12
+ <div class="panel panel-default">
13
+ <div class="panel-heading font-bold">
14
+ <span>Locations</span>
15
+
16
+ <button class='btn btn-primary btn-xs pull-right' type='submit' data-ng-click='editLocation(null)'>
17
+ <i class='fa fa-plus'></i>
18
+ Add New Location
19
+ </button>
20
+ </div>
21
+
22
+ <div class="panel-body">
23
+
24
+ <div class='table-responsive'>
25
+ <table class='table table-striped b-t b-light'>
26
+ <thead>
27
+ <tr>
28
+ <th>Name</th>
29
+ <th>Manager</th>
30
+ <th>Contact</th>
31
+ <th>Last Login</th>
32
+ <th>City</th>
33
+ <th></th>
34
+ </tr>
35
+ </thead>
36
+
37
+ <tbody>
38
+ <tr data-ng-repeat="location in locations">
39
+ <td>{{location.name}}</td>
40
+ <td>{{location.managers[0].full_name}}</td>
41
+ <td>{{location.phone}}</td>
42
+ <td>{{location.managers[0].last_sign_in_at}}</td>
43
+ <td>{{location.city}}</td>
44
+ <td>
45
+ <button class='btn btn-default btn-sm' data-ng-click='editLocation(location)' >
46
+ <i class='fa fa-edit'></i>
47
+ </button>
48
+ </td>
49
+ </tr>
50
+ </tbody>
51
+
52
+ </table>
53
+ </div>
54
+
55
+ </div>
56
+ </div>
57
+ </div>
58
+
59
+
60
+ <div class="col-sm-6">
61
+
62
+ <div class="panel panel-default" data-ng-show='showLocationForm' >
63
+ <div class="panel-heading font-bold"><i class="fa fa-user"></i> {{mode}}</div>
64
+ <div class="panel-body">
65
+
66
+ <div class='col-sm-12'>
67
+ <%= render partial: 'voltar/shared/app/notifications', locals: { success_message: 'Location record was added/updated successfully!'} %>
68
+ </div>
69
+
70
+ <div class="col-sm-12">
71
+
72
+ <form name='addLocationForm'>
73
+
74
+ <div class='form-group'>
75
+ <label>Location Name</label>
76
+ <input type='text' class='form-control' data-ng-model='selectedLocation.name'>
77
+ </div>
78
+
79
+ <div class='form-group'>
80
+ <label>Phone</label>
81
+ <input type='text' class='form-control' data-ng-model='selectedLocation.phone'>
82
+ </div>
83
+
84
+ <div class='form-group'>
85
+ <label>Toll Free</label>
86
+ <input type='text' class='form-control' data-ng-model='selectedLocation.toll_free'>
87
+ </div>
88
+
89
+ <div class='form-group'>
90
+ <label>Fax</label>
91
+ <input type='text' class='form-control' data-ng-model='selectedLocation.fax'>
92
+ </div>
93
+
94
+ <div class='form-group'>
95
+ <label>Address</label>
96
+ <input type='text' class='form-control' data-ng-model='selectedLocation.address'>
97
+ </div>
98
+
99
+ <div class='form-group'>
100
+ <label>City</label>
101
+ <input type='text' class='form-control' data-ng-model='selectedLocation.city'>
102
+ </div>
103
+
104
+ <div class='form-group'>
105
+ <label>Postal Code</label>
106
+ <input type='text' class='form-control' data-ng-model='selectedLocation.postal_code'>
107
+ </div>
108
+
109
+ <country-province-select resource='selectedLocation'></country-province-select>
110
+
111
+ <div class="form-group">
112
+
113
+ <button type="submit" class="btn btn-dark" data-ng-click='showLocationForm = false'>
114
+ <span>
115
+ Cancel
116
+ </span>
117
+ </button>
118
+
119
+ <button type="submit" class="btn btn-primary" data-ng-click='persistLocation(selectedLocation)'>
120
+ <span>
121
+ Save changes <i class="fa fa-spinner fa-spin" data-ng-if='updatingLocation'></i>
122
+ </span>
123
+ </button>
124
+ </div>
125
+
126
+
127
+ </div>
128
+
129
+ </div>
130
+ </div>
131
+
132
+ </div>
133
+ </div>
134
+
135
+ </script>
@@ -0,0 +1,134 @@
1
+ <script type="text/ng-template" id='managers.html'>
2
+
3
+ <div class="bg-light lter b-b wrapper-md">
4
+ <h1 class="m-n font-thin h3">Team Users</h1>
5
+ <small class="text-muted">Manage your team here.</small>
6
+ </div>
7
+
8
+ <div class="wrapper-md" data-ng-controller="ManagersController">
9
+
10
+ <div class='row'>
11
+ <div class='col-sm-6'>
12
+ <div class="panel panel-default">
13
+ <div class="panel-heading font-bold">
14
+ <span>Team Users</span>
15
+ <button class='btn btn-primary btn-xs pull-right' type='submit' data-ng-click='editTeamUser(null)'>
16
+ <i class='fa fa-plus'></i>
17
+ Add New User
18
+ </button>
19
+ </div>
20
+ <div class="panel-body">
21
+
22
+ <div class='table-responsive'>
23
+ <table class='table table-striped b-t b-light'>
24
+ <thead>
25
+ <tr>
26
+ <th>Full Name</th>
27
+ <th>Email</th>
28
+ <th>Last Login</th>
29
+ <th>City</th>
30
+ <th></th>
31
+ </tr>
32
+ </thead>
33
+
34
+ <tbody>
35
+ <tr data-ng-repeat="user in managers">
36
+ <td>{{user.first_name}} {{user.last_name}}</td>
37
+ <td>{{user.email}}</td>
38
+ <td>{{user.last_sign_in_at}}</td>
39
+ <td>{{user.city}}</td>
40
+ <td>
41
+ <button class='btn btn-default btn-sm' data-ng-click='editTeamUser(user)' >
42
+ <i class='fa fa-edit'></i>
43
+ </button>
44
+ </td>
45
+ </tr>
46
+ </tbody>
47
+
48
+ </table>
49
+ </div>
50
+
51
+ </div>
52
+ </div>
53
+ </div>
54
+
55
+
56
+ <div class="col-sm-6">
57
+
58
+ <div class="panel panel-default" data-ng-show='showTeamUserForm' >
59
+ <div class="panel-heading font-bold"><i class="fa fa-user"></i> {{mode}}</div>
60
+ <div class="panel-body">
61
+
62
+ <div class='col-sm-12'>
63
+ <%= render partial: 'voltar/shared/app/notifications', locals: { success_message: 'User was added/updated successfully!'} %>
64
+ </div>
65
+
66
+ <div class="col-sm-12">
67
+
68
+ <form name='addTeamUserForm'>
69
+
70
+ <div class='form-group'>
71
+ <label>First Name</label>
72
+ <input type='text' class='form-control' data-ng-model='selectedTeamUser.first_name'>
73
+ <input type='hidden' class='form-control' data-ng-model='selectedTeamUser.accepts_terms'>
74
+ </div>
75
+
76
+ <div class='form-group'>
77
+ <label>Last Name</label>
78
+ <input type='text' class='form-control' data-ng-model='selectedTeamUser.last_name'>
79
+ </div>
80
+
81
+ <div class='form-group'>
82
+ <label>Email</label>
83
+ <input type='text' class='form-control' data-ng-model='selectedTeamUser.email'>
84
+ </div>
85
+
86
+ <div class='form-group'>
87
+ <label>Password</label>
88
+ <input type='password' class='form-control' data-ng-model='selectedTeamUser.password'>
89
+ </div>
90
+
91
+ <div class='form-group'>
92
+ <label>Confirm Password</label>
93
+ <input type='password' class='form-control' data-ng-model='selectedTeamUser.password_confirmation'>
94
+ </div>
95
+
96
+ <div class='form-group'>
97
+ <label>City</label>
98
+ <input type='text' class='form-control' data-ng-model='selectedTeamUser.city'>
99
+ </div>
100
+
101
+ <country-province-select resource='selectedTeamUser'></country-province-select>
102
+
103
+ <div class='form-group'>
104
+ <label>Postal Code</label>
105
+ <input type='text' class='form-control' data-ng-model='selectedTeamUser.postal_code'>
106
+ </div>
107
+
108
+ <div class="form-group">
109
+
110
+ <button type="submit" class="btn btn-dark" data-ng-click='showTeamUserForm = false;'>
111
+ <span>
112
+ Cancel
113
+ </span>
114
+ </button>
115
+
116
+ <button type="submit" class="btn btn-primary" data-ng-click='persistTeamUser(selectedTeamUser)'>
117
+ <span>
118
+ Save changes <i class="fa fa-spinner fa-spin" data-ng-if='updatingTeamUser'></i>
119
+ </span>
120
+ </button>
121
+ </div>
122
+
123
+
124
+ </div>
125
+
126
+ </div>
127
+ </div>
128
+ </div>
129
+
130
+
131
+ </div>
132
+
133
+
134
+ </script>
@@ -0,0 +1,57 @@
1
+ <script type="text/ng-template" id='password.html'>
2
+
3
+ <div class="bg-light lter b-b wrapper-md">
4
+ <h1 class="m-n font-thin h3">Update Password</h1>
5
+ <small class="text-muted">Manage your password here</small>
6
+ </div>
7
+
8
+ <div class="wrapper-md" data-ng-controller="PasswordController">
9
+
10
+ <div class='row'>
11
+ <div class="col-sm-6">
12
+
13
+ <div class="panel panel-default">
14
+ <div class="panel-heading font-bold"><i class="fa fa-user"></i> UPDATE YOUR PASSWORD</div>
15
+ <div class="panel-body">
16
+
17
+ <div class='col-sm-12'>
18
+ <%= render partial: 'voltar/shared/app/notifications', locals: { success_message: 'Your password was updated successfully!'} %>
19
+ </div>
20
+
21
+ <div class="col-sm-12">
22
+
23
+ <form name='updatePasswordForm'>
24
+
25
+ <div class='form-group'>
26
+ <label>Current Password</label>
27
+ <input type='password' class='form-control' data-ng-model='dealer.current_password'>
28
+ </div>
29
+
30
+ <div class='form-group'>
31
+ <label>Password</label>
32
+ <input type='password' class='form-control' data-ng-model='dealer.password'>
33
+ </div>
34
+
35
+ <div class='form-group'>
36
+ <label>Confirm Password</label>
37
+ <input type='password' class='form-control' data-ng-model='dealer.password_confirmation'>
38
+ </div>
39
+
40
+ <div class="form-group">
41
+ <button type="submit" class="btn btn-primary" data-ng-click='updatePassword(dealer)'>
42
+ <span>
43
+ Save changes <i class="fa fa-spinner fa-spin" data-ng-if='updatingPassword'></i>
44
+ </span>
45
+ </button>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ </div>
52
+ </div>
53
+
54
+ </div>
55
+ </div>
56
+
57
+ </script>
@@ -0,0 +1,84 @@
1
+ <script type="text/ng-template" id='profile.html'>
2
+
3
+ <div class="bg-light lter b-b wrapper-md">
4
+ <h1 class="m-n font-thin h3">Profile</h1>
5
+ <small class="text-muted">Manage your user profile here</small>
6
+ </div>
7
+
8
+ <div class="wrapper-md" data-ng-controller="ProfileController">
9
+
10
+ <div class='row'>
11
+ <div class="col-sm-6">
12
+
13
+ <div class="panel panel-default">
14
+ <div class="panel-heading font-bold"><i class="fa fa-user"></i> EDIT YOUR PROFILE:</div>
15
+ <div class="panel-body">
16
+
17
+ <div class='col-sm-12'>
18
+ <%= render partial: 'voltar/shared/app/notifications', locals: { success_message: 'Your profile was updated successfully!'} %>
19
+ </div>
20
+
21
+ <div class="col-sm-12">
22
+
23
+ <form name='editProfile'>
24
+
25
+ <div class='form-group'>
26
+ <label>Email</label>
27
+ <input type='text' class='form-control' data-ng-model='dealer.email'>
28
+ </div>
29
+
30
+ <div class='form-group'>
31
+ <label>First Name</label>
32
+ <input type='text' class='form-control' data-ng-model='dealer.first_name'>
33
+ </div>
34
+
35
+ <div class='form-group'>
36
+ <label>Last Name</label>
37
+ <input type='text' class='form-control' data-ng-model='dealer.last_name'>
38
+ </div>
39
+
40
+ <div class='form-group'>
41
+ <label>Phone Number</label>
42
+ <input type='text' class='form-control' data-ng-model='dealer.phone'>
43
+ </div>
44
+
45
+ <div class='form-group'>
46
+ <label>Dealership Name</label>
47
+ <input type='text' class='form-control' data-ng-model='dealer.company'>
48
+ </div>
49
+
50
+ <div class='form-group'>
51
+ <label>Address</label>
52
+ <input type='text' class='form-control' data-ng-model='dealer.street_address'>
53
+ </div>
54
+
55
+ <div class='form-group'>
56
+ <label>City</label>
57
+ <input type='text' class='form-control' data-ng-model='dealer.city'>
58
+ </div>
59
+
60
+ <country-province-select resource='dealer'></country-province-select>
61
+
62
+ <div class='form-group'>
63
+ <label>ZIP/Postal Code</label>
64
+ <input type='text' class='form-control' data-ng-model='dealer.postal_code'>
65
+ </div>
66
+
67
+ <div class="form-group">
68
+ <button type="submit" class="btn btn-primary" data-ng-click='updateProfile(dealer)'>
69
+ <span>
70
+ Save changes <i class="fa fa-spinner fa-spin" data-ng-if='savingProfile'></i>
71
+ </span>
72
+ </button>
73
+ </div>
74
+
75
+
76
+ </div>
77
+
78
+ </div>
79
+ </div>
80
+
81
+ </div>
82
+ </div>
83
+
84
+ </script>
@@ -0,0 +1,16 @@
1
+ <script type="text/ng-template" id='deleteInventory.html'>
2
+
3
+ <div class="modal-header">
4
+ <h3 class="modal-title text-danger"><i class="fa fa-exclamation-triangle"></i> Really delete {{inventory.name}}?</h3>
5
+ </div>
6
+
7
+ <div class="modal-body">
8
+ Are you sure you want to perform this action and delete this inventory?
9
+ </div>
10
+
11
+ <div class="modal-footer ng-scope">
12
+ <button class="btn btn-default" data-ng-click="cancel()">Cancel</button>
13
+ <button class="btn btn-primary" data-ng-click="yes(inventory)">YES</button>
14
+ </div>
15
+
16
+ </script>
@@ -0,0 +1,244 @@
1
+ <script type="text/ng-template" id='editInventory.html'>
2
+ <div class="bg-light lter b-b wrapper-md ng-scope">
3
+ <h1 class="m-n font-thin h3">
4
+ <button class="btn btn-default" onclick='window.history.back();'>
5
+ <i class="fa fa-chevron-left"></i> Back
6
+ </button>
7
+ <span>{{mode}} {{inventory.name}}</span>
8
+ </h1>
9
+ </div>
10
+
11
+ <div class="wrapper-md" >
12
+
13
+ <div class='row'>
14
+ <div class="col-sm-6">
15
+
16
+ <div class="panel panel-default">
17
+ <div class="panel-heading font-bold">
18
+ <div data-ng-if="mode == 'Editing'">
19
+ <i class="fa fa-info-circle"></i> VIN: {{inventory.vin}}
20
+ </div>
21
+ <div data-ng-if="mode != 'Editing'">
22
+ <i class="fa fa-info-circle"></i> ADD NEW INVENTORY
23
+ </div>
24
+ </div>
25
+ <div class="panel-body">
26
+
27
+ <div class='col-sm-12'>
28
+ <%= render partial: 'voltar/shared/app/notifications', locals: { success_message: 'Your inventory was updated successfully!'} %>
29
+ </div>
30
+
31
+ <form name='editInventory'>
32
+
33
+ <div class='col-sm-12'>
34
+
35
+ <div class='form-group' data-ng-if="mode != 'Editing'">
36
+ <label>
37
+ VIN:
38
+ <i>(must be exactly 17 digits)</i>
39
+ <i data-ng-if='inventory.vin'>(<strong>{{inventory.vin.length}}</strong> characters so far)</i>
40
+ </label>
41
+ <input type='text' ng-model='inventory.vin' class='form-control m-b'>
42
+ </div>
43
+
44
+ </div>
45
+
46
+ <div class='col-sm-6'>
47
+
48
+ <div class='form-group'>
49
+ <label>Bus Type</label>
50
+ <select class='form-control m-b' data-ng-model='inventory.bus_type_id' tabindex=1 data-ui-jq='chosen' data-ng-change='updateBodyMakes(inventory)'>
51
+ <option value='{{bus_type.id}}' data-ng-repeat='bus_type in bus_types' >{{bus_type.name}}</option>
52
+ </select>
53
+ </div>
54
+
55
+ <div class='form-group'>
56
+ <label>Year</label>
57
+ <select class='form-control m-b' data-ng-model='inventory.year' data-ui-jq='chosen' tabindex=3>
58
+ <option value='{{year}}' data-ng-repeat='year in years' >{{year}}</option>
59
+ </select>
60
+ </div>
61
+
62
+ <div class='form-group'>
63
+ <label>Chasis Make</label>
64
+ <input tabindex=5 class='form-control m-b' type='text' data-ng-model='inventory.chassis_make'>
65
+ </div>
66
+
67
+ <div class='form-group'>
68
+ <label>Engine</label>
69
+ <input tabindex=7 class='form-control m-b' type='text' data-ng-model='inventory.engine'>
70
+ </div>
71
+
72
+ <div class='form-group'>
73
+ <label>Interior Color</label>
74
+ <input tabindex=9 class='form-control m-b' type='text' data-ng-model='inventory.interior_color'>
75
+ </div>
76
+
77
+ <div class='form-group'>
78
+ <label>Transmission</label>
79
+ <select tabindex=11 class='form-control m-b' data-ng-model='inventory.transmission' data-ui-jq='chosen'>
80
+ <option value='Automatic'>Automatic</option>
81
+ <option value='Manual'>Manual</option>
82
+ </select>
83
+ </div>
84
+
85
+ <div class='form-group'>
86
+ <label>Youtube Video Link</label>
87
+ <input tabindex=14 class='form-control m-b' type='text' data-ng-model='inventory.video_link'>
88
+ </div>
89
+
90
+ </div>
91
+
92
+ <div class='col-sm-6'>
93
+
94
+ <div class='form-group'>
95
+ <label>Body Make</label>
96
+ <select tabindex=2 id='body_make_select' class='form-control m-b' data-placeholder='Select a Bus Type first' data-ng-model='inventory.body_make_id' >
97
+ <option value='{{body_make.id}}' data-ng-repeat='body_make in body_makes' data-ng-selected='inventory.body_make_id === body_make.id'>{{body_make.name}}</option>
98
+ </select>
99
+ </div>
100
+
101
+ <div class='form-group'>
102
+ <label>Status</label>
103
+ <select tabindex=4 class='form-control m-b' data-ng-model='inventory.status' data-ui-jq='chosen'>
104
+ <option value="">Any</option>
105
+ <option value="pending">Pending</option>
106
+ <option value="attention">Attention</option>
107
+ <option value="standard">Standard</option>
108
+ <option value="new">New</option>
109
+ <option value="sale">Sale</option>
110
+ </select>
111
+ </div>
112
+
113
+
114
+ <div class='form-group'>
115
+ <label>Chasis Model</label>
116
+ <input tabindex=6 class='form-control m-b' type='text' data-ng-model='inventory.chasis_model'>
117
+ </div>
118
+
119
+ <div class='form-group'>
120
+ <label>Body Model</label>
121
+ <input tabindex=8 class='form-control m-b' type='text' data-ng-model='inventory.body_model'>
122
+ </div>
123
+
124
+ <div class='form-group'>
125
+ <label>Exterior Color</label>
126
+ <input tabindex=10 class='form-control m-b' type='text' data-ng-model='inventory.exterior_color'>
127
+ </div>
128
+
129
+ <div class='form-group'>
130
+ <label>Mileage</label>
131
+ <div>
132
+ <input tabindex=12 class='form-control' type='text' data-ng-model='inventory.mileage' style='margin-right: 20px;width: 150px; display: inline;' >
133
+ <select tabindex=13 class='form-control w-xs' data-ng-model='inventory.mileage_metric' style='display:inline;' >
134
+ <option value='kms'>Kms</option>
135
+ <option value='miles'>Miles</option>
136
+ </select>
137
+ </div>
138
+ </div>
139
+
140
+ <div class='form-group'>
141
+ <label>Wheelchair Capacity</label>
142
+ <input tabindex=15 class='form-control m-b' type='text' data-ng-model='inventory.wheelchair_capacity'>
143
+ </div>
144
+
145
+ </div>
146
+
147
+
148
+ <div class='col-sm-12'>
149
+ <div class='form-group'>
150
+ <span>Comments/Description:</span>
151
+ <div class="form-control" style="overflow:scroll;height:200px;max-height:200px" contenteditable="true" data-ng-model='inventory.vehicle_description' >
152
+ {{inventory.vehicle_description}}
153
+ </div>
154
+ </div>
155
+
156
+ <div class="well b bg-light lt wrapper-sm m-t" data-ng-show="mode == 'Editing'">Inventory last modified by <strong>{{inventory.last_modified_by}}</strong> on <strong>{{inventory.human_friendly_updated_at}}</strong>
157
+ </div>
158
+ </div>
159
+
160
+ <div class="line line-dashed b-b line-lg pull-in"></div>
161
+
162
+ <div class="form-group">
163
+
164
+ <!-- <p class='alert alert-info' data-ng-show='uploader.queue.length > 0'>
165
+ You have images that you have selected, but not uploaded yet. <a href='' data-ng-click='uploader.uploadAll()'>Click here</a> to upload these selected images first. Once uploaded, the "Save" button below will become active.
166
+ </p> -->
167
+
168
+ <div class="col-sm-4">
169
+
170
+ <!-- button for saving update to an inventory-->
171
+ <button type="submit" class="btn btn-primary" data-ng-click='updateInventory(inventory)' data-ng-show="mode == 'Editing'" data-ng-disabled='uploader.queue.length > 0'>
172
+ <span>
173
+ Save changes
174
+ <i class="fa fa-spinner fa-spin" data-ng-if='savingInventory'></i>
175
+ </span>
176
+ </button>
177
+
178
+ <!-- button for new inventory-->
179
+ <button type="submit" class="btn btn-primary" data-ng-click='addNew(inventory)' data-ng-show="mode != 'Editing'" data-ng-disabled='uploader.queue.length > 0'>
180
+ <span>
181
+ Save changes
182
+ <i class="fa fa-spinner fa-spin" data-ng-if='savingInventory'></i>
183
+ </span>
184
+ </button>
185
+
186
+ </div>
187
+
188
+ </div>
189
+
190
+ </form>
191
+
192
+ </div>
193
+ </div>
194
+
195
+ </div>
196
+
197
+
198
+ <div class='col-sm-6'>
199
+ <div class="panel panel-default">
200
+ <div class="panel-heading font-bold"> <i class="fa fa-picture-o"></i> IMAGES</div>
201
+ <div class="panel-body">
202
+
203
+ <div class='col-sm-12 image-row'>
204
+ <div class='col-sm-4' data-ng-repeat='image in inventory.images'>
205
+ <img class='thumbnail b b-a wrapper-xs bg-white img-responsive no-radius' data-ng-src='{{image.url_with_host}}' >
206
+ </div>
207
+
208
+ <div class='col-sm-4' data-ng-repeat="item in uploader.queue">
209
+ <div data-ng-thumb="{ file: item._file, height: '125', width: '160' }" class='thumbnail b b-a wrapper-xs bg-white img-responsive'>
210
+ </div>
211
+ </div>
212
+
213
+ <div class='col-sm-4' >
214
+ <div class="b-a b-2x b-dashed wrapper-lg bg-white text-center m-b">
215
+ <span class='btn btn-default btn-file'>
216
+ <i class="fa fa-plus text"></i>
217
+ <span class="text">Add Images</span>
218
+ <input type='file' id='addNewImage' nv-file-select uploader="uploader" multiple>
219
+ </span>
220
+
221
+ <button class='btn btn-default' data-ng-show='uploader.getNotUploadedItems().length' data-ng-click='uploader.uploadAll()'>
222
+ <i class="fa fa-cloud-upload text"></i>
223
+ <span class="text">Upload</span>
224
+ </button>
225
+ </div>
226
+ </div>
227
+ </div>
228
+
229
+ <div class='col-sm-12' data-ng-show='uploader.progress'>
230
+ <div class="progress-striped m-b-sm progress" value="dynamic" type="info" data-ng-class="{ active: uploader.progress == 100 }" >
231
+ <div class="progress-bar progress-bar-info info" role="progressbar" aria-valuemin="0" aria-valuemax="100" ng-style="{width: uploader.progress + '%'}" aria-valuetext="{{uploader.progress}}%" >
232
+ </div>
233
+ </div>
234
+ </div>
235
+
236
+ </div>
237
+
238
+ </div>
239
+ </div>
240
+
241
+ </div>
242
+
243
+ </div>
244
+ </script>