pure-admin-rails 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +131 -0
  4. data/app/assets/images/menu-fade-left.png +0 -0
  5. data/app/assets/images/menu-fade-right.png +0 -0
  6. data/app/assets/images/pending.gif +0 -0
  7. data/app/assets/javascripts/pure_admin.js +6 -0
  8. data/app/assets/javascripts/pure_admin/dropdown.js +178 -0
  9. data/app/assets/javascripts/pure_admin/flash_messages.js +13 -0
  10. data/app/assets/javascripts/pure_admin/inputs.js +24 -0
  11. data/app/assets/javascripts/pure_admin/inputs/select.js +21 -0
  12. data/app/assets/javascripts/pure_admin/main_header.js +21 -0
  13. data/app/assets/javascripts/pure_admin/main_menu.js +108 -0
  14. data/app/assets/javascripts/pure_admin/modals.js +228 -0
  15. data/app/assets/javascripts/pure_admin/partial_refresh.js +92 -0
  16. data/app/assets/javascripts/pure_admin/portlets.js +139 -0
  17. data/app/assets/javascripts/pure_admin/tabs.js +14 -0
  18. data/app/assets/stylesheets/pure_admin.css.scss +23 -0
  19. data/app/assets/stylesheets/pure_admin/_dropdowns.scss +58 -0
  20. data/app/assets/stylesheets/pure_admin/_tabs.scss +76 -0
  21. data/app/assets/stylesheets/pure_admin/auth.css.scss +22 -0
  22. data/app/assets/stylesheets/pure_admin/breadcrumbs.css.scss +69 -0
  23. data/app/assets/stylesheets/pure_admin/buttons.css.scss +48 -0
  24. data/app/assets/stylesheets/pure_admin/details_panels.css.scss +99 -0
  25. data/app/assets/stylesheets/pure_admin/flash_messages.css.scss +97 -0
  26. data/app/assets/stylesheets/pure_admin/forms.css.scss +129 -0
  27. data/app/assets/stylesheets/pure_admin/inputs/select.css.scss +99 -0
  28. data/app/assets/stylesheets/pure_admin/jquery.tagsinput.css.scss +67 -0
  29. data/app/assets/stylesheets/pure_admin/main_menu.css.scss +146 -0
  30. data/app/assets/stylesheets/pure_admin/modals.css.scss +122 -0
  31. data/app/assets/stylesheets/pure_admin/pagination.css.scss +67 -0
  32. data/app/assets/stylesheets/pure_admin/portlets.css.scss +154 -0
  33. data/app/assets/stylesheets/pure_admin/scopes.css.scss +44 -0
  34. data/app/assets/stylesheets/pure_admin/shell.css.scss +222 -0
  35. data/app/assets/stylesheets/pure_admin/side_menu.css.scss +70 -0
  36. data/app/assets/stylesheets/pure_admin/table_filters.css.scss +90 -0
  37. data/app/assets/stylesheets/pure_admin/tables.css.scss +70 -0
  38. data/app/assets/stylesheets/pure_admin/tags.css.scss +37 -0
  39. data/app/assets/stylesheets/pure_admin/utilities.css.scss +24 -0
  40. data/app/assets/stylesheets/pure_admin/variables.css.scss +38 -0
  41. data/app/helpers/pure_admin/application_helper.rb +12 -0
  42. data/app/helpers/pure_admin/button_helper.rb +58 -0
  43. data/app/helpers/pure_admin/details_panel_helper.rb +121 -0
  44. data/app/helpers/pure_admin/dropdown_helper.rb +40 -0
  45. data/app/helpers/pure_admin/menu_helper.rb +120 -0
  46. data/app/helpers/pure_admin/portlet_helper.rb +75 -0
  47. data/app/helpers/pure_admin/table_filters_helper.rb +158 -0
  48. data/app/inputs/addon_input.rb +17 -0
  49. data/app/inputs/collection_select_input.rb +17 -0
  50. data/app/inputs/email_input.rb +5 -0
  51. data/app/inputs/tel_input.rb +5 -0
  52. data/lib/generators/pure_admin/layout/USAGE +10 -0
  53. data/lib/generators/pure_admin/layout/layout_generator.rb +8 -0
  54. data/lib/generators/pure_admin/layout/templates/admin.css.scss +8 -0
  55. data/lib/generators/pure_admin/layout/templates/admin.html.erb +105 -0
  56. data/lib/generators/pure_admin/scaffold/USAGE +11 -0
  57. data/lib/generators/pure_admin/scaffold/scaffold_generator.rb +66 -0
  58. data/lib/generators/pure_admin/scaffold/templates/_form.html.erb +12 -0
  59. data/lib/generators/pure_admin/scaffold/templates/_show.html.erb +11 -0
  60. data/lib/generators/pure_admin/scaffold/templates/_table.html.erb +21 -0
  61. data/lib/generators/pure_admin/scaffold/templates/models_controller.rb +69 -0
  62. data/lib/generators/pure_admin/simple_form/USAGE +8 -0
  63. data/lib/generators/pure_admin/simple_form/simple_form_generator.rb +7 -0
  64. data/lib/pure-admin-rails.rb +8 -0
  65. data/lib/pure-admin-rails/version.rb +5 -0
  66. metadata +261 -0
