CMSgov/dpc-app

View on GitHub
dpc-admin/app/views/organizations/show.html.erb

Summary

Maintainability
Test Coverage

<% title @organization.name %>

<div class="ds-l-container ds-u-padding-x--0">
  <div>
    <%= link_to organizations_path, class: "utility-button" do %>
      <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <use xlink:href="/admin/assets/solid.svg#arrow-left"></use>
      </svg>
      Organizations index
    <% end %>

  </div>

  <section class="ds-u-display--flex ds-u-justify-content--between ds-u-align-items--center">
    <h1 class="ds-u-font-size--title ds-u-font-weight--normal ds-u-margin--0"><%=  @organization.name %></h1>
    <div>
      <%= link_to "Edit organization", edit_organization_url(@organization), class: "ds-c-button ds-c-button--primary", data: { test: "edit-link" } %>
    </div>
  </section>

  <section>
    <div class="ds-u-color--success">
      <% if @organization.reg_org.present? && @organization.reg_org.enabled == true %>
        <svg class="icon ds-u-margin-right--1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
          <use xlink:href="/admin/assets/solid.svg#database"></use>
        </svg>
        Enabled in API
      <% end %>
    </div>
  </section>

  <section class="box box--flex">
    <div class="box__content">
      <h2 class="box__heading">Organization info</h2>

      <div class="ds-u-margin-bottom--1">
        <svg class="icon ds-u-margin-right--1 ds-u-color--muted" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
          <use xlink:href="/admin/assets/solid.svg#user-alt"></use>
        </svg>
        <%= @organization.name %>
      </div>
      <div class="ds-u-margin-bottom--1">
        <svg class="icon ds-u-margin-right--1 ds-u-color--muted" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
          <use xlink:href="/admin/assets/solid.svg#envelope"></use>
        </svg>
        <%= @organization.organization_type.titleize %>
      </div>
      <div class="ds-u-margin-bottom--1">
        <svg class="icon ds-u-margin-right--1 ds-u-color--muted" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
          <use xlink:href="/admin/assets/solid.svg#users"></use>
        </svg>
        <%= @organization.num_providers %> providers
      </div>

      <div class="ds-u-margin-bottom--1">
        <% if @organization.prod_sbx? %>
          <label class="ds-u-margin-right--1 ds-u-color--muted">NPI (auto-generated)</label>
        <% elsif  %>
          <label class="ds-u-margin-right--1 ds-u-color--muted">NPI</label>
        <% end %>
        <%= @organization.npi %>
      </div>

      <div class="ds-u-margin-bottom--1">
        <label class="ds-u-margin-right--1 ds-u-color--muted">Vendor</label>
        <%= @organization.vendor %>
      </div>

      <div class="ds-u-margin-top--2 ds-u-margin-bottom--1">
        <div class="ds-u-margin-bottom--2" data-test="org-tags">
          <h2 class="box__heading">Tags</h2>
          <% if @organization.taggings.count == 0 %>
            <p>No tags have been assigned to <%= @organization.name %>.</p>
          <% else %>
            <% @organization.taggings.each do |tagging| %>
              <%= link_to(tagging_url(tagging), class: "site-pills__item__button dashboard__pills--delete", method: :delete, data: {test: "delete-tag-#{tagging.id}"}) do %>
                <span class="site-pills__item site-pills__item--small">
                  <%= tagging.tag_name %>
                </span>
              <% end %>
            <% end %>
          <% end %>
        </div>

        <div>
          <div class="ds-c-label ds-u-margin-top--0">New tag</div>
          <% if @tags.count == 0 %>
            <p>There are no tags available.</p>
          <% else %>
            <% @tags.each do |tag| %>
              <div class="site-pills__item__button dashboard__pills--add">
                <%= form_for Tagging.new, url: taggings_path, html: { method: :post } do |f| %>
                  <%= f.hidden_field :tag_id, value: tag.id %>
                  <%= f.hidden_field :taggable_id, value: @organization.id %>
                  <%= f.hidden_field :taggable_type, value: 'Organization' %>
                  <%= f.submit tag.name, class: "site-pills__item site-pills__item--small", data: {test: "add-tag-#{tag.id}"} %>
                <% end %>
              </div>
            <% end %>
          <% end %>
        </div>
      </div>
    </div>

    <div class="box__content">
      <h2 class="box__heading">Address</h2>
      <div>
        Use: <%= @organization.address_use.titleize %>
      </div>
      <div>
        Type: <%= @organization.address_type.titleize %>
      </div>
      <div>
        <%= @organization.address_street %>
      </div>
      <div>
        <%= @organization.address_street_2 %>
      </div>
      <div>
        <%= @organization.address_city %>
      </div>
      <div>
        <%= @organization.address_state %>
      </div>
      <div>
        <%= @organization.address_zip %>
      </div>
    </div>
  </section>
