From 30a535d7e9bdc0e3cf637207c0c100a16db81586 Mon Sep 17 00:00:00 2001 From: Jeremy Plsek Date: Thu, 19 Dec 2019 12:58:33 -0500 Subject: style: make more consistent styles - Fix indentation in places - User settings have better labels - Lab info title now the same as others - Add "empty" sections to be more helpful to the user. They are not using links, since most of the "workflow" is handled by javascript. - Update padding in places to better line up with other elements - Add padding to bootstrap notifications (add check for messages to not just have random padding on the top of the page) - Remove unnecessary text in a form - Remove card-body from table-only or list-only cards (lists and tables are now flush with cards) - Add bg-danger to not-working hosts - Replace True/False text shown to the user with Yes/No - Remove ":" from some headers - Vertical buttons are now in a button group - Add pre-wrap class to avoid pre from breaking box sizing on the booking detail page - Reduce table indent in pod card and add table overflow scrollbar Signed-off-by: Jeremy Plsek Change-Id: If09dca2f2b7386c44eeeb817ef76e8f748e456da --- src/account/forms.py | 6 + src/dashboard/views.py | 2 +- src/static/css/base.css | 12 +- src/templates/account/booking_list.html | 165 +++++---- src/templates/account/configuration_list.html | 22 +- src/templates/account/image_list.html | 45 +-- src/templates/account/resource_list.html | 18 +- src/templates/account/userprofile_update_form.html | 46 ++- src/templates/base.html | 22 +- src/templates/booking/booking_detail.html | 394 ++++++++++----------- src/templates/booking/quick_deploy.html | 12 +- src/templates/booking/stats.html | 42 ++- .../config_bundle/steps/config_software.html | 3 - src/templates/dashboard/lab_detail.html | 85 +++-- src/templates/dashboard/lab_list.html | 31 +- src/templates/dashboard/landing.html | 114 +++--- .../dashboard/multiple_select_filter_widget.html | 4 +- .../dashboard/searchable_select_multiple.html | 8 +- src/templates/resource/hostprofile_detail.html | 106 +++--- src/templates/resource/hosts.html | 4 +- src/templates/resource/steps/define_hardware.html | 2 +- src/templates/resource/steps/meta_info.html | 2 +- src/templates/resource/steps/pod_definition.html | 105 +++--- src/templates/workflow/viewport-base.html | 12 +- 24 files changed, 614 insertions(+), 648 deletions(-) diff --git a/src/account/forms.py b/src/account/forms.py index 3b9c627..dd1a0a9 100644 --- a/src/account/forms.py +++ b/src/account/forms.py @@ -10,6 +10,7 @@ import django.forms as forms import pytz as pytz +from django.utils.translation import gettext_lazy as _ from account.models import UserProfile @@ -18,5 +19,10 @@ class AccountSettingsForm(forms.ModelForm): class Meta: model = UserProfile fields = ['company', 'email_addr', 'ssh_public_key', 'pgp_public_key', 'timezone'] + labels = { + 'email_addr': _('Email Address'), + 'ssh_public_key': _('SSH Public Key'), + 'pgp_public_key': _('PGP Public Key') + } timezone = forms.ChoiceField(choices=[(x, x) for x in pytz.common_timezones], initial='UTC') diff --git a/src/dashboard/views.py b/src/dashboard/views.py index c387251..2f37774 100644 --- a/src/dashboard/views.py +++ b/src/dashboard/views.py @@ -21,7 +21,7 @@ from workflow.workflow_manager import ManagerTracker def lab_list_view(request): labs = Lab.objects.all() - context = {"labs": labs} + context = {"labs": labs, 'title': 'Labs'} return render(request, "dashboard/lab_list.html", context) diff --git a/src/static/css/base.css b/src/static/css/base.css index 9fec97e..4673a5e 100644 --- a/src/static/css/base.css +++ b/src/static/css/base.css @@ -20,6 +20,12 @@ color: inherit; } +/* Make sure pre elements wrap to not break box sizing */ +/* Note: the pre element or parent may need to use the text-break class as well */ +.pre-wrap { + white-space: pre-wrap; +} + /* Allow for sidebar to be small, but also resize on small screens */ .sidebar { min-width: 200px; @@ -72,12 +78,6 @@ a[aria-expanded="true"] > i.rotate { cursor: not-allowed; } -/* Used with position-absolute class to make a full height object */ -.topToBottom { - bottom: 0; - top: 0; -} - .z-2 { z-index: 2; } diff --git a/src/templates/account/booking_list.html b/src/templates/account/booking_list.html index 55c6c0d..f9234bc 100644 --- a/src/templates/account/booking_list.html +++ b/src/templates/account/booking_list.html @@ -1,90 +1,100 @@ {% extends "base.html" %} {% block content %}

Bookings I Own

-
- {% for booking in bookings %} -
-
-
-

Booking {{booking.id}}

-
-
-
    -
  • id: {{booking.id}}
  • -
  • lab: {{booking.lab}}
  • -
  • resource: {{booking.resource.template.name}}
  • -
  • start: {{booking.start}}
  • -
  • end: {{booking.end}}
  • -
  • purpose: {{booking.purpose}}
  • -
-
- +
+ {% for booking in bookings %} +
+
+
+

Booking {{booking.id}}

+
+
    +
  • id: {{booking.id}}
  • +
  • lab: {{booking.lab}}
  • +
  • resource: {{booking.resource.template.name}}
  • +
  • start: {{booking.start}}
  • +
  • end: {{booking.end}}
  • +
  • purpose: {{booking.purpose}}
  • +
+
- {% endfor %} -
+
+ {% empty %} +
+

You don't have any bookings. You can create a booking by booking a pod.

+
+ {% endfor %} +
+

Bookings I Collaborate On

-
- {% for booking in collab_bookings %} -
-
-
-

Booking {{booking.id}}

-
-
-
    -
  • id: {{booking.id}}
  • -
  • lab: {{booking.lab}}
  • -
  • resource: {{booking.resource.template.name}}
  • -
  • start: {{booking.start}}
  • -
  • end: {{booking.end}}
  • -
  • purpose: {{booking.purpose}}
  • -
-
- +
+ + {% for booking in collab_bookings %} +
+
+
+

Booking {{booking.id}}

+
+
    +
  • id: {{booking.id}}
  • +
  • lab: {{booking.lab}}
  • +
  • resource: {{booking.resource.template.name}}
  • +
  • start: {{booking.start}}
  • +
  • end: {{booking.end}}
  • +
  • purpose: {{booking.purpose}}
  • +
+
- {% endfor %} -
- - Expired Bookings - - -
- {% for booking in expired_bookings %} -
-
-
-

Booking {{booking.id}}

-
-
-
    -
  • id: {{booking.id}}
  • -
  • lab: {{booking.lab}}
  • -
  • resource: {{booking.resource.template.name}}
  • -
  • start: {{booking.start}}
  • -
  • end: {{booking.end}}
  • -
  • purpose: {{booking.purpose}}
  • -
  • owner: {{booking.owner.userprofile.email_addr}}
  • -
-
- +
+ {% empty %} +
+

There are no collaborative bookings.

+
+ {% endfor %} +
+ + + Expired Bookings + + +
+ {% for booking in expired_bookings %} +
+
+
+

Booking {{booking.id}}

+
+
    +
  • id: {{booking.id}}
  • +
  • lab: {{booking.lab}}
  • +
  • resource: {{booking.resource.template.name}}
  • +
  • start: {{booking.start}}
  • +
  • end: {{booking.end}}
  • +
  • purpose: {{booking.purpose}}
  • +
  • owner: {{booking.owner.userprofile.email_addr}}
  • +
+
- {% endfor %} -
+
+ {% empty %} +
+

There are no expired bookings.

+
+ {% endfor %} +
+ +