mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-03 13:18:57 -04:00
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
This commit is contained in:
@@ -50,7 +50,7 @@
|
||||
|
||||
// gross hack - pretend we're in the choose actions state, then pretend a checkbox was clicked to work out
|
||||
// whether to show zero or non-zero options. This calls a render at the end
|
||||
this.currentState = 'nothingSelectedButtons';
|
||||
this.currentState = 'nothing-selected-buttons';
|
||||
this.templateFolderCheckboxChanged();
|
||||
});
|
||||
|
||||
@@ -67,12 +67,12 @@
|
||||
this.templateFolderCheckboxChanged = function() {
|
||||
let numSelected = this.countSelectedCheckboxes();
|
||||
|
||||
if (this.currentState === 'nothingSelectedButtons' && numSelected !== 0) {
|
||||
if (this.currentState === 'nothing-selected-buttons' && numSelected !== 0) {
|
||||
// user has just selected first item
|
||||
this.currentState = 'itemsSelectedButtons';
|
||||
} else if (this.currentState === 'itemsSelectedButtons' && numSelected === 0) {
|
||||
this.currentState = 'items-selected-buttons';
|
||||
} else if (this.currentState === 'items-selected-buttons' && numSelected === 0) {
|
||||
// user has just deselected last item
|
||||
this.currentState = 'nothingSelectedButtons';
|
||||
this.currentState = 'nothing-selected-buttons';
|
||||
}
|
||||
|
||||
this.render();
|
||||
@@ -91,15 +91,15 @@
|
||||
|
||||
this.nothingSelectedButtons = `
|
||||
<div id="nothing_selected">
|
||||
<button class="button-secondary" value="addNewTemplateForm">New template</button>
|
||||
<button class="button-secondary" value="addNewFolderForm">New folder</button>
|
||||
<button class="button-secondary" value="add-new-template">New template</button>
|
||||
<button class="button-secondary" value="add-new-folder">New folder</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
this.itemsSelectedButtons = `
|
||||
<div id="items_selected">
|
||||
<button class="button-secondary" value="moveToFolderRadios">Move</button>
|
||||
<button class="button-secondary" value="moveToNewFolderForm">Add to a new folder</button>
|
||||
<button class="button-secondary" value="move-to-existing-folder">Move</button>
|
||||
<button class="button-secondary" value="move-to-new-folder">Add to a new folder</button>
|
||||
</div>
|
||||
`;
|
||||
};
|
||||
|
||||
@@ -1165,11 +1165,11 @@ class TemplateAndFoldersSelectionForm(Form):
|
||||
* unknown
|
||||
currently not implemented, but in the future will try and work out if there are any obvious commands that can be
|
||||
assumed based on which fields are empty vs populated.
|
||||
* move_to_existing_folder
|
||||
* move-to-existing-folder
|
||||
must have data for templates_and_folders checkboxes, and move_to radios
|
||||
* move_to_new_folder
|
||||
* move-to-new-folder
|
||||
must have data for move_to_new_folder_name, cannot have data for move_to_existing_folder_name
|
||||
* add_new_folder
|
||||
* add-new-folder
|
||||
must have data for move_to_existing_folder_name, cannot have data for move_to_new_folder_name
|
||||
"""
|
||||
|
||||
@@ -1218,9 +1218,9 @@ class TemplateAndFoldersSelectionForm(Form):
|
||||
def validate(self):
|
||||
self.op = request.form.get('operation')
|
||||
|
||||
self.is_move_op = self.op in {'move_to_existing_folder', 'move_to_new_folder'}
|
||||
self.is_add_folder_op = self.op in {'add_new_folder', 'move_to_new_folder'}
|
||||
self.is_add_template_op = self.op in {'add_template'}
|
||||
self.is_move_op = self.op in {'move-to-existing-folder', 'move-to-new-folder'}
|
||||
self.is_add_folder_op = self.op in {'add-new-folder', 'move-to-new-folder'}
|
||||
self.is_add_template_op = self.op in {'add-new-template'}
|
||||
|
||||
if not (self.is_add_folder_op or self.is_move_op or self.is_add_template_op):
|
||||
return False
|
||||
@@ -1228,23 +1228,23 @@ class TemplateAndFoldersSelectionForm(Form):
|
||||
return super().validate()
|
||||
|
||||
def get_folder_name(self):
|
||||
if self.op == 'add_new_folder':
|
||||
if self.op == 'add-new-folder':
|
||||
return self.add_new_folder_name.data
|
||||
elif self.op == 'move_to_new_folder':
|
||||
elif self.op == 'move-to-new-folder':
|
||||
return self.move_to_new_folder_name.data
|
||||
return None
|
||||
|
||||
templates_and_folders = MultiCheckboxField('Choose templates or folders', validators=[
|
||||
required_for_ops('move_to_new_folder', 'move_to_existing_folder')
|
||||
required_for_ops('move-to-new-folder', 'move-to-existing-folder')
|
||||
])
|
||||
move_to = RadioFieldWithNoneOption('Choose a folder', validators=[
|
||||
Optional(),
|
||||
required_for_ops('move_to_new_folder', 'move_to_existing_folder')
|
||||
required_for_ops('move-to-new-folder', 'move-to-existing-folder')
|
||||
])
|
||||
add_new_folder_name = StringField('Folder name', validators=[required_for_ops('add_new_folder')])
|
||||
move_to_new_folder_name = StringField('Folder name', validators=[required_for_ops('move_to_new_folder')])
|
||||
add_new_folder_name = StringField('Folder name', validators=[required_for_ops('add-new-folder')])
|
||||
move_to_new_folder_name = StringField('Folder name', validators=[required_for_ops('move-to-new-folder')])
|
||||
|
||||
add_template_by_template_type = RadioFieldWithNoneOption('Add new', validators=[
|
||||
Optional(),
|
||||
required_for_ops('add_template')
|
||||
required_for_ops('add-new-template')
|
||||
])
|
||||
|
||||
@@ -122,7 +122,6 @@ def choose_template(service_id, template_type='all', template_folder_id=None):
|
||||
len(user_api_client.get_service_ids_for_user(current_user)) > 1
|
||||
),
|
||||
)
|
||||
|
||||
if request.method == 'POST' and templates_and_folders_form.validate_on_submit():
|
||||
if not can_manage_folders():
|
||||
abort(403)
|
||||
@@ -142,7 +141,7 @@ def choose_template(service_id, template_type='all', template_folder_id=None):
|
||||
template_nav_items=get_template_nav_items(template_folder_id),
|
||||
template_type=template_type,
|
||||
search_form=SearchTemplatesForm(),
|
||||
templates_and_folders_form=templates_and_folders_form
|
||||
templates_and_folders_form=templates_and_folders_form,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -3,16 +3,17 @@
|
||||
|
||||
<div id="sticky_template_forms" class="js-stick-at-bottom-when-scrolling">
|
||||
<button type="submit" name="operation" value="unknown" hidden></button>
|
||||
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
|
||||
{% if templates_and_folders_form.move_to.choices and template_list.templates_to_show %}
|
||||
<div id="move_to_folder_radios">
|
||||
{{ radios(templates_and_folders_form.move_to) }}
|
||||
{{ page_footer('Move', button_name='operation', button_value='move_to_existing_folder') }}
|
||||
{{ page_footer('Move', button_name='operation', button_value='move-to-existing-folder') }}
|
||||
</div>
|
||||
<div id="move_to_new_folder_form">
|
||||
<fieldset>
|
||||
<legend class="visuallyhidden">Move to a new folder</legend>
|
||||
{{ textbox(templates_and_folders_form.move_to_new_folder_name) }}
|
||||
{{ page_footer('Move to a new folder', button_name='operation', button_value='move_to_new_folder') }}
|
||||
{{ page_footer('Move to a new folder', button_name='operation', button_value='move-to-new-folder') }}
|
||||
</fieldset>
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -20,14 +21,14 @@
|
||||
<fieldset>
|
||||
<legend class="visuallyhidden">Add a new folder</legend>
|
||||
{{ textbox(templates_and_folders_form.add_new_folder_name) }}
|
||||
{{ page_footer('New folder', button_name='operation', button_value='add_new_folder') }}
|
||||
{{ page_footer('New folder', button_name='operation', button_value='add-new-folder') }}
|
||||
</fieldset>
|
||||
</div>
|
||||
<div id="add_new_template_form">
|
||||
<fieldset>
|
||||
<legend class="visuallyhidden">Add a new template</legend>
|
||||
{{ radios(templates_and_folders_form.add_template_by_template_type) }}
|
||||
{{ page_footer('Continue', button_name='operation', button_value='add_template') }}
|
||||
{{ page_footer('Continue', button_name='operation', button_value='add-new-template') }}
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -797,10 +797,10 @@ def test_should_show_radios_and_buttons_for_move_destination_if_correct_permissi
|
||||
]
|
||||
assert set(x['value'] for x in page.find_all('button', {'name': 'operation'})) == {
|
||||
'unknown',
|
||||
'move_to_existing_folder',
|
||||
'move_to_new_folder',
|
||||
'add_new_folder',
|
||||
'add_template',
|
||||
'move-to-existing-folder',
|
||||
'move-to-new-folder',
|
||||
'add-new-folder',
|
||||
'add-new-template',
|
||||
}
|
||||
|
||||
|
||||
@@ -821,7 +821,7 @@ def test_should_be_able_to_move_to_existing_folder(
|
||||
'main.choose_template',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_data={
|
||||
'operation': 'move_to_existing_folder',
|
||||
'operation': 'move-to-existing-folder',
|
||||
'move_to': PARENT_FOLDER_ID,
|
||||
'templates_and_folders': [
|
||||
FOLDER_TWO_ID,
|
||||
@@ -868,7 +868,7 @@ def test_should_not_be_able_to_move_to_existing_folder_if_dont_have_permission(
|
||||
'main.choose_template',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_data={
|
||||
'operation': 'move_to_existing_folder',
|
||||
'operation': 'move-to-existing-folder',
|
||||
'move_to': PARENT_FOLDER_ID,
|
||||
'templates_and_folders': [
|
||||
FOLDER_TWO_ID,
|
||||
@@ -900,7 +900,7 @@ def test_should_be_able_to_move_a_sub_item(
|
||||
service_id=SERVICE_ONE_ID,
|
||||
template_folder_id=PARENT_FOLDER_ID,
|
||||
_data={
|
||||
'operation': 'move_to_existing_folder',
|
||||
'operation': 'move-to-existing-folder',
|
||||
'move_to': '__NONE__',
|
||||
'templates_and_folders': [GRANDCHILD_FOLDER_ID],
|
||||
},
|
||||
@@ -917,35 +917,35 @@ def test_should_be_able_to_move_a_sub_item(
|
||||
@pytest.mark.parametrize('data', [
|
||||
# move to existing, but add new folder name given
|
||||
{
|
||||
'operation': 'move_to_existing_folder',
|
||||
'operation': 'move-to-existing-folder',
|
||||
'templates_and_folders': [],
|
||||
'add_new_folder_name': 'foo',
|
||||
'move_to': PARENT_FOLDER_ID
|
||||
},
|
||||
# move to existing, but move to new folder name given
|
||||
{
|
||||
'operation': 'move_to_existing_folder',
|
||||
'operation': 'move-to-existing-folder',
|
||||
'templates_and_folders': [TEMPLATE_ONE_ID],
|
||||
'move_to_new_folder_name': 'foo',
|
||||
'move_to': PARENT_FOLDER_ID
|
||||
},
|
||||
# move to existing, but no templates to move
|
||||
{
|
||||
'operation': 'move_to_existing_folder',
|
||||
'operation': 'move-to-existing-folder',
|
||||
'templates_and_folders': [],
|
||||
'move_to_new_folder_name': '',
|
||||
'move_to': PARENT_FOLDER_ID
|
||||
},
|
||||
# move to new, but nothing selected to move
|
||||
{
|
||||
'operation': 'move_to_new_folder',
|
||||
'operation': 'move-to-new-folder',
|
||||
'templates_and_folders': [],
|
||||
'move_to_new_folder_name': 'foo',
|
||||
'move_to': None
|
||||
},
|
||||
# add a new template, but also select move destination
|
||||
{
|
||||
'operation': 'add_template',
|
||||
'operation': 'add-new-template',
|
||||
'templates_and_folders': [],
|
||||
'move_to_new_folder_name': '',
|
||||
'move_to': PARENT_FOLDER_ID,
|
||||
@@ -953,7 +953,7 @@ def test_should_be_able_to_move_a_sub_item(
|
||||
},
|
||||
# add a new template, but also move to root folder
|
||||
{
|
||||
'operation': 'add_template',
|
||||
'operation': 'add-new-template',
|
||||
'templates_and_folders': [],
|
||||
'move_to_new_folder_name': '',
|
||||
'move_to': '__NONE__',
|
||||
@@ -1019,7 +1019,7 @@ def test_new_folder_is_created_if_only_new_folder_is_filled_out(
|
||||
data = {
|
||||
'move_to_new_folder_name': '',
|
||||
'add_new_folder_name': 'new folder',
|
||||
'operation': 'add_new_folder'
|
||||
'operation': 'add-new-folder'
|
||||
}
|
||||
|
||||
service_one['permissions'] += ['edit_folders']
|
||||
@@ -1066,7 +1066,7 @@ def test_should_be_able_to_move_to_new_folder(
|
||||
service_id=SERVICE_ONE_ID,
|
||||
template_folder_id=None,
|
||||
_data={
|
||||
'operation': 'move_to_new_folder',
|
||||
'operation': 'move-to-new-folder',
|
||||
'move_to_new_folder_name': 'new folder',
|
||||
'templates_and_folders': [
|
||||
FOLDER_TWO_ID,
|
||||
|
||||
@@ -616,7 +616,7 @@ def test_dont_show_preview_letter_templates_for_bad_filetype(
|
||||
'template_type': 'copy-existing'
|
||||
}),
|
||||
('main.choose_template', {
|
||||
'operation': 'add_template',
|
||||
'operation': 'add-new-template',
|
||||
'add_template_by_template_type': 'copy-existing'
|
||||
}),
|
||||
))
|
||||
@@ -791,7 +791,7 @@ def test_cant_copy_template_from_non_member_service(
|
||||
(
|
||||
'main.choose_template',
|
||||
{
|
||||
'operation': 'add_template',
|
||||
'operation': 'add-new-template',
|
||||
'add_template_by_template_type': 'email',
|
||||
},
|
||||
"Sending emails has been disabled for your service."
|
||||
@@ -799,7 +799,7 @@ def test_cant_copy_template_from_non_member_service(
|
||||
(
|
||||
'main.choose_template',
|
||||
{
|
||||
'operation': 'add_template',
|
||||
'operation': 'add-new-template',
|
||||
'add_template_by_template_type': 'sms',
|
||||
},
|
||||
"Sending text messages has been disabled for your service."
|
||||
|
||||
Reference in New Issue
Block a user