voltar 0.0.23

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 (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>