Compare commits
124 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
adc7e59d22 | ||
|
|
cfdf261645 | ||
|
|
1e6cdd7cef | ||
|
|
3e78878ed0 | ||
|
|
15a492a1b6 | ||
|
|
5cafccd221 | ||
|
|
610ee38c3d | ||
|
|
b1154eb9ed | ||
|
|
f5ef9dba70 | ||
|
|
b7efd10a99 | ||
|
|
9977d8e38e | ||
|
|
dde298d630 | ||
|
|
452e0fecf0 | ||
|
|
edde6acb1f | ||
|
|
433819c6ff | ||
|
|
fa3225be82 | ||
|
|
25f7092f9c | ||
|
|
bc8bde7756 | ||
|
|
1253489333 | ||
|
|
42dfc57ee7 | ||
|
|
24db7ad013 | ||
|
|
6c8432f627 | ||
|
|
f12816dad7 | ||
|
|
71a0b1a92c | ||
|
|
a350c369cc | ||
|
|
56a5e1db49 | ||
|
|
6c102320b7 | ||
|
|
2140b58778 | ||
|
|
970da9d3b5 | ||
|
|
654f4f9073 | ||
|
|
aebbfbaf17 | ||
|
|
7f518e0ff7 | ||
|
|
8abe193be4 | ||
|
|
5081a5874b | ||
|
|
2cc2c83568 | ||
|
|
3fd21ebb9c | ||
|
|
5975ab9b5d | ||
|
|
13b11dcbca | ||
|
|
8a44905739 | ||
|
|
2f4b08ba19 | ||
|
|
d220db112a | ||
|
|
fbae203298 | ||
|
|
0d97c6c930 | ||
|
|
8b0631eb31 | ||
|
|
115d7109ec | ||
|
|
1cb53dc85e | ||
|
|
9f701b0d05 | ||
|
|
352e170786 | ||
|
|
f6a80dddb4 | ||
|
|
f326d62550 | ||
|
|
a13ae91b5f | ||
|
|
51484c2e7e | ||
|
|
5b370b2233 | ||
|
|
3e9c05bd8f | ||
|
|
fac8b8e5e2 | ||
|
|
126181756f | ||
|
|
201e176587 | ||
|
|
fabbfc36e6 | ||
|
|
6d8d876bf7 | ||
|
|
c22c8d9fda | ||
|
|
41578b8dd0 | ||
|
|
ee472a0187 | ||
|
|
26ba4e1701 | ||
|
|
7f03565012 | ||
|
|
4d099338e9 | ||
|
|
882aab73c5 | ||
|
|
e270c3a6a3 | ||
|
|
b5361cb864 | ||
|
|
92a62fa7da | ||
|
|
b51db13a24 | ||
|
|
8f94175851 | ||
|
|
d78c2fccc6 | ||
|
|
eea1ee7412 | ||
|
|
7470981f41 | ||
|
|
0d1f9e3744 | ||
|
|
4962216a09 | ||
|
|
f6ba903f5d | ||
|
|
9a8eadc310 | ||
|
|
160b457355 | ||
|
|
ccc9108bfb | ||
|
|
7e76a0b1c8 | ||
|
|
516fba06da | ||
|
|
1e906b2d73 | ||
|
|
ae19f7a657 | ||
|
|
88c4f7172d | ||
|
|
502fe435fb | ||
|
|
ac70bf5af5 | ||
|
|
06932c7903 | ||
|
|
71100e5f52 | ||
|
|
c5db8f62f7 | ||
|
|
509d51357b | ||
|
|
957040aa3a | ||
|
|
539446909f | ||
|
|
9cb8723dc4 | ||
|
|
51e9d1dbe2 | ||
|
|
2311f44a0e | ||
|
|
dfe9588b04 | ||
|
|
2941b53826 | ||
|
|
937e79a1a8 | ||
|
|
130e474efc | ||
|
|
dc197cdf69 | ||
|
|
c3c6a01459 | ||
|
|
78807dae09 | ||
|
|
51e825f497 | ||
|
|
e2a0c5e9c4 | ||
|
|
bdf4713583 | ||
|
|
29fd0896ed | ||
|
|
83c8c9be9b | ||
|
|
6c0f4dbf91 | ||
|
|
08fe4fa102 | ||
|
|
6dfbb71b7a | ||
|
|
09a63b4f9b | ||
|
|
27fd164d3e | ||
|
|
2997bdf085 | ||
|
|
d32999101e | ||
|
|
d8ec2b9531 | ||
|
|
7343aa9570 | ||
|
|
b115d3125e | ||
|
|
c230b4ab03 | ||
|
|
8665246be7 | ||
|
|
6fb7d577f9 | ||
|
|
76048dc426 | ||
|
|
87213c85e2 | ||
|
|
8879be0876 |
3
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
/.sass-cache
|
||||
/node_modules
|
||||
/sass/_custom-variables.scss
|
||||
/src/sass/_custom-variables.scss
|
||||
/.sublime-grunt.cache
|
||||
/images/logo
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
scss_files: "**/*.scss"
|
||||
scss_files: "src/sass/**/*.scss"
|
||||
|
||||
exclude: 'src/sass/lib/**'
|
||||
|
||||
linters:
|
||||
BangFormat:
|
||||
@@ -12,6 +14,9 @@ linters:
|
||||
ColorKeyword:
|
||||
enabled: true
|
||||
|
||||
ColorVariable:
|
||||
enabled: false
|
||||
|
||||
Comment:
|
||||
enabled: false
|
||||
|
||||
|
||||
10
Gruntfile.js
@@ -22,7 +22,13 @@ module.exports = function(grunt) {
|
||||
'plugins/redmine_backlogs/statistics.css':
|
||||
'<%= src %>sass/plugins/redmine_backlogs/statistics.scss',
|
||||
'plugins/redmine_backlogs/taskboard.css':
|
||||
'<%= src %>sass/plugins/redmine_backlogs/taskboard.scss'
|
||||
'<%= src %>sass/plugins/redmine_backlogs/taskboard.scss',
|
||||
'plugins/redmine_backlogs/jquery/jquery-ui.css':
|
||||
'<%= src %>sass/plugins/redmine_backlogs/jquery/jquery-ui.scss',
|
||||
'plugins/redmine_backlogs/jquery/jquery.multiselect.css':
|
||||
'<%= src %>sass/plugins/redmine_backlogs/jquery/jquery.multiselect.scss',
|
||||
'plugins/redmine_backlogs/jquery/jquery.qtip.css':
|
||||
'<%= src %>sass/plugins/redmine_backlogs/jquery/jquery.qtip.scss'
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -43,7 +49,7 @@ module.exports = function(grunt) {
|
||||
tasks: ['css']
|
||||
},
|
||||
js: {
|
||||
files: ['<%= src %>javascripts/src/*.js'],
|
||||
files: ['<%= src %>javascripts/**/*.js'],
|
||||
tasks: ['js']
|
||||
}
|
||||
}
|
||||
|
||||
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Grzegorz Rajchman <mrliptontea@griego.pl>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
104
README.md
@@ -4,7 +4,7 @@ A free Redmine theme for modern browsers.
|
||||
|
||||

