dashstrap 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.yardopts +1 -0
- data/Gemfile +8 -0
- data/LICENSE +339 -0
- data/README.md +40 -0
- data/Rakefile +13 -0
- data/TODO.org +3 -0
- data/app/assets/fonts/BYekan.eot +0 -0
- data/app/assets/fonts/BYekan.ttf +0 -0
- data/app/assets/fonts/BYekan.woff +0 -0
- data/app/assets/javascripts/dashstrap/application.js +2 -0
- data/app/assets/javascripts/dashstrap/functions.js +27 -0
- data/app/assets/javascripts/dashstrap/locales/translations.fa.js +5 -0
- data/app/assets/javascripts/dashstrap/modules/init.js +1 -0
- data/app/assets/javascripts/dashstrap/modules/list-view.js +376 -0
- data/app/assets/javascripts/dashstrap/modules/modules.js +79 -0
- data/app/assets/javascripts/dashstrap/modules/navigation.js +24 -0
- data/app/assets/javascripts/locales/translations.fa.js +5 -0
- data/app/assets/locales/templates.pot +92 -0
- data/app/assets/locales/translate.fa.pot +93 -0
- data/app/assets/stylesheets/dashstrap/ltr/application.css +17 -0
- data/app/assets/stylesheets/dashstrap/ltr/ltr.scss +15 -0
- data/app/assets/stylesheets/dashstrap/main.css.scss +63 -0
- data/app/assets/stylesheets/dashstrap/rtl/#application.css# +4 -0
- data/app/assets/stylesheets/dashstrap/rtl/application.css +18 -0
- data/app/assets/stylesheets/dashstrap/rtl/rtl.scss +38 -0
- data/app/assets/stylesheets/dashstrap/share.scss +7 -0
- data/app/assets/stylesheets/faalis/ltr/application.css +0 -0
- data/app/assets/stylesheets/faalis/rtl/application.css +0 -0
- data/app/assets/stylesheets/simple/ltr/application.css +4 -0
- data/app/assets/stylesheets/simple/rtl/application.css +5 -0
- data/app/assets/stylesheets/simple/rtl/rtl.scss +16 -0
- data/app/assets/stylesheets/simple/share.scss +11 -0
- data/app/views/angular/auth/groups/details.html +21 -0
- data/app/views/angular/auth/groups/index.html.slim +2 -0
- data/app/views/angular/auth/groups/new.html.slim +44 -0
- data/app/views/angular/auth/index.html +30 -0
- data/app/views/angular/auth/profile/edit.html +54 -0
- data/app/views/angular/auth/users/details.html +28 -0
- data/app/views/angular/auth/users/index.html +6 -0
- data/app/views/angular/auth/users/new.html +57 -0
- data/app/views/angular/fields/accordion/accordion-group.html +10 -0
- data/app/views/angular/fields/accordion/accordion.html +1 -0
- data/app/views/angular/fields/alert/alert.html +7 -0
- data/app/views/angular/fields/boolean/boolean.html +4 -0
- data/app/views/angular/fields/carousel/carousel.html +8 -0
- data/app/views/angular/fields/carousel/slide.html +7 -0
- data/app/views/angular/fields/control-combo/control-list.html +19 -0
- data/app/views/angular/fields/datepicker/datepicker.html +5 -0
- data/app/views/angular/fields/datepicker/day.html +21 -0
- data/app/views/angular/fields/datepicker/month.html +16 -0
- data/app/views/angular/fields/datepicker/popup.html +10 -0
- data/app/views/angular/fields/datepicker/year.html +16 -0
- data/app/views/angular/fields/datetime/datetime.html +10 -0
- data/app/views/angular/fields/datetime/time.html +25 -0
- data/app/views/angular/fields/float/float.html +4 -0
- data/app/views/angular/fields/image/image.html +1 -0
- data/app/views/angular/fields/integer/integer.html +4 -0
- data/app/views/angular/fields/modal/backdrop.html +4 -0
- data/app/views/angular/fields/modal/window.html +3 -0
- data/app/views/angular/fields/pagination/pager.html +4 -0
- data/app/views/angular/fields/pagination/pagination.html +7 -0
- data/app/views/angular/fields/popover/popover.html +8 -0
- data/app/views/angular/fields/progressbar/bar.html +1 -0
- data/app/views/angular/fields/progressbar/progress.html +1 -0
- data/app/views/angular/fields/progressbar/progressbar.html +3 -0
- data/app/views/angular/fields/rating/rating.html +5 -0
- data/app/views/angular/fields/relation/relation.html +43 -0
- data/app/views/angular/fields/string/string.html +22 -0
- data/app/views/angular/fields/tabs/tab.html +3 -0
- data/app/views/angular/fields/tabs/tabset.html +10 -0
- data/app/views/angular/fields/tag/tag.html +3 -0
- data/app/views/angular/fields/text/text.html +4 -0
- data/app/views/angular/fields/timepicker/timepicker.html +26 -0
- data/app/views/angular/fields/tooltip/tooltip-html-unsafe-popup.html +4 -0
- data/app/views/angular/fields/tooltip/tooltip-popup.html +4 -0
- data/app/views/angular/fields/typeahead/typeahead-match.html +1 -0
- data/app/views/angular/fields/typeahead/typeahead-popup.html +5 -0
- data/app/views/angular/index.html +448 -0
- data/app/views/angular/list-view/index.html +161 -0
- data/app/views/angular/modules.html +46 -0
- data/app/views/angular/nav.html.erb +273 -0
- data/app/views/dashstrap/.keep +0 -0
- data/app/views/devise/registrations/edit.html.erb +29 -0
- data/app/views/devise/registrations/new.html.erb +36 -0
- data/app/views/devise/sessions/new.html.erb +33 -0
- data/app/views/devise/shared/_links.erb +19 -0
- data/app/views/devise/shared/_omni_link.erb +15 -0
- data/app/views/faalis/dashboard/index.html.erb +44 -0
- data/app/views/faalis/dashboard/login_required_page.html.erb +5 -0
- data/app/views/layouts/dashstrap/.keep +0 -0
- data/app/views/layouts/faalis/application.html.erb +83 -0
- data/app/views/layouts/faalis/dashboard.html.erb +26 -0
- data/app/views/layouts/faalis/simple.html.erb +22 -0
- data/dashstrap.gemspec +39 -0
- data/lib/dashstrap/engine.rb +29 -0
- data/lib/dashstrap/version.rb +3 -0
- data/lib/dashstrap.rb +4 -0
- data/lib/generators/dashstrap/install_generator.rb +14 -0
- data/lib/generators/templates/js/list_view/README +31 -0
- data/lib/generators/templates/js/list_view/details.html.erb +25 -0
- data/lib/generators/templates/js/list_view/index.html.erb +89 -0
- data/lib/generators/templates/js/list_view/module.js.erb +10 -0
- data/lib/generators/templates/js/list_view/new.html.erb +81 -0
- data/lib/generators/templates/js/list_view/partials/add_controller.js.erb +103 -0
- data/lib/generators/templates/js/list_view/partials/config.js.erb +20 -0
- data/lib/generators/templates/js/list_view/partials/index_controller.js.erb +199 -0
- data/lib/generators/templates/js/list_view/partials/menu.js.erb +6 -0
- data/lib/generators/templates/stylesheets/application.css +13 -0
- data/lib/generators/templates/stylesheets/dashboard/ltr/application.css +1 -0
- data/lib/generators/templates/stylesheets/dashboard/rtl/application.css +1 -0
- data/lib/generators/templates/stylesheets/ltr/application.css +6 -0
- data/lib/generators/templates/stylesheets/rtl/application.css +4 -0
- data/lib/tasks/.keep +0 -0
- data/lib/tasks/build.rake +15 -0
- data/lib/tasks/grunt/Gruntfile.js +30 -0
- data/vendor/assets/fonts/FontAwesome.otf +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.svg +414 -0
- data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/vendor/assets/fonts/ionicons.eot +0 -0
- data/vendor/assets/fonts/ionicons.svg +1623 -0
- data/vendor/assets/fonts/ionicons.ttf +0 -0
- data/vendor/assets/fonts/ionicons.woff +0 -0
- data/vendor/assets/javascripts/.keep +0 -0
- data/vendor/assets/javascripts/AdminLTE/app.js +1037 -0
- data/vendor/assets/javascripts/AdminLTE/dashboard.js +254 -0
- data/vendor/assets/javascripts/bootstrap.js +2114 -0
- data/vendor/assets/javascripts/ui-bootstrap.js +3799 -0
- data/vendor/assets/stylesheets/.keep +0 -0
- data/vendor/assets/stylesheets/AdminLTE.css +3024 -0
- data/vendor/assets/stylesheets/bootstrap.css +7118 -0
- data/vendor/assets/stylesheets/rtl/AdminLTE.css +3032 -0
- data/vendor/assets/stylesheets/rtl/bootstrap-rtl.css +442 -0
- data/vendor/assets/stylesheets/rtl/bootstrap.css +6239 -0
- metadata +366 -0
|
@@ -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,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
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -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,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,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">×</span>
|
|
4
|
+
<span class="sr-only">Close</span>
|
|
5
|
+
</button>
|
|
6
|
+
<div ng-transclude></div>
|
|
7
|
+
</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>
|