redmine-neopoly_style 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +4 -0
- data/README.md +35 -1
- data/Rakefile +0 -2
- data/assets/images/dark-overlay.png +0 -0
- data/assets/stylesheets/neopoly_style.css +160 -14
- data/lib/assets/stylesheets/_config.sass +27 -0
- data/lib/assets/stylesheets/_context_menu.sass +14 -0
- data/lib/assets/stylesheets/_forms.sass +24 -0
- data/lib/assets/stylesheets/_jquery_ui.sass +39 -0
- data/lib/assets/stylesheets/_layout.sass +109 -0
- data/lib/assets/stylesheets/_login.sass +26 -0
- data/lib/assets/stylesheets/_misc.sass +43 -0
- data/lib/assets/stylesheets/_modal.sass +24 -0
- data/lib/assets/stylesheets/_tables.sass +76 -0
- data/lib/assets/stylesheets/_tags.sass +27 -0
- data/lib/assets/stylesheets/_typography.sass +33 -0
- data/lib/assets/stylesheets/neopoly_style.sass +11 -0
- data/lib/neopoly_style/hooks.rb +3 -0
- data/lib/neopoly_style/infos.rb +1 -0
- data/lib/neopoly_style/patches/application_helper_patch.rb +3 -0
- data/lib/neopoly_style/version.rb +1 -1
- data/rakelib/assets.rake +20 -0
- data/rakelib/rubocop.rake +18 -0
- data/redmine-neopoly_style.gemspec +1 -0
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: edac7dcd01e585a57b968898300c496f8346df30
|
4
|
+
data.tar.gz: a7c696601e5e2b8bed2777d74afc36c86c6b3480
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4be891ef6e3ec6b38a235b14feae2c9ba07026dcaed1f5ca6d451059ae89bf4e7d42e144dd9261849f5ec993d8cb6e9e4adc9cffd15cc2c834ea2c5399ad9be
|
7
|
+
data.tar.gz: 42003db2a8c1e5220023126a3f9533aa64586bb646e866701b9d8df75ca374ff80b27da163eb9ce0ce6fb15527f6b45831bc1c115a6b105986e9ff5c44b8bc73
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
|
+
[github]: https://github.com/neopoly/redmine-neopoly_style
|
2
|
+
[doc]: http://rubydoc.info/github/neopoly/redmine-neopoly_style/master/file/README.md
|
3
|
+
[gem]: https://rubygems.org/gems/redmine-neopoly_style
|
4
|
+
[gem-badge]: https://img.shields.io/gem/v/redmine-neopoly_style.svg
|
5
|
+
[inchpages]: https://inch-ci.org/github/neopoly/redmine-neopoly_style
|
6
|
+
[inchpages-badge]: https://inch-ci.org/github/neopoly/redmine-neopoly_style.svg?branch=master&style=flat
|
7
|
+
|
1
8
|
# redmine-neopoly_style
|
2
9
|
|
10
|
+
[![Gem Version][gem-badge]][gem]
|
11
|
+
[![Inline docs][inchpages-badge]][inchpages]
|
12
|
+
|
13
|
+
[Gem][gem] |
|
14
|
+
[Source][github] |
|
15
|
+
[Documentation][doc]
|
16
|
+
|
3
17
|
Custom style overrides for Redmine
|
4
18
|
|
5
19
|
## Installation
|
@@ -22,9 +36,29 @@ Restart the Redmine application
|
|
22
36
|
|
23
37
|
No further steps needed
|
24
38
|
|
39
|
+
## Development
|
40
|
+
|
41
|
+
As Redmine currently doesn't support the [Sprockets asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html) we're precompiling the needed assets using a custom build task:
|
42
|
+
|
43
|
+
```
|
44
|
+
rake assets:build
|
45
|
+
```
|
46
|
+
|
47
|
+
### CSS (Sass)
|
48
|
+
|
49
|
+
The SASS files for generating the static CSS are located in `lib/assets/stylesheets`. You can only build the stylesheets using a dedicated Rake task:
|
50
|
+
|
51
|
+
```
|
52
|
+
rake assets:build:stylesheets
|
53
|
+
```
|
54
|
+
|
55
|
+
## TODO
|
56
|
+
|
57
|
+
* Cleanup the SASS files
|
58
|
+
|
25
59
|
## Contributing
|
26
60
|
|
27
|
-
1. Fork it ( https://github.com/
|
61
|
+
1. Fork it ( https://github.com/neopoly/redmine-neopoly_style/fork )
|
28
62
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
29
63
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
30
64
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/Rakefile
CHANGED
Binary file
|
@@ -1,14 +1,160 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
}
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
}
|
1
|
+
body, #wrapper, h1, h2, h3, h4 { font-family: "Lucida Grande", verdana, arial, helvetica, sans-serif; }
|
2
|
+
|
3
|
+
h2, h3, h4, .wiki h1, .wiki h2, .wiki h3 { border-bottom: 0; }
|
4
|
+
|
5
|
+
p.breadcrumb { margin: 4px 0 15px 0; }
|
6
|
+
p.subtitle { margin: 0px 0 12px 0; }
|
7
|
+
|
8
|
+
a, a:link, a:visited { color: #005782; }
|
9
|
+
|
10
|
+
.contextual a, .contextual a:link, .contextual a:visited { color: #888; }
|
11
|
+
|
12
|
+
.contextual a:hover, .contextual a:visited:hover { color: #333; }
|
13
|
+
|
14
|
+
div.filters h2 .scope_title a { color: #222; text-decoration: none; }
|
15
|
+
|
16
|
+
h2, .wiki h1, h3, .wiki h2 { color: #222; }
|
17
|
+
|
18
|
+
#sidebar h3 { color: #222; }
|
19
|
+
|
20
|
+
body, #wrapper, #main { background-color: #EEE; }
|
21
|
+
|
22
|
+
#header { background-color: #005782; background-image: -webkit-gradient(linear, left top, left bottom, from(#1a719c), to(#005782)); background-image: -moz-linear-gradient(center top, #1a719c 0%, #005782 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1a719c', endColorstr='#005782'); padding: 10px 0 35px 10px; background-position-y: 11%; height: auto; min-height: initial; }
|
23
|
+
#header > h1 { height: 26px; margin: 0 24px; font-weight: normal; line-height: 14px; }
|
24
|
+
|
25
|
+
#main { margin: 15px 15px 0 15px; }
|
26
|
+
#main > #sidebar ul { margin: 12px 0; padding: 0 0 0 30px; }
|
27
|
+
#main > #sidebar ul li { list-style-type: disc; }
|
28
|
+
|
29
|
+
#top-menu { background: #000; padding: 7px 10px 2px 20px; }
|
30
|
+
|
31
|
+
#main-menu { left: 15px; }
|
32
|
+
#main-menu li a { background-color: transparent; }
|
33
|
+
#main-menu li a.selected, #main-menu li a.selected:hover { background-color: #EEE; color: #222; }
|
34
|
+
#main-menu li a:hover { background-color: transparent; }
|
35
|
+
|
36
|
+
#quick-search { padding-top: 10px; }
|
37
|
+
|
38
|
+
div.flash { border: 0; text-shadow: 0 1px white; }
|
39
|
+
|
40
|
+
#sidebar a.selected { background-color: transparent; color: #CCC; font-weight: bold; }
|
41
|
+
|
42
|
+
#content > div.flash { border: 0px solid; padding: 9px 35px 10px; margin: -6px -10px 6px -10px; background-position-x: 12px !important; background-position-y: 9px !important; }
|
43
|
+
|
44
|
+
#errorExplanation, .nodata, .warning { border: 1px solid; }
|
45
|
+
|
46
|
+
div.filters h2 .scope_title a { color: #222 !important; }
|
47
|
+
|
48
|
+
#content > h2, #content > div.filters h2, #content > #add-news > h2, #content > #add-message > h2, #content > .message.details > h2, #content > .board.details > h2, #content > #add-document > h2 { background: #F1F5FA; padding-top: 15px; padding-bottom: 15px; padding-right: 20px; padding-left: 20px; margin: -7px -10px 10px; border-top: 1px solid #DADEE5; border-bottom: 1px solid #DADEE5; }
|
49
|
+
#content > div.contextual { margin-top: 13px; margin-right: 10px; }
|
50
|
+
#content > div.wiki { padding: 6px 10px 10px 10px; }
|
51
|
+
|
52
|
+
#content, #main.nosidebar #content { background: #FFF; -webkit-box-shadow: 0 0 3px #CCC; -moz-box-shadow: 0 0 3px #CCC; box-shadow: 0 0 3px #CCC; border: 1px solid #D7D7D7; }
|
53
|
+
|
54
|
+
#footer { background-color: #EEE; border: 0; margin: 10px; }
|
55
|
+
|
56
|
+
#context-menu { -webkit-box-shadow: 0 0 3px #CCC; -moz-box-shadow: 0 0 3px #CCC; box-shadow: 0 0 3px #CCC; }
|
57
|
+
#context-menu ul li ul { -webkit-box-shadow: 0 0 3px #CCC; -moz-box-shadow: 0 0 3px #CCC; box-shadow: 0 0 3px #CCC; }
|
58
|
+
#context-menu li:hover { border: 1px solid #EEE !important; background-color: #EEE; }
|
59
|
+
#context-menu ul { border: 1px solid #DDD !important; }
|
60
|
+
|
61
|
+
input[type="text"], input[type="password"] { padding: 2px; border: 1px solid #D7D7D7; }
|
62
|
+
|
63
|
+
textarea, select { padding: 2px; border: 1px solid #D7D7D7; }
|
64
|
+
|
65
|
+
input[type="text"], input[type="password"] { padding: 3px; }
|
66
|
+
input[type="text"]:focus, input[type="password"]:focus { border: 1px solid #888866; }
|
67
|
+
input.autocomplete { border-radius: initial; height: initial; }
|
68
|
+
|
69
|
+
textarea:focus, select:focus { border: 1px solid #888866; }
|
70
|
+
|
71
|
+
option { border-bottom: 1px dotted #D7D7D7; }
|
72
|
+
|
73
|
+
body.action-login #content, body.action-login #main.nosidebar #content { background: inherit; border: 0px; box-shadow: none; }
|
74
|
+
body.action-login #login-form table { padding: 3em; background: white; -webkit-box-shadow: 0 0 3px #CCC; -moz-box-shadow: 0 0 3px #CCC; box-shadow: 0 0 3px #CCC; border: 1px solid #D7D7D7; }
|
75
|
+
|
76
|
+
#login-form input#username, #login-form input#password { outline: none; margin: 0px; border: 1px solid #D7D7D7; padding: 6px; font-size: 140%; }
|
77
|
+
|
78
|
+
.controller-account.action-login div.flash { -webkit-box-shadow: 0 0 3px #CCC; -moz-box-shadow: 0 0 3px #CCC; box-shadow: 0 0 3px #CCC; border: 1px solid #D7D7D7 !important; }
|
79
|
+
|
80
|
+
table.list tbody td, table.list tbody tr:hover td { border: 1px solid #D7D7D7; }
|
81
|
+
table.list thead th { border: 1px solid #D7D7D7; }
|
82
|
+
table.list tr.issue a { color: #666; }
|
83
|
+
|
84
|
+
tr.odd.priority-7, table.list tbody tr.odd.priority-7:hover { color: #900; font-weight: bold; }
|
85
|
+
|
86
|
+
tr.odd.priority-7 { background: #ffc4c4; }
|
87
|
+
tr.even.priority-7 { color: #900; font-weight: bold; }
|
88
|
+
|
89
|
+
table.list tbody tr.even.priority-7:hover { color: #900; font-weight: bold; }
|
90
|
+
|
91
|
+
tr.even.priority-7 { background: #ffd4d4; }
|
92
|
+
tr.priority-7 a, tr.priority-7:hover a { color: #900; }
|
93
|
+
tr.odd.priority-7 td, tr.even.priority-7 td { border-color: #ffb4b4; }
|
94
|
+
tr.odd.priority-5 { color: #900; }
|
95
|
+
|
96
|
+
table.list tbody tr.odd.priority-5:hover { color: #900; }
|
97
|
+
|
98
|
+
tr.odd.priority-5 { background: #ffc4c4; }
|
99
|
+
tr.even.priority-5 { color: #900; }
|
100
|
+
|
101
|
+
table.list tbody tr.even.priority-5:hover { color: #900; }
|
102
|
+
|
103
|
+
tr.even.priority-5 { background: #ffd4d4; }
|
104
|
+
tr.priority-5 a { color: #900; }
|
105
|
+
tr.odd.priority-5 td, tr.even.priority-5 td { border-color: #ffb4b4; }
|
106
|
+
tr.odd.priority-3 { color: #559; }
|
107
|
+
|
108
|
+
table.list tbody tr.odd.priority-3:hover { color: #559; }
|
109
|
+
|
110
|
+
tr.odd.priority-3 { background: #eaf7ff; }
|
111
|
+
tr.even.priority-3 { color: #559; }
|
112
|
+
|
113
|
+
table.list tbody tr.even.priority-3:hover { color: #559; }
|
114
|
+
|
115
|
+
tr.even.priority-3 { background: #f2faff; }
|
116
|
+
tr.priority-3 a { color: #559; }
|
117
|
+
tr.odd.priority-3 td, tr.even.priority-3 td { border-color: #add7f3; }
|
118
|
+
|
119
|
+
span.tag-label-color { color: white; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); font-size: 9px !important; line-height: 1 !important; margin: 2px 0px 2px 0px; text-decoration: none; display: inline-block; position: relative; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.25); -moz-border-radius: 0px !important; -webkit-border-radius: 0px !important; border-radius: 0px !important; padding: 4px 6px 4px !important; background: url(../images/dark-overlay.png) repeat-x scroll 0 0; border: 1px solid rgba(0, 0, 0, 0.2); background-color: #96CBFF; }
|
120
|
+
span.tag-label-color:hover { background-color: #77ADE2; }
|
121
|
+
span.tag-label-color a, span.tag-label-color span { font-weight: bold !important; font-family: "Lucida Grande", verdana, arial, helvetica, sans-serif !important; }
|
122
|
+
span.tag-label-color:hover a { color: black; text-shadow: none; }
|
123
|
+
|
124
|
+
#add-news, #add-message, #add-document { margin-bottom: 20px; }
|
125
|
+
|
126
|
+
#roadmap { margin: 10px; }
|
127
|
+
|
128
|
+
div.details { background: #FFD; padding: 20px; margin-bottom: 6px; border: 1px solid #D7D7D7; margin: -11px -11px 15px -11px; }
|
129
|
+
|
130
|
+
div.issue.tooltip { padding: 6px; margin: 0 0 6px 0; }
|
131
|
+
|
132
|
+
.box { background-color: #fcfcfc; }
|
133
|
+
|
134
|
+
.wiki img { max-width: 100%; }
|
135
|
+
|
136
|
+
div.journal .details { border: 1px solid white; }
|
137
|
+
div.journal .details:hover { background: #FFD; border: 1px solid #D7D7D7; }
|
138
|
+
div.journal > div { margin-top: 10px; }
|
139
|
+
|
140
|
+
#content .tabs ul li a { border-radius: 0px; -webkit-border-radius: 0px; -moz-border-radius: 0px; }
|
141
|
+
|
142
|
+
#history div.journal { border-top: 1px solid #DDD; }
|
143
|
+
|
144
|
+
#title h2, #buttons, #title h1 { min-width: 550px !important; }
|
145
|
+
|
146
|
+
.ui-widget { font-family: inherit; font-size: inherit; }
|
147
|
+
|
148
|
+
.ui-widget-header { font: bold 100% "Lucida Grande", verdana, arial, helvetica, sans-serif; text-shadow: white 0 1px 0; text-align: left; padding: 6px; background: #F1F5FA; border: 1px solid #CCC; border-radius: 0px; color: #000; }
|
149
|
+
|
150
|
+
div.modal div.ui-dialog-titlebar { margin: -5px; margin-bottom: 10px; }
|
151
|
+
|
152
|
+
.ui-widget-content { background: white; }
|
153
|
+
|
154
|
+
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { background: #FCFCFC; font-weight: bold; color: inherit; }
|
155
|
+
|
156
|
+
button.ui-corner-all { border-radius: 0px; }
|
157
|
+
|
158
|
+
.ui-dialog .ui-dialog-title { float: left; font-size: 14px; padding: 2px 10px 1px 0px; color: #444; }
|
159
|
+
|
160
|
+
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: inherit; font-size: inherit; }
|
@@ -0,0 +1,27 @@
|
|
1
|
+
$font-main: "Lucida Grande", verdana, arial, helvetica, sans-serif
|
2
|
+
|
3
|
+
$content-color: #FFF
|
4
|
+
$shadow-color: #CCC
|
5
|
+
$border-color: #D7D7D7
|
6
|
+
$seperator-color: #DADEE5
|
7
|
+
$segment-color: #F1F5FA
|
8
|
+
$silent-color: #EEE
|
9
|
+
|
10
|
+
$link-color-default: #005782
|
11
|
+
|
12
|
+
$title-color-default: #222
|
13
|
+
|
14
|
+
$contextual-link-color-default: #888
|
15
|
+
$contextual-link-color-hover: #333
|
16
|
+
|
17
|
+
$context-highlight-color: $silent-color
|
18
|
+
$context-border-color: #DDD
|
19
|
+
|
20
|
+
$input-border-color: $border-color
|
21
|
+
$input-focus-color: #888866
|
22
|
+
|
23
|
+
$ui-widget-header-background-color: $segment-color
|
24
|
+
$ui-widget-header-border-color: #CCC
|
25
|
+
$ui-widget-header-color: #000
|
26
|
+
$ui-widget-state-background-color: #FCFCFC
|
27
|
+
$ui-widget-dialog-color: #444
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#context-menu
|
2
|
+
-webkit-box-shadow: 0 0 3px $shadow-color
|
3
|
+
-moz-box-shadow: 0 0 3px $shadow-color
|
4
|
+
box-shadow: 0 0 3px $shadow-color
|
5
|
+
|
6
|
+
ul li ul
|
7
|
+
-webkit-box-shadow: 0 0 3px $shadow-color
|
8
|
+
-moz-box-shadow: 0 0 3px $shadow-color
|
9
|
+
box-shadow: 0 0 3px $shadow-color
|
10
|
+
li:hover
|
11
|
+
border: 1px solid $context-highlight-color !important
|
12
|
+
background-color: $context-highlight-color
|
13
|
+
ul
|
14
|
+
border: 1px solid $context-border-color!important
|
@@ -0,0 +1,24 @@
|
|
1
|
+
input
|
2
|
+
&[type="text"], &[type="password"]
|
3
|
+
padding: 2px
|
4
|
+
border: 1px solid $input-border-color
|
5
|
+
|
6
|
+
textarea, select
|
7
|
+
padding: 2px
|
8
|
+
border: 1px solid $input-border-color
|
9
|
+
|
10
|
+
input
|
11
|
+
&[type="text"], &[type="password"]
|
12
|
+
padding: 3px
|
13
|
+
&[type="text"]:focus, &[type="password"]:focus
|
14
|
+
border: 1px solid $input-focus-color
|
15
|
+
|
16
|
+
&.autocomplete
|
17
|
+
border-radius: initial
|
18
|
+
height: initial
|
19
|
+
|
20
|
+
textarea:focus, select:focus
|
21
|
+
border: 1px solid $input-focus-color
|
22
|
+
|
23
|
+
option
|
24
|
+
border-bottom: 1px dotted $input-border-color
|
@@ -0,0 +1,39 @@
|
|
1
|
+
.ui-widget
|
2
|
+
font-family: inherit
|
3
|
+
font-size: inherit
|
4
|
+
|
5
|
+
.ui-widget-header
|
6
|
+
font: bold 100% $font-main
|
7
|
+
text-shadow: white 0 1px 0
|
8
|
+
text-align: left
|
9
|
+
padding: 6px
|
10
|
+
background: $ui-widget-header-background-color
|
11
|
+
border: 1px solid $shadow-color
|
12
|
+
border-radius: 0px
|
13
|
+
color: $ui-widget-header-color
|
14
|
+
|
15
|
+
div.modal div.ui-dialog-titlebar
|
16
|
+
margin: -5px
|
17
|
+
margin-bottom: 10px
|
18
|
+
|
19
|
+
.ui-widget-content
|
20
|
+
background: white
|
21
|
+
|
22
|
+
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default
|
23
|
+
background: $ui-widget-state-background-color
|
24
|
+
font-weight: bold
|
25
|
+
color: inherit
|
26
|
+
|
27
|
+
button.ui-corner-all
|
28
|
+
border-radius: 0px
|
29
|
+
|
30
|
+
.ui-dialog .ui-dialog-title
|
31
|
+
float: left
|
32
|
+
font-size: 14px
|
33
|
+
padding: 2px 10px 1px 0px
|
34
|
+
color: $ui-widget-dialog-color
|
35
|
+
|
36
|
+
.ui-widget
|
37
|
+
input, select, textarea, button
|
38
|
+
font-family: inherit
|
39
|
+
font-size: inherit
|
@@ -0,0 +1,109 @@
|
|
1
|
+
body, #wrapper, #main
|
2
|
+
background-color: $silent-color
|
3
|
+
|
4
|
+
#header
|
5
|
+
background-color: #005782
|
6
|
+
background-image: -webkit-gradient(linear, left top, left bottom, from(#1a719c), to(#005782))
|
7
|
+
background-image: -moz-linear-gradient(center top, #1a719c 0%, #005782 100% )
|
8
|
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1a719c', endColorstr='#005782')
|
9
|
+
padding: 10px 0 35px 10px
|
10
|
+
background-position-y: 11%
|
11
|
+
height: auto
|
12
|
+
min-height: initial
|
13
|
+
|
14
|
+
> h1
|
15
|
+
height: 26px
|
16
|
+
margin: 0 24px
|
17
|
+
font-weight: normal
|
18
|
+
line-height: 14px
|
19
|
+
|
20
|
+
#main
|
21
|
+
margin: 15px 15px 0 15px
|
22
|
+
|
23
|
+
> #sidebar
|
24
|
+
ul
|
25
|
+
margin: 12px 0
|
26
|
+
padding: 0 0 0 30px
|
27
|
+
|
28
|
+
li
|
29
|
+
list-style-type: disc
|
30
|
+
|
31
|
+
#top-menu
|
32
|
+
background: #000
|
33
|
+
padding: 7px 10px 2px 20px
|
34
|
+
|
35
|
+
#main-menu
|
36
|
+
left: 15px
|
37
|
+
|
38
|
+
li
|
39
|
+
a
|
40
|
+
background-color: transparent
|
41
|
+
&.selected, &.selected:hover
|
42
|
+
background-color: $silent-color
|
43
|
+
color: $title-color-default
|
44
|
+
&:hover
|
45
|
+
background-color: transparent
|
46
|
+
|
47
|
+
#quick-search
|
48
|
+
padding-top: 10px
|
49
|
+
|
50
|
+
|
51
|
+
div.flash
|
52
|
+
border: 0
|
53
|
+
text-shadow: 0 1px white
|
54
|
+
|
55
|
+
#sidebar
|
56
|
+
a.selected
|
57
|
+
background-color: transparent
|
58
|
+
color: $shadow-color
|
59
|
+
font-weight: bold
|
60
|
+
|
61
|
+
#content
|
62
|
+
> div.flash
|
63
|
+
border: 0px solid
|
64
|
+
padding: 9px 35px 10px
|
65
|
+
margin: -6px -10px 6px -10px
|
66
|
+
background-position-x: 12px !important
|
67
|
+
background-position-y: 9px !important
|
68
|
+
|
69
|
+
#errorExplanation, .nodata, .warning
|
70
|
+
border: 1px solid
|
71
|
+
|
72
|
+
div.filters h2 .scope_title a
|
73
|
+
color: $title-color-default !important
|
74
|
+
|
75
|
+
#content
|
76
|
+
> h2,
|
77
|
+
> div.filters h2,
|
78
|
+
> #add-news > h2,
|
79
|
+
> #add-message > h2,
|
80
|
+
> .message.details > h2,
|
81
|
+
> .board.details > h2,
|
82
|
+
> #add-document > h2
|
83
|
+
background: $segment-color
|
84
|
+
padding-top: 15px
|
85
|
+
padding-bottom: 15px
|
86
|
+
padding-right: 20px
|
87
|
+
padding-left: 20px
|
88
|
+
margin: -7px -10px 10px
|
89
|
+
border-top: 1px solid $seperator-color
|
90
|
+
border-bottom: 1px solid $seperator-color
|
91
|
+
|
92
|
+
> div.contextual
|
93
|
+
margin-top: 13px
|
94
|
+
margin-right: 10px
|
95
|
+
|
96
|
+
> div.wiki
|
97
|
+
padding: 6px 10px 10px 10px
|
98
|
+
|
99
|
+
#content, #main.nosidebar #content
|
100
|
+
background: $content-color
|
101
|
+
-webkit-box-shadow: 0 0 3px $shadow-color
|
102
|
+
-moz-box-shadow: 0 0 3px $shadow-color
|
103
|
+
box-shadow: 0 0 3px $shadow-color
|
104
|
+
border: 1px solid $border-color
|
105
|
+
|
106
|
+
#footer
|
107
|
+
background-color: $silent-color
|
108
|
+
border: 0
|
109
|
+
margin: 10px
|
@@ -0,0 +1,26 @@
|
|
1
|
+
body.action-login
|
2
|
+
#content, #main.nosidebar #content
|
3
|
+
background: inherit
|
4
|
+
border: 0px
|
5
|
+
box-shadow: none
|
6
|
+
#login-form table
|
7
|
+
padding: 3em
|
8
|
+
background: white
|
9
|
+
-webkit-box-shadow: 0 0 3px $shadow-color
|
10
|
+
-moz-box-shadow: 0 0 3px $shadow-color
|
11
|
+
box-shadow: 0 0 3px $shadow-color
|
12
|
+
border: 1px solid $border-color
|
13
|
+
|
14
|
+
#login-form input
|
15
|
+
&#username, &#password
|
16
|
+
outline: none
|
17
|
+
margin: 0px
|
18
|
+
border: 1px solid $border-color
|
19
|
+
padding: 6px
|
20
|
+
font-size: 140%
|
21
|
+
|
22
|
+
.controller-account.action-login div.flash
|
23
|
+
-webkit-box-shadow: 0 0 3px $shadow-color
|
24
|
+
-moz-box-shadow: 0 0 3px $shadow-color
|
25
|
+
box-shadow: 0 0 3px $shadow-color
|
26
|
+
border: 1px solid $border-color !important
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#add-news, #add-message, #add-document
|
2
|
+
margin-bottom: 20px
|
3
|
+
|
4
|
+
#roadmap
|
5
|
+
margin: 10px
|
6
|
+
|
7
|
+
div.details
|
8
|
+
background: #FFD
|
9
|
+
padding: 20px
|
10
|
+
margin-bottom: 6px
|
11
|
+
border: 1px solid #D7D7D7
|
12
|
+
margin: -11px -11px 15px -11px
|
13
|
+
|
14
|
+
div.issue.tooltip
|
15
|
+
padding: 6px
|
16
|
+
margin: 0 0 6px 0
|
17
|
+
|
18
|
+
.box
|
19
|
+
background-color: #fcfcfc
|
20
|
+
|
21
|
+
.wiki img
|
22
|
+
max-width: 100%
|
23
|
+
|
24
|
+
div.journal
|
25
|
+
.details
|
26
|
+
border: 1px solid white
|
27
|
+
&:hover
|
28
|
+
background: #FFD
|
29
|
+
border: 1px solid #D7D7D7
|
30
|
+
> div
|
31
|
+
margin-top: 10px
|
32
|
+
|
33
|
+
#content .tabs ul li a
|
34
|
+
border-radius: 0px
|
35
|
+
-webkit-border-radius: 0px
|
36
|
+
-moz-border-radius: 0px
|
37
|
+
|
38
|
+
#history div.journal
|
39
|
+
border-top: 1px solid #DDD
|
40
|
+
|
41
|
+
#title h2, #buttons, #title h1
|
42
|
+
min-width: 550px !important
|
43
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
div.modal
|
2
|
+
-webkit-border-radius: 0px
|
3
|
+
-moz-border-radius: 0px
|
4
|
+
border-radius: 0px
|
5
|
+
overflow: visible
|
6
|
+
background-color: $content-color
|
7
|
+
color: black
|
8
|
+
-webkit-box-shadow: 0 0 3px $shadow-color
|
9
|
+
-moz-box-shadow: 0 0 3px $shadow-color
|
10
|
+
box-shadow: 0 0 3px $shadow-color
|
11
|
+
border: 1px solid $border-color
|
12
|
+
|
13
|
+
h3.title
|
14
|
+
font: bold 100% $font-main
|
15
|
+
text-shadow: white 0 1px 0
|
16
|
+
text-align: left
|
17
|
+
padding: 6px
|
18
|
+
background-color: $segment-color
|
19
|
+
border-bottom: 1px solid $border-color
|
20
|
+
color: black
|
21
|
+
|
22
|
+
#modalbg
|
23
|
+
background: black
|
24
|
+
opacity: 0.40
|
@@ -0,0 +1,76 @@
|
|
1
|
+
table.list
|
2
|
+
tbody
|
3
|
+
td, tr:hover td
|
4
|
+
border: 1px solid $border-color
|
5
|
+
thead th
|
6
|
+
border: 1px solid $border-color
|
7
|
+
tr.issue a
|
8
|
+
color: #666
|
9
|
+
|
10
|
+
tr.odd.priority-7, table.list tbody tr.odd.priority-7:hover
|
11
|
+
color: #900
|
12
|
+
font-weight: bold
|
13
|
+
|
14
|
+
tr
|
15
|
+
&.odd.priority-7
|
16
|
+
background: #ffc4c4
|
17
|
+
&.even.priority-7
|
18
|
+
color: #900
|
19
|
+
font-weight: bold
|
20
|
+
|
21
|
+
table.list tbody tr.even.priority-7:hover
|
22
|
+
color: #900
|
23
|
+
font-weight: bold
|
24
|
+
|
25
|
+
tr
|
26
|
+
&.even.priority-7
|
27
|
+
background: #ffd4d4
|
28
|
+
&.priority-7
|
29
|
+
a, &:hover a
|
30
|
+
color: #900
|
31
|
+
&.odd.priority-7 td, &.even.priority-7 td
|
32
|
+
border-color: #ffb4b4
|
33
|
+
&.odd.priority-5
|
34
|
+
color: #900
|
35
|
+
|
36
|
+
table.list tbody tr.odd.priority-5:hover
|
37
|
+
color: #900
|
38
|
+
|
39
|
+
tr
|
40
|
+
&.odd.priority-5
|
41
|
+
background: #ffc4c4
|
42
|
+
&.even.priority-5
|
43
|
+
color: #900
|
44
|
+
|
45
|
+
table.list tbody tr.even.priority-5:hover
|
46
|
+
color: #900
|
47
|
+
|
48
|
+
tr
|
49
|
+
&.even.priority-5
|
50
|
+
background: #ffd4d4
|
51
|
+
&.priority-5 a
|
52
|
+
color: #900
|
53
|
+
&.odd.priority-5 td, &.even.priority-5 td
|
54
|
+
border-color: #ffb4b4
|
55
|
+
&.odd.priority-3
|
56
|
+
color: #559
|
57
|
+
|
58
|
+
table.list tbody tr.odd.priority-3:hover
|
59
|
+
color: #559
|
60
|
+
|
61
|
+
tr
|
62
|
+
&.odd.priority-3
|
63
|
+
background: #eaf7ff
|
64
|
+
&.even.priority-3
|
65
|
+
color: #559
|
66
|
+
|
67
|
+
table.list tbody tr.even.priority-3:hover
|
68
|
+
color: #559
|
69
|
+
|
70
|
+
tr
|
71
|
+
&.even.priority-3
|
72
|
+
background: #f2faff
|
73
|
+
&.priority-3 a
|
74
|
+
color: #559
|
75
|
+
&.odd.priority-3 td, &.even.priority-3 td
|
76
|
+
border-color: #add7f3
|
@@ -0,0 +1,27 @@
|
|
1
|
+
span.tag-label-color
|
2
|
+
color: white
|
3
|
+
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25)
|
4
|
+
font-size: 9px !important
|
5
|
+
line-height: 1 !important
|
6
|
+
margin: 2px 0px 2px 0px
|
7
|
+
text-decoration: none
|
8
|
+
display: inline-block
|
9
|
+
position: relative
|
10
|
+
text-align: center
|
11
|
+
border-top: 1px solid rgba(255, 255, 255, 0.25)
|
12
|
+
-moz-border-radius: 0px !important
|
13
|
+
-webkit-border-radius: 0px !important
|
14
|
+
border-radius: 0px !important
|
15
|
+
padding: 4px 6px 4px !important
|
16
|
+
background: url(../images/dark-overlay.png) repeat-x scroll 0 0
|
17
|
+
border: 1px solid rgba(0, 0, 0, 0.2)
|
18
|
+
background-color: #96CBFF
|
19
|
+
|
20
|
+
&:hover
|
21
|
+
background-color: #77ADE2
|
22
|
+
a, span
|
23
|
+
font-weight: bold !important
|
24
|
+
font-family: $font-main !important
|
25
|
+
&:hover a
|
26
|
+
color: black
|
27
|
+
text-shadow: none
|
@@ -0,0 +1,33 @@
|
|
1
|
+
body, #wrapper, h1, h2, h3, h4
|
2
|
+
font-family: $font-main
|
3
|
+
|
4
|
+
h2, h3, h4, .wiki h1, .wiki h2, .wiki h3
|
5
|
+
border-bottom: 0
|
6
|
+
|
7
|
+
p
|
8
|
+
&.breadcrumb
|
9
|
+
margin: 4px 0 15px 0
|
10
|
+
|
11
|
+
&.subtitle
|
12
|
+
margin: 0px 0 12px 0
|
13
|
+
|
14
|
+
a, a:link, a:visited
|
15
|
+
color: $link-color-default
|
16
|
+
|
17
|
+
.contextual a, .contextual a:link, .contextual a:visited
|
18
|
+
color: $contextual-link-color-default
|
19
|
+
|
20
|
+
.contextual a:hover, .contextual a:visited:hover
|
21
|
+
color: $contextual-link-color-hover
|
22
|
+
|
23
|
+
div.filters h2 .scope_title a
|
24
|
+
color: $title-color-default
|
25
|
+
text-decoration: none
|
26
|
+
|
27
|
+
h2, .wiki h1,
|
28
|
+
h3, .wiki h2
|
29
|
+
color: $title-color-default
|
30
|
+
|
31
|
+
|
32
|
+
#sidebar h3
|
33
|
+
color: $title-color-default
|
data/lib/neopoly_style/hooks.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
module NeopolyStyle
|
2
|
+
# Includes our stylesheet and javascript files into the base layout
|
2
3
|
class Hooks < Redmine::Hook::ViewListener
|
4
|
+
# Inject javascript and stylesheet tags
|
5
|
+
# @param _context [Hash] ignored
|
3
6
|
def view_layouts_base_html_head(_context)
|
4
7
|
javascript_tags + stylesheet_tags
|
5
8
|
end
|
data/lib/neopoly_style/infos.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module NeopolyStyle
|
2
2
|
module Patches
|
3
|
+
# Patches to be applied to the global ApplicationHelper to support
|
4
|
+
# out custom styling
|
3
5
|
module ApplicationHelperPatch
|
4
6
|
extend ActiveSupport::Concern
|
5
7
|
|
@@ -7,6 +9,7 @@ module NeopolyStyle
|
|
7
9
|
alias_method_chain :favicon_path, :neopoly_style
|
8
10
|
end
|
9
11
|
|
12
|
+
# Returns the path to our own favicon
|
10
13
|
def favicon_path_with_neopoly_style
|
11
14
|
path = "/plugin_assets/neopoly_style/images/favicon.ico"
|
12
15
|
image_path(path)
|
data/rakelib/assets.rake
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
namespace :assets do
|
2
|
+
desc "Build all static assets"
|
3
|
+
task build: [:"assets:build:stylesheets"]
|
4
|
+
|
5
|
+
namespace :build do
|
6
|
+
def path(*segments)
|
7
|
+
File.join(*segments)
|
8
|
+
end
|
9
|
+
|
10
|
+
desc "Convert SASS stylesheets to CSS"
|
11
|
+
task :stylesheets do
|
12
|
+
require "sass"
|
13
|
+
input = path("lib", "assets", "stylesheets", "neopoly_style.sass")
|
14
|
+
output = path("assets", "stylesheets", "neopoly_style.css")
|
15
|
+
engine = Sass::Engine.for_file(input, syntax: :sass, style: :compact)
|
16
|
+
File.write(output, engine.render)
|
17
|
+
puts "Build: #{output}"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
begin
|
2
|
+
require "rubocop/rake_task"
|
3
|
+
|
4
|
+
Rake::Task[:default].enhance [:rubocop]
|
5
|
+
|
6
|
+
RuboCop::RakeTask.new do |task|
|
7
|
+
task.options << "--display-cop-names"
|
8
|
+
end
|
9
|
+
|
10
|
+
namespace :rubocop do
|
11
|
+
desc "Generate a configuration file acting as a TODO list."
|
12
|
+
task :auto_gen_config do
|
13
|
+
exec "bundle exec rubocop --auto-gen-config"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
rescue LoadError
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redmine-neopoly_style
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Thiel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: sass
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.4'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.4'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rubocop
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,9 +93,22 @@ files:
|
|
79
93
|
- LICENSE.txt
|
80
94
|
- README.md
|
81
95
|
- Rakefile
|
96
|
+
- assets/images/dark-overlay.png
|
82
97
|
- assets/images/favicon.ico
|
83
98
|
- assets/javascripts/neopoly_style.js
|
84
99
|
- assets/stylesheets/neopoly_style.css
|
100
|
+
- lib/assets/stylesheets/_config.sass
|
101
|
+
- lib/assets/stylesheets/_context_menu.sass
|
102
|
+
- lib/assets/stylesheets/_forms.sass
|
103
|
+
- lib/assets/stylesheets/_jquery_ui.sass
|
104
|
+
- lib/assets/stylesheets/_layout.sass
|
105
|
+
- lib/assets/stylesheets/_login.sass
|
106
|
+
- lib/assets/stylesheets/_misc.sass
|
107
|
+
- lib/assets/stylesheets/_modal.sass
|
108
|
+
- lib/assets/stylesheets/_tables.sass
|
109
|
+
- lib/assets/stylesheets/_tags.sass
|
110
|
+
- lib/assets/stylesheets/_typography.sass
|
111
|
+
- lib/assets/stylesheets/neopoly_style.sass
|
85
112
|
- lib/neopoly_style/engine.rb
|
86
113
|
- lib/neopoly_style/hooks.rb
|
87
114
|
- lib/neopoly_style/infos.rb
|
@@ -90,6 +117,8 @@ files:
|
|
90
117
|
- lib/neopoly_style/redmine_plugin.rb
|
91
118
|
- lib/neopoly_style/version.rb
|
92
119
|
- lib/redmine-neopoly_style.rb
|
120
|
+
- rakelib/assets.rake
|
121
|
+
- rakelib/rubocop.rake
|
93
122
|
- redmine-neopoly_style.gemspec
|
94
123
|
homepage: https://github.com/neopoly/redmine-neopoly_style
|
95
124
|
licenses:
|