diff --git a/app/assets/stylesheets/settings/addons.scss b/app/assets/stylesheets/settings/addons.scss index b7ea05cd7..84731c79f 100644 --- a/app/assets/stylesheets/settings/addons.scss +++ b/app/assets/stylesheets/settings/addons.scss @@ -1,3 +1,6 @@ +// scss-lint:disable SelectorDepth SelectorFormat QualifyingElement +// scss-lint:disable NestingDepth ImportantRule + .user-account-addons { .content-pane { margin: 0; @@ -8,4 +11,43 @@ border-bottom: $border-tertiary; padding-bottom: 15px; } + + .printers-container { + .printer { + border: $border-default; + padding: 1em; + + .header { + align-items: center; + display: flex; + margin-bottom: .5em; + + .title { + font-weight: bold; + } + + .status { + border: $border-default; + color: $color-silver-chalice; + margin-left: .5em; + margin-right: auto; + padding: .25em; + + &[data-ready="true"] { + background: $brand-success; + border-color: $brand-success; + color: $color-white; + } + } + + .fas-check { + margin-left: .25em; + } + } + + .description { + margin-bottom: .5em; + } + } + } } diff --git a/app/assets/stylesheets/settings/label_printers.scss b/app/assets/stylesheets/settings/label_printers.scss new file mode 100644 index 000000000..e53c0e3e9 --- /dev/null +++ b/app/assets/stylesheets/settings/label_printers.scss @@ -0,0 +1,63 @@ +// scss-lint:disable SelectorDepth SelectorFormat QualifyingElement +// scss-lint:disable NestingDepth ImportantRule + +.label-printer-show { + .printer-title { + flex-grow: 0 !important; + margin-right: .5em !important; + } + + .status { + border: $border-default; + color: $color-silver-chalice; + margin-left: .5em; + margin-right: auto; + padding: .25em; + + &[data-ready="true"] { + background: $brand-success; + border-color: $brand-success; + color: $color-white; + } + } + + ul { + list-style-type: none; + padding-left: 0; + + li { + padding: .5em 0; + } + } + + .fa-caret-down { + cursor: pointer; + margin-right: .25em; + + &.collapsed { + @include rotate(-90deg); + } + } + + .collapse-row { + align-items: center; + display: flex; + } + + .collapse { + padding-left: 1.5em; + } + + .row-title { + @include font-h2; + margin-left: .5em; + } + + .api-key-container { + display: flex; + + .api-key-input { + margin-right: .5em; + } + } +} diff --git a/app/controllers/users/settings/account/addons_controller.rb b/app/controllers/users/settings/account/addons_controller.rb index aa4412a78..6a7204aea 100644 --- a/app/controllers/users/settings/account/addons_controller.rb +++ b/app/controllers/users/settings/account/addons_controller.rb @@ -3,6 +3,18 @@ module Users module Account class AddonsController < ApplicationController layout 'fluid' + + before_action :load_printers, only: :index + + def label_printer + @printer = { printer_type: :fluics, ready: true, api_key: 'ISVO42192IUDV168ATFI314UVYGU151USHYEV42' } + end + + private + + def load_printers + @fluics_printer = { ready: true, enabled: true } + end end end end diff --git a/app/views/users/settings/account/addons/index.html.erb b/app/views/users/settings/account/addons/index.html.erb index 2163760db..dccace77e 100644 --- a/app/views/users/settings/account/addons/index.html.erb +++ b/app/views/users/settings/account/addons/index.html.erb @@ -15,6 +15,39 @@ +
+
+

<%= t('users.settings.account.addons.label_printers') %>

+
+ <% if @fluics_printer %> +
+
+
+ <%= t('users.settings.account.addons.fluics_printer.title') %> +
+
+ <% if @fluics_printer[:ready] %> + <%= t('users.settings.account.addons.printers.ready') %> + <% else %> + <%= t('users.settings.account.addons.printers.not_ready') %> + <% end %> +
+
+ <% if @fluics_printer[:enabled] %> + <%= t('users.settings.account.addons.printers.enabled') %> + + <% end %> +
+
+
+ <%= t('users.settings.account.addons.fluics_printer.description') %> +
+ <%= link_to t('users.settings.account.addons.printers.printer_details'), label_printer_path, class: 'printer-details' %> +
+ <% end %> +
+
+
diff --git a/app/views/users/settings/account/addons/label_printer.html.erb b/app/views/users/settings/account/addons/label_printer.html.erb new file mode 100644 index 000000000..21d331299 --- /dev/null +++ b/app/views/users/settings/account/addons/label_printer.html.erb @@ -0,0 +1,63 @@ +<% provide(:head_title, t('users.settings.account.addons.head_title')) %> +<% provide(:container_class, "no-second-nav-container") %> + +<%= render partial: 'users/settings/sidebar.html.erb' %> + +
+
+ +
+

+ <%= t("users.settings.account.label_printer.#{@printer[:printer_type]}_printer") %> +

+
+ <% if @printer[:ready] %> + <%= t('users.settings.account.addons.printers.ready') %> + <% else %> + <%= t('users.settings.account.addons.printers.not_ready') %> + <% end %> +
+
+
+ + + + +
+ diff --git a/config/locales/en.yml b/config/locales/en.yml index 48f1e799f..d7f3b85b0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1796,6 +1796,22 @@ en: head_title: "Settings | Add-ons" title: "Add-ons" no_addons: "You have no SciNote Add-ons." + label_printers: Label Printers + printers: + ready: "Ready" + not_ready: "Not ready" + printer_details: "Printer details" + enabled: "Enabled" + fluics_printer: + title: "FLUICS Printer" + description: "Sustainable sample inventory management for innovative research labs." + label_printer: + fluics_printer: "Label printer: FLUICS Printer" + instructions: "Instructions" + settings: "Settings" + api_key_label: "API key" + api_key_information: "Don’t have API key? Click here for more info." + connected_accounts: head_title: "Settings | Connected Accounts" title: "Connected Accounts" diff --git a/config/routes.rb b/config/routes.rb index acb47b963..2a09637d9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -41,6 +41,9 @@ Rails.application.routes.draw do get 'users/settings/account/addons', to: 'users/settings/account/addons#index', as: 'addons' + get 'users/settings/account/addons/label_printer', + to: 'users/settings/account/addons#label_printer', + as: 'label_printer' get 'users/settings/account/connected_accounts', to: 'users/settings/account/connected_accounts#index', as: 'connected_accounts'