Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d71b2a2
Back office CSS settings
joemull Nov 2, 2024
1b15d0d
Lint back office app CSS with Prettier
joemull Nov 2, 2024
269c025
Upgrade and restyle datatables #5024
joemull Jan 8, 2026
4f9d45d
feat #5024 Create alpha theme for TinyMCE
joemull Jan 8, 2026
fb9e8f2
feat #5024 Restyle toastr
joemull Jan 8, 2026
b1d47eb
feat #5024 Reference map of old and new colors
joemull Jan 8, 2026
1fb0737
feat #5024 Upgrade button elements
joemull Jan 8, 2026
e8ed9ef
feat #5024 Colour system refactor - submission
joemull Jan 8, 2026
3685d5f
feat #5024 Colour system refactor - review
joemull Jan 8, 2026
ad3e073
feat #5024 Colour system refactor - copyediting
joemull Jan 8, 2026
77811e8
feat #5024 Colour system refactor - typesetting
joemull Jan 8, 2026
9006efb
feat #5024 Colour system refactor - prepublication
joemull Jan 8, 2026
63f4907
feat #5024 Colour system refactor - repository
joemull Jan 8, 2026
c378bc6
feat #5024 Colour system refactor - journal
joemull Jan 8, 2026
f53b3f3
feat #5024 Colour system refactor - core and misc
joemull Jan 8, 2026
0bb5962
feat #5024 Colour system refactor - CSS
joemull Jan 8, 2026
a9d2590
feat #5024 Colour system refactor - docs
joemull Jan 8, 2026
65a0e21
chore: Mgmt command for creating a to-do dev checklist
joemull Jan 8, 2026
7f4a54e
feat #5024 Remove icons from a11y tree where text label exists
joemull Jan 8, 2026
b493661
feat #5024 Second-pass changes for consistency
joemull Jan 12, 2026
9c72cd3
docs: Expand guide on manual testing to include LAN access
joemull Jan 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 29 additions & 0 deletions docs/md/back-office-colours.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Back office colours

The Janeway back office has a minimal colour system with a primary colour, a secondary colour, an alert colour, and warm white and black shades for backgrounds and text.

The colours are set up in `src/static/admin/css/settings.css`. That file contains both named colours (e.g. `--clr-red`) and semantic variables (e.g. `--clr-alert`). Other files in `src/static/admin/css/` should call the semantic variables.

## Text and icons

Text and icons should generally be in black, or blue for links. Text on buttons should use the `-on-dark` semantic colour.

## Buttons

Primary buttons (blue) are the most important action on the page, like saving a form, creating an assignment when an article has arrived in a new workflow stage, or completing an action. There should only be one primary button per screen, in general.

Secondary buttons (dark tan) are other actions the user can take, but they are not the expected main action. Sometimes a page only contains secondary buttons, if there is no clear action that we want to emphasize over the others.

Warning or alert buttons (red) should be used only for destructive actions, like deleting a file or data. They should not be used for non-destructive actions like declining a request, rejecting a proposal, or cancelling an action, since these are often the normal business of running a journal, and belong to the secondary colour category. The warning/alert style is intentionally less vibrant, since the red colour would otherwise draw too much attention. There is no separation between warning and alert--they use the same colour.

For common use cases like saving, deleting, or sending, there are includable button templates in `templates/admin/elements`. These should be used wherever possible to keep the codebase smaller and more maintainable.

Some buttons have no style as such. For example, buttons within a `div.title-area` wrapper do not have any style applied. Links in the workflow actions box also just appear as black text with their respective icons. Icon-based links within tables are also not styled as buttons, but eventually these elements should be expanded to be more accessible with both icon and text.

## Callouts

The Bootstrap set of callouts should be used when a callout is desired (e.g. `bs-callout bs-callout-warning`). These have the most accessible style, with a single thick bar of colour down the left-hand side, and no change to the background that could affect text contrast.

## Toasts

The toastr widget that displays Django messages in the bottom right uses just two colours: primary and alert/warning.
26 changes: 26 additions & 0 deletions docs/md/manual-ui-testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Manual user interface testing

This guide offers tips for testing Janeway manually during development.

## Using multiple accounts and roles

When testing a user interface manually, you often need to be logged in with several different accounts that have different roles.

