the_role 1.5.1 → 1.6.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.
Files changed (45) hide show
  1. data/Bye_bye_CanCan_I_got_the_Role.png +0 -0
  2. data/README.md +82 -92
  3. data/app/assets/javascripts/admin_the_role.js +3 -0
  4. data/app/assets/javascripts/bootstrap-dropdown.js +100 -0
  5. data/app/assets/stylesheets/admin_the_role.css +7 -0
  6. data/app/assets/stylesheets/alerts.less +58 -0
  7. data/app/assets/stylesheets/button-groups.less +191 -0
  8. data/app/assets/stylesheets/buttons.less +191 -0
  9. data/app/assets/stylesheets/custom.scss +3 -0
  10. data/app/assets/stylesheets/dropdowns.less +143 -0
  11. data/app/assets/stylesheets/forms.less +583 -0
  12. data/app/assets/stylesheets/grid.less +5 -0
  13. data/app/assets/stylesheets/headers.scss +15 -0
  14. data/app/assets/stylesheets/layouts.less +17 -0
  15. data/app/assets/stylesheets/mix.scss +41 -0
  16. data/app/assets/stylesheets/mixins.less +646 -0
  17. data/app/assets/stylesheets/reset.css +117 -0
  18. data/app/assets/stylesheets/role_set.less +136 -0
  19. data/app/assets/stylesheets/scaffolding.less +29 -0
  20. data/app/assets/stylesheets/variables.less +206 -0
  21. data/app/assets/stylesheets/wells.less +27 -0
  22. data/app/controllers/admin/role_sections_controller.rb +40 -17
  23. data/app/controllers/admin/roles_controller.rb +8 -6
  24. data/app/views/admin/roles/_role.html.haml +53 -0
  25. data/app/views/admin/roles/_sidebar.html.haml +8 -0
  26. data/app/views/admin/roles/edit.html.haml +2 -42
  27. data/app/views/admin/roles/index.haml +2 -15
  28. data/app/views/admin/roles/new.html.haml +5 -4
  29. data/app/views/layouts/the_role.html.haml +24 -0
  30. data/config/routes.rb +5 -1
  31. data/lib/the_role/engine.rb +2 -2
  32. data/lib/the_role/hash.rb +50 -14
  33. data/lib/the_role/modules/base.rb +4 -4
  34. data/lib/the_role/modules/controller_requires.rb +4 -15
  35. data/lib/the_role/modules/role_model.rb +14 -13
  36. data/lib/the_role/param_helper.rb +15 -0
  37. data/lib/the_role/version.rb +1 -1
  38. data/lib/the_role.rb +13 -11
  39. data/pic.png +0 -0
  40. data/the_role.gemspec +5 -2
  41. metadata +58 -16
  42. data/app/assets/stylesheets/the_role/form.css +0 -57
  43. data/app/assets/stylesheets/the_role/headers.css.scss +0 -15
  44. data/app/assets/stylesheets/the_role/style.css.scss +0 -75
  45. data/lib/the_role/modules/param_helper.rb +0 -7
