Skip to content

Commit

Permalink
Merge branch 'hotfix/23.15.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
adlius committed Dec 12, 2023
2 parents daed496 + dad4613 commit cd77b7c
Show file tree
Hide file tree
Showing 29 changed files with 417 additions and 31 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -1962,6 +1962,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
### Added
- Quick Files

[23.15.3]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/23.15.3
[23.15.2]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/23.15.2
[23.15.1]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/23.15.1
[23.15.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/23.15.0
[23.14.0]: https://github.com/CenterForOpenScience/ember-osf-web/releases/tag/23.14.0
Expand Down
1 change: 1 addition & 0 deletions app/config/environment.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ declare const config: {
learnMoreUrl: string;
donateUrl: string;
renderUrl: string;
mfrUrl: string;
waterbutlerUrl: string;
helpUrl: string;
shareBaseUrl: string;
Expand Down
2 changes: 1 addition & 1 deletion app/institutions/discover/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {
export default class InstitutionDiscoverController extends Controller {
@service currentUser!: CurrentUser;

@tracked cardSearchText?: string = '';
@tracked q?: string = '';
@tracked sort?: string = '-relevance';
@tracked resourceType: ResourceTypeFilterValue = ResourceTypeFilterValue.Projects;
@tracked activeFilters?: Filter[] = [];
Expand Down
2 changes: 1 addition & 1 deletion app/institutions/discover/template.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<SearchPage
@route='search'
@query={{this.q}}
@cardSearchText={{this.q}}
@defaultQueryOptions={{this.defaultQueryOptions}}
@queryParams={{this.queryParams}}
@onQueryParamChange={{action this.onQueryParamChange}}
Expand Down
9 changes: 9 additions & 0 deletions app/models/file-version.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
import { attr } from '@ember-data/model';
import { Link } from 'jsonapi-typescript';
import { NormalLinks } from 'osf-api';

import OsfModel from './osf-model';

export interface FileVersionLinks extends NormalLinks {
download?: Link;
render?: Link;
}

export default class FileVersionModel extends OsfModel {
@attr('number') size!: number;
@attr('date') dateCreated!: Date;
@attr('fixstring') contentType!: string;
@attr('fixstring') name!: string;
@attr() links!: FileVersionLinks;
}

declare module 'ember-data/types/registries/model' {
Expand Down
77 changes: 77 additions & 0 deletions app/preprints/-components/preprint-file-render/component.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import Component from '@glimmer/component';
import { inject as service } from '@ember/service';
import FileModel from 'ember-osf-web/models/file';
import PreprintProviderModel from 'ember-osf-web/models/preprint-provider';
import PreprintModel from 'ember-osf-web/models/preprint';
import Theme from 'ember-osf-web/services/theme';
import { tracked } from '@glimmer/tracking';
import { task } from 'ember-concurrency';
import { waitFor } from '@ember/test-waiters';
import { taskFor } from 'ember-concurrency-ts';
import FileVersionModel from 'ember-osf-web/models/file-version';
import Media from 'ember-responsive';


interface InputArgs {
preprint: PreprintModel;
provider: PreprintProviderModel;
primaryFile: FileModel;
}

export interface VersionModel extends FileVersionModel {
downloadUrl?: string;
}

export default class PreprintFileRender extends Component<InputArgs> {
@service theme!: Theme;
@service media!: Media;

@tracked allowCommenting = false;
@tracked primaryFileHasVersions = false;
@tracked fileVersions: VersionModel[] = [];

primaryFile = this.args.primaryFile;
provider = this.args.provider;
preprint = this.args.preprint;

constructor(owner: unknown, args: InputArgs) {
super(owner, args);

taskFor(this.loadPrimaryFileVersions).perform();

this.allowCommenting = this.provider.allowCommenting && this.preprint.isPublished && this.preprint.public;
}

@task
@waitFor
private async loadPrimaryFileVersions() {
const primaryFileVersions = (await this.primaryFile.queryHasMany('versions', {
sort: '-id', 'page[size]': 50,
})).toArray();
this.serializeVersions(primaryFileVersions);
this.primaryFileHasVersions = primaryFileVersions.length > 0;
}

private serializeVersions(versions: FileVersionModel[]) {
const downloadUrl = this.primaryFile.links.download as string || '';

versions.map((version: VersionModel) => {
const dateFormatted = encodeURIComponent(version.dateCreated.toISOString());
const displayName = version.name.replace(/(\.\w+)?$/, ext => `-${dateFormatted}${ext}`);

this.fileVersions.push(
{
name: version.name,
id: version.id,
dateCreated: version.dateCreated,
downloadUrl: `${downloadUrl}?version=${version.id}&displayName=${displayName}`,
} as VersionModel,
);
return version;
});
}

get isMobile() {
return this.media.isMobile;
}
}
122 changes: 122 additions & 0 deletions app/preprints/-components/preprint-file-render/styles.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
// stylelint-disable max-nesting-depth, selector-max-compound-selectors

.file-renderer-container {
width: 100%;
height: 1150px;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;

.file-container {
width: 100%;
height: 1100px;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
}

.details-container {
width: 100%;
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;

.name-container {
width: 60%;
height: 50px;
overflow: hidden;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;

.name,
.version {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
height: 25px;
}
}

.version-container {
width: 40%;
height: 50px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-end;

.version-menu {
background-color: $color-bg-white;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 4px;
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
padding: 5px;
margin: 2px 0 0;

ul {
list-style: none;
padding-inline-start: 0;
}

.li-container {
margin-top: 10px;
margin-bottom: 10px;

.btn {
display: inline-block;
margin-bottom: 0;
font-weight: 400;
text-align: center;
white-space: nowrap;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
border-radius: 2px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857;
user-select: none;
vertical-align: middle;
color: $color-text-white;
}

.btn-primary {
color: $color-text-white;
background-color: $color-bg-blue-dark;
border-color: #2e6da4;
}
}
}
}
}

&.mobile {
height: 500px;

.file-container {
height: 400px;
}

.details-container {
height: 100px;
flex-direction: column;

.version-container,
.name-container {
height: 50px;
width: 100%;
justify-content: center;
align-items: flex-start;
flex-direction: column;
}
}
}
}
49 changes: 49 additions & 0 deletions app/preprints/-components/preprint-file-render/template.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<div local-class='file-renderer-container {{if this.isMobile 'mobile'}}'>
<div local-class='file-container'>
<FileRenderer
@allowCommenting={{this.allowCommenting}}
@download={{this.primaryFile.links.download}}
/>
</div>

<div local-class='details-container'>
<div local-class='name-container'>
<div data-test-selected-file-name local-class='name'>
{{this.primaryFile.name}}
</div>
<div data-test-file-version local-class='version'>
{{t 'preprints.detail.file_renderer.version'}}: {{this.primaryFile.currentVersion}}
</div>
</div>
<div local-class='version-container'>
{{#if this.primaryFileHasVersions}}
<ResponsiveDropdown
@renderInPlace={{true}}
@buttonStyling={{true}}
as |dd|
>
<dd.trigger>
{{t 'preprints.detail.file_renderer.download_previous_versions'}}
<span class='fa fa-caret-down'></span>
</dd.trigger>
<dd.content local-class='version-menu'>
<ul role='menu' tabindex='-1'>
{{#each this.fileVersions as |version|}}
<li role='menuitem' local-class='li-container'>
<OsfLink
data-test-get-started-button
data-analytics-name='Content - Download Previous Version'
local-class='btn btn-primary'
@href={{version.downloadUrl}}
>
{{t 'preprints.detail.file_renderer.version'}} {{version.id}}, {{moment-format version.dateCreated 'MM/DD/YYYY HH:mm:SS'}}
</OsfLink>
</li>
{{/each}}
</ul>
</dd.content>
</ResponsiveDropdown>
{{/if}}
</div>
</div>
</div>
1 change: 1 addition & 0 deletions app/preprints/detail/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ export default class PrePrintsDetailController extends Controller {
@service media!: Media;

@tracked fullScreenMFR = false;
@tracked plauditIsReady = false;

metricsStartDate = config.OSF.metricsStartDate;

Expand Down
7 changes: 4 additions & 3 deletions app/preprints/detail/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import Ready from 'ember-osf-web/services/ready';
import Theme from 'ember-osf-web/services/theme';
import captureException from 'ember-osf-web/utils/capture-exception';
import pathJoin from 'ember-osf-web/utils/path-join';
import PrePrintsDetailController from './controller';

/**
* @module ember-preprints
Expand Down Expand Up @@ -59,15 +60,15 @@ export default class PreprintsDetail extends Route {

const primaryFile = await preprint?.get('primaryFile');

primaryFile.versions = await primaryFile?.versions;

this.theme.set('providerType', 'preprint');
this.theme.set('id', provider.id);

const contributors = await preprint?.queryHasMany('contributors');

const license = await preprint?.get('license');

const node = await preprint?.get('node');

const subjects = await preprint?.queryHasMany('subjects');

return {
Expand All @@ -78,7 +79,6 @@ export default class PreprintsDetail extends Route {
primaryFile,
license,
subjects,
node,
};

} catch (error) {
Expand Down Expand Up @@ -143,6 +143,7 @@ export default class PreprintsDetail extends Route {
}
this.set('headTags', allTags);
this.metaTags.updateHeadTags();
(this.controller as PrePrintsDetailController).plauditIsReady = true;
}
blocker.done();
}
Expand Down
3 changes: 2 additions & 1 deletion app/preprints/detail/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
.data-container {
padding: 30px;
width: 100%;
min-height: 1250px;
display: flex;
flex-direction: row;
justify-content: flex-start;
Expand Down Expand Up @@ -204,7 +205,7 @@
}

.data-container-left {
height: 481px;
height: 600px;

.file-description-container {
flex-direction: column;
Expand Down
Loading

0 comments on commit cd77b7c

Please sign in to comment.