You can use Firefox container tabs to switch quickly between roles.

## Testing on a phone or other device at home

When you are on secure local network, you can run the Janeway local server in such a way that you can test it on other devices.

1. Run your development server with an additional argument to specify an IP of four zeroes, and the same port as normal: `python src/manage.py 0.0.0.0:8000`.

2. Find out the IP address of your development machine on your local network. On Linux this can be done with the `ip` utility by running `ip r`. An example: `192.168.68.121`.

3. Create a Domain Alias record in the Janeway admin interface (go to `localhost:8000/admin/core/domainalias`).
- Enter the IP address from the previous step in the **Domain** field. An example: `192.168.68.121`.
- Leave the **Is secure** field unticked.
- Untick the **301** field, since you do not want Janeway to redirect devices that access this IP.
- Select the journal or press site that you want to access.
- Save the domain alias.

4. Visit this IP and port on your other device(s). For example, go to `192.168.68.121:8000`.
2 changes: 2 additions & 0 deletions src/core/janeway_global_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -666,6 +666,8 @@ def __len__(self):
"branding": False,
"convert_urls": False,
"menubar": "edit view insert format tools table help",
"skin": "tinymce-alpha",
"skin_url": STATIC_URL + "/common/css/tinymce-alpha",
"content_css": STATIC_URL + "/admin/css/admin.css",
"plugins": "advlist autolink lists link image charmap preview anchor searchreplace visualblocks code"
" fullscreen insertdatetime media table code help wordcount spellchecker help",
Expand Down
1 change: 1 addition & 0 deletions src/core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2493,6 +2493,7 @@ def pinned_articles(request):
Allows an Editor to pin articles to the top of the article page.
:param request: HttpRequest object
"""
warnings.warn("The pinned articles feature is deprecated.")
pinned_articles = journal_models.PinnedArticle.objects.filter(
journal=request.journal
)
Expand Down
5 changes: 5 additions & 0 deletions src/install/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
__license__ = "AGPL v3"
__maintainer__ = "Birkbeck Centre for Technology and Publishing"

import warnings

from django.shortcuts import render, redirect
from django.contrib.admin.views.decorators import staff_member_required
from django.urls import reverse
Expand All @@ -18,6 +20,7 @@ def index(request):
:param request: HttpRequest object
:return: HttpResponse or if request.POST: HttpRedirect
"""
warnings.warn("The GUI install process is deprecated.")
if request.POST:
file = request.FILES.get("press_logo")
file = files.save_file_to_press(request, file, "Press Logo", "")
Expand All @@ -39,6 +42,7 @@ def journal(request):
:param request: HttpRequest object
:return: HttpResponse object
"""
warnings.warn("The GUI install process is deprecated.")
settings_to_get = [
"journal_name",
"journal_issn",
Expand Down Expand Up @@ -75,6 +79,7 @@ def next(request):
:param request: HttpRequest object
:return: HttpResponse object
"""
warnings.warn("The GUI install process is deprecated.")
template = "install/next.html"
context = {}

Expand Down
2 changes: 1 addition & 1 deletion src/repository/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1574,7 +1574,7 @@ def repository_wizard(request, short_name=None, step="1"):
if form.is_valid():
updated_repository = form.save()

# If we reach step 4, redirect to the Repo home page.
# If we reach step 5, redirect to the Repo home page.
if step == "5":
messages.add_message(
request,
Expand Down
5 changes: 0 additions & 5 deletions src/review/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -346,39 +346,34 @@ def status(self):
return {
"code": "withdrawn",
"display": "Withdrawn",
"span_class": "red",
"date": "",
"reminder": None,
}
elif self.date_complete and self.date_accepted:
return {
"code": "complete",
"display": "Complete",
"span_class": "light-green",
"date": shared.day_month(self.date_complete),
"reminder": None,
}
elif self.date_accepted:
return {
"code": "accept",
"display": "Yes",
"span_class": "green",
"date": shared.day_month(self.date_accepted),
"reminder": "accepted",
}
elif self.date_declined:
return {
"code": "declined",
"display": "No",
"span_class": "red",
"date": shared.day_month(self.date_declined),
"reminder": None,
}
else:
return {
"code": "wait",
"display": "Wait",
"span_class": "amber",
"date": "",
"reminder": "request",
}
Expand Down
Loading