diff options
author | Douglas Lovell <doug@wbreeze.com> | 2017-03-12 18:22:00 +0300 |
---|---|---|
committer | Alfredo Sumaran <alfredo@gitlab.com> | 2017-04-09 16:43:49 +0300 |
commit | d0beb755f9ee8a744be087b22d51e8fe9ea98586 (patch) | |
tree | 6dd0a4644560490e0ecbc7adcf1f08724cebd043 /app/assets/javascripts | |
parent | 3d1cade13f61115b63bf6dbda5a1f194ba54b24b (diff) |
Add a name field to the group edit form
Enables user specification of group name vs. name inferred from group path.
Cause new group form to copy name from path
Adds some new page-specific javascript that copies entry from the
group path field to the group name field when the group name field
is initially empty.
Remove duplicate group name entry field on group edit form
This corrects the duplicated name entry field and tests that the
JavaScript does not update the group name field if the user
edits the group path. (Editing the group path is not recommended
in any case, but it is possible.)
Address eslint errors in group.js
Enable group name copy with dispatch and explore group creation
The dispatch and explore group creation forms require the group.js
asset, and their tests now require testing against poltergeist
Update workflow new group instruction
Update the gitlab basics group creation document
Add a change log entry
Remove unused variable for eslint
Diffstat (limited to 'app/assets/javascripts')
-rw-r--r-- | app/assets/javascripts/dispatcher.js | 6 | ||||
-rw-r--r-- | app/assets/javascripts/group.js | 21 |
2 files changed, 25 insertions, 2 deletions
diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index 4e68f9c77e9..f277e1dddc7 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -37,6 +37,7 @@ import Issue from './issue'; import BindInOut from './behaviors/bind_in_out'; +import Group from './group'; import GroupName from './group_name'; import GroupsList from './groups_list'; import ProjectsList from './projects_list'; @@ -271,8 +272,9 @@ const ShortcutsBlob = require('./shortcuts_blob'); case 'groups:create': case 'admin:groups:create': BindInOut.initAll(); - case 'groups:new': - case 'admin:groups:new': + new Group(); + new GroupAvatar(); + break; case 'groups:edit': case 'admin:groups:edit': new GroupAvatar(); diff --git a/app/assets/javascripts/group.js b/app/assets/javascripts/group.js new file mode 100644 index 00000000000..7732edde1e7 --- /dev/null +++ b/app/assets/javascripts/group.js @@ -0,0 +1,21 @@ +export default class Group { + constructor() { + this.groupPath = $('#group_path'); + this.groupName = $('#group_name'); + this.updateHandler = this.update.bind(this); + this.resetHandler = this.reset.bind(this); + if (this.groupName.val() === '') { + this.groupPath.on('keyup', this.updateHandler); + this.groupName.on('keydown', this.resetHandler); + } + } + + update() { + this.groupName.val(this.groupPath.val()); + } + + reset() { + this.groupPath.off('keyup', this.updateHandler); + this.groupName.off('keydown', this.resetHandler); + } +} |