Browse Source

File name without extension.

pull/587/head
Sebastian 5 years ago
parent
commit
ae48e2afe5
  1. 16
      frontend/app/shared/components/assets/asset.component.html
  2. 12
      frontend/app/shared/components/forms/markdown-editor.component.ts
  3. 10
      frontend/app/shared/components/forms/rich-editor.component.ts
  4. 12
      frontend/app/shared/services/assets.service.ts
  5. 14
      frontend/app/shared/state/assets.forms.ts

16
frontend/app/shared/components/assets/asset.component.html

@ -1,5 +1,10 @@
<ng-container *ngIf="!isListView; else listTemplate">
<div class="card" (click)="select.emit()" [class.selectable]="isSelectable" [class.border-primary]="isSelected" (sqxDropFile)="updateFile($event)" [sqxDropDisabled]="!asset || !asset.canUpload" [sqxDropNoPaste]="true">
<div class="card" (click)="select.emit()"
[class.selectable]="isSelectable"
[class.border-primary]="isSelected"
(sqxDropFile)="updateFile($event)"
[sqxDropDisabled]="!asset || !asset.canUpload"
[sqxDropNoPaste]="true">
<div class="card-body">
<div class="file-preview" *ngIf="asset && progress === 0">
<span class="file-type" *ngIf="asset.fileType">
@ -93,7 +98,11 @@
</ng-container>
<ng-template #listTemplate>
<div class="table-items-row" (click)="select.emit()" [class.selectable]="isSelectable" (sqxDropFile)="updateFile($event)" [sqxDropDisabled]="!asset || !asset.canUpload" [sqxDropNoPaste]="true">
<div class="table-items-row" (click)="select.emit()"
[class.selectable]="isSelectable"
(sqxDropFile)="updateFile($event)"
[sqxDropDisabled]="!asset || !asset.canUpload"
[sqxDropNoPaste]="true">
<div class="left-border" [class.hidden]="!isSelectable" [class.selected]="isSelected"></div>
<ng-container *ngIf="asset && progress === 0">
@ -166,7 +175,8 @@
<ng-container *ngIf="asset">
<ng-container *sqxModal="editDialog">
<sqx-asset-dialog [allTags]="allTags" [asset]="asset" (changed)="setAsset($event)" (complete)="editDialog.hide()">
<sqx-asset-dialog [allTags]="allTags"
[asset]="asset" (changed)="setAsset($event)" (complete)="editDialog.hide()">
</sqx-asset-dialog>
</ng-container>
</ng-container>

12
frontend/app/shared/components/forms/markdown-editor.component.ts

@ -208,15 +208,17 @@ export class MarkdownEditorComponent extends StatefulControlComponent<State, str
let content = '';
for (const asset of assets) {
const name = asset.fileNameWithoutExtension;
switch (asset.type) {
case 'Image':
content += `![${asset.fileName}](${asset.fullUrl(this.apiUrl)} '${asset.fileName}')`;
content += `![${name}](${asset.fullUrl(this.apiUrl)} '${name}')`;
break;
case 'Video':
content += `[${asset.fileName}](${asset.fullUrl(this.apiUrl)}')`;
content += `[${name}](${asset.fullUrl(this.apiUrl)}')`;
break;
default:
content += `[${asset.fileName}](${asset.fullUrl(this.apiUrl)}')`;
content += `[${name}](${asset.fullUrl(this.apiUrl)}')`;
break;
}
}
@ -265,7 +267,9 @@ export class MarkdownEditorComponent extends StatefulControlComponent<State, str
this.assetUploader.uploadFile(file)
.subscribe(asset => {
if (Types.is(asset, AssetDto)) {
replaceText(`![${asset.fileName}](${asset.fullUrl(this.apiUrl)} '${asset.fileName}')`);
const name = asset.fileNameWithoutExtension;
replaceText(`![${name}](${asset.fullUrl(this.apiUrl)} '${name}')`);
}
}, error => {
if (!Types.is(error, UploadCanceled)) {

10
frontend/app/shared/components/forms/rich-editor.component.ts

@ -221,15 +221,17 @@ export class RichEditorComponent extends StatefulControlComponent<undefined, str
let content = '';
for (const asset of assets) {
const name = asset.fileNameWithoutExtension;
switch (asset.type) {
case 'Image':
content += `<img src="${asset.fullUrl(this.apiUrl)}" alt="${asset.fileName}" />`;
content += `<img src="${asset.fullUrl(this.apiUrl)}" alt="${name}" />`;
break;
case 'Video':
content += `<video src="${asset.fullUrl(this.apiUrl)}" />`;
break;
default:
content += `<a href="${asset.fullUrl(this.apiUrl)}" alt="${asset.fileName}">${asset.fileName}</a>`;
content += `<a href="${asset.fullUrl(this.apiUrl)}" alt="${name}">${name}</a>`;
break;
}
}
@ -261,10 +263,12 @@ export class RichEditorComponent extends StatefulControlComponent<undefined, str
this.assetUploader.uploadFile(file)
.subscribe(asset => {
if (Types.is(asset, AssetDto)) {
const name = asset.fileNameWithoutExtension;
if (asset.type === 'Video') {
replaceText(`<video src="${asset.fullUrl(this.apiUrl)}" />`);
} else {
replaceText(`<img src="${asset.fullUrl(this.apiUrl)}" alt="${asset.fileName}" />`);
replaceText(`<img src="${asset.fullUrl(this.apiUrl)}" alt="${name}" />`);
}
}
}, error => {

12
frontend/app/shared/services/assets.service.ts

@ -34,6 +34,18 @@ export class AssetDto {
public readonly canUpload: boolean;
public readonly canMove: boolean;
public get fileNameWithoutExtension() {
let fileName = this.fileName;
const index = fileName.lastIndexOf('.');
if (index > 0) {
fileName = fileName.substr(0, index);
}
return fileName;
}
public get isDuplicate() {
return this._meta && this._meta['isDuplicate'] === 'true';
}

14
frontend/app/shared/state/assets.forms.ts

@ -125,19 +125,7 @@ export class AnnotateAssetForm extends Form<FormGroup, AnnotateAssetDto, AssetDt
}
public transformLoad(value: Partial<AssetDto>) {
const result = { ...value };
let fileName = value.fileName;
if (fileName) {
const index = fileName.lastIndexOf('.');
if (index > 0) {
fileName = fileName.substr(0, index);
}
result.fileName = fileName;
}
const result = { ...value, fileName: value.fileNameWithoutExtension };
if (Types.isObject(value.metadata)) {
const length = Object.keys(value.metadata).length;

Loading…
Cancel
Save