Commit Graph

197 Commits

Author SHA1 Message Date
Leo Hemsted
f83910599c remove option for branding to sometimes not show search
it wouldn't show search if there were under a certain amount of letter
or email branding options - however we know there will always be more
than that amount so lets remove some complexity.

Also, rename the SearchTemplatesForm because it can search anything -
it just prompts you to search by name is all.
2019-02-07 11:39:23 +00:00
Pea Tyczynska
64aff0ba05 Remove choose_postage feature flag so everyone can choose postage 2019-02-05 17:21:15 +00:00
Pea Tyczynska
20ae200de9 Remove choosing postage from edit template content flow 2019-02-04 14:45:33 +00:00
Pea Tyczynska
db5378bac2 Edit template postage from a separate view 2019-02-04 14:45:33 +00:00
Chris Hill-Scott
206a7806d4 Allow users to navigate folders when copying
We already have a pattern for navigation folders and searching for
templates – let’s use it for the copy page too. And I reckon we can
represent services as folders if the user has multiple services they
could copy a template from.
2019-01-08 12:21:32 +00:00
Katie Smith
3cf36c592f Change move folder form to not have default radio btn and to show hint
Updated the move folder form to add a hint for the radio button for the
current folder saying 'current folder'. This hint does not get shown if
you are viewing all folders (so you are not inside a folder).

Also stopped a default radio button from being selected on the form.
2019-01-03 16:51:47 +00:00
Tom Byers
3c4a186a25 Display the template folders nested on the move template/folder form
Before, all the folders were displayed in a list which was ordered but
not nested. This changes the move form to nest the template folders.
2019-01-03 16:51:47 +00:00
Pea (Malgorzata Tyczynska)
5d99b2d2f6 Merge pull request #2616 from alphagov/choose_postage
Choose and display postage on template
2019-01-02 15:39:15 +00:00
Pea Tyczynska
50935e79ca Test mock_update_service_template called with right args 2018-12-21 17:18:18 +00:00
Pea Tyczynska
695f1150b5 service_default postage resets template postage to None 2018-12-19 12:24:02 +00:00
Pea Tyczynska
687e9e5866 Change postage while editing template 2018-12-18 18:22:03 +00:00
Pea Tyczynska
a60d269900 Show postage on template page if service can choose postage and
postage set on the template.
2018-12-18 15:52:53 +00:00
Leo Hemsted
94da05ebc4 only catch HTTPError
also add tests
2018-12-17 15:25:27 +00:00
Leo Hemsted
6f8dc7e6d3 fix being able to add template without selecting a radio button 2018-12-17 15:25:27 +00:00
Leo Hemsted
180654046a flash error message when moving folder to itself 2018-12-17 15:25:27 +00:00
Leo Hemsted
97f663f99e change operations to kebab-case
so that they better align with the front-end, where they'll be used in
data attributes. Also, making the kebab case is nice because it doesn't
give favouritism to either JS or python naming conventions
2018-12-04 16:41:47 +00:00
Chris Hill-Scott
4c148c7c23 Look at other services only if no templates
This saves one call to the API or Redis in the common case where the
current service does have templates.

This is because `any()` evaluates all expressions before running,
whereas `or` will only evaluate the second expression if the first
returns `False`-y.
2018-12-03 17:38:38 +00:00
Chris Hill-Scott
10100e51b6 Let users add new template from the choose page
Since we’re letting users add new folders directly from the choose page
it makes sense that they should also be able to add templates from
there.

