Compare commits
26 Commits
update-for
...
v2.16.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
69821b6ee2 | ||
|
|
50919b24db | ||
|
|
7fb8542baf | ||
|
|
4cad934780 | ||
|
|
4d5350abcf | ||
|
|
ee5f7c953a | ||
|
|
9d2eed48f8 | ||
|
|
3275e1b9aa | ||
|
|
b8758b4705 | ||
|
|
431ab76b5b | ||
|
|
c80281367d | ||
|
|
a1f1307acc | ||
|
|
611472863d | ||
|
|
46041bc868 | ||
|
|
164909da8a | ||
|
|
188df5599e | ||
|
|
2e7e3ceb54 | ||
|
|
cdbe0a187e | ||
|
|
8e3bffc518 | ||
|
|
24bfb52f7a | ||
|
|
125e09a18c | ||
|
|
8c1e5a99a5 | ||
|
|
4e1d1e05d8 | ||
|
|
75b0b63b92 | ||
|
|
dbb04bea5c | ||
|
|
947464dd92 |
18
.github/workflows/lint.yml
vendored
18
.github/workflows/lint.yml
vendored
@@ -9,16 +9,16 @@ on:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js 14.x
|
||||
uses: actions/setup-node@v1
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14.x
|
||||
node-version: 16.x
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: npm ci
|
||||
@@ -30,18 +30,18 @@ jobs:
|
||||
run: npm run lint:sass
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-18.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [10.x, 12.x, 14.x]
|
||||
node-version: [16.x, 18.x, 19.x]
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
|
||||
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,6 +1,12 @@
|
||||
Latest (master):
|
||||
v2.16.0 (2023-05-14):
|
||||
|
||||
* Update styles for Redmine 4.2
|
||||
* 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):
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
17
package-lock.json
generated
17
package-lock.json
generated
@@ -2613,11 +2613,6 @@
|
||||
"which": "~2.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
@@ -3465,9 +3460,9 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.20",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
|
||||
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"lodash.clonedeep": {
|
||||
"version": "4.5.0",
|
||||
@@ -5168,12 +5163,6 @@
|
||||
"integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
|
||||
"dev": true
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.35",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@
|
||||
|
||||
&:not(.watchers) {
|
||||
li {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
@@ -330,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;
|
||||
@@ -343,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,10 +290,11 @@ p.subtitle {
|
||||
|
||||
.block-receiver {
|
||||
box-sizing: border-box;
|
||||
min-height: 20px;
|
||||
margin-bottom: $line-height-computed;
|
||||
flex-basis: 100%;
|
||||
|
||||
.dragging & {
|
||||
min-height: 20px;
|
||||
margin-bottom: $line-height-computed;
|
||||
outline: 2px dashed $gray-600;
|
||||
}
|
||||
}
|
||||
@@ -347,6 +348,9 @@ a.close-icon {
|
||||
|
||||
// For Redmine 3.4+
|
||||
#my-page {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.mypage-box {
|
||||
> .contextual {
|
||||
transition: opacity $transition-time;
|
||||
@@ -359,15 +363,11 @@ a.close-icon {
|
||||
}
|
||||
|
||||
#list-left {
|
||||
width: 50%;
|
||||
padding-right: ($padding-side * .5);
|
||||
float: left;
|
||||
flex-basis: 50%;
|
||||
}
|
||||
|
||||
#list-right {
|
||||
width: 50%;
|
||||
padding-left: ($padding-side * .5);
|
||||
float: right;
|
||||
flex-basis: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -613,11 +613,6 @@ div#roadmap {
|
||||
td {
|
||||
height: $progress-height;
|
||||
}
|
||||
|
||||
+ .percent {
|
||||
position: relative;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
header {
|
||||
@@ -877,6 +872,53 @@ 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
|
||||
//
|
||||
|
||||
|
||||
@@ -1,8 +1,25 @@
|
||||
@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 {
|
||||
@@ -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
|
||||
@@ -266,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
|
||||
|
||||
@@ -40,6 +40,8 @@ body {
|
||||
}
|
||||
|
||||
#header {
|
||||
background-color: $header-bg;
|
||||
|
||||
#project-jump {
|
||||
padding: 0 $responsive-header-height 0 0;
|
||||
|
||||
@@ -128,6 +130,7 @@ body {
|
||||
&__avatar {
|
||||
img.gravatar {
|
||||
top: 0;
|
||||
padding: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user