Compare commits

...

95 Commits

Author SHA1 Message Date
mrliptontea
4e1ebf53fb Update readme for release v1.8.0 2016-11-20 23:39:56 +00:00
mrliptontea
06638406f0 Use standardjs 2016-11-20 23:31:10 +00:00
mrliptontea
af40d823bd Small correction for changeset lists 2016-11-20 23:27:58 +00:00
mrliptontea
beeff247a4 Extend scss linter settings
- Enable DeclarationOrder rule
- Change declaration order in scss
- Enable VendorPrefix rule
- Add Autoprefixer via Postcss to css task
- Move scss-lint comments in-line
2016-11-20 23:04:32 +00:00
mrliptontea
abb16c53f3 Change indentation to 2 spaces
To comply with Redmine's coding style.
2016-11-20 21:07:06 +00:00
mrliptontea
d0e6246e99 Linting
- Update scss_lint rules
- Fix linter errors
- Add .editorconfig file
2016-11-20 20:19:51 +00:00
mrliptontea
53d1c6dcec Update readme 2016-11-19 21:12:19 +00:00
mrliptontea
6dcbf4e150 Comply to the latest features of Redmine, fix #37
- Support drag-and-drop sorting
- Introduce new icons
- Add styles for .table-list
2016-11-19 21:12:10 +00:00
mrliptontea
c9f897e3b1 Correct layout for redmine backlogs 2016-11-19 19:18:41 +00:00
mrliptontea
d390c5a4d6 Fix some issues with top bar 2016-11-19 19:18:10 +00:00
mrliptontea
928b88dbaf Improve layout of user form 2016-11-19 17:28:35 +00:00
Grzegorz Rajchman
40450468f2 Merge pull request #39 from wbstr/fix/mainMenuZIndex
Fixed #38: Main menu children (new issue, etc.) and backlogs plugin
2016-11-19 17:26:39 +00:00
Tamas Futo
7e9939f5ed Fixed #38: Main menu children (new issue, etc.) and backlogs plugin compatibility issue 2016-11-03 14:52:24 +01:00
mrliptontea
a72cf5a9ee wrap project breadcrumbs in the header, fixes #34 2016-08-11 21:24:01 +01:00
mrliptontea
c88c05f159 hide text for .icon-only and fix some icon positions, fixes #35 2016-08-11 21:11:41 +01:00
mrliptontea
aac8a88bfe update README 2016-08-10 19:37:57 +01:00
mrliptontea
defabec1ed update node dependencies and move them to production, fixes #36 2016-08-10 19:35:35 +01:00
mrliptontea
4181c09b02 mention latest visual changes in changelog 2016-07-02 23:59:44 +01:00
mrliptontea
1c620b3b4e icon for PNG export format 2016-07-02 23:59:00 +01:00
mrliptontea
a8355d5c64 make links in p.buttons look like buttons 2016-07-02 23:56:15 +01:00
mrliptontea
1da7710cea improve styling for totals 2016-07-02 22:06:40 +01:00
mrliptontea
2b537786d9 improve inline checkbox styles 2016-07-02 22:04:31 +01:00
mrliptontea
2e7d9a1308 override margin-bottom for box headers to improve vertical rhythm 2016-07-02 21:19:41 +01:00
mrliptontea
9a4c33153e improved styles for news 2016-07-02 21:14:36 +01:00
mrliptontea
00fed09d8e add styles for inactive pagination elements 2016-07-02 20:58:28 +01:00
mrliptontea
f560febce2 unify method of removing bottom margin from the last-child 2016-07-02 20:52:51 +01:00
mrliptontea
7612e8b004 small improvements for box panels styling 2016-07-02 20:46:44 +01:00
mrliptontea
02dd1f43a0 fix styling for 'Private' checkbox in Redmine 3.1+ 2016-07-02 20:33:20 +01:00
mrliptontea
60cd90a36a unlock custom styling for all HTML5 input types 2016-07-02 20:15:01 +01:00
mrliptontea
77d07307b1 align help editor button to the right only on screen sizes md and up 2016-07-02 20:14:04 +01:00
mrliptontea
80cd0c620f support native editor 'highlighted code' button in Redmine 3.3 2016-07-02 20:02:22 +01:00
mrliptontea
8b3339f629 fix duplicated toggle-multiselect styles in Redmine 3.3 2016-06-24 00:09:55 +01:00
mrliptontea
6b6b12842c update changelog 2016-06-24 00:03:25 +01:00
mrliptontea
c160914448 display correct icon in journal actions for users that cannot edit notes, fixes #28 2016-06-24 00:02:23 +01:00
mrliptontea
b5f351f135 improve pagination styling, fixes #25 2016-06-23 23:49:43 +01:00
mrliptontea
97476e3bda fix few issues with icons
- apply FA to .icon-only class
- use check instead of check-square
- make ticks green
- wrap context menu styles in FA condition
2016-06-23 23:47:50 +01:00
mrliptontea
38ee17c8a8 properly set widths for progress bars, fixes #23 2016-06-23 23:32:44 +01:00
mrliptontea
7b95f93194 improve styles for the main menu in Redmine 3.3, fixes #32, refs #33 2016-06-23 23:30:08 +01:00
mrliptontea
324a236a02 remove trailing whitespaces 2016-06-23 21:46:45 +01:00
mrliptontea
b9035527ea move font-awesome import outside of if statement, fixes #30 2016-06-23 21:43:01 +01:00
Grzegorz Rajchman
428be4db9a Merge pull request #33 from shawndibble/master
Updated to work with Redmine 3.3
2016-06-23 07:08:24 +01:00
shawndibble
c6a20766c6 Update _top.scss 2016-06-22 16:56:22 -05:00
shawndibble
7430f1d844 Updated to work with Redmine 3.3
Redmine 3.3 adjusted their main-menu and added a drop down. These changes correct this issue.
2016-06-22 16:39:41 -05:00
mrliptontea
a931c63ed4 compatibility with Redmine 3.2.0 layout, fixes #21 2015-12-14 23:06:08 +00:00
mrliptontea
3b95b931f8 correct attributes order in _plugins.scss 2015-12-07 23:33:51 +00:00
mrliptontea
e247564c3e fix duplicated pencil icon for Description in issue form in Redmine 3.1.2+ 2015-12-07 23:28:47 +00:00
mrliptontea
76fc0f4b7c apply Font Awesome font-family for icons in Time Tracker overview 2015-12-07 22:21:40 +00:00
mrliptontea
61b6475e9e add wrapping and set alignment for long text custom fields, fixes #19 2015-12-03 23:49:44 +00:00
mrliptontea
f3a617baf0 release v1.7.2 2015-10-12 10:14:50 +02:00
mrliptontea
db39c6cb54 align cells in lists to center by default 2015-10-12 10:13:56 +02:00
mrliptontea
c45de83791 fix .pagination float in project members settings 2015-10-12 09:48:47 +02:00
mrliptontea
6f508ba87a add badges to README (badges are in, right?) 2015-10-10 22:38:09 +02:00
mrliptontea
49ed887fce argh, update links in README after transfering repo 2015-10-10 21:57:41 +02:00
mrliptontea
bba68972d8 improve styling for stuff_to_do 2015-10-10 21:45:58 +02:00
mrliptontea
adc7e59d22 release v1.7.0 2015-09-25 21:27:39 +02:00
mrliptontea
cfdf261645 change license to MIT and move repo to my profile 2015-09-25 21:25:51 +02:00
mrliptontea
1e6cdd7cef fix source path for scss-lint config 2015-09-20 15:48:56 +02:00
mrliptontea
3e78878ed0 fix broken layout in codebutton window 2015-09-20 15:48:08 +02:00
mrliptontea
15a492a1b6 fix colored trackers in tooltips in Backlogs plugin 2015-08-24 09:08:57 +02:00
mrliptontea
5cafccd221 align green ticks to center in enumeration list 2015-08-12 20:40:02 +02:00
mrliptontea
610ee38c3d more generic form button layout and style 2015-08-12 20:38:47 +02:00
mrliptontea
b1154eb9ed no need for extra padding in the bottom of the sidebar with flexbox 2015-08-12 20:31:07 +02:00
mrliptontea
f5ef9dba70 use calc hack to prevent #content outgrowing the browser's window 2015-08-12 20:23:12 +02:00
mrliptontea
b7efd10a99 make sure that links and images won't break the layout 2015-08-12 09:29:35 +02:00
mrliptontea
9977d8e38e remove white-space: nowrap from external links, fixes #16 2015-08-11 21:39:12 +02:00
mrliptontea
dde298d630 fix query buttons text alignment after increasing default padding 2015-08-10 14:37:00 +02:00
mrliptontea
452e0fecf0 introduce $pagination-padding- variables 2015-08-10 14:34:35 +02:00
mrliptontea
edde6acb1f EOL conversion to unix 2015-08-10 11:04:39 +02:00
mrliptontea
433819c6ff fix pagination and export links alignment when there's only one page 2015-08-10 11:01:28 +02:00
mrliptontea
fa3225be82 few minor layout improvements 2015-08-10 10:52:34 +02:00
mrliptontea
25f7092f9c configurable list borders and highlighting 2015-08-10 00:00:09 +02:00
mrliptontea
bc8bde7756 visual tweaks: nicer shadows, improve datepickers layout 2015-08-09 23:30:01 +02:00
mrliptontea
1253489333 slightly change buttons' style 2015-08-09 22:22:30 +02:00
mrliptontea
42dfc57ee7 linting 2015-08-09 20:54:10 +02:00
mrliptontea
24db7ad013 fix animation issue when showing sidebar 2015-08-09 20:49:54 +02:00
mrliptontea
6c8432f627 use flexbox for content and sidebar layout, refs #15 2015-08-09 20:32:21 +02:00
mrliptontea
f12816dad7 add clearfix to #header, style optgroup, fixes #13 2015-07-14 19:19:35 +02:00
mrliptontea
71a0b1a92c coloring issue's title instead of link in Gantt diagram for overdue issues 2015-06-29 10:46:15 +02:00
mrliptontea
a350c369cc update npm packages 2015-06-10 22:27:58 +02:00
mrliptontea
56a5e1db49 satisfy linter 2015-06-10 22:24:29 +02:00
mrliptontea
6c102320b7 very postponed release of v1.6.0 2015-06-10 22:09:26 +02:00
mrliptontea
2140b58778 add possibility to insert company logo, resolves #11 2015-04-26 20:09:42 +02:00
mrliptontea
970da9d3b5 remove display:block from subject link, fixes #12 2015-04-24 17:22:46 +02:00
mrliptontea
654f4f9073 js refactoring - treat all modules as singletons 2015-04-17 15:51:09 +02:00
mrliptontea
aebbfbaf17 make main menu collapsible, just like the top menu, fixes #9
- rename TopMenuCollapse.js to MenuCollapse.js
- refactor MenuCollapse to handle two menus
- add dark image icons for arrow up and down
2015-04-17 15:39:25 +02:00
mrliptontea
7f518e0ff7 introduce $font-weight-normal and $font-weight-bold 2015-04-17 12:36:14 +02:00
mrliptontea
8abe193be4 distinguish header which anchor matches current URL fragment
- prepend "#" to header which is current :target
- introduce variables `$headings-anchor-color`, `$headings-anchor-color-active`
2015-04-17 12:17:39 +02:00
mrliptontea
5081a5874b corrections in SidebarToggler and HistoryTabs 2015-04-17 11:40:17 +02:00
mrliptontea
2cc2c83568 button for expanding/collapsing top menu, fixes #8
- introduce `$top-menu-collapse` flag and `$top-menu-collapse-breakpoint` variable
- add TopMenuCollapse.js script
- new base64 encoded images: arrow-up and arrow-down (white colored)
2015-04-17 11:30:27 +02:00
mrliptontea
3fd21ebb9c release v1.5.0 2015-04-15 12:25:54 +02:00
mrliptontea
5975ab9b5d update changelog 2015-04-15 12:16:53 +02:00
mrliptontea
13b11dcbca Merge branch 'issue-5' 2015-04-15 12:10:20 +02:00
mrliptontea
8a44905739 add default padding for tables, fixes #6 2015-04-15 12:09:51 +02:00
mrliptontea
2f4b08ba19 update instructions on customizing PurpleMine
update .gitignore file to file structure introduced in 581ea78
2015-04-15 12:05:43 +02:00
mrliptontea
d220db112a Add default color and styles for colored trackers links, fixes #5
- introduce $tracker-default-bg and $tracker-default-text variables
- move default colors to map
- introduce $tracker-custom-colors-map to make adding new colors and
  overriding default ones easy
- remove styles for issue links from mixin to avoid repetition
- update styles for backlogs plugin
2015-04-15 11:28:43 +02:00
74 changed files with 9942 additions and 9165 deletions

9
.editorconfig Normal file
View File

@@ -0,0 +1,9 @@
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 2

3
.gitignore vendored
View File

@@ -1,4 +1,5 @@
/.sass-cache
/node_modules
/sass/_custom-variables.scss
/src/sass/_custom-variables.scss
/.sublime-grunt.cache
/images/logo

View File

@@ -1,4 +1,6 @@
scss_files: "**/*.scss"
scss_files: "src/sass/**/*.scss"
exclude: 'src/sass/lib/**'
linters:
BangFormat:
@@ -12,21 +14,25 @@ linters:
ColorKeyword:
enabled: true
Comment:
ColorVariable:
enabled: false
Comment:
enabled: true
DebugStatement:
enabled: true
DeclarationOrder:
enabled: false
enabled: true
DuplicateProperty:
enabled: true
ignore_consecutive:
- word-break
ElsePlacement:
enabled: false
style: same_line
enabled: true
EmptyLineBetweenBlocks:
enabled: true
@@ -62,9 +68,9 @@ linters:
filename_extension: false
Indentation:
enabled: false
enabled: true
character: space
width: 4
width: 2
LeadingZero:
enabled: true
@@ -89,6 +95,9 @@ linters:
enabled: true
extra_properties: []
PseudoElement:
enabled: true
QualifyingElement:
enabled: false
@@ -119,6 +128,12 @@ linters:
SpaceAfterPropertyName:
enabled: true
SpaceAfterVariableName:
enabled: true
SpaceAroundOperator:
enabled: true
SpaceBeforeBrace:
enabled: true
style: space
@@ -135,8 +150,14 @@ linters:
TrailingSemicolon:
enabled: true
TrailingWhitespace:
enabled: true
TrailingZero:
enabled: false
enabled: true
TransitionAll:
enabled: true
UnnecessaryMantissa:
enabled: true
@@ -149,3 +170,9 @@ linters:
UrlQuotes:
enabled: true
VendorPrefix:
enabled: true
ZeroUnit:
enabled: true

View File

@@ -1,66 +1,78 @@
module.exports = function(grunt) {
grunt.initConfig({
src: "src/",
sass: {
options: {
sourceMap: false,
outputStyle: 'compressed'
},
dist: {
files: {
'stylesheets/application.css': '<%= src %>sass/application.scss'
}
},
redmine_backlogs: {
files: {
'plugins/redmine_backlogs/global.css':
'<%= src %>sass/plugins/redmine_backlogs/global.scss',
'plugins/redmine_backlogs/master_backlog.css':
'<%= src %>sass/plugins/redmine_backlogs/master_backlog.scss',
'plugins/redmine_backlogs/statistics.css':
'<%= src %>sass/plugins/redmine_backlogs/statistics.scss',
'plugins/redmine_backlogs/taskboard.css':
'<%= 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'
}
}
},
uglify: {
build: {
src: [
'<%= src %>javascripts/modules/*.js',
'<%= src %>javascripts/theme.js'
],
dest: 'javascripts/theme.js'
}
},
watch: {
css: {
files: ['<%= src %>sass/**/*.scss'],
tasks: ['css']
},
js: {
files: ['<%= src %>javascripts/**/*.js'],
tasks: ['js']
}
}
});
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks("grunt-contrib-uglify");
grunt.registerTask('css', ['sass']);
grunt.registerTask('js', ['uglify']);
grunt.registerTask('default', ['css', 'js']);
};
module.exports = function (grunt) {
grunt.initConfig({
src: 'src/',
sass: {
options: {
sourceMap: false,
outputStyle: 'compressed'
},
theme: {
files: {
'stylesheets/application.css': '<%= src %>sass/application.scss'
}
},
plugins: {
files: [
{
expand: true,
cwd: '<%= src %>sass/plugins/',
src: '**/*.scss',
dest: 'plugins/',
ext: '.css',
extDot: 'last'
}
]
}
},
postcss: {
options: {
processors: [
require('autoprefixer')({ browsers: 'last 2 versions' })
]
},
all: {
src: [
'stylesheets/*.css',
'plugins/**/*.css'
]
}
},
uglify: {
theme: {
src: [
'<%= src %>javascripts/modules/*.js',
'<%= src %>javascripts/theme.js'
],
dest: 'javascripts/theme.js'
}
},
watch: {
css: {
files: ['<%= src %>sass/**/*.scss'],
tasks: ['css']
},
js: {
files: ['<%= src %>javascripts/**/*.js'],
tasks: ['js']
}
}
})
grunt.loadNpmTasks('grunt-sass')
grunt.loadNpmTasks('grunt-postcss')
grunt.loadNpmTasks('grunt-contrib-watch')
grunt.loadNpmTasks('grunt-contrib-uglify')
grunt.registerTask('css', ['sass', 'postcss'])
grunt.registerTask('js', ['uglify'])
grunt.registerTask('default', ['css', 'js'])
}

21
LICENSE Normal file
View 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.

View File