|
||||
|
||||
Compatible with Redmine 2.5+ and browsers: IE9+, latest Firefox and Google Chrome (others were not tested).
|
||||
Compatible with Redmine 2.5+ and browsers: IE10+/Edge, latest Firefox and Google Chrome (others were not tested).
|
||||
|
||||
It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of [Bootstrap][bootstrap-sass] like mixins, structure, and stuff.
|
||||
|
||||
@@ -28,7 +28,7 @@ Then go to Redmine > Administration > Settings > Display and select PurpleMine2
|
||||
|
||||
This theme also features a new look for [Redmine Backlogs][redmine_backlogs] plugin. To install it, simply copy stylesheets from `PurpleMine2/plugins/redmine_backlogs` and overwrite files in `{redmine}/plugins/redmine_backlogs/assets/stylesheets` and restart Redmine.
|
||||
|
||||
Also, [Redmine Time Tracker][redmine_time_tracker] plugin should look nice with PurpleMine.
|
||||
Also, [Redmine Time Tracker][redmine_time_tracker] and [Redmine People][redmine_crm_people] plugins should look nice with PurpleMine.
|
||||
|
||||
## How to customize it
|
||||
|
||||
@@ -48,10 +48,101 @@ Now all the dependencies should be ready to use. Run one more command:
|
||||
|
||||
And now the grunt is watching for changes in files placed in `src/` folder. Just change what you need, and it'll run SASS preprocessor automatically.
|
||||
|
||||
Regrettably, optional file include is not possible in SASS, so I would recommend creating a new file, e.g. `_my_variables.scss` and importing it a the beginning of the `application.scss` file. That way all the variables with the `!default` flag could be overridden.
|
||||
Regrettably, optional file include is not possible in SASS, so I would recommend creating a new file, e.g. `src/sass/_custom-variables.scss` and importing it a the beginning of the `application.scss` file. That way all the variables with the `!default` flag could be overridden.
|
||||
|
||||
The path `src/sass/_custom-variables.scss` is added to `.gitignore` so it should make upgrading PurpleMine with keeping your changes rather painless, given that the only thing you changed in PurpleMine's source was adding this one line with `@import "custom-variables";`.
|
||||
|
||||
If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remember to include your `_custom-variables.scss` in `src/sass/plugins/redmine_backlogs/_common.scss`.
|
||||
|
||||
## Changelog
|
||||
|
||||
v1.7.0 (2015-09-25):
|
||||
|
||||
* Added styles for optgroup (Firefox only)
|
||||
* Fixed #13: #header was missing clearfix and was breaking the layout is some cases
|
||||
* Coloring issue's title instead of link in Gantt diagram for overdue issues
|
||||
* Updated npm packages: grunt-sass from 0.18.0 to 1.0.0 and grunt-contrib-uglify 0.7.0 to 0.9.1
|
||||
* Use flexbox layout by default (can be changed by setting `$flexbox-layout` to `false`)
|
||||
* Fixed animation issue when showing sidebar
|
||||
* Slightly modified buttons' style
|
||||
* Few visual tweaks: nicer shadows, improved datepickers layout
|
||||
+ Configurable list borders and highlighting of hovered and even/odd rows
|
||||
+ Introduce `$pagination-padding-` variables and make pagination buttons' height equal to buttons by default
|
||||
* Fixed #16: remove `white-space: nowrap` from external links to prevent breaking the page with flexbox layout
|
||||
* Fixed colored trackers in tooltips in Backlogs plugin
|
||||
* Fixed broken codebutton modal after making buttons wider
|
||||
* Changed the license to MIT
|
||||
|
||||
v1.6.0 (2015-06-10):
|
||||
|
||||
* Fixed #8: Setting `$top-menu-collapse` to `true` will enable script allowing to toggle if top menu should be collapsed (no wrapping) or expanded (wrapped, with auto height)
|
||||
+ Header matching current URL fragment will have `#` prepended
|
||||
+ Introduced `$font-weight-normal` and `$font-weight-bold` variables to give better control on the appearance of text with custom fonts
|
||||
* Fixed #9: Added `$main-menu-collapse` and applied the same logic as in #8
|
||||
* Fixed #12: Removed `display: block` from issue's subject link to allow context menu to popup upon right click next to subject
|
||||
* Resolved #11: Company logo can be added to the header
|
||||
|
||||
v1.5.0 (2015-04-15):
|
||||
|
||||
* Fixed #5: Added default style for colored issue links.
|
||||
* Introduced `$tracker-colors-map` and removed `$tracker-X-bg` variables.
|
||||
See d220db1 comments for more details.
|
||||
* Fixed #6: Added default padding for table cells.
|
||||
|
||||
v1.4.1 (2015-04-14):
|
||||
|
||||
* Fixed #3: Closed tasks will be more appreciable.
|
||||
|
||||
v1.4.0 (2015-04-10):
|
||||
|
||||
+ Introduced option `$wiki-page-more-vertical-space` (by default `true`) to improve wiki pages' readability even more
|
||||
* Fixed bottom margin of `pre` tag
|
||||
+ Added a few helper classes from Bootstrap
|
||||
* WYSIWYG's icons will squeeze a little bit on smaller screens
|
||||
* Images in headers will be aligned to the middle vertically
|
||||
+ Introduced `text-normal` class for resetting font's weight
|
||||
+ Added class `toc-active-prev` that will "highlight" TOC as "active".
|
||||
* Fixed #2: Make sure that `.sort` with Font Awesome icons won't have background image
|
||||
* Fixed attachments div's layout for wiki pages
|
||||
|
||||
For more details, see [release v1.4.0](https://github.com/HolonGlobe/PurpleMine2/releases/tag/v1.4.0)
|
||||
|
||||
v1.3.0 (2015-04-01):
|
||||
|
||||
* Backlogs: make it possible to click on empty field
|
||||
* Corrected issue form columns widths so they will be equal in all fieldsets
|
||||
* Changesets will look similar to issue's journal
|
||||
+ Improved revision page layout and added Font Awesome icons
|
||||
+ Improved file content view
|
||||
* Fixed #1: Font Awesome icons will no longer break plugins' icons
|
||||
+ Introduced styles for [People][redmine_crm_people] plugin
|
||||
* Enhanced styles for activities list
|
||||
* Regular buttons (e.g. `Cancel`) will look like links in dialog windows
|
||||
* Fixed look of collapsible arrow in Firefox
|
||||
+ Overrode Redmine's revision graph function to make it look better
|
||||
+ Animated collapsible fieldsets
|
||||
+ Custom image based icons changed to base64 embedded data
|
||||
|
||||
v1.2.0 (2015-03-03):
|
||||
|
||||
* Fixed .warning style
|
||||
+ Coloring status on issue page (it'll look like label)
|
||||
* Fixed master backlog sub-menu accessibility
|
||||
+ Changed font weight to normal for sub-projects in project list
|
||||
* Fixed watch task path for .js
|
||||
- Removed unnecessary classes from .sidebar-toggler
|
||||
* Fixed external link icon, when URI contains the word 'edit'
|
||||
* Fixed wiki page headers links font-size
|
||||
+ Changed some trackers default colors
|
||||
+ Bolded user name on issue page if it's current user
|
||||
* Issue's journal appearance changed once again
|
||||
+ Some improvements in wiki formatting
|
||||
+ Introduced HistoryTabs for filtering issue journals
|
||||
* Improved issue page styles and adjusted default priority colors
|
||||
* Backlogs: added delay before hiding backlog menu
|
||||
* Changed ancestor project name in top to equal font size, but different weight
|
||||
* Fixed context menu position regression introduced by sidebar toggle
|
||||
|
||||
v1.1.0 (2015-02-15):
|
||||
|
||||
+ Changed issue's journal appearance
|
||||
@@ -66,12 +157,9 @@ v1.0.0 (2015-02-06):
|
||||
|
||||
Initial version
|
||||
|
||||
## License
|
||||
|
||||
[WTFPL](http://www.wtfpl.net/)
|
||||
|
||||
[SCSS]: http://sass-lang.com/
|
||||
[normalize.css]: https://github.com/necolas/normalize.css
|
||||
[bootstrap-sass]: https://github.com/twbs/bootstrap-sass
|
||||
[redmine_backlogs]: https://github.com/backlogs/redmine_backlogs
|
||||
[redmine_time_tracker]: https://github.com/hicknhack-software/redmine_time_tracker
|
||||
[redmine_time_tracker]: https://github.com/hicknhack-software/redmine_time_tracker
|
||||
[redmine_crm_people]: http://www.redminecrm.com/projects/people/
|
||||
BIN
favicon/favicon.ico
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
images/aci.png
|
Before Width: | Height: | Size: 149 B |
|
Before Width: | Height: | Size: 177 B |
|
Before Width: | Height: | Size: 175 B |
|
Before Width: | Height: | Size: 109 B |
|
Before Width: | Height: | Size: 118 B |
|
Before Width: | Height: | Size: 191 B |
17
package.json
@@ -1,27 +1,26 @@
|
||||
{
|
||||
"name": "PurpleMine2",
|
||||
"version": "2.0.0",
|
||||
"description": "A free Redmine 2.5+ theme written in SASS",
|
||||
"description": "A free Redmine 2.5+ theme written in SCSS",
|
||||
"keywords": [
|
||||
"redmine",
|
||||
"theme",
|
||||
"sass",
|
||||
"scss"
|
||||
],
|
||||
"author": "HolonGlobe",
|
||||
"author": "mrliptontea",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git@github.com:HolonGlobe/PurpleMine2.git"
|
||||
"url": "git@github.com:mrliptontea/PurpleMine2.git"
|
||||
},
|
||||
"license": "WTFPL",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/HolonGlobe/PurpleMine2/issues"
|
||||
"url": "https://github.com/mrliptontea/PurpleMine2/issues"
|
||||
},
|
||||
"homepage": "https://github.com/HolonGlobe/PurpleMine2",
|
||||
"homepage": "https://github.com/mrliptontea/PurpleMine2",
|
||||
"devDependencies": {
|
||||
"grunt": "^0.4.5",
|
||||
"grunt-contrib-uglify": "^0.7.0",
|
||||
"grunt-contrib-uglify": "^0.9.1",
|
||||
"grunt-contrib-watch": "^0.6.1",
|
||||
"grunt-sass": "^0.18.0"
|
||||
"grunt-sass": "^1.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
1
plugins/redmine_backlogs/jquery/jquery-ui.css
vendored
Normal file
1
plugins/redmine_backlogs/jquery/jquery.multiselect.css
Normal file
@@ -0,0 +1 @@
|
||||
.ui-multiselect{padding:2px 0 2px 4px;text-align:left}.ui-multiselect span.ui-icon{float:right}.ui-multiselect-single .ui-multiselect-checkboxes input{position:absolute !important;top:auto !important;left:-9999px}.ui-multiselect-single .ui-multiselect-checkboxes label{padding:5px !important}.ui-multiselect-header{margin-bottom:3px;padding:3px}.ui-multiselect-header ul{font-size:0.92em}.ui-multiselect-header ul li{padding:0 10px 0 0;float:left}.ui-multiselect-header a{text-decoration:none}.ui-multiselect-header a:hover{text-decoration:underline}.ui-multiselect-header span.ui-icon{float:left}.ui-multiselect-header li.ui-multiselect-close{padding-right:0;float:right;text-align:right}.ui-multiselect-menu{display:none;position:absolute;padding:3px;text-align:left;z-index:10000;box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23)}.ui-multiselect-checkboxes{position:relative;padding-right:2px;overflow-y:scroll}.ui-multiselect-checkboxes input[type="checkbox"]{top:0;margin:3px 0 0 -20px;float:left}.ui-multiselect-checkboxes input[type="checkbox"]:focus{outline:none}.ui-multiselect-checkboxes label{display:block;padding:3px 1px;padding-left:26px;border:1px solid transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui-multiselect-checkboxes label input{position:relative;top:1px}.ui-multiselect-checkboxes li{clear:both;font-size:0.92em}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label{margin-bottom:2px;border-bottom:1px solid #ccc;font-weight:bold;text-align:center}.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a{display:block;margin:1px 0;padding:3px;text-decoration:none}* html .ui-multiselect-checkboxes label{border:0 none}
|
||||
1
plugins/redmine_backlogs/jquery/jquery.qtip.css
Normal file
@@ -0,0 +1 @@
|
||||
.qtip{position:absolute;top:-31000px;left:-31000px;width:auto;max-width:500px;outline:none}.ui-tooltip-content{position:relative;padding:10px;border:1px solid #ccc;background-color:#fff;color:#555;font-size:0.92em;text-align:left;word-wrap:break-word;box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23);overflow:hidden}.ui-tooltip-tip{border-color:#ccc;background-color:#fff}.ui-tooltip-tip{position:absolute;margin:0 auto;border:0 none;background:transparent;overflow:hidden;z-index:10}
|
||||
@@ -1 +1 @@
|
||||
table th,table td{padding:5px 8px}.ui-widget{margin-bottom:20px}.score{display:inline-block;width:1.5em;font-size:large;text-align:center}.score_0{background-color:#f00}.score_1{background-color:#ff5300}.score_2{background-color:#ff8100}.score_3{background-color:#ffa100}.score_4{background-color:#fb0}.score_5{background-color:#ffd300}.score_6{background-color:#ffec00}.score_7{background-color:#e9fb00}.score_8{background-color:#b1f100}.score_9{background-color:#74e600}.score_10{background-color:#0c0}
|
||||
table th,table td{padding:5px 8px}.ui-widget{margin-bottom:20px}.score{display:inline-block;width:1.5em;font-size:large;text-align:center}.score_0{background-color:#f00}.score_1{background-color:#ff5300}.score_2{background-color:#ff8100}.score_3{background-color:#ffa100}.score_4{background-color:#fb0}.score_5{background-color:#ffd300}.score_6{background-color:#ffec00}.score_7{background-color:#e9fb00}.score_8{background-color:#b1f100}.score_9{background-color:#74e600}.score_10{background-color:#0c0}
|
||||
|
||||
98
src/javascripts/modules/HistoryTabs.js
Normal file
@@ -0,0 +1,98 @@
|
||||
var PurpleMine = PurpleMine || {};
|
||||
|
||||
PurpleMine.HistoryTabs = (function()
|
||||
{
|
||||
"use strict";
|
||||
|
||||
var self;
|
||||
var translations = {
|
||||
en: {
|
||||
all : "All",
|
||||
notes : "Notes",
|
||||
details: "Changes"
|
||||
},
|
||||
pl: {
|
||||
all : "Wszystko",
|
||||
notes : "Notatki",
|
||||
details: "Zmiany"
|
||||
}
|
||||
};
|
||||
|
||||
function HistoryTabs()
|
||||
{
|
||||
if (self)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
self = this;
|
||||
|
||||
this.$tabsContainer = null;
|
||||
this.$tabs = null;
|
||||
this.$history = $("#history");
|
||||
this.lang = document.documentElement.lang;
|
||||
|
||||
if (typeof translations[this.lang] === "undefined")
|
||||
{
|
||||
this.lang = "en";
|
||||
}
|
||||
|
||||
this._ = translations[this.lang];
|
||||
|
||||
if (this.$history.length > 0)
|
||||
{
|
||||
buildTabs();
|
||||
markFirstOfTypes();
|
||||
}
|
||||
}
|
||||
|
||||
function buildTabs()
|
||||
{
|
||||
var html = "",
|
||||
liStart = "<li><a href=\"javascript:;\" class=\"",
|
||||
liMid = "history-tab\" data-tab=\"",
|
||||
liEnd = "</a></li>";
|
||||
|
||||
html += "<div class=\"tabs\"><ul>";
|
||||
html += liStart + "selected " + liMid + "all\">" + self._.all + liEnd;
|
||||
html += liStart + liMid + "notes\">" + self._.notes + liEnd;
|
||||
html += liStart + liMid + "details\">" + self._.details + liEnd;
|
||||
html += "</ul></div>";
|
||||
|
||||
self.$tabsContainer = $(html);
|
||||
$("#history > h3").after(self.$tabsContainer);
|
||||
|
||||
self.$tabs = self.$tabsContainer.find(".history-tab");
|
||||
self.$tabs.on("click", tabClick);
|
||||
}
|
||||
|
||||
function markFirstOfTypes()
|
||||
{
|
||||
self.$history.find(".has-notes:first").addClass("first-of-notes");
|
||||
self.$history.find(".has-details:first").addClass("first-of-details");
|
||||
}
|
||||
|
||||
var tabClick = function()
|
||||
{
|
||||
var $this = $(this),
|
||||
tab = $this.attr("data-tab");
|
||||
|
||||
self.$tabs.removeClass("selected");
|
||||
$this.addClass("selected");
|
||||
|
||||
self.$history
|
||||
.removeClass("hide-details")
|
||||
.removeClass("hide-notes");
|
||||
|
||||
if ("notes" === tab)
|
||||
{
|
||||
self.$history.addClass("hide-details");
|
||||
}
|
||||
else if ("details" === tab)
|
||||
{
|
||||
self.$history.addClass("hide-notes");
|
||||
}
|
||||
};
|
||||
|
||||
return HistoryTabs;
|
||||
}());
|
||||
142
src/javascripts/modules/MenuCollapse.js
Normal file
@@ -0,0 +1,142 @@
|
||||
var PurpleMine = PurpleMine || {};
|
||||
|
||||
PurpleMine.MenuCollapse = (function()
|
||||
{
|
||||
"use strict";
|
||||
|
||||
var self;
|
||||
var translations = {
|
||||
en: {
|
||||
topMenuToggler : "Expand/collapse top menu",
|
||||
mainMenuToggler: "Expand/collapse main menu"
|
||||
},
|
||||
pl: {
|
||||
topMenuToggler : "Zwiń/rozwiń górne menu",
|
||||
mainMenuToggler: "Zwiń/rozwiń główne menu"
|
||||
}
|
||||
};
|
||||
|
||||
function MenuCollapse()
|
||||
{
|
||||
if (self)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
self = this;
|
||||
|
||||
this.lang = document.documentElement.lang;
|
||||
|
||||
if (typeof translations[this.lang] === "undefined")
|
||||
{
|
||||
this.lang = "en";
|
||||
}
|
||||
|
||||
this._ = translations[this.lang];
|
||||
|
||||
this.menus = {
|
||||
top: {
|
||||
$el: $("#top-menu")
|
||||
},
|
||||
main: {
|
||||
$el: $("#main-menu")
|
||||
}
|
||||
};
|
||||
|
||||
for (var menu in this.menus)
|
||||
{
|
||||
if (this.menus.hasOwnProperty(menu) &&
|
||||
this.menus[menu].$el.length > 0)
|
||||
{
|
||||
handleMenu(menu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function handleMenu(menu)
|
||||
{
|
||||
if ("none" === self.menus[menu].$el.css("maxHeight"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
self.menus[menu].collapsed = true;
|
||||
|
||||
if (window.localStorage)
|
||||
{
|
||||
self.menus[menu].collapsed =
|
||||
null === localStorage.getItem(getMenuStorageKey(menu));
|
||||
}
|
||||
|
||||
buildToggleButton(menu);
|
||||
|
||||
if (false === self.isCollapsed(menu))
|
||||
{
|
||||
self.expandMenu(menu);
|
||||
}
|
||||
}
|
||||
|
||||
function getMenuStorageKey(menu)
|
||||
{
|
||||
return "PurpleMine:" + menu + "MenuExpanded";
|
||||
}
|
||||
|
||||
function buildToggleButton(menu)
|
||||
{
|
||||
var togglerClass = menu + "-menu-toggler",
|
||||
togglerLabel = self._[menu + "MenuToggler"],
|
||||
togglerHtml;
|
||||
|
||||
togglerHtml = "<a href=\"javascript:;\" class=\"" + togglerClass +
|
||||
"\" title=\"" + togglerLabel + "\"></a>";
|
||||
self.menus[menu].$toggler = $(togglerHtml);
|
||||
|
||||
self.menus[menu].$el.prepend(self.menus[menu].$toggler);
|
||||
self.menus[menu].$toggler.on("click", { menu: menu }, self.toggleMenu);
|
||||
}
|
||||
|
||||
MenuCollapse.prototype.toggleMenu = function(event)
|
||||
{
|
||||
var menu = event.data.menu || "";
|
||||
|
||||
if (self.isCollapsed(menu))
|
||||
{
|
||||
self.expandMenu(menu);
|
||||
}
|
||||
else
|
||||
{
|
||||
self.collapseMenu(menu);
|
||||
}
|
||||
};
|
||||
|
||||
MenuCollapse.prototype.isCollapsed = function(menu)
|
||||
{
|
||||
return this.menus[menu].collapsed;
|
||||
};
|
||||
|
||||
MenuCollapse.prototype.expandMenu = function(menu)
|
||||
{
|
||||
this.menus[menu].$el.addClass("expanded");
|
||||
this.menus[menu].$toggler.addClass("expanded");
|
||||
this.menus[menu].collapsed = false;
|
||||
|
||||
if (window.localStorage)
|
||||
{
|
||||
localStorage.setItem(getMenuStorageKey(menu), "x");
|
||||
}
|
||||
};
|
||||
|
||||
MenuCollapse.prototype.collapseMenu = function(menu)
|
||||
{
|
||||
this.menus[menu].$el.removeClass("expanded");
|
||||
this.menus[menu].$toggler.removeClass("expanded");
|
||||
this.menus[menu].collapsed = true;
|
||||
|
||||
if (window.localStorage)
|
||||
{
|
||||
localStorage.removeItem(getMenuStorageKey(menu));
|
||||
}
|
||||
};
|
||||
|
||||
return MenuCollapse;
|
||||
}());
|
||||
157
src/javascripts/modules/RevisionGraph.js
Normal file
@@ -0,0 +1,157 @@
|
||||
var PurpleMine = PurpleMine || {};
|
||||
/* global Raphael: false, revisionGraph: true */
|
||||
/* jshint camelcase: false */
|
||||
/* jshint maxstatements: false */
|
||||
/* jshint maxlen: 160 */
|
||||
|
||||
PurpleMine.RevisionGraph = function(holder, commits_hash, graph_space)
|
||||
{
|
||||
"use strict";
|
||||
|
||||
var XSTEP = 20,
|
||||
CIRCLE_INROW_OFFSET = 17;
|
||||
var commits_by_scmid = commits_hash,
|
||||
commits = $.map(commits_by_scmid, function(val){return val;});
|
||||
var max_rdmid = commits.length - 1;
|
||||
var commit_table_rows = $("table.changesets tr.changeset");
|
||||
|
||||
// create graph
|
||||
if (revisionGraph !== null)
|
||||
{
|
||||
revisionGraph.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
revisionGraph = new Raphael(holder);
|
||||
}
|
||||
|
||||
var top = revisionGraph.set();
|
||||
|
||||
// init dimensions
|
||||
var graph_x_offset = commit_table_rows.first().find("td").first().position().left - $(holder).position().left,
|
||||
graph_y_offset = $(holder).position().top,
|
||||
graph_right_side = graph_x_offset + (graph_space + 1) * XSTEP,
|
||||
graph_bottom = commit_table_rows.last().position().top + commit_table_rows.last().height() - graph_y_offset;
|
||||
|
||||
revisionGraph.setSize(graph_right_side, graph_bottom);
|
||||
|
||||
// init colors
|
||||
var colors = [
|
||||
"#e74c3c",
|
||||
"#584492",
|
||||
"#019851",
|
||||
"#ed820c",
|
||||
"#4183c4"
|
||||
];
|
||||
|
||||
// get more colors if needed
|
||||
if (graph_space >= colors.length)
|
||||
{
|
||||
Raphael.getColor.reset();
|
||||
|
||||
for (var k = 0; k <= graph_space; k++)
|
||||
{
|
||||
colors.push(Raphael.getColor(0.9));
|
||||
}
|
||||
}
|
||||
|
||||
var parent_commit;
|
||||
var x, y, parent_x, parent_y;
|
||||
var path, title;
|
||||
var revision_dot_overlay;
|
||||
|
||||
$.each(commits, function(index, commit)
|
||||
{
|
||||
if (!commit.hasOwnProperty("space"))
|
||||
{
|
||||
commit.space = 0;
|
||||
}
|
||||
|
||||
y = commit_table_rows.eq(max_rdmid - commit.rdmid).position().top - graph_y_offset + CIRCLE_INROW_OFFSET;
|
||||
x = graph_x_offset + XSTEP / 2 + XSTEP * commit.space;
|
||||
|
||||
revisionGraph.circle(x, y, 3.5)
|
||||
.attr({
|
||||
fill: colors[commit.space],
|
||||
stroke: "none"
|
||||
}).toFront();
|
||||
|
||||
// paths to parents
|
||||
$.each(commit.parent_scmids, function(index, parent_scmid)
|
||||
{
|
||||
parent_commit = commits_by_scmid[parent_scmid];
|
||||
|
||||
if (parent_commit)
|
||||
{
|
||||
if (!parent_commit.hasOwnProperty("space"))
|
||||
{
|
||||
parent_commit.space = 0;
|
||||
}
|
||||
|
||||
parent_y = commit_table_rows.eq(max_rdmid - parent_commit.rdmid).position().top - graph_y_offset + CIRCLE_INROW_OFFSET;
|
||||
parent_x = graph_x_offset + XSTEP / 2 + XSTEP * parent_commit.space;
|
||||
|
||||
if (parent_commit.space === commit.space)
|
||||
{
|
||||
// vertical path
|
||||
path = revisionGraph.path([
|
||||
"M", x, y,
|
||||
"V", parent_y]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// path to a commit in a different branch (Bezier curve)
|
||||
path = revisionGraph.path([
|
||||
"M", x, y,
|
||||
"C", x, y, x, y + (parent_y - y) / 2, x + (parent_x - x) / 2, y + (parent_y - y) / 2,
|
||||
"C", x + (parent_x - x) / 2, y + (parent_y - y) / 2, parent_x, parent_y-(parent_y-y)/2, parent_x, parent_y
|
||||
]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// vertical path ending at the bottom of the revisionGraph
|
||||
path = revisionGraph.path([
|
||||
"M", x, y,
|
||||
"V", graph_bottom
|
||||
]);
|
||||
}
|
||||
|
||||
path.attr({stroke: colors[commit.space], "stroke-width": 1.5}).toBack();
|
||||
});
|
||||
|
||||
revision_dot_overlay = revisionGraph.circle(x, y, 10);
|
||||
revision_dot_overlay
|
||||
.attr({
|
||||
fill : "#000",
|
||||
opacity: 0,
|
||||
cursor : "pointer",
|
||||
href : commit.href
|
||||
});
|
||||
|
||||
if (commit.refs !== null && commit.refs.length > 0)
|
||||
{
|
||||
title = document.createElementNS(revisionGraph.canvas.namespaceURI, "title");
|
||||
title.appendChild(document.createTextNode(commit.refs));
|
||||
revision_dot_overlay.node.appendChild(title);
|
||||
}
|
||||
|
||||
top.push(revision_dot_overlay);
|
||||
});
|
||||
|
||||
top.toFront();
|
||||
};
|
||||
|
||||
$(function()
|
||||
{
|
||||
"use strict";
|
||||
|
||||
if (window.drawRevisionGraph)
|
||||
{
|
||||
// override Redmine's function
|
||||
window.drawRevisionGraph = PurpleMine.RevisionGraph;
|
||||
// make graph redraw itself
|
||||
$(window).resize();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -4,10 +4,23 @@ PurpleMine.SidebarToggler = (function()
|
||||
{
|
||||
"use strict";
|
||||
|
||||
var self; // Make it work for browsers without Function.prototype.bind
|
||||
var self;
|
||||
var translations = {
|
||||
en: {
|
||||
toggler: "Toggle sidebar"
|
||||
},
|
||||
pl: {
|
||||
toggler: "Pokaż/ukryj panel boczny"
|
||||
}
|
||||
};
|
||||
|
||||
function SidebarToggler()
|
||||
{
|
||||
if (self)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
self = this;
|
||||
|
||||
this.sidebarVisible = true;
|
||||
@@ -15,27 +28,46 @@ PurpleMine.SidebarToggler = (function()
|
||||
this.$toggler = null;
|
||||
this.$main = $("#main");
|
||||
this.$sidebar = $("#sidebar");
|
||||
this.lang = document.documentElement.lang;
|
||||
|
||||
if (typeof translations[this.lang] === "undefined")
|
||||
{
|
||||
this.lang = "en";
|
||||
}
|
||||
|
||||
this._ = translations[this.lang];
|
||||
|
||||
// Fix issue with context menu position
|
||||
if ("relative" === this.$main.css("position"))
|
||||
{
|
||||
$("#context-menu").appendTo("#wrapper3");
|
||||
}
|
||||
|
||||
handleSidebar();
|
||||
}
|
||||
|
||||
function handleSidebar()
|
||||
{
|
||||
if (window.localStorage)
|
||||
{
|
||||
this.sidebarVisible =
|
||||
self.sidebarVisible =
|
||||
null === localStorage.getItem("PurpleMine:sidebarHidden");
|
||||
}
|
||||
|
||||
if (this.$sidebar.length > 0 &&
|
||||
false === this.$main.hasClass("nosidebar"))
|
||||
if (self.$sidebar.length > 0 &&
|
||||
false === self.$main.hasClass("nosidebar"))
|
||||
{
|
||||
this.buildButton();
|
||||
this.bindKeyHandler();
|
||||
}
|
||||
buildButton();
|
||||
bindKeyHandler();
|
||||
|
||||
if (false === this.sidebarVisible)
|
||||
{
|
||||
this.hideSidebar(true);
|
||||
if (false === self.sidebarVisible)
|
||||
{
|
||||
self.hideSidebar(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SidebarToggler.prototype.bindKeyHandler = function()
|
||||
function bindKeyHandler()
|
||||
{
|
||||
var body = document.getElementsByTagName("body")[0];
|
||||
|
||||
@@ -48,32 +80,20 @@ PurpleMine.SidebarToggler = (function()
|
||||
self.toggleSidebar();
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
SidebarToggler.prototype.buildButton = function()
|
||||
function buildButton()
|
||||
{
|
||||
var togglerLabel = document.documentElement.lang === "pl" ?
|
||||
"Pokaż/ukryj panel boczny" :
|
||||
"Toggle sidebar",
|
||||
togglerClass = "sidebar-toggler",
|
||||
var togglerClass = "sidebar-toggler",
|
||||
togglerHtml;
|
||||
|
||||
if ("left" === this.$sidebar.css("float"))
|
||||
{
|
||||
togglerClass += " sidebar-toggler--left";
|
||||
}
|
||||
else
|
||||
{
|
||||
togglerClass += " sidebar-toggler--right";
|
||||
}
|
||||
|
||||
togglerHtml = "<a href=\"javascript:;\" class=\"" + togglerClass +
|
||||
"\" title=\"" + togglerLabel + "\"></a>";
|
||||
this.$toggler = $(togglerHtml);
|
||||
"\" title=\"" + self._.toggler + "\"></a>";
|
||||
self.$toggler = $(togglerHtml);
|
||||
|
||||
this.$main.append(this.$toggler);
|
||||
this.$toggler.on("click", this.toggleSidebar);
|
||||
};
|
||||
self.$main.append(self.$toggler);
|
||||
self.$toggler.on("click", self.toggleSidebar);
|
||||
}
|
||||
|
||||
SidebarToggler.prototype.toggleSidebar = function()
|
||||
{
|
||||
@@ -114,9 +134,12 @@ PurpleMine.SidebarToggler = (function()
|
||||
SidebarToggler.prototype.showSidebar = function()
|
||||
{
|
||||
clearTimeout(this.sidebarHiding);
|
||||
this.$sidebar
|
||||
.removeClass("sidebar-hidden", 0)
|
||||
.removeClass("sidebar-hiding");
|
||||
|
||||
self.$sidebar.removeClass("sidebar-hidden");
|
||||
setTimeout(function sidebarTimeout()
|
||||
{
|
||||
self.$sidebar.removeClass("sidebar-hiding");
|
||||
}, 50);
|
||||
|
||||
this.$toggler.removeClass("sidebar-hidden");
|
||||
this.sidebarVisible = true;
|
||||
|
||||
@@ -4,4 +4,6 @@ $(function()
|
||||
"use strict";
|
||||
|
||||
new PurpleMine.SidebarToggler();
|
||||
new PurpleMine.HistoryTabs();
|
||||
new PurpleMine.MenuCollapse();
|
||||
});
|
||||
|
||||
@@ -6,8 +6,11 @@
|
||||
@import "mixins/clearfix";
|
||||
@import "mixins/forms";
|
||||
@import "mixins/gradients";
|
||||
@import "mixins/image";
|
||||
@import "mixins/opacity";
|
||||
@import "mixins/text-overflow";
|
||||
@import "mixins/vendor-prefixes";
|
||||
|
||||
@import "mixins/issues";
|
||||
@import "mixins/link-variant";
|
||||
@import "mixins/shadows";
|
||||
|
||||
@@ -7,15 +7,21 @@
|
||||
//
|
||||
|
||||
$fixed-layout: false !default;
|
||||
$flexbox-layout: true !default;
|
||||
$sidebar-position: left !default;
|
||||
$color-priorities: true !default;
|
||||
$color-trackers: true !default;
|
||||
$colored-issue: true !default;
|
||||
$color-status: true !default;
|
||||
$use-gravatars: true !default;
|
||||
$use-font-awesome: true !default;
|
||||
$use-logo: false !default;
|
||||
$use-retina-logo: false !default;
|
||||
$issue-subject-large: true !default;
|
||||
$bubble-journal-wiki-note: true !default;
|
||||
$enable-sidebar-toggler: true !default;
|
||||
$wiki-page-more-vertical-space: true !default;
|
||||
$top-menu-collapse: false !default;
|
||||
$main-menu-collapse: false !default;
|
||||
|
||||
|
||||
//== Colors
|
||||
@@ -36,7 +42,7 @@ $brand-accent: #deddef !default;
|
||||
|
||||
$brand-success: #019851 !default;
|
||||
$brand-info: #409ae3 !default;
|
||||
$brand-warning: #f39412 !default;
|
||||
$brand-warning: #ed820c !default;
|
||||
$brand-danger: #e74c3c !default;
|
||||
|
||||
$state-success: #b5fbb7 !default;
|
||||
@@ -67,15 +73,18 @@ $font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, freesans, sa
|
||||
|
||||
$font-family-monospace: Consolas, "Liberation Mono", Menlo, "Courier New", Courier, monospace !default;
|
||||
$font-family-base: $font-family-sans-serif !default;
|
||||
$font-weight-normal: normal !default;
|
||||
$font-weight-bold: bold !default;
|
||||
|
||||
$font-size-base: 14px !default;
|
||||
$font-size-large: 1.285em !default;
|
||||
$font-size-large-px: 18px !default;
|
||||
$font-size-small: .86em !default;
|
||||
$font-size-small-px: 12px !default;
|
||||
$font-size-small-unitless: .86 !default;
|
||||
$font-size-small: $font-size-small-unitless * 1em !default;
|
||||
$font-size-small-px: floor($font-size-small-unitless * $font-size-base) !default;
|
||||
|
||||
$font-size-h1: 2.285em !default;
|
||||
$font-size-h2: 1.857em !default;
|
||||
$font-size-h1: 2.25em !default;
|
||||
$font-size-h2: 1.75em !default;
|
||||
$font-size-h3: 1.5em !default;
|
||||
$font-size-h4: 1.286em !default;
|
||||
$font-size-h5: 1em !default;
|
||||
@@ -86,7 +95,9 @@ $line-height-large: 1.33 !default;
|
||||
$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px
|
||||
|
||||
$headings-font-weight: 700 !default;
|
||||
$headings-line-height: 1.2 !default;
|
||||
$headings-line-height: 1.4 !default;
|
||||
$headings-anchor-color: $gray-lighter !default;
|
||||
$headings-anchor-color-active: $gray-light !default;
|
||||
|
||||
|
||||
//== Wiki
|
||||
@@ -96,6 +107,10 @@ $wiki-text: #333 !default;
|
||||
$wiki-font-size: 16px !default;
|
||||
$wiki-line-height: 1.6 !default;
|
||||
|
||||
$toc-active-link: darken($link-color, 10%) !default;
|
||||
$toc-active-link-hover: darken($toc-active-link, 10%) !default;
|
||||
$toc-active-border: $link-color !default;
|
||||
|
||||
|
||||
//== Components
|
||||
//
|
||||
@@ -116,7 +131,6 @@ $border-radius-small: 2px !default;
|
||||
|
||||
$hr-border: $gray-light !default;
|
||||
$abbr-border-color: $gray-light !default;
|
||||
$blockquote-border-color-fallback: $gray-lighter !default;
|
||||
$blockquote-border-color: rgba(#000, .15) !default;
|
||||
|
||||
$component-color: $gray-dark !default;
|
||||
@@ -129,6 +143,8 @@ $component-active-border: $brand-primary !default;
|
||||
|
||||
$font-size-list: .92em !default;
|
||||
|
||||
$collapsible-animation-time: .3s !default;
|
||||
|
||||
|
||||
//== Tables
|
||||
//
|
||||
@@ -136,9 +152,17 @@ $font-size-list: .92em !default;
|
||||
$table-cell-padding: 8px !default;
|
||||
$table-condensed-cell-padding: 5px !default;
|
||||
|
||||
$table-list-header-border: 0 0 2px !default;
|
||||
$table-list-item-border: 0 0 1px !default;
|
||||
$table-list-color-odd-rows: true !default;
|
||||
$table-list-color-even-rows: false !default;
|
||||
$table-list-highlight-rows: false !default;
|
||||
|
||||
$table-bg: transparent !default;
|
||||
$table-bg-accent: darken($body-bg, 3%) !default;
|
||||
$table-bg-hover: #f1f1f1 !default;
|
||||
$table-accent-factor: .03 !default;
|
||||
$table-hover-factor: .03 !default;
|
||||
$table-bg-accent: rgba(#000, $table-accent-factor) !default;
|
||||
$table-bg-hover: rgba(#000, $table-hover-factor) !default;
|
||||
$table-bg-active: $table-bg-hover !default;
|
||||
|
||||
$table-border-color: darken($body-bg, 13.5%) !default;
|
||||
@@ -147,9 +171,9 @@ $table-border-color: darken($body-bg, 13.5%) !default;
|
||||
//== Trackers priorities
|
||||
//
|
||||
|
||||
$priority-lowest-bg: #defacb !default;
|
||||
$priority-lowest-text: #565 !default;
|
||||
$priority-lowest-link: #265 !default;
|
||||
$priority-lowest-bg: #dff4d0 !default;
|
||||
$priority-lowest-text: #676 !default;
|
||||
$priority-lowest-link: #096 !default;
|
||||
|
||||
$priority-default-bg: #fff !default;
|
||||
$priority-default-text: $text-color !default;
|
||||
@@ -157,15 +181,15 @@ $priority-default-link: $link-color !default;
|
||||
|
||||
$priority-high3-bg: #d5eaff !default;
|
||||
$priority-high3-text: #556 !default;
|
||||
$priority-high3-link: #336 !default;
|
||||
$priority-high3-link: #05a !default;
|
||||
|
||||
$priority-high2-bg: #ffe1d7 !default;
|
||||
$priority-high2-text: #930 !default;
|
||||
$priority-high2-link: #624 !default;
|
||||
$priority-high2-text: #855 !default;
|
||||
$priority-high2-link: #b04 !default;
|
||||
|
||||
$priority-highest-bg: #ffa5a5 !default;
|
||||
$priority-highest-text: #900 !default;
|
||||
$priority-highest-link: #403 !default;
|
||||
$priority-highest-text: #944 !default;
|
||||
$priority-highest-link: #a03 !default;
|
||||
|
||||
|
||||
//== Trackers links
|
||||
@@ -174,43 +198,83 @@ $priority-highest-link: #403 !default;
|
||||
$tracker-inline-padding: 1px 5px !default;
|
||||
$tracker-list-padding: 0 6px !default;
|
||||
|
||||
$tracker-1-bg: $brand-danger !default;
|
||||
$tracker-1-text: $brand-text !default;
|
||||
$tracker-default-bg: #668 !default;
|
||||
$tracker-default-text: $brand-text !default;
|
||||
|
||||
$tracker-2-bg: $brand-primary !default;
|
||||
$tracker-2-text: $brand-text !default;
|
||||
|
||||
$tracker-3-bg: $brand-success !default;
|
||||
$tracker-3-text: $brand-text !default;
|
||||
|
||||
$tracker-4-bg: $brand-info !default;
|
||||
$tracker-4-text: $brand-text !default;
|
||||
|
||||
$tracker-5-bg: $brand-warning !default;
|
||||
$tracker-5-text: $brand-text !default;
|
||||
|
||||
$tracker-6-bg: mix($brand-success, $brand-info, 50%) !default;
|
||||
$tracker-6-text: $brand-text !default;
|
||||
|
||||
$tracker-7-bg: mix($brand-primary, $brand-warning, 50%) !default;
|
||||
$tracker-7-text: $brand-text !default;
|
||||
$tracker-default-colors-map: (
|
||||
1: (
|
||||
background: $brand-danger,
|
||||
color: $brand-text
|
||||
),
|
||||
2: (
|
||||
background: $brand-info,
|
||||
color: $brand-text
|
||||
),
|
||||
3: (
|
||||
background: $brand-success,
|
||||
color: $brand-text
|
||||
),
|
||||
4: (
|
||||
background: $brand-primary,
|
||||
color: $brand-text
|
||||
),
|
||||
5: (
|
||||
background: $brand-warning,
|
||||
color: $brand-text
|
||||
),
|
||||
6: (
|
||||
background: mix($brand-success, $brand-info, 50%),
|
||||
color: $brand-text
|
||||
),
|
||||
7: (
|
||||
background: mix($brand-primary, $brand-warning, 50%),
|
||||
color: $brand-text
|
||||
)
|
||||
) !default;
|
||||
$tracker-custom-colors-map: () !default;
|
||||
$tracker-colors-map: map-merge($tracker-default-colors-map, $tracker-custom-colors-map);
|
||||
|
||||
|
||||
//== Diffs
|
||||
//
|
||||
|
||||
$diff-out-color: #430;
|
||||
$diff-out-bg: #ffeaaa;
|
||||
$diff-out-bg-light: #ffefbf;
|
||||
$diff-out-color: #511 !default;
|
||||
$diff-out-bg: #fbb !default;
|
||||
$diff-out-bg-light: rgba($diff-out-bg, .3) !default;
|
||||
|
||||
$diff-in-color: #350 !default;
|
||||
$diff-in-bg: #afa !default;
|
||||
$diff-in-bg-light: rgba($diff-in-bg, .3) !default;
|
||||
|
||||
|
||||
//== Journal changes
|
||||
//
|
||||
$journal-old-value-color: #430 !default;
|
||||
$journal-old-value-bg: rgba(#ffeaaa, .3) !default;
|
||||
$journal-new-value-color: #350 !default;
|
||||
$journal-new-value-bg: rgba(#bffbbf, .3) !default;
|
||||
|
||||
|
||||
//== Changesets
|
||||
//
|
||||
|
||||
$changeset-add-color: $brand-success !default;
|
||||
$changeset-modified-color: $brand-warning !default;
|
||||
$changeset-copied-color: $brand-info !default;
|
||||
$changeset-renamed-color: $brand-primary !default;
|
||||
$changeset-deleted-color: $brand-danger !default;
|
||||
|
||||
$diff-in-color: #350;
|
||||
$diff-in-bg: #bffbbf;
|
||||
$diff-in-bg-light: #d8fcd8;
|
||||
|
||||
//== Buttons
|
||||
//
|
||||
|
||||
$btn-font-weight: normal !default;
|
||||
$btn-padding-vertical: 3px !default;
|
||||
$btn-padding-horizontal: 12px !default;
|
||||
|
||||
$btn-link-color: $link-color !default;
|
||||
$btn-link-bg: $body-bg !default;
|
||||
$btn-link-border: $body-bg !default;
|
||||
|
||||
$btn-default-color: $gray-darkest !default;
|
||||
$btn-default-bg: $gray-lightest !default;
|
||||
@@ -218,11 +282,11 @@ $btn-default-border: $gray-lighter !default;
|
||||
|
||||
$btn-primary-color: #fff !default;
|
||||
$btn-primary-bg: $brand-info !default;
|
||||
$btn-primary-border: darken($btn-primary-bg, 5%) !default;
|
||||
$btn-primary-border: $btn-primary-bg !default;
|
||||
|
||||
$btn-success-color: #fff !default;
|
||||
$btn-success-bg: $brand-success !default;
|
||||
$btn-success-border: darken($btn-success-bg, 5%) !default;
|
||||
$btn-success-border: $btn-success-bg !default;
|
||||
|
||||
|
||||
//== Highlights
|
||||
@@ -249,14 +313,14 @@ $input-border-radius-large: $border-radius-large !default;
|
||||
$input-border-focus: #51a7e8 !default;
|
||||
$input-color-placeholder: #999 !default;
|
||||
|
||||
$input-padding-vertical: 3px;
|
||||
$input-padding-horizontal: 8px;
|
||||
$input-padding-vertical: $btn-padding-vertical !default;
|
||||
$input-padding-horizontal: 8px !default;
|
||||
|
||||
$input-height-base: ($line-height-computed + ($input-padding-vertical * 2) + 2) !default;
|
||||
|
||||
$label-width: 160px;
|
||||
$label-wide-width: 280px;
|
||||
$label-space: 10px;
|
||||
$label-width: 160px !default;
|
||||
$label-wide-width: 280px !default;
|
||||
$label-space: 10px !default;
|
||||
|
||||
$legend-color: $gray-dark !default;
|
||||
$legend-border-color: #e5e5e5 !default;
|
||||
@@ -274,9 +338,17 @@ $header-bg: $brand-primary !default;
|
||||
$header-text: $brand-text !default;
|
||||
$header-link: $brand-text !default;
|
||||
$header-root: $brand-accent !default;
|
||||
$header-padding-vertical: 10px !default;
|
||||
$header-padding-horizontal: $padding-side !default;
|
||||
$header-title-size: $font-size-h3 !default;
|
||||
$header-title-line-height: $line-height-computed * 1.5 !default;
|
||||
|
||||
$logo-image-width: 60px !default;
|
||||
$logo-image-height: 40px !default;
|
||||
$logo-position-horizontal: $header-padding-vertical !default;
|
||||
$logo-position-vertical: center !default;
|
||||
$logo-space: floor($header-padding-vertical / 2) !default;
|
||||
|
||||
$main-menu-bg: $gray-lightest !default;
|
||||
$main-menu-link: $gray-darker !default;
|
||||
$main-menu-link-active: #000 !default;
|
||||
@@ -291,6 +363,9 @@ $main-menu-padding-horizontal: 5px !default;
|
||||
//== Pagination
|
||||
//
|
||||
|
||||
$pagination-padding-vertical: $btn-padding-vertical !default;
|
||||
$pagination-padding-horizontal: 10px !default;
|
||||
|
||||
$pagination-color: $link-color !default;
|
||||
$pagination-bg: #fff !default;
|
||||
$pagination-border: #ddd !default;
|
||||
@@ -323,6 +398,7 @@ $tab-active-border: $tab-border !default;
|
||||
$sidebar-width: 270px !default;
|
||||
$sidebar-padding-vertical: $padding-base-vertical !default;
|
||||
$sidebar-padding-horizontal: $padding-side !default;
|
||||
$sidebar-width-computed: $sidebar-width - ($sidebar-padding-horizontal * 2) - 1px !default;
|
||||
$sidebar-link-hover-bg: $gray-lightest !default;
|
||||
$sidebar-link-active-bg: $body-bg !default;
|
||||
$sidebar-link-active-border: $gray-lighter !default;
|
||||
@@ -375,6 +451,7 @@ $panel-shadow: 0 1px 2px rgba(#000, .1),
|
||||
//
|
||||
|
||||
$tooltip-bg: #fff !default;
|
||||
$tooltip-border-width: 0 !default;
|
||||
$tooltip-border: #ccc !default;
|
||||
$tooltip-text: $gray-dark !default;
|
||||
$tooltip-link: $link-color !default;
|
||||
@@ -391,6 +468,17 @@ $issue-padding: 15px !default;
|
||||
$issue-gravatar-size: 50px !default;
|
||||
$issue-heading-size: 1.5 !default;
|
||||
|
||||
$issue-attribute-padding-v: 3px !default;
|
||||
$issue-attribute-padding-h: 5px !default;
|
||||
|
||||
|
||||
//== Speech "bubbles"
|
||||
//
|
||||
$bubble-gravatar-size: 24px !default;
|
||||
$bubble-gravatar-space: 12px !default;
|
||||
$bubble-padding-vertical: 8px !default;
|
||||
$bubble-padding-horizontal: 15px !default;
|
||||
|
||||
|
||||
//== Media queries breakpoints
|
||||
//
|
||||
@@ -410,10 +498,13 @@ $screen-xs-max: ($screen-sm-min - 1) !default;
|
||||
$screen-sm-max: ($screen-md-min - 1) !default;
|
||||
$screen-md-max: ($screen-lg-min - 1) !default;
|
||||
|
||||
$top-menu-collapse-breakpoint: $screen-lg-min !default;
|
||||
$main-menu-collapse-breakpoint: $screen-lg-min !default;
|
||||
|
||||
|
||||
//== Content widths
|
||||
//
|
||||
|
||||
$width-sm: $screen-sm - ($padding-side * 2);
|
||||
$width-md: $screen-md - ($padding-side * 2);
|
||||
$width-lg: $screen-lg - ($padding-side * 2);
|
||||
$width-sm: $screen-sm - ($padding-side * 2) !default;
|
||||
$width-md: $screen-md - ($padding-side * 2) !default;
|
||||
$width-lg: $screen-lg - ($padding-side * 2) !default;
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
@import "components/forms";
|
||||
@import "components/tabs";
|
||||
@import "components/pagination";
|
||||
@import "components/top";
|
||||
@import "components/content";
|
||||
@import "components/gravatar";
|
||||
@import "components/list";
|
||||
@@ -27,8 +26,10 @@
|
||||
@import "components/elements";
|
||||
@import "components/jquery-ui";
|
||||
@import "components/icons";
|
||||
@import "components/top";
|
||||
@import "components/jstoolbar";
|
||||
@import "components/flash";
|
||||
@import "components/image-base64";
|
||||
@import "components/print";
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
padding-left: 8 + 16px;
|
||||
padding-left: 5px + 20px;
|
||||
background-position: 0 center;
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@
|
||||
list-style-type: none;
|
||||
|
||||
> a {
|
||||
padding-left: $sidebar-padding-horizontal + 8 + 16px;
|
||||
padding-left: $sidebar-padding-horizontal + 5px + 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: $sidebar-padding-horizontal center;
|
||||
}
|
||||
@@ -136,6 +136,6 @@ fieldset#notified_events {
|
||||
}
|
||||
|
||||
td.scm_name {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ body {
|
||||
color: $text-color;
|
||||
font-family: $font-family-base;
|
||||
font-size: $font-size-base;
|
||||
font-weight: $font-weight-normal;
|
||||
line-height: $line-height-base;
|
||||
}
|
||||
|
||||
@@ -80,6 +81,13 @@ small {
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
|
||||
table {
|
||||
th,
|
||||
td {
|
||||
padding: $table-condensed-cell-padding $table-cell-padding;
|
||||
}
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin-top: 0;
|
||||
@@ -98,7 +106,7 @@ dl {
|
||||
|
||||
dt {
|
||||
margin-top: $line-height-computed;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
dd {
|
||||
@@ -129,8 +137,7 @@ abbr[title] {
|
||||
blockquote {
|
||||
margin: 0 0 $line-height-computed;
|
||||
padding: floor($line-height-computed / 4) $padding-large-horizontal;
|
||||
border-left: 4px solid $blockquote-border-color-fallback;
|
||||
border-left-color: $blockquote-border-color;
|
||||
border-left: 4px solid $blockquote-border-color;
|
||||
|
||||
>:first-child {
|
||||
margin-top: 0;
|
||||
|
||||
@@ -8,11 +8,11 @@ button {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
border: 1px solid;
|
||||
cursor: pointer;
|
||||
font-weight: $btn-font-weight;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@include button-size($input-padding-vertical, $input-padding-horizontal, $font-size-base, $line-height-base, $border-radius-base);
|
||||
cursor: pointer;
|
||||
@include button-size($btn-padding-vertical, $btn-padding-horizontal, $font-size-base, $line-height-base, $border-radius-base);
|
||||
@include user-select(none);
|
||||
@include transition(background-color ease-in-out .07s, border-color ease-in-out .07s, box-shadow ease-in-out .07s);
|
||||
@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
|
||||
@@ -37,11 +37,10 @@ button {
|
||||
|
||||
|
||||
/**
|
||||
* Issue form buttons layout
|
||||
* Form buttons layout
|
||||
*/
|
||||
|
||||
#issue-form,
|
||||
#history .journal form {
|
||||
form {
|
||||
input[type="submit"] {
|
||||
margin-right: 5px;
|
||||
|
||||
@@ -60,17 +59,6 @@ button {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Project's repository form buttons layout
|
||||
*/
|
||||
|
||||
#repository-form {
|
||||
input[type="submit"] {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Repository's 'View differences' button
|
||||
*/
|
||||
@@ -79,55 +67,12 @@ form[action*="repository/diff"] {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* New _something_ form buttons layout
|
||||
*/
|
||||
|
||||
#add_attachment_form,
|
||||
#new_time_entry,
|
||||
#new_project,
|
||||
#new_document,
|
||||
#new_group,
|
||||
#new_user {
|
||||
input[type="submit"] {
|
||||
margin-right: 5px;
|
||||
|
||||
+ input {
|
||||
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Wiki form buttons layout
|
||||
*/
|
||||
|
||||
#wiki_form {
|
||||
input[type="submit"] {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Forum and news message form buttons layout
|
||||
*/
|
||||
|
||||
#message-form,
|
||||
#news-form {
|
||||
input[type="submit"] {
|
||||
margin-right: 5px;
|
||||
|
||||
+ a {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
+ a + a {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
#message_sticky,
|
||||
#message_locked {
|
||||
position: relative;
|
||||
@@ -142,12 +87,19 @@ form[action*="repository/diff"] {
|
||||
*/
|
||||
|
||||
.query-columns {
|
||||
select {
|
||||
// scss-lint:disable ImportantRule
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
vertical-align: middle;
|
||||
|
||||
input[type="button"] {
|
||||
width: 32px;
|
||||
margin-bottom: 4px;
|
||||
padding-right: 1px;
|
||||
padding-left: 1px;
|
||||
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
|
||||
}
|
||||
}
|
||||
@@ -165,7 +117,7 @@ a[data-expands],
|
||||
padding: 2px 8px;
|
||||
border: 1px solid;
|
||||
border-radius: $border-radius-base;
|
||||
background-image: url("../images/bullet_toggle_plus.png");
|
||||
@extend %image-toggle-plus;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 2px 2px;
|
||||
cursor: pointer;
|
||||
|
||||
@@ -49,7 +49,7 @@ table.cal {
|
||||
background: $highlight-bg;
|
||||
|
||||
p.day-num {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
}
|
||||
|
||||
.debug {
|
||||
// scss-lint:disable ImportantRule
|
||||
background: #00f !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
@@ -52,7 +53,7 @@
|
||||
|
||||
.class {
|
||||
color: #795da3;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.class-variable {
|
||||
@@ -86,7 +87,7 @@
|
||||
|
||||
.definition {
|
||||
color: #099;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.delimiter {
|
||||
@@ -95,7 +96,7 @@
|
||||
|
||||
.directive {
|
||||
color: #088;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.doc {
|
||||
@@ -104,7 +105,7 @@
|
||||
|
||||
.doc-string {
|
||||
color: #d42;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.doctype {
|
||||
@@ -113,7 +114,7 @@
|
||||
|
||||
.entity {
|
||||
color: #800;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.error {
|
||||
@@ -127,7 +128,7 @@
|
||||
|
||||
.exception {
|
||||
color: #c00;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.float {
|
||||
@@ -136,7 +137,7 @@
|
||||
|
||||
.function {
|
||||
color: #06b;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.global-variable {
|
||||
@@ -153,7 +154,7 @@
|
||||
|
||||
.include {
|
||||
color: #b44;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.inline {
|
||||
@@ -163,7 +164,7 @@
|
||||
|
||||
.inline-delimiter {
|
||||
color: #666;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.instance-variable {
|
||||
@@ -188,12 +189,12 @@
|
||||
|
||||
.keyword {
|
||||
color: #b3113e;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.label {
|
||||
color: #970;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.local-variable {
|
||||
@@ -202,7 +203,7 @@
|
||||
|
||||
.namespace {
|
||||
color: #707;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.octal {
|
||||
@@ -219,7 +220,7 @@
|
||||
|
||||
.predefined-type {
|
||||
color: #0a5;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.preprocessor {
|
||||
@@ -228,7 +229,7 @@
|
||||
|
||||
.pseudo-class {
|
||||
color: #00c;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.regexp {
|
||||
@@ -249,7 +250,7 @@
|
||||
|
||||
.reserved {
|
||||
color: #080;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.shell {
|
||||
@@ -288,7 +289,7 @@
|
||||
|
||||
.type {
|
||||
color: #339;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.value {
|
||||
@@ -343,14 +344,14 @@
|
||||
.insert {
|
||||
background: transparent;
|
||||
color: #0c0;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
.delete .delete {
|
||||
background: transparent;
|
||||
color: #c00;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.change .change {
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
#main {
|
||||
@extend %clearfix;
|
||||
@if $flexbox-layout {
|
||||
// scss-lint:disable VendorPrefix
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
} @else {
|
||||
@extend %clearfix;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +16,17 @@
|
||||
|
||||
#content {
|
||||
padding: $padding-side;
|
||||
overflow: hidden;
|
||||
|
||||
@if $flexbox-layout {
|
||||
// scss-lint:disable VendorPrefix
|
||||
$side-space: $sidebar-width + $padding-side * 2;
|
||||
width: calc(100% - #{$side-space});
|
||||
-webkit-flex: 1 1 auto;
|
||||
-ms-flex: 1 1 auto;
|
||||
flex: 1 1 auto;
|
||||
} @else {
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,38 +35,56 @@
|
||||
// --------------------------------------------------
|
||||
|
||||
#sidebar {
|
||||
width: $sidebar-width - ($sidebar-padding-horizontal * 2) - 1px;
|
||||
// scss-lint:disable VendorPrefix
|
||||
padding: $padding-side $sidebar-padding-horizontal;
|
||||
float: $sidebar-position;
|
||||
|
||||
@media screen and (min-width: 1px) {
|
||||
// scss-lint:disable VendorPrefixes
|
||||
$border: $sidebar-link-active-border;
|
||||
$body: $body-bg;
|
||||
|
||||
padding-bottom: $padding-side * 3;
|
||||
background-image: -webkit-linear-gradient($body 1%, $border 10%, $border 85%, $body);
|
||||
background-image: -o-linear-gradient($body 1%, $border 10%, $border 85%, $body);
|
||||
background-image: linear-gradient($body 1%, $border 10%, $border 85%, $body);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 1px 100%;
|
||||
@if $flexbox-layout {
|
||||
-webkit-flex: 0 0 $sidebar-width-computed;
|
||||
-ms-flex: 0 0 $sidebar-width-computed;
|
||||
flex: 0 0 $sidebar-width-computed;
|
||||
|
||||
@if $sidebar-position == "left" {
|
||||
padding-right: $sidebar-padding-horizontal + 1px;
|
||||
background-position: right 0;
|
||||
-webkit-order: -1;
|
||||
-ms-flex-order: -1;
|
||||
order: -1;
|
||||
} @else {
|
||||
-webkit-order: 1;
|
||||
-ms-flex-order: 1;
|
||||
order: 1;
|
||||
}
|
||||
} @else {
|
||||
width: $sidebar-width-computed;
|
||||
float: $sidebar-position;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1px) {
|
||||
@if not $flexbox-layout {
|
||||
padding-bottom: $padding-side * 3;
|
||||
}
|
||||
|
||||
@if $sidebar-position == "left" {
|
||||
border-right: 1px solid $sidebar-link-active-border;
|
||||
box-shadow: inset -9px 0 6px -6px rgba(0, 0, 0, .05);
|
||||
} @else {
|
||||
padding-left: $sidebar-padding-horizontal + 1px;
|
||||
background-position: left 0;
|
||||
border-left: 1px solid $sidebar-link-active-border;
|
||||
box-shadow: inset 9px 0 6px -6px rgba(0, 0, 0, .05);
|
||||
}
|
||||
}
|
||||
|
||||
.nosidebar & {
|
||||
width: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
float: none;
|
||||
border: 0 none;
|
||||
|
||||
@if $flexbox-layout {
|
||||
// scss-lint:disable VendorPrefix
|
||||
-webkit-flex: 0 0 auto;
|
||||
-ms-flex: 0 0 auto;
|
||||
flex: 0 0 auto;
|
||||
} @else {
|
||||
width: 0;
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
@@ -117,7 +152,7 @@
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin: $line-height-computed $padding-side;
|
||||
margin: 0 $padding-side $line-height-computed;
|
||||
padding-top: $line-height-computed;
|
||||
border-top: 1px solid $gray-lighter;
|
||||
color: $gray-light;
|
||||
|
||||
@@ -24,6 +24,16 @@
|
||||
span + span:before {
|
||||
content: "/ ";
|
||||
}
|
||||
|
||||
.pagination + &,
|
||||
#wiki_add_attachment + & {
|
||||
margin-top: 0;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.pagination + & {
|
||||
margin-top: $pagination-padding-vertical + 1px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,8 +43,8 @@
|
||||
|
||||
a.collapsible,
|
||||
.collapsible > legend {
|
||||
cursor: pointer;
|
||||
color: $link-color;
|
||||
cursor: pointer;
|
||||
@include user-select(none);
|
||||
|
||||
&:hover {
|
||||
@@ -48,13 +58,16 @@ a.collapsible,
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-right: 3px;
|
||||
border-top: 5px solid;
|
||||
border-right: 5px solid transparent;
|
||||
border-left: 5px solid transparent;
|
||||
border-top: 6px solid;
|
||||
border-right: 4px solid transparent;
|
||||
border-left: 4px solid transparent;
|
||||
content: "";
|
||||
vertical-align: middle;
|
||||
@include rotate(0);
|
||||
@include transition-transform(.1s);
|
||||
|
||||
@if $collapsible-animation-time > 0 {
|
||||
@include transition-transform($collapsible-animation-time);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +78,34 @@ a.collapsible.collapsed,
|
||||
}
|
||||
}
|
||||
|
||||
@if $collapsible-animation-time > 0 {
|
||||
fieldset.collapsible {
|
||||
min-height: $line-height-computed;
|
||||
max-height: 2500px; // should be enough with all the possible filters
|
||||
overflow: hidden;
|
||||
@include transition(max-height $collapsible-animation-time ease-out);
|
||||
|
||||
> div {
|
||||
// scss-lint:disable ImportantRule
|
||||
display: block !important;
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
@include transition(visibility 0s 0s, opacity $collapsible-animation-time);
|
||||
}
|
||||
|
||||
&.collapsed {
|
||||
max-height: 0;
|
||||
@include transition(max-height $collapsible-animation-time);
|
||||
|
||||
> div {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
@include transition(visibility 0s $collapsible-animation-time, opacity $collapsible-animation-time);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Elements with context menus (doesn't really work on Windows)
|
||||
@@ -82,8 +123,8 @@ a.collapsible.collapsed,
|
||||
.contextual {
|
||||
padding-left: $padding-base-vertical;
|
||||
float: right;
|
||||
cursor: default;
|
||||
white-space: nowrap;
|
||||
cursor: default;
|
||||
|
||||
input,
|
||||
select {
|
||||
@@ -280,6 +321,7 @@ p.subtitle {
|
||||
}
|
||||
|
||||
&.ui-sortable-placeholder {
|
||||
// scss-lint:disable ImportantRule
|
||||
outline: 1px dashed $highlight-border;
|
||||
background: $highlight-bg;
|
||||
visibility: visible !important;
|
||||
@@ -287,7 +329,7 @@ p.subtitle {
|
||||
|
||||
&.ui-sortable-helper {
|
||||
background: $body-bg;
|
||||
box-shadow: $panel-shadow;
|
||||
@include nice-shadow(4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -316,17 +358,58 @@ a.close-icon {
|
||||
*/
|
||||
#content table.filecontent {
|
||||
width: 100%;
|
||||
background: $body-bg;
|
||||
|
||||
th.filename {
|
||||
border-color: $brand-primary;
|
||||
border-bottom-color: darken($body-bg, 10%);
|
||||
background-color: $brand-primary;
|
||||
color: $brand-text;
|
||||
}
|
||||
|
||||
tbody {
|
||||
font-size: $font-size-list;
|
||||
}
|
||||
|
||||
tbody,
|
||||
td.line-code pre {
|
||||
font-family: $font-family-monospace;
|
||||
}
|
||||
|
||||
td.line-code {
|
||||
padding: 2px 5px;
|
||||
th.line-num {
|
||||
border-color: darken($body-bg, 10%);
|
||||
background-color: darken($body-bg, 5%);
|
||||
color: $gray;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 13px;
|
||||
th.line-num,
|
||||
td.line-code {
|
||||
padding: .15em .4em;
|
||||
}
|
||||
|
||||
th.line-num,
|
||||
td.line-code,
|
||||
td.line-code pre {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
tr:hover {
|
||||
background-color: darken($body-bg, 2%);
|
||||
|
||||
th.line-num {
|
||||
background-color: darken($body-bg, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
tr:target {
|
||||
th.line-num {
|
||||
border-color: darken(adjust-hue($highlight-bg, -8deg), 15%);
|
||||
background-color: darken(adjust-hue($highlight-bg, -8deg), 7%);
|
||||
color: $highlight-text;
|
||||
}
|
||||
|
||||
td.line-code {
|
||||
background-color: $highlight-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -377,7 +460,11 @@ ul.projects {
|
||||
|
||||
a.project {
|
||||
font-size: $font-size-h3;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
|
||||
&.child {
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,11 +488,7 @@ ul.projects {
|
||||
* Time report
|
||||
*/
|
||||
|
||||
table#time-report {
|
||||
td.hours {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#time-report {
|
||||
th {
|
||||
&.period,
|
||||
&.total {
|
||||
@@ -426,17 +509,17 @@ table#time-report {
|
||||
&.total {
|
||||
border-top: 2px solid darken($table-border-color, 5%);
|
||||
background-color: $table-bg-active;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
.hours-dec {
|
||||
font-size: .9em;
|
||||
td.hours {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.total-hours {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
|
||||
.hours-int {
|
||||
font-size: $font-size-large * 1.1;
|
||||
@@ -529,9 +612,9 @@ div#version-summary {
|
||||
border: 1px solid $highlight-border;
|
||||
background-color: $highlight-bg;
|
||||
color: $highlight-text;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: center;
|
||||
box-shadow: $panel-shadow;
|
||||
@include nice-shadow(3);
|
||||
opacity: .9;
|
||||
z-index: 100;
|
||||
|
||||
@@ -555,7 +638,7 @@ tr.message {
|
||||
}
|
||||
|
||||
&.sticky td.subject {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
td {
|
||||
@@ -569,7 +652,7 @@ tr.message {
|
||||
white-space: nowrap;
|
||||
|
||||
a:last-child {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -583,7 +666,7 @@ table.boards {
|
||||
white-space: nowrap;
|
||||
|
||||
a:last-child {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -607,39 +690,39 @@ table.boards {
|
||||
> h4,
|
||||
> p {
|
||||
margin-bottom: 0;
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
padding: $bubble-padding-vertical $bubble-padding-horizontal;
|
||||
border-bottom: 1px solid mix($gray-lighter, $gray-lightest, 50%);
|
||||
color: $gray;
|
||||
font-size: $font-size-small;
|
||||
font-size: $font-size-list;
|
||||
|
||||
a {
|
||||
color: $gray-darker;
|
||||
|
||||
&.user {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.wiki {
|
||||
padding: $padding-base-horizontal;
|
||||
padding: $bubble-padding-horizontal;
|
||||
border-radius: 0 0 $panel-border-radius $panel-border-radius;
|
||||
background: $body-bg;
|
||||
}
|
||||
|
||||
.contextual {
|
||||
position: relative;
|
||||
margin-right: $padding-base-vertical;
|
||||
margin-right: $bubble-padding-vertical;
|
||||
z-index: 1;
|
||||
|
||||
@if $use-font-awesome {
|
||||
margin-top: $padding-small-vertical;
|
||||
} @else {
|
||||
margin-top: $padding-base-vertical;
|
||||
margin-top: $bubble-padding-vertical;
|
||||
}
|
||||
|
||||
a {
|
||||
margin-left: ceil($padding-base-vertical / 2);
|
||||
margin-left: ceil($bubble-padding-vertical / 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -650,7 +733,7 @@ table.boards {
|
||||
|
||||
@if $use-gravatars {
|
||||
.reply {
|
||||
margin-left: 24px + $padding-base-horizontal;
|
||||
margin-left: $bubble-gravatar-size + $bubble-gravatar-space;
|
||||
|
||||
> h4 {
|
||||
position: relative;
|
||||
@@ -659,7 +742,7 @@ table.boards {
|
||||
&:after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
top: 9px;
|
||||
right: 100%;
|
||||
left: -14px;
|
||||
width: 0;
|
||||
@@ -684,8 +767,8 @@ table.boards {
|
||||
}
|
||||
|
||||
img.gravatar {
|
||||
margin-top: $line-height-computed - 24px;
|
||||
margin-left: -(24px + $padding-base-horizontal * 2 + 1px);
|
||||
margin-top: $line-height-computed - $bubble-gravatar-size;
|
||||
margin-left: -($bubble-gravatar-size + $bubble-gravatar-space + $bubble-padding-horizontal + 1px);
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
@@ -751,13 +834,30 @@ table.boards {
|
||||
* Repository view
|
||||
*/
|
||||
|
||||
#revision_selector {
|
||||
display: inline;
|
||||
.revision-info {
|
||||
margin-bottom: $line-height-computed;
|
||||
|
||||
tbody > tr > td {
|
||||
padding-right: $table-cell-padding;
|
||||
padding-bottom: $table-condensed-cell-padding;
|
||||
|
||||
+ td {
|
||||
font-family: $font-family-monospace;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#related-issues {
|
||||
li img {
|
||||
vertical-align: middle;
|
||||
margin: $line-height-computed 0;
|
||||
|
||||
li > a {
|
||||
margin-left: .5em;
|
||||
|
||||
@if $use-font-awesome == false {
|
||||
img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -781,6 +881,10 @@ tr.changeset {
|
||||
background-color: #fffffb;
|
||||
}
|
||||
|
||||
td.id {
|
||||
font-family: $font-family-monospace;
|
||||
}
|
||||
|
||||
td.author,
|
||||
td.committed_on {
|
||||
width: 15%;
|
||||
@@ -799,3 +903,58 @@ tr.changeset {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.revision-graph {
|
||||
circle {
|
||||
// @include translate(0, $table-cell-padding - 1px);
|
||||
}
|
||||
}
|
||||
|
||||
#content #changes-legend {
|
||||
font-size: 1em;
|
||||
|
||||
.change {
|
||||
background-position: 5px center;
|
||||
}
|
||||
|
||||
.change-A { color: $changeset-add-color; }
|
||||
.change-M { color: $changeset-modified-color; }
|
||||
.change-C { color: $changeset-copied-color; }
|
||||
.change-R { color: $changeset-renamed-color; }
|
||||
.change-D { color: $changeset-deleted-color; }
|
||||
}
|
||||
|
||||
.changeset-changes {
|
||||
.change {
|
||||
padding-top: $table-condensed-cell-padding;
|
||||
color: $gray-dark;
|
||||
|
||||
a {
|
||||
@include link-variant($gray-dark);
|
||||
}
|
||||
}
|
||||
|
||||
.change-A {
|
||||
&:before { color: $changeset-add-color; }
|
||||
a { @include link-variant($changeset-add-color); }
|
||||
}
|
||||
|
||||
.change-M {
|
||||
&:before { color: $changeset-modified-color; }
|
||||
a { @include link-variant($changeset-modified-color); }
|
||||
}
|
||||
|
||||
.change-C {
|
||||
&:before { color: $changeset-copied-color; }
|
||||
a { @include link-variant($changeset-copied-color); }
|
||||
}
|
||||
|
||||
.change-R {
|
||||
&:before { color: $changeset-renamed-color; }
|
||||
a { @include link-variant($changeset-renamed-color); }
|
||||
}
|
||||
|
||||
.change-D {
|
||||
color: $changeset-deleted-color;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,20 +53,20 @@
|
||||
|
||||
a {
|
||||
color: $link;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
.warning,
|
||||
.conflict,
|
||||
.nodata {
|
||||
@include flash($flash-warning-text, $flash-warning-bg, $flash-warning-border, $flash-warning-link, "warning");
|
||||
}
|
||||
|
||||
.flash.notice {
|
||||
@include flash($flash-success-text, $flash-success-bg, $flash-success-border, $flash-success-link, "true");
|
||||
}
|
||||
|
||||
.flash.warning,
|
||||
.conflict,
|
||||
.nodata {
|
||||
@include flash($flash-warning-text, $flash-warning-bg, $flash-warning-border, $flash-warning-link, "warning");
|
||||
}
|
||||
|
||||
#errorExplanation,
|
||||
.flash.error {
|
||||
@include flash($flash-error-text, $flash-error-bg, $flash-error-border, $flash-error-link, "exclamation");
|
||||
|
||||
@@ -3,11 +3,13 @@
|
||||
// --------------------------------------------------
|
||||
|
||||
form {
|
||||
// display: inline;
|
||||
|
||||
td {
|
||||
padding: $table-condensed-cell-padding;
|
||||
}
|
||||
|
||||
.contextual > & {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
button,
|
||||
@@ -86,7 +88,7 @@ input[type="range"] {
|
||||
|
||||
input.autocomplete {
|
||||
padding-right: 30px;
|
||||
background-image: url("../images/aci.png"); /* autocomplete indicator */
|
||||
@extend %image-aci;
|
||||
background-repeat: no-repeat;
|
||||
background-position: right center;
|
||||
|
||||
@@ -101,11 +103,54 @@ select {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
&[size="1"] {
|
||||
height: $input-height-base;
|
||||
}
|
||||
|
||||
option[disabled] {
|
||||
color: $gray-lighter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Browser hacks: unfortunately every browser has different capabilities when it
|
||||
* comes to styling <select> and <option> tags.
|
||||
*/
|
||||
|
||||
// Mozilla Firefox
|
||||
@-moz-document url-prefix() {
|
||||
select {
|
||||
&[multiple] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
option,
|
||||
optgroup:before {
|
||||
padding: $input-padding-vertical $input-padding-horizontal;
|
||||
border-bottom: 1px dotted $gray-lighter;
|
||||
}
|
||||
|
||||
optgroup > option {
|
||||
padding-right: $input-padding-horizontal * 2;
|
||||
padding-left: $input-padding-horizontal * 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Google Chrome and Safari
|
||||
@supports (-webkit-appearance: none) {
|
||||
select[multiple] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
// For some reason nested selectors will not work
|
||||
select[multiple] option {
|
||||
padding: $input-padding-vertical $input-padding-horizontal;
|
||||
border-bottom: 1px dotted $gray-lighter;
|
||||
}
|
||||
}
|
||||
|
||||
select:-moz-focusring {
|
||||
color: transparent;
|
||||
text-shadow: 0 0 0 #000;
|
||||
@@ -238,8 +283,8 @@ em.info {
|
||||
margin-left: 0;
|
||||
padding-left: 16px;
|
||||
float: none;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
|
||||
> input {
|
||||
margin-top: 0;
|
||||
@@ -305,8 +350,7 @@ label[for=closed] {
|
||||
#my_account_form select,
|
||||
#user_form select,
|
||||
#user_identity_url,
|
||||
#custom_field_possible_values,
|
||||
#custom_field_default_value {
|
||||
#custom_field_possible_values {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -323,6 +367,7 @@ input {
|
||||
}
|
||||
|
||||
select.bool_cf {
|
||||
// scss-lint:disable ImportantRule
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
@@ -415,7 +460,7 @@ select.bool_cf {
|
||||
}
|
||||
}
|
||||
|
||||
#all_attributes {
|
||||
#issue-form {
|
||||
.splitcontentleft,
|
||||
.splitcontentright {
|
||||
width: 100%;
|
||||
@@ -449,24 +494,26 @@ select.bool_cf {
|
||||
padding-left: .2em;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hack: first <p> in issue form ("private" option) is moved to the right with
|
||||
* inline styles. Don't allow it break the layout
|
||||
*/
|
||||
> p[style] {
|
||||
margin-right: 0 !important;
|
||||
margin-bottom: 0;
|
||||
|
||||
/**
|
||||
* Hack: first <p> in issue form ("private" option) is moved to the right with
|
||||
* inline styles. Don't allow it break the layout
|
||||
*/
|
||||
#all_attributes > p[style] {
|
||||
// scss-lint:disable ImportantRule
|
||||
margin-right: 0 !important;
|
||||
margin-bottom: 0;
|
||||
padding-left: 0;
|
||||
|
||||
input {
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-right: 0;
|
||||
padding-left: 0;
|
||||
|
||||
input {
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -478,15 +525,15 @@ select.bool_cf {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// scss-lint:disable VendorPrefixes
|
||||
// scss-lint:disable VendorPrefix
|
||||
#watchers_inputs {
|
||||
display: block;
|
||||
max-width: 80em;
|
||||
max-width: 64em;
|
||||
margin-top: $input-padding-vertical + 1px;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
-webkit-columns: 18em 4;
|
||||
-moz-columns: 18em 4;
|
||||
columns: 18em 4;
|
||||
-webkit-columns: 18em 3;
|
||||
-moz-columns: 18em 3;
|
||||
columns: 18em 3;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
&.project,
|
||||
&.version {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -115,31 +115,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
.version-behind-schedule a,
|
||||
.issue-behind-schedule a {
|
||||
.version-behind-schedule,
|
||||
.issue-behind-schedule {
|
||||
color: $brand-warning;
|
||||
|
||||
@if $color-trackers {
|
||||
&.issue {
|
||||
background-color: $brand-warning;
|
||||
color: $brand-text;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.version-overdue a,
|
||||
.issue-overdue a,
|
||||
.project-overdue a {
|
||||
.version-overdue,
|
||||
.issue-overdue,
|
||||
.project-overdue {
|
||||
color: $brand-danger;
|
||||
|
||||
@if $color-trackers {
|
||||
&.issue {
|
||||
background-color: $brand-danger;
|
||||
color: $brand-text;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,12 +145,12 @@
|
||||
left: 24px;
|
||||
width: 270px;
|
||||
padding: $padding-base-vertical;
|
||||
border: 1px solid $tooltip-border;
|
||||
border: $tooltip-border-width solid $tooltip-border;
|
||||
background-color: $tooltip-bg;
|
||||
color: $tooltip-text;
|
||||
font-size: $font-size-small;
|
||||
text-align: left;
|
||||
box-shadow: 0 2px 2px rgba(0, 0, 0, .2);
|
||||
@include nice-shadow(3);
|
||||
}
|
||||
|
||||
@if $sidebar-position == "left" {
|
||||
|
||||
@@ -37,6 +37,13 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
* Context menu
|
||||
*/
|
||||
#context-menu {
|
||||
> ul,
|
||||
> ul > li > ul {
|
||||
// scss-lint:disable ImportantRule
|
||||
border: 0 none !important;
|
||||
@include nice-shadow(2);
|
||||
}
|
||||
|
||||
a {
|
||||
@extend %fa-icon;
|
||||
|
||||
@@ -52,7 +59,7 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
}
|
||||
|
||||
ul li a.submenu {
|
||||
background-image: url("../images/bullet_arrow_right.png");
|
||||
@extend %image-arrow-right;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,6 +71,13 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
{
|
||||
.icon {
|
||||
@extend %fa-icon;
|
||||
padding-left: 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0% 50%;
|
||||
|
||||
&:before {
|
||||
margin-left: -20px;
|
||||
}
|
||||
|
||||
.contextual & {
|
||||
margin-left: .5em;
|
||||
@@ -111,6 +125,12 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
.icon-zoom-out:before { content: $fa-var-search-minus; }
|
||||
.icon-passwd:before { content: $fa-var-key; }
|
||||
.icon-test:before { content: $fa-var-arrow-circle-right; }
|
||||
.icon-phone:before { content: $fa-var-phone; }
|
||||
.icon-email:before { content: $fa-var-envelope; }
|
||||
.icon-skype:before { content: $fa-var-skype; }
|
||||
.icon-facebook:before { content: $fa-var-facebook-square; }
|
||||
.icon-linkedin:before { content: $fa-var-linkedin-square; }
|
||||
.icon-twitter:before { content: $fa-var-twitter-square; }
|
||||
}
|
||||
@else
|
||||
{
|
||||
@@ -169,21 +189,11 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
.icon-add,
|
||||
.icon-edit,
|
||||
.icon-save {
|
||||
color: $icon-success-color;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $icon-success-color;
|
||||
}
|
||||
@include link-variant($icon-success-color, $icon-success-hover-color);
|
||||
}
|
||||
|
||||
.icon-del {
|
||||
color: $icon-danger-color;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $icon-danger-hover-color;
|
||||
}
|
||||
@include link-variant($icon-danger-color, $icon-danger-hover-color);
|
||||
}
|
||||
|
||||
|
||||
@@ -278,48 +288,115 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
*/
|
||||
@if $use-font-awesome
|
||||
{
|
||||
%admin-icon {
|
||||
@extend %fa-icon;
|
||||
|
||||
&:before {
|
||||
width: 20px;
|
||||
margin-left: -(5px + 20px);
|
||||
color: $gray;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&:hover:before {
|
||||
color: $gray-darker;
|
||||
}
|
||||
|
||||
&.selected:before {
|
||||
color: $gray-darkest;
|
||||
}
|
||||
}
|
||||
|
||||
#admin-menu {
|
||||
#admin-index > & {
|
||||
a {
|
||||
padding-left: 0;
|
||||
padding-left: 5px + 20px;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
> a {
|
||||
@extend %fa-icon;
|
||||
padding-left: $sidebar-padding-horizontal;
|
||||
|
||||
&:before {
|
||||
width: 1em;
|
||||
margin-right: .5em;
|
||||
color: $gray;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&:hover:before {
|
||||
color: $gray-darker;
|
||||
}
|
||||
|
||||
&.selected:before {
|
||||
color: $gray-darkest;
|
||||
}
|
||||
padding-left: $sidebar-padding-horizontal + 5px + 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.projects:before { content: $fa-var-cubes; }
|
||||
.users:before { content: $fa-var-user; }
|
||||
.groups:before { content: $fa-var-group; }
|
||||
.roles:before { content: $fa-var-eye; }
|
||||
.trackers:before { content: $fa-var-ticket; }
|
||||
.issue_statuses:before { content: $fa-var-pencil-square; }
|
||||
.workflows:before { content: $fa-var-sitemap; }
|
||||
.custom_fields:before { content: $fa-var-edit; }
|
||||
.enumerations:before { content: $fa-var-list; }
|
||||
.settings:before { content: $fa-var-gear; }
|
||||
.plugins:before { content: $fa-var-puzzle-piece; }
|
||||
.info:before { content: $fa-var-info-circle; }
|
||||
.server_authentication:before { content: $fa-var-key; }
|
||||
.projects {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-cubes; }
|
||||
}
|
||||
|
||||
.users {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-user; }
|
||||
}
|
||||
|
||||
.groups {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-group; }
|
||||
}
|
||||
|
||||
.roles {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-eye; }
|
||||
}
|
||||
|
||||
.trackers {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-ticket; }
|
||||
}
|
||||
|
||||
.issue_statuses {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-pencil-square; }
|
||||
}
|
||||
|
||||
.workflows {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-sitemap; }
|
||||
}
|
||||
|
||||
.custom_fields {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-edit; }
|
||||
}
|
||||
|
||||
.enumerations {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-list; }
|
||||
}
|
||||
|
||||
.settings {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-gear; }
|
||||
}
|
||||
|
||||
.plugins {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-puzzle-piece; }
|
||||
}
|
||||
|
||||
.info {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-info-circle; }
|
||||
}
|
||||
|
||||
.server_authentication {
|
||||
@extend %admin-icon;
|
||||
|
||||
&:before { content: $fa-var-key; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@else
|
||||
@@ -490,7 +567,8 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
.issues .buttons a {
|
||||
.issues .buttons a,
|
||||
#related-issues li > a {
|
||||
&[data-method="delete"] {
|
||||
@extend %fa-icon;
|
||||
|
||||
@@ -538,6 +616,11 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
margin-left: .2em;
|
||||
}
|
||||
|
||||
&.asc,
|
||||
&.desc {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
&.asc:after {
|
||||
content: $fa-var-sort-amount-asc;
|
||||
}
|
||||
@@ -604,12 +687,7 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
}
|
||||
|
||||
&:nth-child(2) {
|
||||
color: $icon-success-color;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $icon-success-hover-color;
|
||||
}
|
||||
@include link-variant($icon-success-color, $icon-success-hover-color);
|
||||
|
||||
&:before {
|
||||
content: $fa-var-pencil;
|
||||
@@ -617,12 +695,7 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
}
|
||||
|
||||
&:nth-child(3) {
|
||||
color: $icon-danger-color;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $icon-danger-hover-color;
|
||||
}
|
||||
@include link-variant($icon-danger-color, $icon-danger-hover-color);
|
||||
|
||||
&:before {
|
||||
content: $fa-var-trash;
|
||||
@@ -652,7 +725,7 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
}
|
||||
|
||||
&.sticky td.subject {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
|
||||
&:before {
|
||||
content: $fa-var-bookmark;
|
||||
@@ -693,32 +766,27 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
div.wiki {
|
||||
.external {
|
||||
@extend %fa-icon;
|
||||
white-space: nowrap;
|
||||
|
||||
&:before {
|
||||
display: inline;
|
||||
margin-right: 3px;
|
||||
font-size: 10px;
|
||||
content: $fa-var-external-link;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[href*="edit"] {
|
||||
@extend %fa-icon;
|
||||
color: $icon-success-color;
|
||||
font-size: $font-size-base;
|
||||
.contextual [href*="edit"] {
|
||||
@extend %fa-icon;
|
||||
font-size: $font-size-base;
|
||||
@include link-variant($icon-success-color, $icon-success-hover-color);
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: $icon-success-color;
|
||||
}
|
||||
&:before {
|
||||
content: $fa-var-pencil;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: $fa-var-pencil;
|
||||
}
|
||||
|
||||
img {
|
||||
display: none;
|
||||
}
|
||||
img {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -727,7 +795,13 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
|
||||
&:before {
|
||||
margin-right: .3em;
|
||||
content: $fa-var-paperclip;
|
||||
color: $icon-success-color;
|
||||
content: $fa-var-plus;
|
||||
}
|
||||
|
||||
&:hover:before,
|
||||
&:focus:before {
|
||||
color: $icon-success-hover-color;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -772,6 +846,41 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#changes-legend > li.change,
|
||||
.changeset-changes ul > li.change {
|
||||
@extend %fa-icon;
|
||||
background: transparent;
|
||||
|
||||
&:before {
|
||||
position: relative;
|
||||
top: -.12em;
|
||||
font-size: .7143em;
|
||||
content: $fa-var-circle;
|
||||
}
|
||||
|
||||
&.folder:before { top: 0; font-size: 1em; content: $fa-var-folder; }
|
||||
&.folder.change-A:before { content: $fa-var-folder-open; }
|
||||
&.folder.change-M:before { content: $fa-var-folder-open; }
|
||||
&.change-A:before { content: $fa-var-plus-circle; }
|
||||
&.change-M:before { content: $fa-var-circle; }
|
||||
&.change-C:before { content: $fa-var-arrow-circle-right; }
|
||||
&.change-R:before { content: $fa-var-check-circle; }
|
||||
&.change-D:before { content: $fa-var-minus-circle; }
|
||||
}
|
||||
|
||||
.changeset-changes ul > li.change {
|
||||
&.folder:before {
|
||||
top: $table-condensed-cell-padding - 2px;
|
||||
margin-left: -20px;
|
||||
}
|
||||
|
||||
&:before {
|
||||
top: $table-condensed-cell-padding;
|
||||
margin-left: -(20px - $table-condensed-cell-padding);
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
@else
|
||||
{
|
||||
@@ -810,6 +919,7 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
background: url("../../../images/delete.png") no-repeat 1px 50%;
|
||||
|
||||
&:hover {
|
||||
// scss-lint:disable ImportantRule
|
||||
text-decoration: none !important;
|
||||
}
|
||||
}
|
||||
@@ -830,7 +940,7 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
|
||||
&.sticky td.subject {
|
||||
background-image: url("../../../images/bullet_go.png");
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
td.subject {
|
||||
@@ -996,7 +1106,8 @@ $icon-danger-hover-color: darken($brand-danger, 10%);
|
||||
height: 14px;
|
||||
padding-left: 14px;
|
||||
box-sizing: border-box;
|
||||
background: url("../images/calendar_555555_14.png") no-repeat;
|
||||
@extend %image-calendar;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
44
src/sass/components/_image-base64.scss
Normal file
@@ -0,0 +1,44 @@
|
||||
//
|
||||
// Base64 encoded images
|
||||
// --------------------------------------------------
|
||||
|
||||
/* ACI = AutoComplete Indicator */
|
||||
%image-aci {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKBAMAAAAnY0GXAAAAD1BMVEUAAACzs7Ozs7Ozs7Ozs7NJvZFvAAAABHRSTlMA5kpJG2qUMwAAABtJREFUCNdjIBMYCkMRDIg4QhBuAUUhKCIPAAAlaQNk5qF21gAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
%image-arrow-up {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgFIFe2wwFmA2CKQAAAArSURBVAjXYyASGBlAGYoKEJpNUAzCKBEUKQDRzIGCgsEgBpOgoKAQA5kAAOOzAuqv1pGxAAAAAElFTkSuQmCC);
|
||||
}
|
||||
|
||||
%image-arrow-right {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUUeIgAAAACXRSTlMAgF1mUUUMBwa6cf6pAAAAIklEQVQI12PADwJgDBEYQ1ADxhBOgDIEFdBF1GG6EOYQCQC/wwKE7b2bNAAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
%image-arrow-down {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgFIFbDAWVn1ccuIAAAAsSURBVAjXYyANMAkKCgqBGMyOgoLOYKFEQcEEMINVUBSqSlEByjA3YCARAADFOwKnW3vw7AAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
%image-arrow-left {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgF1mUUUMBtml7EIAAAAjSURBVAjXYyAAWGEMRyhdJAih2QyhDCZBhAhcDVwXwhziAACuywJHmKAVPgAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
%image-arrow-up-white {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAYUlEQVR4Xu2SMQqAMAxFVUxOID2FQ+9R3cRjesX4A5lCoaUFB2nhkeQPLxQyi8jU8xbwYwGBC1CrIIFda4sgKq6vFgS/1eZQI2BwZ/5NlnNJcIAtt8ny04ermx/l4zsYgheccgigTIfmMAAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
%image-arrow-down-white {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEUAAAD////////////////////////////////rTT7CAAAACXRSTlMAgFIFbBZWMTBl3YBFAAAALElEQVQI12MgDTAJCgoKgRjMjoKCzmChQEHBADCDQ1AcqkpRAcowM2AgEQAAvM4CiwrixCQAAAAASUVORK5CYII=);
|
||||
}
|
||||
|
||||
%image-calendar {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOBAMAAADtZjDiAAAAIVBMVEUAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUMftYpAAAACnRSTlMArIDn/dahwzIKIC4f+wAAADxJREFUCNdjYEhJACEGBk8HEGIQXrDYeMFiAYZVK1YB0QKGVSAApBcwMQgwMSDohaKChqKCxItXgc0pAADUBx5bh1ZBCgAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
%image-toggle-minus {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAQSURBVAjXY8AK+D+AEDYAAC8fAf+FxiPoAAAAAElFTkSuQmCC);
|
||||
}
|
||||
|
||||
%image-toggle-plus {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAVSURBVAjXY0AGjA1QxP8BiBBcJAAAdjIFBZTfDZQAAAAASUVORK5CYII=);
|
||||
}
|
||||
@@ -2,76 +2,159 @@
|
||||
// Issue page
|
||||
// --------------------------------------------------
|
||||
|
||||
.issue.details {
|
||||
margin-bottom: $line-height-computed;
|
||||
padding: $issue-padding;
|
||||
border: 1px solid $issue-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $issue-bg;
|
||||
color: $issue-text;
|
||||
word-wrap: break-word;
|
||||
|
||||
@if $use-gravatars
|
||||
{
|
||||
> img.gravatar {
|
||||
width: $issue-gravatar-size;
|
||||
height: $issue-gravatar-size;
|
||||
margin-right: 10px;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
float: left;
|
||||
}
|
||||
|
||||
table img.gravatar {
|
||||
position: relative;
|
||||
top: -3px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
> .subject,
|
||||
> .author {
|
||||
padding-left: $issue-gravatar-size + 10px;
|
||||
}
|
||||
}
|
||||
|
||||
> .subject {
|
||||
h3 {
|
||||
margin-bottom: 5px;
|
||||
color: $gray-darkest;
|
||||
font-size: $issue-heading-size * 1em;
|
||||
font-weight: bold;
|
||||
line-height: $headings-line-height;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 5px;
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
}
|
||||
|
||||
> .author {
|
||||
.issue {
|
||||
&.details {
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
padding: $issue-padding;
|
||||
border: 1px solid $issue-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $issue-bg;
|
||||
color: $issue-text;
|
||||
word-wrap: break-word;
|
||||
|
||||
> hr {
|
||||
margin: $issue-padding (-$issue-padding);
|
||||
border-top-color: $issue-border;
|
||||
}
|
||||
@if $use-gravatars
|
||||
{
|
||||
> img.gravatar {
|
||||
width: $issue-gravatar-size;
|
||||
height: $issue-gravatar-size;
|
||||
margin-right: 10px;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
float: left;
|
||||
}
|
||||
|
||||
> .description {
|
||||
> p {
|
||||
margin-bottom: $issue-padding;
|
||||
table img.gravatar {
|
||||
position: relative;
|
||||
top: -3px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
> .subject,
|
||||
> .author {
|
||||
padding-left: $issue-gravatar-size + 10px;
|
||||
}
|
||||
}
|
||||
|
||||
> .wiki {
|
||||
margin: 0 (-$issue-padding) (-$issue-padding);
|
||||
padding: $padding-wiki;
|
||||
border-top: 1px solid $issue-border;
|
||||
background: $body-bg;
|
||||
&.assigned-to-me {
|
||||
.assigned-to .user {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
> .subject {
|
||||
h3 {
|
||||
margin-bottom: .3em;
|
||||
color: $gray-darkest;
|
||||
font-size: $issue-heading-size * 1em;
|
||||
font-weight: $font-weight-bold;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 5px;
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
}
|
||||
|
||||
> .author {
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
|
||||
> hr {
|
||||
margin: $issue-padding (-$issue-padding);
|
||||
border-top-color: $issue-border;
|
||||
}
|
||||
|
||||
> .description {
|
||||
> p {
|
||||
margin-bottom: $issue-padding;
|
||||
}
|
||||
|
||||
> .wiki {
|
||||
margin: 0 (-$issue-padding) (-$issue-padding);
|
||||
padding: $padding-wiki;
|
||||
border-top: 1px solid $issue-border;
|
||||
background: $body-bg;
|
||||
}
|
||||
}
|
||||
|
||||
.next-prev-links {
|
||||
color: $gray-light;
|
||||
}
|
||||
}
|
||||
|
||||
.next-prev-links {
|
||||
color: $gray-light;
|
||||
.attributes {
|
||||
width: 100%;
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: $issue-attribute-padding-v $issue-attribute-padding-h $issue-attribute-padding-v 0;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
> tbody > tr {
|
||||
th {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
td {
|
||||
color: $gray-darkest;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
> tbody > tr {
|
||||
> th,
|
||||
> td {
|
||||
width: 25%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
width: auto;
|
||||
|
||||
> tbody > tr {
|
||||
> th {
|
||||
width: 14em;
|
||||
}
|
||||
|
||||
> td {
|
||||
width: auto;
|
||||
min-width: 16em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $color-status {
|
||||
.attributes td.status {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
min-width: 1em;
|
||||
margin-top: $issue-attribute-padding-v;
|
||||
padding: 1px $table-cell-padding;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $brand-primary;
|
||||
color: $brand-text;
|
||||
font-size: $font-size-small;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
&.status-1 .attributes td.status {
|
||||
background-color: $brand-info;
|
||||
}
|
||||
|
||||
&.closed .attributes td.status {
|
||||
background-color: $brand-danger;
|
||||
}
|
||||
}
|
||||
|
||||
div.attachments {
|
||||
margin: $issue-padding (-$issue-padding) (-$issue-padding);
|
||||
padding: $issue-padding;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,16 +163,16 @@ div.fileover {
|
||||
}
|
||||
|
||||
div.attachments {
|
||||
margin: $issue-padding (-$issue-padding) (-$issue-padding);
|
||||
padding: $issue-padding;
|
||||
padding: $line-height-computed 0;
|
||||
border-top: 1px solid $issue-border;
|
||||
|
||||
p {
|
||||
margin: 10px 0 0;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
p:first-child,
|
||||
.contextual + p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
@@ -175,27 +258,6 @@ div.thumbnails {
|
||||
}
|
||||
}
|
||||
|
||||
table.attributes {
|
||||
width: 100%;
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: $table-condensed-cell-padding $table-condensed-cell-padding $table-condensed-cell-padding 0;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
> tbody > tr {
|
||||
> th {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
> td {
|
||||
width: 35%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#new-relation-form {
|
||||
text-align: right;
|
||||
|
||||
@@ -208,41 +270,91 @@ table.attributes {
|
||||
}
|
||||
}
|
||||
|
||||
$journal-gravatar: 24px;
|
||||
$journal-gravatar-margin: 8px;
|
||||
$journal-gravatar-padding: 4px;
|
||||
$journal-indent: 0;
|
||||
#history {
|
||||
overflow: auto;
|
||||
|
||||
@if $use-gravatars {
|
||||
$journal-indent: $journal-gravatar + $journal-gravatar-margin + $journal-gravatar-padding;
|
||||
> .tabs {
|
||||
margin-bottom: $line-height-computed + 2px * 2;
|
||||
}
|
||||
|
||||
&.hide-details {
|
||||
.journal,
|
||||
.details,
|
||||
.first-of-notes:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.has-notes {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
&.hide-notes {
|
||||
.journal,
|
||||
.wiki,
|
||||
.first-of-details:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.has-details {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.journal {
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
margin-bottom: $line-height-computed + 2px * 2;
|
||||
|
||||
@if $use-gravatars {
|
||||
margin-left: $bubble-gravatar-size + $bubble-gravatar-space;
|
||||
}
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: -($line-height-computed + 2px);
|
||||
left: 22px;
|
||||
width: 4px;
|
||||
height: $line-height-computed;
|
||||
background-color: darken($body-bg, 5%);
|
||||
content: "";
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.tabs + &:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> div {
|
||||
border: 1px solid $issue-border;
|
||||
border-radius: $panel-border-radius;
|
||||
|
||||
&:target {
|
||||
border-color: darken($issue-border, 25%);
|
||||
|
||||
@if $use-gravatars {
|
||||
h4:before {
|
||||
border-right-color: darken($issue-border, 25%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin: 0;
|
||||
padding: (2px + $journal-gravatar-padding) 8px;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $gray-lightest;
|
||||
padding: $bubble-padding-vertical $bubble-padding-horizontal;
|
||||
border-radius: $panel-border-radius $panel-border-radius 0 0;
|
||||
background-color: $issue-bg;
|
||||
color: $gray;
|
||||
font-size: $font-size-list;
|
||||
line-height: $journal-gravatar - 2px * 2;
|
||||
|
||||
> .gravatar {
|
||||
margin-top: -1px;
|
||||
margin-right: $journal-gravatar-margin;
|
||||
margin-left: -(8px - $journal-gravatar-padding);
|
||||
float: left;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $gray-dark;
|
||||
}
|
||||
color: $gray-darker;
|
||||
|
||||
.user {
|
||||
font-weight: bold;
|
||||
&.user {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
.journal-link {
|
||||
@@ -250,13 +362,72 @@ $journal-indent: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@if $use-gravatars {
|
||||
h4 {
|
||||
position: relative;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 9px;
|
||||
right: 100%;
|
||||
left: -14px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid solid outset;
|
||||
border-color: transparent;
|
||||
content: " ";
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&:after {
|
||||
margin-top: 1px;
|
||||
margin-left: 2px;
|
||||
border-width: 6px;
|
||||
border-right-color: $issue-bg;
|
||||
}
|
||||
|
||||
&:before {
|
||||
border-width: 7px;
|
||||
border-right-color: $issue-border;
|
||||
}
|
||||
|
||||
> .gravatar {
|
||||
margin-top: $line-height-computed - $bubble-gravatar-size;
|
||||
margin-left: -($bubble-gravatar-size + $bubble-gravatar-space + $bubble-padding-horizontal + 1px);
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.details {
|
||||
margin-top: 5px;
|
||||
padding-left: $journal-indent + $padding-base-horizontal;
|
||||
margin: 0;
|
||||
padding: $bubble-padding-vertical 0;
|
||||
padding-left: $bubble-padding-horizontal * 3;
|
||||
border-top: 1px solid mix($body-bg, $issue-border, 50%);
|
||||
font-size: $font-size-list;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
margin-bottom: .2em;
|
||||
position: relative;
|
||||
margin-bottom: $bubble-padding-vertical / 2;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: -($bubble-padding-horizontal * 1.5 + 6px / 2);
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
border-radius: 50%;
|
||||
background-color: $gray-light;
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
@@ -264,18 +435,27 @@ $journal-indent: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.wiki {
|
||||
margin-top: 5px;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
margin-left: $journal-indent;
|
||||
.wiki,
|
||||
form {
|
||||
padding: $issue-padding;
|
||||
border-top: 1px solid mix($body-bg, $issue-border, 50%);
|
||||
}
|
||||
|
||||
@if $use-gravatars {
|
||||
form {
|
||||
margin-left: $journal-indent;
|
||||
form {
|
||||
padding-top: 5px;
|
||||
background-color: $gray-lightest;
|
||||
|
||||
.wiki {
|
||||
margin-left: 0;
|
||||
> p {
|
||||
margin-bottom: $issue-padding;
|
||||
}
|
||||
|
||||
> .wiki {
|
||||
margin: 0 (-$issue-padding) (-$issue-padding);
|
||||
padding: 0;
|
||||
border: 0 none;
|
||||
|
||||
.preview {
|
||||
padding: $issue-padding;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -292,85 +472,23 @@ $journal-indent: 0;
|
||||
|
||||
del > i:first-of-type,
|
||||
i:first-of-type {
|
||||
background-color: mix($body-bg, $diff-out-bg, 64%);
|
||||
color: $diff-out-color;
|
||||
background-color: $journal-old-value-bg;
|
||||
color: $journal-old-value-color;
|
||||
}
|
||||
|
||||
i:last-of-type {
|
||||
background-color: mix($body-bg, $diff-in-bg, 64%);
|
||||
color: $diff-in-color;
|
||||
}
|
||||
|
||||
@if $bubble-journal-wiki-note {
|
||||
&.has-notes {
|
||||
.wiki {
|
||||
position: relative;
|
||||
min-height: $line-height-computed;
|
||||
margin-top: 0;
|
||||
padding: $padding-large-vertical $padding-base-horizontal;
|
||||
border: 1px solid $gray-lighter;
|
||||
border-left: 2px solid $gray-light;
|
||||
border-radius: $panel-border-radius;
|
||||
background: $body-bg;
|
||||
|
||||
@if $use-gravatars {
|
||||
&:before,
|
||||
&:after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 100%;
|
||||
left: -16px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid solid outset;
|
||||
border-color: transparent;
|
||||
content: " ";
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&:after {
|
||||
margin-top: 1px;
|
||||
margin-left: 4px;
|
||||
border-width: 6px;
|
||||
border-top-color: $body-bg;
|
||||
border-right-color: $body-bg;
|
||||
}
|
||||
|
||||
&:before {
|
||||
border-width: 8px;
|
||||
border-top-color: $gray-light;
|
||||
border-right-color: $gray-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
form .wiki {
|
||||
background-color: #fffbe5;
|
||||
|
||||
.preview {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
background-color: $journal-new-value-bg;
|
||||
color: $journal-new-value-color;
|
||||
}
|
||||
}
|
||||
|
||||
.private-notes {
|
||||
@if $bubble-journal-wiki-note {
|
||||
&.has-notes .wiki {
|
||||
border-left-color: $brand-warning;
|
||||
> div {
|
||||
border-left-color: $brand-warning;
|
||||
|
||||
&:before {
|
||||
border-top-color: $brand-warning;
|
||||
border-right-color: $brand-warning;
|
||||
}
|
||||
h4:before {
|
||||
border-right-color: $brand-warning;
|
||||
}
|
||||
} @else {
|
||||
margin-left: -(3px + 3px);
|
||||
padding-left: 3px;
|
||||
border-left: 3px solid $brand-warning;
|
||||
border-radius: $border-radius-base 0 0 $border-radius-base;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -389,24 +507,66 @@ span.private {
|
||||
background: $brand-warning;
|
||||
color: $brand-text;
|
||||
font-size: $font-size-small;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
div#issue-changesets {
|
||||
#issue-changesets {
|
||||
margin-bottom: $line-height-computed;
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
width: 33%;
|
||||
width: 45%;
|
||||
margin-left: $padding-side;
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.changeset {
|
||||
padding: $table-cell-padding;
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
width: 33%;
|
||||
min-width: 28em;
|
||||
}
|
||||
|
||||
+ div.changeset {
|
||||
border-top: 1px solid $gray-lighter;
|
||||
div.changeset {
|
||||
margin-top: $line-height-computed / 2 + 2px * 2;
|
||||
border: 1px solid $issue-border;
|
||||
border-radius: $panel-border-radius;
|
||||
background-color: $issue-bg;
|
||||
font-size: $font-size-list;
|
||||
overflow: hidden;
|
||||
|
||||
&:first-of-type {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
> p {
|
||||
margin: 0;
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
color: $gray;
|
||||
@include clearfix;
|
||||
|
||||
> a {
|
||||
margin-left: .5em;
|
||||
float: right;
|
||||
font-family: $font-family-monospace;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.author a {
|
||||
color: $gray-darker;
|
||||
|
||||
&.user {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
> br {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
> .wiki {
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
border-top: 1px solid mix($body-bg, $issue-border, 50%);
|
||||
background-color: $body-bg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,11 @@
|
||||
border: 0 none;
|
||||
background: $header-bg;
|
||||
color: $header-text;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
|
||||
a {
|
||||
color: $header-text;
|
||||
}
|
||||
|
||||
a,
|
||||
button {
|
||||
@@ -112,6 +116,10 @@
|
||||
background: $component-active-bg;
|
||||
color: $component-active-color;
|
||||
font-weight: normal;
|
||||
|
||||
.ui-icon {
|
||||
background-image: url("/stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
|
||||
}
|
||||
}
|
||||
|
||||
.ui-state-active a,
|
||||
@@ -121,6 +129,10 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.ui-sortable-helper {
|
||||
@include nice-shadow(4);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Menu (e.g. autocomplete)
|
||||
@@ -129,7 +141,7 @@
|
||||
.ui-menu {
|
||||
padding: 3px;
|
||||
border-radius: $panel-border-radius;
|
||||
box-shadow: $panel-shadow;
|
||||
@include nice-shadow(2);
|
||||
}
|
||||
|
||||
.ui-menu-item {
|
||||
@@ -159,12 +171,20 @@
|
||||
&.ui-widget-content {
|
||||
padding: 3px;
|
||||
border: 0 none;
|
||||
box-shadow: $panel-shadow;
|
||||
@include nice-shadow(5);
|
||||
}
|
||||
|
||||
.ui-dialog-content {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
.ui-dialog-titlebar-close {
|
||||
right: .5em;
|
||||
}
|
||||
|
||||
input[type="button"] {
|
||||
@include button-variant($btn-link-color, $btn-link-bg, $btn-link-border);
|
||||
}
|
||||
}
|
||||
|
||||
.ui-widget-overlay {
|
||||
@@ -183,10 +203,12 @@ img.ui-datepicker-trigger {
|
||||
}
|
||||
|
||||
.ui-datepicker {
|
||||
padding: 3px;
|
||||
box-shadow: $panel-shadow;
|
||||
padding: .3em .6em .6em;
|
||||
border: 0 none;
|
||||
@include nice-shadow(3);
|
||||
|
||||
.ui-datepicker-header {
|
||||
margin: 0 -.3em;
|
||||
padding: .3em;
|
||||
}
|
||||
|
||||
@@ -221,6 +243,7 @@ img.ui-datepicker-trigger {
|
||||
}
|
||||
|
||||
.ui-datepicker-calendar {
|
||||
margin: 0;
|
||||
table-layout: fixed;
|
||||
|
||||
.ui-state-default {
|
||||
@@ -258,7 +281,8 @@ img.ui-datepicker-trigger {
|
||||
text-align: right;
|
||||
|
||||
a {
|
||||
padding: .25em .3em .25em 0;
|
||||
padding-right: .4em;
|
||||
padding-left: 0;
|
||||
border-radius: $border-radius-base;
|
||||
}
|
||||
|
||||
@@ -268,4 +292,15 @@ img.ui-datepicker-trigger {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui-datepicker-buttonpane {
|
||||
margin: .6em 0 0;
|
||||
padding: .6em 0 0;
|
||||
@include clearfix;
|
||||
|
||||
button {
|
||||
margin: 0;
|
||||
padding: $btn-padding-vertical $btn-padding-horizontal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,12 +20,32 @@
|
||||
margin-left: -6px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.box & {
|
||||
button {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.jstSpacer {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
@media (min-width: $screen-lg) {
|
||||
button {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.jstSpacer {
|
||||
margin-right: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $use-font-awesome
|
||||
{
|
||||
.jstElements {
|
||||
button[type="button"] {
|
||||
%jstb-icon {
|
||||
padding: 0;
|
||||
background: $body-bg;
|
||||
background-image: none;
|
||||
@@ -37,32 +57,119 @@
|
||||
}
|
||||
}
|
||||
|
||||
.jstb_strong:before { content: $fa-var-bold; }
|
||||
.jstb_em:before { content: $fa-var-italic; }
|
||||
.jstb_ins:before { content: $fa-var-underline; }
|
||||
.jstb_del:before { content: $fa-var-strikethrough; }
|
||||
.jstb_code:before { content: $fa-var-code; }
|
||||
.jstb_h1:before { content: $fa-var-header; }
|
||||
.jstb_h2:before { content: $fa-var-header; font-size: 11px; }
|
||||
.jstb_h3:before { content: $fa-var-header; font-size: 9px; }
|
||||
.jstb_ul:before { content: $fa-var-list-ul; }
|
||||
.jstb_ol:before { content: $fa-var-list-ol; }
|
||||
.jstb_bq:before { content: $fa-var-indent; }
|
||||
.jstb_unbq:before { content: $fa-var-outdent; }
|
||||
.jstb_pre:before { content: $fa-var-terminal; }
|
||||
.jstb_link:before { content: $fa-var-link; }
|
||||
.jstb_img:before { content: $fa-var-image; }
|
||||
.jstb_strong {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-bold; }
|
||||
}
|
||||
|
||||
.jstb_em {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-italic; }
|
||||
}
|
||||
|
||||
.jstb_ins {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-underline; }
|
||||
}
|
||||
|
||||
.jstb_del {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-strikethrough; }
|
||||
}
|
||||
|
||||
.jstb_code {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-code; }
|
||||
}
|
||||
|
||||
.jstb_h1 {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-header; }
|
||||
}
|
||||
|
||||
.jstb_h2 {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { font-size: .7857em; content: $fa-var-header; }
|
||||
}
|
||||
|
||||
.jstb_h3 {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { font-size: .6429em; content: $fa-var-header; }
|
||||
}
|
||||
|
||||
.jstb_ul {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-list-ul; }
|
||||
}
|
||||
|
||||
.jstb_ol {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-list-ol; }
|
||||
}
|
||||
|
||||
.jstb_bq {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-indent; }
|
||||
}
|
||||
|
||||
.jstb_unbq {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-outdent; }
|
||||
}
|
||||
|
||||
.jstb_pre {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-terminal; }
|
||||
}
|
||||
|
||||
.jstb_link {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-link; }
|
||||
}
|
||||
|
||||
.jstb_img {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-image; }
|
||||
}
|
||||
|
||||
.jstb_cut {
|
||||
@extend %jstb-icon;
|
||||
|
||||
&:before { content: $fa-var-scissors; }
|
||||
}
|
||||
|
||||
// For plugin https://github.com/mediatainment/redmine_codebutton
|
||||
.jstb_codehighlight {
|
||||
@extend %jstb-icon;
|
||||
color: $brand-danger;
|
||||
|
||||
&:before { content: $fa-var-code; }
|
||||
}
|
||||
|
||||
button.jstb_help {
|
||||
@extend %jstb-icon;
|
||||
color: $link-color;
|
||||
|
||||
&:hover {
|
||||
color: $link-hover-color;
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: $fa-var-question-circle;
|
||||
}
|
||||
&:before { content: $fa-var-question-circle; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,16 @@ table.list {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@if $table-list-highlight-rows {
|
||||
> tbody > tr:hover {
|
||||
background-color: $table-bg-hover;
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
padding: $table-cell-padding;
|
||||
border-bottom: 2px solid $table-border-color;
|
||||
border: 2px solid $table-border-color;
|
||||
border-width: $table-list-header-border;
|
||||
color: $gray;
|
||||
vertical-align: bottom;
|
||||
|
||||
@@ -24,13 +31,15 @@ table.list {
|
||||
|
||||
td {
|
||||
padding: $table-cell-padding;
|
||||
border-bottom: 1px solid $table-border-color;
|
||||
text-align: center;
|
||||
border: 1px solid $table-border-color;
|
||||
border-width: $table-list-item-border;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
|
||||
&.checkbox {
|
||||
width: 15px;
|
||||
padding: $table-cell-padding 0 0;
|
||||
text-align: center;
|
||||
|
||||
input {
|
||||
margin: 2px 0 0;
|
||||
@@ -38,42 +47,27 @@ table.list {
|
||||
}
|
||||
|
||||
&.id,
|
||||
&.tracker,
|
||||
&.parent,
|
||||
&.relations {
|
||||
&.relations,
|
||||
&.tracker {
|
||||
width: 2%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.id {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
&.name,
|
||||
&.description,
|
||||
&.subject,
|
||||
&.comments,
|
||||
&.roles,
|
||||
&.author,
|
||||
&.assigned_to,
|
||||
&.string {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&.estimated_hours,
|
||||
&.remaining_hours,
|
||||
&.spent_hours,
|
||||
&.story_points {
|
||||
&.story_points,
|
||||
&.int,
|
||||
&.float {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
&.tick {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
&.buttons {
|
||||
width: 15%;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
|
||||
@@ -82,9 +76,19 @@ table.list {
|
||||
}
|
||||
}
|
||||
|
||||
&.reorder {
|
||||
width: 15%;
|
||||
&.project,
|
||||
&.created_on,
|
||||
&.updated_on,
|
||||
&.start_date,
|
||||
&.due_date,
|
||||
&.is_private,
|
||||
&.reorder,
|
||||
&.bool,
|
||||
&.date {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.reorder {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
@@ -109,7 +113,9 @@ tr.project {
|
||||
|
||||
&.idnt .name span {
|
||||
padding-left: 16px;
|
||||
background: url("../images/bullet_arrow_right.png") no-repeat -5px 50%;
|
||||
@extend %image-arrow-right;
|
||||
background-repeat: no-repeat;
|
||||
background-position: -5px 50%;
|
||||
}
|
||||
|
||||
@for $i from 1 through 9 {
|
||||
@@ -130,12 +136,6 @@ tr.issue {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.autoscroll & {
|
||||
.subject > a {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
&.relations {
|
||||
text-align: left;
|
||||
white-space: normal;
|
||||
@@ -152,7 +152,7 @@ tr.issue {
|
||||
|
||||
&.idnt .subject a {
|
||||
padding-left: 16px;
|
||||
background-image: url("../images/bullet_arrow_right.png");
|
||||
@extend %image-arrow-right;
|
||||
background-repeat: no-repeat;
|
||||
|
||||
@if $color-trackers {
|
||||
@@ -167,7 +167,7 @@ tr.issue {
|
||||
.assigned_to,
|
||||
.subject {
|
||||
a {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,19 +203,18 @@ tr {
|
||||
span.expander {
|
||||
margin-left: 0;
|
||||
padding-left: 8px;
|
||||
background: url("../images/bullet_toggle_plus.png") no-repeat center center;
|
||||
@extend %image-toggle-plus;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
cursor: pointer;
|
||||
@include user-select(none);
|
||||
}
|
||||
|
||||
&.open span.expander {
|
||||
background-image: url("../images/bullet_toggle_minus.png");
|
||||
@extend %image-toggle-minus;
|
||||
}
|
||||
}
|
||||
|
||||
// /* do you */ .even {
|
||||
// }
|
||||
|
||||
td.center {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -270,7 +269,7 @@ tr.entry {
|
||||
/**
|
||||
* Priorities
|
||||
*/
|
||||
|
||||
// scss-lint:disable SpaceAfterComma
|
||||
@if $color-priorities {
|
||||
@include priority(".priority-lowest", $priority-lowest-bg, $priority-lowest-text, $priority-lowest-link);
|
||||
@include priority(".priority-default", $priority-default-bg, $priority-default-text, $priority-default-link);
|
||||
@@ -280,17 +279,94 @@ tr.entry {
|
||||
}
|
||||
|
||||
@if $color-trackers {
|
||||
@include tracker(".tracker-1", $tracker-1-bg, $tracker-1-text);
|
||||
@include tracker(".tracker-2", $tracker-2-bg, $tracker-2-text);
|
||||
@include tracker(".tracker-3", $tracker-3-bg, $tracker-3-text);
|
||||
@include tracker(".tracker-4", $tracker-4-bg, $tracker-4-text);
|
||||
@include tracker(".tracker-5", $tracker-5-bg, $tracker-5-text);
|
||||
@include tracker(".tracker-6", $tracker-6-bg, $tracker-6-text);
|
||||
@include tracker(".tracker-7", $tracker-7-bg, $tracker-7-text);
|
||||
tr.issue .id > a,
|
||||
a.issue,
|
||||
.relations > span > a.issue,
|
||||
.parent > a.issue {
|
||||
border-radius: $border-radius-small ($border-radius-small * 3) ($border-radius-small * 3) $border-radius-small;
|
||||
background-color: $tracker-default-bg;
|
||||
color: $tracker-default-text;
|
||||
|
||||
&:hover {
|
||||
background-color: darken($tracker-default-bg, 10%);
|
||||
color: $tracker-default-text;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
a.issue {
|
||||
margin-right: 1px;
|
||||
padding: $tracker-inline-padding;
|
||||
font-weight: normal;
|
||||
|
||||
&.closed {
|
||||
position: relative;
|
||||
color: mix($tracker-default-text, $tracker-default-bg, 75%);
|
||||
text-decoration: none;
|
||||
|
||||
&:after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
bottom: 0;
|
||||
left: 5px;
|
||||
height: calc(50% - 2px/2);
|
||||
border-top: 2px solid rgba($tracker-default-text, .95);
|
||||
content: "";
|
||||
@include rotate(-4deg);
|
||||
@include transition(border-color .1s);
|
||||
}
|
||||
|
||||
&:hover:after {
|
||||
border-top-color: rgba($tracker-default-text, .25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tr.issue .id > a {
|
||||
display: block;
|
||||
padding: $tracker-list-padding;
|
||||
|
||||
&:before {
|
||||
color: mix($tracker-default-text, $tracker-default-bg, 50%);
|
||||
content: "#";
|
||||
}
|
||||
}
|
||||
|
||||
@if $colored-issue {
|
||||
.issue.details a.issue,
|
||||
.issue.details .wiki a.issue {
|
||||
&,
|
||||
&:hover {
|
||||
color: $tracker-default-text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $tracker-id, $tracker-colors in $tracker-colors-map {
|
||||
@include tracker(
|
||||
".tracker-#{$tracker-id}",
|
||||
map-get($tracker-colors, background),
|
||||
map-get($tracker-colors, color)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
.odd {
|
||||
background-color: $table-bg-accent;
|
||||
@if $table-list-color-odd-rows {
|
||||
.odd {
|
||||
background-color: $table-bg-accent;
|
||||
}
|
||||
}
|
||||
|
||||
@if $table-list-color-even-rows {
|
||||
.even {
|
||||
background-color: $table-bg-accent;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -301,7 +377,7 @@ tr.entry {
|
||||
tr.group {
|
||||
> td {
|
||||
border-bottom: 1px solid $table-border-color;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: left;
|
||||
|
||||
a {
|
||||
@@ -321,12 +397,14 @@ tr.group {
|
||||
|
||||
.count {
|
||||
display: inline-block;
|
||||
min-width: 1em;
|
||||
margin: 0 5px;
|
||||
padding: 1px 4px;
|
||||
border-radius: $border-radius-small;
|
||||
background-color: $brand-primary;
|
||||
color: $brand-text;
|
||||
font-size: $font-size-small;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,6 +420,16 @@ tr.group {
|
||||
tr.time-entry {
|
||||
text-align: center;
|
||||
|
||||
td.project,
|
||||
td.spent_on,
|
||||
td.activity {
|
||||
width: 6em;
|
||||
}
|
||||
|
||||
td.user {
|
||||
width: 12em;
|
||||
}
|
||||
|
||||
td.issue,
|
||||
td.comments {
|
||||
text-align: left;
|
||||
@@ -349,9 +437,16 @@ tr.time-entry {
|
||||
}
|
||||
|
||||
td.hours {
|
||||
padding-right: .5em;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
.time-entries,
|
||||
tr.time-entry {
|
||||
td.hours {
|
||||
width: 1%;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
|
||||
.hours-dec {
|
||||
font-size: .9em;
|
||||
@@ -359,6 +454,19 @@ tr.time-entry {
|
||||
}
|
||||
}
|
||||
|
||||
.mypage-box {
|
||||
td.hours {
|
||||
font-weight: $font-weight-bold;
|
||||
|
||||
em {
|
||||
font-style: normal;
|
||||
}
|
||||
}
|
||||
|
||||
tr.time-entry td.hours {
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wiki page history entry
|
||||
@@ -437,7 +545,7 @@ table.plugins {
|
||||
span.name {
|
||||
margin-bottom: .5em;
|
||||
font-size: $font-size-large;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.description,
|
||||
@@ -467,3 +575,19 @@ table.files {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Admin lists
|
||||
*/
|
||||
|
||||
.controller-enumerations {
|
||||
td.name {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
td.tick,
|
||||
td.reorder {
|
||||
width: 15%;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
.next,
|
||||
.page {
|
||||
display: inline-block;
|
||||
padding: $padding-small-vertical $padding-small-horizontal;
|
||||
padding: $pagination-padding-vertical $pagination-padding-horizontal;
|
||||
border: 1px solid $pagination-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $pagination-bg;
|
||||
@@ -24,13 +24,19 @@
|
||||
.page.current {
|
||||
border-color: $pagination-active-border;
|
||||
background-color: $pagination-active-bg;
|
||||
cursor: default;
|
||||
color: $pagination-active-color;
|
||||
cursor: default;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.items,
|
||||
.per-page {
|
||||
margin-left: $padding-small-vertical;
|
||||
display: inline-block;
|
||||
margin: ($pagination-padding-vertical + 1px) 0 ($pagination-padding-vertical + 1px) $pagination-padding-vertical;
|
||||
}
|
||||
}
|
||||
|
||||
p.pagination {
|
||||
margin-bottom: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
//
|
||||
// Redmine Backlogs
|
||||
// https://github.com/HolonGlobe/redmine_backlogs
|
||||
// Forked from: https://github.com/backlogs/redmine_backlogs
|
||||
// --------------------------------------------------
|
||||
|
||||
#backlogs_view_issues_sidebar {
|
||||
@@ -27,11 +29,16 @@
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.burndown_chart {
|
||||
max-width: $sidebar-width-computed;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Redmine Time Tracker
|
||||
// https://github.com/fernandokosh/redmine_time_tracker
|
||||
// --------------------------------------------------
|
||||
|
||||
@if $use-font-awesome {
|
||||
@@ -70,3 +77,151 @@
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Redmine CRM People
|
||||
// http://www.redminecrm.com/projects/people/
|
||||
// --------------------------------------------------
|
||||
|
||||
#people_list {
|
||||
table.index {
|
||||
margin-bottom: $line-height-computed;
|
||||
}
|
||||
}
|
||||
|
||||
#content {
|
||||
.person.details {
|
||||
margin-bottom: $line-height-computed;
|
||||
padding: $issue-padding;
|
||||
border: 1px solid $issue-border;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $issue-bg;
|
||||
|
||||
.avatar {
|
||||
width: 64px;
|
||||
max-width: 64px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.name,
|
||||
.subject_info {
|
||||
padding: 0 0 0 $issue-padding;
|
||||
}
|
||||
|
||||
.name {
|
||||
> h1 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
> p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.subject_info {
|
||||
border-left: 1px solid $issue-border;
|
||||
|
||||
> ul {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@if $use-font-awesome {
|
||||
.icon {
|
||||
background-image: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.department.issue.details {
|
||||
> p {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
> .author {
|
||||
margin-bottom: 0;
|
||||
clear: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
.person.attributes {
|
||||
font-size: $font-size-list;
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: $table-condensed-cell-padding;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.icon {
|
||||
padding-left: $table-condensed-cell-padding + 20px;
|
||||
background-position: $table-condensed-cell-padding $table-condensed-cell-padding;
|
||||
}
|
||||
|
||||
@if $use-font-awesome {
|
||||
.icon {
|
||||
background-image: none;
|
||||
|
||||
> a {
|
||||
@extend %fa-icon;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.email {
|
||||
td a {
|
||||
display: block;
|
||||
max-width: floor($sidebar-width / 3);
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
|
||||
&:hover {
|
||||
position: absolute;
|
||||
max-width: 100%;
|
||||
margin: -$table-condensed-cell-padding;
|
||||
padding: $table-condensed-cell-padding;
|
||||
background: $body-bg;
|
||||
box-shadow: $panel-shadow;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.person_data {
|
||||
td.avatar,
|
||||
td.name {
|
||||
padding: 0 0 $table-cell-padding;
|
||||
}
|
||||
|
||||
td.avatar {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
td.name {
|
||||
h4 {
|
||||
margin: 0;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Redmine codebutton
|
||||
// https://github.com/mediatainment/redmine_codebutton
|
||||
// --------------------------------------------------
|
||||
|
||||
#toolbar-code-options {
|
||||
select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.buttons {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
}
|
||||
|
||||
#content {
|
||||
// scss-lint:disable ImportantRule
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
@@ -9,6 +9,12 @@ table.progress {
|
||||
border: 1px solid rgba(#000, .1);
|
||||
empty-cells: show;
|
||||
|
||||
td.done_ratio & {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
float: none;
|
||||
}
|
||||
|
||||
td {
|
||||
height: 12px;
|
||||
padding: 0;
|
||||
@@ -26,6 +32,10 @@ table.progress {
|
||||
background-color: $progress-bg;
|
||||
}
|
||||
}
|
||||
|
||||
.issue & td {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
|
||||
@@ -2,21 +2,19 @@
|
||||
// Activity and search results list
|
||||
// --------------------------------------------------
|
||||
|
||||
|
||||
#search-results,
|
||||
div#activity dl {
|
||||
#activity dl,
|
||||
#search-results {
|
||||
margin-left: $padding-side;
|
||||
}
|
||||
|
||||
div#activity,
|
||||
#activity,
|
||||
#search-results {
|
||||
dd {
|
||||
margin-bottom: $line-height-computed;
|
||||
padding-left: $padding-side;
|
||||
padding-top: .1em;
|
||||
}
|
||||
|
||||
dt {
|
||||
margin-bottom: 2px;
|
||||
padding-left: $padding-side;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 center;
|
||||
@@ -33,8 +31,29 @@ div#activity,
|
||||
}
|
||||
}
|
||||
|
||||
div#activity {
|
||||
#activity {
|
||||
$activity-avatar: 24px;
|
||||
$activity-avatar-space: 5px;
|
||||
$activity-indent: 20px;
|
||||
|
||||
@if $use-gravatars {
|
||||
$activity-indent: $activity-indent + $activity-avatar + $activity-avatar-space;
|
||||
}
|
||||
|
||||
h3,
|
||||
h4 {
|
||||
margin: 0 0 $line-height-computed;
|
||||
padding-bottom: .2em;
|
||||
border-bottom: 1px dotted $gray-light;
|
||||
font-size: $font-size-h4;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
dt {
|
||||
&.grouped {
|
||||
margin-left: $activity-indent;
|
||||
}
|
||||
|
||||
&.me .time {
|
||||
border-bottom: 1px solid $gray-lighter;
|
||||
}
|
||||
@@ -42,19 +61,27 @@ div#activity {
|
||||
.time {
|
||||
color: $gray;
|
||||
}
|
||||
|
||||
@if $use-gravatars {
|
||||
.gravatar {
|
||||
margin-top: -2px;
|
||||
margin-right: $activity-avatar-space;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dd {
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
overflow: hidden;
|
||||
|
||||
dt.grouped,
|
||||
dd.grouped {
|
||||
margin-left: $padding-side;
|
||||
&.grouped {
|
||||
margin-left: $activity-indent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div#search-results-counts {
|
||||
#search-results-counts {
|
||||
float: right;
|
||||
|
||||
ul {
|
||||
|
||||
@@ -7,27 +7,52 @@
|
||||
|
||||
position: relative;
|
||||
margin-bottom: $line-height-computed;
|
||||
padding-right: $tabs-buttons-width;
|
||||
overflow: hidden;
|
||||
|
||||
@if not $flexbox-layout {
|
||||
padding-right: $tabs-buttons-width;
|
||||
}
|
||||
|
||||
> ul {
|
||||
width: 2000px; // stop it from breaking
|
||||
// scss-lint:disable VendorPrefix
|
||||
margin: 0;
|
||||
padding-left: 0;
|
||||
border-bottom: 1px solid $tab-border;
|
||||
list-style: none;
|
||||
@extend %clearfix;
|
||||
|
||||
@if $flexbox-layout {
|
||||
display: -ms-flexbox;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
height: $line-height-computed + $tab-padding-vertical * 2 + 1px;
|
||||
-webkit-flex-wrap: nowrap;
|
||||
-ms-flex-wrap: nowrap;
|
||||
flex-wrap: nowrap;
|
||||
} @else {
|
||||
width: 2000px;
|
||||
@extend %clearfix;
|
||||
}
|
||||
|
||||
> li {
|
||||
margin-bottom: -1px;
|
||||
float: left;
|
||||
|
||||
@if $flexbox-layout {
|
||||
-webkit-flex: 0 1 auto;
|
||||
-ms-flex: 0 1 auto;
|
||||
flex: 0 1 auto;
|
||||
} @else {
|
||||
float: left;
|
||||
}
|
||||
|
||||
> a {
|
||||
display: block;
|
||||
min-width: 2em;
|
||||
margin-right: 2px;
|
||||
padding: $tab-padding-vertical $tab-padding-horizontal;
|
||||
border: 1px solid transparent;
|
||||
border-radius: $border-radius-base $border-radius-base 0 0;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
@@ -51,11 +76,12 @@
|
||||
right: 0;
|
||||
width: $tabs-buttons-width;
|
||||
padding-left: 5px;
|
||||
border-bottom: 1px solid $tab-border;
|
||||
background-color: $body-bg;
|
||||
|
||||
> button {
|
||||
width: 50%;
|
||||
height: $tab-padding-vertical * 2 + $line-height-computed;
|
||||
height: $tab-padding-vertical * 2 + $line-height-computed + 1px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
float: left;
|
||||
@@ -78,11 +104,11 @@
|
||||
}
|
||||
|
||||
.tab-left {
|
||||
background-image: url("../images/bullet_arrow_left.png");
|
||||
@extend %image-arrow-left;
|
||||
}
|
||||
|
||||
.tab-right {
|
||||
background-image: url("../images/bullet_arrow_right.png");
|
||||
@extend %image-arrow-right;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -110,7 +136,7 @@
|
||||
margin-bottom: $line-height-computed;
|
||||
|
||||
legend {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
label {
|
||||
|
||||
@@ -3,12 +3,96 @@
|
||||
// --------------------------------------------------
|
||||
|
||||
#top-menu {
|
||||
position: relative;
|
||||
padding: $padding-small-vertical $padding-side;
|
||||
background: $top-menu-bg;
|
||||
color: $top-menu-text;
|
||||
font-size: $font-size-small;
|
||||
@extend %clearfix;
|
||||
|
||||
@if $top-menu-collapse {
|
||||
$toggler-position-v: $padding-small-vertical + 1px;
|
||||
$toggler-position-h: 1px;
|
||||
|
||||
max-height: floor($font-size-base * $font-size-small-unitless * $line-height-base) + $padding-small-vertical;
|
||||
padding-bottom: 0;
|
||||
overflow: hidden;
|
||||
|
||||
&.expanded {
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
margin-bottom: $padding-small-vertical;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.top-menu-toggler {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: $toggler-position-v;
|
||||
@if $sidebar-position == "left" {
|
||||
left: $toggler-position-h;
|
||||
} @else {
|
||||
right: $toggler-position-h;
|
||||
}
|
||||
@include user-select(none);
|
||||
|
||||
@if $use-font-awesome {
|
||||
font-size: 14px;
|
||||
|
||||
&:before {
|
||||
content: $fa-var-caret-square-o-down;
|
||||
}
|
||||
} @else {
|
||||
@extend %image-arrow-down-white;
|
||||
}
|
||||
|
||||
@if $use-font-awesome {
|
||||
@extend %fa-icon;
|
||||
color: mix($top-menu-link, $top-menu-bg, 33%);
|
||||
line-height: 1;
|
||||
|
||||
&:before {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
color: mix($top-menu-link-hover, $top-menu-bg, 50%);
|
||||
}
|
||||
} @else {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
border-radius: $border-radius-base;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
background-color: lighten($top-menu-bg, 15%);
|
||||
}
|
||||
}
|
||||
|
||||
&.expanded {
|
||||
@if $use-font-awesome {
|
||||
&:before {
|
||||
content: $fa-var-caret-square-o-up;
|
||||
}
|
||||
} @else {
|
||||
@extend %image-arrow-up-white;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $top-menu-collapse-breakpoint) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -23,7 +107,7 @@
|
||||
|
||||
a {
|
||||
color: $top-menu-link;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
|
||||
&:hover {
|
||||
color: $top-menu-link-hover;
|
||||
@@ -32,6 +116,7 @@
|
||||
}
|
||||
|
||||
#loggedas {
|
||||
margin-left: 1em;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
@@ -54,9 +139,21 @@
|
||||
position: relative;
|
||||
background-color: $header-bg;
|
||||
color: $header-text;
|
||||
@extend %clearfix;
|
||||
|
||||
> h1 {
|
||||
padding: 10px $padding-side;
|
||||
padding: $header-padding-vertical $header-padding-horizontal;
|
||||
|
||||
@if $use-logo {
|
||||
padding-left: $logo-image-width + $logo-position-horizontal + $logo-space;
|
||||
background-image: url("../images/logo/logo.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: $logo-position-horizontal $logo-position-vertical;
|
||||
|
||||
@if $use-retina-logo {
|
||||
@include img-retina("../images/logo/logo@2x.png", $logo-image-width, $logo-image-height);
|
||||
}
|
||||
}
|
||||
|
||||
> .root {
|
||||
color: $header-root;
|
||||
@@ -64,7 +161,7 @@
|
||||
}
|
||||
|
||||
> .ancestor {
|
||||
font-size: 80%;
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,8 +171,8 @@
|
||||
}
|
||||
|
||||
#quick-search {
|
||||
margin-top: ($header-title-line-height + $padding-large-vertical * 2 - $input-height-base - 1px) / 2;
|
||||
margin-right: $padding-side;
|
||||
margin-top: floor(($header-title-line-height + $header-padding-vertical * 2 - $input-height-base) / 2) - 1px;
|
||||
margin-right: $header-padding-horizontal;
|
||||
float: right;
|
||||
color: $header-text;
|
||||
|
||||
@@ -103,17 +200,103 @@
|
||||
}
|
||||
}
|
||||
|
||||
option {
|
||||
background-color: $input-bg;
|
||||
color: $input-color;
|
||||
|
||||
&[disabled] {
|
||||
color: $gray-lighter;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
#main-menu {
|
||||
border-bottom: 1px solid $main-menu-border;
|
||||
background-color: $main-menu-bg;
|
||||
box-shadow: inset 0 -1px $main-menu-border;
|
||||
|
||||
@media screen and (max-width: $screen-sm-max) {
|
||||
font-size: $font-size-small-px;
|
||||
@if $main-menu-collapse {
|
||||
$toggler-position-v: $main-menu-padding-vertical + 3px;
|
||||
$toggler-position-h: 1px;
|
||||
|
||||
position: relative;
|
||||
max-height: $line-height-computed + $main-menu-padding-vertical * 2;
|
||||
overflow: hidden;
|
||||
|
||||
&.expanded {
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
.main-menu-toggler {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: $toggler-position-v;
|
||||
@if $sidebar-position == "left" {
|
||||
left: $toggler-position-h;
|
||||
} @else {
|
||||
right: $toggler-position-h;
|
||||
}
|
||||
@include user-select(none);
|
||||
|
||||
@if $use-font-awesome {
|
||||
font-size: 14px;
|
||||
|
||||
&:before {
|
||||
content: $fa-var-caret-square-o-down;
|
||||
}
|
||||
} @else {
|
||||
@extend %image-arrow-down;
|
||||
}
|
||||
|
||||
@if $use-font-awesome {
|
||||
@extend %fa-icon;
|
||||
color: mix($main-menu-link, $main-menu-bg, 33%);
|
||||
line-height: 1;
|
||||
|
||||
&:before {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
color: mix($main-menu-link, $main-menu-bg, 50%);
|
||||
}
|
||||
} @else {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
border-radius: $border-radius-base;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
background-color: darken($main-menu-bg, 15%);
|
||||
}
|
||||
}
|
||||
|
||||
&.expanded {
|
||||
@if $use-font-awesome {
|
||||
&:before {
|
||||
content: $fa-var-caret-square-o-up;
|
||||
}
|
||||
} @else {
|
||||
@extend %image-arrow-up;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $main-menu-collapse-breakpoint) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
} @else {
|
||||
@media screen and (max-width: $screen-sm-max) {
|
||||
font-size: $font-size-small-px;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
@@ -125,17 +308,22 @@
|
||||
|
||||
> li {
|
||||
margin-right: .5em;
|
||||
margin-bottom: -1px;
|
||||
float: left;
|
||||
|
||||
> a {
|
||||
display: block;
|
||||
padding: $main-menu-padding-vertical 0;
|
||||
white-space: nowrap;
|
||||
@include transition(box-shadow .2s);
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
padding-right: $main-menu-padding-horizontal;
|
||||
padding-left: $main-menu-padding-horizontal;
|
||||
@if $main-menu-collapse {
|
||||
padding: $main-menu-padding-vertical $main-menu-padding-horizontal;
|
||||
} @else {
|
||||
padding: $main-menu-padding-vertical 0;
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
padding-right: $main-menu-padding-horizontal;
|
||||
padding-left: $main-menu-padding-horizontal;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-lg-min) {
|
||||
@@ -154,7 +342,7 @@
|
||||
padding-bottom: $main-menu-padding-vertical - $main-menu-shadow-width;
|
||||
border-bottom: 3px solid $main-menu-shadow-active;
|
||||
color: $main-menu-link-active;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,37 @@
|
||||
.wiki-page {
|
||||
.wiki.wiki-page {
|
||||
margin-bottom: $line-height-computed;
|
||||
font-size: $wiki-font-size;
|
||||
|
||||
@if $wiki-page-more-vertical-space {
|
||||
/**
|
||||
* Anchors will make headers more separated,
|
||||
* and it will look better when you open page with hash in URL
|
||||
*/
|
||||
a[name]:empty {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add some space between list items
|
||||
*/
|
||||
ul,
|
||||
ol {
|
||||
li {
|
||||
margin-top: .25em;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin-top: .25em;
|
||||
margin-bottom: .25em;
|
||||
|
||||
li {
|
||||
margin-top: .125em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.controller-wiki .wiki > .preview {
|
||||
@@ -11,35 +42,40 @@ div.wiki {
|
||||
color: $wiki-text;
|
||||
line-height: $wiki-line-height;
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
//scss-lint:disable SingleLinePerSelector
|
||||
h1, .h1,
|
||||
h2, .h2,
|
||||
h3, .h3,
|
||||
h4, .h4,
|
||||
h5, .h5,
|
||||
h6, .h6 {
|
||||
margin-top: 1em;
|
||||
margin-bottom: .5em;
|
||||
margin-bottom: $wiki-font-size;
|
||||
font-weight: $headings-font-weight;
|
||||
line-height: $headings-line-height;
|
||||
}
|
||||
|
||||
h1 { font-size: $font-size-h1; }
|
||||
h2 { font-size: $font-size-h2; }
|
||||
h3 { font-size: $font-size-h3; }
|
||||
h4 { font-size: $font-size-h4; }
|
||||
h5 { font-size: $font-size-h5; }
|
||||
h6 { font-size: $font-size-h6; }
|
||||
h1, .h1 { font-size: $font-size-h1; line-height: 1.2; }
|
||||
h2, .h2 { font-size: $font-size-h2; line-height: 1.225; }
|
||||
h3, .h3 { font-size: $font-size-h3; line-height: 1.43; }
|
||||
h4, .h4 { font-size: $font-size-h4; }
|
||||
h5, .h5 { font-size: $font-size-h5; }
|
||||
h6, .h6 { font-size: $font-size-h6; }
|
||||
|
||||
h1,
|
||||
h2 {
|
||||
h1, .h1,
|
||||
h2, .h2 {
|
||||
padding-bottom: .3em;
|
||||
border-bottom: 1px solid $gray-lighter;
|
||||
}
|
||||
|
||||
h6 {
|
||||
h6, .h6 {
|
||||
color: $gray;
|
||||
}
|
||||
|
||||
.text-normal {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
> a:first-child {
|
||||
+ h1,
|
||||
+ h2,
|
||||
@@ -51,10 +87,37 @@ div.wiki {
|
||||
}
|
||||
}
|
||||
|
||||
> a:target {
|
||||
+ h2,
|
||||
+ h3,
|
||||
+ h4,
|
||||
+ h5,
|
||||
+ h6 {
|
||||
&:before {
|
||||
display: inline-block;
|
||||
width: .7em;
|
||||
margin-left: -.7em;
|
||||
color: $headings-anchor-color-active;
|
||||
font-weight: normal;
|
||||
content: "#";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> *:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
>:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
>:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.contextual {
|
||||
a {
|
||||
opacity: .4;
|
||||
@@ -65,16 +128,25 @@ div.wiki {
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
// scss-lint:disable DuplicateProperty
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol {
|
||||
padding-left: 2em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
padding-left: 1.5em;
|
||||
|
||||
ul,
|
||||
ol {
|
||||
list-style-type: lower-roman;
|
||||
|
||||
ol {
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,22 +188,19 @@ div.wiki {
|
||||
}
|
||||
|
||||
code {
|
||||
// scss-lint:disable DuplicateProperty
|
||||
padding: .2em .33em;
|
||||
border-radius: $border-radius-base;
|
||||
background-color: #f5f5f5; // IE8 fallback
|
||||
background-color: rgba(#000, .04);
|
||||
font-size: $font-size-small;
|
||||
}
|
||||
|
||||
pre {
|
||||
// scss-lint:disable DuplicateProperty
|
||||
width: auto;
|
||||
margin-bottom: 1.15em;
|
||||
padding: 4px 8px;
|
||||
border: 1px solid #e7e7e7;
|
||||
border-radius: $border-radius-base;
|
||||
border-color: rgba(#000, .068);
|
||||
background-color: #f7f7f7; // IE8 fallback
|
||||
background-color: rgba(#000, .03);
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
@@ -145,6 +214,11 @@ div.wiki {
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.toc {
|
||||
margin-bottom: $line-height-computed;
|
||||
margin-left: 0;
|
||||
@@ -212,10 +286,19 @@ div.wiki {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
vertical-align: middle;
|
||||
.toc-active-prev + .toc {
|
||||
padding-left: $padding-large-horizontal;
|
||||
border-left: 4px solid $toc-active-border;
|
||||
|
||||
a {
|
||||
color: $toc-active-link;
|
||||
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: $toc-active-link-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -227,11 +310,12 @@ h4,
|
||||
h5,
|
||||
h6 {
|
||||
.wiki-anchor {
|
||||
// scss-lint:disable ImportantRule
|
||||
display: none;
|
||||
position: relative;
|
||||
top: -(1em - $font-size-small);
|
||||
margin-left: 5px;
|
||||
color: $gray-lighter !important;
|
||||
color: $headings-anchor-color !important;
|
||||
font-size: $font-size-small;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
@@ -241,6 +325,12 @@ h6 {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
display: inline-block;
|
||||
max-width: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
p.footnote {
|
||||
@@ -277,17 +367,111 @@ p.footnote {
|
||||
border-top: 1px solid $gray-lighter;
|
||||
|
||||
> p {
|
||||
margin-bottom: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#add_attachment_form {
|
||||
padding-top: $line-height-computed;
|
||||
clear: left;
|
||||
}
|
||||
}
|
||||
|
||||
.controller-wiki.action-show {
|
||||
.other-formats {
|
||||
margin-top: 0;
|
||||
float: right;
|
||||
|
||||
//
|
||||
// Custom classes for Bootstrap-like features
|
||||
// --------------------------------------------------
|
||||
|
||||
/**
|
||||
* Pager
|
||||
* see: http://getbootstrap.com/components/#pagination-pager
|
||||
*/
|
||||
.wiki-pager {
|
||||
> a {
|
||||
display: inline-block;
|
||||
padding: $padding-base-vertical $padding-base-horizontal;
|
||||
border: 1px solid $btn-default-border;
|
||||
border-radius: ceil($font-size-base + ($padding-base-vertical + 1px) * 2) / 2;
|
||||
background-color: $body-bg;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
background-color: $btn-default-bg;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.wiki-pager--aligned {
|
||||
overflow: hidden;
|
||||
|
||||
> a:first-child {
|
||||
float: left;
|
||||
}
|
||||
|
||||
> a:last-child {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Typographic helper classes
|
||||
*/
|
||||
|
||||
// Lead body copy
|
||||
// see: http://getbootstrap.com/css/#lead-body-copy
|
||||
.lead {
|
||||
margin-bottom: $line-height-computed;
|
||||
font-size: floor(($font-size-base * 1.15));
|
||||
font-weight: 300;
|
||||
line-height: 1.4;
|
||||
|
||||
@media (min-width: $screen-sm-min) {
|
||||
font-size: ($font-size-base * 1.5);
|
||||
}
|
||||
}
|
||||
|
||||
// Alignment
|
||||
// see: http://getbootstrap.com/css/#type-alignment
|
||||
.text-left { text-align: left; }
|
||||
.text-right { text-align: right; }
|
||||
.text-center { text-align: center; }
|
||||
.text-justify { text-align: justify; }
|
||||
.text-nowrap { white-space: nowrap; }
|
||||
|
||||
// Transformation
|
||||
// see: http://getbootstrap.com/css/#type-transformation
|
||||
.text-lowercase { text-transform: lowercase; }
|
||||
.text-uppercase { text-transform: uppercase; }
|
||||
.text-capitalize { text-transform: capitalize; }
|
||||
|
||||
/**
|
||||
* Other helper classes
|
||||
* see: http://getbootstrap.com/css/#helper-classes
|
||||
*/
|
||||
|
||||
.text-muted { color: $gray-light; }
|
||||
.text-primary { color: $brand-primary; }
|
||||
.text-success { color: $brand-success; }
|
||||
.text-info { color: $brand-info; }
|
||||
.text-warning { color: $brand-warning; }
|
||||
.text-danger { color: $brand-danger; }
|
||||
|
||||
.bg-primary { background-color: $brand-primary; color: $brand-text; }
|
||||
.bg-success { background-color: $state-success; }
|
||||
.bg-info { background-color: $state-info; }
|
||||
.bg-warning { background-color: $state-warning; }
|
||||
.bg-danger { background-color: $state-danger; }
|
||||
|
||||
p {
|
||||
&.bg-primary,
|
||||
&.bg-success,
|
||||
&.bg-info,
|
||||
&.bg-warning,
|
||||
&.bg-danger {
|
||||
padding: $panel-body-padding;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,6 @@
|
||||
@if $enable-sidebar-toggler {
|
||||
$toggler-position-v: 1px;
|
||||
$toggler-position-h: 1px;
|
||||
$arrow-right: "../images/bullet_arrow_right.png";
|
||||
$arrow-left: "../images/bullet_arrow_left.png";
|
||||
|
||||
@if $use-font-awesome {
|
||||
$arrow-right: $fa-var-caret-square-o-right;
|
||||
$arrow-left: $fa-var-caret-square-o-left;
|
||||
}
|
||||
|
||||
#main {
|
||||
position: relative;
|
||||
@@ -16,8 +9,10 @@
|
||||
#sidebar {
|
||||
@if $fixed-layout {
|
||||
opacity: 1;
|
||||
will-change: margin, opacity;
|
||||
@include transition(margin .5s, opacity .5s);
|
||||
} @else {
|
||||
will-change: margin;
|
||||
@include transition(margin .5s);
|
||||
}
|
||||
|
||||
@@ -77,20 +72,20 @@
|
||||
|
||||
@if $use-font-awesome {
|
||||
&:before {
|
||||
content: $arrow-left;
|
||||
content: $fa-var-caret-square-o-left;
|
||||
}
|
||||
} @else {
|
||||
background-image: url($arrow-left);
|
||||
@extend %image-arrow-left;
|
||||
}
|
||||
} @else {
|
||||
right: $toggler-position-h;
|
||||
|
||||
@if $use-font-awesome {
|
||||
&:before {
|
||||
content: $arrow-right;
|
||||
content: $fa-var-caret-square-o-right;
|
||||
}
|
||||
} @else {
|
||||
background-image: url($arrow-right);
|
||||
@extend %image-arrow-right;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,18 +93,18 @@
|
||||
@if $sidebar-position == "left" {
|
||||
@if $use-font-awesome {
|
||||
&:before {
|
||||
content: $arrow-right;
|
||||
content: $fa-var-caret-square-o-right;
|
||||
}
|
||||
} @else {
|
||||
background-image: url($arrow-right);
|
||||
@extend %image-arrow-right;
|
||||
}
|
||||
} @else {
|
||||
@if $use-font-awesome {
|
||||
&:before {
|
||||
content: $arrow-left;
|
||||
content: $fa-var-caret-square-o-left;
|
||||
}
|
||||
} @else {
|
||||
background-image: url($arrow-left);
|
||||
@extend %image-arrow-left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ abbr[title] {
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -406,7 +406,7 @@ textarea {
|
||||
//
|
||||
|
||||
optgroup {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
// Tables
|
||||
|
||||
2
src/sass/lib/font-awesome/_mixins.scss
vendored
@@ -1,5 +1,5 @@
|
||||
// Mixins
|
||||
// scss-lint:disable VendorPrefixes
|
||||
// scss-lint:disable VendorPrefix
|
||||
// --------------------------
|
||||
|
||||
@mixin fa-icon() {
|
||||
|
||||
@@ -7,33 +7,52 @@
|
||||
}
|
||||
|
||||
@mixin button-variant($color, $bg, $border) {
|
||||
$focus-bg: darken($bg, 8%);
|
||||
$focus-border: darken($border, 8%);
|
||||
$active-shadow: inset 0 1px 3px rgba(#000, .3);
|
||||
$correction: 1;
|
||||
@if hue($bg) > 120 and hue($bg) < 160 or lightness($bg) > 90 {
|
||||
$correction: .5;
|
||||
}
|
||||
$normal-shadow: darken($border, 12% * $correction);
|
||||
$focus-bg: darken($bg, 12% * $correction);
|
||||
$focus-border: darken($border, 12% * $correction);
|
||||
$focus-shadow: darken($focus-border, 12% * $correction);
|
||||
$active-bg: darken($bg, 12% * $correction);
|
||||
$active-border: darken($border, 15% * $correction);
|
||||
$active-shadow: inset 0 3px 4px -2px $active-border;
|
||||
|
||||
color: $color;
|
||||
border-color: $border;
|
||||
background-color: $bg;
|
||||
box-shadow: 0 1px 0 $border;
|
||||
|
||||
@if lightness($bg) > 90 {
|
||||
@if lightness($bg) > 98 {
|
||||
$focus-bg: darken($bg, 5%);
|
||||
$focus-border: darken($border, 5%);
|
||||
$active-shadow: inset 0 1px 2px rgba(#000, .1);
|
||||
$normal-shadow: none;
|
||||
$focus-shadow: none;
|
||||
}
|
||||
|
||||
background-color: $bg;
|
||||
color: $color;
|
||||
@if $normal-shadow == "none" {
|
||||
border-color: $border;
|
||||
box-shadow: none;
|
||||
} @else {
|
||||
border-color: $border $border $normal-shadow;
|
||||
box-shadow: 0 1px 0 $normal-shadow;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
border-color: $focus-border;
|
||||
background-color: $focus-bg;
|
||||
color: $color;
|
||||
box-shadow: 0 1px 0 $focus-border;
|
||||
@if $focus-shadow == "none" {
|
||||
border-color: $focus-border;
|
||||
box-shadow: none;
|
||||
} @else {
|
||||
border-color: $focus-border $focus-border $focus-shadow;
|
||||
box-shadow: 0 1px 0 $focus-shadow;
|
||||
}
|
||||
}
|
||||
|
||||
&:active {
|
||||
border-color: $border;
|
||||
background-color: $bg;
|
||||
@include translate(0, 1px);
|
||||
border-color: $active-border;
|
||||
background-color: $active-bg;
|
||||
box-shadow: $active-shadow;
|
||||
@include translate(0, 1px);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// Gradients
|
||||
// scss-lint:disable VendorPrefixes
|
||||
// scss-lint:disable VendorPrefix
|
||||
|
||||
|
||||
// Horizontal gradient, from left to right
|
||||
|
||||
15
src/sass/mixins/_image.scss
Normal file
@@ -0,0 +1,15 @@
|
||||
// Retina image
|
||||
//
|
||||
|
||||
@mixin img-retina($file-2x, $width-1x, $height-1x) {
|
||||
@media
|
||||
only screen and (-webkit-min-device-pixel-ratio: 2),
|
||||
only screen and (min--moz-device-pixel-ratio: 2),
|
||||
only screen and (-o-min-device-pixel-ratio: 2/1),
|
||||
only screen and (min-device-pixel-ratio: 2),
|
||||
only screen and (min-resolution: 192dpi),
|
||||
only screen and (min-resolution: 2dppx) {
|
||||
background-image: url("#{$file-2x}");
|
||||
background-size: $width-1x $height-1x;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,31 @@
|
||||
// Priority highlight
|
||||
|
||||
@mixin priority($parent, $background, $color, $link) {
|
||||
@if lightness($background) < 85% {
|
||||
$background: lighten($background, 6%);
|
||||
}
|
||||
|
||||
$border-color: darken(desaturate($background, 30%), 13.5%);
|
||||
|
||||
tr#{$parent} {
|
||||
background: $background;
|
||||
color: $color;
|
||||
|
||||
&.odd {
|
||||
background: darken($background, 3%);
|
||||
@if ".priority-default" == $parent {
|
||||
color: $color;
|
||||
} @else {
|
||||
color: darken($color, 10%);
|
||||
}
|
||||
|
||||
@if $table-list-color-odd-rows {
|
||||
&.odd {
|
||||
background: darken($background, $table-accent-factor * 100%);
|
||||
}
|
||||
}
|
||||
|
||||
@if $table-list-color-even-rows {
|
||||
&.even {
|
||||
background: darken($background, $table-accent-factor * 100%);
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
@@ -24,6 +41,24 @@
|
||||
}
|
||||
}
|
||||
|
||||
@if $table-list-highlight-rows {
|
||||
table.list > tbody > tr#{$parent}:hover {
|
||||
background: darken($background, $table-hover-factor * 100%);
|
||||
}
|
||||
|
||||
@if $table-list-color-odd-rows {
|
||||
&.odd {
|
||||
background: darken($background, ($table-accent-factor + $table-hover-factor) * 100%);
|
||||
}
|
||||
}
|
||||
|
||||
@if $table-list-color-even-rows {
|
||||
&.even {
|
||||
background: darken($background, ($table-accent-factor + $table-hover-factor) * 100%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $colored-issue {
|
||||
.issue.details#{$parent} {
|
||||
color: $color;
|
||||
@@ -32,11 +67,7 @@
|
||||
$border-color: $issue-border;
|
||||
background: $issue-bg;
|
||||
} @else {
|
||||
@if lightness($background) < 85% {
|
||||
background: lighten($background, 6%);
|
||||
} @else {
|
||||
background: $background;
|
||||
}
|
||||
background: $background;
|
||||
}
|
||||
|
||||
&,
|
||||
@@ -56,9 +87,11 @@
|
||||
color: mix($color, $gray-light, 25%);
|
||||
}
|
||||
|
||||
.wiki {
|
||||
> .description > .wiki {
|
||||
border-top-color: $border-color;
|
||||
}
|
||||
|
||||
.wiki {
|
||||
a {
|
||||
color: $link-color;
|
||||
text-decoration: none;
|
||||
@@ -77,7 +110,12 @@
|
||||
|
||||
> .attachments {
|
||||
border-top-color: lighten($border-color, 5%);
|
||||
background-color: lighten($background, 5%);
|
||||
|
||||
@if ".priority-default" == $parent {
|
||||
background-color: lighten($issue-bg, 1.5%);
|
||||
} @else {
|
||||
background-color: lighten($background, 5%);
|
||||
}
|
||||
|
||||
span.author {
|
||||
color: mix($color, $gray, 25%);
|
||||
@@ -99,34 +137,36 @@
|
||||
a#{$parent},
|
||||
.relations > span > a#{$parent},
|
||||
.parent > a#{$parent} {
|
||||
border-radius: $border-radius-small ($border-radius-small * 3) ($border-radius-small * 3) $border-radius-small;
|
||||
background-color: $background;
|
||||
color: $color;
|
||||
|
||||
&:hover {
|
||||
background-color: darken($background, 10%);
|
||||
@if hue($background) > 15deg and hue($background) < 40deg {
|
||||
background-color: darken(adjust-hue($background, -8deg), 8%);
|
||||
} @else {
|
||||
background-color: darken($background, 10%);
|
||||
}
|
||||
color: $color;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
a#{$parent} {
|
||||
margin-right: 1px;
|
||||
padding: $tracker-inline-padding;
|
||||
|
||||
&.closed {
|
||||
color: mix($color, $background, 50%);
|
||||
text-decoration: $link-closed-decoration;
|
||||
color: mix($color, $background, 75%);
|
||||
|
||||
&:after {
|
||||
border-top-color: rgba($color, .95);
|
||||
}
|
||||
|
||||
&:hover:after {
|
||||
border-top-color: rgba($color, .25);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tr#{$parent} .id > a {
|
||||
display: block;
|
||||
padding: $tracker-list-padding;
|
||||
|
||||
&:before {
|
||||
color: mix($color, $background, 50%);
|
||||
content: "#";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
10
src/sass/mixins/_link-variant.scss
Normal file
@@ -0,0 +1,10 @@
|
||||
// Link variant
|
||||
|
||||
@mixin link-variant($default-color, $hover-color: darken($default-color, 10%)) {
|
||||
color: $default-color;
|
||||
|
||||
&:focus,
|
||||
&:hover {
|
||||
color: $hover-color;
|
||||
}
|
||||
}
|
||||
23
src/sass/mixins/_shadows.scss
Normal file
@@ -0,0 +1,23 @@
|
||||
// Some really nice looking shadows
|
||||
|
||||
@mixin nice-shadow($depth: 1) {
|
||||
$shadow: none;
|
||||
@if ($depth == 1) {
|
||||
// $shadow: 0 3px 1px -2px rgba(#000, .14), 0 2px 2px 0 rgba(#000, .098), 0 1px 5px 0 rgba(#000, .082);
|
||||
$shadow: 0 1px 3px rgba(#000, .12), 0 1px 2px rgba(#000, .24);
|
||||
} @elseif ($depth == 2) {
|
||||
// $shadow: 0 2px 4px -1px rgba(#000, .14), 0 4px 5px 0 rgba(#000, .098), 0 1px 10px 0 rgba(#000, .082)
|
||||
$shadow: 0 3px 6px rgba(#000, .16), 0 3px 6px rgba(#000, .23);
|
||||
} @elseif ($depth == 3) {
|
||||
// $shadow: 0 3px 5px -1px rgba(#000, .14), 0 6px 10px 0 rgba(#000, .098), 0 1px 18px 0 rgba(#000, .082)
|
||||
$shadow: 0 10px 18px rgba(#000, .19), 0 6px 8px rgba(#000, .23);
|
||||
} @elseif ($depth == 4) {
|
||||
// $shadow: 0 5px 5px -3px rgba(#000, .14), 0 8px 10px 1px rgba(#000, .098), 0 3px 14px 2px rgba(#000, .082)
|
||||
$shadow: 0 14px 28px rgba(#000, .25), 0 10px 10px rgba(#000, .22);
|
||||
} @elseif ($depth == 5) {
|
||||
// $shadow: 0 8px 10px -5px rgba(#000, .14), 0 16px 24px 2px rgba(#000, .098), 0 6px 30px 5px rgba(#000, .082)
|
||||
$shadow: 0 19px 38px rgba(#000, .30), 0 15px 12px rgba(#000, .22);
|
||||
}
|
||||
|
||||
box-shadow: $shadow;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
// Vendor Prefixes
|
||||
// scss-lint:disable VendorPrefixes
|
||||
// scss-lint:disable VendorPrefix NameFormat
|
||||
//
|
||||
// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
|
||||
// Autoprefixer in our Gruntfile. They will be removed in v4.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@import "common";
|
||||
|
||||
html {
|
||||
overflow-y: scroll !important;
|
||||
overflow-y: scroll;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ body {
|
||||
color: $text-color;
|
||||
font-family: $font-family-base;
|
||||
font-size: $font-size-base;
|
||||
font-weight: $font-weight-normal;
|
||||
line-height: $line-height-base;
|
||||
}
|
||||
|
||||
@@ -26,19 +27,19 @@ a {
|
||||
color: $link-hover-color;
|
||||
text-decoration: $link-hover-decoration;
|
||||
}
|
||||
}
|
||||
|
||||
&.issue.closed {
|
||||
color: $link-color-issue-closed;
|
||||
text-decoration: $link-closed-decoration;
|
||||
}
|
||||
.issue.closed {
|
||||
color: $link-color-issue-closed;
|
||||
text-decoration: $link-closed-decoration;
|
||||
}
|
||||
|
||||
&.project.closed {
|
||||
color: $link-color-project-closed;
|
||||
}
|
||||
.project.closed {
|
||||
color: $link-color-project-closed;
|
||||
}
|
||||
|
||||
&.user.locked {
|
||||
color: $link-color-user-locked;
|
||||
}
|
||||
.user.locked {
|
||||
color: $link-color-user-locked;
|
||||
}
|
||||
|
||||
|
||||
@@ -90,10 +91,10 @@ button.ui-multiselect {
|
||||
padding: $input-padding-vertical $input-padding-horizontal;
|
||||
border: 1px solid $input-border;
|
||||
background: $input-bg;
|
||||
cursor: default;
|
||||
color: $input-color;
|
||||
white-space: nowrap;
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
|
||||
cursor: default;
|
||||
overflow: hidden;
|
||||
@include transition(border-color ease-in-out .1s, box-shadow ease-in-out .1s);
|
||||
@include box-sizing(border-box);
|
||||
@@ -142,14 +143,14 @@ button.ui-multiselect {
|
||||
}
|
||||
|
||||
.home {
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.separator {
|
||||
position: relative;
|
||||
top: -1px;
|
||||
padding: 0 .2em;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -251,24 +252,7 @@ ul.ui-sortable {
|
||||
* Story tooltip
|
||||
*/
|
||||
.ui-tooltip {
|
||||
.ui-tooltip-tip,
|
||||
.ui-tooltip-content {
|
||||
border-color: $tooltip-border;
|
||||
background-color: $tooltip-bg;
|
||||
}
|
||||
|
||||
.ui-tooltip-content {
|
||||
padding: $padding-base-vertical;
|
||||
color: $tooltip-text;
|
||||
font-size: $font-size-small;
|
||||
box-shadow: 0 2px 2px rgba(0, 0, 0, .2);
|
||||
|
||||
> div {
|
||||
max-height: 200px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin-top: $line-height-computed / 2;
|
||||
margin-bottom: $line-height-computed / 2;
|
||||
@@ -280,6 +264,30 @@ ul.ui-sortable {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.issue-description {
|
||||
max-height: 10em;
|
||||
margin-top: 12px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.issue-field {
|
||||
margin: 2px 0 0;
|
||||
padding-left: 160px;
|
||||
overflow: hidden;
|
||||
|
||||
&:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
> label {
|
||||
margin-left: -160px;
|
||||
padding-right: 5px;
|
||||
float: left;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tooltip_text {
|
||||
@@ -297,7 +305,7 @@ ul.ui-sortable {
|
||||
}
|
||||
|
||||
.w-rb-header-collapsed {
|
||||
height: 18px;
|
||||
height: 27px; // 14px * .86 * 1.42857 + 2 * 5px
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@@ -318,141 +326,3 @@ body {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ui-datepicker-div {
|
||||
width: 16em;
|
||||
padding: 3px;
|
||||
border: 1px solid $panel-border;
|
||||
background: $body-bg;
|
||||
color: $text-color;
|
||||
font-size: $font-size-base;
|
||||
box-shadow: $panel-shadow;
|
||||
|
||||
.ui-widget-header {
|
||||
border: 0 none;
|
||||
background: $header-bg;
|
||||
color: $header-text;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ui-state-default {
|
||||
border: 1px solid $body-bg;
|
||||
background: $body-bg;
|
||||
color: $component-color;
|
||||
font-weight: normal;
|
||||
box-shadow: none;
|
||||
|
||||
a,
|
||||
a:link,
|
||||
a:visited {
|
||||
color: $component-color;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-state-hover,
|
||||
.ui-state-focus {
|
||||
border: 1px solid $component-active-border;
|
||||
background: $component-active-bg;
|
||||
color: $component-active-color;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.ui-datepicker-header {
|
||||
padding: .3em;
|
||||
}
|
||||
|
||||
.ui-datepicker-prev {
|
||||
left: .3em;
|
||||
}
|
||||
|
||||
.ui-datepicker-next {
|
||||
right: .3em;
|
||||
}
|
||||
|
||||
.ui-datepicker-prev,
|
||||
.ui-datepicker-next {
|
||||
top: .3em;
|
||||
border: 0 none;
|
||||
background: transparent;
|
||||
|
||||
.ui-icon {
|
||||
background-image: url("/stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
|
||||
}
|
||||
|
||||
&.ui-state-hover {
|
||||
border-color: darken($header-bg, 12%);
|
||||
background: darken($header-bg, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
.ui-datepicker-title {
|
||||
margin: 0 (1.8em + .3em);
|
||||
}
|
||||
|
||||
select.ui-datepicker-month,
|
||||
select.ui-datepicker-year {
|
||||
width: 49%;
|
||||
height: 1.8em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
select.ui-datepicker-year {
|
||||
margin-left: 1%;
|
||||
}
|
||||
|
||||
.ui-datepicker-calendar {
|
||||
td {
|
||||
text-align: right;
|
||||
|
||||
&.ui-datepicker-week-col {
|
||||
padding-right: $table-condensed-cell-padding;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui-datepicker-today {
|
||||
.ui-state-highlight {
|
||||
border-color: $component-active-border;
|
||||
background: $component-bg;
|
||||
color: $component-color;
|
||||
}
|
||||
|
||||
.ui-state-hover {
|
||||
background: $component-active-bg;
|
||||
color: $component-active-color;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-datepicker-current-day {
|
||||
.ui-state-active {
|
||||
border-color: $highlight-border;
|
||||
background: $highlight-bg;
|
||||
color: $highlight-text;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-datepicker-buttonpane {
|
||||
button {
|
||||
padding: $input-padding-vertical $input-padding-horizontal;
|
||||
}
|
||||
|
||||
.ui-state-default {
|
||||
border-color: $component-border;
|
||||
background: $component-bg;
|
||||
}
|
||||
|
||||
.ui-state-focus,
|
||||
.ui-state-hover {
|
||||
border-color: $component-active-bg;
|
||||
background: $component-active-bg;
|
||||
color: $component-active-color;
|
||||
}
|
||||
|
||||
.ui-state-active {
|
||||
border-color: $highlight-border;
|
||||
background: $highlight-bg;
|
||||
color: $highlight-text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1375
src/sass/plugins/redmine_backlogs/jquery/jquery-ui.scss
Normal file
119
src/sass/plugins/redmine_backlogs/jquery/jquery.multiselect.scss
Normal file
@@ -0,0 +1,119 @@
|
||||
// scss-lint:disable ImportantRule
|
||||
@import "../common";
|
||||
|
||||
.ui-multiselect {
|
||||
padding: 2px 0 2px 4px;
|
||||
text-align: left;
|
||||
|
||||
span.ui-icon {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-multiselect-single .ui-multiselect-checkboxes {
|
||||
input {
|
||||
position: absolute !important;
|
||||
top: auto !important;
|
||||
left: -9999px;
|
||||
}
|
||||
|
||||
label {
|
||||
padding: 5px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-multiselect-header {
|
||||
margin-bottom: 3px;
|
||||
padding: 3px;
|
||||
|
||||
ul {
|
||||
font-size: $font-size-list;
|
||||
|
||||
li {
|
||||
padding: 0 10px 0 0;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
span.ui-icon {
|
||||
float: left;
|
||||
}
|
||||
|
||||
li.ui-multiselect-close {
|
||||
padding-right: 0;
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-multiselect-menu {
|
||||
display: none;
|
||||
position: absolute;
|
||||
padding: 3px;
|
||||
text-align: left;
|
||||
z-index: 10000;
|
||||
@include nice-shadow(2);
|
||||
}
|
||||
|
||||
.ui-multiselect-checkboxes {
|
||||
position: relative;
|
||||
padding-right: 2px;
|
||||
overflow-y: scroll;
|
||||
|
||||
input[type="checkbox"] {
|
||||
top: 0;
|
||||
margin: 3px 0 0 -20px;
|
||||
float: left;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
padding: 3px 1px;
|
||||
padding-left: 20px + 6px;
|
||||
border: 1px solid transparent;
|
||||
cursor: default;
|
||||
@include user-select(none);
|
||||
|
||||
input {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
clear: both;
|
||||
font-size: $font-size-list;
|
||||
|
||||
&.ui-multiselect-optgroup-label {
|
||||
margin-bottom: 2px;
|
||||
border-bottom: 1px solid $panel-border;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: center;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
margin: 1px 0;
|
||||
padding: 3px;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* remove label borders in IE6 because IE6 does not support transparency */
|
||||
|
||||
* html .ui-multiselect-checkboxes label {
|
||||
border: 0 none;
|
||||
}
|
||||
37
src/sass/plugins/redmine_backlogs/jquery/jquery.qtip.scss
Normal file
@@ -0,0 +1,37 @@
|
||||
@import "../common";
|
||||
|
||||
.qtip {
|
||||
position: absolute;
|
||||
top: -31000px;
|
||||
left: -31000px;
|
||||
width: auto;
|
||||
max-width: 500px;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.ui-tooltip-content {
|
||||
position: relative;
|
||||
padding: 10px;
|
||||
border: 1px solid $tooltip-border;
|
||||
background-color: $tooltip-bg;
|
||||
color: $tooltip-text;
|
||||
font-size: $font-size-list;
|
||||
text-align: left;
|
||||
word-wrap: break-word;
|
||||
@include nice-shadow(2);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ui-tooltip-tip {
|
||||
border-color: $tooltip-border;
|
||||
background-color: $tooltip-bg;
|
||||
}
|
||||
|
||||
.ui-tooltip-tip {
|
||||
position: absolute;
|
||||
margin: 0 auto;
|
||||
border: 0 none;
|
||||
background: transparent;
|
||||
overflow: hidden;
|
||||
z-index: 10;
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// scss-lint:disable ImportantRule
|
||||
@import "common";
|
||||
|
||||
$header-line-height: floor($line-height-computed * 1.5);
|
||||
@@ -27,8 +28,11 @@ $story-sp-input-width: 50px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: darken($background, 10%);
|
||||
text-decoration: none;
|
||||
@if hue($background) > 15deg and hue($background) < 40deg {
|
||||
background-color: darken(adjust-hue($background, -8deg), 8%);
|
||||
} @else {
|
||||
background-color: darken($background, 10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -163,7 +167,7 @@ $story-sp-input-width: 50px;
|
||||
margin: 0 0 ($padding-side / 2);
|
||||
border-radius: $border-radius-large $border-radius-large 0 0;
|
||||
background-color: $gray-lightest;
|
||||
box-shadow: $panel-shadow;
|
||||
@include nice-shadow(1);
|
||||
|
||||
@media screen and (min-width: $screen-md-min) {
|
||||
margin: 0 0 $padding-side;
|
||||
@@ -207,7 +211,7 @@ $story-sp-input-width: 50px;
|
||||
|
||||
.name {
|
||||
padding-left: $padding-base-horizontal;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@@ -304,18 +308,19 @@ $story-sp-input-width: 50px;
|
||||
position: relative;
|
||||
height: $header-line-height;
|
||||
border-right: 1px solid #888;
|
||||
border-bottom: 0 none;
|
||||
border-bottom: 1px solid $header-bg;
|
||||
border-radius: ($border-radius-large - 1px) 0 0;
|
||||
cursor: pointer;
|
||||
font-size: $font-size-small;
|
||||
line-height: $line-height-base;
|
||||
cursor: pointer;
|
||||
overflow: visible;
|
||||
@include transition(background-color .07s);
|
||||
@include transition(background-color 0s .1s, border-color 0s .1s);
|
||||
|
||||
&:hover {
|
||||
border-bottom: 1px solid $body-bg;
|
||||
border-color: $body-bg;
|
||||
background-color: $body-bg;
|
||||
z-index: 1000;
|
||||
@include transition(background-color 0s 0s, border-color 0s 0s);
|
||||
}
|
||||
|
||||
.icon {
|
||||
@@ -327,20 +332,21 @@ $story-sp-input-width: 50px;
|
||||
background-position: -64px -16px;
|
||||
}
|
||||
|
||||
.items {
|
||||
display: none;
|
||||
ul {
|
||||
position: absolute;
|
||||
top: $header-line-height + 1px;
|
||||
left: -1px;
|
||||
margin: 0;
|
||||
padding: $padding-small-vertical 0;
|
||||
border: 1px solid $gray-light;
|
||||
border-top: 0 none;
|
||||
border: 1px solid $header-bg;
|
||||
border-top-width: 0;
|
||||
border-radius: 0 0 $border-radius-base $border-radius-base;
|
||||
background-color: $body-bg;
|
||||
list-style: none;
|
||||
box-shadow: 0 2px 1px rgba(#000, .1);
|
||||
visibility: hidden;
|
||||
z-index: 999;
|
||||
@include transition(visibility 0s .1s);
|
||||
|
||||
a {
|
||||
color: $gray-darker;
|
||||
@@ -348,11 +354,13 @@ $story-sp-input-width: 50px;
|
||||
}
|
||||
|
||||
&:hover .items {
|
||||
display: block;
|
||||
visibility: visible;
|
||||
@include transition(visibility 0s 0s);
|
||||
}
|
||||
|
||||
.item {
|
||||
min-width: 150px;
|
||||
position: relative;
|
||||
min-width: 100px;
|
||||
white-space: nowrap;
|
||||
|
||||
> a {
|
||||
@@ -366,19 +374,28 @@ $story-sp-input-width: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
display: none;
|
||||
> .ui-icon {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 160px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: $gray-lightest;
|
||||
list-style: none;
|
||||
top: 4px;
|
||||
right: 8px;
|
||||
left: auto;
|
||||
background-position: -32px -16px;
|
||||
}
|
||||
|
||||
&:hover ul {
|
||||
display: block;
|
||||
ul {
|
||||
position: absolute;
|
||||
top: -($padding-small-vertical + 1px);
|
||||
left: 100%;
|
||||
border-width: 1px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: darken($body-bg, 8%);
|
||||
|
||||
ul {
|
||||
visibility: visible;
|
||||
@include transition(visibility 0s 0s);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -434,7 +451,7 @@ $story-sp-input-width: 50px;
|
||||
.story {
|
||||
display: block;
|
||||
margin: 0;
|
||||
padding: $table-condensed-cell-padding;
|
||||
padding: 0 $table-condensed-cell-padding;
|
||||
border-top: 1px solid $gray-lighter;
|
||||
background-color: $body-bg;
|
||||
background-repeat: no-repeat;
|
||||
@@ -442,7 +459,7 @@ $story-sp-input-width: 50px;
|
||||
cursor: move;
|
||||
|
||||
&:nth-child(2n) {
|
||||
background-color: $table-bg-accent;
|
||||
background-color: $gray-lightest;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
@@ -466,6 +483,7 @@ $story-sp-input-width: 50px;
|
||||
.id {
|
||||
position: relative;
|
||||
width: $story-id-width;
|
||||
margin: $table-condensed-cell-padding 0;
|
||||
float: left;
|
||||
|
||||
.t {
|
||||
@@ -473,31 +491,51 @@ $story-sp-input-width: 50px;
|
||||
display: block;
|
||||
padding: $tracker-list-padding;
|
||||
border-radius: $border-radius-small ($border-radius-small * 3) ($border-radius-small * 3) $border-radius-small;
|
||||
background-color: darken($gray-lightest, 3%);
|
||||
color: $gray-dark;
|
||||
font-weight: bold;
|
||||
@if $color-trackers {
|
||||
background-color: $tracker-default-bg;
|
||||
color: $tracker-default-text;
|
||||
} @else {
|
||||
background-color: darken($gray-lightest, 3%);
|
||||
color: $gray-dark;
|
||||
}
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: right;
|
||||
|
||||
&:before {
|
||||
margin-left: -1em;
|
||||
color: $gray-light;
|
||||
@if $color-trackers {
|
||||
color: mix($tracker-default-text, $tracker-default-bg, 50%);
|
||||
} @else {
|
||||
color: $gray-light;
|
||||
}
|
||||
font-weight: normal;
|
||||
content: "#";
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: $gray-lighter;
|
||||
@if $color-trackers {
|
||||
background-color: darken($tracker-default-bg, 10%);
|
||||
} @else {
|
||||
background-color: $gray-lighter;
|
||||
}
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fff-left > .project,
|
||||
.fff-wrapmiddle > .subject,
|
||||
.fff-right > .status_id,
|
||||
.fff-right > .story_points {
|
||||
min-height: floor(.92 * $font-size-base * $line-height-base);
|
||||
}
|
||||
|
||||
.project {
|
||||
display: block;
|
||||
position: relative;
|
||||
width: $story-project-width;
|
||||
padding-left: 5px;
|
||||
padding: $table-condensed-cell-padding 0 $table-condensed-cell-padding $table-condensed-cell-padding;
|
||||
float: left;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@@ -510,6 +548,7 @@ $story-sp-input-width: 50px;
|
||||
|
||||
.subject {
|
||||
@include text-overflow;
|
||||
padding: $table-condensed-cell-padding 0;
|
||||
}
|
||||
|
||||
&.closed .subject {
|
||||
@@ -518,13 +557,14 @@ $story-sp-input-width: 50px;
|
||||
|
||||
.status_id {
|
||||
width: $story-status-width;
|
||||
padding-left: 5px;
|
||||
padding: $table-condensed-cell-padding 0 $table-condensed-cell-padding $table-condensed-cell-padding;
|
||||
float: left;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.story_points {
|
||||
width: $story-right-width - ($story-status-width + $padding-base-horizontal);
|
||||
width: $story-right-width - ($story-status-width + $padding-base-horizontal + 1px);
|
||||
padding: $table-condensed-cell-padding $table-condensed-cell-padding $table-condensed-cell-padding 0;
|
||||
float: left;
|
||||
text-align: right;
|
||||
}
|
||||
@@ -568,7 +608,9 @@ $story-sp-input-width: 50px;
|
||||
.editors {
|
||||
display: block;
|
||||
margin-left: $story-tracker-input-width + 5px;
|
||||
padding: $table-condensed-cell-padding 0;
|
||||
text-align: right;
|
||||
@include clearfix;
|
||||
|
||||
label {
|
||||
display: none;
|
||||
@@ -593,14 +635,16 @@ $story-sp-input-width: 50px;
|
||||
|
||||
&.status_id {
|
||||
width: $story-status-input-width;
|
||||
padding-right: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
&.story_points {
|
||||
width: $story-sp-input-width;
|
||||
margin-right: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
float: left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&.subject {
|
||||
@@ -609,6 +653,7 @@ $story-sp-input-width: 50px;
|
||||
width: calc(100% - #{$subject-width-minus}) !important;
|
||||
height: 60px;
|
||||
float: left;
|
||||
white-space: normal;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
@@ -652,13 +697,13 @@ $story-sp-input-width: 50px;
|
||||
}
|
||||
|
||||
@if $color-trackers {
|
||||
@include rb-tracker('.tracker1', $tracker-1-bg, $tracker-1-text);
|
||||
@include rb-tracker('.tracker2', $tracker-2-bg, $tracker-2-text);
|
||||
@include rb-tracker('.tracker3', $tracker-3-bg, $tracker-3-text);
|
||||
@include rb-tracker('.tracker4', $tracker-4-bg, $tracker-4-text);
|
||||
@include rb-tracker('.tracker5', $tracker-5-bg, $tracker-5-text);
|
||||
@include rb-tracker('.tracker6', $tracker-6-bg, $tracker-6-text);
|
||||
@include rb-tracker('.tracker7', $tracker-7-bg, $tracker-7-text);
|
||||
@each $tracker-id, $tracker-colors in $tracker-colors-map {
|
||||
@include rb-tracker(
|
||||
".tracker#{$tracker-id}",
|
||||
map-get($tracker-colors, background),
|
||||
map-get($tracker-colors, color)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -679,7 +724,7 @@ $story-sp-input-width: 50px;
|
||||
|
||||
&.ui-widget-content {
|
||||
border: 0 none;
|
||||
box-shadow: 2px 2px 5px #777;
|
||||
@include nice-shadow(5);
|
||||
}
|
||||
|
||||
.ui-dialog-buttonpane.ui-widget-content {
|
||||
@@ -722,10 +767,10 @@ $story-sp-input-width: 50px;
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
border: 1px solid;
|
||||
cursor: pointer;
|
||||
font-weight: $btn-font-weight;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
@include button-size($input-padding-vertical, $input-padding-horizontal, $font-size-base, $line-height-base, $border-radius-base);
|
||||
@include user-select(none);
|
||||
@include transition(background-color ease-in-out .07s, border-color ease-in-out .07s, box-shadow ease-in-out .07s);
|
||||
@@ -746,12 +791,6 @@ $story-sp-input-width: 50px;
|
||||
&:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $screen-md-max) {
|
||||
padding: $input-padding-vertical;
|
||||
font-size: $font-size-small-px;
|
||||
line-height: $line-height-computed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -796,6 +835,6 @@ $story-sp-input-width: 50px;
|
||||
|
||||
#show_completed_sprints {
|
||||
margin-left: $padding-side / 2;
|
||||
cursor: pointer;
|
||||
color: $gray-darkest;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
|
||||
border-right: 1px dotted mix($header-bg, $header-text, 70%);
|
||||
background-color: $header-bg;
|
||||
color: $header-text;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
|
||||
@@ -161,7 +161,7 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
|
||||
a {
|
||||
color: $gray-darkest;
|
||||
font-size: $font-size-small-px;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
.assignee {
|
||||
@@ -198,7 +198,7 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
|
||||
border-radius: 50%;
|
||||
background-color: $brand-warning;
|
||||
color: $brand-text;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
|
||||
@@ -223,10 +223,10 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
|
||||
border: 0 none;
|
||||
border-radius: $border-radius-large;
|
||||
background-color: $gray-lighter;
|
||||
cursor: move;
|
||||
color: $gray-darker;
|
||||
font-size: 10px;
|
||||
line-height: 1.3;
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
@@ -244,7 +244,7 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
|
||||
border-radius: $border-radius-base;
|
||||
background-color: $body-bg;
|
||||
font-size: $font-size-small-px;
|
||||
font-weight: bold;
|
||||
font-weight: $font-weight-bold;
|
||||
line-height: 16px;
|
||||
text-align: right;
|
||||
opacity: .8;
|
||||
@@ -382,7 +382,7 @@ $swimlane-width: $issue-width + 2 * ($issue-margin + $issue-paddi
|
||||
&.ui-widget-content {
|
||||
border: 0 none;
|
||||
background: none;
|
||||
box-shadow: 2px 2px 5px #777;
|
||||
@include nice-shadow(5);
|
||||
}
|
||||
|
||||
.ui-dialog-buttonpane.ui-widget-content {
|
||||
|
||||