This resolves the problem we saw in user research where people found it
hard to know where to go to add a new folder when they were all behind
one green button.
2018-12-03 17:38:37 +00:00
Leo Hemsted
d07de58cd9 split out new folder into two separate forms
move_to_new_folder and add_new_folder are now two separate html fields
and form items - so that we can more easily manipulate them on the
front end
2018-11-28 14:14:20 +00:00
Leo Hemsted
690585c017 move add new folder and move to folder into one dialog box
this lets us combine the two actions to create "Move to a new folder".
If the user hits enter rather than clicking a button, there is a hidden
submit button that (for now) prevents them from taking any action.
A future commit will try and understand what the user might be doing
based on which fields are populated/selected.
2018-11-28 14:14:20 +00:00
Leo Hemsted
9dec9ed626 add new folder from the choose template page 2018-11-28 14:14:20 +00:00
Chris Hill-Scott
ee991d0142 Allow any sub-items to be moved from a folder
Since you can now see them when searching you should also be able to
select and move them. Which means that they needed to be included in
the `Form`’s list of possible choices of things to move.
2018-11-23 16:29:21 +00:00
Chris Hill-Scott
82d8207612 Refactor template list logic into one place
The Jinja template for the ‘choose templates’ page is now pulling in
data from a lot of diparate places in order to work out what to show. As
we add more logic about what to show (in order to make the live search
work) it’s going to get harder to have all this logic in the Jinja
template.

This commit refactors it back into Python where we have more language
features for managing complex logic.

It’s a bit weird to call this file a model, in that it’s dealing with
some presentational logic, rather than just data. Conceptually it’s more
like a view model[1].

1. https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel
2018-11-23 14:00:40 +00:00
Chris Hill-Scott
8f2547b7a7 Merge pull request #2518 from alphagov/delete-folder-refinements
Make some refinements to the delete folder journey
2018-11-20 14:53:05 +00:00
Chris Hill-Scott
c52dc8e972 Merge pull request #2488 from alphagov/copy-template-name
Put ‘copy’ at end of new template name
2018-11-20 14:14:09 +00:00
Chris Hill-Scott
400c25e15f Make search box appear based on all templates
We reckon it’s jarring to have the search box appear and disappear as
you navigate through the folders.

Instead it should appear whenever your service has more things
(templates or folders) than you can easily keep in your head (let’s go
with 7 for now).

This keeps the bahviour the same for current services that don’t have
any folders.
2018-11-20 12:29:39 +00:00
Chris Hill-Scott
4bb7519d9e Refine empty folder message
If the folder is completely empty, always say ‘This folder is empty’, so
we don’t suggest that you can click around and find other things.

If the current view is filtered, but there are templates available in
other filters, say ‘There are no text message templates in this folder’
to make it clear why you can’t see anything.
2018-11-20 12:29:39 +00:00
Chris Hill-Scott
72159ff6e3 Fix search box show/hide logic
The search box should only be shown if there are too many items to
quickly scan on the page. This number is judged to be 7; see the
original PR for more context:
https://github.com/alphagov/notifications-admin/pull/1195

This commit makes that logic work in the world of folders, by explicitly
counting the templates shown on the screen, not all the templates a
service has (which may be spread across multiple folders).
2018-11-20 12:29:38 +00:00
Chris Hill-Scott
77529f4191 Redirect to parent after deleting a folder
You lose your place if, after deleting something that’s deeply nested,
you return to the root level.
2018-11-20 11:31:31 +00:00
Chris Hill-Scott
4bccce4772 Refactor how we get template folder on delete page
It’s a bit obtuse to look it up from the `template_folder_path`,
especially now that we have a specific method on the model that does
the exact thing.
2018-11-20 11:31:31 +00:00
Chris Hill-Scott
13a962b6bd Don’t hide the rename form on delete
It’s weird that this page changes when you click delete – it looks like
you’re going to a different page.

It should feel like you’re on the same page, just with the confirmation
message.

The problem we had before is that the rename form would `POST` to
`…/delete`, which would then delete the template instead of updating
its name.