@@ -2,9 +2,13 @@
A free Redmine theme for modern browsers.
![Screenshot](https://github.com/HolonGlobe/PurpleMine2/raw/master/screenshots/issues-list.png)
![The MIT License](https://img.shields.io/badge/license-MIT-584492.svg?style=flat-square) [![Release](https://img.shields.io/github/release/mrliptontea/PurpleMine2.svg?style=flat-square)](https://github.com/mrliptontea/PurpleMine2/releases) [![Issues](https://img.shields.io/github/issues/mrliptontea/PurpleMine2.svg?style=flat-square)](https://github.com/mrliptontea/PurpleMine2/issues) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
Compatible with Redmine 2.5+ and browsers: IE9+, latest Firefox and Google Chrome (others were not tested).
---
![Screenshot](https://github.com/mrliptontea/PurpleMine2/raw/master/screenshots/issues-list.png)
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.
@@ -20,7 +24,7 @@ It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of
## How install it
To install PurpleMine, just download [.zip](https://github.com/HolonGlobe/PurpleMine2/archive/master.zip) and unpack it to your Redmine's `public/themes` folder.
To install PurpleMine, just download [.zip](https://github.com/mrliptontea/PurpleMine2/archive/master.zip) and unpack it to your Redmine's `public/themes` folder.
Then go to Redmine > Administration > Settings > Display and select PurpleMine2 from the list and save the changes.
@@ -48,10 +52,78 @@ 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.8.0 (2016-11-20):
* Fixed #19: missing text wrapping for long text custom fields
* Fixed #20: applied Font Awesome font-family for icons in Time Tracker overview
* Fixed duplicated pencil icon for Description in issue form in Redmine 3.1.2+
* Fixed #21: added styling for compatibility with layout changes in Redmine 3.2.0
* Fixed #23: set width for progress bars
* Fixed #25: proper styles for pagination
* Fixed #28: correct icon will be displayed for users that cannot edit notes in journal
* Fixed #30: styles will now compile with latest Sass
* Fixed #32, #33: improve @shawndibble's styles for new main menu styles in Redmine 3.3
* Various small visual tweaks
* Fixed #34: project breadcrumbs in the header should wrap nicely
* Fixed #35: `.icon-only` class should now display only icons, buttons with icons should de displayed correctly with Font-Awesome disabled
* Fixed #36: npm dependencies can be installed on production environments + update grunt to its latest version
* Fixed #37: added support for drag'n'drop re-ordering in issue statuses, roles, and trackers settings
* Fixed #38: corrected z-index for dropdown new item menu on backlogs page (thanks to @futaz, see PR #39)
* Changed indentation to 2 spaces (to match with Redmine's coding style)
* Introduced [autoprefixer](https://github.com/postcss/autoprefixer) via [PostCSS](http://postcss.org)
* Updated [scss-lint](https://github.com/brigade/scss-lint) rules
* Added [JavaScript Standard Style](http://standardjs.com)
v1.7.2 (2015-10-12):
* Fixed `.pagination` float in project members settings
* Lists' cells are aligned to center by default (as in Redmine's default theme)
v1.7.1 (2015-10-10):
+ Improved styling for [Stuff To Do][stuff_to_do] plugin
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.
@@ -68,7 +140,7 @@ v1.4.0 (2015-04-10):
* 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)
For more details, see [release v1.4.0](https://github.com/mrliptontea/PurpleMine2/releases/tag/v1.4.0)
v1.3.0 (2015-04-01):
@@ -120,13 +192,10 @@ 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_crm_people]: http://www.redminecrm.com/projects/people/
[redmine_crm_people]: http://www.redminecrm.com/projects/people/
[stuff_to_do]: https://github.com/raafael911/stuff_to_do_plugin

File diff suppressed because one or more lines are too long

View File

@@ -1,27 +1,40 @@
{
"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/mrliptontea/PurpleMine2",
"scripts": {
"lint": "standard && scss-lint"
},
"dependencies": {
"autoprefixer": "^6.5.3",
"grunt": "^1.0.1",
"grunt-contrib-uglify": "^2.0.0",
"grunt-contrib-watch": "^1.0.0",
"grunt-postcss": "^0.8.0",
"grunt-sass": "^1.0.0"
},
"homepage": "https://github.com/HolonGlobe/PurpleMine2",
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-uglify": "^0.7.0",
"grunt-contrib-watch": "^0.6.1",
"grunt-sass": "^0.18.0"
"standard": "^8.5.0"
},
"standard": {
"globals": [ "$", "localStorage" ],
"ignore": [
"/javascripts"
]
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +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;box-shadow:0 1px 2px rgba(0,0,0,0.1),0 3px 8px rgba(0,0,0,0.07);z-index:10000}.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}
.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:.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{box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23);display:none;position:absolute;padding:3px;text-align:left;z-index:10000}.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:.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}

View File

@@ -1 +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:#555555;font-size:0.92em;text-align:left;word-wrap:break-word;box-shadow:0 2px 2px rgba(0,0,0,0.2);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}
.qtip{position:absolute;top:-31000px;left:-31000px;width:auto;max-width:500px;outline:none}.ui-tooltip-content{box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23);position:relative;padding:10px;border:1px solid #ccc;background-color:#fff;color:#555;font-size:.92em;text-align:left;word-wrap:break-word;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}

File diff suppressed because one or more lines are too long

View File

@@ -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}

File diff suppressed because one or more lines are too long

View File

@@ -1,93 +1,87 @@
var PurpleMine = PurpleMine || {};
var PurpleMine = PurpleMine || {}
PurpleMine.HistoryTabs = (function()
{
"use strict";
PurpleMine.HistoryTabs = (function () {
'use strict'
var self; // Make it work for browsers without Function.prototype.bind
var translations = {
en: {
all : "All",
notes : "Notes",
details: "Changes"
},
pl: {
all : "Wszystko",
notes : "Notatki",
details: "Zmiany"
}
};
var instance
var translations = {
en: {
all: 'All',
notes: 'Notes',
details: 'Changes'
},
pl: {
all: 'Wszystko',
notes: 'Notatki',
details: 'Zmiany'
}
}
function HistoryTabs()
{
self = this;
this.$tabsContainer = null;
this.$tabs = null;
this.$history = $("#history");
this.lang = document.documentElement.lang;
if ("undefined" === translations[this.lang])
{
this.lang = "en";
}
this._ = translations[this.lang];
if (this.$history.length > 0)
{
this.buildTabs();
this.markFirstOfTypes();
}
function HistoryTabs () {
if (instance) {
return instance
}
HistoryTabs.prototype.buildTabs = function()
{
var html = "",
liStart = "<li><a href=\"javascript:;\" class=\"",
liMid = "history-tab\" data-tab=\"",
liEnd = "</a></li>";
instance = this
html += "<div class=\"tabs\"><ul>";
html += liStart + "selected " + liMid + "all\">" + this._.all + liEnd;
html += liStart + liMid + "notes\">" + this._.notes + liEnd;
html += liStart + liMid + "details\">" + this._.details + liEnd;
html += "</ul></div>";
this.$tabsContainer = null
this.$tabs = null
this.$history = $('#history')
this.lang = document.documentElement.lang
this.$tabsContainer = $(html);
$("#history > h3").after(this.$tabsContainer);
if (typeof translations[this.lang] === 'undefined') {
this.lang = 'en'
}
this.$tabs = this.$tabsContainer.find(".history-tab");
this.$tabs.on("click", this.tabClick);
};
this._ = translations[this.lang]
HistoryTabs.prototype.markFirstOfTypes = function()
{
this.$history.find(".has-notes:first").addClass("first-of-notes");
this.$history.find(".has-details:first").addClass("first-of-details");
};
if (this.$history.length > 0) {
buildTabs()
markFirstOfTypes()
}
}
HistoryTabs.prototype.tabClick = function()
{
var $this = $(this),
tab = $this.attr("data-tab");
function buildTabs () {
var html = ''
var liStart = '<li><a href="javascript:;" class="'
var liMid = 'history-tab" data-tab="'
var liEnd = '</a></li>'
self.$tabs.removeClass("selected");
$this.addClass("selected");
html += '<div class="tabs"><ul>'
html += liStart + 'selected ' + liMid + 'all">' + instance._.all + liEnd
html += liStart + liMid + 'notes">' + instance._.notes + liEnd
html += liStart + liMid + 'details">' + instance._.details + liEnd
html += '</ul></div>'
self.$history
.removeClass("hide-details")
.removeClass("hide-notes");
instance.$tabsContainer = $(html)
$('#history > h3').after(instance.$tabsContainer)
if ("notes" === tab)
{
self.$history.addClass("hide-details");
}
else if ("details" === tab)
{
self.$history.addClass("hide-notes");
}
};
instance.$tabs = instance.$tabsContainer.find('.history-tab')
instance.$tabs.on('click', tabClick)
}
return HistoryTabs;
}());
function markFirstOfTypes () {
instance.$history.find('.has-notes:first').addClass('first-of-notes')
instance.$history.find('.has-details:first').addClass('first-of-details')
}
var tabClick = function () {
var $this = $(this)
var tab = $this.attr('data-tab')
instance.$tabs.removeClass('selected')
$this.addClass('selected')
instance.$history
.removeClass('hide-details')
.removeClass('hide-notes')
if (tab === 'notes') {
instance.$history.addClass('hide-details')
} else if (tab === 'details') {
instance.$history.addClass('hide-notes')
}
}
return HistoryTabs
}())

View File

@@ -0,0 +1,116 @@
var PurpleMine = PurpleMine || {}
PurpleMine.MenuCollapse = (function () {
'use strict'
var instance
var translations = {
en: {
topMenuToggler: 'Expand/collapse top menu'
},
pl: {
topMenuToggler: 'Zwiń/rozwiń górne menu'
}
}
function MenuCollapse () {
if (instance) {
return instance
}
instance = 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')
}
}
for (var menu in this.menus) {
if (this.menus.hasOwnProperty(menu) && this.menus[menu].$el.length > 0) {
handleMenu(menu)
}
}
}
function handleMenu (menu) {
if (instance.menus[menu].$el.css('maxHeight') === 'none') {
return false
}
instance.menus[menu].collapsed = true
if (window.localStorage) {
instance.menus[menu].collapsed =
localStorage.getItem(getMenuStorageKey(menu)) === null
}
buildToggleButton(menu)
if (instance.isCollapsed(menu) === false) {
instance.expandMenu(menu)
}
}
function getMenuStorageKey (menu) {
return 'PurpleMine:' + menu + 'MenuExpanded'
}
function buildToggleButton (menu) {
var togglerClass = menu + '-menu-toggler'
var togglerLabel = instance._[menu + 'MenuToggler']
var togglerHtml = '<a href="javascript:;" class="' +
togglerClass +
'" title="' +
togglerLabel +
'"></a>'
instance.menus[menu].$toggler = $(togglerHtml)
instance.menus[menu].$el.prepend(instance.menus[menu].$toggler)
instance.menus[menu].$toggler.on('click', { menu: menu }, instance.toggleMenu)
}
MenuCollapse.prototype.toggleMenu = function (event) {
var menu = event.data.menu || ''
if (instance.isCollapsed(menu)) {
instance.expandMenu(menu)
} else {
instance.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
}())

View File

@@ -1,157 +1,144 @@
var PurpleMine = PurpleMine || {};
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";
PurpleMine.RevisionGraph = function (holder, commitsHash, graphSpace) {
'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");
var XSTEP = 20
var CIRCLE_INROW_OFFSET = 17
var commitsByScmid = commitsHash
var commits = $.map(commitsByScmid, function (val) { return val })
var maxRdmid = commits.length - 1
var commitTableRows = $('table.changesets tr.changeset')
// create graph
if (revisionGraph !== null)
{
revisionGraph.clear();
// create graph
if (revisionGraph !== null) {
revisionGraph.clear()
} else {
revisionGraph = new Raphael(holder)
}
var top = revisionGraph.set()
// init dimensions
var graphXOffset = commitTableRows.first().find('td').first().position().left - $(holder).position().left
var graphYOffset = $(holder).position().top
var graphRightSide = graphXOffset + (graphSpace + 1) * XSTEP
var graphBottom = commitTableRows.last().position().top + commitTableRows.last().height() - graphYOffset
revisionGraph.setSize(graphRightSide, graphBottom)
// init colors
var colors = [
'#e74c3c',
'#584492',
'#019851',
'#ed820c',
'#4183c4'
]
// get more colors if needed
if (graphSpace >= colors.length) {
Raphael.getColor.reset()
for (var k = 0; k <= graphSpace; k++) {
colors.push(Raphael.getColor(0.9))
}
else
{
revisionGraph = new Raphael(holder);
}
var parentCommit
var x, y, parentX, parentY
var path, title
var revisionDotOverlay
$.each(commits, function (index, commit) {
if (!commit.hasOwnProperty('space')) {
commit.space = 0
}
var top = revisionGraph.set();
y = commitTableRows.eq(maxRdmid - commit.rdmid).position().top - graphYOffset + CIRCLE_INROW_OFFSET
x = graphXOffset + XSTEP / 2 + XSTEP * commit.space
// 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
.circle(x, y, 3.5)
.attr({
fill: colors[commit.space],
stroke: 'none'
})
.toFront()
revisionGraph.setSize(graph_right_side, graph_bottom);
// paths to parents
$.each(commit.parent_scmids, function (index, parentScmid) {
parentCommit = commitsByScmid[parentScmid]
// 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;
if (parentCommit) {
if (!parentCommit.hasOwnProperty('space')) {
parentCommit.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;
parentY = commitTableRows.eq(maxRdmid - parentCommit.rdmid).position().top - graphYOffset + CIRCLE_INROW_OFFSET
parentX = graphXOffset + XSTEP / 2 + XSTEP * parentCommit.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);
if (parentCommit.space === commit.space) {
// vertical path
path = revisionGraph.path([
'M', x, y,
'V', parentY])
} else {
// path to a commit in a different branch (Bezier curve)
path = revisionGraph.path([
'M', x, y,
'C', x, y, x, y + (parentY - y) / 2, x + (parentX - x) / 2, y + (parentY - y) / 2,
'C', x + (parentX - x) / 2, y + (parentY - y) / 2, parentX, parentY - (parentY - y) / 2, parentX, parentY
])
}
} else {
// vertical path ending at the bottom of the revisionGraph
path = revisionGraph.path([
'M', x, y,
'V', graphBottom
])
}
top.push(revision_dot_overlay);
});
path
.attr({
stroke: colors[commit.space],
'stroke-width': 1.5
})
.toBack()
})
top.toFront();
};
revisionDotOverlay = revisionGraph.circle(x, y, 10)
revisionDotOverlay
.attr({
fill: '#000',
opacity: 0,
cursor: 'pointer',
href: commit.href
})
$(function()
{
"use strict";
if (window.drawRevisionGraph)
{
// override Redmine's function
window.drawRevisionGraph = PurpleMine.RevisionGraph;
// make graph redraw itself
$(window).resize();
if (commit.refs !== null && commit.refs.length > 0) {
title = document.createElementNS(revisionGraph.canvas.namespaceURI, 'title')
title.appendChild(document.createTextNode(commit.refs))
revisionDotOverlay.node.appendChild(title)
}
});
top.push(revisionDotOverlay)
})
top.toFront()
}
$(function () {
'use strict'
if (window.drawRevisionGraph) {
// override Redmine's function
window.drawRevisionGraph = PurpleMine.RevisionGraph
// make graph redraw itself
$(window).resize()
}
})

View File

@@ -1,128 +1,135 @@
var PurpleMine = PurpleMine || {};
var PurpleMine = PurpleMine || {}
PurpleMine.SidebarToggler = (function()
{
"use strict";
PurpleMine.SidebarToggler = (function () {
'use strict'
var self; // Make it work for browsers without Function.prototype.bind
var instance
var translations = {
en: {
toggler: 'Toggle sidebar'
},
pl: {
toggler: 'Pokaż/ukryj panel boczny'
}
}
function SidebarToggler()
{
self = this;
this.sidebarVisible = true;
this.sidebarHiding = null;
this.$toggler = null;
this.$main = $("#main");
this.$sidebar = $("#sidebar");
// Fix issue with context menu position
if ("relative" === this.$main.css("position"))
{
$("#context-menu").appendTo("#wrapper3");
}
if (window.localStorage)
{
this.sidebarVisible =
null === localStorage.getItem("PurpleMine:sidebarHidden");
}
if (this.$sidebar.length > 0 &&
false === this.$main.hasClass("nosidebar"))
{
this.buildButton();
this.bindKeyHandler();
if (false === this.sidebarVisible)
{
this.hideSidebar(true);
}
}
function SidebarToggler () {
if (instance) {
return instance
}
SidebarToggler.prototype.bindKeyHandler = function()
{
var body = document.getElementsByTagName("body")[0];
instance = this
window.onkeydown = function(event)
{
if (body === event.target && 83 === event.keyCode && // "s"
false === event.ctrlKey && false === event.altKey &&
false === event.shiftKey)
{
self.toggleSidebar();
}
};
};
this.sidebarVisible = true
this.sidebarHiding = null
this.$toggler = null
this.$main = $('#main')
this.$sidebar = $('#sidebar')
this.lang = document.documentElement.lang
SidebarToggler.prototype.buildButton = function()
{
var togglerLabel = document.documentElement.lang === "pl" ?
"Pokaż/ukryj panel boczny" :
"Toggle sidebar",
togglerClass = "sidebar-toggler",
togglerHtml;
if (typeof translations[this.lang] === 'undefined') {
this.lang = 'en'
}
togglerHtml = "<a href=\"javascript:;\" class=\"" + togglerClass +
"\" title=\"" + togglerLabel + "\"></a>";
this.$toggler = $(togglerHtml);
this._ = translations[this.lang]
this.$main.append(this.$toggler);
this.$toggler.on("click", this.toggleSidebar);
};
// Fix issue with context menu position
if (this.$main.css('position') === 'relative') {
$('#context-menu').appendTo('#wrapper3')
}
SidebarToggler.prototype.toggleSidebar = function()
{
if (self.sidebarVisible)
{
self.hideSidebar();
}
else
{
self.showSidebar();
}
};
handleSidebar()
}
SidebarToggler.prototype.hideSidebar = function(immediate)
{
if (true === immediate)
{
this.$sidebar.addClass("sidebar-hiding sidebar-hidden");
}
else
{
this.$sidebar.addClass("sidebar-hiding");
this.sidebarHiding = setTimeout(function sidebarTimeout()
{
self.$sidebar.addClass("sidebar-hidden");
}, 500);
}
function handleSidebar () {
if (window.localStorage) {
instance.sidebarVisible =
localStorage.getItem('PurpleMine:sidebarHidden') === null
}
this.$toggler.addClass("sidebar-hidden");
this.sidebarVisible = false;
if (
instance.$sidebar.length > 0 &&
instance.$main.hasClass('nosidebar') === false
) {
buildButton()
bindKeyHandler()
if (window.localStorage)
{
localStorage.setItem("PurpleMine:sidebarHidden", "x");
}
};
if (instance.sidebarVisible === false) {
instance.hideSidebar(true)
}
}
}
SidebarToggler.prototype.showSidebar = function()
{
clearTimeout(this.sidebarHiding);
this.$sidebar
.removeClass("sidebar-hidden", 0)
.removeClass("sidebar-hiding");
function bindKeyHandler () {
var body = document.getElementsByTagName('body')[0]
this.$toggler.removeClass("sidebar-hidden");
this.sidebarVisible = true;
window.onkeydown = function (event) {
if (
body === event.target &&
event.keyCode === 83 && // "s"
event.ctrlKey === false &&
event.altKey === false &&
event.shiftKey === false
) {
instance.toggleSidebar()
}
}
}
if (window.localStorage)
{
localStorage.removeItem("PurpleMine:sidebarHidden");
}
};
function buildButton () {
var togglerClass = 'sidebar-toggler'
var togglerHtml = '<a href="javascript:;" class="' +
togglerClass +
'" title="' +
instance._.toggler +
'"></a>'
instance.$toggler = $(togglerHtml)
return SidebarToggler;
}());
instance.$main.append(instance.$toggler)
instance.$toggler.on('click', instance.toggleSidebar)
}
SidebarToggler.prototype.toggleSidebar = function () {
if (instance.sidebarVisible) {
instance.hideSidebar()
} else {
instance.showSidebar()
}
}
SidebarToggler.prototype.hideSidebar = function (immediate) {
if (immediate === true) {
this.$sidebar.addClass('sidebar-hiding sidebar-hidden')
} else {
this.$sidebar.addClass('sidebar-hiding')
this.sidebarHiding = setTimeout(function sidebarTimeout () {
instance.$sidebar.addClass('sidebar-hidden')
}, 500)
}
this.$toggler.addClass('sidebar-hidden')
this.sidebarVisible = false
if (window.localStorage) {
localStorage.setItem('PurpleMine:sidebarHidden', 'x')
}
}
SidebarToggler.prototype.showSidebar = function () {
clearTimeout(this.sidebarHiding)
instance.$sidebar.removeClass('sidebar-hidden')
setTimeout(function sidebarTimeout () {
instance.$sidebar.removeClass('sidebar-hiding')
}, 50)
this.$toggler.removeClass('sidebar-hidden')
this.sidebarVisible = true
if (window.localStorage) {
localStorage.removeItem('PurpleMine:sidebarHidden')
}
}
return SidebarToggler
}())

View File

@@ -1,8 +1,9 @@
$(function()
{
/* global PurpleMine */
"use strict";
$(function () {
/* global PurpleMine */
'use strict'
new PurpleMine.SidebarToggler();
new PurpleMine.HistoryTabs();
});
/* eslint-disable no-new */
new PurpleMine.SidebarToggler()
new PurpleMine.HistoryTabs()
new PurpleMine.MenuCollapse()
})

View File

@@ -5,10 +5,9 @@
@import "mixins/center-block";
@import "mixins/clearfix";
@import "mixins/forms";
@import "mixins/gradients";
@import "mixins/opacity";
@import "mixins/image";
@import "mixins/text-overflow";
@import "mixins/vendor-prefixes";
@import "mixins/issues";
@import "mixins/link-variant";
@import "mixins/shadows";

View File

@@ -7,6 +7,7 @@
//
$fixed-layout: false !default;
$flexbox-layout: true !default;
$sidebar-position: left !default;
$color-priorities: true !default;
$color-trackers: true !default;
@@ -14,9 +15,12 @@ $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;
$enable-sidebar-toggler: true !default;
$wiki-page-more-vertical-space: true !default;
$top-menu-collapse: false !default;
//== Colors
@@ -68,12 +72,15 @@ $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.25em !default;
$font-size-h2: 1.75em !default;
@@ -88,6 +95,8 @@ $line-height-computed: floor(($font-size-base * $line-height-base)) !de
$headings-font-weight: 700 !default;
$headings-line-height: 1.4 !default;
$headings-anchor-color: $gray-lighter !default;
$headings-anchor-color-active: $gray-light !default;
//== Wiki
@@ -121,7 +130,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;
@@ -143,9 +151,17 @@ $collapsible-animation-time: .3s !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: rgba(#000, .03) !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;
@@ -181,26 +197,41 @@ $priority-highest-link: #a03 !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-info !default;
$tracker-2-text: $brand-text !default;
$tracker-3-bg: $brand-success !default;
$tracker-3-text: $brand-text !default;
$tracker-4-bg: $brand-primary !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
@@ -217,6 +248,7 @@ $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;
@@ -237,6 +269,8 @@ $changeset-deleted-color: $brand-danger !default;
//
$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;
@@ -248,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
@@ -279,7 +313,7 @@ $input-border-radius-large: $border-radius-large !default;
$input-border-focus: #51a7e8 !default;
$input-color-placeholder: #999 !default;
$input-padding-vertical: 3px !default;
$input-padding-vertical: $btn-padding-vertical !default;
$input-padding-horizontal: 8px !default;
$input-height-base: ($line-height-computed + ($input-padding-vertical * 2) + 2) !default;
@@ -304,10 +338,19 @@ $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-bg-hover: $gray-lightest !default;
$main-menu-link: $gray-darker !default;
$main-menu-link-active: #000 !default;
$main-menu-border: $gray-lighter !default;
@@ -316,23 +359,31 @@ $main-menu-shadow-width: 3px !default;
$main-menu-shadow-active: $brand-primary !default;
$main-menu-padding-vertical: $padding-large-vertical !default;
$main-menu-padding-horizontal: 5px !default;
$main-menu-dropdown-bg: lighten($main-menu-bg, 3%);
//== Pagination
//
$pagination-padding-vertical: $btn-padding-vertical !default;
$pagination-padding-horizontal: 10px !default;
$pagination-color: $link-color !default;
$pagination-bg: #fff !default;
$pagination-bg: #f9f9f9 !default;
$pagination-border: #ddd !default;
$pagination-hover-color: $link-hover-color !default;
$pagination-hover-bg: $gray-lightest !default;
$pagination-hover-border: #ddd !default;
$pagination-hover-border: #bbb !default;
$pagination-active-color: #fff !default;
$pagination-active-bg: $brand-primary !default;
$pagination-active-border: $brand-primary !default;
$pagination-inactive-color: #ccc !default;
$pagination-inactive-bg: #fff !default;
$pagination-inactive-border: #eee !default;
//== Tabs
//
@@ -353,6 +404,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;
@@ -392,19 +444,22 @@ $progress-bar-info-bg: lighten($brand-info, 20%) !default;
//== Panels
//
$panel-body-padding: 15px !default;
$panel-body-padding-vertical: 15px !default;
$panel-body-padding-horizontal: 15px !default;
$panel-body-padding: $panel-body-padding-vertical $panel-body-padding-horizontal !default;
$panel-color: #555 !default;
$panel-bg: #f5f5f5 !default;
$panel-bg: #f9f9f9 !default;
$panel-border: #ccc !default;
$panel-border-radius: $border-radius-base !default;
$panel-shadow: 0 1px 2px rgba(#000, .1),
0 3px 8px rgba(#000, .07) !default;
0 3px 8px rgba(#000, .07) !default;
//== Tooltips
//
$tooltip-bg: #fff !default;
$tooltip-border-width: 0 !default;
$tooltip-border: #ccc !default;
$tooltip-text: $gray-dark !default;
$tooltip-link: $link-color !default;
@@ -427,6 +482,7 @@ $issue-attribute-padding-h: 5px !default;
//== Speech "bubbles"
//
$bubble-gravatar-size: 24px !default;
$bubble-gravatar-space: 12px !default;
$bubble-padding-vertical: 8px !default;
@@ -451,6 +507,8 @@ $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;
//== Content widths
//

View File

@@ -2,6 +2,8 @@
@import "mixins";
@import "lib/normalize";
@import "lib/font-awesome";
//== Redmine's core elements
//
@@ -11,7 +13,6 @@
@import "components/forms";
@import "components/tabs";
@import "components/pagination";
@import "components/top";
@import "components/content";
@import "components/gravatar";
@import "components/list";
@@ -27,6 +28,7 @@
@import "components/elements";
@import "components/jquery-ui";
@import "components/icons";
@import "components/top";
@import "components/jstoolbar";
@import "components/flash";
@import "components/image-base64";

View File

@@ -3,139 +3,132 @@
// --------------------------------------------------
#admin-menu {
#admin-index > & {
ul {
margin: 0;
padding: 0;
}
li {
padding: ($sidebar-padding-vertical + 1px) ($sidebar-padding-horizontal + 3px);
}
a {
display: inline-block;
padding-left: 5px + 20px;
background-position: 0 center;
}
#admin-index > & {
ul {
margin: 0;
padding: 0;
}
li {
list-style-type: none;
> a {
padding-left: $sidebar-padding-horizontal + 5px + 20px;
background-repeat: no-repeat;
background-position: $sidebar-padding-horizontal center;
}
padding: ($sidebar-padding-vertical + 1px) ($sidebar-padding-horizontal + 3px);
}
a {
display: inline-block;
padding-left: 5px + 20px;
background-position: 0 center;
}
}
li {
list-style-type: none;
> a {
padding-left: $sidebar-padding-horizontal + 5px + 20px;
background-repeat: no-repeat;
background-position: $sidebar-padding-horizontal center;
}
}
}
/**
* Groups
*/
//== Groups
//
table.members,
table.memberships {
td.roles {
width: 45%;
}
td.roles {
width: 45%;
}
}
/**
* Permissions
*/
//== Permissions
//
table.permissions {
td.role {
color: $gray;
font-weight: normal;
text-align: center;
vertical-align: bottom;
}
td.role {
color: $gray;
font-weight: normal;
text-align: center;
vertical-align: bottom;
}
}
/**
* Workflows
*/
//== Workflows
//
table.transitions {
td.enabled {
background: $state-success;
}
td.enabled {
background: $state-success;
}
}
#workflow_copy_form select {
width: 200px;
width: 200px;
}
#workflow_form table select {
width: 90%;
min-width: 60px;
width: 90%;
min-width: 60px;
}
table.fields_permissions {
td.readonly {
background: $gray-light;
}
td.readonly {
background: $gray-light;
}
td.required {
background: $state-danger;
}
td.required {
background: $state-danger;
}
}
/**
* Enumerations
*/
//== Enumerations
//
.controller-enumerations.action-index {
#content {
> h3,
> .list {
margin-bottom: $line-height-computed / 2;
}
> p {
margin-bottom: $line-height-computed * 2;
}
#content {
> h3,
> .list {
margin-bottom: $line-height-computed / 2;
}
> p {
margin-bottom: $line-height-computed * 2;
}
}
}
/**
* Settings labels
*/
//== Settings labels
//
fieldset.settings label {
display: block;
display: block;
}
/**
* Settings -> Notifications
*/
//== Settings -> Notifications
//
fieldset#notified_events {
.parent {
padding-left: 20px;
}
.parent {
padding-left: 20px;
}
}
/**
* Settings -> Repositories
*/
//== Settings -> Repositories
//
.settings.enabled_scm {
table {
width: 100%;
}
table {
width: 100%;
}
td.scm_name {
font-weight: bold;
}
td.scm_name {
font-weight: $font-weight-bold;
}
}

View File

@@ -3,144 +3,151 @@
// --------------------------------------------------
html {
overflow-y: scroll;
overflow-y: scroll;
}
body {
margin: 0;
padding: 0;
background-color: $body-bg;
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
line-height: $line-height-base;
margin: 0;
padding: 0;
background-color: $body-bg;
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
font-weight: $font-weight-normal;
line-height: $line-height-base;
}
a {
color: $link-color;
text-decoration: none;
color: $link-color;
text-decoration: none;
&:hover,
&:focus {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&:hover,
&:focus {
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;
}
}
h1 {
margin: 0;
font-size: 2em; // ~28px
line-height: 30px;
margin: 0;
font-size: 2em; // ~28px
line-height: 30px;
}
h2 {
margin-top: 0;
margin-bottom: $line-height-computed;
font-size: 1.43em; // ~20px
font-weight: 500;
line-height: $line-height-computed;
margin-top: 0;
margin-bottom: $line-height-computed;
font-size: 1.43em; // ~20px
font-weight: 500;
line-height: $line-height-computed;
img {
vertical-align: middle;
}
img {
vertical-align: middle;
}
}
h3 {
margin-top: 0;
margin-bottom: $line-height-computed;
font-size: 1.14em; // ~16px
font-weight: 500;
line-height: $line-height-computed;
margin-top: 0;
margin-bottom: $line-height-computed;
font-size: 1.14em; // ~16px
font-weight: 500;
line-height: $line-height-computed;
}
h4 {
margin-top: 0;
font-size: 1em;
font-weight: 500;
margin-top: 0;
font-size: 1em;
font-weight: 500;
}
p {
margin: 0 0 ($line-height-computed / 2);
margin: 0 0 ($line-height-computed / 2);
}
small {
font-size: $font-size-small;
font-size: $font-size-small;
}
table {
th,
td {
padding: $table-condensed-cell-padding $table-cell-padding;
}
}
ul,
ol {
margin-top: 0;
margin-bottom: ($line-height-computed / 2);
margin-top: 0;
margin-bottom: ($line-height-computed / 2);
ul,
ol {
margin-bottom: 0;
}
ul,
ol {
margin-bottom: 0;
}
}
dl {
margin-top: 0;
margin-bottom: $line-height-computed;
margin-top: 0;
margin-bottom: $line-height-computed;
}
dt {
margin-top: $line-height-computed;
font-weight: bold;
margin-top: $line-height-computed;
font-weight: $font-weight-bold;
}
dd {
margin-bottom: $line-height-computed;
margin-left: $line-height-computed;
margin-bottom: $line-height-computed;
margin-left: $line-height-computed;
}
code,
kbd,
pre,
samp {
font-family: $font-family-monospace;
font-size: 1em;
font-family: $font-family-monospace;
font-size: 1em;
}
hr {
margin-top: $line-height-computed;
margin-bottom: $line-height-computed;
border: 0;
border-top: 1px solid $hr-border;
margin-top: $line-height-computed;
margin-bottom: $line-height-computed;
border: 0;
border-top: 1px solid $hr-border;
}
abbr[title] {
border-bottom: 1px dotted $abbr-border-color;
cursor: help;
border-bottom: 1px dotted $abbr-border-color;
cursor: help;
}
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;
margin: 0 0 $line-height-computed;
padding: floor($line-height-computed / 4) $padding-large-horizontal;
border-left: 4px solid $blockquote-border-color;
>:first-child {
margin-top: 0;
}
>:first-child {
margin-top: 0;
}
>:last-child {
margin-bottom: 0;
}
>:last-child {
margin-bottom: 0;
}
}
.clear {
@extend %clearfix;
@extend %clearfix;
}

View File

@@ -5,185 +5,202 @@
input[type="button"],
input[type="submit"],
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);
@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);
@include button-size($btn-padding-vertical, $btn-padding-horizontal, $font-size-base, $line-height-base, $border-radius-base);
display: inline-block;
margin-bottom: 0;
transition: background-color ease-in-out .07s,
border-color ease-in-out .07s,
box-shadow ease-in-out .07s;
border: 1px solid;
font-weight: $btn-font-weight;
text-align: center;
white-space: nowrap;
cursor: pointer;
user-select: none;
@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); // scss-lint:disable DeclarationOrder
&:hover,
&:focus {
text-decoration: none;
}
&:hover,
&:focus {
outline: 0;
text-decoration: none;
}
&:active {
outline: 0;
}
&:active {
outline: 0;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
pointer-events: none; // Future-proof disabling of clicks
box-shadow: none;
@include opacity(.65);
}
&.disabled,
&[disabled],
fieldset[disabled] & {
pointer-events: none; // Future-proof disabling of clicks
box-shadow: none;
opacity: .65;
}
}
/**
* Issue form buttons layout
*/
//== Form buttons layout
//
#issue-form,
#history .journal form {
input[type="submit"] {
margin-right: 5px;
form {
input[type="submit"] {
margin-right: 5px;
+ input {
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
}
+ a {
margin-right: 5px;
}
+ a + a {
margin-left: 5px;
}
+ input {
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
}
+ a {
margin-right: 5px;
+ a {
margin-left: 5px;
}
}
}
}
/**
* Project's repository form buttons layout
*/
//== Repository's 'View differences' button
//
#repository-form {
input[type="submit"] {
margin-right: 5px;
}
}
/**
* Repository's 'View differences' button
*/
form[action*="repository/diff"] {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed / 2;
}
/**
* 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
*/
//== 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;
top: 1px;
margin-left: 5px;
}
#message_sticky,
#message_locked {
position: relative;
top: 1px;
margin-left: 5px;
}
}
/**
* Query builder buttons
*/
//== Button links
//
p.buttons,
.other-formats > span,
#wiki_add_attachment > p {
> a {
display: inline-block;
padding: $input-padding-vertical $input-padding-horizontal;
border: 1px solid $pagination-border;
border-radius: $input-border-radius;
background-color: $pagination-bg;
text-shadow: 1px 1px 0 #fff;
&:hover,
&:focus {
border-color: $pagination-hover-border;
outline: 0;
background-color: $pagination-hover-bg;
text-decoration: none;
}
&:active {
outline: 0;
box-shadow: inset 0 3px 4px -2px rgba(#000, .1);
}
@if $use-font-awesome {
&.icon {
padding-left: 20px + $padding-small-vertical + $input-padding-vertical;
}
} @else {
&.icon,
&.atom {
padding-left: 20px + $input-padding-vertical;
background-position: $padding-small-vertical 50%;
}
}
}
}
//== Action buttons group
//
p.buttons {
margin-bottom: $line-height-computed;
}
//== Export actions
//
.other-formats {
margin: $line-height-computed 0 0;
text-align: right;
.pagination + &,
#wiki_add_attachment + & {
margin-top: 0;
float: right;
}
}
//== Query builder buttons
//
.query-columns {
select {
width: auto !important;
}
select {
width: auto !important; // scss-lint:disable ImportantRule
}
.buttons {
vertical-align: middle;
.buttons {
vertical-align: middle;
input[type="button"] {
width: 32px;
margin-bottom: 4px;
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
}
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); // scss-lint:disable DeclarationOrder
}
}
}
/**
* Button for toggling multiselect (in filters)
*/
//== Button for toggling multiselect (in filters)
//
a[data-expands],
.toggle-multiselect {
position: relative;
top: 3px;
padding: 2px 8px;
border: 1px solid;
border-radius: $border-radius-base;
@extend %image-toggle-plus;
background-repeat: no-repeat;
background-position: 2px 2px;
cursor: pointer;
vertical-align: top;
@include user-select(none);
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
@extend %image-toggle-plus;
position: relative;
top: 3px;
padding: 2px 8px;
border: 1px solid;
border-radius: $border-radius-base;
background-repeat: no-repeat;
background-position: 2px 2px;
cursor: pointer;
vertical-align: top;
user-select: none;
@include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); // scss-lint:disable DeclarationOrder
}
a[data-expands] {
display: inline-block;
margin-right: 10px;
padding: 10px;
display: inline-block;
margin-right: 10px;
padding: 10px;
img {
display: none;
}
> .toggle-multiselect {
padding: 0;
border: 0 none;
background: transparent;
}
img {
display: none;
}
}

