From 0addf2206cc870a595bb5284a3559a91eaedc142 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Fri, 9 Feb 2018 14:47:36 -0500 Subject: [PATCH 1/3] Remove file-browser move to new component functionality --- addon/components/file-browser/component.js | 54 +++-------------- addon/components/file-browser/template.hbs | 9 +-- .../components/project-selector/component.js | 9 +-- .../components/project-selector/template.hbs | 59 ++++--------------- addon/locales/en/translations.js | 9 --- 5 files changed, 21 insertions(+), 119 deletions(-) diff --git a/addon/components/file-browser/component.js b/addon/components/file-browser/component.js index 833ddb444..8a9aa1eb4 100644 --- a/addon/components/file-browser/component.js +++ b/addon/components/file-browser/component.js @@ -40,10 +40,8 @@ export default Ember.Component.extend(Analytics, { selectedFile: null, node: null, nodeTitle: null, - newNodeType: null, + newProject: false, projectSelectState: 'main', - willCreateComponent: false, - willMoveToNode: false, isInputInvalid: true, nodeLink: Ember.computed.alias('node.links.html'), @@ -384,8 +382,6 @@ export default Ember.Component.extend(Analytics, { closeModal() { if (this.get('modalOpen') == 'move') { this.set('projectSelectState', 'main'); - this.set('willCreateComponent', false); - this.set('willMoveToNode', false); } this.set('modalOpen', false); }, @@ -406,59 +402,31 @@ export default Ember.Component.extend(Analytics, { }, checkNodeTitleKeypress(value) { this.set('nodeTitle', value); - if (this.get('nodeTitle')) { - this.set('isInputInvalid', false); - } else { - this.set('isInputInvalid', true); - } + this.set('isInputInvalid', Ember.isBlank(value)); }, changeProjectSelectState(state) { this.set('projectSelectState', state); - this.set('willCreateComponent', false); - this.set('willMoveToNode', false); - if (!this.get('isInputInvalid')) { - this.set('isInputInvalid', true); - } - }, - updateCreateOrMoveNode(state) { - if (state == 'create') { - this.set('willCreateComponent', true); - this.set('willMoveToNode', false); - this.set('isInputInvalid', true); - } else { - this.set('willCreateComponent', false); - this.set('willMoveToNode', true); - this.set('isInputInvalid', false); - } + this.set('isInputInvalid', true); }, setSelectedNode(node, isChild) { this.set('node', node); this.set('isChildNode', isChild); + this.set('isInputInvalid', false); }, setMoveFile() { let selectedItem = this.get('selectedItems.firstObject'); let title = this.get('nodeTitle'); if (this.get('projectSelectState') == 'newProject') { - this.set('newNodeType', 'project'); + this.set('newProject', true); this._createProject(title).then(project => { this.set('node', project); this._addNewNodeToList(this.get('user'), project); this._moveFile(selectedItem, project); }); } else if (this.get('projectSelectState') == 'existingProject') { - if (this.get('willCreateComponent')) { - this.set('newNodeType', 'component'); - this._createComponent(title).then(component => { - this.set('node', component); - this._addNewNodeToList(this.get('user'), component); - this._moveFile(selectedItem, component); - }); - } else if (this.get('willMoveToNode')) { - this._moveFile(selectedItem, this.get('node')); - - this.set('newNodeType', null); - } + this._moveFile(selectedItem, this.get('node')); + this.set('newProject', false); } }, }, @@ -472,13 +440,6 @@ export default Ember.Component.extend(Analytics, { this.get('i18n').t('eosf.components.moveToProject.couldNotCreateProject') )); }, - _createComponent(title) { - return this.get('node') - .addChild(title, null, '', true) - .catch(() => this.get('toast').error( - this.get('i18n').t('eosf.components.moveToProject.couldNotCreateComponent') - )); - }, _moveFile(item, node) { item.move(node) .then(() => { @@ -490,7 +451,6 @@ export default Ember.Component.extend(Analytics, { this.set('modalOpen', 'successMove'); this.set('projectSelectState', 'main'); this.set('willCreateComponent', false); - this.set('willMoveToNode', false); this.send('track', 'move', 'track', 'Quick Files - Move to project'); }) .catch(() => this.get('toast').error( diff --git a/addon/components/file-browser/template.hbs b/addon/components/file-browser/template.hbs index 2cc8072b6..151ecb166 100644 --- a/addon/components/file-browser/template.hbs +++ b/addon/components/file-browser/template.hbs @@ -46,9 +46,7 @@ {{/if}} {{#if (if-filter 'move-button' display)}} - {{!-- temporarily disable move button - --}} {{/if}} {{#if (and edit (if-filter 'delete-button' display))}} @@ -173,12 +171,9 @@ isLoadingProjects=isLoadingProjects file=selectedItems.firstObject projectSelectState=projectSelectState - willCreateComponent=willCreateComponent - willMoveToNode=willMoveToNode showErrorMessage=showErrorMessage setSelectedNode=(action 'setSelectedNode') changeProjectSelectState=(action 'changeProjectSelectState') - updateCreateOrMoveNode=(action 'updateCreateOrMoveNode') checkNodeTitleKeypress=(action 'checkNodeTitleKeypress') }} {{/modal.body}} @@ -197,10 +192,8 @@ {{#modal.footer}} {{#bs-button type='default' onClick=(action 'closeModal')}}{{t "eosf.components.moveToProject.keepWorkingHere"}}{{/bs-button}} - {{#if (eq newNodeType 'project')}} + {{#if newProject}} {{t "eosf.components.moveToProject.goToNewProject"}} - {{else if (eq newNodeType 'component')}} - {{t "eosf.components.moveToProject.goToNewComponent"}} {{else if isChildNode}} {{t "eosf.components.moveToProject.goToComponent"}} {{else}} diff --git a/addon/components/project-selector/component.js b/addon/components/project-selector/component.js index 061758e27..bd3bafefa 100644 --- a/addon/components/project-selector/component.js +++ b/addon/components/project-selector/component.js @@ -16,11 +16,8 @@ import layout from './template'; * user=user * file=file * projectSelectState=projectSelectState - * willCreateComponent=willCreateComponent - * willMoveToNode=willMoveToNode * setSelectedNode=(action 'setSelectedNode') * changeProjectSelectState=(action 'changeProjectSelectState') - * updateCreateOrMoveNode=(action 'updateCreateOrMoveNode') * checkNodeTitleKeypress=(action 'checkNodeTitleKeypress')} * ``` * @class project-selector @@ -36,8 +33,6 @@ export default Ember.Component.extend({ projectSelectState: 'main', selectedProject: null, isLoadingProjects: true, - willCreateComponent: false, - willMoveToNode: false, showErrorMessage: null, projectList: Ember.A(), isProjectPublic: Ember.computed.alias('selectedProject.public'), @@ -51,11 +46,9 @@ export default Ember.Component.extend({ actions: { changeState(state) { + this.set('selectedProject', null); this.changeProjectSelectState(state); }, - updateCreateOrMoveNode(state) { - this.updateCreateOrMoveNode(state); - }, checkNodeTitleKeypress(value) { this.checkNodeTitleKeypress(value); }, diff --git a/addon/components/project-selector/template.hbs b/addon/components/project-selector/template.hbs index e0e7b93d6..254559b02 100644 --- a/addon/components/project-selector/template.hbs +++ b/addon/components/project-selector/template.hbs @@ -50,56 +50,21 @@

{{/if}} {{#if selectedProject}} -
-
{{t "eosf.components.moveToProject.organizeProject"}}
-

- {{if isChildNode (t "eosf.components.moveToProject.organizeChildNode") (t "eosf.components.moveToProject.organizeParentNode")}} -

-
-
- - - - - -
-
-
- {{#if willCreateComponent}} - {{input - type='text' - placeholder=(t "eosf.components.moveToProject.enterComponentTitle") - class="form-control" - name='nodeTitle' - id='projectTitle' - key-up='checkNodeTitleKeypress'}} - {{/if}} - {{#if (or willCreateComponent willMoveToNode)}} -

+

+ {{#if isChildNode}} + {{t "eosf.components.moveToProject.convertOrCopyMessage.component"}} + {{else}} + {{t "eosf.components.moveToProject.convertOrCopyMessage.project"}} + {{/if}} +

+ {{#unless isProjectPublic}} +

{{#if isChildNode}} - {{t "eosf.components.moveToProject.convertOrCopyMessage.component"}} + {{t "eosf.components.moveToProject.noLongerPublicWarning.component"}} {{else}} - {{t "eosf.components.moveToProject.convertOrCopyMessage.project"}} + {{t "eosf.components.moveToProject.noLongerPublicWarning.project"}} {{/if}}

- {{#unless isProjectPublic}} -

- {{#if isChildNode}} - {{t "eosf.components.moveToProject.noLongerPublicWarning.component"}} - {{else}} - {{t "eosf.components.moveToProject.noLongerPublicWarning.project"}} - {{/if}} -

- {{/unless}} - {{/if}} + {{/unless}} {{/if}} {{/if}} diff --git a/addon/locales/en/translations.js b/addon/locales/en/translations.js index 69b6d548d..1279b6f7c 100644 --- a/addon/locales/en/translations.js +++ b/addon/locales/en/translations.js @@ -220,19 +220,11 @@ export default { createNewProject: 'Create new project', connectToExisting: 'Connect file to existing OSF project', enterProjectTitle: 'Enter project title', - enterComponentTitle: 'Enter component title', newProjectMessage: 'You have selected to create a new public project for your file. Users will still have access to your file unless the project becomes private.', chooseProject: 'Choose project', projectSelectMessage: 'The list of projects appearing are projects and components for which you have write access. Registrations are not included here.', noProjectsExistError: 'You have no available projects. Go back to create a new project.', - organizeProject: 'Organize', - organizeParentNode: 'You can organize your file by storing it in the project or its own component.', - organizeChildNode: 'You can organize your file by storing it in the component or its own component.', - createComponent: 'Create component', - couldNotCreateComponent: 'Could not create component. Please try again.', couldNotCreateProject: 'Could not create project. Please try again.', - useCurrentComponent: 'Use current component', - useCurrentProject: 'Use current project', convertOrCopyMessage: { project: 'Clicking "Move file" will immediately make changes to your OSF project and move your file.', component: 'Clicking "Move file" will immediately make changes to your OSF component and move your file.', @@ -245,7 +237,6 @@ export default { couldNotMoveFile: 'Could not move file. Please try again', keepWorkingHere: 'Keep working here', goToNewProject: 'Go to new project', - goToNewComponent: 'Go to new component', goToComponent: 'Go to component', goToProject: 'Go to project', }, From bf1701f9022678e0f51628e774883d8df0d201b4 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Fri, 9 Feb 2018 14:54:40 -0500 Subject: [PATCH 2/3] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0a7dc78d..2e7788fae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Removed +- Ability to create new components when moving files. ## [0.14.0] - 2018-02-07 ### Added From a63183c63ad4fcef2de94d0f16036053d685c14d Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Fri, 9 Feb 2018 19:58:42 -0500 Subject: [PATCH 3/3] Disable "Cancel", "Back", and "Move file" buttons while moving --- addon/components/file-browser/component.js | 5 ++++- addon/components/file-browser/template.hbs | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/addon/components/file-browser/component.js b/addon/components/file-browser/component.js index 8a9aa1eb4..fb2c0d87b 100644 --- a/addon/components/file-browser/component.js +++ b/addon/components/file-browser/component.js @@ -44,6 +44,7 @@ export default Ember.Component.extend(Analytics, { projectSelectState: 'main', isInputInvalid: true, nodeLink: Ember.computed.alias('node.links.html'), + isMoving: false, init() { this._super(...arguments); @@ -414,6 +415,7 @@ export default Ember.Component.extend(Analytics, { this.set('isInputInvalid', false); }, setMoveFile() { + this.set('isMoving', true); let selectedItem = this.get('selectedItems.firstObject'); let title = this.get('nodeTitle'); @@ -455,6 +457,7 @@ export default Ember.Component.extend(Analytics, { }) .catch(() => this.get('toast').error( this.get('i18n').t('eosf.components.moveToProject.couldNotMoveFile') - )); + )) + .then(() => this.set('isMoving', false)); }, }); diff --git a/addon/components/file-browser/template.hbs b/addon/components/file-browser/template.hbs index 151ecb166..42a07ac86 100644 --- a/addon/components/file-browser/template.hbs +++ b/addon/components/file-browser/template.hbs @@ -178,10 +178,10 @@ }} {{/modal.body}} {{#modal.footer}} - {{#bs-button onClick=(action 'closeModal') type='default'}}Cancel{{/bs-button}} + {{#bs-button disabled=isMoving onClick=(action 'closeModal') type='default'}}Cancel{{/bs-button}} {{#if (not-eq projectSelectState 'main')}} - {{#bs-button onClick=(action 'changeProjectSelectState' 'main') type='default'}}Back{{/bs-button}} - {{#bs-button disabled=isInputInvalid onClick=(action 'setMoveFile') type='primary'}}Move file{{/bs-button}} + {{#bs-button disabled=isMoving onClick=(action 'changeProjectSelectState' 'main') type='default'}}Back{{/bs-button}} + {{#bs-button disabled=(or isInputInvalid isMoving) onClick=(action 'setMoveFile') type='primary'}}Move file{{/bs-button}} {{/if}} {{/modal.footer}} {{/bs-modal}}