dashstrap 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.yardopts +1 -0
  4. data/Gemfile +8 -0
  5. data/LICENSE +339 -0
  6. data/README.md +40 -0
  7. data/Rakefile +13 -0
  8. data/TODO.org +3 -0
  9. data/app/assets/fonts/BYekan.eot +0 -0
  10. data/app/assets/fonts/BYekan.ttf +0 -0
  11. data/app/assets/fonts/BYekan.woff +0 -0
  12. data/app/assets/javascripts/dashstrap/application.js +2 -0
  13. data/app/assets/javascripts/dashstrap/functions.js +27 -0
  14. data/app/assets/javascripts/dashstrap/locales/translations.fa.js +5 -0
  15. data/app/assets/javascripts/dashstrap/modules/init.js +1 -0
  16. data/app/assets/javascripts/dashstrap/modules/list-view.js +376 -0
  17. data/app/assets/javascripts/dashstrap/modules/modules.js +79 -0
  18. data/app/assets/javascripts/dashstrap/modules/navigation.js +24 -0
  19. data/app/assets/javascripts/locales/translations.fa.js +5 -0
  20. data/app/assets/locales/templates.pot +92 -0
  21. data/app/assets/locales/translate.fa.pot +93 -0
  22. data/app/assets/stylesheets/dashstrap/ltr/application.css +17 -0
  23. data/app/assets/stylesheets/dashstrap/ltr/ltr.scss +15 -0
  24. data/app/assets/stylesheets/dashstrap/main.css.scss +63 -0
  25. data/app/assets/stylesheets/dashstrap/rtl/#application.css# +4 -0
  26. data/app/assets/stylesheets/dashstrap/rtl/application.css +18 -0
  27. data/app/assets/stylesheets/dashstrap/rtl/rtl.scss +38 -0
  28. data/app/assets/stylesheets/dashstrap/share.scss +7 -0
  29. data/app/assets/stylesheets/faalis/ltr/application.css +0 -0
  30. data/app/assets/stylesheets/faalis/rtl/application.css +0 -0
  31. data/app/assets/stylesheets/simple/ltr/application.css +4 -0
  32. data/app/assets/stylesheets/simple/rtl/application.css +5 -0
  33. data/app/assets/stylesheets/simple/rtl/rtl.scss +16 -0
  34. data/app/assets/stylesheets/simple/share.scss +11 -0
  35. data/app/views/angular/auth/groups/details.html +21 -0
  36. data/app/views/angular/auth/groups/index.html.slim +2 -0
  37. data/app/views/angular/auth/groups/new.html.slim +44 -0
  38. data/app/views/angular/auth/index.html +30 -0
  39. data/app/views/angular/auth/profile/edit.html +54 -0
  40. data/app/views/angular/auth/users/details.html +28 -0
  41. data/app/views/angular/auth/users/index.html +6 -0
  42. data/app/views/angular/auth/users/new.html +57 -0
  43. data/app/views/angular/fields/accordion/accordion-group.html +10 -0
  44. data/app/views/angular/fields/accordion/accordion.html +1 -0
  45. data/app/views/angular/fields/alert/alert.html +7 -0
  46. data/app/views/angular/fields/boolean/boolean.html +4 -0
  47. data/app/views/angular/fields/carousel/carousel.html +8 -0
  48. data/app/views/angular/fields/carousel/slide.html +7 -0
  49. data/app/views/angular/fields/control-combo/control-list.html +19 -0
  50. data/app/views/angular/fields/datepicker/datepicker.html +5 -0
  51. data/app/views/angular/fields/datepicker/day.html +21 -0
  52. data/app/views/angular/fields/datepicker/month.html +16 -0
  53. data/app/views/angular/fields/datepicker/popup.html +10 -0
  54. data/app/views/angular/fields/datepicker/year.html +16 -0
  55. data/app/views/angular/fields/datetime/datetime.html +10 -0
  56. data/app/views/angular/fields/datetime/time.html +25 -0
  57. data/app/views/angular/fields/float/float.html +4 -0
  58. data/app/views/angular/fields/image/image.html +1 -0
  59. data/app/views/angular/fields/integer/integer.html +4 -0
  60. data/app/views/angular/fields/modal/backdrop.html +4 -0
  61. data/app/views/angular/fields/modal/window.html +3 -0
  62. data/app/views/angular/fields/pagination/pager.html +4 -0
  63. data/app/views/angular/fields/pagination/pagination.html +7 -0
  64. data/app/views/angular/fields/popover/popover.html +8 -0
  65. data/app/views/angular/fields/progressbar/bar.html +1 -0
  66. data/app/views/angular/fields/progressbar/progress.html +1 -0
  67. data/app/views/angular/fields/progressbar/progressbar.html +3 -0
  68. data/app/views/angular/fields/rating/rating.html +5 -0
  69. data/app/views/angular/fields/relation/relation.html +43 -0
  70. data/app/views/angular/fields/string/string.html +22 -0
  71. data/app/views/angular/fields/tabs/tab.html +3 -0
  72. data/app/views/angular/fields/tabs/tabset.html +10 -0
  73. data/app/views/angular/fields/tag/tag.html +3 -0
  74. data/app/views/angular/fields/text/text.html +4 -0
  75. data/app/views/angular/fields/timepicker/timepicker.html +26 -0
  76. data/app/views/angular/fields/tooltip/tooltip-html-unsafe-popup.html +4 -0
  77. data/app/views/angular/fields/tooltip/tooltip-popup.html +4 -0
  78. data/app/views/angular/fields/typeahead/typeahead-match.html +1 -0
  79. data/app/views/angular/fields/typeahead/typeahead-popup.html +5 -0
  80. data/app/views/angular/index.html +448 -0
  81. data/app/views/angular/list-view/index.html +161 -0
  82. data/app/views/angular/modules.html +46 -0
  83. data/app/views/angular/nav.html.erb +273 -0
  84. data/app/views/dashstrap/.keep +0 -0
  85. data/app/views/devise/registrations/edit.html.erb +29 -0
  86. data/app/views/devise/registrations/new.html.erb +36 -0
  87. data/app/views/devise/sessions/new.html.erb +33 -0
  88. data/app/views/devise/shared/_links.erb +19 -0
  89. data/app/views/devise/shared/_omni_link.erb +15 -0
  90. data/app/views/faalis/dashboard/index.html.erb +44 -0
  91. data/app/views/faalis/dashboard/login_required_page.html.erb +5 -0
  92. data/app/views/layouts/dashstrap/.keep +0 -0
  93. data/app/views/layouts/faalis/application.html.erb +83 -0
  94. data/app/views/layouts/faalis/dashboard.html.erb +26 -0
  95. data/app/views/layouts/faalis/simple.html.erb +22 -0
  96. data/dashstrap.gemspec +39 -0
  97. data/lib/dashstrap/engine.rb +29 -0
  98. data/lib/dashstrap/version.rb +3 -0
  99. data/lib/dashstrap.rb +4 -0
  100. data/lib/generators/dashstrap/install_generator.rb +14 -0
  101. data/lib/generators/templates/js/list_view/README +31 -0
  102. data/lib/generators/templates/js/list_view/details.html.erb +25 -0
  103. data/lib/generators/templates/js/list_view/index.html.erb +89 -0
  104. data/lib/generators/templates/js/list_view/module.js.erb +10 -0
  105. data/lib/generators/templates/js/list_view/new.html.erb +81 -0
  106. data/lib/generators/templates/js/list_view/partials/add_controller.js.erb +103 -0
  107. data/lib/generators/templates/js/list_view/partials/config.js.erb +20 -0
  108. data/lib/generators/templates/js/list_view/partials/index_controller.js.erb +199 -0
  109. data/lib/generators/templates/js/list_view/partials/menu.js.erb +6 -0
  110. data/lib/generators/templates/stylesheets/application.css +13 -0
  111. data/lib/generators/templates/stylesheets/dashboard/ltr/application.css +1 -0
  112. data/lib/generators/templates/stylesheets/dashboard/rtl/application.css +1 -0
  113. data/lib/generators/templates/stylesheets/ltr/application.css +6 -0
  114. data/lib/generators/templates/stylesheets/rtl/application.css +4 -0
  115. data/lib/tasks/.keep +0 -0
  116. data/lib/tasks/build.rake +15 -0
  117. data/lib/tasks/grunt/Gruntfile.js +30 -0
  118. data/vendor/assets/fonts/FontAwesome.otf +0 -0
  119. data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
  120. data/vendor/assets/fonts/fontawesome-webfont.svg +414 -0
  121. data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
  122. data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
  123. data/vendor/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  124. data/vendor/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  125. data/vendor/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  126. data/vendor/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  127. data/vendor/assets/fonts/ionicons.eot +0 -0
  128. data/vendor/assets/fonts/ionicons.svg +1623 -0
  129. data/vendor/assets/fonts/ionicons.ttf +0 -0
  130. data/vendor/assets/fonts/ionicons.woff +0 -0
  131. data/vendor/assets/javascripts/.keep +0 -0
  132. data/vendor/assets/javascripts/AdminLTE/app.js +1037 -0
  133. data/vendor/assets/javascripts/AdminLTE/dashboard.js +254 -0
  134. data/vendor/assets/javascripts/bootstrap.js +2114 -0
  135. data/vendor/assets/javascripts/ui-bootstrap.js +3799 -0
  136. data/vendor/assets/stylesheets/.keep +0 -0
  137. data/vendor/assets/stylesheets/AdminLTE.css +3024 -0
  138. data/vendor/assets/stylesheets/bootstrap.css +7118 -0
  139. data/vendor/assets/stylesheets/rtl/AdminLTE.css +3032 -0
  140. data/vendor/assets/stylesheets/rtl/bootstrap-rtl.css +442 -0
  141. data/vendor/assets/stylesheets/rtl/bootstrap.css +6239 -0
  142. metadata +366 -0
