redmine-neopoly_style 0.0.1 → 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 +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:
|