We can fix this by explicitly setting the `action` attribute on the
rename form to always post to `…/manage`, even if the user is currently
looking at the `…/delete` page.
2018-11-20 11:27:19 +00:00
Pea (Malgorzata Tyczynska)
754ae743ca Merge pull request #2506 from alphagov/fix_delete_folder_button_breadcrumb
Fix breadcrumbs on manage_template_folder page
2018-11-19 10:49:28 +00:00
Pea Tyczynska
69ada9a312 Hide name changing functionality when in folder deletion mode
Also add 'back' link
Also start work on additional tests for folder deletion flow
2018-11-16 15:58:18 +00:00
Pea Tyczynska
7f4580cb82 Update content following review 2018-11-16 15:15:40 +00:00
Pea Tyczynska
4373987786 Fix breadcrumbs on manage_template_folder page 2018-11-16 11:21:27 +00:00
Pea Tyczynska
a43e6a8885 Make deletion confirmation banner messages consistent across our app
Also introduce a way to provide context to a banner / flash message
that will be displayed in plain font style.
2018-11-16 11:05:52 +00:00
Pea Tyczynska
f54c2c0dc7 Update content of deletion messages following review 2018-11-15 10:51:44 +00:00
Pea Tyczynska
2a1328a17e Check if folder is empty before calling the api 2018-11-15 10:51:44 +00:00
Pea Tyczynska
d61022e3e6 Add flash messages and error handling to delete folder flow 2018-11-15 10:51:44 +00:00
Pea Tyczynska
91d309816b Build delete folder endpoint that calls template_folders_api_client 2018-11-15 10:51:44 +00:00
Pea Tyczynska
4520065af4 Add a delete folder link to manage folder page and basic delete
endpoint
2018-11-15 10:51:44 +00:00
Chris Hill-Scott
666381e23d Pre-populate rename folder form with current name
Often people will be editing the existing name, not changing it
completely.

This matches what we do when someone wants to rename their template or
service.
2018-11-13 16:05:05 +00:00
Chris Hill-Scott
0888bdf5d4 Put ‘copy’ at end of new template name
In multiple user research sessions we’ve noticed people edit the
auto-generated template name to put something at the end of it.

This is fiddly because of the quotes we put around the name:
> Copy of ‘Exiting template’

It also means that if they keep our prefix then the template doesn’t
sort alongside the one it’s replacing.

This commit changes the name of copied templates to better match the
behaviour our users are showing.

Also adds a bit of auto numbering, just as a nice detail.
2018-11-13 15:25:02 +00:00
Chris Hill-Scott
045a4bb7f1 Swap order of arguments to get_template_folders
So that the order is the same as the arguments passed to `get_templates`
2018-11-13 12:29:57 +00:00
Chris Hill-Scott
10fe78bb31 Only show relevant folders
A folder is relevant if it, or any of its descents contain a template of
the kind you’re looking for.

If you’re not filtering by template type then you should see all
folders.
2018-11-13 11:10:20 +00:00
Pea Tyczynska
565d29ed43 Add a new endpoint for managing a folder, use it to rename folder
- Add a GET / POST view: manage template folder
- Add a template for that view, where a user can rename their
folder
- Add an API client method for updating a folder

- Test the new feature, including the test that service without
permissions cannot manage a folder
2018-11-13 10:38:56 +00:00
Chris Hill-Scott
3cac9ac5cc Rename method to be more explicit 2018-11-12 09:21:47 +00:00
Chris Hill-Scott
40f676d3ad Move labels of template types out of model
The model shouldn’t have to care about how things are labelled in the
UI, it should only care about the data.
2018-11-12 09:16:14 +00:00
Chris Hill-Scott
cdb5b47c4d Post to the API when moving folders and templates
This commit adds logic to:
- take the list of selected folders and templates
- split it into two lists (of folders and templates)
- `POST` that data to the API, to effect the movement of said folders
  and templates

I’ve tried to architect it in such a way that we can easily add more
template ‘operations’ in the future, as we add more forms to the choose
template page.
2018-11-12 08:37:46 +00:00
Chris Hill-Scott
980d66bdaa Add helper function for filtering templates by type
This code was making the view method more cluttered than it needed to
be. Moving it will help make space for the `post` request handling code.
2018-11-12 08:37:46 +00:00