<div>

<section class="box">
    <div class="box__content">
      <% if  @organization.reg_org.present? && @organization.reg_org.enabled == true %>
        <h2 class="box__heading">API ID: <%= @organization.registered_organization.api_id %></h2>
        <h4>FHIR Endpoint</h4>
        <div class="ds-u-margin-bottom--1">
          API Reference: <%= @organization.registered_organization.api_endpoint_ref %>
        </div>
        <div class="ds-u-margin-bottom--1">
          Name: <%= @organization.registered_organization.fhir_endpoint.name %>
        </div>
        <div class="ds-u-margin-bottom--1">
          URI: <%= @organization.registered_organization.fhir_endpoint.uri %>
        </div>
        <div class="ds-u-margin-bottom--1">
          Status: <%= @organization.registered_organization.fhir_endpoint.status.titleize %>
        </div>

        <%= link_to "Edit", edit_organization_registered_organization_path(
          organization_id: @organization.id,
          id: @organization.registered_organization.id
          ) %>
        <%= link_to "Disable Organization", organization_registered_organization_enable_or_disable_url(
          registered_organization_id: @organization.registered_organization.id,
          organization_id: @organization.id), data: { test: 'disable-org' } %>
      <% else %>
        <h2 class="box__heading"><%= @organization.name %> is not enabled in the API</h2>
        <p class="ds-text--lead ds-u-measure--wide ds-u-margin-top--2">Users cannot create client tokens or add public keys until the organization is enabled in the API.</p>
        <% if @organization.reg_org.nil? %>
          <%= link_to 'Enable Organization',
                      new_organization_registered_organization_path(organization_id: @organization.id),
                      data: { test: 'enable-org' } %>
        <% else %>
          <%= link_to 'Enable Organization',
                      organization_registered_organization_enable_or_disable_url(
                        registered_organization_id: @organization.registered_organization.id,
                        organization_id: @organization.id),
                      data: { test: 'enable-org' } %>
        <% end %>
      <% end %>

      <div>
        <% if @organization.reg_org %>
          <% if @organization.registered_organization.public_keys.count == 0 %>
            <h4>There are no Public Keys currently associated with this organization.</h4>
          <% else %>
          <div class="usa-accordion usa-accordion--bordered ds-u-margin-top--2">
            <h2 class="usa-accordion__heading">
              <button class="usa-accordion__button" aria-expanded="false" aria-controls="a1">
                Public Keys
              </button>
            </h2>
            <div id="a1" class="usa-accordion__content">
              <ul class="credentials">
                <% @organization.registered_organization.public_keys.each do |key| %>
                  <li class="credential">
                    <div class="credential__body">
                      <h3 class="credential__name">
                        <%= key['label'] %>
                      </h3>
                      <div class="credential__meta ds-u-color--base">
                        ID: <%= key['id'] %>
                      </div>
                    </div>
                  </li>
                <% end %>
              </ul>
            </div>
            </div>
          <% end %>
        <% end %>
      </div>
    </div>
</section>

<section class="box">
  <%= render 'internal_user_search' %>
</section>

<section class="box">
    <div class="box__content">
      <h2 class="box__heading">Users</h2>
      <% @organization.users.each do |user| %>
        <div class="module-container">
          <div class="module-container__id">
            <%= user.id %>
          </div>
          <div class="module-container__primary">
            <h2 class="module-container__heading">
              <%= link_to user.name, user_url(user) %>
            </h2>
          </div>
          <div class="module-container__button">
            <%= form_for @organization, url: organization_add_or_delete_url(@organization, user), method: :delete do |f| %>
              <%= f.hidden_field :id, value: user.id %>
              <%= f.submit "Remove", class: "ds-c-button ds-c-button--danger" %>
            <% end %>
          </div>
        </div>
      <% end %>
    </div>
</section>

<section class="ds-u-margin--2">
  <div class="ds-l-row ds-u-justify-content--center">
    <%= link_to "Delete organization", organization_url(@organization), data: { confirm: 'Deleting this organization will not delete the organization, client tokens, or public keys in the API.' }, method: :delete, class: "ds-u-color--error ds-u-text-align--center" %>
  </div>
</section>