@@ -0,0 +1,448 @@
1
+ <!-- Small boxes (Stat box) -->
2
+ <div class="row">
3
+ <div class="col-lg-3 col-xs-6">
4
+ <!-- small box -->
5
+ <div class="small-box bg-aqua">
6
+ <div class="inner">
7
+ <h3>
8
+ 150
9
+ </h3>
10
+ <p>
11
+ New Orders
12
+ </p>
13
+ </div>
14
+ <div class="icon">
15
+ <i class="ion ion-bag"></i>
16
+ </div>
17
+ <a href="#" class="small-box-footer">
18
+ More info <i class="fa fa-arrow-circle-right"></i>
19
+ </a>
20
+ </div>
21
+ </div><!-- ./col -->
22
+ <div class="col-lg-3 col-xs-6">
23
+ <!-- small box -->
24
+ <div class="small-box bg-green">
25
+ <div class="inner">
26
+ <h3>
27
+ 53<sup style="font-size: 20px">%</sup>
28
+ </h3>
29
+ <p>
30
+ Bounce Rate
31
+ </p>
32
+ </div>
33
+ <div class="icon">
34
+ <i class="ion ion-stats-bars"></i>
35
+ </div>
36
+ <a href="#" class="small-box-footer">
37
+ <%= _("More info") %> <i class="fa fa-arrow-circle-right"></i>
38
+ </a>
39
+ </div>
40
+ </div><!-- ./col -->
41
+ <div class="col-lg-3 col-xs-6">
42
+ <!-- small box -->
43
+ <div class="small-box bg-yellow">
44
+ <div class="inner">
45
+ <h3>
46
+ 44
47
+ </h3>
48
+ <p>
49
+ User Registrations
50
+ </p>
51
+ </div>
52
+ <div class="icon">
53
+ <i class="ion ion-person-add"></i>
54
+ </div>
55
+ <a href="#" class="small-box-footer">
56
+ More info <i class="fa fa-arrow-circle-right"></i>
57
+ </a>
58
+ </div>
59
+ </div><!-- ./col -->
60
+ <div class="col-lg-3 col-xs-6">
61
+ <!-- small box -->
62
+ <div class="small-box bg-red">
63
+ <div class="inner">
64
+ <h3>
65
+ 65
66
+ </h3>
67
+ <p>
68
+ Unique Visitors
69
+ </p>
70
+ </div>
71
+ <div class="icon">
72
+ <i class="ion ion-pie-graph"></i>
73
+ </div>
74
+ <a href="#" class="small-box-footer">
75
+ More info <i class="fa fa-arrow-circle-right"></i>
76
+ </a>
77
+ </div>
78
+ </div><!-- ./col -->
79
+ </div><!-- /.row -->
80
+
81
+ <!-- Main row -->
82
+ <div class="row">
83
+ <!-- Left col -->
84
+ <section class="col-lg-7 connectedSortable">
85
+
86
+
87
+ <!-- Custom tabs (Charts with tabs)-->
88
+ <div class="nav-tabs-custom">
89
+ <!-- Tabs within a box -->
90
+ <ul class="nav nav-tabs pull-right">
91
+ <li class="active"><a href="#revenue-chart" data-toggle="tab"><%= ("Area") %></a></li>
92
+ <li><a href="#sales-chart" data-toggle="tab"><%= ("Donut") %></a></li>
93
+ <li class="pull-left header"><i class="fa fa-inbox"></i> <%= ("Sales") %></li>
94
+ </ul>
95
+ <div class="tab-content no-padding">
96
+ <!-- Morris chart - Sales -->
97
+ <div class="chart tab-pane active" id="revenue-chart" style="position: relative; height: 300px;"></div>
98
+ <div class="chart tab-pane" id="sales-chart" style="position: relative; height: 300px;"></div>
99
+ </div>
100
+ </div><!-- /.nav-tabs-custom -->
101
+
102
+ <!-- Chat box -->
103
+ <div class="box box-success">
104
+ <div class="box-header">
105
+ <i class="fa fa-comments-o"></i>
106
+ <h3 class="box-title">Chat</h3>
107
+ <div class="box-tools pull-right" data-toggle="tooltip" title="Status">
108
+ <div class="btn-group" data-toggle="btn-toggle" >
109
+ <button type="button" class="btn btn-default btn-sm active"><i class="fa fa-square text-green"></i></button>
110
+ <button type="button" class="btn btn-default btn-sm"><i class="fa fa-square text-red"></i></button>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ <div class="box-body chat" id="chat-box">
115
+ <!-- chat item -->
116
+ <div class="item">
117
+ <img src="img/avatar.png" alt="user image" class="online"/>
118
+ <p class="message">
119
+ <a href="#" class="name">
120
+ <small class="text-muted pull-right"><i class="fa fa-clock-o"></i> 2:15</small>
121
+ Mike Doe
122
+ </a>
123
+ I would like to meet you to discuss the latest news about
124
+ the arrival of the new theme. They say it is going to be one the
125
+ best themes on the market
126
+ </p>
127
+ <div class="attachment">
128
+ <h4>Attachments:</h4>
129
+ <p class="filename">
130
+ Theme-thumbnail-image.jpg
131
+ </p>
132
+ <div class="pull-right">
133
+ <button class="btn btn-primary btn-sm btn-flat">Open</button>
134
+ </div>
135
+ </div><!-- /.attachment -->
136
+ </div><!-- /.item -->
137
+ <!-- chat item -->
138
+ <div class="item">
139
+ <img src="img/avatar2.png" alt="user image" class="offline"/>
140
+ <p class="message">
141
+ <a href="#" class="name">
142
+ <small class="text-muted pull-right"><i class="fa fa-clock-o"></i> 5:15</small>
143
+ Jane Doe
144
+ </a>
145
+ I would like to meet you to discuss the latest news about
146
+ the arrival of the new theme. They say it is going to be one the
147
+ best themes on the market
148
+ </p>
149
+ </div><!-- /.item -->
150
+ <!-- chat item -->
151
+ <div class="item">
152
+ <img src="img/avatar3.png" alt="user image" class="offline"/>
153
+ <p class="message">
154
+ <a href="#" class="name">
155
+ <small class="text-muted pull-right"><i class="fa fa-clock-o"></i> 5:30</small>
156
+ Susan Doe
157
+ </a>
158
+ I would like to meet you to discuss the latest news about
159
+ the arrival of the new theme. They say it is going to be one the
160
+ best themes on the market
161
+ </p>
162
+ </div><!-- /.item -->
163
+ </div><!-- /.chat -->
164
+ <div class="box-footer">
165
+ <div class="input-group">
166
+ <input class="form-control" placeholder="Type message..."/>
167
+ <div class="input-group-btn">
168
+ <button class="btn btn-success"><i class="fa fa-plus"></i></button>
169
+ </div>
170
+ </div>
171
+ </div>
172
+ </div><!-- /.box (chat box) -->
173
+
174
+ <!-- TO DO List -->
175
+ <div class="box box-primary">
176
+ <div class="box-header">
177
+ <i class="ion ion-clipboard"></i>
178
+ <h3 class="box-title">To Do List</h3>
179
+ <div class="box-tools pull-right">
180
+ <ul class="pagination pagination-sm inline">
181
+ <li><a href="#">&laquo;</a></li>
182
+ <li><a href="#">1</a></li>
183
+ <li><a href="#">2</a></li>
184
+ <li><a href="#">3</a></li>
185
+ <li><a href="#">&raquo;</a></li>
186
+ </ul>
187
+ </div>
188
+ </div><!-- /.box-header -->
189
+ <div class="box-body">
190
+ <ul class="todo-list">
191
+ <li>
192
+ <!-- drag handle -->
193
+ <span class="handle">
194
+ <i class="fa fa-ellipsis-v"></i>
195
+ <i class="fa fa-ellipsis-v"></i>
196
+ </span>
197
+ <!-- checkbox -->
198
+ <input type="checkbox" value="" name=""/>
199
+ <!-- todo text -->
200
+ <span class="text">Design a nice theme</span>
201
+ <!-- Emphasis label -->
202
+ <small class="label label-danger"><i class="fa fa-clock-o"></i> 2 mins</small>
203
+ <!-- General tools such as edit or delete-->
204
+ <div class="tools">
205
+ <i class="fa fa-edit"></i>
206
+ <i class="fa fa-trash-o"></i>
207
+ </div>
208
+ </li>
209
+ <li>
210
+ <span class="handle">
211
+ <i class="fa fa-ellipsis-v"></i>
212
+ <i class="fa fa-ellipsis-v"></i>
213
+ </span>
214
+ <input type="checkbox" value="" name=""/>
215
+ <span class="text">Make the theme responsive</span>
216
+ <small class="label label-info"><i class="fa fa-clock-o"></i> 4 hours</small>
217
+ <div class="tools">
218
+ <i class="fa fa-edit"></i>
219
+ <i class="fa fa-trash-o"></i>
220
+ </div>
221
+ </li>
222
+ <li>
223
+ <span class="handle">
224
+ <i class="fa fa-ellipsis-v"></i>
225
+ <i class="fa fa-ellipsis-v"></i>
226
+ </span>
227
+ <input type="checkbox" value="" name=""/>
228
+ <span class="text">Let theme shine like a star</span>
229
+ <small class="label label-warning"><i class="fa fa-clock-o"></i> 1 day</small>
230
+ <div class="tools">
231
+ <i class="fa fa-edit"></i>
232
+ <i class="fa fa-trash-o"></i>
233
+ </div>
234
+ </li>
235
+ <li>
236
+ <span class="handle">
237
+ <i class="fa fa-ellipsis-v"></i>
238
+ <i class="fa fa-ellipsis-v"></i>
239
+ </span>
240
+ <input type="checkbox" value="" name=""/>
241
+ <span class="text">Let theme shine like a star</span>
242
+ <small class="label label-success"><i class="fa fa-clock-o"></i> 3 days</small>
243
+ <div class="tools">
244
+ <i class="fa fa-edit"></i>
245
+ <i class="fa fa-trash-o"></i>
246
+ </div>
247
+ </li>
248
+ <li>
249
+ <span class="handle">
250
+ <i class="fa fa-ellipsis-v"></i>
251
+ <i class="fa fa-ellipsis-v"></i>
252
+ </span>
253
+ <input type="checkbox" value="" name=""/>
254
+ <span class="text">Check your messages and notifications</span>
255
+ <small class="label label-primary"><i class="fa fa-clock-o"></i> 1 week</small>
256
+ <div class="tools">
257
+ <i class="fa fa-edit"></i>
258
+ <i class="fa fa-trash-o"></i>
259
+ </div>
260
+ </li>
261
+ <li>
262
+ <span class="handle">
263
+ <i class="fa fa-ellipsis-v"></i>
264
+ <i class="fa fa-ellipsis-v"></i>
265
+ </span>
266
+ <input type="checkbox" value="" name=""/>
267
+ <span class="text">Let theme shine like a star</span>
268
+ <small class="label label-default"><i class="fa fa-clock-o"></i> 1 month</small>
269
+ <div class="tools">
270
+ <i class="fa fa-edit"></i>
271
+ <i class="fa fa-trash-o"></i>
272
+ </div>
273
+ </li>
274
+ </ul>
275
+ </div><!-- /.box-body -->
276
+ <div class="box-footer clearfix no-border">
277
+ <button class="btn btn-default pull-right"><i class="fa fa-plus"></i> Add item</button>
278
+ </div>
279
+ </div><!-- /.box -->
280
+
281
+ <!-- quick email widget -->
282
+ <div class="box box-info">
283
+ <div class="box-header">
284
+ <i class="fa fa-envelope"></i>
285
+ <h3 class="box-title">Quick Email</h3>
286
+ <!-- tools box -->
287
+ <div class="pull-right box-tools">
288
+ <button class="btn btn-info btn-sm" data-widget="remove" data-toggle="tooltip" title="Remove"><i class="fa fa-times"></i></button>
289
+ </div><!-- /. tools -->
290
+ </div>
291
+ <div class="box-body">
292
+ <form action="#" method="post">
293
+ <div class="form-group">
294
+ <input type="email" class="form-control" name="emailto" placeholder="Email to:"/>
295
+ </div>
296
+ <div class="form-group">
297
+ <input type="text" class="form-control" name="subject" placeholder="Subject"/>
298
+ </div>
299
+ <div>
300
+ <textarea class="textarea" placeholder="Message" style="width: 100%; height: 125px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
301
+ </div>
302
+ </form>
303
+ </div>
304
+ <div class="box-footer clearfix">
305
+ <button class="pull-right btn btn-default" id="sendEmail">Send <i class="fa fa-arrow-circle-right"></i></button>
306
+ </div>
307
+ </div>
308
+
309
+ </section><!-- /.Left col -->
310
+
311
+ <!-- right col (We are only adding the ID to make the widgets sortable)-->
312
+ <section class="col-lg-5 connectedSortable">
313
+
314
+ <!-- Map box -->
315
+ <div class="box box-solid bg-light-blue-gradient">
316
+ <div class="box-header">
317
+ <!-- tools box -->
318
+ <div class="pull-right box-tools">
319
+ <button class="btn btn-primary btn-sm daterange pull-right" data-toggle="tooltip" title="Date range"><i class="fa fa-calendar"></i></button>
320
+ <button class="btn btn-primary btn-sm pull-right" data-widget='collapse' data-toggle="tooltip" title="Collapse" style="margin-right: 5px;"><i class="fa fa-minus"></i></button>
321
+ </div><!-- /. tools -->
322
+
323
+ <i class="fa fa-map-marker"></i>
324
+ <h3 class="box-title">
325
+ Visitors
326
+ </h3>
327
+ </div>
328
+ <div class="box-body">
329
+ <div id="world-map" style="height: 250px;"></div>
330
+ </div><!-- /.box-body-->
331
+ <div class="box-footer no-border">
332
+ <div class="row">
333
+ <div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
334
+ <div id="sparkline-1"></div>
335
+ <div class="knob-label">Visitors</div>
336
+ </div><!-- ./col -->
337
+ <div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
338
+ <div id="sparkline-2"></div>
339
+ <div class="knob-label" translate>Online</div>
340
+ </div><!-- ./col -->
341
+ <div class="col-xs-4 text-center">
342
+ <div id="sparkline-3"></div>
343
+ <div class="knob-label">Exists</div>
344
+ </div><!-- ./col -->
345
+ </div><!-- /.row -->
346
+ </div>
347
+ </div>
348
+ <!-- /.box -->
349
+
350
+ <!-- solid sales graph -->
351
+ <div class="box box-solid bg-teal-gradient">
352
+ <div class="box-header">
353
+ <i class="fa fa-th"></i>
354
+ <h3 class="box-title">Sales Graph</h3>
355
+ <div class="box-tools pull-right">
356
+ <button class="btn bg-teal btn-sm" data-widget="collapse"><i class="fa fa-minus"></i></button>
357
+ <button class="btn bg-teal btn-sm" data-widget="remove"><i class="fa fa-times"></i></button>
358
+ </div>
359
+ </div>
360
+ <div class="box-body border-radius-none">
361
+ <div class="chart" id="line-chart" style="height: 250px;"></div>
362
+ </div><!-- /.box-body -->
363
+ <div class="box-footer no-border">
364
+ <div class="row">
365
+ <div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
366
+ <input type="text" class="knob" data-readonly="true" value="20" data-width="60" data-height="60" data-fgColor="#39CCCC"/>
367
+ <div class="knob-label">Mail-Orders</div>
368
+ </div><!-- ./col -->
369
+ <div class="col-xs-4 text-center" style="border-right: 1px solid #f4f4f4">
370
+ <input type="text" class="knob" data-readonly="true" value="50" data-width="60" data-height="60" data-fgColor="#39CCCC"/>
371
+ <div class="knob-label">Online</div>
372
+ </div><!-- ./col -->
373
+ <div class="col-xs-4 text-center">
374
+ <input type="text" class="knob" data-readonly="true" value="30" data-width="60" data-height="60" data-fgColor="#39CCCC"/>
375
+ <div class="knob-label">In-Store</div>
376
+ </div><!-- ./col -->
377
+ </div><!-- /.row -->
378
+ </div><!-- /.box-footer -->
379
+ </div><!-- /.box -->
380
+
381
+ <!-- Calendar -->
382
+ <div class="box box-solid bg-green-gradient">
383
+ <div class="box-header">
384
+ <i class="fa fa-calendar"></i>
385
+ <h3 class="box-title">Calendar</h3>
386
+ <!-- tools box -->
387
+ <div class="pull-right box-tools">
388
+ <!-- button with a dropdown -->
389
+ <div class="btn-group">
390
+ <button class="btn btn-success btn-sm dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bars"></i></button>
391
+ <ul class="dropdown-menu pull-right" role="menu">
392
+ <li><a href="#">Add new event</a></li>
393
+ <li><a href="#">Clear events</a></li>
394
+ <li class="divider"></li>
395
+ <li><a href="#">View calendar</a></li>
396
+ </ul>
397
+ </div>
398
+ <button class="btn btn-success btn-sm" data-widget="collapse"><i class="fa fa-minus"></i></button>
399
+ <button class="btn btn-success btn-sm" data-widget="remove"><i class="fa fa-times"></i></button>
400
+ </div><!-- /. tools -->
401
+ </div><!-- /.box-header -->
402
+ <div class="box-body no-padding">
403
+ <!--The calendar -->
404
+ <div id="calendar" style="width: 100%"></div>
405
+ </div><!-- /.box-body -->
406
+ <div class="box-footer text-black">
407
+ <div class="row">
408
+ <div class="col-sm-6">
409
+ <!-- Progress bars -->
410
+ <div class="clearfix">
411
+ <span class="pull-left">Task #1</span>
412
+ <small class="pull-right">90%</small>
413
+ </div>
414
+ <div class="progress xs">
415
+ <div class="progress-bar progress-bar-green" style="width: 90%;"></div>
416
+ </div>
417
+
418
+ <div class="clearfix">
419
+ <span class="pull-left">Task #2</span>
420
+ <small class="pull-right">70%</small>
421
+ </div>
422
+ <div class="progress xs">
423
+ <div class="progress-bar progress-bar-green" style="width: 70%;"></div>
424
+ </div>
425
+ </div><!-- /.col -->
426
+ <div class="col-sm-6">
427
+ <div class="clearfix">
428
+ <span class="pull-left">Task #3</span>
429
+ <small class="pull-right">60%</small>
430
+ </div>
431
+ <div class="progress xs">
432
+ <div class="progress-bar progress-bar-green" style="width: 60%;"></div>
433
+ </div>
434
+
435
+ <div class="clearfix">
436
+ <span class="pull-left">Task #4</span>
437
+ <small class="pull-right">40%</small>
438
+ </div>
439
+ <div class="progress xs">
440
+ <div class="progress-bar progress-bar-green" style="width: 40%;"></div>
441
+ </div>
442
+ </div><!-- /.col -->
443
+ </div><!-- /.row -->
444
+ </div>
445
+ </div><!-- /.box -->
446
+
447
+ </section><!-- right col -->
448
+ </div><!-- /.row (main row) -->
@@ -0,0 +1,161 @@
1
+
2
+ <div class="row clearmargin" data-ng-transclude>
3
+ </div>
4
+
5
+
6
+
7
+
8
+
9
+
10
+ <div class="row">
11
+ <div class="col-xs-12">
12
+ <div class="box">
13
+ <div class="box-header">
14
+ <h3 class="box-title" ng-if="button_on_left == false">
15
+ <!--TITLE -->
16
+ {{ list_title }}
17
+ </h3>
18
+
19
+ <div class="box-title" ng-if="button_on_left == true">
20
+ <button data-ng-repeat="button in buttons" class="{{ button.classes }} pull-right btn" type="button" if-user="has_permission(button)"><a object-action object="button"><i class="{{ button.icon }}"></i> {{ button.title | translate }}</a></button>
21
+ </div>
22
+
23
+
24
+ <div class="box-tools">
25
+
26
+ <div class="input-group pull-right input-group-sm search-group col-sm-2" ng-if="search !== true">
27
+ <input type="search" class="form-control " ng-model="searchterm" placeholder="{{ 'Search' | translate}} ...">
28
+ <span class="input-group-addon"><i class="fa fa-search"></i></span>
29
+ </div>
30
+ <span ng-if="!button_on_left">
31
+ <button data-ng-repeat="button in buttons" class="{{ button.classes }} pull-right btn" type="button" if-user="has_permission(button)"><a object-action object="button"><i class="{{ button.icon }}"></i> {{ button.title | translate }}</a></button>
32
+ </span>
33
+ </div>
34
+
35
+
36
+ </div><!-- /.box-header -->
37
+
38
+ <div class="box-body table-responsive just-top-padding">
39
+
40
+ <table class="table table-hover list-view-table" ng-if="get_current_page().length > 0">
41
+
42
+ <tbody>
43
+ <tr>
44
+ <th><i ng-click="select_all()" ng-class="{fa:true, 'fa-square':!is_all_selected, 'fa-check-square':is_all_selected, pointer:true}"></i></th>
45
+ <th>{{ title_attr }}</th>
46
+ <th></th>
47
+ <th></th>
48
+ </tr>
49
+
50
+ <tr ng-repeat-start="object in get_current_page() track by $index" class='title-row'>
51
+
52
+ <td>
53
+ <i ng-click="select_item(object)" ng-class="{fa:true, 'fa-check-square':object.is_selected, 'fa-square':!object.is_selected, pointer:true}"></i>
54
+ </td>
55
+
56
+ <td>
57
+ {{ get_attr(object, title_attr) }}
58
+ </td>
59
+
60
+ <td>
61
+ <div class="pull-left" ng-init = "badges = badge_processor(object)" >
62
+ <span ng-repeat="badge in badges" class="badge {{badge.color}}" title="{{badge.text}}">
63
+ <i ng-show="badge.icon !== undefined" class="{{badge.icon}}"></i>{{badge.text}}
64
+ </span>
65
+
66
+ </div>
67
+ </td>
68
+ <td class="row_buttons">
69
+ <div class="tools" >
70
+ <div class="pull-right" ng-init = "tools = tools_processor(object)" >
71
+
72
+ <span ng-repeat="tool in tools">
73
+
74
+ <a href="{{ tool.url }}" class="pointer tool" ng-if="tool.url !== undefined">
75
+ <span translate>{{ tool.text }}</span>
76
+ <i class="{{ tool.icon }} "> </i>
77
+ </a>
78
+
79
+ <span ng-click="tool.callback(object)" class="pointer tool" ng-if="tool.callback !== undefined">
80
+ <span translate>{{ tool.text }}</span>
81
+ <i class="{{ tool.icon }}"></i>
82
+ </span>
83
+ </span>
84
+
85
+ <span ng-if="tool.toggle-details !== undefined" ng-click="toggle_details(object)" class="pointer tool" >
86
+ <span translate>View</span>
87
+ <i class="{{ handle_icon }} {{ handle_icon_expand(object) }} handle fa"></i>
88
+ </span>
89
+
90
+ </div>
91
+ </td>
92
+
93
+ </tr>
94
+ <tr ng-show="should_view(object)" ng-repeat-end>
95
+ <td colspan="20" class="details">
96
+ <div ng-include="details_template">
97
+ </div>
98
+ </td>
99
+ </tr>
100
+
101
+
102
+ </tbody>
103
+ </table>
104
+
105
+ <table class="table table-hover list-view-table" ng-show="get_current_page().length == 0">
106
+ <tbody>
107
+ <tr>
108
+ <td colspan="40" style="text-align: center;">
109
+ <span translate>There is no data!</span>
110
+ </td>
111
+ </tr>
112
+ </tbody>
113
+ </table>
114
+ </div><!-- /.box-body -->
115
+
116
+ <!-- Box fotter -->
117
+ <div class="box-footer clearfix">
118
+ <span ng-if="has_pagination()">
119
+ <ul class="pagination pagination-sm no-margin pull-left">
120
+ <li><a ng-click="go_to_first_page()">
121
+ <i class="fa {{ first_page_icon }}"></i>
122
+ </a></li>
123
+
124
+ <li><a ng-click="go_to_prev_page()">
125
+ <i class="fa {{ prev_page_icon }}" ></i>
126
+ </a></li>
127
+
128
+
129
+ <li><a ng-click="go_to_next_page()">
130
+ <i class="fa {{ next_page_icon }}"></i>
131
+ </a></li>
132
+ <li><a ng-click="go_to_last_page()">
133
+ <i class="fa {{ last_page_icon }}"></i>
134
+ </a></li>
135
+ </ul>
136
+
137
+ <div class="input-group input-group-sm pagination_page pull-left">
138
+ <input type="text" class="pagination_input form-control" ng-model="targetpage" ng-keypress="go_to_page($event, targetpage)" tabindex="3" value="{{current_page()}}" novalidate>
139
+ <span class="input-group-btn">
140
+ <button class="btn btn-info btn-flat" ng-click="go_to_page($event, targetpage)" type="button" translate>Go!</button>
141
+ </span>
142
+ </div>
143
+ </span>
144
+ <span class="footer-info">
145
+ <span class="badge bg-red" title="{{ 'Current Page' | translate }}"><i class="fa fa-file-o"></i> {{ current_page() }}</span>
146
+ <span class="badge bg-yellow" title="{{ 'Total Pages' | translate}}"><i class="fa fa-files-o"></i> {{ total_pages() }}</span>
147
+ <span class="badge bg-green" title="{{ 'Item(s)' | translate }}"><i class="fa fa-list-ul"></i> {{ objects_count() }}</span>
148
+ <span class="badge bg-blue" title="{{ 'Selected' | translate }}"><i class="fa {{ hand_icon }}"></i> {{ selected_count() }}</span>
149
+ </span>
150
+
151
+ <div class="pull-right">
152
+ <span class="btn btn-sm bg-olive" ng-click="toggle_select()" translate>Toggle Select</span>
153
+ <span ng-if="can('destroy', permission_model)" ng-click="delete_items()"><span class="btn btn-sm btn-danger">{{delete_title || "Delete"}}</span></span>
154
+
155
+ </div>
156
+ </div>
157
+ <!-- end of box footer -->
158
+
159
+ </div><!-- /.box -->
160
+ </div>
161
+ </div>
@@ -0,0 +1,46 @@
1
+ <!-- Left side column. contains the logo and sidebar -->
2
+ <!-- sidebar: style can be found in sidebar.less -->
3
+ <section class="sidebar" data-ng-controller="ModulesController as controller">
4
+ <!-- Sidebar user panel -->
5
+ <div class="user-panel">
6
+ <div class="pull-left image">
7
+ <!--<img src="img/avatar3.png" class="img-circle" alt="User Image" />-->
8
+ </div>
9
+ <div class="pull-left info">
10
+ <p><%= _("Hello ") %>, <%= current_user.name %> </p>
11
+
12
+ <a href="#"><i class="fa fa-circle text-success"></i> <span Translate>Online</span></a>
13
+ </div>
14
+ </div>
15
+ <!-- search form -->
16
+ <form class="sidebar-form">
17
+ <div class="input-group">
18
+ <input type="text" name="q" class="form-control" placeholder="<%= _("Search...") %>"/>
19
+ <span class="input-group-btn">
20
+ <button type='submit' name='seach' id='search-btn' class="btn btn-flat"><i class="fa fa-search"></i></button>
21
+ </span>
22
+ </div>
23
+ </form>
24
+
25
+ <!-- /.search form -->
26
+ <!-- sidebar menu: : style can be found in sidebar.less -->
27
+ <ul class="sidebar-menu" >
28
+ <li class="active">
29
+ <a href="#/">
30
+ <i class="fa fa-dashboard"></i> <span translate>Dashboard</span>
31
+ </a>
32
+ </li>
33
+
34
+ <li data-ng-repeat="module in controller.modules" class="treeview point" ng-click="controller.view_menu(module)">
35
+ <a>
36
+ <i class="{{ module.icon }}"></i> <span translate>{{ module.title}}</span>
37
+ <i class="fa fa-angle-left pull-right"></i>
38
+ </a>
39
+
40
+ <ul class="treeview-menu slide" ng-if="module.show_menu">
41
+ <li ng-repeat="menu_item in module.menu_items" ng-click="controller.on_click(menu_item.url)"><a><span>{{ menu_item.title | translate }}</span></a></li>
42
+ </ul>
43
+ </li>
44
+ </ul>
45
+ </section>
46
+ <!-- /.sidebar -->