ACQPRO final squash
authorGalen Charlton <gmc@equinoxinitiative.org>
Tue, 3 Mar 2020 23:18:55 +0000 (18:18 -0500)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 2 Sep 2020 17:09:39 +0000 (13:09 -0400)
commit6beb3ed627d57362fd10066531b94c9a2aca9c92
tree748132e308205060330cc5ae614968a22919f13d
parentcac9c6f94c956ad590b0aacc5ab7cff82d9a32bd
ACQPRO final squash

ACQPRO squash #11

ACQPRO squash #10

ang providers: create base modules and components

acq providers: allow search form and details view to share a tab

start work on AcqProviderSearch

ang provider search form component

fix thinko

more work on hooking up search service and search form

TODO:
- contact name searching
- get the org-family-selector to show the starting value
  of the WS OU
- refactor how form parameters are managed?

WIP: complex, cross-table searches

Require classes for search; be very verbose for typescript

make ng lint happier

toward summary pane

add summary pane component to module and a missing decorator

initial stab at provider record service

set active provider ID when a row is selected

Note - not changing the route for now

address and contact stubs

actually push out initial version of provider record service

hook up contact and provider components to record service

add contact and address components to their tabs

refresh record service upon ID change

provider address modal

provider record service updates

- fetch() now returns a promise
- added refreshCurrent();
- added batchUpdate()

update provider address component to reflect updates to provider record service

ACQPRO squash #8

default to valid == true when creating new provider addresses

contacts modal

update provider contacts component to reflect updates in provider record service

provider record service: add currentProviderId

This works around some race conditions fetching the current
provider upon initialization; we should fix this so that
current() can account for in-flight initialization or
refreshes.

add provider invoices component

provider purchase orders component

ACQPRO squash #7

hide provider column by default in contact and address grids...

... but if the user insists on displaying that column, redundantly,
flesh it so that the code is displayed

move provider search form

The provider search form is now outside of the tabset and its
visibility is controlled by a button. Also, clicking on a row
on the search results will now hide the search form.

after selecting a provider from the search form, update the route

hide the provider info tabset if there's no selected provider

add a bit of separation

anq holdings component

fix adding new holdings subfield mappings

ACQPRO squash #12

new provder modal

start work on provider details tab

TODO: teach the record editor how to do a two-column layout
TODO: add delete button

Attributes tab

XXX: Stub function to allow compilation

toggle for provider summary pane

stretch provider UI when summary is collapsed

also hide Delete Provider button when collapsed to give more opportunity for stretch

use materials icons expand_less/expand_more

contact addresses component

ACQPRO squash #6

ensure that provider contact addresses component gets found before reloading its grid

Refresh contact addresses from updated service data

basic EDI account management

update summary after editing provider

add grid for displaying EDI messages for a selected account

adjust display of URL in summary pane

* hyperlink URL
* do not include an empty anchor if no URL is supplied

summary: display active flag using eg-bool

always pass through the state of the 'active' field on the search form

add placeholders for the eg-comboboxes on the search form

tweak display of contact role in sidebar

add field help to the EDI account modal

add a route resolver to ensure that the provider has been fetched when linking by ID

update summary when contacts are edited

Make provider addresses, contacts, and contact addresses filterable

add 'View EDI Messages' grid toolbar button

implement set default view button

fix

display provider name and code even when summary is hidden

use experimental remain open on error

ACQPRO squash #5

WIP: edit tag on holdings tab

Alphabetize the Holdings Definition dropdown (32)

Relabel holdings definitions for consistency (26)

Fix thinko to allow Currency Type searching (30)

Direct provider (and shipper) links in search and provider interfaces at the new Angular UI (24)

Fix thinko with non-pcrud grid paging (31)

adjust links to providers so that user-specified default tab is displayed

add human-friendly labels for the name column in the holdings definitions grid

improve handling of currency type (LH#30)

- display currency label in the summary
- fix ability to edit it in the details fm-editor
- preload the currency drop-down

improve display of the EDI Default field (LH#23)

flesh provider in the provider EDI account grid (LH#23)

(though this is a bit redundant since the list of EDI accounts
 displayed is restricted to the ones owned by the current
 provider)

add grid config to ang

ACQPRO squash #4

tweak columns in addresses tab (LH#25)

- set a default column order
- don't display the ID column by default

ACQPRO squash #3

tweak provider contact addresses

Following LH#25

change input for Active? on search form to a tri-value select (LH#16)

fix styling of clear form button

ACQPRO squash #2

sort by provider name by default (LH#14)

submit search form immediately (LH#14)

TODO: see if we can defer this if all we've done is gone
      directly to a specific provider

immediately run search only of search form starts off being visble (LH#14)

LH#38: add mechanism to detect if provider can be deleted

LH#6: change "Clear Form" => "Reset Form"

LH#41: add column to EDI account table to indicate which account is the provider's default

LH#12 various styling improvements

- clean up how the hide search form and new provider column flows
- add a bit of padding below the Set Default View button
- change the label of the Owning Library search input to Owner
- keep the Owner label and OU search input on same line for narrower screens

LH#8 turn on asyncSupportsEmptyTermClick for some fields in search form

Specifically: EDI Default and Currency

LH#8 preload EDI default default claim policy on provider create/update forms

LH#1: match responsive breakpoint of summary pane and main page

LH#1 tweaks to display of search form and summary

- search form now displays above the summary and vendor
- Delete Provider button now only displayed where there is an active provider
- no traces of the summary pane appear when entering the interface fresh

improve record retrieval and refreshes

- reduce the number of redundant fetches
- use subscriptions to inform child components when
  they need to refresh themselves

update PO and LI components to use AttrDefsService

wire up functionality for primary contact

don't show the primary contact field on the create modal

send toast and navigate away upon deleting provider

quell some console noise

clear search form and redo default search if same-URL-navigated

account for staff users who do not have the ADMIN_PROVIDER permission

TODO: make the Delete Provider and New Provider buttons be deactivated
      or not appear as relevant.

LH#15: tweaks to primary contact functionality

- added unset as primary action
- fixed confirmation modals
- more selectively enable and disable the set and unset actions

LH#9: tweak click actions on provider results form

- single click: retrieve provider but do not hide search form
- double click: retrieve provider and hide search form

LH#9: add explicit 'Retrieve Provider' action

LH#4: add sticky expand/collapse of search form

LH#21: tweak holding tag form

LH#17: warn if attempting to leave provider edits in flight

acqpro SQUASH #1

avoid glitch in low-permission mode

more tweaks for low permissions scenarios

LH#29: ensure that we don't search for providers that we can't retrieve

handle permissions coming in late

LH#27: navigate to search page if given direct link to provider that cannot be retrieved
37 files changed:
Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider-search-form.component.css [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider-search-form.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider-search-form.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider-search.service.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/acq-provider.module.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-addresses.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-attributes.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-attributes.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contact-addresses.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contact-addresses.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-contacts.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-details.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-edi-accounts.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-edi-accounts.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-holdings.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-holdings.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-invoices.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-invoices.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-purchase-orders.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-record.service.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-results.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/provider-results.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/resolver.service.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/routing.module.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/summary-pane.component.css [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/summary-pane.component.html [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/provider/summary-pane.component.ts [new file with mode: 0644]
Open-ILS/src/eg2/src/app/staff/acq/routing.module.ts
Open-ILS/src/eg2/src/app/staff/acq/search/invoice-results.component.html
Open-ILS/src/eg2/src/app/staff/acq/search/lineitem-results.component.html
Open-ILS/src/eg2/src/app/staff/acq/search/purchase-order-results.component.html