diff --git a/Gemfile b/Gemfile index 9293ef0c2..1d23cfed2 100644 --- a/Gemfile +++ b/Gemfile @@ -49,6 +49,7 @@ gem "rubocop-rspec" gem 'active_model_serializers', '>= 0.10.13' gem 'acts-as-list' gem 'aws-sdk-rails', '>= 3.8.0' +gem 'aws-sdk-s3' gem 'caracal', '>= 1.4.1' gem 'carrierwave', '>= 2.2.1' gem 'devise', '>= 4.8.1' diff --git a/Gemfile.lock b/Gemfile.lock index 8fbe99005..45c08d3cd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -18,50 +18,51 @@ GEM aasm-diagram (0.1.3) aasm (~> 5.0, >= 4.12) ruby-graphviz (~> 1.2) - actioncable (7.1.1) - actionpack (= 7.1.1) - activesupport (= 7.1.1) + actioncable (7.1.2) + actionpack (= 7.1.2) + activesupport (= 7.1.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.1) - actionpack (= 7.1.1) - activejob (= 7.1.1) - activerecord (= 7.1.1) - activestorage (= 7.1.1) - activesupport (= 7.1.1) + actionmailbox (7.1.2) + actionpack (= 7.1.2) + activejob (= 7.1.2) + activerecord (= 7.1.2) + activestorage (= 7.1.2) + activesupport (= 7.1.2) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.1.1) - actionpack (= 7.1.1) - actionview (= 7.1.1) - activejob (= 7.1.1) - activesupport (= 7.1.1) + actionmailer (7.1.2) + actionpack (= 7.1.2) + actionview (= 7.1.2) + activejob (= 7.1.2) + activesupport (= 7.1.2) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.2) - actionpack (7.1.1) - actionview (= 7.1.1) - activesupport (= 7.1.1) + actionpack (7.1.2) + actionview (= 7.1.2) + activesupport (= 7.1.2) nokogiri (>= 1.8.5) + racc rack (>= 2.2.4) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.1) - actionpack (= 7.1.1) - activerecord (= 7.1.1) - activestorage (= 7.1.1) - activesupport (= 7.1.1) + actiontext (7.1.2) + actionpack (= 7.1.2) + activerecord (= 7.1.2) + activestorage (= 7.1.2) + activesupport (= 7.1.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.1) - activesupport (= 7.1.1) + actionview (7.1.2) + activesupport (= 7.1.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -71,22 +72,22 @@ GEM activemodel (>= 4.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (7.1.1) - activesupport (= 7.1.1) + activejob (7.1.2) + activesupport (= 7.1.2) globalid (>= 0.3.6) - activemodel (7.1.1) - activesupport (= 7.1.1) - activerecord (7.1.1) - activemodel (= 7.1.1) - activesupport (= 7.1.1) + activemodel (7.1.2) + activesupport (= 7.1.2) + activerecord (7.1.2) + activemodel (= 7.1.2) + activesupport (= 7.1.2) timeout (>= 0.4.0) - activestorage (7.1.1) - actionpack (= 7.1.1) - activejob (= 7.1.1) - activerecord (= 7.1.1) - activesupport (= 7.1.1) + activestorage (7.1.2) + actionpack (= 7.1.2) + activejob (= 7.1.2) + activerecord (= 7.1.2) + activesupport (= 7.1.2) marcel (~> 1.0) - activesupport (7.1.1) + activesupport (7.1.2) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) @@ -104,10 +105,10 @@ GEM aes_key_wrap (1.1.0) ast (2.4.2) aws-eventstream (1.2.0) - aws-partitions (1.848.0) + aws-partitions (1.853.0) aws-record (2.13.0) aws-sdk-dynamodb (~> 1, >= 1.85.0) - aws-sdk-core (3.186.0) + aws-sdk-core (3.187.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) @@ -115,6 +116,9 @@ GEM aws-sdk-dynamodb (1.96.0) aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) + aws-sigv4 (~> 1.1) aws-sdk-rails (3.9.0) aws-record (~> 2) aws-sdk-ses (~> 1, >= 1.50.0) @@ -123,13 +127,17 @@ GEM aws-sessionstore-dynamodb (~> 2) concurrent-ruby (~> 1) railties (>= 5.2.0) + aws-sdk-s3 (1.136.0) + aws-sdk-core (~> 3, >= 3.181.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.6) aws-sdk-ses (1.56.0) aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) aws-sdk-sesv2 (1.41.0) aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-sqs (1.65.0) + aws-sdk-sqs (1.67.0) aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) aws-sessionstore-dynamodb (2.1.0) @@ -138,7 +146,7 @@ GEM aws-sigv4 (1.6.1) aws-eventstream (~> 1, >= 1.0.2) base64 (0.2.0) - bcrypt (3.1.19) + bcrypt (3.1.20) bigdecimal (3.1.4) bindata (2.4.15) bindex (0.8.1) @@ -146,7 +154,7 @@ GEM msgpack (~> 1.2) brakeman (6.0.1) builder (3.2.4) - bullet (7.1.3) + bullet (7.1.4) activesupport (>= 3.0.0) uniform_notifier (~> 1.11) bundler-audit (0.9.1) @@ -241,7 +249,7 @@ GEM activesupport (>= 6.0.0) railties (>= 6.0.0) io-console (0.6.0) - irb (1.8.3) + irb (1.9.0) rdoc reline (>= 0.3.8) jbuilder (2.11.5) @@ -279,7 +287,7 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logstop (0.3.1) - loofah (2.21.4) + loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -302,7 +310,7 @@ GEM multi_xml (0.6.0) multipart-post (2.3.0) mutex_m (0.2.0) - net-imap (0.4.4) + net-imap (0.4.5) date net-protocol net-pop (0.1.2) @@ -313,7 +321,7 @@ GEM net-protocol newrelic_rpm (9.6.0) base64 - nio4r (2.5.9) + nio4r (2.6.0) nokogiri (1.15.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) @@ -353,10 +361,10 @@ GEM method_source (~> 1.0) psych (5.1.1.1) stringio - public_suffix (5.0.3) + public_suffix (5.0.4) puma (6.4.0) nio4r (~> 2.0) - racc (1.7.2) + racc (1.7.3) rack (2.2.8) rack-cors (2.0.1) rack (>= 2.0.0) @@ -369,20 +377,20 @@ GEM rackup (1.0.0) rack (< 3) webrick - rails (7.1.1) - actioncable (= 7.1.1) - actionmailbox (= 7.1.1) - actionmailer (= 7.1.1) - actionpack (= 7.1.1) - actiontext (= 7.1.1) - actionview (= 7.1.1) - activejob (= 7.1.1) - activemodel (= 7.1.1) - activerecord (= 7.1.1) - activestorage (= 7.1.1) - activesupport (= 7.1.1) + rails (7.1.2) + actioncable (= 7.1.2) + actionmailbox (= 7.1.2) + actionmailer (= 7.1.2) + actionpack (= 7.1.2) + actiontext (= 7.1.2) + actionview (= 7.1.2) + activejob (= 7.1.2) + activemodel (= 7.1.2) + activerecord (= 7.1.2) + activestorage (= 7.1.2) + activesupport (= 7.1.2) bundler (>= 1.15.0) - railties (= 7.1.1) + railties (= 7.1.2) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -399,9 +407,9 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.1.1) - actionpack (= 7.1.1) - activesupport (= 7.1.1) + railties (7.1.2) + actionpack (= 7.1.2) + activesupport (= 7.1.2) irb rackup (>= 1.0.0) rake (>= 12.2) @@ -421,7 +429,7 @@ GEM redis-namespace (1.11.0) redis (>= 4) regexp_parser (2.8.2) - reline (0.3.9) + reline (0.4.0) io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) @@ -466,10 +474,11 @@ GEM rubocop (~> 1.41) rubocop-factory_bot (2.24.0) rubocop (~> 1.33) - rubocop-rails (2.22.1) + rubocop-rails (2.22.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) + rubocop-ast (>= 1.30.0, < 2.0) rubocop-rspec (2.25.0) rubocop (~> 1.40) rubocop-capybara (~> 2.17) @@ -566,6 +575,7 @@ DEPENDENCIES acts-as-list acts-as-taggable-on aws-sdk-rails (>= 3.8.0) + aws-sdk-s3 bootsnap brakeman bullet diff --git a/app/assets/stylesheets/site.scss b/app/assets/stylesheets/site.scss index 6323afc6e..361d59a9e 100644 --- a/app/assets/stylesheets/site.scss +++ b/app/assets/stylesheets/site.scss @@ -147,7 +147,7 @@ footer { .well { border: 1px solid #d6d7d9; padding: 20px; - margin: 10px 0; + margin-bottom: 10px; overflow-wrap: break-word; } diff --git a/app/controllers/admin/cx_collection_details_controller.rb b/app/controllers/admin/cx_collection_details_controller.rb index 6756b3a37..7b5b48437 100644 --- a/app/controllers/admin/cx_collection_details_controller.rb +++ b/app/controllers/admin/cx_collection_details_controller.rb @@ -1,5 +1,5 @@ class Admin::CxCollectionDetailsController < AdminController - before_action :set_cx_collection_detail, only: %i[ show edit upload update destroy ] + before_action :set_cx_collection_detail, only: %i[ show edit upload upload_csv update destroy ] before_action :set_cx_collections, only: %i[ new edit upload ] def index @@ -26,8 +26,8 @@ def create respond_to do |format| if @cx_collection_detail.save - format.html { redirect_to admin_cx_collection_detail_url(@cx_collection_detail), notice: "Cx collection detail was successfully created." } - format.json { render :show, status: :created, location: @cx_collection_detail } + format.html { redirect_to upload_admin_cx_collection_detail_url(@cx_collection_detail), notice: "CX Collection Detail was successfully created." } + format.json { render :upload, status: :created, location: @cx_collection_detail } else format.html { render :new, status: :unprocessable_entity } format.json { render json: @cx_collection_detail.errors, status: :unprocessable_entity } @@ -38,7 +38,7 @@ def create def update respond_to do |format| if @cx_collection_detail.update(cx_collection_detail_params) - format.html { redirect_to admin_cx_collection_detail_url(@cx_collection_detail), notice: "Cx collection detail was successfully updated." } + format.html { redirect_to admin_cx_collection_detail_url(@cx_collection_detail), notice: "CX Collection Detail was successfully updated." } format.json { render :show, status: :ok, location: @cx_collection_detail } else format.html { render :edit, status: :unprocessable_entity } @@ -51,11 +51,32 @@ def destroy @cx_collection_detail.destroy respond_to do |format| - format.html { redirect_to cx_collection_details_url, notice: "Cx collection detail was successfully destroyed." } + format.html { redirect_to cx_collection_details_url, notice: "CX Collection Detail was successfully destroyed." } format.json { head :no_content } end end + # Handle a large-ish csv upload (5+ MB) to S3 + def upload_csv + file = params[:file] # Assuming the file comes from a form field named 'file' + bucket = ENV.fetch("S3_UPLOADS_AWS_BUCKET_NAME") + + s3 = Aws::S3::Resource.new + key = "cx_data_collections/cx-upload-#{Time.now.to_i}-#{file.original_filename}}" + obj = s3.bucket(bucket).object(file.original_filename) + # Upload the file + response = obj.upload_file(file.path) + + CxCollectionDetailUpload.create!({ + user_id: current_user.id, + cx_collection_detail_id: @cx_collection_detail.id, + size: obj.size, + key: obj.key, + }) + + render :upload, message: 'File successfully uploaded' + end + private def set_cx_collection_detail @cx_collection_detail = CxCollectionDetail.find(params[:id]) @@ -63,7 +84,7 @@ def set_cx_collection_detail def set_cx_collections if service_manager_permissions? - @cx_collections = CxCollection.all.includes(:organization) + @cx_collections = CxCollection.all.includes(:organization).order('organizations.abbreviation') else @cx_collections = current_user.organization.cx_collections end diff --git a/app/controllers/admin/reporting_controller.rb b/app/controllers/admin/reporting_controller.rb index a5e86e2f2..c28c350a7 100644 --- a/app/controllers/admin/reporting_controller.rb +++ b/app/controllers/admin/reporting_controller.rb @@ -5,7 +5,7 @@ class ReportingController < AdminController def index; end def hisps - render plain: ServiceProvider.to_csv + send_data ServiceProvider.to_csv, filename: "touchpoints-service-providers-#{Date.today}.csv" end def hisp_services @@ -35,7 +35,7 @@ def hisp_services row << header_fields.join(',') - ServiceProvider.all.includes(:organization).order('organizations.name', :name).each do |service_provider| + ServiceProviderall..all.includes(:organization).order('organizations.name', :name).each do |service_provider| service_provider.services.order(:name).each do |service| service.omb_cx_reporting_collections.includes(:service, :collection).order('collections.year', 'collections.quarter', 'services.name').each do |omb_cx_reporting_collection| row_fields = [ @@ -363,18 +363,18 @@ def no_submissions def service_surveys @services = Service.includes(:organization, :forms).all.order('organizations.name, services.name') end - + def users @users_who_need_accounts = [] Website.where("site_owner_email IS NOT NULL OR contact_email IS NOT NULL").all.each do |website| - + if website.site_owner_email.present? user = User.find_by_email(website.site_owner_email) if user.nil? @users_who_need_accounts << website.site_owner_email end end - + if website.contact_email.present? user2 = User.find_by_email(website.contact_email) if user2.nil? diff --git a/app/controllers/admin/service_providers_controller.rb b/app/controllers/admin/service_providers_controller.rb index 6bac9ae62..d470b9533 100644 --- a/app/controllers/admin/service_providers_controller.rb +++ b/app/controllers/admin/service_providers_controller.rb @@ -111,9 +111,6 @@ def service_provider_params :description, :notes, :slug, - :department, - :department_abbreviation, - :bureau, :inactive, :new, :tag_list, diff --git a/app/models/cx_collection_detail_upload.rb b/app/models/cx_collection_detail_upload.rb new file mode 100644 index 000000000..88a11c4aa --- /dev/null +++ b/app/models/cx_collection_detail_upload.rb @@ -0,0 +1,4 @@ +class CxCollectionDetailUpload < ApplicationRecord + belongs_to :user + belongs_to :cx_collection_detail +end diff --git a/app/models/service_provider.rb b/app/models/service_provider.rb index d573c6f14..63702c395 100644 --- a/app/models/service_provider.rb +++ b/app/models/service_provider.rb @@ -42,7 +42,7 @@ def self.to_csv portfolio_manager_email ] - ServiceProvider.active + ServiceProvider .includes(:organization) .order('organizations.name', :name).each do |provider| csv << [ diff --git a/app/models/website.rb b/app/models/website.rb index 4e7c75db7..c2ba61b60 100644 --- a/app/models/website.rb +++ b/app/models/website.rb @@ -191,7 +191,7 @@ def validate_domain_format end def validate_domain_suffix - errors.add(:domain, 'domain must have a valid suffix, like .gov or .mil') unless domain.present? && APPROVED_DOMAINS.any? { |word| domain.end_with?(word) } + errors.add(:domain, 'domain must have a valid suffix, like .gov or .mil') unless domain.present? && APPROVED_WEBSITE_DOMAINS.any? { |word| domain.end_with?(word) } end def site_scanner_json_request diff --git a/app/serializers/service_serializer.rb b/app/serializers/service_serializer.rb index 8de965232..728944a78 100644 --- a/app/serializers/service_serializer.rb +++ b/app/serializers/service_serializer.rb @@ -19,8 +19,6 @@ class ServiceSerializer < ActiveModel::Serializer :transactional, :notes, :hisp, - :department, - :bureau, :service_abbreviation, :service_slug, :service_owner_email, diff --git a/app/views/admin/cx_collection_details/_form.html.erb b/app/views/admin/cx_collection_details/_form.html.erb index 65ae955cb..a2ec1aaea 100644 --- a/app/views/admin/cx_collection_details/_form.html.erb +++ b/app/views/admin/cx_collection_details/_form.html.erb @@ -1,4 +1,4 @@ -<%= form_with(model: cx_collection_detail, url: (cx_collection_detail.persisted? ? admin_cx_collection_detail_path(cx_collection_detail) : admin_cx_collection_details_path) ) do |form| %> +<%= form_with(model: cx_collection_detail, url: (cx_collection_detail.persisted? ? admin_cx_collection_detail_path(cx_collection_detail) : admin_cx_collection_details_path), class: "usa-form") do |form| %> <% if cx_collection_detail.errors.any? %>
+ Creating this Collection Detail will allow you to submit the corresponding survey data as a CSV file on the next page. + You may still edit after you have created the collection detail. +
+<%= form.submit class: "usa-button" %>
diff --git a/app/views/admin/cx_collection_details/edit.html.erb b/app/views/admin/cx_collection_details/edit.html.erb index 256da82e4..a93cd016d 100644 --- a/app/views/admin/cx_collection_details/edit.html.erb +++ b/app/views/admin/cx_collection_details/edit.html.erb @@ -3,7 +3,7 @@ <% end %>
- <%= link_to admin_cx_collection_path(@cx_collection_detail.cx_collection) do %>
+ <%= link_to admin_cx_collection_detail_path(@cx_collection_detail) do %>
Back to CX collection detail
<% end %>
@@ -14,13 +14,13 @@
cx_collections: @cx_collections %>
+
-
Channel: - <%= @cx_collection_detail.transaction_point %> + <%= @cx_collection_detail.channel %>
@@ -52,6 +52,9 @@ Service stage: <% if @cx_collection_detail.service_stage %> <%= link_to(@cx_collection_detail.service_stage.name, admin_service_service_stage_path(@cx_collection_detail.service_stage)) || 'Select a Service Stage' %> + <% else %> + <%= link_to "Service Stage", admin_service_service_stages_path(@cx_collection_detail.service) %> + is not defined. <% end %> @@ -78,12 +81,6 @@ <%= @cx_collection_detail.omb_control_number %> -- Federal register url: - <%= @cx_collection_detail.federal_register_url %> - -
-Reflection text: <%= @cx_collection_detail.reflection_text %> diff --git a/app/views/admin/cx_collection_details/upload.html.erb b/app/views/admin/cx_collection_details/upload.html.erb index 5001ef776..6a107a060 100644 --- a/app/views/admin/cx_collection_details/upload.html.erb +++ b/app/views/admin/cx_collection_details/upload.html.erb @@ -11,14 +11,30 @@ Upload CX Collection Data <% end %> -
+
+ Before you attach your survey dataset below.
+
+ Please review this checklist and make sure the excel meet these formatting requirements:
+
+ Is it named correctly. Examples -
+
+ Is it a CSV formatted file?
+
+ Are the 14 columns?
+
+ Is each row a response to the feedback survey.
+ Does it generally look like
+ <%= link_to "this", "https://github.com/gsa/touchpoints/wiki/" %>?
<%= form.submit class: "usa-button" %>
<% end %> + +<% uploads = CxCollectionDetailUpload.where(cx_collection_detail_id: @cx_collection_detail.id) %> +User | +File path | +Size | +Timestamp | ++ |
---|---|---|---|---|
+ <%= upload.user.email %> + | ++ <%= link_to(upload.key, upload.key) %> + | ++ <%= upload.size %> + | ++ <%= upload.created_at %> + | ++ <%= link_to "Process responses file", admin_cx_collection_detail_path(@cx_collection_detail), method: :post %> + | +
+ After creating this collection, you can add survey results in the following screen. +
+<%= form.submit class: "usa-button" %>
diff --git a/app/views/admin/cx_collections/show.html.erb b/app/views/admin/cx_collections/show.html.erb index 966c9b74e..9cbc43649 100644 --- a/app/views/admin/cx_collections/show.html.erb +++ b/app/views/admin/cx_collections/show.html.erb @@ -89,8 +89,8 @@- Add a Service detail reporting page for each touchpoint available within a HISP service. + Add a reporting page for each touchpoint available within a service.
Service | +Transaction point | +Channel | +
---|---|---|
+ <%= cx_collection.try(:service).try(:name) %> + | ++ <%= link_to cx_collection.transaction_point, admin_cx_collection_detail_path(cx_collection) %> + | ++ <%= cx_collection.channel %> + | +
<%= link_to new_admin_cx_collection_detail_path(collection_id: @cx_collection.id), class: "usa-button usa-button--outline" do %> - Add a Service to report on + Add detail record <% end %>
<% end %> @@ -147,11 +165,8 @@
- <%= label_tag :collection_status, nil, class: "usa-label" %>
-
<%= render 'components/collection_status_tag', collection: @cx_collection %>
diff --git a/app/views/admin/forms/delivery.html.erb b/app/views/admin/forms/delivery.html.erb index 2a4e26cd4..b82eb41da 100644 --- a/app/views/admin/forms/delivery.html.erb +++ b/app/views/admin/forms/delivery.html.erb @@ -65,7 +65,7 @@
-
+
<%= link_to admin_hisps_path(format: :csv), class: "usa-button usa-button--outline" do %> - Download as hisps.csv + Download hisps.csv <% end %> - used on performance.gov/cx
diff --git a/app/views/admin/service_providers/show.html.erb b/app/views/admin/service_providers/show.html.erb index 9f6628f44..c8d79b984 100644 --- a/app/views/admin/service_providers/show.html.erb +++ b/app/views/admin/service_providers/show.html.erb @@ -15,19 +15,20 @@ <% end %> -<% if @service_provider.inactive? %> -- This Service Provider is no longer active. -
-+ This Service Provider is no longer active. +
+@@ -99,21 +100,6 @@ <%= @service_provider.portfolio_manager_email %>
-- Department: - <%= @service_provider.department %> -
- -- Department abbreviation: - <%= @service_provider.department_abbreviation %> -
- -- Bureau: - <%= @service_provider.bureau %> -
-Slug: <%= @service_provider.slug %> diff --git a/app/views/admin/service_stages/index.html.erb b/app/views/admin/service_stages/index.html.erb index b098ae4f9..c616ecd61 100644 --- a/app/views/admin/service_stages/index.html.erb +++ b/app/views/admin/service_stages/index.html.erb @@ -2,7 +2,7 @@ Service Stages for: <%= @service.name %> <% end %>
- <%= link_to admin_services_path(@service) do %> + <%= link_to admin_services_path do %> Back to Services <% end %> diff --git a/app/views/admin/services/_form.html.erb b/app/views/admin/services/_form.html.erb index a061339a3..3a6392613 100644 --- a/app/views/admin/services/_form.html.erb +++ b/app/views/admin/services/_form.html.erb @@ -239,16 +239,6 @@
- Description
+ Short Description
- <%= @service.description? ? to_markdown(@service.description) : "---" %>
+ <%= @service.short_description? ? to_markdown(@service.short_description) : "---" %>
- Short Description
+ Description
- <%= @service.short_description? ? to_markdown(@service.short_description) : "---" %>
+ <%= @service.description? ? to_markdown(@service.description) : "---" %>
Service type
@@ -172,23 +171,19 @@
- Service Homepage URL
-
- <%= link_to @service.homepage_url, @service.homepage_url %>
+ <%= label_tag :homepage_url, "Service Homepage URL", class: "usa-label" %>
+ <%= text_field_tag :homepage_url, @service.homepage_url, class: "usa-input", disabled: true %>
- Service URL
-
- <%= link_to @service.url, @service.url %>
+ <%= label_tag :url, "Service URL", class: "usa-label" %>
+ <%= text_field_tag :url, @service.url, class: "usa-input", disabled: true %>
- What is the estimated annual customer volume?
-
- <%= @service.estimated_annual_volume_of_customers %>
+ <%= label_tag :estimated_annual_volume_of_customers, "What is the estimated annual customer volume?", class: "usa-label" %>
+ <%= text_field_tag :estimated_annual_volume_of_customers, @service.estimated_annual_volume_of_customers, class: "usa-input", disabled: true %>
- Notes
-
+ <%= label_tag :notes, nil, class: "usa-label" %>
<%= to_markdown(@service.notes) || "empty" %>
- Department
-
- <%= @service.department %>
-
- Bureau
-
- <%= @service.bureau %>
-
Service abbreviation
-
+
diff --git a/app/views/components/_collection_status_tag.html.erb b/app/views/components/_collection_status_tag.html.erb
index ea3981d00..7d20af002 100644
--- a/app/views/components/_collection_status_tag.html.erb
+++ b/app/views/components/_collection_status_tag.html.erb
@@ -1,3 +1,3 @@
-
+
<%= collection.aasm_state %>
diff --git a/app/views/components/forms/edit/_builder.html.erb b/app/views/components/forms/edit/_builder.html.erb
index 673151f87..ecdd00221 100644
--- a/app/views/components/forms/edit/_builder.html.erb
+++ b/app/views/components/forms/edit/_builder.html.erb
@@ -55,9 +55,13 @@
-
-