View File

@@ -4,81 +4,81 @@
table.cal {
width: 100%;
margin-bottom: $line-height-computed;
width: 100%;
margin-bottom: $line-height-computed;
border: 1px solid $table-border-color;
thead th {
width: 14%;
padding: $table-condensed-cell-padding;
background-color: $table-bg-hover;
&.week-number {
width: auto;
}
}
tbody tr {
height: 100px;
}
td {
padding: $table-condensed-cell-padding;
border: 1px solid $table-border-color;
font-size: $font-size-small;
vertical-align: top;
thead th {
width: 14%;
padding: $table-condensed-cell-padding;
background-color: $table-bg-hover;
&.week-number {
width: auto;
}
&.week-number {
border: 0 none;
background-color: $table-bg-hover;
font-size: 1em;
text-align: right;
}
tbody tr {
height: 100px;
p.day-num {
float: right;
font-size: $font-size-large;
text-align: right;
}
td {
padding: $table-condensed-cell-padding;
border: 1px solid $table-border-color;
font-size: $font-size-small;
vertical-align: top;
&.week-number {
border: 0 none;
background-color: $table-bg-hover;
font-size: 1em;
text-align: right;
}
p.day-num {
float: right;
font-size: $font-size-large;
text-align: right;
}
&.odd p.day-num {
color: $gray-light;
}
&.today {
background: $highlight-bg;
p.day-num {
font-weight: bold;
}
}
&.odd p.day-num {
color: $gray-light;
}
&.today {
background: $highlight-bg;
p.day-num {
font-weight: $font-weight-bold;
}
}
}
}
table.cal .starting a,
p.cal.legend .starting,
table.cal .ending a,
p.cal.legend .ending {
padding-left: 20px;
background-image: url("../../../images/bullet_go.png");
background-repeat: no-repeat;
background-position: 0 center;
padding-left: 20px;
background-image: url("../../../images/bullet_go.png");
background-repeat: no-repeat;
background-position: 0 center;
}
table.cal .ending a,
p.cal.legend .ending {
padding-left: 20px;
background-image: url("../../../images/bullet_end.png");
padding-left: 20px;
background-image: url("../../../images/bullet_end.png");
}
table.cal .starting.ending a,
p.cal.legend .starting.ending {
padding-left: 20px;
background-image: url("../../../images/bullet_diamond.png");
padding-left: 20px;
background-image: url("../../../images/bullet_diamond.png");
}
p.cal.legend {
span {
display: block;
}
span {
display: block;
}
}

View File

@@ -3,361 +3,360 @@
// --------------------------------------------------
.syntaxhl {
div {
display: inline;
}
div {
display: inline;
}
.line-numbers {
margin: 0 5px 0 0;
padding: 2px 4px;
background-color: #eee;
}
.line-numbers {
margin: 0 5px 0 0;
padding: 2px 4px;
background-color: #eee;
}
.code pre {
overflow: auto;
}
.code pre {
overflow: auto;
}
.debug {
background: #00f !important;
color: #fff !important;
}
.debug {
// scss-lint:disable ImportantRule
background: #00f !important;
color: #fff !important;
}
.annotation {
color: #007;
}
.annotation {
color: #007;
}
.attribute-name {
color: #b48;
}
.attribute-name {
color: #b48;
}
.attribute-value {
color: #700;
}
.attribute-value {
color: #700;
}
.binary {
color: #509;
}
.binary {
color: #509;
}
.char {
color: #d20;
.char {
color: #d20;
.content {
color: #d20;
}
.delimiter {
color: #710;
}
}
.class {
color: #795da3;
font-weight: bold;
}
.class-variable {
color: #369;
}
.color {
color: #0a0;
}
.comment {
color: #969896;
.char,
.delimiter {
color: #969896;
}
}
.complex {
color: #a08;
}
.constant {
color: #795da3;
}
.decorator {
color: #b0b;
}
.definition {
color: #099;
font-weight: bold;
.content {
color: #d20;
}
.delimiter {
color: #000;
color: #710;
}
}
.class {
color: #795da3;
font-weight: $font-weight-bold;
}
.class-variable {
color: #369;
}
.color {
color: #0a0;
}
.comment {
color: #969896;
.char,
.delimiter {
color: #969896;
}
}
.complex {
color: #a08;
}
.constant {
color: #795da3;
}
.decorator {
color: #b0b;
}
.definition {
color: #099;
font-weight: $font-weight-bold;
}
.delimiter {
color: #000;
}
.directive {
color: #088;
font-weight: $font-weight-bold;
}
.doc {
color: #970;
}
.doc-string {
color: #d42;
font-weight: $font-weight-bold;
}
.doctype {
color: #34b;
}
.entity {
color: #800;
font-weight: $font-weight-bold;
}
.error {
background-color: #faa;
color: #f00;
}
.escape {
color: #666;
}
.exception {
color: #c00;
font-weight: $font-weight-bold;
}
.float {
color: #06d;
}
.function {
color: #06b;
font-weight: $font-weight-bold;
}
.global-variable {
color: #d70;
}
.hex {
color: #02b;
}
.imaginary {
color: #f00;
}
.include {
color: #b44;
font-weight: $font-weight-bold;
}
.inline {
background-color: rgba(#000, .05);
color: #000;
}
.inline-delimiter {
color: #666;
font-weight: $font-weight-bold;
}
.instance-variable {
color: #33b;
}
.integer {
color: #0086b3;
}
.key {
color: #606;
.char {
color: #60f;
}
.directive {
color: #088;
font-weight: bold;
.delimiter {
color: #404;
}
}
.keyword {
color: #b3113e;
font-weight: $font-weight-bold;
}
.label {
color: #970;
font-weight: $font-weight-bold;
}
.local-variable {
color: #369;
}
.namespace {
color: #707;
font-weight: $font-weight-bold;
}
.octal {
color: #40e;
}
.predefined {
color: #b21;
}
.predefined-constant {
color: #009595;
}
.predefined-type {
color: #0a5;
font-weight: $font-weight-bold;
}
.preprocessor {
color: #579;
}
.pseudo-class {
color: #00c;
font-weight: $font-weight-bold;
}
.regexp {
background-color: hsla(300, 100%, 50%, .06);
.content {
color: #808;
}
.doc {
color: #970;
.delimiter {
color: #404;
}
.doc-string {
color: #d42;
font-weight: bold;
.modifier {
color: #c2c;
}
}
.reserved {
color: #080;
font-weight: $font-weight-bold;
}
.shell {
background-color: hsla(120, 100%, 50%, .06);
.content {
color: #2b2;
}
.doctype {
color: #34b;
.delimiter {
color: #161;
}
}
.entity {
color: #800;
font-weight: bold;
.string {
.char,
.content,
.delimiter,
.modifier {
color: #df5000;
}
}
.error {
background-color: #faa;
color: #f00;
.symbol {
color: #d33;
.content,
.delimiter {
color: #d33;
}
}
.escape {
color: #666;
}
.tag {
color: #070;
}
.exception {
color: #c00;
font-weight: bold;
}
.type {
color: #339;
font-weight: $font-weight-bold;
}
.float {
color: #06d;
}
.value {
color: #088;
}
.function {
color: #06b;
font-weight: bold;
}
.variable {
color: #037;
}
.global-variable {
color: #d70;
}
.hex {
color: #02b;
}
.imaginary {
color: #f00;
}
.include {
color: #b44;
font-weight: bold;
}
.inline {
background-color: rgba(#000, .05);
color: #000;
}
.inline-delimiter {
color: #666;
font-weight: bold;
}
.instance-variable {
color: #33b;
}
.integer {
color: #0086b3;
}
.key {
color: #606;
.char {
color: #60f;
}
.delimiter {
color: #404;
}
}
.keyword {
color: #b3113e;
font-weight: bold;
}
.label {
color: #970;
font-weight: bold;
}
.local-variable {
color: #369;
}
.namespace {
color: #707;
font-weight: bold;
}
.octal {
color: #40e;
}
.predefined {
color: #b21;
}
.predefined-constant {
color: #009595;
}
.predefined-type {
color: #0a5;
font-weight: bold;
}
.preprocessor {
color: #579;
}
.pseudo-class {
color: #00c;
font-weight: bold;
}
.regexp {
background-color: hsla(300, 100%, 50%, .06);
.content {
color: #808;
}
.delimiter {
color: #404;
}
.modifier {
color: #c2c;
}
}
.reserved {
color: #080;
font-weight: bold;
}
.shell {
background-color: hsla(120, 100%, 50%, .06);
.content {
color: #2b2;
}
.delimiter {
color: #161;
}
}
.string {
.char,
.content,
.delimiter,
.modifier {
color: #df5000;
}
}
.symbol {
color: #d33;
.content,
.delimiter {
color: #d33;
}
}
.tag {
color: #070;
}
.type {
color: #339;
font-weight: bold;
}
.value {
color: #088;
}
.variable {
color: #037;
}
.insert {
background: hsla(120, 100%, 50%, .12);
.insert {
background: hsla(120, 100%, 50%, .12);
background: transparent;
color: #0c0;
font-weight: $font-weight-bold;
}
.eyecatcher {
margin: -1px;
border: 1px solid hsla(120, 100%, 25%, .5);
border-top: 0 none;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
background-color: hsla(120, 100%, 50%, .2);
}
}
.delete {
background: hsla(0, 100%, 50%, .12);
.delete {
background: hsla(0, 100%, 50%, .12);
background: transparent;
color: #c00;
font-weight: $font-weight-bold;
}
.eyecatcher {
margin: -1px;
border: 1px solid hsla(0, 100%, 45%, .5);
border-bottom: 0 none;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
background-color: hsla(0, 100%, 50%, .2);
}
}
.change {
background: #007;
color: #bbf;
.change {
background: #007;
color: #bbf;
color: #88f;
}
}
.head {
background: #505;
color: #f8f;
.head {
background: #505;
color: #f8f;
.filename {
color: #fff;
}
color: #f4f;
}
.delete .eyecatcher {
margin: -1px;
border: 1px solid hsla(0, 100%, 45%, .5);
border-bottom: 0 none;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
background-color: hsla(0, 100%, 50%, .2);
}
.insert {
.eyecatcher {
margin: -1px;
border: 1px solid hsla(120, 100%, 25%, .5);
border-top: 0 none;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
background-color: hsla(120, 100%, 50%, .2);
}
.insert {
background: transparent;
color: #0c0;
font-weight: bold;
}
}
.delete .delete {
background: transparent;
color: #c00;
font-weight: bold;
}
.change .change {
color: #88f;
}
.head .head {
color: #f4f;
.filename {
color: #fff;
}
}
}

View File

@@ -1,5 +1,9 @@
#main {
@if $flexbox-layout {
display: flex;
} @else {
@extend %clearfix;
}
}
@@ -8,8 +12,15 @@
// --------------------------------------------------
#content {
padding: $padding-side;
padding: $padding-side;
@if $flexbox-layout {
$side-space: $sidebar-width + $padding-side * 2;
flex: 1 1 auto;
width: calc(100% - #{$side-space});
} @else {
overflow: hidden;
}
}
@@ -18,137 +29,145 @@
// --------------------------------------------------
#sidebar {
width: $sidebar-width - ($sidebar-padding-horizontal * 2) - 1px;
padding: $padding-side $sidebar-padding-horizontal;
padding: $padding-side $sidebar-padding-horizontal;
@if $flexbox-layout {
flex: 0 0 $sidebar-width-computed;
@if $sidebar-position == "left" {
order: -1;
} @else {
order: 1;
}
} @else {
width: $sidebar-width-computed;
float: $sidebar-position;
}
@media screen and (min-width: 1px) {
// scss-lint:disable VendorPrefixes
$border: $sidebar-link-active-border;
$body: $body-bg;
@media screen and (min-width: 1px) {
@if not $flexbox-layout {
padding-bottom: $padding-side * 3;
}
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 $sidebar-position == "left" {
border-right: 1px solid $sidebar-link-active-border;
box-shadow: inset -9px 0 6px -6px rgba(0, 0, 0, .05);
} @else {
border-left: 1px solid $sidebar-link-active-border;
box-shadow: inset 9px 0 6px -6px rgba(0, 0, 0, .05);
}
}
.nosidebar & {
margin: 0;
padding: 0;
border: 0 none;
@if $flexbox-layout {
flex: 0 0 auto;
} @else {
width: 0;
float: none;
}
}
h3 {
margin-top: $line-height-computed * 1.5;
}
> h3:first-child,
> form:first-child > h3 {
margin-top: 0;
}
ul {
margin: 0 0 ($line-height-computed / 2);
padding: 0;
@if $sidebar-position == "left" {
margin-right: -($sidebar-padding-horizontal);
} @else {
margin-left: -($sidebar-padding-horizontal);
}
}
li {
margin: 0;
padding: 0;
list-style-type: none;
> a {
display: block;
padding: $sidebar-padding-vertical $sidebar-padding-horizontal;
border: 1px solid transparent;
@if $sidebar-position == "left" {
border-left-width: 3px;
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
border-right-width: 3px;
border-radius: 0 $border-radius-large $border-radius-large 0;
}
&:hover {
background-color: $sidebar-link-hover-bg;
text-decoration: none;
}
&.selected {
border-color: $sidebar-link-active-border;
background-color: $sidebar-link-active-bg;
color: $sidebar-link-active-text;
@if $sidebar-position == "left" {
padding-right: $sidebar-padding-horizontal + 1px;
background-position: right 0;
box-shadow: inset -9px 0 6px -6px rgba(0, 0, 0, .05);
margin-right: -1px;
border-right-color: $body-bg;
border-left-color: $sidebar-link-active-side;
box-shadow: -3px 1px 2px rgba(0, 0, 0, .1);
} @else {
padding-left: $sidebar-padding-horizontal + 1px;
background-position: left 0;
box-shadow: inset 9px 0 6px -6px rgba(0, 0, 0, .05);
}
}
.nosidebar & {
width: 0;
margin: 0;
padding: 0;
float: none;
}
h3 {
margin-top: $line-height-computed * 1.5;
}
> h3:first-child,
> form:first-child > h3 {
margin-top: 0;
}
ul {
margin: 0 0 ($line-height-computed / 2);
padding: 0;
@if $sidebar-position == "left" {
margin-right: -($sidebar-padding-horizontal);
} @else {
margin-left: -($sidebar-padding-horizontal);
}
}
li {
margin: 0;
padding: 0;
list-style-type: none;
> a {
display: block;
padding: $sidebar-padding-vertical $sidebar-padding-horizontal;
border: 1px solid transparent;
@if $sidebar-position == "left" {
border-left-width: 3px;
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
border-right-width: 3px;
border-radius: 0 $border-radius-large $border-radius-large 0;
}
&:hover {
background-color: $sidebar-link-hover-bg;
text-decoration: none;
}
&.selected {
border-color: $sidebar-link-active-border;
background-color: $sidebar-link-active-bg;
color: $sidebar-link-active-text;
@if $sidebar-position == "left" {
margin-right: -1px;
border-right-color: $body-bg;
border-left-color: $sidebar-link-active-side;
box-shadow: -3px 1px 2px rgba(0, 0, 0, .1);
} @else {
margin-left: -1px;
border-right-color: $sidebar-link-active-side;
border-left-color: $body-bg;
box-shadow: 3px 1px 2px rgba(0, 0, 0, .1);
}
}
margin-left: -1px;
border-right-color: $sidebar-link-active-side;
border-left-color: $body-bg;
box-shadow: 3px 1px 2px rgba(0, 0, 0, .1);
}
}
}
}
}
#footer {
margin: $line-height-computed $padding-side;
padding-top: $line-height-computed;
border-top: 1px solid $gray-lighter;
color: $gray-light;
font-size: $font-size-small;
margin: 0 $padding-side $line-height-computed;
padding-top: $line-height-computed;
border-top: 1px solid $gray-lighter;
color: $gray-light;
font-size: $font-size-small;
}
@if $fixed-layout {
@media screen and (min-width: $screen-sm-min) {
#main-menu ul,
#main {
width: $width-sm;
margin-right: auto;
margin-left: auto;
}
@media screen and (min-width: $screen-sm-min) {
#main-menu ul,
#main {
width: $width-sm;
margin-right: auto;
margin-left: auto;
}
}
@media screen and (min-width: $screen-md-min) {
#main-menu ul,
#main {
width: $width-md;
}
@media screen and (min-width: $screen-md-min) {
#main-menu ul,
#main {
width: $width-md;
}
}
@media screen and (min-width: $screen-lg-min) {
#main-menu ul,
#main {
width: $width-lg;
}
@media screen and (min-width: $screen-lg-min) {
#main-menu ul,
#main {
width: $width-lg;
}
}
#main-menu ul > li > a {
padding: $main-menu-padding-vertical 1px;
}
#main-menu ul > li > a {
padding: $main-menu-padding-vertical 1px;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -8,85 +8,87 @@
.nodata,
.warning,
.conflict {
margin-bottom: $line-height-computed;
padding: $padding-large-vertical $padding-large-horizontal;
padding-left: $padding-large-horizontal + 8px + 16px;
border: 1px solid;
border-radius: $border-radius-large;
margin-bottom: $line-height-computed;
padding: $padding-large-vertical $padding-large-horizontal;
padding-left: $padding-large-horizontal + 8px + 16px;
border: 1px solid;
border-radius: $border-radius-large;
@if $use-font-awesome {
@extend %fa-icon;
@if $use-font-awesome {
@extend %fa-icon;
&:before {
margin-left: -(8px + 16px);
float: left;
line-height: $line-height-computed;
}
} @else {
background-repeat: no-repeat;
background-position: $padding-large-horizontal 50%;
&::before {
margin-left: -(8px + 16px);
float: left;
line-height: $line-height-computed;
}
} @else {
background-repeat: no-repeat;
background-position: $padding-large-horizontal 50%;
}
p:last-child,
ol:last-child,
ul:last-child {
margin-bottom: 0;
}
>:last-child {
margin-bottom: 0;
}
}
@mixin flash($color, $background, $border, $link, $icon) {
color: $color;
background-color: $background;
border-color: $border;
color: $color;
background-color: $background;
border-color: $border;
@if $use-font-awesome {
@if $icon == "true" { $icon: $fa-var-check; }
@elseif $icon == "warning" { $icon: $fa-var-warning; }
@elseif $icon == "exclamation" { $icon: $fa-var-exclamation-circle; }
&:before {
content: $icon;
}
} @else {
background-image: url(../../../images/#{$icon}.png);
@if $use-font-awesome {
@if $icon == "true" {
$icon: $fa-var-check;
} @elseif $icon == "warning" {
$icon: $fa-var-warning;
} @elseif $icon == "exclamation" {
$icon: $fa-var-exclamation-circle;
}
a {
color: $link;
font-weight: bold;
&::before {
content: $icon;
}
} @else {
background-image: url(../../../images/#{$icon}.png);
}
a {
color: $link;
font-weight: $font-weight-bold;
}
}
.warning,
.conflict,
.nodata {
@include flash($flash-warning-text, $flash-warning-bg, $flash-warning-border, $flash-warning-link, "warning");
@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");
@include flash($flash-success-text, $flash-success-bg, $flash-success-border, $flash-success-link, "true");
}
#errorExplanation,
.flash.error {
@include flash($flash-error-text, $flash-error-bg, $flash-error-border, $flash-error-link, "exclamation");
@include flash($flash-error-text, $flash-error-bg, $flash-error-border, $flash-error-link, "exclamation");
}
.nodata {
padding-left: $padding-large-horizontal;
text-align: center;
padding-left: $padding-large-horizontal;
text-align: center;
@if $use-font-awesome {
&:before {
margin-left: 0;
float: none;
}
@if $use-font-awesome {
&::before {
margin-left: 0;
float: none;
}
}
}
#errorExplanation {
h2,
p {
display: none;
}
h2,
p {
display: none;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,75 +3,53 @@
// --------------------------------------------------
.gantt_hdr {
position: absolute;
top: 0;
height: 16px;
border: 1px solid $gray-lighter;
border-left-width: 0;
text-align: center;
overflow: hidden;
position: absolute;
top: 0;
height: 16px;
border: 1px solid $gray-lighter;
border-left-width: 0;
text-align: center;
overflow: hidden;
&.nwday {
background-color: $gray-lightest;
}
&.nwday {
background-color: $gray-lightest;
}
}
.gantt_subjects {
font-size: $font-size-small;
font-size: $font-size-small;
div {
height: 16px;
line-height: 16px;
@include text-overflow;
}
div {
@include text-overflow;
height: 16px;
line-height: 16px;
}
}
.task {
position: absolute;
height: 8px;
margin: 2px 0 0;
padding: 0;
font-size: 11px;
line-height: 16px;
white-space: nowrap;
position: absolute;
height: 8px;
margin: 2px 0 0;
padding: 0;
font-size: 11px;
line-height: 16px;
white-space: nowrap;
&.label {
width: 100%;
margin-top: 0;
&.label {
width: 100%;
margin-top: 0;
&.project,
&.version {
font-weight: bold;
}
&.project,
&.version {
font-weight: $font-weight-bold;
}
}
}
.task_late {
border: 1px solid darken($progress-bar-danger-bg, 10%);
background-color: $progress-bar-danger-bg;
}
.task_done {
border: 1px solid darken($progress-bar-success-bg, 10%);
background-color: $progress-bar-success-bg;
}
.task_todo {
border: 1px solid darken($progress-bg, 20%);
background-color: $progress-bg;
&.parent {
border: 1px solid darken($progress-bg, 30%);
background-color: darken($progress-bg, 10%);
}
}
.task.parent {
&.parent {
height: 3px;
}
.task.parent.marker {
&.starting {
&.marker {
&.starting {
position: absolute;
top: -1px;
left: 0;
@@ -79,9 +57,9 @@
height: 16px;
margin-left: -4px;
background: url("../../../images/task_parent_end.png") no-repeat 0 0;
}
}
&.ending {
&.ending {
position: absolute;
top: -1px;
right: 0;
@@ -89,98 +67,102 @@
height: 16px;
margin-left: -4px;
background: url("../../../images/task_parent_end.png") no-repeat 0 0;
}
}
}
}
.task_late {
border: 1px solid darken($progress-bar-danger-bg, 10%);
background-color: $progress-bar-danger-bg;
}
.task_done {
border: 1px solid darken($progress-bar-success-bg, 10%);
background-color: $progress-bar-success-bg;
}
.task_todo {
border: 1px solid darken($progress-bg, 20%);
background-color: $progress-bg;
&.parent {
border: 1px solid darken($progress-bg, 30%);
background-color: darken($progress-bg, 10%);
}
}
.project,
.version {
&.task_late,
&.task_done,
&.task_todo {
height: 2px;
margin-top: 3px;
}
&.task_late,
&.task_done,
&.task_todo {
height: 2px;
margin-top: 3px;
}
&.task_todo {
border: 1px solid darken($progress-bar-info-bg, 10%);
background-color: $progress-bar-info-bg;
}
&.task_todo {
border: 1px solid darken($progress-bar-info-bg, 10%);
background-color: $progress-bar-info-bg;
}
&.marker {
margin-top: 1px;
margin-left: -4px;
border: 0 none;
background-image: url("../../../images/version_marker.png");
background-repeat: no-repeat;
}
&.marker {
margin-top: 1px;
margin-left: -4px;
border: 0 none;
background-image: url("../../../images/version_marker.png");
background-repeat: no-repeat;
}
}
.version-behind-schedule a,
.issue-behind-schedule a {
color: $brand-warning;
@if $color-trackers {
&.issue {
background-color: $brand-warning;
color: $brand-text;
font-weight: 700;
}
}
.version-behind-schedule,
.issue-behind-schedule {
color: $brand-warning;
}
.version-overdue a,
.issue-overdue a,
.project-overdue a {
color: $brand-danger;
@if $color-trackers {
&.issue {
background-color: $brand-danger;
color: $brand-text;
font-weight: 700;
}
}
.version-overdue,
.issue-overdue,
.project-overdue {
color: $brand-danger;
}
/**
* Tooltips
*/
//== Tooltips
//
.tooltip {
position: relative;
z-index: 24;
position: relative;
z-index: 24;
&:hover {
z-index: 25;
}
&:hover {
z-index: 25;
.tip {
display: none;
position: absolute;
top: 9px;
left: 24px;
width: 270px;
padding: $padding-base-vertical;
border: 1px 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);
display: block;
}
}
@if $sidebar-position == "left" {
tr > td:last-child & {
.tip {
right: 2px;
left: auto;
}
}
}
.tip {
@include nice-shadow(3);
display: none;
position: absolute;
top: 9px;
left: 24px;
width: 270px;
padding: $padding-base-vertical;
border: $tooltip-border-width solid $tooltip-border;
background-color: $tooltip-bg;
color: $tooltip-text;
font-size: $font-size-small;
text-align: left;
}
&:hover {
.tip {
display: block;
}
@if $sidebar-position == "left" {
tr > td:last-child & {
.tip {
right: 2px;
left: auto;
}
}
}
}

View File

@@ -3,32 +3,35 @@
// --------------------------------------------------
img.gravatar {
border-radius: $border-radius-large;
line-height: 1;
overflow: hidden;
vertical-align: middle;
border-radius: $border-radius-large;
line-height: 1;
overflow: hidden;
vertical-align: middle;
h2 &,
h3 &,
h4 & {
position: relative;
top: -1px;
margin-right: 5px;
}
h2 &,
h3 &,
h4 & {
position: relative;
top: -1px;
margin-right: 5px;
}
}
// For Administration -> /users
//== Administration -> /users
//
.username img.gravatar {
position: relative;
top: 1px;
margin-right: .5em;
vertical-align: top;
position: relative;
top: 1px;
margin-right: .5em;
vertical-align: top;
}
/* Used on 12px Gravatar img tags without the icon background */
//== Gravatar
// Used on 12px Gravatar img tags without the icon background
.icon-gravatar {
margin-right: 5px;
float: left;
margin-right: 5px;
float: left;
}

File diff suppressed because it is too large Load Diff

View File

@@ -2,27 +2,43 @@
// Base64 encoded images
// --------------------------------------------------
/* ACI = AutoComplete Indicator */
// ACI = AutoComplete Indicator
%image-aci {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKBAMAAAAnY0GXAAAAD1BMVEUAAACzs7Ozs7Ozs7Ozs7NJvZFvAAAABHRSTlMA5kpJG2qUMwAAABtJREFUCNdjIBMYCkMRDIg4QhBuAUUhKCIPAAAlaQNk5qF21gAAAABJRU5ErkJggg==);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKBAMAAAAnY0GXAAAAD1BMVEUAAACzs7Ozs7Ozs7Ozs7NJvZFvAAAABHRSTlMA5kpJG2qUMwAAABtJREFUCNdjIBMYCkMRDIg4QhBuAUUhKCIPAAAlaQNk5qF21gAAAABJRU5ErkJggg==);
}
%image-arrow-left {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgF1mUUUMBtml7EIAAAAjSURBVAjXYyAAWGEMRyhdJAih2QyhDCZBhAhcDVwXwhziAACuywJHmKAVPgAAAABJRU5ErkJggg==);
%image-arrow-up {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMAgFIFe2wwFmA2CKQAAAArSURBVAjXYyASGBlAGYoKEJpNUAzCKBEUKQDRzIGCgsEgBpOgoKAQA5kAAOOzAuqv1pGxAAAAAElFTkSuQmCC);
}
%image-arrow-right {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAG1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUUeIgAAAACXRSTlMAgF1mUUUMBwa6cf6pAAAAIklEQVQI12PADwJgDBEYQ1ADxhBOgDIEFdBF1GG6EOYQCQC/wwKE7b2bNAAAAABJRU5ErkJggg==);
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==);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOBAMAAADtZjDiAAAAIVBMVEUAAABVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUMftYpAAAACnRSTlMArIDn/dahwzIKIC4f+wAAADxJREFUCNdjYEhJACEGBk8HEGIQXrDYeMFiAYZVK1YB0QKGVSAApBcwMQgwMSDohaKChqKCxItXgc0pAADUBx5bh1ZBCgAAAABJRU5ErkJggg==);
}
%image-toggle-minus {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAQSURBVAjXY8AK+D+AEDYAAC8fAf+FxiPoAAAAAElFTkSuQmCC);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAQSURBVAjXY8AK+D+AEDYAAC8fAf+FxiPoAAAAAElFTkSuQmCC);
}
%image-toggle-plus {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAVSURBVAjXY0AGjA1QxP8BiBBcJAAAdjIFBZTfDZQAAAAASUVORK5CYII=);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMAgJsrThgAAAAVSURBVAjXY0AGjA1QxP8BiBBcJAAAdjIFBZTfDZQAAAAASUVORK5CYII=);
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,86 +3,83 @@
// --------------------------------------------------
/**
* Component containers
*/
//== Component containers
//
.ui-widget {
&,
input,
select,
textarea,
button {
font-family: inherit;
font-size: inherit;
}
&,
input,
select,
textarea,
button {
font-family: inherit;
font-size: inherit;
}
}
/**
* Widgets
*/
//== Widgets
//
.ui-widget-content {
border: 1px solid $panel-border;
background: $body-bg;
color: $text-color;
border: 1px solid $panel-border;
background: $body-bg;
color: $text-color;
a {
color: $text-color;
}
a {
color: $text-color;
}
}
.ui-widget-header {
border: 0 none;
background: $header-bg;
border: 0 none;
background: $header-bg;
color: $header-text;
font-weight: $font-weight-bold;
a {
color: $header-text;
font-weight: bold;
}
a {
color: $header-text;
a,
button {
&.ui-state-default {
border-color: $header-bg;
background: $header-bg;
color: $header-text;
}
a,
button {
&.ui-state-default {
border-color: $header-bg;
background: $header-bg;
color: $header-text;
}
&.ui-state-hover,
&.ui-state-focus {
border-color: darken($header-bg, 12%);
background: darken($header-bg, 10%);
}
.ui-icon {
background-image: url("/stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
&.ui-state-hover,
&.ui-state-focus {
border-color: darken($header-bg, 12%);
background: darken($header-bg, 10%);
}
.ui-icon {
background-image: url("/stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
}
}
/**
* Interaction states
*/
//== Interaction states
//
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default {
border: 1px solid $component-border;
background: $component-bg;
color: $component-color;
font-weight: normal;
box-shadow: none;
border: 1px solid $component-border;
background: $component-bg;
color: $component-color;
font-weight: normal;
box-shadow: none;
}
.ui-state-default a,
.ui-state-default a:link,
.ui-state-default a:visited {
color: $component-color;
text-decoration: none;
color: $component-color;
text-decoration: none;
}
.ui-state-hover,
@@ -91,10 +88,10 @@
.ui-state-focus,
.ui-widget-content .ui-state-focus,
.ui-widget-header .ui-state-focus {
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
}
.ui-state-hover a,
@@ -105,184 +102,199 @@
.ui-state-focus a:hover,
.ui-state-focus a:link,
.ui-state-focus a:visited {
color: $component-active-color;
text-decoration: none;
color: $component-active-color;
text-decoration: none;
}
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active {
border: 1px solid $component-active-border;
background: $component-active-bg;
color: $component-active-color;
font-weight: normal;
border: 1px solid $component-active-border;
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-icon {
background-image: url("/stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
}
.ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited {
color: $component-active-color;
text-decoration: none;
color: $component-active-color;
text-decoration: none;
}
.ui-sortable-helper {
@include nice-shadow(4);
}
/**
* Menu (e.g. autocomplete)
*/
//== Menu (e.g. autocomplete)
//
.ui-menu {
padding: 3px;
border-radius: $panel-border-radius;
box-shadow: $panel-shadow;
@include nice-shadow(2);
padding: 3px;
border-radius: $panel-border-radius;
}
.ui-menu-item {
border-radius: $panel-border-radius;
border-radius: $panel-border-radius;
}
/**
* Dialogs
*/
//== Dialogs
//
.modal {
background: $body-bg;
z-index: 50;
background: $body-bg;
z-index: 50;
h3.title {
display: none;
}
h3.title {
display: none;
}
p.buttons {
margin-bottom: 0;
text-align: right;
}
p.buttons {
margin-bottom: 0;
text-align: right;
}
}
.ui-dialog {
&.ui-widget-content {
padding: 3px;
border: 0 none;
box-shadow: $panel-shadow;
}
&.ui-widget-content {
@include nice-shadow(5);
padding: 3px;
border: 0 none;
}
.ui-dialog-content {
padding: 1em;
}
.ui-dialog-content {
padding: 1em;
}
.ui-dialog-titlebar-close {
right: .5em;
}
.ui-dialog-titlebar-close {
right: .5em;
}
input[type="button"] {
@include button-variant($btn-link-color, $btn-link-bg, $btn-link-border);
}
input[type="button"] {
@include button-variant($btn-link-color, $btn-link-bg, $btn-link-border);
}
}
.ui-widget-overlay {
background: #000;
background: #000;
}
/**
* Datepicker
*/
//== Datepicker
//
img.ui-datepicker-trigger {
margin-left: 4px;
cursor: pointer;
vertical-align: middle;
margin-left: 4px;
cursor: pointer;
vertical-align: middle;
}
.ui-datepicker {
padding: 3px;
box-shadow: $panel-shadow;
@include nice-shadow(3);
padding: .3em .6em .6em;
border: 0 none;
.ui-datepicker-header {
padding: .3em;
.ui-datepicker-header {
margin: 0 -.3em;
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-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 {
margin: 0;
table-layout: fixed;
.ui-state-default {
border-color: $body-bg;
background: $body-bg;
}
.ui-datepicker-prev {
left: .3em;
.ui-state-focus,
.ui-state-hover {
border-color: $component-active-bg;
background: $component-active-bg;
color: $component-active-color;
}
.ui-datepicker-next {
right: .3em;
.ui-state-active {
border-color: $highlight-border;
background: $highlight-bg;
color: $highlight-text;
}
.ui-datepicker-prev,
.ui-datepicker-next {
top: .3em;
border: 0 none;
background: transparent;
.ui-datepicker-today {
.ui-state-highlight {
border-color: $component-active-border;
}
}
.ui-datepicker-title {
margin: 0 (1.8em + .3em);
.ui-datepicker-current-day {
.ui-state-active {
border-color: $highlight-border;
}
}
select.ui-datepicker-month,
select.ui-datepicker-year {
width: 49%;
height: 1.8em;
margin: 0;
td {
padding: 0 1px 1px 0;
text-align: right;
a {
padding-right: .4em;
padding-left: 0;
border-radius: $border-radius-base;
}
&.ui-datepicker-week-col {
padding-right: $table-condensed-cell-padding;
color: $gray-light;
}
}
}
select.ui-datepicker-year {
margin-left: 1%;
}
.ui-datepicker-calendar {
table-layout: fixed;
.ui-state-default {
border-color: $body-bg;
background: $body-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;
}
.ui-datepicker-today {
.ui-state-highlight {
border-color: $component-active-border;
}
}
.ui-datepicker-current-day {
.ui-state-active {
border-color: $highlight-border;
}
}
td {
padding: 0 1px 1px 0;
text-align: right;
a {
padding-right: .4em;
padding-left: 0;
border-radius: $border-radius-base;
}
&.ui-datepicker-week-col {
padding-right: $table-condensed-cell-padding;
color: $gray-light;
}
}
.ui-datepicker-buttonpane {
@include clearfix;
margin: .6em 0 0;
padding: .6em 0 0;
button {
margin: 0;
padding: $btn-padding-vertical $btn-padding-horizontal;
}
}
}

View File

@@ -3,173 +3,173 @@
// --------------------------------------------------
.jstElements {
@extend %clearfix;
@extend %clearfix;
.box & {
padding: 0;
}
.box & {
padding: 0;
button {
margin-bottom: 5px;
box-shadow: none;
vertical-align: top;
margin-right: 2px;
}
.jstb_help {
.jstSpacer {
margin-right: 4px;
}
@media (min-width: $screen-md) {
.jstb_help {
margin-right: 0;
margin-left: -6px;
float: right;
}
}
.box & {
button {
margin-right: 2px;
}
@media (min-width: $screen-lg) {
button {
margin-right: 4px;
}
.jstSpacer {
margin-right: 4px;
}
@media (min-width: $screen-lg) {
button {
margin-right: 4px;
}
.jstSpacer {
margin-right: 6px;
}
}
.jstSpacer {
margin-right: 6px;
}
}
}
button {
margin-bottom: 5px;
box-shadow: none;
vertical-align: top;
}
}
@if $use-font-awesome
{
.jstElements {
%jstb-icon {
padding: 0;
background: $body-bg;
background-image: none;
color: $btn-default-color;
@include fa-icon();
@if $use-font-awesome {
.jstElements {
%jstb-icon {
@include fa-icon;
padding: 0;
background: $body-bg;
background-image: none;
color: $btn-default-color;
&:before {
text-align: center;
}
}
.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 {
text-align: center;
}
}
.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; }
}
.jstb_precode,
// 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; }
}
}
}

View File

@@ -3,514 +3,620 @@
// --------------------------------------------------
table.list {
width: 100%;
width: 100%;
margin-bottom: $line-height-computed;
font-size: $font-size-list;
.autoscroll & {
margin-bottom: 0;
}
&.changesets {
margin-bottom: $line-height-computed;
font-size: $font-size-list;
}
.autoscroll & {
margin-bottom: 0;
th,
.table-list-header {
padding: $table-cell-padding;
border: 2px solid $table-border-color;
border-width: $table-list-header-border;
color: $gray;
vertical-align: bottom;
a {
color: $gray-darker;
}
}
tr.ui-sortable-helper {
background-color: $highlight-bg;
}
@if $table-list-highlight-rows {
> tbody > tr:hover {
background-color: $table-bg-hover;
}
}
td {
padding: $table-cell-padding;
border: 1px solid $table-border-color;
border-width: $table-list-item-border;
text-align: center;
vertical-align: top;
&.checkbox {
width: 15px;
padding: $table-cell-padding 0 0;
input {
margin: 2px 0 0;
}
}
th {
padding: $table-cell-padding;
border-bottom: 2px solid $table-border-color;
color: $gray;
vertical-align: bottom;
a {
color: $gray-darker;
}
&.id,
&.parent,
&.relations,
&.tracker {
width: 2%;
}
td {
padding: $table-cell-padding;
border-bottom: 1px solid $table-border-color;
text-align: left;
vertical-align: top;
&.checkbox {
width: 15px;
padding: $table-cell-padding 0 0;
text-align: center;
input {
margin: 2px 0 0;
}
}
&.id,
&.parent,
&.relations,
&.tracker {
width: 2%;
}
&.id {
font-weight: bold;
text-align: right;
}
&.estimated_hours,
&.remaining_hours,
&.spent_hours,
&.story_points,
&.int,
&.float {
text-align: right;
}
&.buttons {
text-align: right;
white-space: nowrap;
a {
padding-right: 5px;
}
}
&.project,
&.created_on,
&.updated_on,
&.start_date,
&.due_date,
&.is_private,
&.reorder,
&.bool,
&.date {
text-align: center;
}
&.reorder {
white-space: nowrap;
}
&.id {
font-weight: $font-weight-bold;
text-align: right;
}
caption {
padding: .5em .5em .5em 0;
text-align: left;
&.assigned_to,
&.author,
&.activity,
&.category,
&.comments,
&.description,
&.fixed_version,
&.name,
&.priority,
&.relations,
&.roles,
&.status,
&.string,
&.subject,
&.text,
&.user {
text-align: left;
}
&.estimated_hours,
&.remaining_hours,
&.spent_hours,
&.story_points,
&.int,
&.float {
text-align: right;
}
&.reorder {
white-space: nowrap;
}
}
td,
div {
&.buttons {
text-align: right;
white-space: nowrap;
a {
padding-right: 5px;
}
img {
vertical-align: middle;
}
}
}
caption {
padding: .5em .5em .5em 0;
text-align: left;
}
}
.table-list-cell {
display: table-cell;
padding: $table-cell-padding;
vertical-align: top;
}
tr.project {
.name a {
white-space: nowrap;
}
.name a {
white-space: nowrap;
}
&.closed,
&.archived,
&.closed a,
&.archived a {
color: #aaa;
}
&.closed,
&.archived,
&.closed a,
&.archived a {
color: #aaa;
}
&.idnt .name span {
padding-left: 16px;
@extend %image-arrow-right;
background-repeat: no-repeat;
background-position: -5px 50%;
}
&.idnt .name span {
@extend %image-arrow-right;
padding-left: 16px;
background-repeat: no-repeat;
background-position: -5px 50%;
}
@for $i from 1 through 9 {
&.idnt-#{$i} .name {
padding-left: $table-cell-padding + 16px * ($i - 1);
}
@for $i from 1 through 9 {
&.idnt-#{$i} .name {
padding-left: $table-cell-padding + 16px * ($i - 1);
}
}
}
tr.issue {
text-align: center;
white-space: nowrap;
text-align: center;
white-space: nowrap;
&.string,
&.text,
.subject,
.category {
white-space: normal;
.string,
.text,
.subject,
.category {
white-space: normal;
}
.relations {
text-align: left;
white-space: normal;
span {
white-space: nowrap;
}
}
.autoscroll & {
.subject > a {
display: block;
&.idnt .subject a {
@extend %image-arrow-right;
padding-left: 10px;
background-repeat: no-repeat;
background-position: -5px 0;
}
.controller-issues.action-index & {
&.assigned-to-me {
.assigned_to,
.subject {
a {
font-weight: $font-weight-bold;
}
}
}
}
&.relations {
text-align: left;
white-space: normal;
span {
white-space: nowrap;
}
}
&.done_ratio table.progress {
margin-right: auto;
margin-left: auto;
}
&.idnt .subject a {
padding-left: 16px;
@extend %image-arrow-right;
background-repeat: no-repeat;
@if $color-trackers {
background-position: 0 0;
} @else {
background-position: -5px 0;
}
}
.controller-issues.action-index & {
&.assigned-to-me {
.assigned_to,
.subject {
a {
font-weight: bold;
}
}
}
}
@for $i from 1 through 9 {
&.idnt-#{$i} .subject {
padding-left: $table-cell-padding + 16px * ($i - 1);
}
@for $i from 1 through 9 {
&.idnt-#{$i} .subject {
padding-left: $table-cell-padding + 16px * ($i - 1);
}
}
}
.issues {
.description {
padding: 0;
text-align: left;
.description {
padding: 0;
text-align: left;
@media screen and (min-width: $screen-sm-min) {
> .wiki {
max-height: 20em;
padding: $padding-wiki;
overflow: auto;
}
}
pre {
white-space: normal;
}
@media screen and (min-width: $screen-sm-min) {
> .wiki {
max-height: 20em;
padding: $padding-wiki;
overflow: auto;
}
}
pre {
white-space: normal;
}
}
}
tr {
span.expander {
margin-left: 0;
padding-left: 8px;
@extend %image-toggle-plus;
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
@include user-select(none);
}
span.expander {
@extend %image-toggle-plus;
margin-left: 0;
padding-left: 8px;
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
user-select: none;
}
&.open span.expander {
@extend %image-toggle-minus;
}
&.open span.expander {
@extend %image-toggle-minus;
}
}
// /* do you */ .even {
// }
td.center {
text-align: center;
text-align: center;
}
.issue-report {
table-layout: fixed;
table-layout: fixed;
}
tr.builtin td.name {
font-style: italic;
font-style: italic;
}
tr.entry {
border: 1px solid $gray-lighter;
border: 1px solid $gray-lighter;
td {
white-space: nowrap;
td {
white-space: nowrap;
&.filename {
width: 30%;
text-align: left;
}
&.filename_no_report {
width: 70%;
text-align: left;
}
&.size {
text-align: right;
}
&.revision,
&.author {
text-align: center;
}
&.age {
text-align: right;
}
&.filename {
width: 30%;
text-align: left;
}
&.file td {
&.filename a,
&.filename_no_report a {
margin-left: 16px;
}
&.filename_no_report {
width: 70%;
text-align: left;
}
&.size {
text-align: right;
}
&.revision,
&.author {
text-align: center;
}
&.age {
text-align: right;
}
}
&.file td {
&.filename a,
&.filename_no_report a {
margin-left: 16px;
}
}
}
/**
* Priorities
*/
// scss-lint:disable SpaceAfterComma
//== Priorities
//
@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);
@include priority(".priority-high3", $priority-high3-bg, $priority-high3-text, $priority-high3-link);
@include priority(".priority-high2", $priority-high2-bg, $priority-high2-text, $priority-high2-link);
@include priority(".priority-highest", $priority-highest-bg, $priority-highest-text, $priority-highest-link);
// scss-lint:disable SpaceAfterComma
@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);
@include priority(".priority-high3", $priority-high3-bg, $priority-high3-text, $priority-high3-link);
@include priority(".priority-high2", $priority-high2-bg, $priority-high2-text, $priority-high2-link);
@include priority(".priority-highest", $priority-highest-bg, $priority-highest-text, $priority-highest-link);
}
@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);
transform: rotate(-4deg);
transition: border-color .1s;
border-top: 2px solid rgba($tracker-default-text, .95);
content: "";
}
&: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 {
@if $table-list-color-odd-rows {
.odd {
background-color: $table-bg-accent;
}
}
@if $table-list-color-even-rows {
.even {
background-color: $table-bg-accent;
}
}
/**
* List groups
*/
//== List groups
//
tr.group {
> td {
border-bottom: 1px solid $table-border-color;
font-weight: bold;
text-align: left;
> td {
border-bottom: 1px solid $table-border-color;
font-weight: $font-weight-bold;
text-align: left;
a {
color: $brand-primary;
}
a {
color: $brand-primary;
}
}
.toggle-all {
display: none;
color: $gray-light;
font-weight: normal;
}
.toggle-all {
display: none;
color: $gray-light;
font-weight: normal;
}
&:hover .toggle-all {
display: inline;
}
&:hover .toggle-all {
display: inline;
}
.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;
}
.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;
}
}
.toggle-all:hover {
text-decoration: none;
text-decoration: none;
}
/**
* Time entry in report
*/
//== Time entry in report
//
tr.time-entry {
text-align: center;
text-align: center;
td.project,
td.spent_on,
td.activity {
width: 6em;
}
td.project,
td.spent_on,
td.activity {
width: 6em;
}
td.user {
width: 12em;
}
td.user {
width: 12em;
}
td.issue,
td.comments {
text-align: left;
white-space: normal;
}
td.issue,
td.comments {
text-align: left;
white-space: normal;
}
td.hours {
font-weight: bold;
}
td.hours {
font-weight: $font-weight-bold;
}
}
.time-entries,
tr.time-entry {
td.hours {
width: 1%;
text-align: right;
white-space: nowrap;
td.hours {
width: 1%;
text-align: right;
white-space: nowrap;
.hours-dec {
font-size: .9em;
}
.hours-dec {
font-size: .9em;
}
}
}
.mypage-box {
td.hours {
font-weight: bold;
td.hours {
font-weight: $font-weight-bold;
em {
font-style: normal;
}
em {
font-style: normal;
}
}
tr.time-entry td.hours {
font-weight: normal;
}
tr.time-entry td.hours {
font-weight: normal;
}
}
/**
* Wiki page history entry
*/
//== Wiki page history entry
//
tr.wiki-page-version {
td.updated_on,
td.author {
text-align: center;
}
td.updated_on,
td.author {
text-align: center;
}
}
/**
* Project versions list
*/
//== Project versions list
//
tr.version {
&.closed {
color: $gray;
&.closed {
color: $gray;
a {
color: $gray;
}
a {
color: $gray;
}
}
td {
&.date,
&.status,
&.sharing {
text-align: center;
white-space: nowrap;
}
td {
&.date,
&.status,
&.sharing {
text-align: center;
white-space: nowrap;
}
}
}
/**
* Users list
*/
//== Users list
//
tr.user {
td {
width: 13%;
white-space: nowrap;
td {
width: 13%;
white-space: nowrap;
&.username,
&.firstname,
&.lastname {
text-align: left;
}
&.email {
width: 18%;
text-align: left;
}
&.username,
&.firstname,
&.lastname {
text-align: left;
}
&.locked,
&.registered,
&.locked a,
&.registered a {
color: $gray-light;
&.email {
width: 18%;
text-align: left;
}
}
&.locked,
&.registered,
&.locked a,
&.registered a {
color: $gray-light;
}
}
/**
* Plugins list
*/
//== Plugins list
//
table.plugins {
.configure {
text-align: right;
}
.configure {
text-align: right;
}
span.name {
margin-bottom: .5em;
font-size: $font-size-large;
font-weight: bold;
}
span.name {
margin-bottom: .5em;
font-size: $font-size-large;
font-weight: $font-weight-bold;
}
.description,
.url {
display: block;
}
.description,
.url {
display: block;
}
}
/**
* Files list
*/
//== Files list
//
table.files {
tbody th {
text-align: left;
tbody th {
text-align: left;
}
tr.file td {
&.filename {
padding-left: 20px + $table-cell-padding;
text-align: left;
}
tr.file td {
&.filename {
padding-left: 20px + $table-cell-padding;
text-align: left;
}
&.digest {
font-family: $font-family-monospace;
}
&.digest {
font-family: $font-family-monospace;
}
}
}
/**
* Admin lists
*/
//== Admin lists
//
.controller-enumerations {
td.name {
width: 50%;
}
td.name {
width: 50%;
}
td.tick,
td.reorder {
width: 15%;
}
td.tick,
td.reorder {
width: 15%;
text-align: center;
}
}
//== Totals
//
.query-totals {
> span {
margin-right: $padding-base-horizontal;
&:last-child {
margin-right: 0;
}
}
.value {
font-weight: $font-weight-bold;
}
}

View File

@@ -6,42 +6,42 @@ $login-form-width: 350px;
$login-input-width: 200px;
#login-form {
margin: $line-height-computed * 2 auto;
margin: $line-height-computed * 2 auto;
table {
margin: auto;
}
@media screen and (min-width: $screen-sm-min) {
width: $login-form-width;
padding: $panel-body-padding;
border: 1px solid $panel-border;
border-radius: $border-radius-base;
background-color: $panel-bg;
color: $panel-color;
box-shadow: $panel-shadow;
table {
margin: auto;
width: 100%;
}
@media screen and (min-width: $screen-sm-min) {
width: $login-form-width;
padding: $panel-body-padding;
border: 1px solid $panel-border;
border-radius: $border-radius-base;
background-color: $panel-bg;
color: $panel-color;
box-shadow: $panel-shadow;
table {
width: 100%;
}
td {
width: 90%; // make columns expand
padding: $table-cell-padding;
}
td {
width: 90%; // make columns expand
padding: $table-cell-padding;
}
}
}
#username,
#password,
#openid_url {
width: $login-input-width;
width: $login-input-width;
}
#openid_url {
padding-right: 8px + 24px;
background-image: url("../../../images/openid-bg.gif");
background-repeat: no-repeat;
background-position: ($login-input-width - 24px) center;
padding-right: 8px + 24px;
background-image: url("../../../images/openid-bg.gif");
background-repeat: no-repeat;
background-position: ($login-input-width - 24px) center;
}

View File

@@ -2,35 +2,82 @@
// Pagination (multiple pages)
// --------------------------------------------------
.pagination {
.previous,
.next,
.page {
display: inline-block;
padding: $padding-small-vertical $padding-small-horizontal;
border: 1px solid $pagination-border;
border-radius: $border-radius-base;
background-color: $pagination-bg;
color: $pagination-color;
text-decoration: none;
.pages {
display: inline-block;
margin: 0;
padding: 0;
}
&:hover,
&:focus {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
}
}
li {
display: inline-block;
margin-right: .3em;
list-style: none;
}
.page.current {
border-color: $pagination-active-border;
background-color: $pagination-active-bg;
cursor: default;
color: $pagination-active-color;
z-index: 2;
}
li > a,
li > span,
> .previous,
> .next,
> .page {
display: inline-block;
padding: $pagination-padding-vertical $pagination-padding-horizontal;
border: 1px solid $pagination-border;
border-radius: $border-radius-base;
background-color: $pagination-bg;
color: $pagination-color;
text-decoration: none;
white-space: nowrap;
}
.items,
.per-page {
margin-left: $padding-small-vertical;
li > span {
border-color: $pagination-inactive-border;
background-color: $pagination-inactive-bg;
color: $pagination-inactive-color;
cursor: default;
}
.spacer > span {
padding: 0;
border: 0 none;
background: transparent;
color: $text-color;
}
a {
&:hover,
&:focus {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
}
}
.page.current,
.current > span {
border-color: $pagination-active-border;
background-color: $pagination-active-bg;
color: $pagination-active-color;
cursor: default;
z-index: 2;
}
.items,
.per-page {
display: inline-block;
margin: ($pagination-padding-vertical + 1px) 0 ($pagination-padding-vertical + 1px) $pagination-padding-vertical;
}
}
p.pagination {
margin-bottom: 0;
float: left;
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
clear: both;
}
}

View File

@@ -5,30 +5,34 @@
// --------------------------------------------------
#backlogs_view_issues_sidebar {
> a {
display: block;
padding: $sidebar-padding-vertical $sidebar-padding-horizontal;
border: 1px solid transparent;
> a {
display: block;
padding: $sidebar-padding-vertical $sidebar-padding-horizontal;
border: 1px solid transparent;
@if $sidebar-position == "left" {
margin-right: -($sidebar-padding-horizontal);
border-left-width: 3px;
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
margin-left: -($sidebar-padding-horizontal);
border-right-width: 3px;
border-radius: 0 $border-radius-large $border-radius-large 0;
}
&:hover {
background-color: $sidebar-link-hover-bg;
text-decoration: none;
}
+ br {
display: none;
}
@if $sidebar-position == "left" {
margin-right: -($sidebar-padding-horizontal);
border-left-width: 3px;
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
margin-left: -($sidebar-padding-horizontal);
border-right-width: 3px;
border-radius: 0 $border-radius-large $border-radius-large 0;
}
&:hover {
background-color: $sidebar-link-hover-bg;
text-decoration: none;
}
+ br {
display: none;
}
}
.burndown_chart {
max-width: $sidebar-width-computed;
}
}
@@ -38,40 +42,52 @@
// --------------------------------------------------
@if $use-font-awesome {
.icon.icon-start,
.icon.icon-stop {
background-image: none;
.tt_list_button {
@extend %fa-icon;
font-size: 14px;
}
.icon,
.tt_list_button {
&.icon-start,
&.icon-stop {
background-image: none;
}
.icon.icon-start {
&.icon-start {
color: $icon-success-color;
&:hover,
&:focus {
color: $icon-success-color;
}
&:hover,
&:focus {
color: $icon-success-color;
}
&:before {
content: $fa-var-clock-o;
}
&::before {
content: $fa-var-clock-o;
}
}
.icon.icon-stop {
&.icon-stop {
color: $icon-danger-color;
&:hover,
&:focus {
color: $icon-danger-color;
}
&:hover,
&:focus {
color: $icon-danger-color;
}
&:before {
content: $fa-var-history;
}
&::before {
content: $fa-var-history;
}
}
}
.time-tracker-quick-menu:empty {
display: none;
}
.time-tracker-quick-menu:empty {
display: none;
}
#user-time-bookings-list {
clear: both;
}
}
@@ -80,124 +96,130 @@
// 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;
.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;
}
}
.avatar {
width: 64px;
max-width: 64px;
overflow: hidden;
}
.department.issue.details {
> p {
clear: both;
}
> .author {
margin-bottom: 0;
clear: none;
}
.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;
.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;
}
}
}
th,
td {
padding: $table-condensed-cell-padding;
text-align: left;
vertical-align: top;
}
.person_data {
td.avatar,
td.name {
padding: 0 0 $table-cell-padding;
}
td.avatar {
width: 40px;
}
td.name {
h4 {
margin: 0;
letter-spacing: 0;
}
}
.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;
}
}
}
}
@@ -207,13 +229,99 @@
// --------------------------------------------------
#toolbar-code-options {
select {
width: 100%;
select {
width: 100%;
}
.buttons {
white-space: nowrap;
}
}
//
// Redmine Stuff To Do
// https://github.com/raafael911/stuff_to_do_plugin
// --------------------------------------------------
#stuff-to-do {
p {
@if $sidebar-position == "left" {
margin-right: -($sidebar-padding-horizontal);
} @else {
margin-left: -($sidebar-padding-horizontal);
}
.buttons {
> input {
margin-left: .5em;
}
> a {
display: block;
padding: $sidebar-padding-vertical $sidebar-padding-horizontal;
@if $sidebar-position == "left" {
border-radius: $border-radius-large 0 0 $border-radius-large;
} @else {
border-radius: 0 $border-radius-large $border-radius-large 0;
}
&:hover {
background-color: $sidebar-link-hover-bg;
text-decoration: none;
}
}
> br {
display: none;
}
}
}
// Note: the following applies to the latest version
// of Stuff To Do plugin from the master branch.
.controller-stuff_to_do {
.menu {
label,
select {
margin-bottom: 5px;
}
}
.stuff-to-do-item {
padding: $table-cell-padding;
border: 1px solid $table-border-color;
border-width: $table-list-item-border;
background-color: $body-bg;
}
.pane {
ol {
padding: 0;
}
.issue-details {
width: 80%;
margin: 0;
@if $use-font-awesome {
a {
img {
display: none;
}
}
}
}
.progress {
width: 20%;
margin: 0;
}
.estimate {
top: $table-cell-padding - 1px;
right: $table-cell-padding;
left: auto;
width: 20%;
font-size: $font-size-small;
text-align: right;
}
}
}

View File

@@ -3,39 +3,39 @@
// --------------------------------------------------
@media print {
#top-menu,
#header,
#main-menu,
#sidebar,
#footer,
#wiki_add_attachment,
.hide-when-print,
.contextual,
.other-formats {
display: none;
}
#top-menu,
#header,
#main-menu,
#sidebar,
#footer,
#wiki_add_attachment,
.hide-when-print,
.contextual,
.other-formats {
display: none;
}
#main {
background: #fff;
}
#main {
background: #fff;
}
#content {
width: 100%;
margin: 0;
padding: 0;
border: 0;
background: #fff;
overflow: visible !important;
}
#content {
width: 100%;
margin: 0;
padding: 0;
border: 0;
background: #fff;
overflow: visible !important; // scss-lint:disable ImportantRule
}
.autoscroll {
overflow-x: visible;
}
.autoscroll {
overflow-x: visible;
}
table.list {
th,
td {
border: 1px solid #aaa;
}
table.list {
th,
td {
border: 1px solid #aaa;
}
}
}

View File

@@ -3,52 +3,57 @@
// --------------------------------------------------
table.progress {
margin-top: 1px;
margin-right: 5px;
float: left;
border: 1px solid rgba(#000, .1);
empty-cells: show;
width: 80px;
margin-top: 1px;
margin-right: 5px;
float: left;
border: 1px solid rgba(#000, .1);
empty-cells: show;
td.done_ratio & {
margin-right: auto;
margin-left: auto;
float: none;
.version-overview & {
width: 40em;
}
td.done_ratio & {
margin-right: auto;
margin-left: auto;
float: none;
}
td {
height: 12px;
padding: 0;
border: 0 none;
&.closed {
background-color: $progress-bar-success-bg;
}
td {
height: 12px;
padding: 0;
border: 0 none;
&.closed {
background-color: $progress-bar-success-bg;
}
&.done {
background-color: mix($progress-bar-success-bg, $progress-bg, 50%);
}
&.todo {
background-color: $progress-bg;
}
&.done {
background-color: mix($progress-bar-success-bg, $progress-bg, 50%);
}
.issue & td {
padding: 0;
&.todo {
background-color: $progress-bg;
}
}
.issue & td {
padding: 0;
}
}
p {
&.percent {
margin-bottom: 0;
font-size: $font-size-small;
}
&.percent {
margin-bottom: 0;
font-size: $font-size-small;
}
&.progress-info {
margin-top: -4px;
margin-bottom: 0;
clear: left;
color: #777;
font-size: 80%;
}
&.progress-info {
margin-top: -4px;
margin-bottom: 0;
clear: left;
color: #777;
font-size: 80%;
}
}

View File

@@ -4,124 +4,124 @@
#activity dl,
#search-results {
margin-left: $padding-side;
margin-left: $padding-side;
}
#activity,
#search-results {
dd {
margin-bottom: $line-height-computed;
padding-top: .1em;
}
dd {
margin-bottom: $line-height-computed;
padding-top: .1em;
}
dt {
padding-left: $padding-side;
background-repeat: no-repeat;
background-position: 0 center;
}
dt {
padding-left: $padding-side;
background-repeat: no-repeat;
background-position: 0 center;
}
span.project:after {
content: " -";
}
span.project::after {
content: " -";
}
span.description {
display: block;
color: $gray;
font-style: italic;
}
span.description {
display: block;
color: $gray;
font-style: italic;
}
}
#activity {
$activity-avatar: 24px;
$activity-avatar-space: 5px;
$activity-indent: 20px;
$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;
}
.time {
color: $gray;
}
@if $use-gravatars {
$activity-indent: $activity-indent + $activity-avatar + $activity-avatar-space;
.gravatar {
margin-top: -2px;
margin-right: $activity-avatar-space;
float: left;
}
}
}
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;
}
.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;
&.grouped {
margin-left: $activity-indent;
}
dd {
font-size: $font-size-small;
overflow: hidden;
&.grouped {
margin-left: $activity-indent;
}
}
}
#search-results-counts {
float: right;
float: right;
ul {
@extend %clearfix;
}
ul {
@extend %clearfix;
}
li {
margin-left: 1em;
float: left;
list-style-type: none;
}
li {
margin-left: 1em;
float: left;
list-style-type: none;
}
}
// Search form
#search-form {
input,
select {
margin-right: 5px;
}
input,
select {
margin-right: 5px;
}
label {
display: inline-block;
margin-right: 5px;
@include checkbox;
}
label {
@include checkbox;
display: inline-block;
margin-right: 5px;
}
p:last-child {
margin-bottom: 0;
}
p:last-child {
margin-bottom: 0;
}
}
// Search results highlight
.highlight {
background-color: #fe8;
background-color: #fe8;
&.token-1 { background-color: #fba; }
&.token-2 { background-color: #afb; }
&.token-3 { background-color: #aef; }
&.token-1 { background-color: #fba; }
&.token-2 { background-color: #afb; }
&.token-3 { background-color: #aef; }
}

View File

@@ -3,142 +3,165 @@
// --------------------------------------------------
.tabs {
$tabs-buttons-width: 40px;
$tabs-buttons-width: 40px;
position: relative;
margin-bottom: $line-height-computed;
position: relative;
margin-bottom: $line-height-computed;
overflow: hidden;
@if not $flexbox-layout {
padding-right: $tabs-buttons-width;
overflow: hidden;
}
> ul {
width: 2000px; // stop it from breaking
margin: 0;
padding-left: 0;
border-bottom: 1px solid $tab-border;
list-style: none;
@extend %clearfix;
> ul {
margin: 0;
padding-left: 0;
border-bottom: 1px solid $tab-border;
list-style: none;
> li {
margin-bottom: -1px;
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;
&:hover,
&:focus {
border-color: $tab-hover-border $tab-hover-border $tab-border;
background-color: $tab-hover-bg;
text-decoration: none;
}
&.selected {
border-color: $tab-active-border $tab-active-border $tab-active-bg;
background: $tab-active-bg;
color: $tab-active-text;
}
}
}
@if $flexbox-layout {
display: flex;
flex-wrap: nowrap;
height: $line-height-computed + $tab-padding-vertical * 2 + 1px;
} @else {
width: 2000px;
@extend %clearfix;
}
.tabs-buttons {
position: absolute;
top: 0;
right: 0;
width: $tabs-buttons-width;
padding-left: 5px;
background-color: $body-bg;
> li {
margin-bottom: -1px;
> button {
width: 50%;
height: $tab-padding-vertical * 2 + $line-height-computed;
margin: 0;
padding: 0;
float: left;
border: 0 none;
background-color: $body-bg;
background-repeat: no-repeat;
background-position: center center;
box-shadow: none;
opacity: .8;
@include transition(opacity .1s);
@if $flexbox-layout {
flex: 0 1 auto;
} @else {
float: left;
}
&:hover,
&:active {
opacity: 1;
}
> 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;
&:active {
background-color: $tab-hover-bg;
}
&:hover,
&:focus {
border-color: $tab-hover-border $tab-hover-border $tab-border;
background-color: $tab-hover-bg;
text-decoration: none;
}
.tab-left {
@extend %image-arrow-left;
}
.tab-right {
@extend %image-arrow-right;
&.selected {
border-color: $tab-active-border $tab-active-border $tab-active-bg;
background: $tab-active-bg;
color: $tab-active-text;
}
}
}
}
.tabs-buttons {
position: absolute;
top: 0;
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 + 1px;
margin: 0;
padding: 0;
float: left;
transition: opacity .1s;
border: 0 none;
border-radius: 0;
background-color: $body-bg;
background-repeat: no-repeat;
background-position: center center;
box-shadow: none;
opacity: .8;
&:hover,
&:active {
opacity: 1;
}
&:active {
background-color: $tab-hover-bg;
}
}
.tab-left {
@extend %image-arrow-left;
}
.tab-right {
@extend %image-arrow-right;
}
}
}
/**
* Specific tabs content layout
*/
//== Specific tabs content layout
//
#tab-content-modules fieldset p {
margin: 3px 0 4px;
margin: 3px 0 4px;
}
#tab-content-members,
#tab-content-memberships,
#tab-content-users {
.splitcontentleft {
width: 65%;
.splitcontentleft {
width: 65%;
}
.splitcontentright {
width: 35%;
}
fieldset {
margin-bottom: $line-height-computed;
legend {
font-weight: $font-weight-bold;
}
.splitcontentright {
width: 35%;
label {
@include checkbox;
display: block;
margin-bottom: 3px;
}
fieldset {
margin-bottom: $line-height-computed;
legend {
font-weight: bold;
}
label {
display: block;
margin-bottom: 3px;
@include checkbox;
}
label[for=principal_search] {
padding-left: 0;
}
label[for=principal_search] {
padding-left: 0;
}
}
.pagination .items {
margin-left: 0;
}
.pagination .items {
margin-left: 0;
}
}
#tab-content-members,
#tab-content-users {
#principals {
max-height: 400px;
overflow: auto;
}
#principals {
max-height: 400px;
overflow: auto;
}
}
#tab-content-memberships .splitcontentright select {
width: 100%;
width: 100%;
}
#principals_for_new_member {
.pagination {
float: none;
}
}

View File

@@ -3,46 +3,131 @@
// --------------------------------------------------
#top-menu {
padding: $padding-small-vertical $padding-side;
background: $top-menu-bg;
color: $top-menu-text;
font-size: $font-size-small;
@extend %clearfix;
@extend %clearfix;
position: relative;
padding: $padding-small-vertical $padding-side;
background: $top-menu-bg;
color: $top-menu-text;
font-size: $font-size-small;
ul {
margin: 0;
padding: 0;
}
@if $top-menu-collapse {
$toggler-position-v: $padding-small-vertical + 1px;
$toggler-position-h: 1px;
li {
display: inline;
margin: 0 .5em 0 0;
padding: 0;
list-style-type: none;
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 {
color: $top-menu-link;
font-weight: bold;
display: inline-block;
margin-bottom: $padding-small-vertical;
white-space: nowrap;
}
&:hover {
color: $top-menu-link-hover;
text-decoration: none;
.top-menu-toggler {
display: block;
position: absolute;
top: $toggler-position-v;
@if $sidebar-position == "left" {
left: $toggler-position-h;
} @else {
right: $toggler-position-h;
}
user-select: none;
@if $use-font-awesome {
font-size: 14px;
&::before {
content: $fa-var-caret-square-o-down;
}
}
} @else {
@extend %image-arrow-down-white;
}
#loggedas {
float: right;
@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;
}
li {
display: inline;
margin: 0 .5em 0 0;
padding: 0;
list-style-type: none;
}
a {
color: $top-menu-link;
font-weight: $font-weight-bold;
&:hover {
color: $top-menu-link-hover;
text-decoration: none;
}
}
#loggedas {
margin-left: 1em;
float: right;
}
}
#account {
float: right;
float: right;
> ul > li {
margin-right: 0;
margin-left: .5em;
}
> ul > li {
margin-right: 0;
margin-left: .5em;
}
}
@@ -51,126 +136,243 @@
// --------------------------------------------------
#header {
position: relative;
background-color: $header-bg;
color: $header-text;
@extend %clearfix;
position: relative;
background-color: $header-bg;
color: $header-text;
> h1 {
padding: 10px $padding-side;
> h1 {
padding: $header-padding-vertical $header-padding-horizontal;
> .root {
color: $header-root;
font-weight: 500;
}
@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;
> .ancestor {
font-weight: 500;
}
@if $use-retina-logo {
@include img-retina("../images/logo/logo@2x.png", $logo-image-width, $logo-image-height);
}
}
a {
color: $header-link;
.root {
color: $header-root;
font-weight: 500;
}
.ancestor {
font-weight: 500;
}
.root,
.ancestor {
display: inline-block;
}
.current-project {
display: inline-block;
}
}
a {
color: $header-link;
}
}
#quick-search {
margin-top: ($header-title-line-height + $padding-large-vertical * 2 - $input-height-base - 1px) / 2;
margin-right: $padding-side;
float: right;
color: $header-text;
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;
label {
font-weight: 500;
label {
font-weight: 500;
}
form {
display: inline;
}
input,
select {
margin-left: 5px;
transition: color ease-in-out .1s,
background-color ease-in-out .1s,
border-color ease-in-out .1s;
border-color: darken($header-bg, 15%);
background: darken($header-bg, 10%);
color: $header-root;
&:focus {
border-color: darken($header-bg, 35%);
background-color: $input-bg;
color: $input-color;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .3);
}
}
form {
display: inline;
option {
background-color: $input-bg;
color: $input-color;
&[disabled] {
color: $gray-lighter;
}
}
input,
select {
margin-left: 5px;
border-color: darken($header-bg, 15%);
background: darken($header-bg, 10%);
color: $header-root;
@include transition(color ease-in-out .1s, background-color ease-in-out .1s, border-color ease-in-out .1s);
&:focus {
border-color: darken($header-bg, 35%);
background-color: $input-bg;
color: $input-color;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .3);
}
}
option {
background-color: $input-bg;
color: $input-color;
&[disabled] {
color: $gray-lighter;
}
}
input {
width: 200px;
}
input {
width: 200px;
}
}
#main-menu {
border-bottom: 1px solid $main-menu-border;
background-color: $main-menu-bg;
clear: both;
background-color: $main-menu-bg;
color: $text-color;
box-shadow: inset 0 -1px $main-menu-border;
@media screen and (max-width: $screen-sm-max) {
font-size: $font-size-small-px;
}
&.tabs {
margin-bottom: 0;
overflow: inherit;
ul {
margin: 0;
padding: 0 ($padding-side - $main-menu-padding-horizontal);
color: $main-menu-link;
list-style: none;
@extend %clearfix;
> ul {
height: auto;
> li {
margin-right: .5em;
margin-bottom: -1px;
float: left;
> a {
display: block;
padding: $main-menu-padding-vertical 0;
@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;
}
@media screen and (min-width: $screen-lg-min) {
padding-right: $main-menu-padding-horizontal * 2;
padding-left: $main-menu-padding-horizontal * 2;
}
&:hover,
&:focus {
outline: 0 none;
text-decoration: none;
box-shadow: inset 0 (-$main-menu-shadow-width) 0 $main-menu-shadow-hover;
}
&.selected {
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;
box-shadow: none;
}
}
> li {
> a {
border: 0 none;
border-radius: 0;
background: transparent;
}
}
}
}
> ul {
@extend %clearfix;
margin: 0;
padding: 0 ($padding-side - $main-menu-padding-horizontal);
color: $main-menu-link;
list-style: none;
> li {
position: relative;
margin-right: .5em;
float: left;
&:hover {
> .new-object {
border-bottom: 1px solid $main-menu-dropdown-bg;
z-index: 100;
}
> .menu-children {
display: block;
}
}
> a {
display: block;
padding: $main-menu-padding-vertical $main-menu-padding-horizontal;
transition: box-shadow .15s;
color: $main-menu-link;
line-height: $line-height-computed;
white-space: nowrap;
@media screen and (min-width: $screen-lg-min) {
padding-right: $main-menu-padding-horizontal * 2;
padding-left: $main-menu-padding-horizontal * 2;
}
&:hover,
&:focus {
outline: 0 none;
text-decoration: none;
box-shadow: inset 0 (-$main-menu-shadow-width) 0 $main-menu-shadow-hover;
}
&.selected {
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: $font-weight-bold;
box-shadow: none;
}
&.new-object {
position: relative;
min-width: 1.1em;
padding-bottom: $main-menu-padding-vertical - 1px;
border: 1px solid $main-menu-border;
border-width: 0 1px;
background-color: $main-menu-dropdown-bg;
color: $icon-success-color;
font-size: 2em;
font-weight: bold;
text-align: center;
&:hover,
&:focus {
box-shadow: none;
}
}
}
}
}
a {
color: $main-menu-link;
}
.menu-children {
@include nice-shadow(2);
display: none;
position: absolute;
min-width: 130px;
margin: 0 1px;
padding: 0;
border-radius: 0 0 $border-radius-base $border-radius-base;
background: $main-menu-dropdown-bg;
list-style: none;
overflow: hidden;
z-index: 1001;
&.visible {
display: block;
}
a {
color: $main-menu-link;
display: block;
padding: $tab-padding-vertical ($tab-padding-horizontal * 2);
border-top: 1px solid $main-menu-border;
color: $main-menu-link;
&:hover,
&:focus {
outline: 0 none;
background-color: $component-active-bg;
color: $component-active-color;
text-decoration: none;
}
}
> li:first-child > a {
border: 0 none;
}
}
.tabs-buttons {
display: none !important; // scss-lint:disable ImportantRule
padding-left: 0;
background-color: $main-menu-bg;
> button {
height: $main-menu-padding-vertical * 2 + $line-height-computed - 1px;
background-color: $main-menu-bg;
}
}
ul + .tabs-buttons {
display: block !important; // scss-lint:disable ImportantRule
}
}

View File

@@ -1,287 +1,315 @@
.wiki.wiki-page {
margin-bottom: $line-height-computed;
font-size: $wiki-font-size;
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;
}
}
}
@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 {
font-size: $wiki-font-size;
font-size: $wiki-font-size;
}
div.wiki {
color: $wiki-text;
line-height: $wiki-line-height;
color: $wiki-text;
line-height: $wiki-line-height;
//scss-lint:disable SingleLinePerSelector
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
margin-top: 1em;
margin-bottom: $wiki-font-size;
font-weight: $headings-font-weight;
line-height: $headings-line-height;
//scss-lint:disable SingleLinePerSelector
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
margin-top: 1em;
margin-bottom: $wiki-font-size;
font-weight: $headings-font-weight;
line-height: $headings-line-height;
}
h1, .h1 {
padding-bottom: .3em;
border-bottom: 1px solid $gray-lighter;
font-size: $font-size-h1;
line-height: 1.2;
}
h2, .h2 {
padding-bottom: .3em;
border-bottom: 1px solid $gray-lighter;
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 {
color: $gray;
font-size: $font-size-h6;
}
.text-normal {
font-weight: normal;
}
> a:first-child {
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
margin-top: 0;
}
}
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, .h1,
h2, .h2 {
padding-bottom: .3em;
border-bottom: 1px solid $gray-lighter;
}
h6, .h6 {
color: $gray;
}
.text-normal {
> 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;
}
> a:first-child {
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
margin-top: 0;
}
>:last-child {
margin-bottom: 0;
}
}
> *:last-child {
margin-bottom: 0;
.contextual {
a {
opacity: .4;
&:hover {
opacity: 1;
}
}
}
blockquote {
>:first-child {
margin-top: 0;
}
a {
word-break: break-all;
word-break: break-word;
}
>:last-child {
margin-bottom: 0;
}
}
p,
ul,
ol {
margin-bottom: 1em;
}
.contextual {
a {
opacity: .4;
&:hover {
opacity: 1;
}
}
}
p,
ul,
ol {
margin-bottom: 1em;
}
ul,
ol {
padding-left: 1.5em;
ul,
ol {
padding-left: 1.5em;
ul,
ol {
margin-bottom: 0;
}
margin-bottom: 0;
}
}
li > p {
margin-top: ($line-height-computed / 2);
}
li > p {
margin-top: ($line-height-computed / 2);
}
table {
// scss-lint:disable DuplicateProperty
display: block;
width: 100%;
margin-bottom: $line-height-computed;
overflow: auto;
word-break: normal;
word-break: keep-all;
}
table {
display: block;
width: 100%;
margin-bottom: $line-height-computed;
overflow: auto;
word-break: normal;
word-break: keep-all;
}
tr:nth-child(2n) {
background-color: $table-bg-accent;
}
tr:nth-child(2n) {
background-color: $table-bg-accent;
}
td,
th {
padding: $table-cell-padding;
border: 1px solid $table-border-color;
}
.noborder {
border: 0 none;
td,
th {
padding: $table-cell-padding;
border: 1px solid $table-border-color;
border: 0 none;
}
}
.noborder {
border: 0 none;
a.new {
color: $brand-danger;
}
td,
th {
border: 0 none;
}
}
code {
padding: .2em .33em;
border-radius: $border-radius-base;
background-color: rgba(#000, .04);
font-size: $font-size-small;
}
a.new {
color: $brand-danger;
}
pre {
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: rgba(#000, .03);
overflow-x: auto;
overflow-y: hidden;
font-size: $font-size-small;
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;
padding: 0;
border-radius: 0;
background-color: transparent;
font-size: 1em;
}
}
img {
max-width: 100%;
vertical-align: middle;
}
.toc {
margin-bottom: $line-height-computed;
margin-left: 0;
padding: 0;
list-style-type: none;
&.right,
&.left {
max-width: 45%;
padding: 8px;
border: 1px solid $highlight-border;
border-radius: $border-radius-base;
background-color: $highlight-bg;
font-size: $font-size-small;
box-shadow: $panel-shadow;
a {
color: $highlight-text;
font-weight: normal;
text-decoration: none;
&:hover {
color: darken($highlight-text, 10%);
text-decoration: underline;
}
}
}
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;
font-size: $font-size-small;
code {
padding: 0;
border-radius: 0;
background-color: transparent;
font-size: 1em;
}
&.right {
margin-right: 0;
margin-left: $line-height-computed;
float: right;
}
.toc {
margin-bottom: $line-height-computed;
margin-left: 0;
padding: 0;
list-style-type: none;
&.left {
margin-right: $line-height-computed;
margin-left: 0;
float: left;
}
&.right,
&.left {
max-width: 45%;
padding: 8px;
border: 1px solid $highlight-border;
border-radius: $border-radius-base;
background-color: $highlight-bg;
font-size: $font-size-small;
box-shadow: $panel-shadow;
ul {
margin: 0;
padding: 0;
font-size: $font-size-small;
a {
color: $highlight-text;
font-weight: normal;
text-decoration: none;
ul {
font-size: 1em;
}
}
&:hover {
color: darken($highlight-text, 10%);
text-decoration: underline;
}
}
}
li {
// scss-lint:disable SelectorDepth
margin: 0;
&.right {
margin-right: 0;
margin-left: $line-height-computed;
float: right;
}
&.left {
margin-right: $line-height-computed;
margin-left: 0;
float: left;
}
ul {
margin: 0;
padding: 0;
font-size: $font-size-small;
ul {
font-size: 1em;
}
}
li {
list-style-type: disc;
margin-left: 1.5em;
li {
// scss-lint:disable SelectorDepth
margin: 0;
list-style-type: circle;
li {
list-style-type: disc;
margin-left: 1.5em;
li {
list-style-type: circle;
li {
list-style-type: square;
}
}
}
}
img {
max-width: 100%;
vertical-align: middle;
li {
list-style-type: square;
}
}
}
}
}
.toc-active-prev + .toc {
padding-left: $padding-large-horizontal;
border-left: 4px solid $toc-active-border;
.toc-active-prev + .toc {
padding-left: $padding-large-horizontal;
border-left: 4px solid $toc-active-border;
a {
color: $toc-active-link;
a {
color: $toc-active-link;
&:focus,
&:hover {
color: $toc-active-link-hover;
}
}
&:focus,
&:hover {
color: $toc-active-link-hover;
}
}
}
}
h1,
@@ -290,76 +318,71 @@ h3,
h4,
h5,
h6 {
.wiki-anchor {
display: none;
position: relative;
top: -(1em - $font-size-small);
margin-left: 5px;
color: $headings-anchor-color !important; // scss-lint:disable ImportantRule
font-size: $font-size-small;
text-decoration: none !important; // scss-lint:disable ImportantRule
}
&:hover {
.wiki-anchor {
display: none;
position: relative;
top: -(1em - $font-size-small);
margin-left: 5px;
color: $gray-lighter !important;
font-size: $font-size-small;
text-decoration: none !important;
display: inline;
}
}
&:hover {
.wiki-anchor {
display: inline;
}
}
img {
display: inline-block;
max-width: 100%;
vertical-align: middle;
}
img {
display: inline-block;
max-width: 100%;
vertical-align: middle;
}
}
p.footnote {
margin-bottom: 5px;
margin-bottom: 5px;
&:before {
display: block;
width: 300px;
margin-top: $line-height-computed;
padding-top: $line-height-computed / 2;
border-top: 1px solid $gray-lighter;
content: "";
}
&::before {
display: block;
width: 300px;
margin-top: $line-height-computed;
padding-top: $line-height-computed / 2;
border-top: 1px solid $gray-lighter;
content: "";
}
+ p.footnote:before {
display: none;
}
+ p.footnote::before {
display: none;
}
}
.preview {
margin-top: $line-height-computed;
padding: $padding-wiki;
background-color: #fffbe5;
background-image: url("../images/draft.png");
background-position: center center;
margin-top: $line-height-computed;
padding: $padding-wiki;
background-color: #fffbe5;
background-image: url("../images/draft.png");
background-position: center center;
html[lang="pl"] & {
background-image: url("../images/draft-pl.png");
}
html[lang="pl"] & {
background-image: url("../images/draft-pl.png");
}
}
#wiki_add_attachment {
padding-top: $line-height-computed;
border-top: 1px solid $gray-lighter;
> p {
margin-bottom: 0;
float: left;
}
#add_attachment_form {
padding-top: $line-height-computed;
border-top: 1px solid $gray-lighter;
> p {
float: left;
}
#add_attachment_form {
clear: left;
}
}
.controller-wiki.action-show {
.other-formats {
margin-top: 0;
float: right;
}
clear: left;
}
}
@@ -367,76 +390,80 @@ p.footnote {
// Custom classes for Bootstrap-like features
// --------------------------------------------------
/**
* Pager
* see: http://getbootstrap.com/components/#pagination-pager
*/
// 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;
> 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;
}
&:hover,
&:focus,
&:active {
background-color: $btn-default-bg;
text-decoration: none;
}
}
&.wiki-pager--aligned {
overflow: hidden;
> a:first-child {
float: left;
}
&.wiki-pager--aligned {
overflow: hidden;
> a:first-child {
float: left;
}
> a:last-child {
float: right;
}
> a:last-child {
float: right;
}
}
}
/**
* Typographic helper classes
*/
//== 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);
}
.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
*/
// Other helper classes
// see: http://getbootstrap.com/css/#helper-classes
.text-muted { color: $gray-light; }
.text-primary { color: $brand-primary; }
@@ -452,11 +479,11 @@ p.footnote {
.bg-danger { background-color: $state-danger; }
p {
&.bg-primary,
&.bg-success,
&.bg-info,
&.bg-warning,
&.bg-danger {
padding: $panel-body-padding;
}
&.bg-primary,
&.bg-success,
&.bg-info,
&.bg-warning,
&.bg-danger {
padding: $panel-body-padding;
}
}

View File

@@ -1,8 +1,6 @@
@if $enable-sidebar-toggler {
$toggler-position-v: 1px;
$toggler-position-h: 1px;
$arrow-right: $fa-var-caret-square-o-right;
$arrow-left: $fa-var-caret-square-o-left;
#main {
position: relative;
@@ -10,10 +8,12 @@
#sidebar {
@if $fixed-layout {
will-change: margin, opacity;
transition: margin .5s, opacity .5s;
opacity: 1;
@include transition(margin .5s, opacity .5s);
} @else {
@include transition(margin .5s);
will-change: margin;
transition: margin .5s;
}
&.sidebar-hiding {
@@ -33,18 +33,17 @@
}
.sidebar-toggler {
@include user-select(none);
display: block;
position: absolute;
top: $toggler-position-v;
user-select: none;
@if $use-font-awesome {
@extend %fa-icon;
color: $gray-light;
line-height: 1;
&:before {
&::before {
margin-right: 0;
}
@@ -71,8 +70,8 @@
left: $toggler-position-h;
@if $use-font-awesome {
&:before {
content: $arrow-left;
&::before {
content: $fa-var-caret-square-o-left;
}
} @else {
@extend %image-arrow-left;
@@ -81,8 +80,8 @@
right: $toggler-position-h;
@if $use-font-awesome {
&:before {
content: $arrow-right;
&::before {
content: $fa-var-caret-square-o-right;
}
} @else {
@extend %image-arrow-right;
@@ -92,16 +91,16 @@
&.sidebar-hidden {
@if $sidebar-position == "left" {
@if $use-font-awesome {
&:before {
content: $arrow-right;
&::before {
content: $fa-var-caret-square-o-right;
}
} @else {
@extend %image-arrow-right;
}
} @else {
@if $use-font-awesome {
&:before {
content: $arrow-left;
&::before {
content: $fa-var-caret-square-o-left;
}
} @else {
@extend %image-arrow-left;

View File

@@ -1,4 +1,4 @@
/*!
/**
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/

View File

@@ -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

View File

@@ -1,26 +1,10 @@
// Mixins
// scss-lint:disable VendorPrefixes
// --------------------------
@mixin fa-icon() {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
@mixin fa-icon-rotate($degrees, $rotation) {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
-webkit-transform: rotate($degrees);
-ms-transform: rotate($degrees);
transform: rotate($degrees);
}
@mixin fa-icon-flip($horiz, $vert, $rotation) {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
-webkit-transform: scale($horiz, $vert);
-ms-transform: scale($horiz, $vert);
transform: scale($horiz, $vert);
display: inline-block;
font: normal normal normal 14px/1 FontAwesome; // shortening font declaration
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

View File

@@ -2,12 +2,12 @@
* -------------------------- */
@font-face {
font-family: "FontAwesome";
src: url("#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}");
src: url("#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}") format("embedded-opentype"),
url("#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}") format("woff"),
url("#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}") format("truetype"),
url("#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular") format("svg");
font-weight: normal;
font-style: normal;
font-family: "FontAwesome";
src: url("#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}");
src: url("#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}") format("embedded-opentype"),
url("#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}") format("woff"),
url("#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}") format("truetype"),
url("#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular") format("svg");
font-weight: normal;
font-style: normal;
}

View File

@@ -1,39 +1,58 @@
// Button sizes
@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
padding: $padding-vertical $padding-horizontal;
font-size: $font-size;
line-height: $line-height;
border-radius: $border-radius;
padding: $padding-vertical $padding-horizontal;
font-size: $font-size;
line-height: $line-height;
border-radius: $border-radius;
}
@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;
@if lightness($bg) > 98 {
$focus-bg: darken($bg, 5%);
$focus-border: darken($border, 5%);
$normal-shadow: none;
$focus-shadow: none;
}
background-color: $bg;
color: $color;
@if $normal-shadow == "none" {
border-color: $border;
background-color: $bg;
box-shadow: 0 1px 0 $border;
box-shadow: none;
} @else {
border-color: $border $border $normal-shadow;
box-shadow: 0 1px 0 $normal-shadow;
}
@if lightness($bg) > 90 {
$focus-bg: darken($bg, 5%);
$focus-border: darken($border, 5%);
$active-shadow: inset 0 1px 2px rgba(#000, .1);
&:hover,
&:focus {
background-color: $focus-bg;
color: $color;
@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;
}
}
&:hover,
&:focus {
border-color: $focus-border;
background-color: $focus-bg;
color: $color;
box-shadow: 0 1px 0 $focus-border;
}
&:active {
border-color: $border;
background-color: $bg;
@include translate(0, 1px);
box-shadow: $active-shadow;
}
&:active {
transform: translate(0, 1px);
border-color: $active-border;
background-color: $active-bg;
box-shadow: $active-shadow;
}
}

View File

@@ -1,7 +1,7 @@
// Center-align a block level element
@mixin center-block() {
display: block;
margin-left: auto;
margin-right: auto;
display: block;
margin-left: auto;
margin-right: auto;
}

View File

@@ -1,34 +1,15 @@
// Clearfix
//
// For modern browsers
// 1. The use of `table` rather than `block` is only necessary if using
// `:before` to contain the top-margins of child elements.
// 2. The space content is one way to avoid an Opera bug when the
// contenteditable attribute is included anywhere else in the document.
// Otherwise it causes space to appear at the top and bottom of elements
// that are clearfixed.
//
// Source: http://nicolasgallagher.com/micro-clearfix-hack/
// Source: http://cssmojo.com/the-very-latest-clearfix-reloaded/
@mixin clearfix() {
&:before,
&:after {
display: table; // 1
content: " "; // 2
}
&:after {
clear: both;
}
&::after {
display: block;
clear: both;
content: "";
}
}
// Lighter (for output CSS) cleafix with placeholder
%clearfix {
&:after {
display: table;
clear: both;
content: "";
}
@include clearfix;
}

View File

@@ -1,43 +1,52 @@
// Form control focus state
//
@mixin form-control-focus($color: $input-border-focus) {
&:focus {
border-color: $color;
outline: 0;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba($color, .5);
}
&:focus {
border-color: $color;
outline: 0;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba($color, .5);
}
}
// Placeholder text
//
@mixin placeholder($color: $input-color-placeholder) {
&::placeholder {
color: $color;
opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526
}
}
// Form control sizing
//
@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
#{$parent} {
height: $input-height;
padding: $padding-vertical $padding-horizontal;
border-radius: $border-radius;
font-size: $font-size;
line-height: $line-height;
}
#{$parent} {
height: $input-height;
padding: $padding-vertical $padding-horizontal;
border-radius: $border-radius;
font-size: $font-size;
line-height: $line-height;
}
select#{$parent} {
height: $input-height;
line-height: $input-height;
}
select#{$parent} {
height: $input-height;
line-height: $input-height;
}
textarea#{$parent},
select[multiple]#{$parent} {
height: auto;
}
textarea#{$parent},
select[multiple]#{$parent} {
height: auto;
}
}
@mixin checkbox() {
padding-left: 20px;
@include user-select(none);
@extend %clearfix;
@extend %clearfix;
padding-left: 20px;
user-select: none;
input[type="checkbox"] {
margin-left: -20px;
float: left;
}
input[type="checkbox"] {
margin-left: -20px;
float: left;
}
}

View File

@@ -1,62 +0,0 @@
// Gradients
// scss-lint:disable VendorPrefixes
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
}
// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
// Color stops are not available in IE9 and below.
@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent); // Opera 12
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
}
@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
background-repeat: repeat-x;
background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
}
@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
background-repeat: no-repeat;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
}
@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
background-repeat: no-repeat;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
}
@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
background-image: radial-gradient(circle, $inner-color, $outer-color);
background-repeat: no-repeat;
}
@mixin gradient-striped($color: rgba(255, 255, 255, .15), $angle: 45deg) {
background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
}

View 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;
}
}

View File

@@ -1,182 +1,182 @@
// Priority highlight
@mixin priority($parent, $background, $color, $link) {
@if lightness($background) < 85% {
$background: lighten($background, 6%);
@if lightness($background) < 85% {
$background: lighten($background, 6%);
}
$border-color: darken(desaturate($background, 30%), 13.5%);
tr#{$parent} {
background: $background;
@if ".priority-default" == $parent {
color: $color;
} @else {
color: darken($color, 10%);
}
$border-color: darken(desaturate($background, 30%), 13.5%);
@if $table-list-color-odd-rows {
&.odd {
background: darken($background, $table-accent-factor * 100%);
}
}
tr#{$parent} {
@if $table-list-color-even-rows {
&.even {
background: darken($background, $table-accent-factor * 100%);
}
}
td {
border-color: $border-color;
}
a {
color: $link;
&:hover {
color: darken($link, 10%);
}
}
}
@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;
@if ".priority-default" == $parent {
$border-color: $issue-border;
background: $issue-bg;
} @else {
background: $background;
}
&,
hr {
border-color: $border-color;
}
a {
color: $link;
&:hover {
color: darken($link, 10%);
}
}
.next-prev-links {
color: mix($color, $gray-light, 25%);
}
> .description > .wiki {
border-top-color: $border-color;
}
.wiki {
a {
color: $link-color;
text-decoration: none;
&:hover,
&:focus {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&.new {
color: $brand-danger;
}
}
}
> .attachments {
border-top-color: lighten($border-color, 5%);
@if ".priority-default" == $parent {
color: $color;
background-color: lighten($issue-bg, 1.5%);
} @else {
color: darken($color, 10%);
background-color: lighten($background, 5%);
}
&.odd {
background: darken($background, 3%);
span.author {
color: mix($color, $gray, 25%);
}
}
td {
border-color: $border-color;
}
a {
color: $link;
&:hover {
color: darken($link, 10%);
}
}
}
@if $colored-issue {
.issue.details#{$parent} {
color: $color;
@if ".priority-default" == $parent {
$border-color: $issue-border;
background: $issue-bg;
} @else {
background: $background;
}
&,
hr {
border-color: $border-color;
}
a {
color: $link;
&:hover {
color: darken($link, 10%);
}
}
.next-prev-links {
color: mix($color, $gray-light, 25%);
}
> .description > .wiki {
border-top-color: $border-color;
}
.wiki {
a {
color: $link-color;
text-decoration: none;
&:hover,
&:focus {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&.new {
color: $brand-danger;
}
}
}
> .attachments {
border-top-color: lighten($border-color, 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%);
}
}
.list td {
border-bottom-color: $border-color;
}
}
.list td {
border-bottom-color: $border-color;
}
}
}
}
// Tracker highlight
@mixin tracker($parent, $background, $color) {
tr#{$parent} .id > a,
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;
tr#{$parent} .id > a,
a#{$parent},
.relations > span > a#{$parent},
.parent > a#{$parent} {
background-color: $background;
color: $color;
&:hover {
@if hue($background) > 15deg and hue($background) < 40deg {
background-color: darken(adjust-hue($background, -8deg), 8%);
} @else {
background-color: darken($background, 10%);
}
color: $color;
}
}
a#{$parent} {
&.closed {
color: mix($color, $background, 75%);
&::after {
border-top-color: rgba($color, .95);
}
&:hover::after {
border-top-color: rgba($color, .25);
}
}
}
tr#{$parent} .id > a {
&::before {
color: mix($color, $background, 50%);
}
}
@if $colored-issue {
.issue.details a#{$parent},
.issue.details .wiki a#{$parent} {
&,
&:hover {
color: $color;
&:hover {
@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;
}
&:focus,
&:active {
text-decoration: none;
}
}
a#{$parent} {
margin-right: 1px;
padding: $tracker-inline-padding;
font-weight: normal;
&.closed {
position: relative;
color: mix($color, $background, 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($color, .95);
content: "";
@include rotate(-4deg);
@include transition(border-color .1s);
}
&: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: "#";
}
}
@if $colored-issue {
.issue.details a#{$parent},
.issue.details .wiki a#{$parent} {
&,
&:hover {
color: $color;
}
}
}
}
}
}

View File

@@ -1,10 +1,10 @@
// Link variant
@mixin link-variant($default-color, $hover-color: darken($default-color, 10%)) {
color: $default-color;
color: $default-color;
&:focus,
&:hover {
color: $hover-color;
}
&:focus,
&:hover {
color: $hover-color;
}
}

View File

@@ -1,8 +0,0 @@
// Opacity
@mixin opacity($opacity) {
opacity: $opacity;
// IE8 filter
$opacity-ie: ($opacity * 100);
filter: #{alpha(opacity=$opacity-ie)};
}

View File

@@ -0,0 +1,19 @@
// Some really nice looking shadows
@mixin nice-shadow($depth: 1) {
$shadow: none;
@if ($depth == 1) {
$shadow: 0 1px 3px rgba(#000, .12), 0 1px 2px rgba(#000, .24);
} @elseif ($depth == 2) {
$shadow: 0 3px 6px rgba(#000, .16), 0 3px 6px rgba(#000, .23);
} @elseif ($depth == 3) {
$shadow: 0 10px 18px rgba(#000, .19), 0 6px 8px rgba(#000, .23);
} @elseif ($depth == 4) {
$shadow: 0 14px 28px rgba(#000, .25), 0 10px 10px rgba(#000, .22);
} @elseif ($depth == 5) {
$shadow: 0 19px 38px rgba(#000, .3), 0 15px 12px rgba(#000, .22);
}
box-shadow: $shadow;
}

View File

@@ -2,7 +2,7 @@
// Requires inline-block or block for proper styling
@mixin text-overflow() {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@@ -1,236 +0,0 @@
// Vendor Prefixes
// scss-lint:disable VendorPrefixes
//
// 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.
// - Animations
// - Backface visibility
// - Box shadow
// - Box sizing
// - Content columns
// - Hyphens
// - Placeholder text
// - Transformations
// - Transitions
// - User Select
// Animations
@mixin animation($animation) {
-webkit-animation: $animation;
-o-animation: $animation;
animation: $animation;
}
@mixin animation-name($name) {
-webkit-animation-name: $name;
animation-name: $name;
}
@mixin animation-duration($duration) {
-webkit-animation-duration: $duration;
animation-duration: $duration;
}
@mixin animation-timing-function($timing-function) {
-webkit-animation-timing-function: $timing-function;
animation-timing-function: $timing-function;
}
@mixin animation-delay($delay) {
-webkit-animation-delay: $delay;
animation-delay: $delay;
}
@mixin animation-iteration-count($iteration-count) {
-webkit-animation-iteration-count: $iteration-count;
animation-iteration-count: $iteration-count;
}
@mixin animation-direction($direction) {
-webkit-animation-direction: $direction;
animation-direction: $direction;
}
@mixin animation-fill-mode($fill-mode) {
-webkit-animation-fill-mode: $fill-mode;
animation-fill-mode: $fill-mode;
}
// Backface visibility
// Prevent browsers from flickering when using CSS 3D transforms.
// Default value is `visible`, but can be changed to `hidden`
@mixin backface-visibility($visibility) {
-webkit-backface-visibility: $visibility;
-moz-backface-visibility: $visibility;
backface-visibility: $visibility;
}
// Box sizing
@mixin box-sizing($boxmodel) {
-webkit-box-sizing: $boxmodel;
-moz-box-sizing: $boxmodel;
box-sizing: $boxmodel;
}
// CSS3 Content Columns
@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
-webkit-column-count: $column-count;
-moz-column-count: $column-count;
column-count: $column-count;
-webkit-column-gap: $column-gap;
-moz-column-gap: $column-gap;
column-gap: $column-gap;
}
// Optional hyphenation
@mixin hyphens($mode: auto) {
word-wrap: break-word;
-webkit-hyphens: $mode;
-moz-hyphens: $mode;
-ms-hyphens: $mode; // IE10+
-o-hyphens: $mode;
hyphens: $mode;
}
// Placeholder text
@mixin placeholder($color: $input-color-placeholder) {
// Firefox
&::-moz-placeholder {
color: $color;
opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526
}
&:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
&::-webkit-input-placeholder { color: $color; } // Safari and Chrome
}
// Transformations
@mixin scale($ratio...) {
-webkit-transform: scale($ratio);
-ms-transform: scale($ratio); // IE9 only
-o-transform: scale($ratio);
transform: scale($ratio);
}
@mixin scaleX($ratio) {
-webkit-transform: scaleX($ratio);
-ms-transform: scaleX($ratio); // IE9 only
-o-transform: scaleX($ratio);
transform: scaleX($ratio);
}
@mixin scaleY($ratio) {
-webkit-transform: scaleY($ratio);
-ms-transform: scaleY($ratio); // IE9 only
-o-transform: scaleY($ratio);
transform: scaleY($ratio);
}
@mixin skew($x, $y) {
-webkit-transform: skewX($x) skewY($y);
-ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
-o-transform: skewX($x) skewY($y);
transform: skewX($x) skewY($y);
}
@mixin translate($x, $y) {
-webkit-transform: translate($x, $y);
-ms-transform: translate($x, $y); // IE9 only
-o-transform: translate($x, $y);
transform: translate($x, $y);
}
@mixin translate3d($x, $y, $z) {
-webkit-transform: translate3d($x, $y, $z);
transform: translate3d($x, $y, $z);
}
@mixin rotate($degrees) {
-webkit-transform: rotate($degrees);
-ms-transform: rotate($degrees); // IE9 only
-o-transform: rotate($degrees);
transform: rotate($degrees);
}
@mixin rotateX($degrees) {
-webkit-transform: rotateX($degrees);
-ms-transform: rotateX($degrees); // IE9 only
-o-transform: rotateX($degrees);
transform: rotateX($degrees);
}
@mixin rotateY($degrees) {
-webkit-transform: rotateY($degrees);
-ms-transform: rotateY($degrees); // IE9 only
-o-transform: rotateY($degrees);
transform: rotateY($degrees);
}
@mixin perspective($perspective) {
-webkit-perspective: $perspective;
-moz-perspective: $perspective;
perspective: $perspective;
}
@mixin perspective-origin($perspective) {
-webkit-perspective-origin: $perspective;
-moz-perspective-origin: $perspective;
perspective-origin: $perspective;
}
@mixin transform-origin($origin) {
-webkit-transform-origin: $origin;
-moz-transform-origin: $origin;
-ms-transform-origin: $origin; // IE9 only
transform-origin: $origin;
}
// Transitions
@mixin transition($transition...) {
-webkit-transition: $transition;
-o-transition: $transition;
transition: $transition;
}
@mixin transition-property($transition-property...) {
-webkit-transition-property: $transition-property;
transition-property: $transition-property;
}
@mixin transition-delay($transition-delay) {
-webkit-transition-delay: $transition-delay;
transition-delay: $transition-delay;
}
@mixin transition-duration($transition-duration...) {
-webkit-transition-duration: $transition-duration;
transition-duration: $transition-duration;
}
@mixin transition-timing-function($timing-function) {
-webkit-transition-timing-function: $timing-function;
transition-timing-function: $timing-function;
}
@mixin transition-transform($transition...) {
-webkit-transition: -webkit-transform $transition;
-moz-transition: -moz-transform $transition;
-o-transition: -o-transform $transition;
transition: transform $transition;
}
// User select
// For selecting text on the page
@mixin user-select($select) {
-webkit-user-select: $select;
-moz-user-select: $select;
-ms-user-select: $select; // IE10+
user-select: $select;
}

View File

@@ -1,59 +1,59 @@
@import "common";
html {
overflow-y: scroll !important;
height: 100%;
overflow-y: scroll;
height: 100%;
}
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background-color: mix($gray-lighter, $header-bg, 70%);
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
line-height: $line-height-base;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background-color: mix($gray-lighter, $header-bg, 70%);
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
font-weight: $font-weight-normal;
line-height: $line-height-base;
}
a {
color: $link-color;
text-decoration: none;
color: $link-color;
text-decoration: none;
&:hover,
&:focus {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&:hover,
&:focus {
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;
}
/**
* Form elements
*/
//== Form elements
//
button,
input,
select,
textarea {
font-family: inherit;
font-size: $font-size-base;
line-height: $line-height-base;
@include box-sizing(border-box);
font-family: inherit;
font-size: $font-size-base;
line-height: $line-height-base;
box-sizing: border-box;
}
select,
@@ -63,265 +63,258 @@ input[type="text"],
input.name,
input.editor,
#col_width input {
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
border: 1px solid $input-border;
border-radius: $input-border-radius;
background-color: $input-bg;
color: $input-color;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
@include transition(border-color ease-in-out .1s, box-shadow ease-in-out .1s);
@include form-control-focus();
@include placeholder();
@include form-control-focus;
@include placeholder;
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
transition: border-color ease-in-out .1s, box-shadow ease-in-out .1s;
border: 1px solid $input-border;
border-radius: $input-border-radius;
background-color: $input-bg;
color: $input-color;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
}
textarea {
resize: vertical;
height: auto;
resize: vertical;
height: auto;
}
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
color: transparent;
text-shadow: 0 0 0 #000;
}
button.ui-multiselect {
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
border: 1px solid $input-border;
background: $input-bg;
cursor: default;
height: $input-height-base;
padding: $input-padding-vertical $input-padding-horizontal;
transition: border-color ease-in-out .1s, box-shadow ease-in-out .1s;
border: 1px solid $input-border;
background: $input-bg;
color: $input-color;
white-space: nowrap;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
cursor: default;
overflow: hidden;
box-sizing: border-box;
&:hover,
&:focus {
color: $input-color;
white-space: nowrap;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
overflow: hidden;
@include transition(border-color ease-in-out .1s, box-shadow ease-in-out .1s);
@include box-sizing(border-box);
}
&:hover,
&:focus {
color: $input-color;
}
&:active {
transform: translate(0, 0);
}
&:active {
@include translate(0, 0);
}
&.ui-state-active {
border-color: $input-border-focus;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba($input-border-focus, .5);
}
&.ui-state-active {
border-color: $input-border-focus;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 5px rgba($input-border-focus, .5);
}
.ui-icon {
margin-top: 1px;
}
.ui-icon {
margin-top: 1px;
}
}
/**
* Top toolbar
*/
//== Top toolbar
//
#toolbar {
display: block;
@include clearfix;
display: block;
position: relative;
padding: 10px $padding-side;
background-color: $main-menu-bg;
box-shadow: $panel-shadow;
overflow: hidden;
z-index: 1000;
.breadcrumbs {
margin-right: 10px;
float: left;
select {
margin-right: 5px;
vertical-align: middle;
}
.home {
font-weight: $font-weight-bold;
}
.separator {
position: relative;
top: -1px;
padding: 0 .2em;
font-weight: $font-weight-bold;
}
}
.userselect {
position: relative;
padding: 10px $padding-side;
background-color: $main-menu-bg;
box-shadow: $panel-shadow;
overflow: hidden;
z-index: 1000;
@include clearfix;
float: left;
.breadcrumbs {
margin-right: 10px;
float: left;
select {
margin-right: 5px;
vertical-align: middle;
}
.home {
font-weight: bold;
}
.separator {
position: relative;
top: -1px;
padding: 0 .2em;
font-weight: bold;
}
ul {
padding-left: 0;
}
.userselect {
position: relative;
float: left;
ul {
padding-left: 0;
}
br {
display: none;
}
br {
display: none;
}
}
.links {
float: right;
.links {
float: right;
a {
padding-left: 5px;
cursor: pointer;
@include user-select(none);
}
a {
padding-left: 5px;
cursor: pointer;
user-select: none;
}
}
input[type="search"],
input[type="text"],
select,
.ui-widget {
font-family: inherit;
font-size: inherit;
}
@media screen and (max-width: $screen-md-max) {
font-size: $font-size-small;
input[type="search"],
input[type="text"],
select,
.ui-widget {
font-family: inherit;
font-size: inherit;
$input-padding-vertical-small: 3px;
$input-padding-horizontal-small: 5px;
height: ($line-height-computed + ($input-padding-vertical-small * 2) + 2);
padding: $input-padding-vertical-small $input-padding-horizontal-small;
}
@media screen and (max-width: $screen-md-max) {
font-size: $font-size-small;
input[type="search"],
input[type="text"],
select,
.ui-widget {
$input-padding-vertical-small: 3px;
$input-padding-horizontal-small: 5px;
height: ($line-height-computed + ($input-padding-vertical-small * 2) + 2);
padding: $input-padding-vertical-small $input-padding-horizontal-small;
}
#project_quick_jump_box {
width: 128px;
}
#project_quick_jump_box {
width: 128px;
}
}
}
#refresh {
.loading & {
background-image: url("images/bouncer.gif");
background-repeat: no-repeat;
background-position: -6px 1px;
}
.loading & {
background-image: url("images/bouncer.gif");
background-repeat: no-repeat;
background-position: -6px 1px;
}
}
/**
* Other elements
*/
//== Other elements
//
.clearfix {
@include clearfix;
@include clearfix;
}
#content {
margin: 0;
padding: 0;
overflow: visible;
margin: 0;
padding: 0;
overflow: visible;
}
#helpers,
.meta,
.editors {
display: none;
display: none;
}
/**
* .editor is the classname for field editors of sprint,
* story, task, impediment. These field editors get created
* at runtime whenever any of the above models are edited.
*/
// .editor is the classname for field editors of sprint,
// story, task, impediment. These field editors get created
// at runtime whenever any of the above models are edited.
.ui-dialog .editor {
display: block;
display: block;
}
ul.ui-sortable {
min-height: 20px;
min-height: 20px;
}
/**
* Story tooltip
*/
//== Story tooltip
//
.ui-tooltip {
.ui-tooltip-content {
hr {
margin-top: $line-height-computed / 2;
margin-bottom: $line-height-computed / 2;
border: 0;
border-top: 1px solid $hr-border;
}
.wiki-anchor {
display: none;
}
.ui-tooltip-content {
hr {
margin-top: $line-height-computed / 2;
margin-bottom: $line-height-computed / 2;
border: 0;
border-top: 1px solid $hr-border;
}
.issue-description {
max-height: 10em;
margin-top: 12px;
text-overflow: ellipsis;
overflow: hidden;
.wiki-anchor {
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;
}
.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: bold;
}
> label {
margin-left: -160px;
padding-right: 5px;
float: left;
font-weight: $font-weight-bold;
}
}
}
.tooltip_text {
display: none;
display: none;
}
/**
* drag-drop effect: disabled dropzones are greyed out
*/
//== drag-drop effect: disabled dropzones are greyed out
//
.rb-sortable-disabled,
.ui-sortable-disabled {
background-color: $gray-lighter;
opacity: .5;
background-color: $gray-lighter;
opacity: .5;
}
.w-rb-header-collapsed {
height: 27px; // 14px * .86 * 1.42857 + 2 * 5px
overflow: hidden;
height: 27px; // 14px * .86 * 1.42857 + 2 * 5px
overflow: hidden;
}
/**
* Fix jQuery-UI datepicker
*/
//== Fix jQuery-UI datepicker
//
body {
.ui-widget {
&,
input,
select,
textarea,
button {
font-family: inherit;
font-size: inherit;
}
.ui-widget {
&,
input,
select,
textarea,
button {
font-family: inherit;
font-size: inherit;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,118 +1,117 @@
@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;
box-shadow: $panel-shadow;
z-index: 10000;
}
.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: 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;
}
@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; // scss-lint:disable ImportantRule
top: auto !important; // scss-lint:disable ImportantRule
left: -9999px;
}
label {
padding: 5px !important; // scss-lint:disable ImportantRule
}
}
.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 {
@include nice-shadow(2);
display: none;
position: absolute;
padding: 3px;
text-align: left;
z-index: 10000;
}
.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;
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;
}

View File

@@ -1,37 +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;
box-shadow: 0 2px 2px rgba(#000, .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;
}
@import "../common";
.qtip {
position: absolute;
top: -31000px;
left: -31000px;
width: auto;
max-width: 500px;
outline: none;
}
.ui-tooltip-content {
@include nice-shadow(2);
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;
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;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,63 +1,63 @@
@import "common";
table {
th,
td {
padding: $table-condensed-cell-padding $table-cell-padding;
}
th,
td {
padding: $table-condensed-cell-padding $table-cell-padding;
}
}
.ui-widget {
margin-bottom: $line-height-computed;
margin-bottom: $line-height-computed;
}
.score {
display: inline-block;
width: 1.5em;
font-size: large;
text-align: center;
display: inline-block;
width: 1.5em;
font-size: large;
text-align: center;
}
.score_0 {
background-color: #f00;
background-color: #f00;
}
.score_1 {
background-color: #ff5300;
background-color: #ff5300;
}
.score_2 {
background-color: #ff8100;
background-color: #ff8100;
}
.score_3 {
background-color: #ffa100;
background-color: #ffa100;
}
.score_4 {
background-color: #fb0;
background-color: #fb0;
}
.score_5 {
background-color: #ffd300;
background-color: #ffd300;
}
.score_6 {
background-color: #ffec00;
background-color: #ffec00;
}
.score_7 {
background-color: #e9fb00;
background-color: #e9fb00;
}
.score_8 {
background-color: #b1f100;
background-color: #b1f100;
}
.score_9 {
background-color: #74e600;
background-color: #74e600;
}
.score_10 {
background-color: #0c0;
background-color: #0c0;
}

View File

@@ -7,451 +7,461 @@ $issue-padding: 5px;
$swimlane-width: $issue-width + 2 * ($issue-margin + $issue-padding + 1px);
#content {
overflow: visible;
overflow: visible;
}
#taskboard {
position: relative;
margin-bottom: $padding-side;
position: relative;
margin-bottom: $padding-side;
table {
margin-right: $padding-side;
margin-left: $padding-side;
border-collapse: separate;
}
table {
margin-right: $padding-side;
margin-left: $padding-side;
border-collapse: separate;
}
.issue .subject {
white-space: normal;
}
.issue .subject {
white-space: normal;
}
}
#impediments {
padding-top: 30px;
padding-top: 30px;
}
#assigned_to_id_options {
display: none;
display: none;
}
#col_width {
margin-left: 5px;
margin-left: 5px;
input {
width: 40px;
text-align: right;
}
input {
width: 40px;
text-align: right;
}
}
/**
* swimlane class is used by:
* - #board_header
* - .board
*
* Also use by the Column Width preference to determine the unit width of the
* swimlanes. See RB.Taskboard.initialize()
*/
//== Swimlane
//
// Swimlane class is used by:
// - #board_header
// - .board
// Also use by the Column Width preference to determine the unit width of the
// swimlanes. See RB.Taskboard.initialize()
//
.swimlane {
width: $swimlane-width;
min-width: $swimlane-width;
padding: 5px;
width: $swimlane-width;
min-width: $swimlane-width;
padding: 5px;
}
/* status labels */
//== Status labels
//
#board_header {
position: absolute;
margin-right: 10px;
margin-bottom: 0;
border: 1px solid darken($header-bg, 5%);
position: absolute;
margin-right: 10px;
margin-bottom: 0;
border: 1px solid darken($header-bg, 5%);
background-color: $header-bg;
z-index: 200;
td {
height: 20px;
border-right: 1px dotted mix($header-bg, $header-text, 70%);
background-color: $header-bg;
z-index: 200;
color: $header-text;
font-weight: $font-weight-bold;
text-align: center;
vertical-align: middle;
td {
height: 20px;
border-right: 1px dotted mix($header-bg, $header-text, 70%);
background-color: $header-bg;
color: $header-text;
font-weight: bold;
text-align: center;
vertical-align: middle;
&:last-child {
border-right: 0 none;
}
&:last-child {
border-right: 0 none;
}
}
}
.board {
border: 1px solid $gray;
border-top: 0 none;
background-color: $body-bg;
color: $text-color;
border: 1px solid $gray;
border-top: 0 none;
background-color: $body-bg;
color: $text-color;
td {
border-right: 1px dotted $table-border-color;
border-bottom: 1px dotted $table-border-color;
vertical-align: top;
td {
border-right: 1px dotted $table-border-color;
border-bottom: 1px dotted $table-border-color;
vertical-align: top;
&:last-child {
border-right: 0 none;
}
&:last-child {
border-right: 0 none;
}
}
tr:last-child td {
border-bottom: 0 none;
}
.add_new {
display: inline-block;
vertical-align: middle;
&:hover {
background-color: #ffc;
cursor: pointer;
}
tr:last-child td {
border-bottom: 0 none;
}
.add_new {
display: inline-block;
vertical-align: middle;
&:hover {
background-color: #ffc;
cursor: pointer;
}
}
}
#board_header,
.board {
td:first-child {
width: (($issue-width + $issue-margin + $issue-padding) * 2);
min-width: (($issue-width + $issue-margin + $issue-padding) * 2);
padding: $issue-padding;
}
td:first-child {
width: (($issue-width + $issue-margin + $issue-padding) * 2);
min-width: (($issue-width + $issue-margin + $issue-padding) * 2);
padding: $issue-padding;
}
}
.story,
.label_sprint_impediments {
display: block;
position: relative;
width: $issue-width * 2;
min-height: $issue-height;
margin: $issue-margin;
padding: $issue-padding;
float: left;
border: 0 none;
border-radius: $border-radius-large;
background-color: $highlight-bg;
font-size: $font-size-small-px;
}
.story {
color: $gray-darker;
.id {
margin-bottom: 5px;
padding: 0 3px;
border-radius: $border-radius-base;
background-color: $body-bg;
font-size: .9em;
line-height: 16px;
opacity: .8;
overflow: hidden;
a,
.remaininghours {
margin-left: 4px;
float: right;
font-weight: normal;
}
a {
color: $gray-darkest;
font-size: $font-size-small-px;
font-weight: $font-weight-bold;
}
.assignee {
font-size: 9px;
}
}
.subject {
height: $issue-height * .6;
padding: 2px;
line-height: 1.3;
overflow: hidden;
}
&.closed .subject {
text-decoration: line-through;
}
.project {
text-align: left;
}
.id .v {
display: none;
}
.story_points.editable {
position: absolute;
right: -$issue-padding;
bottom: -$issue-padding;
width: 36px;
height: 36px;
border: 2px solid $body-bg;
border-radius: 50%;
background-color: $brand-warning;
color: $brand-text;
font-weight: $font-weight-bold;
line-height: 36px;
text-align: center;
&:empty {
display: none;
}
}
}
//== Item styles used by .task and .impediment
//
#taskboard {
.issue,
.placeholder {
display: block;
position: relative;
width: $issue-width * 2;
min-height: $issue-height;
width: $issue-width;
height: $issue-height;
margin: $issue-margin;
padding: $issue-padding;
float: left;
border: 0 none;
border-radius: $border-radius-large;
background-color: $highlight-bg;
font-size: $font-size-small-px;
}
.story {
background-color: $gray-lighter;
color: $gray-darker;
font-size: 10px;
line-height: 1.3;
cursor: move;
}
.id {
margin-bottom: 5px;
padding: 0 3px;
border-radius: $border-radius-base;
background-color: $body-bg;
font-size: .9em;
line-height: 16px;
opacity: .8;
overflow: hidden;
a,
.remaininghours {
margin-left: 4px;
float: right;
font-weight: normal;
}
a {
color: $gray-darkest;
font-size: $font-size-small-px;
font-weight: bold;
}
.assignee {
font-size: 9px;
}
}
.subject {
height: $issue-height * .6;
padding: 2px;
line-height: 1.3;
overflow: hidden;
}
&.closed .subject {
text-decoration: line-through;
}
.project {
text-align: left;
}
.id .v {
display: none;
}
.story_points.editable {
position: absolute;
right: -$issue-padding;
bottom: -$issue-padding;
width: 36px;
height: 36px;
border: 2px solid $body-bg;
border-radius: 50%;
background-color: $brand-warning;
color: $brand-text;
font-weight: bold;
line-height: 36px;
text-align: center;
&:empty {
display: none;
}
}
}
/* item styles used by .task and .impediment */
#taskboard {
.issue,
.placeholder {
display: block;
position: relative;
width: $issue-width;
height: $issue-height;
margin: $issue-margin;
padding: $issue-padding;
float: left;
border: 0 none;
border-radius: $border-radius-large;
background-color: $gray-lighter;
cursor: move;
color: $gray-darker;
font-size: 10px;
line-height: 1.3;
}
.placeholder {
width: 83px;
height: 78px;
border: 1px dashed $highlight-border;
background-color: $highlight-bg;
}
.placeholder {
width: 83px;
height: 78px;
border: 1px dashed $highlight-border;
background-color: $highlight-bg;
}
}
.issue {
.id {
margin-bottom: 5px;
padding: 0 3px;
border-radius: $border-radius-base;
background-color: $body-bg;
font-size: $font-size-small-px;
font-weight: bold;
line-height: 16px;
text-align: right;
opacity: .8;
overflow: hidden;
.id {
margin-bottom: 5px;
padding: 0 3px;
border-radius: $border-radius-base;
background-color: $body-bg;
font-size: $font-size-small-px;
font-weight: $font-weight-bold;
line-height: 16px;
text-align: right;
opacity: .8;
overflow: hidden;
.v {
display: none;
}
a {
color: $gray-darkest;
}
.v {
display: none;
}
.editable:hover {
background-color: transparent;
a {
color: $gray-darkest;
}
}
.editable:hover {
background-color: transparent;
}
.subject.editable {
height: $issue-height * .5;
padding: 2px;
overflow: hidden;
}
&.closed .subject.editable {
text-decoration: line-through;
}
.assigned_to_id {
&.editable {
width: 81px;
height: 10px;
margin-top: 2px;
padding: 2px;
padding-top: 0;
font-size: 9px;
white-space: nowrap;
overflow: hidden;
}
.subject.editable {
height: $issue-height * .5;
padding: 2px;
overflow: hidden;
.v {
display: none;
}
}
.priority_id {
&.editable {
position: absolute;
right: -5px;
bottom: 10px;
height: 13px;
padding-right: 5px;
padding-left: 5px;
border: 2px solid #fff;
border-radius: 15px;
background-color: #00e;
color: #fff;
font-size: 9px;
}
&.closed .subject.editable {
text-decoration: line-through;
.v {
display: none;
}
}
.assigned_to_id {
&.editable {
width: 81px;
height: 10px;
margin-top: 2px;
padding: 2px;
padding-top: 0;
font-size: 9px;
white-space: nowrap;
overflow: hidden;
}
.remaining_hours.editable {
position: absolute;
right: -5px;
bottom: -5px;
height: 13px;
padding-right: 5px;
padding-left: 5px;
border: 2px solid #fff;
border-radius: 15px;
background-color: #e00;
color: #fff;
font-size: 9px;
}
.v {
display: none;
}
}
.blocks,
.remaining_hours.editable:empty {
display: none;
}
.priority_id {
&.editable {
position: absolute;
right: -5px;
bottom: 10px;
height: 13px;
padding-right: 5px;
padding-left: 5px;
border: 2px solid #fff;
border-radius: 15px;
background-color: #00e;
color: #fff;
font-size: 9px;
}
.indicator {
display: none;
position: absolute;
top: 38px;
left: 36px;
width: 16px;
height: 16px;
padding: 2px;
border: 2px solid #000;
border-radius: 12px;
background-color: #fff;
background-repeat: no-repeat;
background-position: center;
}
.v {
display: none;
}
}
&.saving .indicator {
display: block;
background-image: url("images/indicator.gif");
}
.remaining_hours.editable {
position: absolute;
right: -5px;
bottom: -5px;
height: 13px;
padding-right: 5px;
padding-left: 5px;
border: 2px solid #fff;
border-radius: 15px;
background-color: #e00;
color: #fff;
font-size: 9px;
}
&.error .indicator {
display: block;
border-color: #c00;
background-image: url("images/warning.png");
background-position: 2px 0;
}
.blocks,
.remaining_hours.editable:empty {
display: none;
}
.indicator {
display: none;
position: absolute;
top: 38px;
left: 36px;
width: 16px;
height: 16px;
padding: 2px;
border: 2px solid #000;
border-radius: 12px;
background-color: #fff;
background-repeat: no-repeat;
background-position: center;
}
&.saving .indicator {
display: block;
background-image: url("images/indicator.gif");
}
&.error .indicator {
display: block;
border-color: #c00;
background-image: url("images/warning.png");
background-position: 2px 0;
}
.editors {
display: none;
}
.editors {
display: none;
}
}
/* dialog */
//== Dialog
//
.rb_editor_dialog.ui-dialog {
.ui-dialog-titlebar-close {
display: none;
}
.ui-dialog-titlebar-close {
display: none;
}
.ui-widget-header {
background: none;
background-color: #fff;
opacity: .5;
}
.ui-widget-header {
background: none;
background-color: #fff;
opacity: .5;
}
.ui-dialog-title {
margin-right: 0;
float: right;
}
.ui-dialog-title {
margin-right: 0;
float: right;
}
&.ui-widget-content {
border: 0 none;
background: none;
box-shadow: 2px 2px 5px #777;
}
&.ui-widget-content {
@include nice-shadow(5);
border: 0 none;
background: none;
}
.ui-dialog-buttonpane.ui-widget-content {
border: 0 none;
background: none;
background-color: none;
}
.ui-dialog-buttonpane.ui-widget-content {
border: 0 none;
background: none;
background-color: none;
}
}
/* item editor */
//== Item editor
//
.rb_editor {
label {
display: block;
width: 100%;
font-size: 11px;
text-transform: capitalize;
}
label {
display: block;
width: 100%;
font-size: 11px;
text-transform: capitalize;
}
.editor {
width: 100%;
margin-bottom: 10px;
font-size: 11px;
}
.editor {
width: 100%;
margin-bottom: 10px;
font-size: 11px;
}
.subject {
width: 272px;
height: 65px;
}
.subject {
width: 272px;
height: 65px;
}
.description {
width: 272px;
height: 80px;
}
.description {
width: 272px;
height: 80px;
}
.remaining_hours,
.time_entry_hours,
.time_entry_user_id,
.time_entry_spent_on,
.blocks {
width: 268px;
}
.remaining_hours,
.time_entry_hours,
.time_entry_user_id,
.time_entry_spent_on,
.blocks {
width: 268px;
}
.time_entry_comments {
width: 268px;
height: 30px;
}
.time_entry_comments {
width: 268px;
height: 30px;
}
}
/* others */
//== Others
//
#impediment_template,
#task_template {
display: none;
display: none;
}
#preloader {
position: absolute;
left: -500px;
position: absolute;
left: -500px;
}
#spinner {
background-image: url("images/indicator.gif");
background-image: url("images/indicator.gif");
}
#warning {
background-image: url("images/warning.png");
background-image: url("images/warning.png");
}
#ui-datepicker-div {
display: none;
display: none;
}

File diff suppressed because one or more lines are too long