Compare commits

...

86 Commits

Author SHA1 Message Date
636e276a53 Remove external link glyph
Some checks failed
Run linters / lint (push) Has been cancelled
Run linters / build (16.x) (push) Has been cancelled
Run linters / build (18.x) (push) Has been cancelled
Run linters / build (20.x) (push) Has been cancelled
2025-05-23 07:45:35 -05:00
Grzegorz Rajchman
8cece5570e build on node 20 (#271) 2023-11-20 13:23:24 +00:00
Grzegorz Rajchman
134960a957 Update dependencies 2023-11-20 13:03:21 +00:00
Grzegorz Rajchman
929227fbda Update changelog 2023-11-20 12:59:46 +00:00
Cyprien Devillez
89ace106b2 Fix calendar display with Redmine 5.1 (#270) 2023-11-20 12:52:34 +00:00
Sebastian Bockholt
bc5965aee3 Fix typo of expanded icon class (#266)
Co-authored-by: sbock <sebastian.bockholt@bevuta.com>
2023-10-11 12:03:25 +01:00
Grzegorz Rajchman
69821b6ee2 Release v2.16.0 2023-05-14 21:42:56 +01:00
Grzegorz Rajchman
50919b24db Merge pull request #262 from gagnieray/feature/fix-master
Batch of fixes
2023-05-14 21:40:01 +01:00
Guillaume AGNIERAY
7fb8542baf Update Github's workflow 2023-05-11 17:08:05 +02:00
Guillaume AGNIERAY
4cad934780 Make better use of explicit variables and mixins 2023-05-11 16:35:58 +02:00
Guillaume AGNIERAY
4d5350abcf Fix for the Redmine Recaptcha plugin 2023-03-27 11:15:07 +02:00
Guillaume AGNIERAY
ee5f7c953a Improve the Additional Tags plugin display 2023-03-23 22:24:13 +01:00
Guillaume AGNIERAY
9d2eed48f8 Fix for the Redmine Hearts plugin 2023-03-23 22:21:42 +01:00
Guillaume AGNIERAY
3275e1b9aa Improve the Redmine Dashboard plugin display 2023-03-23 17:39:51 +01:00
Guillaume AGNIERAY
b8758b4705 Box style on the Additionals plugin's dashboards 2023-03-23 13:14:55 +01:00
Guillaume AGNIERAY
431ab76b5b Fixes in fixed-layout and right-sidebar modes 2023-03-23 10:47:40 +01:00
Guillaume AGNIERAY
c80281367d Better fix context-menu position
Fixes #233, #242, #246
2023-03-23 10:43:31 +01:00
Guillaume AGNIERAY
a1f1307acc Fix blocks' drag an drop
Mainly on the Additionals plugin's dashboards, but also on "My page".
Fixes #222
2023-03-22 22:26:28 +01:00
Guillaume AGNIERAY
611472863d Fix the Redmine Impersonate plugin display
Add icon on button and improve message display
2023-03-22 19:33:54 +01:00
Guillaume AGNIERAY
46041bc868 Fix roadmap progress titles' display on mouse over
Fixes #245
2023-03-21 16:04:59 +01:00
Guillaume AGNIERAY
164909da8a Fix for the Additionals plugin
Fix the icon's position of the default dashboards
2023-03-21 13:40:33 +01:00
Guillaume AGNIERAY
188df5599e Add padding around gravatar in flyout-menu 2023-03-21 13:02:07 +01:00
Guillaume AGNIERAY
2e7e3ceb54 Fix context-menu position
Fixes #233, #242, #246
2023-03-21 12:54:43 +01:00
Guillaume AGNIERAY
cdbe0a187e Fix header background color on mobile
Fixes #253
2023-03-21 12:42:06 +01:00
mrliptontea
8e3bffc518 Release v2.15.0 2021-05-23 21:00:41 +01:00
Grzegorz Rajchman
24bfb52f7a Merge pull request #223 from mrliptontea/dependabot/npm_and_yarn/lodash-4.17.21
Bump lodash from 4.17.20 to 4.17.21
2021-05-23 20:56:59 +01:00
Grzegorz Rajchman
125e09a18c Merge branch 'master' into dependabot/npm_and_yarn/lodash-4.17.21 2021-05-23 20:56:22 +01:00
Grzegorz Rajchman
8c1e5a99a5 Merge pull request #228 from mrliptontea/ifad-fix-documents
Ifad fix documents
2021-05-23 20:54:35 +01:00
mrliptontea
4e1d1e05d8 Move and improve documents style 2021-05-23 20:52:09 +01:00
Marcello Barnaba
75b0b63b92 documents: add spacing between items 2021-05-23 20:50:39 +01:00
Grzegorz Rajchman
dbb04bea5c Merge pull request #227 from mrliptontea/update-for-redmine-four-two-one
Update styles for Redmine 4.2.1
2021-05-23 16:03:46 +01:00
mrliptontea
ea28de2898 Update styles for Redmine 4.2.1 2021-05-23 16:01:12 +01:00
dependabot[bot]
947464dd92 Bump lodash from 4.17.20 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.20 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.20...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-23 14:59:57 +00:00
Grzegorz Rajchman
95cb578d8f Merge pull request #226 from mrliptontea/update-versions
Update package versions
2021-05-23 15:59:02 +01:00
mrliptontea
41143cf15f Update package versions 2021-05-22 16:23:58 +01:00
mrliptontea
745962541b Release v2.14.0 2021-01-27 18:00:53 +00:00
Grzegorz Rajchman
665ff99d15 Merge pull request #220 from liaham/master
Fix sorting behavior on enumeration page
2021-01-27 17:58:26 +00:00
Liane Hampe
b823dda2d9 Fix sorting behavior layout independent
The respective css styling is moved out of the case distinction between
grid and flexbox layout to be indpendent of the layout choice.
2021-01-10 15:26:59 +01:00
Liane Hampe
bf14f9fa3c Fix sorting behavior on enumeration page
Sorting a list item on administration/enumerations page causes for the
tables at second and third position on the page an unexpected behavior
when trying to sort an element by drag & drop.

That is, the distance between the dragged element and its placeholder
increases that much that it was difficult to position the list item as
wished.
2021-01-10 15:03:55 +01:00
Grzegorz Rajchman
58c45cf28f Merge pull request #217 from mrliptontea/dependabot/npm_and_yarn/ini-1.3.7
Bump ini from 1.3.5 to 1.3.7
2020-12-12 12:35:41 +00:00
dependabot[bot]
0dc89601b4 Bump ini from 1.3.5 to 1.3.7
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-11 07:20:36 +00:00
Grzegorz Rajchman
df3bf34032 Merge pull request #213 from geekbrother/master
Increase top menu elements margin
2020-10-14 21:56:07 +01:00
Max Kalashnikov
acd262667a Fix margin between top menu elements. 2020-10-14 11:41:24 +03:00
Max Kalashnikov
052fdbc2cc Fixing top menu items margin. 2020-10-14 11:37:36 +03:00
Max Kalashnikov
3a541692fa Fix top menu list margins. 2020-10-14 11:32:06 +03:00
mrliptontea
d1684a8d99 Release v2.13.0 2020-09-26 14:00:33 +01:00
Grzegorz Rajchman
6bdbd2de8a Merge pull request #210 from mrliptontea/replace-node-sass-with-sass
Replace node-sass with sass
2020-09-26 13:57:59 +01:00
mrliptontea
9b9b3ca37e Test no various versions of Node.js 2020-09-26 13:55:40 +01:00
mrliptontea
c0fd6f355c Replace node-sass with sass
Fixes #208
2020-09-26 13:32:37 +01:00
Grzegorz Rajchman
8298f58ee0 Merge pull request #209 from mrliptontea/update-dependencies
Update dependencies
2020-09-20 18:21:28 +01:00
mrliptontea
77e10d6f3d Update dependencies 2020-09-20 18:16:42 +01:00
mrliptontea
2d41c73928 Release v2.12.1 2020-08-11 23:26:11 +01:00
mrliptontea
ac0fe3f164 Update dependencies 2020-08-11 23:22:24 +01:00
Grzegorz Rajchman
5ffef0b09b Merge pull request #205 from mrliptontea/issue-204/easy-wbs-plugin-missing-icons
Fix #204 missing context menu icons in Easy WBS plugin
2020-08-11 23:18:39 +01:00
mrliptontea
9ee2f1410e Fix #204 missing context menu icons in Easy WBS plugin 2020-08-11 23:10:13 +01:00
mrliptontea
2ef0ebd380 Release v2.12.0 2020-08-01 15:40:11 +01:00
Grzegorz Rajchman
fce7bcffd3 Merge pull request #203 from ifad/fix/wiki-pagination
fix pagination overlapping wiki content
2020-08-01 15:31:52 +01:00
Marcello Barnaba
32366f5679 fix pagination overlapping wiki content 2020-07-31 16:11:49 +02:00
Grzegorz Rajchman
13297491d0 Merge pull request #202 from mrliptontea/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-16 19:57:45 +01:00
dependabot[bot]
6dc24b6911 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 00:39:13 +00:00
Grzegorz Rajchman
25e00a217d Merge pull request #200 from mrliptontea/issue-199-wrap-key-values
Fix #199 wrap key-values in issues list
2020-06-23 20:57:48 +01:00
mrliptontea
54d0136aa5 Fix #199 wrap key-values in issues list 2020-06-23 20:54:37 +01:00
mrliptontea
670830cf3e Use npm script for linters
lint-action doesn't work for forks
2020-06-15 21:00:20 +01:00
Grzegorz Rajchman
06ac7eff64 Merge pull request #197 from mrliptontea/issue-196
Fix text wrapping in issue list
2020-06-15 20:59:30 +01:00
mrliptontea
f87c391547 Fix text wrapping in issue list 2020-06-15 20:51:07 +01:00
mrliptontea
8bf71cf947 Replace lint badge 2020-06-14 15:04:26 +01:00
Grzegorz Rajchman
bfa2376653 Merge pull request #195 from mrliptontea/dependabot/npm_and_yarn/websocket-extensions-0.1.4
Bump websocket-extensions from 0.1.3 to 0.1.4
2020-06-14 15:01:33 +01:00
dependabot[bot]
cfec912d12 Bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-06 11:30:30 +00:00
Grzegorz Rajchman
8c26cacebc Merge pull request #194 from mrliptontea/updates
Updates
2020-05-25 22:35:06 +01:00
mrliptontea
71fb78a3b7 Add husky and lint-staged git hooks 2020-05-25 22:09:58 +01:00
mrliptontea
dfce2e0b13 Update workflow
- Bump checkout action to v2
- Run on pull_request and on push to branches
2020-05-24 16:02:47 +01:00
mrliptontea
491fde75bb Update packages 2020-05-24 16:01:52 +01:00
mrliptontea
5e671bb9b7 Release v2.11.0 2020-05-08 23:32:34 +01:00
Grzegorz Rajchman
604a00561b Merge pull request #190 from mrliptontea/redmineup-improvements
Bulk improvements
2020-05-08 23:31:01 +01:00
mrliptontea
1d5b42235e Add Redmine Banner styles 2020-05-08 23:28:42 +01:00
mrliptontea
2b492be04a RedmineUP improvements 2020-05-08 23:28:27 +01:00
mrliptontea
4245d5daf6 Add table icon to jstoolbar 2020-04-25 18:40:01 +01:00
mrliptontea
06e7e4fded Fix checkbox padding when table borders are enabled 2020-04-25 18:38:45 +01:00
mrliptontea
36000bd02c Restore $color-priorities 2020-04-25 18:35:37 +01:00
Grzegorz Rajchman
510a32ec41 Merge pull request #180 from mrliptontea/issue-179-full-screen-mode-issues
Fix #179 full screen mode issues
2020-04-14 21:14:50 +01:00
mrliptontea
80105407af Fix #179 full screen mode issues 2020-04-14 21:12:53 +01:00
Grzegorz Rajchman
6e9e834816 Merge pull request #178 from mrliptontea/issue-177-icon-lose-hover
Fix #177 change styling for icon-only buttons
2020-04-13 20:13:32 +01:00
mrliptontea
0d1daf1a22 Fix #177 change styling for icon-only buttons 2020-04-13 20:05:18 +01:00
mrliptontea
e7500035e3 Release v2.10.2 2020-04-09 15:37:37 +01:00
Grzegorz Rajchman
d3ed59dc9b Merge pull request #176 from mrliptontea/fix-175-target-note-edit
Fix target note cannot be edited
2020-04-09 09:21:58 +01:00
mrliptontea
edbe4feca8 Fix #175 target note cannot be edited 2020-04-09 09:20:38 +01:00
52 changed files with 22771 additions and 4995 deletions

View File

@@ -1,31 +1,52 @@
name: Run linters
on: push
on:
push:
branches:
- 'master'
- 'v*.*'
pull_request:
jobs:
lint:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
uses: actions/checkout@v3
- name: Use Node.js 10.x
uses: actions/setup-node@v1
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: "10.x"
node-version: 16.x
- name: Install npm dependencies
run: npm ci
- name: Run linters
uses: samuelmeuli/lint-action@v1
- name: Eslint
run: npm run lint:js
- name: Stylelint
run: npm run lint:sass
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.x]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
github_token: ${{ secrets.github_token }}
eslint: true
eslint_dir: "src/javascripts"
stylelint: true
stylelint_dir: "src/sass"
node-version: ${{ matrix.node-version }}
- name: Install npm dependencies
run: npm ci --production
- name: Check build
run: npm run build

12
.lintstagedrc.js Normal file
View File

@@ -0,0 +1,12 @@
module.exports = {
"src/**/*.js": files => [
`eslint "${files.join('" "')}"`,
'grunt js',
'git add javascripts/'
],
"src/**/*.scss": files => [
`stylelint "${files.join('" "')}"`,
'grunt css',
'git add stylesheets/ plugins/'
],
}

337
CHANGELOG.md Normal file
View File

@@ -0,0 +1,337 @@
v2.16.2 (2023-11-20):
* Fixed #268 calendar display with Redmine 5.1
v2.16.1 (2023-10-11):
* Fixed #266 typo of expanded icon class
v2.16.0 (2023-05-14):
* Update theme to make it work with 5.0.
* Fixed issues #222, #233, #242, #245, #246, #253, and few others.
v2.15.0 (2021-05-23):
* Updated styles for Redmine 4.2.
* Merged #225 (via #228): improved documents styles.
v2.14.0 (2021-01-27):
* Merged #220: fixed drag & drop behavior.
v2.13.0 (2020-09-26):
* Replaced node-sass with sass.
* Resolved issues with `inline-svg` function in Node 14.x.
v2.12.1 (2020-08-11):
* Fixed #204 - missing context menu icons in Easy WBS plugin.
v2.12.0 (2020-08-01):
* Fixed #196 and #199: text wrapping in certain column types.
* Merged #203: fixed pagination overlapping wiki content.
v2.11.0 (2020-05-08):
* Fixed #179: full screen mode issues when using redmine_wysiwyg_editor plugin.
* Fixed #177: changed styling for icon-only buttons to resolve weird behavior on hover.
* Added `$icon-width` variable.
* Added margin in some places like after buttons, avatars.
* Changed tooltip background to black.
* Changed top menu styles.
* Restored `$color-priorities` variable, `false` by default.
* Added `parse-length($value, $side)` function for extracting length/width from margin/padding/border.
* Fixed checkbox cell padding when issue table borders are enabled.
* Added table icon to jstoolbar styles.
* Refactored icons code.
* Improved styles for [RedmineUP](https://www.redmineup.com/pages/plugins) plugins (Agile, Checklists, CRM, Tags).
* Improved vertical alignment of certain form elements.
* Improved styles for sortable elements.
* Added new `.inline-flex` class.
* Improved styles for [Redmine Banner](https://github.com/akiko-pusu/redmine_banner) plugin.
v2.10.2 (2020-04-09):
* Fixed #175: couldn't edit note when it's URL target.
* Improved styling of some inline edit forms.
v2.10.1 (2020-04-06):
* Fixed #160: highlight color in jQuery UI menu, most notably in checklist plugin.
v2.10.0 (2020-04-05):
* Fixed #172 Collapsed/expended icons for completed versions.
* Fixed #171 "Display" label in Gantt option.
* Fixed #170 radio buttons in projects options.
* Fixed #169 styles in the spent time tab.
* Fixed #164: apply responsive overrides more generally
* Fixed #159: wrapping long text in issue attributes.
* Fixed #150: styling for query totals and expander in Agile plugin.
* Fixed #148: full screen view for Dashboard plugin.
* Fixed a "timeline" positioning in issue notes/changes.
* Changed lightness of shades 50 and 950.
* Changed loader styles.
* Changed rouge syntax highlighter color scheme.
v2.9.1 (2020-02-22):
* Merged fix #155: $.load function removed from jQuery.
* Fixed badge positioning in roadmap screen.
v2.9.0 (2020-01-30):
* Fixed #141: improved styling for issue edit form.
* Fixed #142: TOC assumes `left` by default, also added new variables to control how it looks.
* Fixed #143: `$main-menu-bg-hover` is now being used.
* Resolved #144: added `$main-menu-bg-active` variable.
* Resolved #145: added `$table-list-header-bg` variable.
* Fixed #147: corrected forum edit attached files icon.
* Fixed #153: improved styling for `label.block`.
* Added styling for clear query button.
* Improved responsive sidebar menu layout.
v2.8.0 (2019-08-13):
* Resolved #132: fixed spacing for headers on roadmap pages.
* Merged fix #136: broken layout with large image attachment.
v2.7.0 (2019-06-13):
* Resolved #124: added support for [issue-id](http://projects.andriylesyuk.com/projects/issue-id/) plugin.
v2.6.0 (2019-06-13):
* Resolved #121: added support for [redmine_wiki_page_tree](https://github.com/ledsun/redmine_wiki_page_tree) plugin.
v2.5.0 (2019-06-05):
* Fixed #117, #118 and added many improvements to the responsive layout.
v2.4.0 (2019-06-02):
* Synchronized most application styles with Redmine's default theme.
* Fixed #115: color overdue date in issue lists.
v2.3.1 (2019-05-09):
* Fixed #112: improved highlight contrast in text diffs.
v2.3.0 (2019-05-09):
* Fixed #107: nested lists in the sidebar via [Additionals](https://www.redmine.org/plugins/additionals) plugin.
v2.2.0 (2019-04-09):
* Fixed #101, #102: tooltip positioning
v2.1.1 (2019-03-23):
* Fixed sidebar toggler style when fixed layout is enabled
* Fixed contextual dropdown padding in mobile view
v1.11.0 (2019-03-22):
* Backported fixes from v2:
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
* Fixed #90: regression in some sidebar layouts
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
* Fixed #94: subtasks indentation
* Fixed styling of some flash messages
* Fixed horizontal scrollbar appearing when sidebar is on the right
* Fixed footer being mispositioned in Agile charts
* Fixed positioning of admin menu icons for some plugins
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
* Added separator line between news on the news list
* Improved Redmine 4.0 compatibility
* Updated Font Awesome icons to 4.7.0
v2.1.0 (2019-03-22):
* Added CSS grid layout support (off by default because of IE support)
* Fixed styling of some flash messages
* Fixed horizontal scrollbar appearing when sidebar is on the right
* Fixed footer being mispositioned in Agile charts
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
* Fixed positioning of admin menu icons for some plugins
* Added separator line between news on the news list
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
* Fixed #94: subtasks indentation
* Improved progress bar styling, avatar positioning, WYSIWYG button styling, wiki preview font sizes
v2.0.2 (2019-03-20):
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
v2.0.1 (2019-03-17):
* Fixed #90: regression in some sidebar layouts
* Removed reduntant `abbr[title]` styles
v2.0 (2019-03-13):
* Refreshed, modernized look & feel
* Added priority icons
* Removed `$color-priorities` setting and styles
* Improved Redmine 4.0 compatibility
* Updated Font Awesome icons to 4.7.0
v1.10.0 (2019-03-12):
* Fixed #86: added support for redmine_hearts plugin
v1.9.0 (2019-03-01):
* Fixed #42: override some styles from [RM+](http://rmplus.pro) plugins
* Merged #43: fixes for Redmine 3.3.2.devel
* Support for responsive menu and further changes for Redmine 3.3.2.devel (fixes #26)
* Improved styles for custom flash messages in wiki content (e.g. for [WikiNG](http://www.redmine.org/plugins/wiking) plugin)
* Introduce project tiles on projects list page (enabled by default, can be switched off by setting `$use-project-tiles` to `false`)
* Fixed #44: adjust width of the label column on the login form
* Merged #49: German translations
* Fixed #50: printed content on second page onwards was missing in Firefox
* Fixed #51: a plugin dropdown in top menu could be too narrow
* Fixed #52: delete watcher icon in the sidebar was missing
* Fixed #54: long checkbox lists will be scrollable
* Fixed #62: anchors won't scroll the page
* Fixed #69: fixed "remember me" checkbox layout on login page
* Fixed #78: files not visible on list in wiki when there is a lot of them
* Updated dependencies
* Fixed #81: top watchers checkboxes were not visible on Firefox
* Removed `checkbox` and `radio` mixins in favour of `check`
* Fixed #83: editor tabs layout in Redmine 4.0
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.
v1.4.0 (2015-04-10):
+ Introduced option `$wiki-page-more-vertical-space` (by default `true`) to improve wiki pages' readability even more
* Fixed bottom margin of `pre` tag
+ Added a few helper classes from Bootstrap
* WYSIWYG's icons will squeeze a little bit on smaller screens
* Images in headers will be aligned to the middle vertically
+ Introduced `text-normal` class for resetting font's weight
+ Added class `toc-active-prev` that will "highlight" TOC as "active".
* Fixed #2: Make sure that `.sort` with Font Awesome icons won't have background image
* Fixed attachments div's layout for wiki pages
For more details, see [release v1.4.0](https://github.com/mrliptontea/PurpleMine2/releases/tag/v1.4.0)
v1.3.0 (2015-04-01):
* Backlogs: make it possible to click on empty field
* Corrected issue form columns widths so they will be equal in all fieldsets
* Changesets will look similar to issue's journal
+ Improved revision page layout and added Font Awesome icons
+ Improved file content view
* Fixed #1: Font Awesome icons will no longer break plugins' icons
+ Introduced styles for [People][redmine_crm_people] plugin
* Enhanced styles for activities list
* Regular buttons (e.g. `Cancel`) will look like links in dialog windows
* Fixed look of collapsible arrow in Firefox
+ Overrode Redmine's revision graph function to make it look better
+ Animated collapsible fieldsets
+ Custom image based icons changed to base64 embedded data
v1.2.0 (2015-03-03):
* Fixed .warning style
+ Coloring status on issue page (it'll look like label)
* Fixed master backlog sub-menu accessibility
+ Changed font weight to normal for sub-projects in project list
* Fixed watch task path for .js
- Removed unnecessary classes from .sidebar-toggler
* Fixed external link icon, when URI contains the word 'edit'
* Fixed wiki page headers links font-size
+ Changed some trackers default colors
+ Bolded user name on issue page if it's current user
* Issue's journal appearance changed once again
+ Some improvements in wiki formatting
+ Introduced HistoryTabs for filtering issue journals
* Improved issue page styles and adjusted default priority colors
* Backlogs: added delay before hiding backlog menu
* Changed ancestor project name in top to equal font size, but different weight
* Fixed context menu position regression introduced by sidebar toggle
v1.1.0 (2015-02-15):
+ Changed issue's journal appearance
+ jQuery UI menus look improved
+ Removed box-shadow from boxes
+ Bumped grunt-sass version
+ Toggling sidebar visibility
+ Recompressed images
+ Changelog added
v1.0.0 (2015-02-06):
Initial version

View File

@@ -4,11 +4,11 @@ module.exports = function (grunt) {
sass: {
options: {
implementation: require('node-sass'),
implementation: require('sass'),
sourceMap: false,
outputStyle: 'compressed',
functions: {
'inline-svg': require('sass-inline-svg')('./svg', {
'inline-svg($path, $selectors: null)': require('@liquid-js/sass-inline-svg')('./svg', {
optimize: true,
encodingFormat: 'uri'
})

286
README.md
View File

@@ -1,15 +1,13 @@
# PurpleMine 2
A free Redmine theme for modern browsers.
A free Redmine 3.0+ theme written in SCSS.
![The MIT License](https://img.shields.io/badge/license-MIT-584492.svg) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) [![Build Status](https://img.shields.io/endpoint.svg?url=https://actions-badge.atrox.dev/mrliptontea/PurpleMine2/badge&label=lint&logo=none)](https://actions-badge.atrox.dev/mrliptontea/PurpleMine2/goto) [![Issues](https://img.shields.io/github/issues/mrliptontea/PurpleMine2.svg)](https://github.com/mrliptontea/PurpleMine2/issues)
![The MIT License](https://img.shields.io/badge/license-MIT-584492.svg) [![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/) ![Run linters](https://github.com/mrliptontea/PurpleMine2/workflows/Run%20linters/badge.svg) [![Issues](https://img.shields.io/github/issues/mrliptontea/PurpleMine2.svg)](https://github.com/mrliptontea/PurpleMine2/issues)
---
![Screenshot](https://github.com/mrliptontea/PurpleMine2/raw/master/screenshots/issues.png)
Compatible with Redmine 3.0+ 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.
## Main features
@@ -18,7 +16,7 @@ It's written in [SCSS]. It uses [normalize.css] and benefits from some parts of
* Github-like wiki content look,
* Sidebar moved to the left for better ergonomy,
* Coloring trackers links (on lists, issue pages and even in the wiki content),
* Highlighting issues priority on the list and on the issue page,
* Jira-inspired priority icons,
* Toggling sidebar visibility,
* Easy to customize via variables.
@@ -56,283 +54,7 @@ If you need to customize styles for [Redmine Backlogs][redmine_backlogs] remembe
## Changelog
v2.10.1 (2020-04-06):
* Fixed #160: highlight color in jQuery UI menu, most notably in checklist plugin.
v2.10.0 (2020-04-05):
* Fixed #172 Collapsed/expended icons for completed versions.
* Fixed #171 "Display" label in Gantt option.
* Fixed #170 radio buttons in projects options.
* Fixed #169 styles in the spent time tab.
* Fixed #164: apply responsive overrides more generally
* Fixed #159: wrapping long text in issue attributes.
* Fixed #150: styling for query totals and expander in Agile plugin.
* Fixed #148: full screen view for Dashboard plugin.
* Fixed a "timeline" positioning in issue notes/changes.
* Changed lightness of shades 50 and 950.
* Changed loader styles.
* Changed rouge syntax highlighter color scheme.
v2.9.1 (2020-02-22):
* Merged fix #155: $.load function removed from jQuery.
* Fixed badge positioning in roadmap screen.
v2.9.0 (2020-01-30):
* Fixed #141: improved styling for issue edit form.
* Fixed #142: TOC assumes `left` by default, also added new variables to control how it looks.
* Fixed #143: `$main-menu-bg-hover` is now being used.
* Resolved #144: added `$main-menu-bg-active` variable.
* Resolved #145: added `$table-list-header-bg` variable.
* Fixed #147: corrected forum edit attached files icon.
* Fixed #153: improved styling for `label.block`.
* Added styling for clear query button.
* Improved responsive sidebar menu layout.
v2.8.0 (2019-08-13):
* Resolved #132: fixed spacing for headers on roadmap pages.
* Merged fix #136: broken layout with large image attachment.
v2.7.0 (2019-06-13):
* Resolved #124: added support for [issue-id](http://projects.andriylesyuk.com/projects/issue-id/) plugin.
v2.6.0 (2019-06-13):
* Resolved #121: added support for [redmine_wiki_page_tree](https://github.com/ledsun/redmine_wiki_page_tree) plugin.
v2.5.0 (2019-06-05):
* Fixed #117, #118 and added many improvements to the responsive layout.
v2.4.0 (2019-06-02):
* Synchronized most application styles with Redmine's default theme.
* Fixed #115: color overdue date in issue lists.
v2.3.1 (2019-05-09):
* Fixed #112: improved highlight contrast in text diffs.
v2.3.0 (2019-05-09):
* Fixed #107: nested lists in the sidebar via [Additionals](https://www.redmine.org/plugins/additionals) plugin.
v2.2.0 (2019-04-09):
* Fixed #101, #102: tooltip positioning
v2.1.1 (2019-03-23):
* Fixed sidebar toggler style when fixed layout is enabled
* Fixed contextual dropdown padding in mobile view
v1.11.0 (2019-03-22):
* Backported fixes from v2:
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
* Fixed #90: regression in some sidebar layouts
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
* Fixed #94: subtasks indentation
* Fixed styling of some flash messages
* Fixed horizontal scrollbar appearing when sidebar is on the right
* Fixed footer being mispositioned in Agile charts
* Fixed positioning of admin menu icons for some plugins
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
* Added separator line between news on the news list
* Improved Redmine 4.0 compatibility
* Updated Font Awesome icons to 4.7.0
v2.1.0 (2019-03-22):
* Added CSS grid layout support (off by default because of IE support)
* Fixed styling of some flash messages
* Fixed horizontal scrollbar appearing when sidebar is on the right
* Fixed footer being mispositioned in Agile charts
* Improved support for [Redmine Tags](https://www.redmineup.com/pages/plugins/tags) plugin
* Fixed positioning of admin menu icons for some plugins
* Added separator line between news on the news list
* Fixed #93: Agile chart expanding indefinitely when Additional "Go to top" link is enabled
* Fixed #94: subtasks indentation
* Improved progress bar styling, avatar positioning, WYSIWYG button styling, wiki preview font sizes
v2.0.2 (2019-03-20):
* Fixed #89: [RM+ custom menu](http://rmplus.pro/en/redmine/plugins/custom_menu) breaking the layout
v2.0.1 (2019-03-17):
* Fixed #90: regression in some sidebar layouts
* Removed reduntant `abbr[title]` styles
v2.0 (2019-03-13):
* Refreshed, modernized look & feel
* Added priority icons
* Removed `$color-priorities` setting and styles
* Improved Redmine 4.0 compatibility
* Updated Font Awesome icons to 4.7.0
v1.10.0 (2019-03-12):
* Fixed #86: added support for redmine_hearts plugin
v1.9.0 (2019-03-01):
* Fixed #42: override some styles from [RM+](http://rmplus.pro) plugins
* Merged #43: fixes for Redmine 3.3.2.devel
* Support for responsive menu and further changes for Redmine 3.3.2.devel (fixes #26)
* Improved styles for custom flash messages in wiki content (e.g. for [WikiNG](http://www.redmine.org/plugins/wiking) plugin)
* Introduce project tiles on projects list page (enabled by default, can be switched off by setting `$use-project-tiles` to `false`)
* Fixed #44: adjust width of the label column on the login form
* Merged #49: German translations
* Fixed #50: printed content on second page onwards was missing in Firefox
* Fixed #51: a plugin dropdown in top menu could be too narrow
* Fixed #52: delete watcher icon in the sidebar was missing
* Fixed #54: long checkbox lists will be scrollable
* Fixed #62: anchors won't scroll the page
* Fixed #69: fixed "remember me" checkbox layout on login page
* Fixed #78: files not visible on list in wiki when there is a lot of them
* Updated dependencies
* Fixed #81: top watchers checkboxes were not visible on Firefox
* Removed `checkbox` and `radio` mixins in favour of `check`
* Fixed #83: editor tabs layout in Redmine 4.0
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.
v1.4.0 (2015-04-10):
+ Introduced option `$wiki-page-more-vertical-space` (by default `true`) to improve wiki pages' readability even more
* Fixed bottom margin of `pre` tag
+ Added a few helper classes from Bootstrap
* WYSIWYG's icons will squeeze a little bit on smaller screens
* Images in headers will be aligned to the middle vertically
+ Introduced `text-normal` class for resetting font's weight
+ Added class `toc-active-prev` that will "highlight" TOC as "active".
* Fixed #2: Make sure that `.sort` with Font Awesome icons won't have background image
* Fixed attachments div's layout for wiki pages
For more details, see [release v1.4.0](https://github.com/mrliptontea/PurpleMine2/releases/tag/v1.4.0)
v1.3.0 (2015-04-01):
* Backlogs: make it possible to click on empty field
* Corrected issue form columns widths so they will be equal in all fieldsets
* Changesets will look similar to issue's journal
+ Improved revision page layout and added Font Awesome icons
+ Improved file content view
* Fixed #1: Font Awesome icons will no longer break plugins' icons
+ Introduced styles for [People][redmine_crm_people] plugin
* Enhanced styles for activities list
* Regular buttons (e.g. `Cancel`) will look like links in dialog windows
* Fixed look of collapsible arrow in Firefox
+ Overrode Redmine's revision graph function to make it look better
+ Animated collapsible fieldsets
+ Custom image based icons changed to base64 embedded data
v1.2.0 (2015-03-03):
* Fixed .warning style
+ Coloring status on issue page (it'll look like label)
* Fixed master backlog sub-menu accessibility
+ Changed font weight to normal for sub-projects in project list
* Fixed watch task path for .js
- Removed unnecessary classes from .sidebar-toggler
* Fixed external link icon, when URI contains the word 'edit'
* Fixed wiki page headers links font-size
+ Changed some trackers default colors
+ Bolded user name on issue page if it's current user
* Issue's journal appearance changed once again
+ Some improvements in wiki formatting
+ Introduced HistoryTabs for filtering issue journals
* Improved issue page styles and adjusted default priority colors
* Backlogs: added delay before hiding backlog menu
* Changed ancestor project name in top to equal font size, but different weight
* Fixed context menu position regression introduced by sidebar toggle
v1.1.0 (2015-02-15):
+ Changed issue's journal appearance
+ jQuery UI menus look improved
+ Removed box-shadow from boxes
+ Bumped grunt-sass version
+ Toggling sidebar visibility
+ Recompressed images
+ Changelog added
v1.0.0 (2015-02-06):
Initial version
[Changelog](./CHANGELOG.md).
[SCSS]: http://sass-lang.com/
[normalize.css]: https://github.com/necolas/normalize.css

File diff suppressed because one or more lines are too long

15017
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "purplemine",
"description": "A free Redmine 2.6+ theme written in SCSS",
"description": "A free Redmine 3.0+ theme written in SCSS",
"keywords": [
"redmine",
"theme",
@@ -25,29 +25,36 @@
"lint": "npm run -S lint:js && npm run -S lint:sass"
},
"dependencies": {
"autoprefixer": "^9.7.5",
"grunt": "^1.1.0",
"grunt-contrib-uglify": "^4.0.1",
"@liquid-js/sass-inline-svg": "^2.0.0",
"autoprefixer": "^9.8.8",
"grunt": "^1.6.1",
"grunt-contrib-uglify": "^5.2.2",
"grunt-contrib-watch": "^1.1.0",
"grunt-postcss": "^0.9.0",
"grunt-sass": "^3.1.0",
"node-sass": "^4.13.1",
"sass-inline-svg": "^1.2.3"
"sass": "^1.69.5"
},
"devDependencies": {
"eslint": "^6.8.0",
"eslint": "^7.32.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-node": "^11.0.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"stylelint": "^10.1.0",
"stylelint-order": "^3.1.1",
"stylelint-scss": "^3.16.0"
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.3.1",
"eslint-plugin-standard": "^4.1.0",
"husky": "^4.3.8",
"lint-staged": "^10.5.4",
"stylelint": "^13.13.1",
"stylelint-order": "^4.1.0",
"stylelint-scss": "^3.21.0"
},
"browserslist": [
"last 2 versions",
"> 1%",
"not dead"
]
],
"husky": {
"hooks": {
"pre-commit": "lint-staged --relative"
}
}
}

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:.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 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);display:none;position:absolute;z-index:10000;padding:3px;text-align:left}.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 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 #dadce7;font-weight:600;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 5px 8px -2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);display:none;position:absolute;z-index:10000;padding:3px;text-align:left}.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 label{display:block;padding:3px 1px;padding-left:26px;border:1px solid rgba(0,0,0,0);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 #dadce6;font-weight:600;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{box-shadow:0 5px 8px -2px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.3);position:relative;padding:10px;overflow:hidden;border:1px solid #d1d3e0;background-color:#fff;color:#3e425a;font-size:.92em;text-align:left;word-wrap:break-word}.ui-tooltip-tip{position:absolute;z-index:10;margin:0 auto;overflow:hidden;border:0 none;border-color:#d1d3e0;background:transparent;background-color:#fff}
.qtip{position:absolute;top:-31000px;left:-31000px;width:auto;max-width:500px;outline:none}.ui-tooltip-content{box-shadow:0 5px 8px -2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);position:relative;padding:10px;overflow:hidden;border:1px solid #d1d3e0;background-color:#fff;color:#3e4359;font-size:.92em;text-align:left;word-wrap:break-word}.ui-tooltip-tip{position:absolute;z-index:10;margin:0 auto;overflow:hidden;border:0 none;border-color:#d1d3e0;background:rgba(0,0,0,0);background-color:#fff}

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:red}.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

@@ -32,6 +32,7 @@ PurpleMine.SidebarToggler = (function () {
this.sidebarVisible = true
this.sidebarHiding = null
this.$toggler = null
this.$header = $('#header')
this.$main = $('#main')
this.$sidebar = $('#sidebar')
this.lang = document.documentElement.lang
@@ -42,13 +43,6 @@ PurpleMine.SidebarToggler = (function () {
this._ = translations[this.lang]
// Fix issue with context menu position
if (this.$main.css('position') === 'relative') {
$(window).on('load', function () {
$('#context-menu').appendTo('#wrapper3')
})
}
handleSidebar()
}
@@ -96,7 +90,7 @@ PurpleMine.SidebarToggler = (function () {
'"></a>'
instance.$toggler = $(togglerHtml)
instance.$main.append(instance.$toggler)
instance.$header.append(instance.$toggler)
instance.$toggler.on('click', instance.toggleSidebar)
}

4
src/sass/_functions.scss Normal file
View File

@@ -0,0 +1,4 @@
// Functions
// --------------------------------------------------
@import "functions/parse-length";

View File

@@ -1,3 +1,5 @@
@use "sass:math";
//
// Variables
// --------------------------------------------------
@@ -14,6 +16,7 @@ $sidebar-position: left !default;
$clean-issues: true !default;
$color-trackers: true !default;
$color-status: true !default;
$color-priorities: false !default;
$priority-icon: true !default;
$use-gravatars: true !default;
$use-logo: false !default;
@@ -23,6 +26,7 @@ $issue-subject-large: true !default;
$enable-sidebar-toggler: true !default;
$wiki-page-more-vertical-space: true !default;
$top-menu-collapse: false !default;
$agile-board-customize: true !default;
//== Colors
@@ -58,7 +62,7 @@ $shade-map: (
@function shade($color, $shade: 500) {
$mixer: if($shade < 500, $white, $black);
$saturation: if($shade < 500, 0, ($shade - 500) / 20);
$saturation: if($shade < 500, 0, math.div($shade - 500, 20));
@return saturate(mix($mixer, $color, map-get($shade-map, $shade)), $saturation);
}
@@ -166,11 +170,11 @@ $wiki-font-size: 16px !default;
$wiki-line-height: 1.6 !default;
$wiki-preview-bg: $body-bg !default;
$toc-bg: shade($yellow, 50) !default;
$toc-border: mix($yellow, $gray-500, 25%) !default;
$toc-bg: $gray-50 !default;
$toc-border: $gray-300 !default;
$toc-text: $text-color !default;
$toc-link: shade($yellow, 800) !default;
$toc-link-hover: shade($yellow, 900) !default;
$toc-link: $link-color !default;
$toc-link-hover: $link-hover-color !default;
$toc-shadow: 0 1px 3px rgba($black, .07) !default;
$toc-active-link: darken($link-color, 10%) !default;
$toc-active-link-hover: shade($toc-active-link, 700) !default;
@@ -237,6 +241,11 @@ $table-bg-active: $table-bg-hover !default;
$table-border-color: $gray-300 !default;
$table-color-odd-factor: if($table-list-color-odd-rows, $table-accent-factor * .8, $table-accent-factor * .5) !default;
$table-color-even-factor: if($table-list-color-even-rows, $table-accent-factor * .8, $table-accent-factor * .5) !default;
$table-color-hover-factor: $table-hover-factor * .5 !default;
$table-color-border-shade: 100 !default;
//== Issue statuses
//
@@ -303,6 +312,65 @@ $priority-default-icons-map: (
$priority-custom-icons-map: () !default;
$priority-icons-map: map-merge($priority-default-icons-map, $priority-custom-icons-map);
$priority-default-color-map: (
lowest: (
border: shade($green, $table-color-border-shade),
background: $green,
color: $text-color,
link: shade($green, 700),
),
low2: (
border: shade(mix($teal, $green), $table-color-border-shade),
background: mix($teal, $green),
color: $text-color,
link: shade(mix($teal, $green), 700),
),
low3: (
border: shade($teal, $table-color-border-shade),
background: $teal,
color: $text-color,
link: shade($teal, 700),
),
default: (
border: shade($blue, $table-color-border-shade),
background: $blue,
color: $text-color,
link: shade($blue, 700),
),
high5: (
border: shade($purple, $table-color-border-shade),
background: $purple,
color: $text-color,
link: shade($purple, 700),
),
high4: (
border: shade($orange, $table-color-border-shade),
background: $orange,
color: $text-color,
link: shade($orange, 700),
),
high3: (
border: shade(mix($red, $orange), $table-color-border-shade),
background: mix($red, $orange),
color: $text-color,
link: shade(mix($red, $orange), 700),
),
high2: (
border: shade($red, $table-color-border-shade),
background: $red,
color: $text-color,
link: shade($red, 700),
),
highest: (
border: shade($red, $table-color-border-shade),
background: $red,
color: $text-color,
link: shade($red, 700),
)
) !default;
$priority-custom-color-map: () !default;
$priority-color-map: map-merge($priority-default-color-map, $priority-custom-color-map);
//== Trackers links
//
@@ -405,6 +473,7 @@ $btn-success-border: $btn-success-bg !default;
//== Action icons
//
$icon-width: 20px !default;
$icon-opacity: .7 !default;
$icon-hover-opacity: 1 !default;
$icon-color-map: (
@@ -508,7 +577,7 @@ $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;
$logo-space: floor($header-padding-vertical * .5) !default;
$main-menu-bg: $gray-100 !default;
$main-menu-bg-hover: $gray-100 !default;
@@ -584,6 +653,11 @@ $flash-success-border: shade($green, 500) !default;
$flash-success-text: $white !default;
$flash-success-link: $white !default;
$flash-info-bg: shade($blue, 100) !default;
$flash-info-border: shade($blue, 200) !default;
$flash-info-text: shade($blue, 800) !default;
$flash-info-link: shade($blue, 900) !default;
$flash-warning-bg: shade($yellow, 200) !default;
$flash-warning-border: shade($yellow, 300) !default;
$flash-warning-text: shade($yellow, 800) !default;
@@ -714,3 +788,67 @@ $login-form-adjustments-map: (
$width-sm: $screen-sm - ($padding-side * 2) !default;
$width-md: $screen-md - ($padding-side * 2) !default;
$width-lg: $screen-lg - ($padding-side * 2) !default;
//== Redmine Agile plugin
// https://www.redmineup.com/pages/plugins/agile
//
$agile-board-background: $gray-100 !default;
$agile-issue-card-margin: 8px 10px !default;
$agile-issue-card-padding: 7px !default;
$agile-issue-card-border: $gray-500;
$agile-issue-card-border-width: 0 0 0 5px;
$agile-issue-card-border-radius: $border-radius-large !default;
$agile-issue-card-background: $white !default;
$agile-issue-card-color: $text-color !default;
$agile-issue-card-closed-background: $gray-300 !default;
$agile-issue-card-default-color-map: (
bk-green: (
border: $green,
background: scale-color($green, $saturation: -5%, $lightness: 80%),
link: shade($green, 700),
),
bk-blue: (
border: $blue,
background: scale-color($blue, $saturation: 50%, $lightness: 80%),
link: shade($blue, 700),
),
bk-turquoise: (
border: $teal,
background: scale-color($teal, $saturation: -5%, $lightness: 80%),
link: shade($teal, 700),
),
bk-lightgreen: (
border: adjust-color($green, $hue: -45deg),
background: scale-color(adjust-color($green, $hue: -45deg), $saturation: 75%, $lightness: 80%),
link: shade(adjust-color($green, $hue: -45deg), 700),
),
bk-yellow: (
border: adjust-color($yellow, $hue: 2deg),
background: scale-color(adjust-color($yellow, $hue: 2deg), $saturation: 75%, $lightness: 80%),
link: shade($yellow, 700),
),
bk-orange: (
border: $orange,
background: scale-color($orange, $saturation: 75%, $lightness: 80%),
link: shade($orange, 700),
),
bk-red: (
border: $red,
background: scale-color($red, $saturation: 75%, $lightness: 85%),
link: shade($red, 700),
),
bk-purple: (
border: $purple,
background: scale-color($purple, $saturation: 75%, $lightness: 85%),
link: shade($purple, 700),
),
bk-gray: (
border: $gray-600,
background: $gray-300,
link: $link-color,
),
) !default;
$agile-issue-card-custom-color-map: () !default;
$agile-issue-card-color-map: map-merge($agile-issue-card-default-color-map, $agile-issue-card-custom-color-map);

View File

@@ -1,4 +1,5 @@
@import "variables";
@import "functions";
@import "mixins";
@import "lib/normalize";

View File

@@ -8,7 +8,7 @@
list-style-type: none;
> a:not(.icon-only) {
padding-left: $sidebar-padding-horizontal + 5px + 20px;
padding-left: $sidebar-padding-horizontal + 5px + $icon-width;
background-repeat: no-repeat;
background-position: $sidebar-padding-horizontal center;
}
@@ -27,7 +27,7 @@
a {
display: inline-block;
padding-left: 5px + 20px;
padding-left: 5px + $icon-width;
background-position: 0 center;
}
}
@@ -94,6 +94,29 @@ table.fields_permissions {
}
//== Custom fields -> Issues -> Key values
//
#custom_field_enumerations {
padding-left: 0;
list-style: none;
li {
min-height: $input-height-base;
padding: 1px 0;
.sort-handle,
label {
line-height: $input-height-base;
}
label input {
vertical-align: baseline;
}
}
}
//== Settings labels
//

View File

@@ -52,3 +52,8 @@ tr.group .count,
border-color: $green;
color: $green;
}
.badge-issues-count {
border-color: $gray-400;
background-color: $gray-100;
}

View File

@@ -90,7 +90,7 @@ h4 {
}
p {
margin: 0 0 ($line-height-computed / 2);
margin: 0 0 ($line-height-computed * .5);
}
small {
@@ -110,12 +110,22 @@ table {
p {
margin: 0;
}
form {
p {
margin-bottom: ($line-height-computed * .5);
&:last-child {
margin-bottom: 0;
}
}
}
}
ul,
ol {
margin-top: 0;
margin-bottom: ($line-height-computed / 2);
margin-bottom: ($line-height-computed * .5);
padding-left: 1.5em;
ul,
@@ -154,14 +164,14 @@ hr {
border-top: 1px solid $hr-border;
li & {
margin-top: $line-height-computed / 2;
margin-bottom: $line-height-computed / 2;
margin-top: $line-height-computed * .5;
margin-bottom: $line-height-computed * .5;
}
}
blockquote {
margin: 0 0 $line-height-computed;
padding: floor($line-height-computed / 4) $padding-large-horizontal;
padding: floor($line-height-computed * .25) $padding-large-horizontal;
border-left: 4px solid $blockquote-border-color;
> :first-child {

View File

@@ -48,12 +48,8 @@ form {
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
}
+ a {
display: inline-block;
~ a {
margin-right: 2px;
padding-top: $btn-padding-vertical + 1px;
padding-bottom: $btn-padding-vertical + 1px;
line-height: $line-height-base;
+ a {
margin-left: 2px;
@@ -67,7 +63,7 @@ form {
//
form[action*="repository/diff"] {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
@@ -144,11 +140,46 @@ p.buttons,
}
//== Submit + cancel
//
#issue-form,
.mypage-box,
.journal,
.edit_news,
.edit_content,
.edit_time_entry,
.edit_membership {
input[type="submit"] + a {
margin-left: ceil($btn-padding-horizontal-small * .5);
}
}
//== Apply + clear
//
form {
input,
button,
select {
~ a {
margin-left: ceil($btn-padding-horizontal-small * .5);
line-height: $input-height-base;
}
}
}
//== Action buttons group
//
p.buttons {
margin-bottom: $line-height-computed;
a {
line-height: $line-height-base;
}
}
@@ -200,7 +231,7 @@ p.buttons {
label {
display: block;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
line-height: initial;
}
}

View File

@@ -2,7 +2,6 @@
// Calendar
// --------------------------------------------------
table.cal {
width: 100%;
margin-bottom: $line-height-computed;
@@ -59,9 +58,91 @@ table.cal {
}
}
ul.cal {
display: grid;
grid-template-columns: 2rem repeat(7, 1fr);
width: 100%;
margin: 0;
padding: 0;
border-spacing: 0;
list-style: none;
border: 1px solid $table-border-color;
border-radius: 3px;
li {
&.calhead {
padding: 4px;
background-color: $table-bg-active;
font-weight: bold;
text-align: center;
}
&.week-number {
padding: 4px;
border: none;
background-color: $table-bg-active;
font-size: 1em;
text-align: center;
span.label-week {
display: none;
}
}
&.calbody {
min-height: calc(1.2em * 6);
padding: 2px;
border: 1px solid $table-border-color;
border-right: 0;
border-bottom: 0;
font-size: 1em;
line-height: 1.6;
vertical-align: top;
p.day-num {
font-size: 1.1em;
text-align: right;
.abbr-day {
display: none;
}
}
.day-letter {
display: none;
}
&.odd {
p.day-num {
color: $gray-600;
}
}
&.today {
background: $highlight-bg;
p.day-num {
font-weight: $font-weight-bold;
}
}
.icon {
padding-top: 2px;
padding-bottom: 3px;
}
&.nwday:not(.odd) {
background-color: $table-bg-accent;
}
}
}
}
table.cal .starting a,
ul.cal .starting a,
p.cal.legend .starting,
table.cal .ending a,
ul.cal .ending a,
p.cal.legend .ending {
@extend %fa-icon;
@@ -73,6 +154,7 @@ p.cal.legend .ending {
}
table.cal .ending a,
ul.cal .ending a,
p.cal.legend .ending {
&::before {
content: $fa-var-caret-left;
@@ -81,6 +163,7 @@ p.cal.legend .ending {
}
table.cal .starting.ending a,
ul.cal .starting.ending a,
p.cal.legend .starting.ending {
&::before {
content: $fa-var-square;

View File

@@ -28,6 +28,7 @@
#content {
padding: $padding-side;
overflow-x: auto; // needed for drag & drop of enumerations
@if $css-grid-layout {
grid-area: content;
@@ -106,7 +107,7 @@
ul {
&:nth-child(n) {
margin: 0 0 ($line-height-computed / 2);
margin: 0 0 ($line-height-computed * .5);
padding: 0;
@if $sidebar-position == "left" {
@@ -116,6 +117,7 @@
&:not(.watchers) {
li {
position: relative;
margin: 0;
padding: 0;
list-style-type: none;
@@ -172,7 +174,7 @@
> a.icon-only {
position: absolute;
top: $sidebar-padding-vertical;
right: $sidebar-padding-horizontal / 2;
right: $sidebar-padding-horizontal * .5;
line-height: $line-height-computed;
&::before {
@@ -195,8 +197,8 @@
li {
> a:not(.icon-only) {
padding-right: $sidebar-padding-horizontal / 2;
padding-left: $sidebar-padding-horizontal / 2;
padding-right: $sidebar-padding-horizontal * .5;
padding-left: $sidebar-padding-horizontal * .5;
@if $sidebar-position == "right" {
margin-left: 0;
@@ -204,7 +206,7 @@
}
.pages-hierarchy {
margin-left: $sidebar-padding-horizontal / 2 + 3px;
margin-left: $sidebar-padding-horizontal * .5 + 3px;
}
}
}
@@ -244,7 +246,7 @@
}
.page-tree__list {
margin-left: $sidebar-padding-horizontal / 2 + 3px;
margin-left: $sidebar-padding-horizontal * .5 + 3px;
}
summary {
@@ -262,8 +264,8 @@
li {
> a:not(.icon-only) {
padding-right: $sidebar-padding-horizontal / 2;
padding-left: $sidebar-padding-horizontal / 2;
padding-right: $sidebar-padding-horizontal * .5;
padding-left: $sidebar-padding-horizontal * .5;
@if $sidebar-position == "right" {
margin-left: 0;
@@ -297,8 +299,8 @@
&::before {
content: "";
position: absolute;
top: ($sidebar-padding-vertical + 1px) + ($line-height-computed - 16px) / 2;
left: $sidebar-padding-horizontal / 2 + 6px;
top: ($sidebar-padding-vertical + 1px) + ($line-height-computed - 16px) * .5;
left: $sidebar-padding-horizontal * .5 + 6px;
width: 16px;
height: 16px;
background-image: inline-svg("chevron-right.svg", (path: (fill: $btn-default-icon-color)));
@@ -329,8 +331,8 @@
}
#footer {
margin: 0 $padding-side $line-height-computed;
padding-top: $line-height-computed;
margin: 0 $padding-side;
padding: $line-height-computed 0;
border-top: 1px solid $gray-400;
color: $gray-600;
font-size: $font-size-small;
@@ -342,24 +344,49 @@
@if $fixed-layout {
@media screen and (min-width: $screen-sm-min) {
body {
background: $gray-100;
}
#top-menu,
#header,
#main-menu ul,
#main {
#main,
#footer {
width: $width-sm;
margin-right: auto;
margin-left: auto;
}
#main {
overflow: hidden;
background: $body-bg;
}
#footer {
background: $body-bg;
&::before {
content: " ";
display: inline-block;
width: 20px;
}
}
}
@media screen and (min-width: $screen-md-min) {
#top-menu,
#header,
#main-menu ul,
#main {
#main,
#footer {
width: $width-md;
}
}
@media screen and (min-width: $screen-lg-min) {
#top-menu,
#header,
#main-menu ul,
#main {
#main,
#footer {
width: $width-lg;
}
}

View File

@@ -29,7 +29,7 @@
}
}
a {
a:not(.easy-mindmup__icon) {
@extend %fa-icon;
padding: 3px 10px 3px 20px;
border-radius: $border-radius-small;

View File

@@ -62,10 +62,10 @@
border-radius: $border-radius-base - 1px;
&.icon {
padding-left: 20px + $btn-padding-horizontal-small;
padding-left: $icon-width + $btn-padding-horizontal-small;
&::before {
width: 20px;
width: $icon-width;
margin-top: 3px;
float: left;
text-align: center;
@@ -76,7 +76,32 @@
}
.contextual {
.drdn {
.drdn-items {
padding: 3px;
a,
span {
padding-top: $pagination-padding-vertical;
padding-bottom: $pagination-padding-vertical;
border: 1px solid transparent;
border-radius: $border-radius-small;
color: $pagination-color;
&:hover,
&:focus {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
text-decoration: none;
&.icon-del {
color: map-get(map-get($icon-color-map, danger), normal);
}
}
}
}
&:not(.journal-actions) > .drdn {
&.expanded {
> .drdn-trigger {
border-color: $pagination-active-border;
@@ -85,7 +110,7 @@
}
}
&-trigger {
.drdn-trigger {
padding: $btn-padding-vertical $btn-padding-horizontal-small;
border: 1px solid $pagination-border;
border-radius: $border-radius-base;
@@ -94,8 +119,8 @@
color: $pagination-color;
text-align: center;
> .icon-only::before {
margin: 0 1px;
> .icon-only {
margin: 0 -4px;
}
&:hover,
@@ -105,25 +130,20 @@
color: $pagination-hover-color;
}
}
&-items {
padding: 3px;
a,
span {
padding-top: $pagination-padding-vertical;
padding-bottom: $pagination-padding-vertical;
border: 1px solid transparent;
border-radius: $border-radius-small;
color: $pagination-color;
&:hover {
border-color: $pagination-hover-border;
background-color: $pagination-hover-bg;
color: $pagination-hover-color;
text-decoration: none;
}
}
}
}
}
.journal-actions {
.drdn-trigger {
color: map-get(map-get($icon-color-map, default), normal);
}
.drdn-trigger:hover,
.drdn.expanded .drdn-trigger {
color: map-get(map-get($icon-color-map, default), hover);
}
.drdn-content {
top: $input-height-base;
}
}

View File

@@ -118,12 +118,18 @@ img {
.filecontent-container {
position: relative;
min-height: 200px;
margin-bottom: 20px;
}
.filecontent-container > .filecontent {
position: absolute;
max-width: 100%;
max-height: 100%;
margin-bottom: $line-height-computed;
> .filecontent {
position: absolute;
max-width: 100%;
max-height: 100%;
&.wiki {
position: static;
padding-bottom: $line-height-computed;
}
}
}
//== Responsive autoscroll
@@ -184,12 +190,12 @@ img {
}
.splitcontentleft {
padding-right: ($padding-side / 2);
padding-right: ($padding-side * .5);
float: left;
}
.splitcontentright {
padding-left: ($padding-side / 2);
padding-left: ($padding-side * .5);
float: right;
}
@@ -252,6 +258,10 @@ img {
@include check;
display: block;
}
.gravatar {
margin-right: $padding-small-vertical;
}
}
.roles-selection {
@@ -265,7 +275,7 @@ img {
//
p.subtitle {
margin-top: ($line-height-computed / -2);
margin-top: ($line-height-computed * -.5);
margin-bottom: $line-height-computed;
font-style: italic;
}
@@ -279,11 +289,14 @@ p.subtitle {
}
.block-receiver {
min-height: 20px;
margin: $padding-side / -2;
margin-bottom: $line-height-computed;
padding: $padding-side / 2;
outline: 2px dashed $gray-600;
box-sizing: border-box;
flex-basis: 100%;
.dragging & {
min-height: 20px;
margin-bottom: $line-height-computed;
outline: 2px dashed $gray-600;
}
}
.mypage-box {
@@ -335,21 +348,8 @@ a.close-icon {
// For Redmine 3.4+
#my-page {
.block-receiver {
box-sizing: border-box;
margin: 0;
padding: 0;
outline: none;
}
&.dragging .block-receiver {
box-sizing: border-box;
min-height: 20px;
margin: $padding-side / -2;
margin-bottom: $line-height-computed;
padding: $padding-side / 2;
outline: 2px dashed $gray-600;
}
display: flex;
flex-wrap: wrap;
.mypage-box {
> .contextual {
@@ -363,15 +363,11 @@ a.close-icon {
}
#list-left {
width: 50%;
padding-right: ($padding-side / 2);
float: left;
flex-basis: 50%;
}
#list-right {
width: 50%;
padding-left: ($padding-side / 2);
float: right;
flex-basis: 50%;
}
}
@@ -465,6 +461,10 @@ ul.projects {
li {
list-style-type: none;
}
.archived {
color: $gray-600;
}
}
#projects-index ul.projects {
@@ -472,16 +472,16 @@ ul.projects {
&.root {
display: flex;
flex-wrap: wrap;
margin-right: -($padding-side / 2);
margin-left: -($padding-side / 2);
margin-right: -($padding-side * .5);
margin-left: -($padding-side * .5);
> li {
display: block;
box-sizing: border-box;
flex: 0 1 auto;
width: 100%;
margin-right: $padding-side / 2;
margin-left: $padding-side / 2;
margin-right: $padding-side * .5;
margin-left: $padding-side * .5;
padding: $panel-body-padding;
border: 1px solid $panel-border;
border-radius: $border-radius-base;
@@ -504,7 +504,7 @@ ul.projects {
}
li.child {
margin-top: $line-height-computed / 2;
margin-top: $line-height-computed * .5;
}
a.project {
@@ -517,6 +517,14 @@ ul.projects {
}
}
table.projects {
.name {
a + span.icon {
margin-left: 5px;
}
}
}
#custom_field_tracker_ids {
label {
margin-right: 10px;
@@ -605,11 +613,6 @@ div#roadmap {
td {
height: $progress-height;
}
+ .percent {
position: relative;
top: 0;
}
}
header {
@@ -684,7 +687,7 @@ div#version-summary {
left: 50%;
box-sizing: border-box;
width: 200px;
margin: (($padding-large-vertical * 2 + 1px * 2 + $line-height-computed) / -2) (200px / -2);
margin: (($padding-large-vertical * 2 + 1px * 2 + $line-height-computed) * -.5) (200px * -.5);
padding: $padding-large-vertical $padding-large-horizontal;
border: 1px solid $highlight-border;
border-radius: $border-radius-base;
@@ -703,7 +706,7 @@ div#version-summary {
box-sizing: border-box;
width: $line-height-computed;
height: $line-height-computed;
margin-right: $line-height-computed / 2;
margin-right: $line-height-computed * .5;
animation: spin 1s linear infinite;
border: 3px solid rgba($highlight-text, .3);
border-radius: 50%;
@@ -769,7 +772,7 @@ div.table-list.boards {
.controller-messages.action-show {
h2 {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
.message {
@@ -803,11 +806,10 @@ div.table-list.boards {
.contextual {
position: relative;
z-index: 1;
margin-top: $padding-small-vertical;
margin-right: $bubble-padding-vertical;
padding: ($bubble-padding-vertical - 1px) $bubble-padding-vertical 0 0;
a {
margin-left: ceil($bubble-padding-vertical / 2);
display: inline-block;
}
}
@@ -870,20 +872,67 @@ div.table-list.boards {
}
//== Documents
//
.controller-documents {
&.action-index {
h2 {
font-size: $font-size-h2;
}
h4 {
margin-bottom: 0;
font-size: $font-size-h4;
}
.wiki {
+ h3,
+ h4 {
margin-top: $line-height-computed;
padding-top: $line-height-computed;
border-top: 1px solid $panel-border;
}
}
}
&.action-show {
.wiki {
margin-bottom: $line-height-computed;
}
}
h3 {
font-size: $font-size-h3;
}
#content > h2,
#content > h4 {
+ p {
color: $gray-700;
em {
font-style: normal;
}
}
}
}
//== News
//
.news.box {
p > a:not(:last-child) {
display: inline-block;
margin-bottom: floor($line-height-computed / 4);
margin-bottom: floor($line-height-computed * .25);
font-size: $font-size-h4;
}
.summary,
.author {
display: block;
margin-bottom: floor($line-height-computed / 4);
margin-bottom: floor($line-height-computed * .25);
+ br {
display: none;
@@ -898,7 +947,7 @@ div.table-list.boards {
#edit-news + p {
em {
display: block;
margin-bottom: floor($line-height-computed / 4);
margin-bottom: floor($line-height-computed * .25);
+ br {
display: none;
@@ -908,7 +957,7 @@ div.table-list.boards {
.news.box .summary,
#edit-news + p em {
padding: floor($line-height-computed / 4) $padding-base-horizontal;
padding: floor($line-height-computed * .25) $padding-base-horizontal;
border-left: 4px solid $blockquote-border-color;
}
@@ -919,7 +968,7 @@ div.table-list.boards {
header {
h3 {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
> a {
font-weight: $font-weight-bold;
@@ -931,6 +980,10 @@ div.table-list.boards {
.author {
color: $gray-700;
.flyout-menu & {
color: inherit;
}
.user {
font-weight: $font-weight-bold;
}
@@ -943,7 +996,7 @@ div.table-list.boards {
#comments {
> h4 {
margin-top: $line-height-computed;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
}

View File

@@ -12,7 +12,7 @@ form {
> input,
> select {
margin-right: 5px;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
}
@@ -228,7 +228,7 @@ select:-moz-focusring {
fieldset {
min-width: 0;
margin: 0;
padding: ($line-height-computed / 2) 0;
padding: ($line-height-computed * .5) 0;
border: 0 none;
border-top: 1px solid $legend-border-color;
@@ -297,7 +297,7 @@ em.info {
p {
@extend %clearfix;
margin: 0 0 ($line-height-computed / 2);
margin: 0 0 ($line-height-computed * .5);
padding-left: $label-width + $label-space;
clear: left;
line-height: $input-height-base;
@@ -424,7 +424,6 @@ label.block {
label[for="issue_description"] + a {
display: inline-block;
margin-top: $input-padding-vertical + 1px;
img {
vertical-align: middle;
@@ -436,7 +435,7 @@ label[for="issue_description"] + a {
//
label[for="closed"] {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
@@ -482,7 +481,7 @@ label[for="closed"] {
//
.jstEditor {
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
//== User form
@@ -506,13 +505,13 @@ label[for="closed"] {
.attachments_fields {
> span {
display: block;
margin-bottom: $line-height-computed / 4;
margin-bottom: $line-height-computed * .25;
}
input {
width: 21.5em;
margin-right: .5em;
margin-bottom: $line-height-computed / 4;
margin-bottom: $line-height-computed * .25;
&.filename {
padding-left: $input-padding-horizontal + 16px;
@@ -622,12 +621,16 @@ label[for="closed"] {
#watchers_inputs {
display: block;
max-height: $check-list-max-height;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
overflow: auto;
label {
@include check-list;
}
.gravatar {
margin-right: $padding-small-vertical;
}
}
#watchers_inputs {
@@ -743,7 +746,9 @@ fieldset#filters {
select,
label,
.icon,
.icon-only {
.icon-only,
> span > a {
line-height: inherit;
vertical-align: middle;
}
}
@@ -752,7 +757,7 @@ fieldset#filters {
.query_sort_criteria_count {
display: inline-block;
min-width: 1em;
margin-bottom: $line-height-computed / 4;
margin-bottom: $line-height-computed * .25;
line-height: $input-height-base;
}

View File

@@ -49,10 +49,19 @@ table.gantt-table {
z-index: 2;
}
.last_gantt_selected_column .gantt_selected_column_container,
.gantt_subjects_container .gantt_subjects * {
z-index: 10;
}
.gantt_subjects_column {
.gantt_hdr {
border-left: 1px solid $gray-500 !important; // stylelint-disable-line declaration-no-important
}
+ td {
padding: 0;
}
}
.gantt_subjects {
@@ -242,6 +251,7 @@ td.gantt_selected_column .gantt_hdr,
width: 270px;
padding: $padding-base-vertical;
border: $tooltip-border-width solid $tooltip-border;
border-radius: $border-radius-small;
background-color: $tooltip-bg;
color: $tooltip-text;
font-size: $font-size-small;

View File

@@ -17,6 +17,124 @@
}
}
$icon-map: (
icon-add: $fa-var-plus-square,
icon-edit: $fa-var-pencil,
icon-copy: $fa-var-copy,
icon-duplicate: $fa-var-clipboard,
icon-del: $fa-var-trash,
icon-move: $fa-var-arrows,
icon-save: $fa-var-save,
icon-download: $fa-var-download,
icon-cancel: $fa-var-ban,
icon-multiple: $fa-var-plus-circle,
icon-folder: $fa-var-folder,
icon-package: $fa-var-cube,
icon-user: $fa-var-user,
icon-project: $fa-var-cube,
icon-projects: $fa-var-cubes,
icon-help: $fa-var-info-circle,
icon-attachment: $fa-var-paperclip,
icon-history: $fa-var-history,
icon-time-entry: $fa-var-clock-o,
icon-time: $fa-var-clock-o,
icon-time-add: $fa-var-clock-o,
icon-stats: $fa-var-line-chart,
icon-warning: $fa-var-warning,
icon-error: $fa-var-exclamation,
icon-fav: $fa-var-star,
icon-fav-off: $fa-var-star-o,
icon-heart: $fa-var-heart,
icon-heart-off: $fa-var-heart-o,
icon-reload: $fa-var-refresh,
icon-locked: $fa-var-lock,
icon-lock: $fa-var-lock,
icon-unlock: $fa-var-unlock,
icon-checked: $fa-var-check,
icon-details: $fa-var-search-plus,
icon-report: $fa-var-pie-chart,
icon-comments: $fa-var-comment,
icon-comment: $fa-var-comment,
icon-summary: $fa-var-file-text,
icon-server-authentication: $fa-var-key,
icon-issue: $fa-var-ticket,
icon-zoom-in: $fa-var-search-plus,
icon-zoom-out: $fa-var-search-minus,
icon-magnifier: $fa-var-search,
icon-passwd: $fa-var-key,
icon-arrow-right: $fa-var-arrow-right,
icon-test: $fa-var-arrow-circle-right,
icon-sticky: $fa-var-thumb-tack,
icon-email: $fa-var-envelope,
icon-email-disabled: $fa-var-envelope-o,
icon-email-add: $fa-var-envelope,
icon-ok: $fa-var-check,
icon-not-ok: $fa-var-times,
icon-link-break: $fa-var-chain-broken,
icon-list: $fa-var-list-ul,
icon-close: $fa-var-times-circle,
icon-settings: $fa-var-cog,
icon-group: $fa-var-users,
icon-groupnonmember: $fa-var-users,
icon-groupanonymous: $fa-var-users,
icon-roles: $fa-var-eye,
icon-issue-edit: $fa-var-edit,
icon-workflows: $fa-var-sitemap,
icon-custom-fields: $fa-var-edit,
icon-plugins: $fa-var-puzzle-piece,
icon-news: $fa-var-newspaper-o,
icon-issue-closed: $fa-var-ticket,
icon-issue-note: $fa-var-comment,
icon-changeset: $fa-var-upload,
icon-message: $fa-var-comment,
icon-reply: $fa-var-comment-o,
icon-wiki-page: $fa-var-file-text-o,
icon-document: $fa-var-file-text,
icon-add-bullet: $fa-var-plus-circle,
icon-shared: $fa-var-link,
icon-actions: $fa-var-ellipsis-h,
icon-sort-handle: $fa-var-arrows-v,
/* typo "expended" has to be kept for backwards compatibility */
icon-expended: $fa-var-chevron-down,
icon-expanded: $fa-var-chevron-down,
icon-collapsed: $fa-var-chevron-right,
icon-bookmark: $fa-var-bookmark,
icon-bookmark-off: $fa-var-bookmark-o,
icon-sorted-asc: $fa-var-sort-amount-asc,
icon-sorted-desc: $fa-var-sort-amount-desc,
icon-toggle-plus: $fa-var-plus-square,
icon-toggle-minus: $fa-var-minus-square,
icon-clear-query: $fa-var-times,
icon-import: $fa-var-cloud-upload,
icon-bookmarked-project: $fa-var-tag,
icon-copy-link: $fa-var-clipboard,
// Plugin icons
icon-call: $fa-var-phone,
icon-contact: $fa-var-vcard,
icon-erase: $fa-var-eraser,
icon-facebook: $fa-var-facebook-square,
icon-fullscreen: $fa-var-arrows-alt,
icon-linkedin: $fa-var-linkedin-square,
icon-meeting: $fa-var-calendar-check-o,
icon-merge: $fa-var-code-fork,
icon-money-dollar: $fa-var-usd,
icon-money-euro: $fa-var-eur,
icon-money-pound: $fa-var-gbp,
icon-money-yen: $fa-var-jpy,
icon-move-bottom: $fa-var-angle-double-down,
icon-move-down: $fa-var-angle-down,
icon-move-top: $fa-var-angle-double-up,
icon-move-up: $fa-var-angle-up,
icon-phone: $fa-var-phone,
icon-skype: $fa-var-skype,
icon-tags: $fa-var-tags,
icon-twitter: $fa-var-twitter-square,
icon-vcard: $fa-var-vcard,
banner-icon-edit: $fa-var-edit,
banner-icon-off: $fa-var-times,
);
@keyframes spin {
0% {
transform: rotate(0deg);
@@ -35,134 +153,74 @@ table.list .buttons > a::before {
//== Buttons icons
//
.icon {
.icon,
.icon-only:not(.toggle-multiselect) {
@extend %fa-icon;
padding-left: 20px;
padding-left: $icon-width;
background-repeat: no-repeat;
background-position: 0% 50%;
&::before {
margin-left: -20px;
margin-left: -$icon-width;
}
}
.icon-only {
@extend %fa-icon;
font-size: 0;
display: inline-block;
width: 0;
overflow: hidden;
vertical-align: top;
white-space: nowrap;
@at-root a#{&} {
// stylelint-disable declaration-no-important
display: inline;
width: auto !important;
height: auto !important;
padding-left: 0 !important;
font-size: 0 !important;
}
&::before {
font-size: $font-size-base;
width: $icon-width;
text-align: center;
}
}
.icon-add::before { content: $fa-var-plus-square; }
.icon-edit::before { content: $fa-var-pencil; }
.icon-copy::before { content: $fa-var-copy; }
.icon-duplicate::before { content: $fa-var-clipboard; }
.icon-del::before { content: $fa-var-trash; }
.icon-move::before { content: $fa-var-arrows; }
.icon-save::before { content: $fa-var-save; }
.icon-download::before { content: $fa-var-download; }
.icon-cancel::before { content: $fa-var-ban; }
.icon-multiple::before { content: $fa-var-plus-circle; }
.icon-folder::before { content: $fa-var-folder; }
.open .icon-folder::before { content: $fa-var-folder-open; }
.icon-package::before { content: $fa-var-cube; }
.icon-user::before { content: $fa-var-user; }
.icon-project::before { content: $fa-var-cube; }
.icon-projects::before { content: $fa-var-cubes; }
.icon-help::before { content: $fa-var-info-circle; }
.icon-attachment::before { content: $fa-var-paperclip; }
.icon-history::before { content: $fa-var-history; }
.icon-time-entry::before { content: $fa-var-clock-o; }
.icon-time::before { content: $fa-var-clock-o; }
.icon-time-add::before { content: $fa-var-clock-o; }
.icon-stats::before { content: $fa-var-line-chart; }
.icon-warning::before { content: $fa-var-warning; }
.icon-error::before { content: $fa-var-exclamation; }
.icon-fav::before { content: $fa-var-star; color: $orange; }
.icon-fav-off::before { content: $fa-var-star-o; }
.icon-heart::before { content: $fa-var-heart; color: $pink; }
.icon-heart-off::before { content: $fa-var-heart-o; }
.icon-reload::before { content: $fa-var-refresh; }
.icon-locked::before { content: $fa-var-lock; }
.icon-lock::before { content: $fa-var-lock; }
.icon-unlock::before { content: $fa-var-unlock; }
.icon-checked::before { content: $fa-var-check; }
.icon-details::before { content: $fa-var-search-plus; }
.icon-report::before { content: $fa-var-pie-chart; }
.icon-comments::before { content: $fa-var-comment; }
.icon-comment::before { content: $fa-var-comment; }
.icon-summary::before { content: $fa-var-file-text; }
.icon-server-authentication::before { content: $fa-var-key; }
.icon-issue::before { content: $fa-var-ticket; }
.icon-zoom-in::before { content: $fa-var-search-plus; }
.icon-zoom-out::before { content: $fa-var-search-minus; }
.icon-passwd::before { content: $fa-var-key; }
.icon-test::before { content: $fa-var-arrow-circle-right; }
.icon-phone::before { content: $fa-var-phone; }
.icon-skype::before { content: $fa-var-skype; }
.icon-facebook::before { content: $fa-var-facebook-square; }
.icon-linkedin::before { content: $fa-var-linkedin-square; }
.icon-twitter::before { content: $fa-var-twitter-square; }
.icon-magnifier::before { content: $fa-var-search; }
.icon-email::before { content: $fa-var-envelope; }
.icon-email-disabled::before { content: $fa-var-envelope-o; }
.icon-email-add::before { content: $fa-var-envelope; }
.icon-move-up::before { content: $fa-var-angle-up; }
.icon-move-top::before { content: $fa-var-angle-double-up; }
.icon-move-down::before { content: $fa-var-angle-down; }
.icon-move-bottom::before { content: $fa-var-angle-double-down; }
.icon-ok::before { content: $fa-var-check; }
.icon-not-ok::before { content: $fa-var-times; }
.icon-link-break::before { content: $fa-var-chain-broken; }
.icon-list::before { content: $fa-var-list-ul; }
.icon-sticky::before { content: $fa-var-thumb-tack; }
.icon-arrow-right::before { content: $fa-var-arrow-right; }
.icon-close::before { content: $fa-var-times-circle; }
.icon-close:hover::before { content: $fa-var-times-circle-o; }
.icon-settings::before { content: $fa-var-cog; }
.icon-group::before { content: $fa-var-users; }
.icon-groupnonmember::before { content: $fa-var-users; }
.icon-groupanonymous::before { content: $fa-var-users; }
.icon-roles::before { content: $fa-var-eye; }
.icon-issue-edit::before { content: $fa-var-edit; }
.icon-workflows::before { content: $fa-var-sitemap; }
.icon-custom-fields::before { content: $fa-var-edit; }
.icon-plugins::before { content: $fa-var-puzzle-piece; }
.icon-news::before { content: $fa-var-newspaper-o; }
.icon-issue-closed::before { content: $fa-var-ticket; }
.icon-issue-note::before { content: $fa-var-comment; }
.icon-changeset::before { content: $fa-var-upload; }
.icon-message::before { content: $fa-var-comment; }
.icon-reply::before { content: $fa-var-comment-o; }
.icon-wiki-page::before { content: $fa-var-file-text-o; }
.icon-document::before { content: $fa-var-file-text; }
.icon-project::before { content: $fa-var-cube; }
.icon-add-bullet::before { content: $fa-var-plus-circle; }
.icon-shared::before { content: $fa-var-link; }
.icon-actions::before { content: $fa-var-ellipsis-h; }
.icon-sort-handle::before { content: $fa-var-arrows-v; }
.icon-expended::before { content: $fa-var-chevron-down; }
.icon-collapsed::before { content: $fa-var-chevron-right; }
.icon-bookmark::before { content: $fa-var-bookmark; }
.icon-bookmark-off::before { content: $fa-var-bookmark-o; }
.icon-sorted-asc::before { content: $fa-var-sort-amount-asc; }
.icon-sorted-desc::before { content: $fa-var-sort-amount-desc; }
.icon-toggle-plus::before { content: $fa-var-plus-square; }
.icon-toggle-minus::before { content: $fa-var-minus-square; }
.icon-clear-query::before { content: $fa-var-times; }
.icon-import::before { content: $fa-var-cloud-upload; }
// A empty icon should behave more like icon-only
a.icon:empty {
display: inline-block;
}
span.icon + span.icon {
margin-left: $padding-small-vertical;
}
$icons-selector: ();
@each $class, $icon in $icon-map {
$icons-selector: append($icons-selector, unquote(".#{$class}"), "comma");
.#{$class} {
&::before {
content: $icon;
@if $class == "icon-fav" {
color: $orange;
} @else if $class == "icon-heart" {
color: $pink;
} @else if $class == "icon-bookmarked-project" {
color: $blue;
}
}
@if $class == "icon-close" {
&:hover::before {
content: $fa-var-times-circle-o;
}
} @else if $class == "icon-folder" {
.open &::before {
content: $fa-var-folder-open;
}
}
}
}
#{$icons-selector} {
&.icon {
background-image: none;
}
}
//== Checkbox toggler
//
@@ -205,7 +263,7 @@ a.icon-del {
.icon-folder,
.icon-file {
&::before {
width: 16px;
width: $icon-width;
text-align: center;
}
}
@@ -253,12 +311,11 @@ a.icon-del {
.icon-expended,
.icon-collapsed {
&::before {
width: 1em;
text-align: center;
}
&.icon {
padding-left: 20px;
padding-left: $icon-width;
}
&.expander {
@@ -267,7 +324,7 @@ a.icon-del {
}
.icon-zoom-in + .icon-zoom-out {
margin-left: 5px;
margin-left: $padding-small-vertical;
}
@@ -289,19 +346,19 @@ a.icon-del {
#admin-menu {
#admin-index > & {
a {
padding-left: 5px + 20px;
padding-left: 5px + $icon-width;
}
}
li {
> a {
padding-left: $sidebar-padding-horizontal + 5px + 20px;
padding-left: $sidebar-padding-horizontal + 5px + $icon-width;
&::before {
display: inline-block;
width: 20px;
width: $icon-width;
margin: 0;
margin-left: -(5px + 20px);
margin-left: -(5px + $icon-width);
padding: 0;
color: $gray-700;
text-align: center;
@@ -402,8 +459,6 @@ a.icon-del {
&::before {
content: $fa-var-arrows-v;
width: 16px;
margin: 0;
}
&.ajax-loading {
@@ -430,8 +485,8 @@ div.projects h3 {
color: $gray-900;
&::before {
width: 1em;
margin-right: .5em;
width: $icon-width;
margin-right: $padding-small-vertical;
transform: translateY(-.1em);
color: $gray-700;
text-align: center;
@@ -441,7 +496,7 @@ div.projects h3 {
h3.version::before { content: $fa-var-cube; }
h3.comments::before { content: $fa-var-comments; }
div.issues h3::before { content: $fa-var-ticket; }
div.members h3::before { content: $fa-var-user; }
div.members h3::before { content: $fa-var-users; }
div.news h3::before { content: $fa-var-newspaper-o; }
div.projects h3::before { content: $fa-var-cubes; }
@@ -541,13 +596,48 @@ dt {
}
}
.my-project {
a.project {
$svg-star: inline-svg("icon-star.svg", (path: (fill: $orange)));
$svg-tag: inline-svg("icon-tag.svg", (path: (fill: $blue)));
&.icon {
padding-left: 0;
&::before {
content: "";
display: none;
margin: 0;
}
}
&.my-project,
&.icon-user,
&.icon-bookmarked-project {
padding-right: $icon-width;
background-image: $svg-star;
background-repeat: no-repeat;
background-position: bottom .2em right 0, bottom .2em right $icon-width;
}
&.icon-bookmarked-project {
background-image: $svg-tag;
}
&.icon-user.icon-bookmarked-project {
padding-right: $icon-width * 2;
background-image: $svg-tag, $svg-star;
}
}
span.my-project {
@extend %fa-icon;
&::before {
content: $fa-var-star;
color: $yellow;
font-size: $font-size-small;
width: $icon-width;
margin-right: 0;
color: $orange;
text-align: center;
}
}
@@ -849,6 +939,12 @@ div.wiki {
> a {
@extend %fa-icon;
&::before {
width: $icon-width;
margin-right: 0;
text-align: center;
}
&:not([class*="icon"]) {
&::before {
content: $fa-var-comment;

View File

@@ -27,7 +27,7 @@
width: $issue-gravatar-size;
height: $issue-gravatar-size;
margin-right: 10px;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
float: left;
&:nth-child(2) {
@@ -47,7 +47,7 @@
width: $issue-gravatar-size;
height: $issue-gravatar-size;
margin-right: 10px;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
float: left;
}
@@ -297,7 +297,8 @@
}
}
div.fileover {
div.fileover,
p.custom-field-filedroplistner.fileover {
background-color: $highlight-bg;
}
@@ -373,7 +374,7 @@ div.thumbnails {
}
.issues {
margin: ($line-height-computed / 2) 0 0;
margin: ($line-height-computed * .5) 0 0;
tr {
background-color: transparent;
@@ -383,6 +384,10 @@ div.thumbnails {
border-bottom: 0 none;
}
td.subject {
width: 50%;
}
td.checkbox {
display: none;
}
@@ -406,7 +411,7 @@ div.thumbnails {
display: none;
dt {
margin: 0 0 ($line-height-computed / 4);
margin: 0 0 ($line-height-computed * .25);
}
dd {
@@ -505,6 +510,7 @@ div.thumbnails {
left: 0;
border-radius: $panel-border-radius - 1px;
box-shadow: 0 0 0 1px $border, 0 0 0 4px $shadow;
pointer-events: none;
}
@if $use-gravatars {
@@ -534,14 +540,6 @@ div.thumbnails {
padding: $bubble-padding-vertical $bubble-padding-horizontal;
font-size: $font-size-list;
a {
opacity: $icon-opacity;
&:hover {
opacity: $icon-hover-opacity;
}
}
> a.journal-link {
padding-left: $issue-attribute-padding-h;
opacity: 1;
@@ -549,6 +547,7 @@ div.thumbnails {
&::before {
content: "";
display: none;
}
}
}
@@ -668,6 +667,12 @@ div.thumbnails {
}
}
> label {
display: inline-block;
margin-bottom: $line-height-computed * .5;
line-height: $line-height-base;
}
> .wiki {
margin: 0 (-$issue-padding) (-$issue-padding);
padding: 0;
@@ -714,7 +719,16 @@ div.thumbnails {
clear: left;
}
.journal-actions > a,
.journal-actions .drdn-trigger {
margin: -3px 3px;
padding-top: 3px;
padding-bottom: 3px;
}
.journal-link {
margin: -3px -3px -3px 0;
padding: 3px;
float: right;
}
@@ -750,7 +764,7 @@ span.private {
}
div.changeset {
margin-top: $line-height-computed / 2 + 2px * 2;
margin-top: $line-height-computed * .5 + 2px * 2;
padding: 0;
overflow: hidden;
border: 1px solid $bubble-border;

View File

@@ -43,21 +43,21 @@
a,
button {
&.ui-state-default {
&.ui-button {
border-color: $header-bg;
background: $header-bg;
box-shadow: none;
color: $header-text;
.ui-icon {
background-image: url("../../../stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
}
&.ui-state-hover,
&.ui-state-focus {
&.ui-button:hover {
border-color: darken($header-bg, 12%);
background: darken($header-bg, 10%);
}
.ui-icon {
background-image: url("../../../stylesheets/jquery/images/ui-icons_ffffff_256x240.png");
}
}
}
@@ -127,6 +127,7 @@
}
.ui-sortable-helper {
background-color: $body-bg;
@include nice-shadow(4);
}
@@ -320,4 +321,12 @@ img.ui-datepicker-trigger {
@include nice-shadow(1);
padding: $padding-small-vertical $padding-small-horizontal;
border: 0 none;
background: $black;
color: $white;
font-size: $font-size-small-px;
pointer-events: none;
&.qtip {
pointer-events: initial;
}
}

View File

@@ -228,6 +228,12 @@ div.jstElements {
&::before { content: $fa-var-code; }
}
.jstb_table {
@extend %jstb-icon;
&::before { content: $fa-var-table; }
}
button.jstb_help {
@extend %jstb-icon;
color: $link-color;
@@ -239,3 +245,16 @@ div.jstElements {
&::before { content: $fa-var-question-circle; }
}
}
body {
.table-generator {
td {
border-color: $tab-border;
}
td.selected-cell,
td:hover {
background-color: $brand-primary;
}
}
}

View File

@@ -52,7 +52,7 @@ table.list {
vertical-align: top;
&.icon {
padding-left: $table-cell-padding + 20px;
padding-left: $table-cell-padding + $icon-width;
}
&.id,
@@ -86,8 +86,10 @@ table.list {
padding-right: $table-cell-padding;
padding-left: $table-cell-padding;
&:first-child {
padding-right: 0;
@if (parse-length($table-list-item-border, right) == 0) {
&:first-child {
padding-right: 0;
}
}
input {
@@ -106,6 +108,7 @@ table.list {
&.last_notes,
&.last_updated_by,
&.name,
&.parent-subject,
&.priority,
&.relations,
&.roles,
@@ -137,10 +140,10 @@ table.list {
white-space: nowrap;
a {
padding-right: 5px;
margin-right: $padding-small-vertical;
&.icon-only {
padding: 0;
margin-right: 0;
}
}
@@ -191,10 +194,15 @@ tr.issue {
text-align: center;
white-space: nowrap;
.category,
.enumeration,
.list,
.parent-subject,
.parent,
.relations,
.string,
.text,
.subject,
.category {
.text {
white-space: normal;
}
@@ -245,7 +253,7 @@ tr.issue {
> span {
display: block;
margin-bottom: $line-height-computed / 4;
margin-bottom: $line-height-computed * .25;
padding: $table-cell-padding;
font-weight: $font-weight-bold;
}
@@ -265,14 +273,31 @@ tr.issue {
}
tr {
span.expander:not(.icon) {
margin-left: 0;
padding-left: 8px;
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
user-select: none;
span.expander {
display: inline-block;
padding: 0;
float: left;
&.icon {
padding-left: 18px;
text-align: center;
&::before {
margin: 0 0 0 -18px;
color: $gray-600;
font-size: 12px;
}
}
&:not(.icon) {
width: 18px;
padding: 0;
background-image: inline-svg("plus.svg", (path: (fill: $btn-default-icon-color)));
background-repeat: no-repeat;
background-position: center center;
cursor: pointer;
user-select: none;
}
}
&.open span.expander:not(.icon) {
@@ -284,6 +309,11 @@ td.center {
text-align: center;
}
td.assigned_to,
td.last_updated_by {
white-space: normal;
}
.issue-report {
table-layout: fixed;
}
@@ -294,7 +324,7 @@ td.center {
}
.sample-data {
margin: $line-height-computed / 2;
margin: $line-height-computed * .5;
margin-bottom: $line-height-computed;
border: 1px solid $table-border-color;
@@ -345,13 +375,13 @@ tr.entry {
&.file td {
&.filename a,
&.filename_no_report a {
margin-left: 16px;
margin-left: 18px;
}
}
}
@if $table-list-color-odd-rows {
table.list:not(.odd-even) tbody tr:nth-child(odd),
table.list:not(.odd-even) tbody tr:nth-child(odd):not(.ui-sortable-helper),
.odd {
> td {
background-color: $table-bg-accent;
@@ -360,7 +390,7 @@ tr.entry {
}
@if $table-list-color-even-rows {
table.list:not(.odd-even) tbody tr:nth-child(even),
table.list:not(.odd-even) tbody tr:nth-child(even):not(.ui-sortable-helper),
.even {
> td {
background-color: $table-bg-accent;
@@ -369,8 +399,16 @@ tr.entry {
}
@if $table-list-highlight-rows {
table.list > tbody > tr:nth-child(n):hover {
table.list > tbody > tr:nth-child(n):hover:not(.ui-sortable-helper) {
background-color: $table-bg-hover;
@if $color-priorities {
@each $priority-id, $priority-color in $priority-color-map {
&.priority-#{$priority-id} {
background-color: rgba(map-get($priority-color, background), $table-color-hover-factor);
}
}
}
}
}
@@ -394,6 +432,29 @@ tr.entry {
}
}
@if $color-priorities {
@each $priority-id, $priority-color in $priority-color-map {
tr.priority-#{$priority-id} {
&.odd td {
background-color: rgba(map-get($priority-color, background), $table-color-odd-factor);
}
&.even td {
background-color: rgba(map-get($priority-color, background), $table-color-even-factor);
}
td {
border-color: map-get($priority-color, border);
color: map-get($priority-color, color);
}
a {
color: map-get($priority-color, link);
}
}
}
}
@if $color-trackers {
tr.issue .id > a,
tr.issue .issue_id > a,
@@ -434,7 +495,7 @@ tr.entry {
right: 5px;
bottom: 0;
left: 5px;
height: calc(50% - 2px / 2);
height: calc(50% - 2px * .5);
transform: rotate(-4deg);
transition: border-color $transition-time;
border-top: 2px solid rgba($tracker-default-text, .95);
@@ -649,7 +710,7 @@ table.files {
tr.file td {
&.filename {
padding-left: 20px + $table-cell-padding;
padding-left: $icon-width + $table-cell-padding;
text-align: left;
}

View File

@@ -91,3 +91,21 @@
background-repeat: no-repeat;
background-position: right $input-padding-horizontal center;
}
//
// Two-factor authentication
// --------------------------------------------------
.controller-twofa {
.splitcontentleft {
width: auto;
padding-right: 0;
}
}
ul.twofa_backup_codes {
margin-left: 0;
padding: 0;
list-style-type: none;
}

View File

@@ -1,12 +1,29 @@
@use "sass:math";
//
// Additionals
// https://www.redmine.org/plugins/additionals
// --------------------------------------------------
#sidebar .dashboards .dashboard-system-default {
position: absolute;
transform: translateY(- ($sidebar-padding-vertical + math.div($line-height-computed, 2) + math.div($font-size-base, 2)));
@if $sidebar-position == "right" {
right: 15px;
}
}
.flyout-menu .dashboard-system-default {
position: absolute;
right: 10px;
transform: translateY(- ($padding-large-vertical + math.div($line-height-computed, 2) + math.div($font-size-base, 2)));
}
#sidebar .sidebar-additionals {
ul,
ol {
margin: 0 0 ($line-height-computed / 2);
margin: 0 0 ($line-height-computed * .5);
padding-left: 1.5em;
ul,
@@ -39,6 +56,247 @@
}
}
#my-page.dashboard {
.mypage-box:not(.block-welcome, .block-projectinformation, .block-text, .block-text_async) {
margin-bottom: $line-height-computed;
padding: $panel-body-padding;
border: 1px solid $panel-border;
border-radius: $border-radius-base;
background-color: $panel-bg;
color: $panel-color;
font-size: .92em;
word-wrap: break-word;
> h3 {
margin-bottom: $panel-body-padding-vertical;
}
}
}
.controller-rdb_taskboard .gototop {
margin-right: $padding-side;
}
//
// Additional tags
// https://www.redmine.org/plugins/additional_tags
// --------------------------------------------------
.issue .tags.attribute {
padding-left: 160px;
.label {
width: 160px;
margin-left: -160px;
}
#tags-data {
padding-top: 3px;
}
}
#main {
.additional-tag-label-color {
font-weight: 600;
text-transform: uppercase;
}
#admin-menu a.additional-tags::before {
font-size: 1em;
}
}
#wiki_tags,
#edit-tags-form {
.select2-container {
margin-bottom: 5px;
&.select2-container--default .select2-selection--multiple .select2-selection__rendered {
margin: 0;
padding: 3px;
}
}
}
//
// Redmine Dashboard
// https://www.redmine.org/plugins/redmine-dashboard
// --------------------------------------------------
#rdb-taskboard {
#rdb-header {
a#rdb-refresh {
padding: 2px 0;
border-width: 0;
background-image: none;
line-height: 1.2em;
&::before {
content: $fa-var-refresh;
@include fa-icon;
width: 1em;
margin: 0 auto;
color: $green;
line-height: 1.2em;
}
}
.rdb-board .rdb-menu h2 {
font-size: 1em;
}
.rdb-board,
.rdb-filter,
.rdb-option {
margin-top: 4px;
margin-bottom: 0;
}
}
a#rdb-refresh,
a#rdb-refresh:focus,
a#rdb-refresh:hover,
.rdb-menu-link,
.rdb-menu-link:focus,
.rdb-menu-link:hover,
.rdb-menu .rdb-list a,
.rdb-menu .rdb-list a:focus,
.rdb-menu .rdb-list a:hover {
color: $gray-900;
text-decoration: none;
}
div:not(.rdb-card-header, .rdb-compact-header, .rdb-card-title) .rdb-menu {
.rdb-list {
> ul > li > a,
.rdb-multicheck a {
padding: 3px 5px;
}
.rdb-checkbox-link.rdb-checkbox-link-enabled {
background-image: none;
&::before {
content: $fa-var-check;
@include fa-icon;
color: $green;
}
}
.rdb-checkbox-link.rdb-checkbox-link-disabled {
padding: 0;
background-image: none;
}
a {
font-size: .9em;
&#rdb-reset {
background-image: none;
&::before {
content: $fa-var-times;
@include fa-icon;
margin-right: 8px;
}
}
}
}
&.rdb-menu-right .rdb-checkbox-link.rdb-checkbox-link-enabled::before {
margin-right: 8px;
}
.rdb-container h3 {
padding-top: 5px;
padding-bottom: 3px;
}
}
.rdb-headers .rdb-column h3 {
font-size: 1em;
}
.rdb-evt-group-toggle,
.rdb-evt-group-toggle:focus,
.rdb-evt-group-toggle:hover {
color: $text-color;
}
.rdb-card-header .rdb-menu-issue a.rdb-menu-link,
.rdb-compact-header .rdb-menu-issue a.rdb-menu-link,
.rdb-card-title > a {
background-image: none;
&::after {
content: $fa-var-cog;
@include fa-icon;
position: absolute;
top: 1px;
left: 2px;
color: $gray-600;
}
}
.rdb-property-tracker {
padding-left: 0;
background-image: none;
&::before {
content: $fa-var-ticket;
@include fa-icon;
margin-right: 4px;
}
}
.rdb-property-assignee {
padding-left: 0;
background-image: none;
&::before {
content: $fa-var-user;
@include fa-icon;
margin-right: 4px;
}
}
}
#rdb-footer #rdb-legend .rdb-overdue {
padding-right: 3px;
}
//
// Redmine Impersonate
// https://www.redmine.org/plugins/redmine_impersonate
// --------------------------------------------------
#impersonate::before {
content: $fa-var-user-secret;
@include fa-icon;
margin-right: 5px;
}
#impersonation-bar {
border-radius: 0;
}
//
// Redmine Recaptcha
// https://www.redmine.org/plugins/recaptcha
// --------------------------------------------------
.new-user .g-recaptcha {
padding-left: 170px;
@media screen and (max-width: $redmine-responsive-max) {
padding-left: 0;
}
}
//
// Redmine Backlogs
@@ -86,18 +344,128 @@
}
//
// Redmine Banner
// https://github.com/akiko-pusu/redmine_banner
// --------------------------------------------------
#global_banner {
.box {
margin-bottom: $line-height-computed;
}
}
.banner_area {
@media screen and (max-width: $redmine-responsive-max) {
#main #content > & {
margin-bottom: $line-height-computed;
}
}
.banner {
@extend %fa-icon;
margin: 0;
padding: $padding-large-vertical $padding-large-horizontal;
padding-left: $padding-large-horizontal + 8px + 16px;
border: 1px solid $component-border;
border-radius: $border-radius-base;
background: $component-bg;
color: $component-color;
@media screen and (min-width: $redmine-responsive-min) {
border-radius: 0;
}
&::before {
content: $fa-var-info;
margin-left: -(8px + 16px);
float: left;
line-height: $line-height-computed;
}
&_info {
border-color: $flash-info-border;
background-color: $flash-info-bg;
color: $flash-info-text;
&::before {
content: $fa-var-info-circle;
}
}
&_warn {
border-color: $flash-warning-border;
background-color: $flash-warning-bg;
color: $flash-warning-text;
&::before {
content: $fa-var-warning;
}
a,
~ div a {
color: $flash-warning-link;
}
}
&_alert {
border-color: $flash-error-border;
background-color: $flash-error-bg;
color: $flash-error-text;
&::before {
content: $fa-var-exclamation-circle;
}
a,
~ div a {
color: $flash-error-link;
}
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol {
margin-bottom: $line-height-computed * .5;
&:last-child {
margin-bottom: 0;
}
}
a {
text-decoration: underline;
}
}
.banner_edit {
a {
margin-left: 5px;
}
}
}
//
// Redmine Hearts
// https://github.com/cat-in-136/redmine_hearts
// --------------------------------------------------
.journal > div + .contextual {
padding-top: 0;
padding-bottom: 0;
border: 0;
> .heart-link-with-count {
display: block;
position: relative;
margin: -($line-height-computed / 2 + 1px) ($bubble-padding-horizontal - $padding-small-vertical) 0;
margin: -($line-height-computed * .5 + 1px) ($bubble-padding-horizontal - $padding-small-vertical) 0;
float: right;
border: 0;
background-color: $body-bg;
@@ -142,7 +510,7 @@
> a:first-child {
margin-right: 0;
margin-left: 4px;
padding-right: floor($btn-padding-horizontal-small / 2);
padding-right: floor($btn-padding-horizontal-small * .5);
border-top-right-radius: 0;
border-bottom-right-radius: 0;
@@ -156,6 +524,14 @@
}
}
.controller-hearts .recent-heart-list li {
padding: $padding-large-vertical;
}
#wiki_form.new_content + .wiki_page--heart,
#wiki_form.new_content + .heart-link-with-count {
display: none;
}
//
// Redmine Time Tracker
@@ -200,11 +576,155 @@
}
//
// RedmineUP
// https://www.redmineup.com/pages/plugins
// --------------------------------------------------
h2 {
.scope_title,
.live_search,
.tags {
vertical-align: top;
}
.live_search {
margin-left: $padding-side * .5;
}
.tags {
.tag_list {
margin-top: 0;
}
}
}
div.details {
&.contact,
&.product {
padding: 0;
border: 0;
background: transparent;
}
}
//
// Redmine Agile
// https://www.redmineup.com/pages/plugins/agile
// --------------------------------------------------
html.agile-board-fullscreen .icon.icon-fullscreen {
padding: ($padding-small-vertical - 1px) $padding-small-vertical;
font-size: 0;
text-align: center;
text-indent: 0;
@include nice-shadow(1);
&::before {
margin: 0;
}
}
@if $agile-board-customize {
.agile-board {
table.list.issues-board {
tbody tr {
background-color: $body-bg;
> td.issue-status-col {
padding: 0;
padding-left: parse-length($agile-issue-card-margin, left);
background-color: $agile-board-background;
&.closed .issue-card {
background: $agile-issue-card-closed-background;
}
}
}
}
.issue-card {
margin: $agile-issue-card-margin;
margin-left: 0;
padding: $agile-issue-card-padding;
border: 1px solid $agile-issue-card-border;
border-width: $agile-issue-card-border-width;
border-radius: $agile-issue-card-border-radius;
background-color: $agile-issue-card-background;
color: $agile-issue-card-color;
@include nice-shadow(1);
&.ui-sortable-helper {
@include nice-shadow(4);
}
&:not(.context-menu-selection) {
.attributes,
em.info,
span.hours {
color: $text-color;
}
}
@each $class, $color in $agile-issue-card-color-map {
&.#{$class} {
border-color: map-get($color, border);
background-color: map-get($color, background);
}
}
.checklist,
.info,
.sub-issues {
border-color: rgba($black, .15);
}
p.issue-id,
p.name {
margin-bottom: 5px;
&:last-of-type {
margin-bottom: 0;
}
}
p.issue-id {
line-height: 1;
}
p.project {
border-radius: $agile-issue-card-border-radius - 1px;
border-color: rgba($black, .15);
background-clip: padding-box;
}
p.name {
font-weight: $font-weight-bold;
}
}
}
@each $class, $color in $agile-issue-card-color-map {
@if map-get($color, link) != $link-color {
.#{$class} {
a {
color: map-get($color, link);
}
}
}
}
}
.agile-board {
.quick-comment {
textarea {
margin-bottom: parse-length($agile-issue-card-padding, bottom);
}
}
}
.controller-agile_charts #main {
@if $css-grid-layout {
> div:not(#content):not(#sidebar) {
@@ -229,6 +749,42 @@
}
//
// Redmine CRM
// https://www.redmineup.com/pages/plugins/crm
// --------------------------------------------------
table.sidebar.attributes {
tr {
th,
td {
padding: parse-length($table-condensed-cell-padding, top) 0;
vertical-align: top;
}
th {
padding-right: parse-length($table-condensed-cell-padding, right);
}
}
}
div.add-note {
input,
textarea {
margin-bottom: $line-height-computed;
}
}
@if $table-list-highlight-rows {
table.contacts.index,
table.contacts.index {
> tbody > tr:nth-child(n):hover {
background-color: $table-bg-hover;
}
}
}
//
// Redmine Tags
// https://www.redmineup.com/pages/plugins/tags
@@ -240,15 +796,43 @@
margin: 0;
}
&.select2-container.select2-container--default {
.select2-selection--multiple {
line-height: $line-height-base;
&-container.select2-container--default {
color: $text-color;
.select2-selection--single,
.select2-selection--multiple {
min-height: $input-height-base;
line-height: $line-height-base;
}
.select2-selection--single {
height: $input-height-base;
.select2-selection__rendered {
padding-top: $input-padding-vertical;
padding-bottom: $input-padding-vertical;
border: 0;
font-size: $font-size-base;
line-height: $line-height-base;
}
.select2-selection__arrow {
height: $input-height-base;
}
.select2-selection__clear {
border: 0;
}
}
.select2-selection--multiple {
.select2-selection__rendered {
padding: 0 3px 3px;
}
.select2-selection__choice {
margin-top: 3px;
margin-right: 3px;
padding-top: 0;
padding-bottom: 0;
}
@@ -269,14 +853,79 @@
box-shadow $transition-time ease-in-out;
border-color: $input-border;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
}
background-clip: padding-box;
&.select2-container--focus {
.select2-selection {
border-color: rgba($input-border-focus, $input-border-focus-alpha);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 0 2px rgba($input-border-focus, $input-shadow-focus-alpha);
&.icon {
padding-left: 18px + 8px;
&::before {
position: absolute;
top: 50%;
left: 8px;
margin: ($fa-font-size-base * -.5) 0 0;
}
}
}
&.select2-container {
&:focus,
* {
outline: none;
}
&--open,
&--focus {
.select2-selection {
border-color: rgba($input-border-focus, $input-border-focus-alpha);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075), 0 0 0 2px rgba($input-border-focus, $input-shadow-focus-alpha);
}
}
}
.select2-search__field {
&:focus {
border-color: rgba($input-border-focus, $input-border-focus-alpha);
}
}
}
}
span.tag-label-color {
@at-root body & {
padding: 0 !important; // stylelint-disable-line declaration-no-important
border: 0 !important; // stylelint-disable-line declaration-no-important
border-radius: $badge-border-radius;
box-shadow: inset 0 -1px 0 rgba($black, .12);
font-size: $font-size-small-px;
a,
span {
font-family: inherit;
font-size: inherit;
}
> a,
> span {
display: inline-block;
padding: 1px 5px;
text-shadow: 0 1px 0 rgba($black, .2);
}
a {
&:hover {
opacity: .8;
}
}
}
}
.list td.tags {
padding-bottom: max(parse-length($table-cell-padding, bottom) - 2px - 1px, 0);
span.tag-label-color {
margin-bottom: 2px;
margin-left: 0;
transform: translateY(-1px);
}
}
@@ -286,16 +935,32 @@
// https://www.redmineup.com/pages/plugins/checklists
// --------------------------------------------------
.checklist {
li {
a {
margin: 0;
line-height: inherit;
}
}
}
#checklist_form_items {
.checklist-item {
display: block;
margin: 0;
padding-top: $check-list-offset-top;
line-height: initial;
margin: 0 0 2px;
&.new {
padding-top: $padding-base-vertical;
line-height: inherit;
margin: $padding-base-vertical 0 0;
}
input[type="checkbox"] {
position: relative;
top: 2px;
vertical-align: baseline;
}
input[type="button"] {
margin-right: 4px;
}
}
}
@@ -356,8 +1021,8 @@
margin: 0;
form > input {
width: $quick-search-width / 2;
min-width: $quick-search-width / 2;
width: $quick-search-width * .5;
min-width: $quick-search-width * .5;
}
a {
@@ -367,130 +1032,6 @@
}
//
// Redmine CRM People
// http://www.redminecrm.com/projects/people/
// --------------------------------------------------
#people_list {
table.index {
margin-bottom: $line-height-computed;
}
}
#content {
.person.details {
margin-bottom: $line-height-computed;
padding: $issue-padding;
border: 1px solid $issue-border;
border-radius: $border-radius-base;
background-color: $issue-bg;
.avatar {
width: 64px;
max-width: 64px;
overflow: hidden;
}
.name,
.subject_info {
padding: 0 0 0 $issue-padding;
}
.name {
> h1 {
margin-bottom: 5px;
}
> p {
margin-bottom: 0;
}
}
.subject_info {
border-left: 1px solid $issue-border;
> ul {
margin: 0;
}
}
.icon {
background-image: none;
}
}
.department.issue.details {
> p {
clear: both;
}
> .author {
margin-bottom: 0;
clear: none;
}
}
}
#sidebar {
.person.attributes {
font-size: $font-size-list;
th,
td {
padding: $table-condensed-cell-padding;
text-align: left;
vertical-align: top;
}
.icon {
padding-left: $table-condensed-cell-padding + 20px;
background-image: none;
> a {
@extend %fa-icon;
}
}
.email {
td a {
display: block;
max-width: floor($sidebar-width / 3);
overflow: hidden;
text-overflow: ellipsis;
&:hover {
position: absolute;
max-width: 100%;
margin: -$table-condensed-cell-padding;
padding: $table-condensed-cell-padding;
background: $body-bg;
box-shadow: $panel-shadow;
}
}
}
}
.person_data {
td.avatar,
td.name {
padding: 0 0 $table-cell-padding;
}
td.avatar {
width: 40px;
}
td.name {
h4 {
margin: 0;
letter-spacing: 0;
}
}
}
}
//
// Redmine codebutton
// https://github.com/mediatainment/redmine_codebutton

View File

@@ -20,19 +20,23 @@ table.progress {
float: none;
}
tr {
background: transparent !important; // stylelint-disable-line declaration-no-important
}
td {
height: $progress-height;
padding: 0;
border: 0 none;
&:first-child {
border-top-left-radius: $progress-height / 2;
border-bottom-left-radius: $progress-height / 2;
border-top-left-radius: $progress-height * .5;
border-bottom-left-radius: $progress-height * .5;
}
&:last-child {
border-top-right-radius: $progress-height / 2;
border-bottom-right-radius: $progress-height / 2;
border-top-right-radius: $progress-height * .5;
border-bottom-right-radius: $progress-height * .5;
}
&.done {
@@ -45,12 +49,17 @@ table.progress {
&.todo {
background-color: $progress-bg !important; // stylelint-disable-line declaration-no-important
mix-blend-mode: multiply;
}
}
.issue & td {
padding: 0;
}
.context-menu-selection & td.todo {
mix-blend-mode: screen;
}
}
p {

View File

@@ -3,6 +3,14 @@
display: none;
}
.inline-flex {
display: inline-flex;
body.controller-issues h2 & {
padding-right: 0;
}
}
// stylelint-disable selector-max-compound-selectors
body {
@media screen and (max-width: $redmine-responsive-max) {
@@ -32,6 +40,8 @@ body {
}
#header {
background-color: $header-bg;
#project-jump {
padding: 0 $responsive-header-height 0 0;
@@ -108,7 +118,7 @@ body {
&__search {
height: $responsive-header-height;
padding: ($padding-side / 2);
padding: ($padding-side * .5);
line-height: normal;
input[type="text"] {
@@ -120,6 +130,7 @@ body {
&__avatar {
img.gravatar {
top: 0;
padding: 5px;
}
}
@@ -131,7 +142,7 @@ body {
ul {
li:nth-child(n) {
a {
a:not(.icon-only) {
height: auto;
padding: $padding-large-vertical $padding-large-horizontal;
line-height: $line-height-base;
@@ -147,13 +158,15 @@ body {
}
.icon-only {
flex: 0 0 40px;
flex: 0;
padding-right: 0;
padding-left: 0;
padding-left: 40px;
text-align: center;
text-overflow: initial;
&::before {
line-height: inherit;
width: 40px;
margin-left: -40px;
}
}
}
@@ -224,7 +237,7 @@ body {
#admin-menu {
a {
background-position: 8px center;
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
&.additionals {
padding-left: 32px !important; // stylelint-disable-line declaration-no-important
@@ -239,13 +252,13 @@ body {
#watchers {
.contextual {
padding-top: $line-height-computed / 2;
padding-bottom: $line-height-computed / 2;
padding-top: $line-height-computed * .5;
padding-bottom: $line-height-computed * .5;
}
.watchers {
li {
margin: ($line-height-computed / 2) 0 0;
margin: ($line-height-computed * .5) 0 0;
padding: 0;
img.gravatar {
@@ -259,7 +272,7 @@ body {
}
.delete {
flex: 0 0 24px;
margin-right: $padding-large-vertical;
margin-left: auto;
float: none;
text-align: center;
@@ -404,17 +417,7 @@ body {
// For Redmine 3.4+
#my-page {
#list-left {
width: 100%;
padding-right: 0;
float: none;
}
#list-right {
width: 100%;
padding-left: 0;
float: none;
}
display: block;
}
div#issue-changesets {
@@ -425,6 +428,51 @@ body {
#admin-index > #admin-menu li {
padding: 0;
a {
background-position: 8px center !important; // stylelint-disable-line declaration-no-important
}
}
/* Calendar */
ul.cal {
display: block;
.calhead {
display: none;
}
.calbody {
min-height: calc(1.2em * 3);
}
.calbody .day-letter {
display: inline;
}
.week-number {
border: none;
background-color: $table-bg-active;
font-weight: bold;
text-align: left;
span.label-week {
display: inline;
}
}
.week-number .label-week {
display: inline;
}
.calbody p.day-num {
font-size: 1.1em;
text-align: left;
.abbr-day {
display: inline;
}
}
}
}
@@ -437,7 +485,7 @@ body {
.query-columns {
span {
display: block;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
.buttons {

View File

@@ -105,7 +105,7 @@
input,
select {
margin-right: 5px;
margin-bottom: $line-height-computed / 2;
margin-bottom: $line-height-computed * .5;
}
label {

View File

@@ -84,7 +84,7 @@ $tabs-height: $line-height-computed + $tab-padding-vertical * 2 + 1px + 1px;
}
&.disabled {
opacity: $icon-opacity / 2;
opacity: $icon-opacity * .5;
}
}

View File

@@ -3,18 +3,21 @@
// --------------------------------------------------
#top-menu {
$top-menu-padding-vertical: $padding-small-vertical + 1px;
$top-menu-padding-horizontal: $padding-side;
@extend %clearfix;
position: relative;
padding: $padding-small-vertical $padding-side;
box-sizing: border-box;
padding: $top-menu-padding-vertical $top-menu-padding-horizontal;
background: $top-menu-bg;
color: $top-menu-text;
font-size: $font-size-small;
@if $top-menu-collapse {
$toggler-position-v: $padding-small-vertical + 1px;
$toggler-position-v: $top-menu-padding-vertical + 1px;
$toggler-position-h: 1px;
max-height: floor($font-size-base * $font-size-small-unitless * $line-height-base) + $padding-small-vertical;
position: relative;
max-height: floor($font-size-base * $font-size-small-unitless * $line-height-base) + $top-menu-padding-vertical * 2;
padding-bottom: 0;
overflow: hidden;
@@ -24,7 +27,7 @@
a {
display: inline-block;
margin-bottom: $padding-small-vertical;
margin-bottom: $top-menu-padding-vertical;
white-space: nowrap;
}
@@ -73,7 +76,7 @@
}
li {
margin: 0 .5em 0 0;
margin: 0 .8em 0 0;
padding: 0;
float: left;
list-style-type: none;
@@ -101,7 +104,7 @@
> ul > li {
margin-right: 0;
margin-left: .5em;
margin-left: .8em;
}
}
@@ -156,7 +159,7 @@
#quick-search {
#header & {
margin-top: floor(($header-title-line-height + $header-padding-vertical * 2 - $input-height-base) / 2) - 1px;
margin-top: floor(($header-title-line-height + $header-padding-vertical * 2 - $input-height-base) * .5) - 1px;
margin-right: $header-padding-horizontal;
float: right;
color: $header-text;
@@ -200,7 +203,7 @@
.drdn-trigger {
z-index: 1003;
height: auto;
padding-bottom: $header-padding-horizontal / 2;
padding-bottom: $header-padding-horizontal * .5;
border-color: $quick-search-dropdown-bg;
background-color: $quick-search-dropdown-bg;
@@ -220,7 +223,7 @@
&::after {
content: $fa-var-caret-down;
position: absolute;
top: ($font-size-base / 2);
top: ($font-size-base * .5);
right: $input-padding-horizontal;
}
}
@@ -230,7 +233,7 @@
background: $quick-search-dropdown-bg;
> .quick-search {
padding: $header-padding-horizontal / 2;
padding: $header-padding-horizontal * .5;
> input {
width: 100%;

View File

@@ -172,7 +172,10 @@ div.wiki {
word-break: keep-all;
}
tr:nth-child(2n) {
// Textile
tbody:first-child tr:nth-child(2n),
// Markdown
thead + tbody tr:nth-child(2n-1) {
background-color: $table-bg-accent;
}
@@ -315,11 +318,8 @@ h5,
h6 {
.wiki-anchor {
display: none;
position: relative;
top: -(1em - $font-size-small);
margin-left: 5px;
color: $headings-anchor-color !important; // stylelint-disable-line declaration-no-important
font-size: $font-size-small;
text-decoration: none !important; // stylelint-disable-line declaration-no-important
}
@@ -344,7 +344,7 @@ p.footnote {
display: block;
width: 300px;
margin-top: $line-height-computed;
padding-top: $line-height-computed / 2;
padding-top: $line-height-computed * .5;
border-top: 1px solid $gray-400;
}
@@ -408,7 +408,7 @@ p.footnote {
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;
border-radius: ceil($font-size-base + ($padding-base-vertical + 1px) * 2) * .5;
background-color: $body-bg;
line-height: 1;
white-space: nowrap;

View File

@@ -0,0 +1,49 @@
// Extract the length of margin/padding/border
// for given side from a shorthand syntax.
//
// Examples:
// parse-length(1px, top) -> 1px
// parse-length(1px 2px, right) -> 2px
// parse-length(1px 2px 3px 4px, bottom) -> 3px
// parse-length(1px 2px 3px 4px, left) -> 4px
//
@function parse-length($value, $side) {
$index: 1;
// Top values are always at index 1. The same for when the list has only one item
@if ($side == top or length($value) == 1) {
$index: 1;
}
// Covers "vertical horizontal" style
@else if (length($value) == 2) {
@if ($side == left or $side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 1;
}
}
// Covers "top horizontal bottom" style
@else if (length($value) == 3) {
@if ($side == left or $side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 3;
}
}
// Covers "top right bottom left" style
@else if (length($value) == 4) {
@if ($side == right) {
$index: 2;
}
@if ($side == bottom) {
$index: 3;
}
@if ($side == left) {
$index: 4;
}
}
@return nth($value, $index);
}

View File

@@ -1,7 +1,5 @@
@if $enable-sidebar-toggler {
#main {
position: relative;
// Fix full screen view for dashboard plugin
// https://github.com/jgraichen/redmine_dashboard
@at-root .controller-rdb_taskboard & {
@@ -38,9 +36,11 @@
.sidebar-toggler {
display: block;
position: absolute;
top: 1px;
z-index: 2;
bottom: -1px;
width: 14px;
height: 16px;
transform: translateY(100%);
border: 2px solid $gray-700;
border-radius: $border-radius-base;
background-color: $gray-200;

View File

@@ -1,3 +1,5 @@
@use "sass:math";
// Variables
// --------------------------
@@ -8,7 +10,7 @@ $fa-css-prefix: fa !default;
$fa-version: "4.7.0" !default;
$fa-border-color: #eee !default;
$fa-inverse: #fff !default;
$fa-li-width: (30em / 14) !default;
$fa-li-width: math.div(30em, 14) !default;
$fa-var-500px: "\f26e";
$fa-var-address-book: "\f2b9";

View File

@@ -28,6 +28,7 @@
@mixin tracker($parent, $background, $color) {
tr#{$parent} .id > a,
tr#{$parent} .issue_id > a,
a#{$parent}.issue,
a#{$parent},
.relations > span > a#{$parent},
.parent > a#{$parent} {

View File

@@ -256,8 +256,8 @@ ul.ui-sortable {
.ui-tooltip {
.ui-tooltip-content {
hr {
margin-top: $line-height-computed / 2;
margin-bottom: $line-height-computed / 2;
margin-top: $line-height-computed * .5;
margin-bottom: $line-height-computed * .5;
border: 0;
border-top: 1px solid $hr-border;
}

View File

@@ -51,17 +51,17 @@ $story-sp-input-width: 50px;
//
#backlogs_container {
padding: ($padding-side / 2) ($padding-side / 4);
padding: ($padding-side * .5) ($padding-side * .25);
.backlogs-panel-inner {
padding: 0 ($padding-side / 4);
padding: 0 ($padding-side * .25);
}
@media screen and (min-width: $screen-md-min) {
padding: $padding-side ($padding-side / 2);
padding: $padding-side ($padding-side * .5);
.backlogs-panel-inner {
padding: 0 ($padding-side / 2);
padding: 0 ($padding-side * .5);
}
}
@@ -158,7 +158,7 @@ $story-sp-input-width: 50px;
@include nice-shadow(1);
display: block;
position: relative;
margin: 0 0 ($padding-side / 2);
margin: 0 0 ($padding-side * .5);
border-radius: $border-radius-large $border-radius-large 0 0;
background-color: $gray-100;
@@ -243,7 +243,7 @@ $story-sp-input-width: 50px;
}
.editing {
$editor-padding: (($header-line-height - $input-height-base) / 2);
$editor-padding: (($header-line-height - $input-height-base) * .5);
.editors {
display: block;
@@ -823,7 +823,7 @@ $story-sp-input-width: 50px;
//
#show_completed_sprints {
margin-left: $padding-side / 2;
margin-left: $padding-side * .5;
color: $gray-950;
cursor: pointer;
}

File diff suppressed because one or more lines are too long

1
svg/icon-star.svg Normal file
View File

@@ -0,0 +1 @@
<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="red" d="M1728 647q0 22-26 48l-363 354 86 500q1 7 1 20 0 21-10.5 35.5t-30.5 14.5q-19 0-40-12l-449-236-449 236q-22 12-40 12-21 0-31.5-14.5t-10.5-35.5q0-6 2-20l86-500-364-354q-25-27-25-48 0-37 56-46l502-73 225-455q19-41 49-41t49 41l225 455 502 73q56 9 56 46z"/></svg>

After

Width:  |  Height:  |  Size: 363 B

1
svg/icon-tag.svg Normal file
View File

@@ -0,0 +1 @@
<svg width="16" height="16" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="red" d="M576 448q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm1067 576q0 53-37 90l-491 492q-39 37-91 37-53 0-90-37l-715-716q-38-37-64.5-101t-26.5-117v-416q0-52 38-90t90-38h416q53 0 117 26.5t102 64.5l715 714q37 39 37 91z"/></svg>

After

Width:  |  Height:  |  Size: 369 B