@@ -0,0 +1,14 @@
1
+ var PureAdmin = PureAdmin || {};
2
+
3
+ PureAdmin.tabs = {
4
+ init: function() {
5
+ $(document).on('click', '.tabbable .nav-tabs a', function(event) {
6
+ event.preventDefault();
7
+ var tabId = $(event.currentTarget).attr('href');
8
+ $('.tabbable ' + tabId).show().siblings().hide();
9
+ $(this).parent('li').addClass('active').siblings().removeClass('active');
10
+ });
11
+ }
12
+ };
13
+
14
+ $(document).ready(PureAdmin.tabs.init);
@@ -0,0 +1,23 @@
1
+ @import 'pure_admin/variables.css.scss';
2
+ @import 'pure_admin/utilities.css.scss';
3
+ @import 'pure_admin/shell.css.scss';
4
+ @import 'pure_admin/main_menu.css.scss';
5
+ @import 'pure_admin/side_menu.css.scss';
6
+ @import 'pure_admin/forms.css.scss';
7
+ @import 'pure_admin/portlets.css.scss';
8
+ @import 'pure_admin/tables.css.scss';
9
+ @import 'pure_admin/table_filters.css.scss';
10
+ @import 'pure_admin/flash_messages.css.scss';
11
+ @import 'pure_admin/pagination.css.scss';
12
+ @import 'pure_admin/buttons.css.scss';
13
+ @import 'pure_admin/details_panels.css.scss';
14
+ @import 'pure_admin/breadcrumbs.css.scss';
15
+ @import 'pure_admin/tags.css.scss';
16
+ @import 'pure_admin/scopes.css.scss';
17
+ @import 'pure_admin/auth.css.scss';
18
+ @import 'pure_admin/modals.css.scss';
19
+ @import 'pure_admin/dropdowns';
20
+ @import 'pure_admin/tabs';
21
+
22
+ // custom input css
23
+ @import 'pure_admin/inputs/select.css.scss';
@@ -0,0 +1,58 @@
1
+ .dropdown {
2
+ &.inline {
3
+ display: inline-block;
4
+ width: auto;
5
+ }
6
+
7
+ &.display-as-button {
8
+ .pure-menu-link {
9
+ @extend .pure-button;
10
+ }
11
+
12
+ .pure-menu-has-children {
13
+ &.pure-menu-active {
14
+ & > .pure-menu-link {
15
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 0 6px rgba(0, 0, 0, 0.2) inset;
16
+
17
+ &:after {
18
+ transform: rotate(180deg);
19
+ padding-left: 0;
20
+ padding-right: 0.5em;
21
+ top: 0;
22
+ }
23
+ }
24
+ }
25
+
26
+ & > .pure-menu-link {
27
+ &:after {
28
+ display: inline-block;
29
+ position: relative;
30
+ top: -0.2em;
31
+ font-size: 0.9em;
32
+ }
33
+
34
+ }
35
+ }
36
+
37
+ .pure-menu-children {
38
+ border: 1px solid $input-border;
39
+ border-top: 0;
40
+ box-shadow: 0 1px 5px 0 $input-border;
41
+ font-size: 0;
42
+
43
+ .pure-menu-link {
44
+ width: 100%;
45
+ text-align: left;
46
+ border-width: 0;
47
+ font-size: 1rem;
48
+ }
49
+ }
50
+ }
51
+
52
+ &.pull-right {
53
+ .pure-menu-children {
54
+ right: 0;
55
+ left: auto;
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,76 @@
1
+ .tabbable {
2
+ display: inline-block;
3
+ margin-bottom: $base-font-size;
4
+ width: 100%;
5
+
6
+ .nav-tabs {
7
+ margin: 0;
8
+ margin-bottom: -1px;
9
+ padding: 0;
10
+
11
+ &:before,
12
+ &:after {
13
+ content: " ";
14
+ display: table;
15
+ }
16
+
17
+ &:after {
18
+ clear: both;
19
+ }
20
+
21
+ > li {
22
+ float: left;
23
+ list-style: none;
24
+
25
+ &.active {
26
+ a {
27
+ background: $white;
28
+ border-bottom-color: transparent;
29
+ border-top: 2px solid $link-color;
30
+ box-shadow: 0 -2px 3px 0 rgba($black, 0.15);
31
+ color: $text-color;
32
+ margin-top: -1px;
33
+ z-index: 12;
34
+ }
35
+ }
36
+
37
+ &:last-of-type {
38
+ a {
39
+ border-right-width: 1px;
40
+ }
41
+ }
42
+
43
+ a {
44
+ background-color: $grey-light;
45
+ border: 1px solid $grey-medium;
46
+ border-bottom-width: 0;
47
+ border-right-width: 0;
48
+ color: lighten($text-color, 10%);
49
+ display: inline-block;
50
+ line-height: $base-font-size;
51
+ margin-right: -1px;
52
+ padding: 0.5em 1em;
53
+ position: relative;
54
+ z-index: 11;
55
+
56
+ &:hover {
57
+ color: $text-color;
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ .tab-content {
64
+ background: $white;
65
+ border: 1px solid $grey-medium;
66
+ padding: 0 $base-font-size;
67
+
68
+ .tab-pane {
69
+ display: none;
70
+
71
+ &.active {
72
+ display: block;
73
+ }
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,22 @@
1
+ #auth {
2
+ width: 288px;
3
+ margin: 0 auto;
4
+ margin-top: 4em;
5
+
6
+ .portlet {
7
+ margin-bottom: $base-font-size;
8
+ }
9
+
10
+ .other-links {
11
+ text-align: center;
12
+ font-size: 0.8em;
13
+ }
14
+
15
+ .auth-form-checkbox {
16
+ margin-top: 0.7em;
17
+
18
+ input {
19
+ display: inline;
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,69 @@
1
+ #breadcrumbs {
2
+ height: 27px;
3
+ border-top: 1px solid darken($menu-color, 10%);
4
+ border-bottom: 1px solid #cccccc;
5
+ background: #e7e7e7;
6
+ padding: 1px 16px 2px 16px;
7
+ line-height: 24px;
8
+ font-size: 0.8em;
9
+ color: #777777;
10
+ white-space: nowrap;
11
+ overflow: hidden;
12
+ text-overflow: ellipsis;
13
+ -webkit-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
14
+ -moz-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
15
+ box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
16
+
17
+ a {
18
+ color: #777777;
19
+ text-decoration: none;
20
+ font-weight: 700;
21
+
22
+ &:hover {
23
+ color: #555555;
24
+ }
25
+ }
26
+
27
+ .fa {
28
+ font-size: 14px;
29
+ margin-right: 2px;
30
+ }
31
+
32
+ .fa-angle-right {
33
+ margin-left: 5px;
34
+ margin-right: 4px;
35
+ color: #777777;
36
+ position: relative;
37
+ top: 1px;
38
+ }
39
+ }
40
+
41
+ #back-to-top {
42
+ width: 115px;
43
+ border: 1px solid #cccccc;
44
+ border-top-color: #e7e7e7;
45
+ background: #e7e7e7;
46
+ margin-left: -55px;
47
+ position: absolute;
48
+ bottom: -20px;
49
+ left: 50%;
50
+ color: #777777;
51
+ font-size: 0.6em;
52
+ cursor: pointer;
53
+ z-index: 8;
54
+ text-align: center;
55
+ padding: 0.4em 0.8em;
56
+ text-transform: uppercase;
57
+ display: none;
58
+ -webkit-transition: all 0.1s linear;
59
+ -moz-transition: all 0.1s linear;
60
+ -ms-transition: all 0.1s linear;
61
+ -o-transition: all 0.1s linear;
62
+ transition: all 0.1s linear;
63
+
64
+ .middle {
65
+ display: inline-block;
66
+ margin-left: 0.5em;
67
+ margin-right: 0.5em;
68
+ }
69
+ }
@@ -0,0 +1,48 @@
1
+ .button-xsmall {
2
+ font-size: 70%;
3
+ }
4
+
5
+ .button-small {
6
+ font-size: 85%;
7
+ }
8
+
9
+ .button-large {
10
+ font-size: 110%;
11
+ }
12
+
13
+ .button-xlarge {
14
+ font-size: 125%;
15
+ }
16
+
17
+ .button-green,
18
+ .button-red,
19
+ .button-orange {
20
+ color: white;
21
+
22
+ &:hover {
23
+ color: white;
24
+ }
25
+ }
26
+
27
+ .button-green {
28
+ background: #339900;
29
+ border-color: darken(#339900, 10%);
30
+ }
31
+
32
+ .button-red {
33
+ background: #CC3333;
34
+ border-color: darken(#CC3333, 10%);
35
+ }
36
+
37
+ .button-orange {
38
+ background: #e49457;
39
+ border-color: #cb844e;
40
+ }
41
+
42
+ .button-icon-only {
43
+ padding: 0.5em 0.75em;
44
+
45
+ .fa {
46
+ margin: 0;
47
+ }
48
+ }
@@ -0,0 +1,99 @@
1
+ .details-panel {
2
+ font-size: 14px;
3
+ padding-bottom: $base-font-size;
4
+ padding: 0 $base-font-size * 0.5;
5
+
6
+ @media (min-width: 35.5em) {
7
+ padding: 0;
8
+ padding-bottom: $base-font-size;
9
+ }
10
+ }
11
+
12
+ .details-panel-heading {
13
+ width: 100%;
14
+
15
+ &:first-child {
16
+ margin-top: 0;
17
+ }
18
+ }
19
+
20
+ .details-panel-item {
21
+ margin: $base-font-size * 0.5 0;
22
+ word-wrap: break-word;
23
+
24
+ @media (min-width: 35.5em) {
25
+ padding-left: $base-font-size * 12;
26
+
27
+ &.not-aligned {
28
+ padding-left: $base-font-size;
29
+ }
30
+ }
31
+
32
+ label {
33
+ text-transform: uppercase;
34
+ font-size: $base-font-size * 0.9;
35
+ display: block;
36
+ color: #999999;
37
+
38
+ @media (min-width: 35.5em) {
39
+ float: left;
40
+ display: inline-block;
41
+ width: $base-font-size * 12;
42
+ margin-left: -$base-font-size * 12;
43
+ padding-right: $base-font-size;
44
+ text-align: right;
45
+ position: relative;
46
+ }
47
+ }
48
+
49
+ // Remove any top spacing to ensure a smooth line from label to content.
50
+ label + * {
51
+ margin-top: 0;
52
+ padding-top: 0;
53
+ }
54
+
55
+ img {
56
+ vertical-align: top;
57
+ border: 2px solid #cccccc;
58
+ max-width: 100%;
59
+ }
60
+ }
61
+
62
+ .details-panel-controls {
63
+ font-size: 14px;
64
+ padding: $base-font-size 0;
65
+ border-top: 2px solid #e8e8e8;
66
+ margin-top: $base-font-size;
67
+
68
+ @media (min-width: 35.5em) {
69
+ padding-left: $base-font-size * 12;
70
+ }
71
+
72
+ .pure-button {
73
+ margin-right: $base-font-size * 0.25;
74
+ margin-bottom: $base-font-size * 0.6;
75
+ }
76
+ }
77
+
78
+ .portlet-body {
79
+ .details-panel {
80
+ padding: 0;
81
+ padding-top: $base-font-size;
82
+ }
83
+
84
+ .details-panel-controls {
85
+ background: #f4f4f4;
86
+ border-top-width: 1px;
87
+ margin: $base-font-size $base-font-size * -1 0 $base-font-size * -1;
88
+ padding: $base-font-size * 0.5 $base-font-size;
89
+ padding-bottom: 0;
90
+
91
+ @media (min-width: 35.5em) {
92
+ padding-left: $base-font-size * 13;
93
+
94
+ &.not-aligned {
95
+ padding-left: $base-font-size;
96
+ }
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,97 @@
1
+ #flashes {
2
+ &.fixed {
3
+ position: absolute;
4
+ width: 100%;
5
+ padding: $base-font-size;
6
+ padding-top: 0;
7
+
8
+ @media (min-width: 48em) {
9
+ top: 106px;
10
+ }
11
+ }
12
+ }
13
+
14
+ .flash {
15
+ padding: 0.66em 1em;
16
+ margin-top: $base-font-size;
17
+ border: 1px solid transparent;
18
+ font-size: 14px;
19
+ position: relative;
20
+ cursor: pointer;
21
+ z-index: 11;
22
+ -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.2);
23
+ -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.2);
24
+ box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.2);
25
+
26
+ @media (min-width: 48em) {
27
+ margin-bottom: 1em;
28
+ }
29
+
30
+ &.with-bottom-margin {
31
+ margin-bottom: 1em;
32
+ }
33
+
34
+ &.with-top-margin {
35
+ margin-top: 1em;
36
+
37
+ @media (min-width: 48em) {
38
+ margin-top: 2em;
39
+ }
40
+ }
41
+
42
+ &.larger-margin {
43
+ @media (min-width: 48em) {
44
+ margin-bottom: 1.7em;
45
+ }
46
+
47
+ &.with-bottom-margin {
48
+ margin-bottom: 1.7em;
49
+ }
50
+ }
51
+
52
+ &.success {
53
+ color: $text-success;
54
+ background-color: $background-success;
55
+ border-color: $border-success;
56
+ }
57
+
58
+ &.notice {
59
+ color: $text-notice;
60
+ background-color: $background-notice;
61
+ border-color: $border-notice;
62
+ }
63
+
64
+ &.alert {
65
+ color: $text-alert;
66
+ background-color: $background-alert;
67
+ border-color: $border-alert;
68
+ }
69
+
70
+ &.error {
71
+ color: $text-error;
72
+ background-color: $background-error;
73
+ border-color: $border-error;
74
+ }
75
+
76
+ &.with-icon {
77
+ padding-left: 3em;
78
+
79
+ .fa {
80
+ font-size: 1.5em;
81
+ float: left;
82
+ position: relative;
83
+ top: -3px;
84
+ left: -1.5em;
85
+ margin-right: -2em;
86
+ }
87
+ }
88
+ }
89
+
90
+ .flash > p,
91
+ .flash > ul {
92
+ margin-bottom: 0;
93
+ }
94
+
95
+ .flash > p + p {
96
+ margin-top: 5px;
97
+ }