Skip to content

Commit 0c9c73b

Browse files
committed
Merge branch 'release/22.7.0'
2 parents a639b15 + 4f3522f commit 0c9c73b

File tree

45 files changed

+735
-197
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+735
-197
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
55
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
66

7+
## [22.7.0] - 2022-7-20
8+
### Added
9+
- Show extra information on files detail page for dataverse files
10+
### Changed
11+
- Prevent users from using special characters when renaming files
12+
- Hide left navbar links when users don't have permissions
13+
- Update registries landing page
14+
15+
716
## [22.6.2] - 2022-6-24
817
### Hotfix
918
- Fix long file name display issue
@@ -1858,6 +1867,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
18581867
### Added
18591868
- Quick Files
18601869

1870+
[22.7.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/22.7.0
18611871
[22.6.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/22.6.0
18621872
[22.5.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/22.5.0
18631873
[22.4.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/22.4.0

app/guid-file/template.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
</h3>
1717
<div local-class='FlexContainerRow'>
1818
<h2 data-test-filename>
19-
{{this.model.name}}
19+
{{this.model.displayName}}
2020
{{#if this.viewedVersion}}
2121
({{t 'general.version'}}: {{this.viewedVersion}})
2222
{{/if}}

app/guid-node/files/provider/controller.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ import Controller from '@ember/controller';
22
import { inject as service } from '@ember/service';
33
import Media from 'ember-responsive';
44

5+
import CurrentUser from 'ember-osf-web/services/current-user';
6+
57
export default class GuidNodeFilesProvider extends Controller {
68
@service media!: Media;
9+
@service currentUser!: CurrentUser;
710

811
get isDesktop() {
912
return this.media.isDesktop;

app/guid-node/files/provider/route.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,10 @@ import Intl from 'ember-intl/services/intl';
88
import Toast from 'ember-toastr/services/toast';
99
import FileProviderModel from 'ember-osf-web/models/file-provider';
1010
import NodeModel from 'ember-osf-web/models/node';
11-
import { Permission } from 'ember-osf-web/models/osf-model';
1211
import { GuidRouteModel } from 'ember-osf-web/resolve-guid/guid-route';
13-
import CurrentUser from 'ember-osf-web/services/current-user';
1412
import captureException, { getApiErrorMessage } from 'ember-osf-web/utils/capture-exception';
1513

1614
export default class GuidNodeFilesProviderRoute extends Route.extend({}) {
17-
@service currentUser!: CurrentUser;
1815
@service intl!: Intl;
1916
@service toast!: Toast;
2017

@@ -30,9 +27,7 @@ export default class GuidNodeFilesProviderRoute extends Route.extend({}) {
3027
},
3128
);
3229
const provider = fileProviders.findBy('id', fileProviderId) as FileProviderModel;
33-
const hasWritePermission = node.currentUserPermissions.includes(Permission.Write);
34-
const isViewOnly = Boolean(this.currentUser.viewOnlyToken);
35-
return {provider, fileProviders, node, hasWritePermission, isViewOnly};
30+
return {provider, fileProviders, node};
3631
} catch (e) {
3732
const errorMessage = this.intl.t(
3833
'osf-components.file-browser.errors.load_file_providers',

app/guid-node/files/provider/template.hbs

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
@label={{t 'node.left_nav.wiki'}}
8282
/>
8383
{{/if}}
84-
{{#unless this.model.providerTask.value.isViewOnly}}
84+
{{#if (or this.model.providerTask.value.node.public this.model.providerTask.value.node.userHasReadPermission)}}
8585
<leftNav.link
8686
data-test-analytics-link
8787
data-analytics-name='Analytics'
@@ -90,7 +90,7 @@
9090
@icon='chart-bar'
9191
@label={{t 'node.left_nav.analytics'}}
9292
/>
93-
{{/unless}}
93+
{{/if}}
9494
{{#unless this.model.providerTask.value.node.isAnonymous}}
9595
<leftNav.link
9696
data-test-registrations-link
@@ -101,15 +101,17 @@
101101
@label={{t 'node.left_nav.registrations'}}
102102
/>
103103
{{/unless}}
104-
{{#unless this.model.providerTask.value.isViewOnly}}
105-
<leftNav.link
106-
data-test-contributors-link
107-
data-analytics-name='Contributors'
108-
@href='/{{this.model.node.guid}}/contributors/'
109-
@icon='users'
110-
@label={{t 'node.left_nav.contributors'}}
111-
/>
112-
{{#if this.model.providerTask.value.hasWritePermission}}
104+
{{#unless this.currentUser.viewOnlyToken}}
105+
{{#if this.model.providerTask.value.node.userHasReadPermission}}
106+
<leftNav.link
107+
data-test-contributors-link
108+
data-analytics-name='Contributors'
109+
@href='/{{this.model.node.guid}}/contributors/'
110+
@icon='users'
111+
@label={{t 'node.left_nav.contributors'}}
112+
/>
113+
{{/if}}
114+
{{#if this.model.providerTask.value.node.userHasWritePermission}}
113115
<leftNav.link
114116
data-test-addons-link
115117
data-analytics-name='Add-ons'
@@ -118,13 +120,15 @@
118120
@label={{t 'node.left_nav.add-ons'}}
119121
/>
120122
{{/if}}
121-
<leftNav.link
122-
data-test-settings-link
123-
data-analytics-name='Settings'
124-
@href='/{{this.model.node.guid}}/settings/'
125-
@icon='cogs'
126-
@label={{t 'node.left_nav.settings'}}
127-
/>
123+
{{#if this.this.model.providerTask.value.node.userHasReadPermission}}
124+
<leftNav.link
125+
data-test-settings-link
126+
data-analytics-name='Settings'
127+
@href='/{{this.model.node.guid}}/settings/'
128+
@icon='cogs'
129+
@label={{t 'node.left_nav.settings'}}
130+
/>
131+
{{/if}}
128132
{{/unless}}
129133
</layout.leftNavOld>
130134
<layout.main local-class='OverviewBody'>
@@ -134,13 +138,13 @@
134138
{{#let (get mapper this.model.providerName) as |ProviderManager|}}
135139
<ProviderManager
136140
@provider={{this.model.providerTask.value.provider}}
137-
@isViewOnly={{this.model.providerTask.value.isViewOnly}}
141+
@isViewOnly={{this.model.providerTask.value.currentUser.viewOnlyToken}}
138142
as |manager|
139143
>
140144
<div local-class='FileBrowser'>
141145
<FileBrowser
142146
@manager={{manager}}
143-
@selectable={{not this.model.providerTask.value.isViewOnly}}
147+
@selectable={{not this.model.providerTask.value.currentUser.viewOnlyToken}}
144148
@enableUpload={{true}}
145149
/>
146150
</div>

app/models/file.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ export interface FileLinks extends BaseFileLinks {
2222
render?: Link;
2323
}
2424

25+
// Character that need to be excluded: ()<>~!@$&*:;,'"\|/?
26+
export const forbiddenFileNameCharacters = /[()<>~!@$&*:;,"'\\|/?]/;
27+
2528
export default class FileModel extends BaseFileItem {
2629
@attr() links!: FileLinks;
2730
@attr('fixstring') name!: string;

app/models/node.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export default class NodeModel extends AbstractNodeModel.extend(Validations, Col
8787
@attr('fixstring') title!: string;
8888
@attr('fixstring') description!: string;
8989
@attr('node-category') category!: NodeCategory;
90-
@attr('boolean') currentUserIsContributor!: boolean;
90+
@attr('boolean') currentUserIsContributor!: boolean;
9191
@attr('boolean') fork!: boolean;
9292
@alias('fork') isFork!: boolean;
9393
@attr('boolean') collection!: boolean;

app/packages/files/dataverse-file.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@ import FileModel from 'ember-osf-web/models/file';
22
import File from 'ember-osf-web/packages/files/file';
33
import CurrentUserService from 'ember-osf-web/services/current-user';
44

5+
interface DataverseExtraInfo {
6+
datasetVersion: 'latest-published' | 'latest';
7+
fileId: string;
8+
hasPublishedVersion: boolean;
9+
hashes: {
10+
md5: string,
11+
};
12+
}
13+
514
export default class DataverseFile extends File {
615
shouldShowRevisions = false;
716
providerHandlesVersioning = false;
@@ -13,4 +22,11 @@ export default class DataverseFile extends File {
1322
get currentUserPermission() {
1423
return 'read';
1524
}
25+
26+
get displayName() {
27+
const fileExtra = this.fileModel.extra as DataverseExtraInfo;
28+
const translationKeyPrefix = 'osf-components.file-browser.provider-specific-data.dataverse.';
29+
const fileNameSuffix = ' ' + this.intl.t(translationKeyPrefix + fileExtra.datasetVersion);
30+
return this.fileModel.name + fileNameSuffix;
31+
}
1632
}

app/packages/files/file.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ export default abstract class File {
9999
return this.fileModel.name;
100100
}
101101

102+
get displayName() {
103+
return this.fileModel.name;
104+
}
105+
102106
get id() {
103107
return this.fileModel.id;
104108
}

lib/osf-components/addon/components/file-actions-menu/template.hbs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
as |dropdown|
77
>
88
<dropdown.trigger
9-
aria-label={{t 'file_actions_menu.actions' filename=@item.name}}
9+
aria-label={{t 'file_actions_menu.actions' filename=@item.displayName}}
1010
data-test-file-download-share-trigger
1111
data-analytics-name='File actions'
1212
>
@@ -40,8 +40,8 @@
4040
</dd.trigger>
4141
</FileEmbedMenu>
4242
<SharingIcons::Dropdown
43-
@title={{@item.name}}
44-
@description={{@item.name}}
43+
@title={{@item.displayName}}
44+
@description={{@item.displayName}}
4545
@hyperlink={{@item.links.html}}
4646
@showText={{true}}
4747
as |dd|

0 commit comments

Comments
 (0)