@@ -0,0 +1,191 @@
1
+ // BUTTON STYLES
2
+ // -------------
3
+
4
+
5
+ // Base styles
6
+ // --------------------------------------------------
7
+
8
+ // Core
9
+ .btn {
10
+ display: inline-block;
11
+ .ie7-inline-block();
12
+ padding: 4px 10px 4px;
13
+ margin-bottom: 0; // For input.btn
14
+ font-size: @baseFontSize;
15
+ line-height: @baseLineHeight;
16
+ *line-height: 20px;
17
+ color: @grayDark;
18
+ text-align: center;
19
+ text-shadow: 0 1px 1px rgba(255,255,255,.75);
20
+ vertical-align: middle;
21
+ cursor: pointer;
22
+ .buttonBackground(@btnBackground, @btnBackgroundHighlight);
23
+ border: 1px solid @btnBorder;
24
+ *border: 0; // Remove the border to prevent IE7's black border on input:focus
25
+ border-bottom-color: darken(@btnBorder, 10%);
26
+ .border-radius(4px);
27
+ .ie7-restore-left-whitespace(); // Give IE7 some love
28
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
29
+ }
30
+
31
+ // Hover state
32
+ .btn:hover {
33
+ color: @grayDark;
34
+ text-decoration: none;
35
+ background-color: darken(@white, 10%);
36
+ *background-color: darken(@white, 15%); /* Buttons in IE7 don't get borders, so darken on hover */
37
+ background-position: 0 -15px;
38
+
39
+ // transition is only when going to hover, otherwise the background
40
+ // behind the gradient (there for IE<=9 fallback) gets mismatched
41
+ .transition(background-position .1s linear);
42
+ }
43
+
44
+ // Focus state for keyboard and accessibility
45
+ .btn:focus {
46
+ .tab-focus();
47
+ }
48
+
49
+ // Active state
50
+ .btn.active,
51
+ .btn:active {
52
+ background-color: darken(@white, 10%);
53
+ background-color: darken(@white, 15%) e("\9");
54
+ background-image: none;
55
+ outline: 0;
56
+ .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)");
57
+ }
58
+
59
+ // Disabled state
60
+ .btn.disabled,
61
+ .btn[disabled] {
62
+ cursor: default;
63
+ background-color: darken(@white, 10%);
64
+ background-image: none;
65
+ .opacity(65);
66
+ .box-shadow(none);
67
+ }
68
+
69
+
70
+ // Button Sizes
71
+ // --------------------------------------------------
72
+
73
+ // Large
74
+ .btn-large {
75
+ padding: 9px 14px;
76
+ font-size: @baseFontSize + 2px;
77
+ line-height: normal;
78
+ .border-radius(5px);
79
+ }
80
+ .btn-large [class^="icon-"] {
81
+ margin-top: 1px;
82
+ }
83
+
84
+ // Small
85
+ .btn-small {
86
+ padding: 5px 9px;
87
+ font-size: @baseFontSize - 2px;
88
+ line-height: @baseLineHeight - 2px;
89
+ }
90
+ .btn-small [class^="icon-"] {
91
+ margin-top: -1px;
92
+ }
93
+
94
+ // Mini
95
+ .btn-mini {
96
+ padding: 2px 6px;
97
+ font-size: @baseFontSize - 2px;
98
+ line-height: @baseLineHeight - 4px;
99
+ }
100
+
101
+
102
+ // Alternate buttons
103
+ // --------------------------------------------------
104
+
105
+ // Set text color
106
+ // -------------------------
107
+ .btn-primary,
108
+ .btn-primary:hover,
109
+ .btn-warning,
110
+ .btn-warning:hover,
111
+ .btn-danger,
112
+ .btn-danger:hover,
113
+ .btn-success,
114
+ .btn-success:hover,
115
+ .btn-info,
116
+ .btn-info:hover,
117
+ .btn-inverse,
118
+ .btn-inverse:hover {
119
+ color: @white;
120
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
121
+ }
122
+ // Provide *some* extra contrast for those who can get it
123
+ .btn-primary.active,
124
+ .btn-warning.active,
125
+ .btn-danger.active,
126
+ .btn-success.active,
127
+ .btn-info.active,
128
+ .btn-inverse.active {
129
+ color: rgba(255,255,255,.75);
130
+ }
131
+
132
+ // Set the backgrounds
133
+ // -------------------------
134
+ .btn {
135
+ // reset here as of 2.0.3 due to Recess property order
136
+ border-color: #ccc;
137
+ border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);
138
+ }
139
+ .btn-primary {
140
+ .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight);
141
+ }
142
+ // Warning appears are orange
143
+ .btn-warning {
144
+ .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight);
145
+ }
146
+ // Danger and error appear as red
147
+ .btn-danger {
148
+ .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight);
149
+ }
150
+ // Success appears as green
151
+ .btn-success {
152
+ .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight);
153
+ }
154
+ // Info appears as a neutral blue
155
+ .btn-info {
156
+ .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight);
157
+ }
158
+ // Inverse appears as dark gray
159
+ .btn-inverse {
160
+ .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight);
161
+ }
162
+
163
+
164
+ // Cross-browser Jank
165
+ // --------------------------------------------------
166
+
167
+ button.btn,
168
+ input[type="submit"].btn {
169
+
170
+ // Firefox 3.6 only I believe
171
+ &::-moz-focus-inner {
172
+ padding: 0;
173
+ border: 0;
174
+ }
175
+
176
+ // IE7 has some default padding on button controls
177
+ *padding-top: 2px;
178
+ *padding-bottom: 2px;
179
+ &.btn-large {
180
+ *padding-top: 7px;
181
+ *padding-bottom: 7px;
182
+ }
183
+ &.btn-small {
184
+ *padding-top: 3px;
185
+ *padding-bottom: 3px;
186
+ }
187
+ &.btn-mini {
188
+ *padding-top: 1px;
189
+ *padding-bottom: 1px;
190
+ }
191
+ }
@@ -0,0 +1,3 @@
1
+ p{
2
+ margin-bottom: 1em;
3
+ }
@@ -0,0 +1,143 @@
1
+ // DROPDOWN MENUS
2
+ // --------------
3
+
4
+ // Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
5
+ .dropup,
6
+ .dropdown {
7
+ position: relative;
8
+ }
9
+ .dropdown-toggle {
10
+ // The caret makes the toggle a bit too tall in IE7
11
+ *margin-bottom: -3px;
12
+ }
13
+ .dropdown-toggle:active,
14
+ .open .dropdown-toggle {
15
+ outline: 0;
16
+ }
17
+
18
+ // Dropdown arrow/caret
19
+ // --------------------
20
+ .caret {
21
+ display: inline-block;
22
+ width: 0;
23
+ height: 0;
24
+ vertical-align: top;
25
+ border-top: 4px solid @black;
26
+ border-right: 4px solid transparent;
27
+ border-left: 4px solid transparent;
28
+ content: "";
29
+ .opacity(30);
30
+ }
31
+
32
+ // Place the caret
33
+ .dropdown .caret {
34
+ margin-top: 8px;
35
+ margin-left: 2px;
36
+ }
37
+ .dropdown:hover .caret,
38
+ .open .caret {
39
+ .opacity(100);
40
+ }
41
+
42
+ // The dropdown menu (ul)
43
+ // ----------------------
44
+ .dropdown-menu {
45
+ position: absolute;
46
+ top: 100%;
47
+ left: 0;
48
+ z-index: @zindexDropdown;
49
+ display: none; // none by default, but block on "open" of the menu
50
+ float: left;
51
+ min-width: 160px;
52
+ padding: 4px 0;
53
+ margin: 1px 0 0; // override default ul
54
+ list-style: none;
55
+ background-color: @dropdownBackground;
56
+ border: 1px solid #ccc;
57
+ border: 1px solid rgba(0,0,0,.2);
58
+ *border-right-width: 2px;
59
+ *border-bottom-width: 2px;
60
+ .border-radius(5px);
61
+ .box-shadow(0 5px 10px rgba(0,0,0,.2));
62
+ -webkit-background-clip: padding-box;
63
+ -moz-background-clip: padding;
64
+ background-clip: padding-box;
65
+
66
+ // Aligns the dropdown menu to right
67
+ &.pull-right {
68
+ right: 0;
69
+ left: auto;
70
+ }
71
+
72
+ // Dividers (basically an hr) within the dropdown
73
+ .divider {
74
+ .nav-divider(@dropdownDividerTop, @dropdownDividerBottom);
75
+ }
76
+
77
+ // Links within the dropdown menu
78
+ a {
79
+ display: block;
80
+ padding: 3px 15px;
81
+ clear: both;
82
+ font-weight: normal;
83
+ line-height: @baseLineHeight;
84
+ color: @dropdownLinkColor;
85
+ white-space: nowrap;
86
+ }
87
+ }
88
+
89
+ // Hover state
90
+ // -----------
91
+ .dropdown-menu li > a:hover,
92
+ .dropdown-menu .active > a,
93
+ .dropdown-menu .active > a:hover {
94
+ color: @dropdownLinkColorHover;
95
+ text-decoration: none;
96
+ background-color: @dropdownLinkBackgroundHover;
97
+ }
98
+
99
+ // Open state for the dropdown
100
+ // ---------------------------
101
+ .open {
102
+ // IE7's z-index only goes to the nearest positioned ancestor, which would
103
+ // make the menu appear below buttons that appeared later on the page
104
+ *z-index: @zindexDropdown;
105
+
106
+ & > .dropdown-menu {
107
+ display: block;
108
+ }
109
+ }
110
+
111
+ // Right aligned dropdowns
112
+ // ---------------------------
113
+ .pull-right > .dropdown-menu {
114
+ right: 0;
115
+ left: auto;
116
+ }
117
+
118
+ // Allow for dropdowns to go bottom up (aka, dropup-menu)
119
+ // ------------------------------------------------------
120
+ // Just add .dropup after the standard .dropdown class and you're set, bro.
121
+ // TODO: abstract this so that the navbar fixed styles are not placed here?
122
+ .dropup,
123
+ .navbar-fixed-bottom .dropdown {
124
+ // Reverse the caret
125
+ .caret {
126
+ border-top: 0;
127
+ border-bottom: 4px solid @black;
128
+ content: "\2191";
129
+ }
130
+ // Different positioning for bottom up menu
131
+ .dropdown-menu {
132
+ top: auto;
133
+ bottom: 100%;
134
+ margin-bottom: 1px;
135
+ }
136
+ }
137
+
138
+ // Typeahead
139
+ // ---------
140
+ .typeahead {
141
+ margin-top: 2px; // give it some space to breathe
142
+ .border-radius(4px);
143
+ }