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,15 @@
1
+ .list-view-table {
2
+ tr {
3
+ .row_buttons {
4
+ padding-right: 1em;
5
+ text-align: right;
6
+ }
7
+
8
+ }
9
+
10
+
11
+ }
12
+
13
+ .select2-container {
14
+ width: 100%;
15
+ }
@@ -0,0 +1,63 @@
1
+ $tools_link_color: #3f3f3f;
2
+
3
+ .just-top-padding {
4
+ padding: inherit !important;
5
+ padding-top: 0.5em !important;
6
+ }
7
+
8
+ .box-tools, .box-title {
9
+ .btn {
10
+ margin-left: 0.2em;
11
+ margin-right: 0.2em;
12
+ a {
13
+ color: #fff;
14
+ }
15
+ }
16
+ .search-group {
17
+ margin-left: 0.2em;
18
+ margin-right: 0.2em;
19
+ }
20
+
21
+ }
22
+
23
+ .list-view-table {
24
+ tr {
25
+ th:first-child, td:first-child {
26
+ width: 2em;
27
+ }
28
+ th:last-child, td:last-child {
29
+ span {
30
+ cursor: pointer;
31
+ }
32
+ }
33
+
34
+ &.title-row {
35
+
36
+ .tools {
37
+ visibility: hidden;
38
+
39
+ direction: ltr;
40
+ a {
41
+ color: $tools_link_color;
42
+ }
43
+ }
44
+
45
+ &:hover {
46
+ .tools {
47
+ visibility: visible;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ .pointer {
55
+ cursor: pointer;
56
+ }
57
+
58
+ .pagination_page {
59
+ width: 8em;
60
+ padding-left: 1em;
61
+ padding-right: 1em;
62
+
63
+ }
@@ -0,0 +1,4 @@
1
+ //= require dashstrap/main
2
+ //= require dashstrap/rtl/rtl
3
+
4
+
@@ -0,0 +1,18 @@
1
+ //= require rtl/bootstrap
2
+ //= require rtl/bootstrap-rtl
3
+ //= require font-awesome
4
+ /*
5
+ ionicons
6
+ morris
7
+ jquery-jvectormap-1.2.2
8
+ datepicker3.css
9
+ daterangepicker-bs3
10
+ bootstrap3-wysihtml5
11
+ */
12
+
13
+ //= require rtl/AdminLTE
14
+ //= require dashstrap/share
15
+ //= require dashstrap/main
16
+ //= require dashstrap/rtl/rtl
17
+ //= require select2/select2
18
+ //= require select2/select2-bootstrap
@@ -0,0 +1,38 @@
1
+ @font-face {
2
+ font-family: 'yekan';
3
+ src: font-url('/fonts/BYekan.eot');
4
+ src: font-url("/fonts/Yekan.eot#iefix") format('embedded-opentype'),
5
+ font-url("/fonts/Yekan.woff") format('woff'),
6
+ font-url("/fonts/Yekan.ttf") format('truetype');
7
+ }
8
+
9
+
10
+ div, p, h1,h2,h3,h4,h5,h6,a{
11
+ font-family: 'yekan', tahoma;
12
+ }
13
+
14
+ .logo{
15
+ font-family: 'yekan', tahoma !important;
16
+ }
17
+
18
+ .list-view-table {
19
+ tr {
20
+ .row_buttons {
21
+ padding-left: 1em;
22
+ text-align: left;
23
+ }
24
+
25
+ &.title-row {
26
+
27
+ .tools {
28
+
29
+ .tool {
30
+ margin-left:2em;
31
+
32
+ }
33
+ }
34
+
35
+ }
36
+
37
+ }
38
+ }
@@ -0,0 +1,7 @@
1
+ .sidebar .sidebar-menu .treeview-menu {
2
+ display: block;
3
+ }
4
+
5
+ .point {
6
+ cursor: pointer;
7
+ }
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ //= require bootstrap
2
+ //= require font-awesome
3
+ //= require AdminLTE
4
+ //= require simple/share
@@ -0,0 +1,5 @@
1
+ //= require simple/rtl/rtl
2
+ //= require bootstrap
3
+ //= require font-awesome
4
+ //= require AdminLTE
5
+ //= require simple/share
@@ -0,0 +1,16 @@
1
+ @font-face {
2
+ font-family: 'yekan';
3
+ src: font-url('/fonts/BYekan.eot');
4
+ src: font-url("/fonts/Yekan.eot#iefix") format('embedded-opentype'),
5
+ font-url("/fonts/Yekan.woff") format('woff'),
6
+ font-url("/fonts/Yekan.ttf") format('truetype');
7
+ }
8
+
9
+
10
+ div, p, h1,h2,h3,h4,h5,h6,a{
11
+ font-family: 'yekan', tahoma;
12
+ }
13
+
14
+ .logo{
15
+ font-family: 'yekan', tahoma !important;
16
+ }
@@ -0,0 +1,11 @@
1
+ #rememberme {
2
+ input {
3
+ display: inline;
4
+ }
5
+ }
6
+
7
+ .form-box {
8
+ .alert {
9
+ margin-left: 0;
10
+ }
11
+ }
@@ -0,0 +1,21 @@
1
+ <div class="details">
2
+ <p>
3
+ <b translate>Group Name :</b>{{this.object.name}}
4
+ </p>
5
+
6
+ <p>
7
+ <b translate>Permissions :</b>
8
+ <ul>
9
+ <li ng-repeat="perm in this.object.permissions">{{ perm.string_repr }}</li>
10
+ </ul>
11
+ </p>
12
+
13
+ <ul class="button-group float-right">
14
+ <a ng-href="#/auth/groups/{{ this.object.id }}/edit" class="small">
15
+ <span class="fa fa-edit"></span> <span translated>Edit</span>
16
+ </a>
17
+ <!--<a ng-href="#/auth/groups/{{ this.object.id }}" class="small">
18
+ <span class="fa fa-eye"></span><span translated>Show</span>-->
19
+ </a>
20
+ </ul>
21
+ </div>
@@ -0,0 +1,2 @@
1
+ div[ui-view]
2
+ list-view buttons="buttons" objects="groups" title-attribute="'name'" details-template="details_template" item-per-page="10" on_delete="on_delete"
@@ -0,0 +1,44 @@
1
+ .row
2
+ .col-sm-12.col-lg-9
3
+ .box.box-primary
4
+ .box-header
5
+ .box-title ng-if="!editing"
6
+ = _('New Group')
7
+
8
+ .box-title ng-if="editing"
9
+ = _('Edit Group')
10
+
11
+ form[name="new_group" role="form" novalidate]
12
+ .box-body
13
+ .row
14
+ .col-sm-12.col-lg-6
15
+ label for="group_name"
16
+ = ('Group name')
17
+
18
+ input#group_name.form-control[placeholder==(_('Enter the name of group you want to create')) ng-model="new_name" type="text" required]
19
+
20
+ .box-footer
21
+ .row
22
+ .col-sm-12
23
+ button.btn.btn-primary type="submit" ng-click="save()" ng-disabled="form.$invalid"
24
+ span
25
+ i.fa.fa-check
26
+ = _('Save')
27
+
28
+ button.btn.btn-danger type="submit" ng-click="cancel()"
29
+ i.fa.fa-times
30
+ = _('Cancel')
31
+ .col-sm-12.col-lg-3
32
+ .box
33
+ .box-header
34
+ .box-title
35
+ = _('Groups to use as template')
36
+ .row
37
+ .col-sm-9
38
+ .box.box-warning
39
+ .box-header
40
+ .box-title
41
+ = _("Permissions")
42
+
43
+ .box-body
44
+ .row
@@ -0,0 +1,30 @@
1
+ <div class="row clearmargin">
2
+
3
+ <div class="columns large-5 small-offset-1 clearpadding">
4
+
5
+ <a href="#/auth/users">
6
+ <div class="widget red">
7
+ <div class="text-center">
8
+ <span class="icon text-4x"><i class="fa fa-user"></i></span>
9
+ <span class="text-2x" translate>Users</span>
10
+ </div>
11
+
12
+ </div>
13
+ </a>
14
+
15
+ </div>
16
+
17
+
18
+ <div class="columns large-5 clearpadding">
19
+
20
+ <a href="#/auth/groups">
21
+ <div class="widget blue">
22
+ <div class=" text-center">
23
+ <span class="icon text-4x"><i class="fa fa-group"></i></span>
24
+ <span class="text-2x" translate>Groups</span>
25
+ </div>
26
+ </div>
27
+ </a>
28
+ </div>
29
+
30
+ </div>
@@ -0,0 +1,54 @@
1
+ <div class="newform">
2
+ <fieldset class="form">
3
+
4
+ <legend translate>Edit Profile</legend>
5
+
6
+ <div class="row">
7
+ <div class="small-4 columns">
8
+ <label for="first_name" translate>First Name :</label>
9
+ <input id="id_first_name" type="text" name="first_name" required ng-model="first_name" required>
10
+ <small id="id_first_name_msg"></small>
11
+ </div>
12
+
13
+ <div class="small-4 columns float-left small-offset-2">
14
+ <label for="last_name" translate>Last Name :</label>
15
+ <input id="id_last_name" type="text" name="last_name" required ng-model="last_name">
16
+ <small id="id_last_name_msg"></small>
17
+
18
+ </div>
19
+ </div>
20
+
21
+ <div class="row">
22
+ <div class="small-4 columns">
23
+ <label for="password" translate>Password :</label>
24
+ <input id="id_password" type="password" name="password" required ng-model="password" required>
25
+ <small id="id_first_name_msg"></small>
26
+ </div>
27
+
28
+ <div class="small-4 columns float-left small-offset-2">
29
+ <label for="password_confirmation" translate>Confirm Password :</label>
30
+ <input id="id_password_confirmation" type="password" name="password_confirmation" required ng-model="password_confirmation">
31
+ <small id="id_password_confirmation_msg"></small>
32
+
33
+ </div>
34
+ </div>
35
+ <div class="row">
36
+
37
+ <div class="small-4 columns">
38
+ <label for="email" translate>E-mail :</label>
39
+ <input id="id_email" type="email" name="email" required ng-model="email">
40
+ <small id="id_email_msg"></small>
41
+
42
+ </div>
43
+ </div>
44
+
45
+ </fieldset>
46
+
47
+ <div class="row">
48
+ <div class="small-4 columns">
49
+ <button ng-click="save()" class="btn small green" ng-disabled="form.first_name.$pristine || form.first_name.$dirty && form.fist_name.$invalid"><i class="fa fa-check"></i> <span translate>Save</span></button>
50
+ <button ng-click="cancel()" class="btn small red"><i class="fa fa-times"></i> <span translate>Cancel</span></button>
51
+ </div>
52
+ </div>
53
+
54
+ </div>
@@ -0,0 +1,28 @@
1
+ <div class="details">
2
+ <p >
3
+ <b translate>First Name :</b>{{this.object.first_name}}
4
+ </p>
5
+
6
+ <p>
7
+ <b translate>Last Name :</b>{{this.object.last_name}}
8
+ </p>
9
+
10
+ <p>
11
+ <b translate>E-mail :</b>{{this.object.email}}
12
+ </p>
13
+ <p>
14
+ <b translate>Group :</b>{{this.object.group.name}}
15
+ </p>
16
+
17
+ <ul class="button-group float-right">
18
+ <a href="#/auth/users/{{this.object.id}}/reply" class="small">
19
+ <span class="fa fa-edit"></span> <span translated>Edit</span>
20
+ </a>
21
+ <a href="" class="small">
22
+ <span class="fa fa-eye"></span><span translated>Show</span>
23
+ </a>
24
+ <a href="" class="small">
25
+ <span class="fa fa-check-circle-o"></span><span translated>Active</span>
26
+ </a>
27
+ </ul>
28
+ </div>
@@ -0,0 +1,6 @@
1
+ <list-view buttons="buttons" objects="users" title-attribute="'email'" details-template="details_template" item-per-page="10" on_delete="on_delete">
2
+
3
+ <div class="small-6 column text-left clearpadding">
4
+ <h3><i class="fa fa-group"></i> <span translate>Users</span></h3>
5
+ </div>
6
+ </list-view>
@@ -0,0 +1,57 @@
1
+ <div class="newform">
2
+ <form novalidate name="form">
3
+ <fieldset class="form">
4
+
5
+ <legend translate>New User</legend>
6
+
7
+ <div class="row">
8
+ <div class="small-4 columns">
9
+ <label for="first_name" translate>First Name :</label>
10
+ <input id="id_first_name" type="text" name="first_name" required ng-model="first_name">
11
+ <small id="id_first_name_msg"></small>
12
+ </div>
13
+
14
+ <div class="small-4 columns float-left small-offset-2">
15
+ <label for="last_name" translate>Last Name :</label>
16
+ <input id="id_last_name" type="text" name="last_name" required ng-model="last_name">
17
+ <small id="id_last_name_msg"></small>
18
+
19
+ </div>
20
+ </div>
21
+ <div class="row">
22
+ <div class="small-4 columns">
23
+ <label for="password" translate>Password :</label>
24
+ <input id="id_password" type="password" name="password" required ng-model="password">
25
+ <small id="id_password_msg"></small>
26
+
27
+ </div>
28
+
29
+ <div class="small-4 columns float-left small-offset-2">
30
+ <label for="email" translate>E-mail :</label>
31
+ <input id="id_email" type="email" name="email" required ng-model="email">
32
+ <small id="id_email_msg"></small>
33
+
34
+ </div>
35
+ </div>
36
+ <div class="row">
37
+ <div class="small-4 columns">
38
+ <label for="group" translate>Group :</label>
39
+ <select id="id_group" name="group" required ng-model="group">
40
+ <option ng-repeat="item in groups" value="{{item.id}}" ng-select="item.id === group">{{item.name}}</option>
41
+ </select>
42
+ <small id="id_group_msg"></small>
43
+
44
+ </div>
45
+
46
+ </div>
47
+
48
+ </fieldset>
49
+
50
+ <div class="row">
51
+ <div class="small-4 columns">
52
+ <button ng-click="save()" class="btn small green" ng-disabled="form.$invalid || !form.$dirty"><i class="fa fa-check"></i> <span translate>Save</span></button>
53
+ <button ng-click="cancel()" class="btn small red"><i class="fa fa-times"></i> <span translate>Cancel</span></button>
54
+ </div>
55
+ </div>
56
+ </form>
57
+ </div>
@@ -0,0 +1,10 @@
1
+ <div class="panel panel-default">
2
+ <div class="panel-heading">
3
+ <h4 class="panel-title">
4
+ <a href class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{'text-muted': isDisabled}">{{heading}}</span></a>
5
+ </h4>
6
+ </div>
7
+ <div class="panel-collapse" collapse="!isOpen">
8
+ <div class="panel-body" ng-transclude></div>
9
+ </div>
10
+ </div>
@@ -0,0 +1 @@
1
+ <div class="panel-group" ng-transclude></div>
@@ -0,0 +1,7 @@
1
+ <div class="alert" ng-class="['alert-' + (type || 'warning'), closeable ? 'alert-dismissable' : null]" role="alert">
2
+ <button ng-show="closeable" type="button" class="close" ng-click="close()">
3
+ <span aria-hidden="true">&times;</span>
4
+ <span class="sr-only">Close</span>
5
+ </button>
6
+ <div ng-transclude></div>
7
+ </div>
@@ -0,0 +1,4 @@
1
+ <div class="boolean-field">
2
+ <input id="{{ element_id }}" ng-model="model" name="{{ field }}" ng-required="required" type="checkbox" class="{{cssClasses}}" /> <span class="field-label">{{ label | translate }}</span>
3
+ <small id="{{ msg_element_id }}"></small>
4
+ </div>
@@ -0,0 +1,8 @@
1
+ <div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">
2
+ <ol class="carousel-indicators" ng-show="slides.length > 1">
3
+ <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>
4
+ </ol>
5
+ <div class="carousel-inner" ng-transclude></div>
6
+ <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"></span></a>
7
+ <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"></span></a>
8
+ </div>
@@ -0,0 +1,7 @@
1
+ <div ng-class="{
2
+ 'active': leaving || (active && !entering),
3
+ 'prev': (next || active) && direction=='prev',
4
+ 'next': (next || active) && direction=='next',
5
+ 'right': direction=='prev',
6
+ 'left': direction=='next'
7
+ }" class="item text-center" ng-transclude></div>
@@ -0,0 +1,19 @@
1
+ <div class="row">
2
+ <table>
3
+ <thead>
4
+ <th>
5
+ <td translate>Facility Name</td>
6
+ <td translate>Number</td>
7
+ <td translate>Price?</td>
8
+ <td translate>Note</td>
9
+ </th>
10
+ </thead>
11
+ <tbody>
12
+
13
+ <tr ng-repeat="obj in objects_rows">
14
+ <ng-include src="config.row_template"></ng-include>
15
+ </tr>
16
+ </tbody>
17
+ </table>
18
+
19
+ </div>
@@ -0,0 +1,5 @@
1
+ <div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">
2
+ <daypicker ng-switch-when="day" tabindex="0"></daypicker>
3
+ <monthpicker ng-switch-when="month" tabindex="0"></monthpicker>
4
+ <yearpicker ng-switch-when="year" tabindex="0"></yearpicker>
5
+ </div>
@@ -0,0 +1,21 @@
1
+ <table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">
2
+ <thead>
3
+ <tr>
4
+ <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>
5
+ <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>
6
+ <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>
7
+ </tr>
8
+ <tr>
9
+ <th ng-show="showWeeks" class="text-center"></th>
10
+ <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}</small></th>
11
+ </tr>
12
+ </thead>
13
+ <tbody>
14
+ <tr ng-repeat="row in rows track by $index">
15
+ <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>
16
+ <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">
17
+ <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{'btn-info': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{'text-muted': dt.secondary, 'text-info': dt.current}">{{dt.label}}</span></button>
18
+ </td>
19
+ </tr>
20
+ </tbody>
21
+ </table>
@@ -0,0 +1,16 @@
1
+ <table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">
2
+ <thead>
3
+ <tr>
4
+ <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>
5
+ <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>
6
+ <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>
7
+ </tr>
8
+ </thead>
9
+ <tbody>
10
+ <tr ng-repeat="row in rows track by $index">
11
+ <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">
12
+ <button type="button" style="width:100%;" class="btn btn-default" ng-class="{'btn-info': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{'text-info': dt.current}">{{dt.label}}</span></button>
13
+ </td>
14
+ </tr>
15
+ </tbody>
16
+ </table>
@@ -0,0 +1,10 @@
1
+ <ul class="dropdown-menu" ng-style="{display: (isOpen && 'block') || 'none', top: position.top+'px', left: position.left+'px'}" ng-keydown="keydown($event)">
2
+ <li ng-transclude></li>
3
+ <li ng-if="showButtonBar" style="padding:10px 9px 2px">
4
+ <span class="btn-group pull-left">
5
+ <button type="button" class="btn btn-sm btn-info" ng-click="select('today')">{{ getText('current') }}</button>
6
+ <button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText('clear') }}</button>
7
+ </span>
8
+ <button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText('close') }}</button>
9
+ </li>
10
+ </ul>
@@ -0,0 +1,16 @@
1
+ <table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">
2
+ <thead>
3
+ <tr>
4
+ <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>
5
+ <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>
6
+ <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>
7
+ </tr>
8
+ </thead>
9
+ <tbody>
10
+ <tr ng-repeat="row in rows track by $index">
11
+ <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">
12
+ <button type="button" style="width:100%;" class="btn btn-default" ng-class="{'btn-info': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{'text-info': dt.current}">{{dt.label}}</span></button>
13
+ </td>
14
+ </tr>
15
+ </tbody>
16
+ </table>
@@ -0,0 +1,10 @@
1
+ <div>
2
+ <!-- TODO: Find out why disable-timepicker and timepicker does not work together -->
3
+ <div ng-if="timepicker">
4
+ <quick-datepicker disable-timepicker="true" id="{{ element_id }}" ng-model="model" class="{{cssClasses}}" ng-required="required" name="{{ field }}" placeholder="{{ 'Click to pick a date' | translate }}" />
5
+ </div>
6
+ <div ng-if="!timepicker">
7
+ <quick-datepicker id="{{ element_id }}" ng-model="model" class="{{cssClasses}}" ng-required="required" name="{{ field }}" placeholder="{{ 'Click to pick a date' | translate }}" />
8
+ </div>
9
+ <small id="{{ msg_element_id }}"></small>
10
+ </div>
@@ -0,0 +1,25 @@
1
+ <div class="timeSelectorDirective" >
2
+ <div class="section hours">
3
+ <div class="increase" ng-click="increaseHours()">
4
+ <i class="icon fa fa-caret-up"></i>
5
+ </div>
6
+ <div class="display">
7
+ <input type="text" ng-model="hours" ng-change="change('hour')">
8
+ </div>
9
+ <div class="decrease" ng-click="decreaseHours()">
10
+ <i class="icon fa fa-caret-down"></i>
11
+ </div>
12
+ </div>
13
+ <div class="section minutes">
14
+ <div class="increase" ng-click="increaseMinutes()">
15
+ <i class="icon fa fa-caret-up"></i>
16
+ </div>
17
+ <div class="display">
18
+ <input type="text" ng-model="minutes" ng-model-onblur ng-change="update('minute')">
19
+ </div>
20
+ <div class="decrease" ng-click="decreaseMinutes()">
21
+ <i class="icon fa fa-caret-down">
22
+ </i>
23
+ </div>
24
+ </div>
25
+ </div>
@@ -0,0 +1,4 @@
1
+ <div>
2
+ <input id="{{ element_id }}" ng-model="model" name="{{ field }}" ng-required="required" type="text" class="{{cssClasses}}" />
3
+ <small id="{{ msg_element_id }}"></small>
4
+ </div>