ACS-8404: Introduce App Settings service (#3939)

This commit is contained in:
Denys Vuika 2024-07-16 15:23:13 -04:00 committed by GitHub
parent cbbb733551
commit 32112392c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 324 additions and 880 deletions

View File

@ -64,811 +64,6 @@
"preserveState": true,
"expandedSidenav": true
},
"mimeTypes": [
{
"value": "video/3gpp",
"label": "3G Video"
},
{
"value": "video/3gpp2",
"label": "3G2 Video"
},
{
"value": "application/vnd.alfresco.ai.features.v1+json",
"label": "AI-Features"
},
{
"value": "application/vnd.alfresco.ai.labels.v1+json",
"label": "AI-Labels"
},
{
"value": "application/vnd.alfresco.ai.pii.entities.v1+json",
"label": "AI-PII-Entities"
},
{
"value": "application/vnd.alfresco.ai.speech-to-text.v1+json",
"label": "AI-SpeechToText"
},
{
"value": "application/vnd.alfresco.ai.textract.v1+json",
"label": "AI-Textract"
},
{
"value": "audio/x-aiff",
"label": "AIFF Audio"
},
{
"value": "application/vnd.adobe.air-application-installer-package+zip",
"label": "Adobe AIR"
},
{
"value": "application/vnd.adobe.xdp+xml",
"label": "Adobe Acrobat XML Data Package"
},
{
"value": "application/vnd.adobe.aftereffects.project",
"label": "Adobe AfterEffects Project"
},
{
"value": "application/vnd.adobe.aftereffects.template",
"label": "Adobe AfterEffects Template"
},
{
"value": "image/x-raw-adobe",
"label": "Adobe Digital Negative Image"
},
{
"value": "application/x-zip",
"label": "Adobe Flex Project File"
},
{
"value": "application/framemaker",
"label": "Adobe FrameMaker"
},
{
"value": "application/illustrator",
"label": "Adobe Illustrator File"
},
{
"value": "application/x-indesign",
"label": "Adobe InDesign Document"
},
{
"value": "application/pdf",
"label": "Adobe PDF Document"
},
{
"value": "application/pagemaker",
"label": "Adobe PageMaker"
},
{
"value": "image/vnd.adobe.photoshop",
"label": "Adobe Photoshop"
},
{
"value": "image/vnd.adobe.premiere",
"label": "Adobe Premiere"
},
{
"value": "audio/vnd.adobe.soundbooth",
"label": "Adobe SoundBooth"
},
{
"value": "application/acp",
"label": "Alfresco Content Package"
},
{
"value": "application/vnd.android.package-archive",
"label": "Android Package"
},
{
"value": "image/x-portable-anymap",
"label": "Anymap Image"
},
{
"value": "image/icns",
"label": "Apple Icon"
},
{
"value": "application/vnd.apple.keynote",
"label": "Apple iWork Keynote"
},
{
"value": "application/vnd.apple.numbers",
"label": "Apple iWork Numbers"
},
{
"value": "application/vnd.apple.pages",
"label": "Apple iWork Pages"
},
{
"value": "image/vnd.dwg",
"label": "AutoCAD Drawing"
},
{
"value": "image/x-dwt",
"label": "AutoCAD Template"
},
{
"value": "audio/basic",
"label": "Basic Audio"
},
{
"value": "application/x-dosexec",
"label": "Binary File"
},
{
"value": "application/octet-stream",
"label": "Binary File (Octet Stream)"
},
{
"value": "image/bmp",
"label": "Bitmap Image"
},
{
"value": "image/cgm",
"label": "CGM Image"
},
{
"value": "image/x-raw-canon",
"label": "Canon RAW Image"
},
{
"value": "text/csv",
"label": "Comma Separated Values (CSV)"
},
{
"value": "application/dita+xml",
"label": "DITA"
},
{
"value": "message/rfc822",
"label": "EMail"
},
{
"value": "application/eps",
"label": "EPS Type PostScript"
},
{
"value": "audio/x-flac",
"label": "FLAC Audio"
},
{
"value": "application/x-fla",
"label": "Flash Source"
},
{
"value": "video/x-flv",
"label": "Flash Video"
},
{
"value": "image/x-raw-fuji",
"label": "Fuji RAW Image"
},
{
"value": "image/gif",
"label": "GIF Image"
},
{
"value": "application/x-gzip",
"label": "GZIP"
},
{
"value": "application/x-gtar",
"label": "GZIP Tarball"
},
{
"value": "image/x-portable-graymap",
"label": "Greymap Image"
},
{
"value": "text/html",
"label": "HTML"
},
{
"value": "application/vnd.oasis.opendocument.text-web",
"label": "HTML Document Template"
},
{
"value": "image/x-raw-hasselblad",
"label": "Hasselblad RAW Image"
},
{
"value": "image/ief",
"label": "IEF Image"
},
{
"value": "image/jp2",
"label": "JPEG 2000 Image"
},
{
"value": "image/jpeg",
"label": "JPEG Image"
},
{
"value": "application/json",
"label": "JSON"
},
{
"value": "application/java-archive",
"label": "Java Archive"
},
{
"value": "application/java",
"label": "Java Class"
},
{
"value": "text/x-jsp",
"label": "Java Server Page"
},
{
"value": "text/x-java-source",
"label": "Java Source File"
},
{
"value": "application/x-javascript",
"label": "JavaScript"
},
{
"value": "image/x-raw-kodak",
"label": "Kodak RAW Image"
},
{
"value": "application/x-latex",
"label": "LaTeX"
},
{
"value": "image/x-raw-leica",
"label": "Leica RAW Image"
},
{
"value": "audio/mpeg",
"label": "MPEG Audio"
},
{
"value": "video/mp2t",
"label": "MPEG Transport Stream"
},
{
"value": "video/mpeg",
"label": "MPEG Video"
},
{
"value": "video/mpeg2",
"label": "MPEG2 Video"
},
{
"value": "audio/mp4",
"label": "MPEG4 Audio"
},
{
"value": "video/mp4",
"label": "MPEG4 Video"
},
{
"value": "video/x-m4v",
"label": "MPEG4 Video (m4v)"
},
{
"value": "video/x-ms-asf",
"label": "MS ASF Streaming Video"
},
{
"value": "video/x-msvideo",
"label": "MS Video"
},
{
"value": "audio/x-ms-wma",
"label": "MS WMA Streaming Audio"
},
{
"value": "video/x-ms-wmv",
"label": "MS WMV Streaming Video"
},
{
"value": "application/x-troff-man",
"label": "Man Page"
},
{
"value": "text/x-markdown",
"label": "Markdown"
},
{
"value": "text/mediawiki",
"label": "MediaWiki Markup"
},
{
"value": "application/vnd.ms-excel",
"label": "Microsoft Excel"
},
{
"value": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"label": "Microsoft Excel 2007"
},
{
"value": "application/vnd.ms-excel.addin.macroenabled.12",
"label": "Microsoft Excel 2007 add-in"
},
{
"value": "application/vnd.ms-excel.sheet.binary.macroenabled.12",
"label": "Microsoft Excel 2007 binary workbook"
},
{
"value": "application/vnd.ms-excel.sheet.macroenabled.12",
"label": "Microsoft Excel 2007 macro-enabled workbook"
},
{
"value": "application/vnd.ms-excel.template.macroenabled.12",
"label": "Microsoft Excel 2007 macro-enabled workbook template"
},
{
"value": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
"label": "Microsoft Excel template 2007"
},
{
"value": "application/vnd.ms-outlook",
"label": "Microsoft Outlook Message"
},
{
"value": "application/vnd.ms-powerpoint",
"label": "Microsoft PowerPoint"
},
{
"value": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"label": "Microsoft PowerPoint 2007"
},
{
"value": "application/vnd.ms-powerpoint.addin.macroenabled.12",
"label": "Microsoft PowerPoint 2007 add-in"
},
{
"value": "application/vnd.ms-powerpoint.presentation.macroenabled.12",
"label": "Microsoft PowerPoint 2007 macro-enabled presentation"
},
{
"value": "application/vnd.ms-powerpoint.template.macroenabled.12",
"label": "Microsoft PowerPoint 2007 macro-enabled presentation template"
},
{
"value": "application/vnd.ms-powerpoint.slide.macroenabled.12",
"label": "Microsoft PowerPoint 2007 macro-enabled slide"
},
{
"value": "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
"label": "Microsoft PowerPoint 2007 macro-enabled slide show"
},
{
"value": "application/vnd.openxmlformats-officedocument.presentationml.slide",
"label": "Microsoft PowerPoint 2007 slide"
},
{
"value": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
"label": "Microsoft PowerPoint 2007 slide show"
},
{
"value": "application/vnd.openxmlformats-officedocument.presentationml.template",
"label": "Microsoft PowerPoint 2007 template"
},
{
"value": "application/vnd.ms-project",
"label": "Microsoft Project"
},
{
"value": "application/vnd.visio",
"label": "Microsoft Visio"
},
{
"value": "application/vnd.visio2013",
"label": "Microsoft Visio 2013"
},
{
"value": "application/vnd.ms-visio.drawing.macroenabled.main+xml",
"label": "Microsoft Visio macro-enabled drawing"
},
{
"value": "application/vnd.ms-visio.stencil.macroenabled.main+xml",
"label": "Microsoft Visio macro-enabled stencil"
},
{
"value": "application/vnd.ms-visio.template.macroenabled.main+xml",
"label": "Microsoft Visio macro-enabled template"
},
{
"value": "application/vnd.ms-visio.stencil.main+xml",
"label": "Microsoft Visio stencil"
},
{
"value": "application/vnd.ms-visio.template.main+xml",
"label": "Microsoft Visio template"
},
{
"value": "application/msword",
"label": "Microsoft Word"
},
{
"value": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"label": "Microsoft Word 2007"
},
{
"value": "application/vnd.ms-word.document.macroenabled.12",
"label": "Microsoft Word 2007 macro-enabled document"
},
{
"value": "application/vnd.ms-word.template.macroenabled.12",
"label": "Microsoft Word 2007 macro-enabled document template"
},
{
"value": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
"label": "Microsoft Word 2007 template"
},
{
"value": "image/x-raw-minolta",
"label": "Minolta RAW Image"
},
{
"value": "image/x-raw-nikon",
"label": "Nikon RAW Image"
},
{
"value": "audio/ogg",
"label": "Ogg Audio"
},
{
"value": "application/ogg",
"label": "Ogg Multiplex"
},
{
"value": "video/ogg",
"label": "Ogg Video"
},
{
"value": "audio/vorbis",
"label": "Ogg Vorbis Audio"
},
{
"value": "image/x-raw-olympus",
"label": "Olympus RAW Image"
},
{
"value": "application/vnd.oasis.opendocument.chart",
"label": "OpenDocument Chart"
},
{
"value": "application/vnd.oasis.opendocument.database",
"label": "OpenDocument Database"
},
{
"value": "application/vnd.oasis.opendocument.graphics",
"label": "OpenDocument Drawing"
},
{
"value": "application/vnd.oasis.opendocument.graphics-template",
"label": "OpenDocument Drawing Template"
},
{
"value": "application/vnd.oasis.opendocument.formula",
"label": "OpenDocument Formula"
},
{
"value": "application/vnd.oasis.opendocument.image",
"label": "OpenDocument Image"
},
{
"value": "application/vnd.oasis.opendocument.text-master",
"label": "OpenDocument Master Document"
},
{
"value": "application/vnd.oasis.opendocument.presentation",
"label": "OpenDocument Presentation"
},
{
"value": "application/vnd.oasis.opendocument.presentation-template",
"label": "OpenDocument Presentation Template"
},
{
"value": "application/vnd.oasis.opendocument.spreadsheet",
"label": "OpenDocument Spreadsheet"
},
{
"value": "application/vnd.oasis.opendocument.spreadsheet-template",
"label": "OpenDocument Spreadsheet Template"
},
{
"value": "application/vnd.oasis.opendocument.text",
"label": "OpenDocument Text (OpenOffice 2.0)"
},
{
"value": "application/vnd.oasis.opendocument.text-template",
"label": "OpenDocument Text Template"
},
{
"value": "application/vnd.sun.xml.calc",
"label": "OpenOffice 1.0/StarOffice6.0 Calc 6.0"
},
{
"value": "application/vnd.sun.xml.calc.template",
"label": "OpenOffice 1.0/StarOffice6.0 Calc 6.0 Template"
},
{
"value": "application/vnd.sun.xml.draw",
"label": "OpenOffice 1.0/StarOffice6.0 Draw 6.0"
},
{
"value": "application/vnd.sun.xml.impress",
"label": "OpenOffice 1.0/StarOffice6.0 Impress 6.0"
},
{
"value": "application/vnd.sun.xml.impress.template",
"label": "OpenOffice 1.0/StarOffice6.0 Impress 6.0 Template"
},
{
"value": "application/vnd.sun.xml.writer",
"label": "OpenOffice 1.0/StarOffice6.0 Writer 6.0"
},
{
"value": "application/vnd.sun.xml.writer.template",
"label": "OpenOffice 1.0/StarOffice6.0 Writer 6.0 Template"
},
{
"value": "image/png",
"label": "PNG Image"
},
{
"value": "image/x-raw-panasonic",
"label": "Panasonic RAW Image"
},
{
"value": "image/x-raw-pentax",
"label": "Pentax RAW Image"
},
{
"value": "image/x-portable-pixmap",
"label": "Pixmap Image"
},
{
"value": "text/plain",
"label": "Plain Text"
},
{
"value": "image/x-portable-bitmap",
"label": "Portable Bitmap"
},
{
"value": "application/postscript",
"label": "PostScript"
},
{
"value": "application/remote-printing",
"label": "Printer Text File"
},
{
"value": "video/quicktime",
"label": "Quicktime Video"
},
{
"value": "video/x-rad-screenplay",
"label": "RAD Screen Display"
},
{
"value": "application/x-rar-compressed",
"label": "RAR Archive"
},
{
"value": "image/x-raw-red",
"label": "RED RAW Image"
},
{
"value": "image/x-rgb",
"label": "RGB Image"
},
{
"value": "application/rss+xml",
"label": "RSS"
},
{
"value": "image/x-cmu-raster",
"label": "Raster Image"
},
{
"value": "text/richtext",
"label": "Rich Text"
},
{
"value": "application/rtf",
"label": "Rich Text Format"
},
{
"value": "video/x-sgi-movie",
"label": "SGI Video"
},
{
"value": "text/sgml",
"label": "SGML (Human Readable)"
},
{
"value": "application/sgml",
"label": "SGML (Machine Readable)"
},
{
"value": "image/svg+xml",
"label": "Scalable Vector Graphics Image"
},
{
"value": "application/x-sh",
"label": "Shell Script"
},
{
"value": "application/x-shockwave-flash",
"label": "Shockwave Flash"
},
{
"value": "image/x-raw-sigma",
"label": "Sigma RAW Image"
},
{
"value": "image/x-raw-sony",
"label": "Sony RAW Image"
},
{
"value": "application/vnd.stardivision.chart",
"label": "StarChart 5.x"
},
{
"value": "application/vnd.stardivision.calc",
"label": "StarCalc 5.x"
},
{
"value": "application/vnd.stardivision.draw",
"label": "StarDraw 5.x"
},
{
"value": "application/vnd.stardivision.impress",
"label": "StarImpress 5.x"
},
{
"value": "application/vnd.stardivision.impress-packed",
"label": "StarImpress Packed 5.x"
},
{
"value": "application/vnd.stardivision.math",
"label": "StarMath 5.x"
},
{
"value": "application/vnd.stardivision.writer",
"label": "StarWriter 5.x"
},
{
"value": "application/vnd.stardivision.writer-global",
"label": "StarWriter 5.x global"
},
{
"value": "text/css",
"label": "Style Sheet"
},
{
"value": "image/tiff",
"label": "TIFF Image"
},
{
"value": "text/tab-separated-values",
"label": "Tab Separated Values"
},
{
"value": "application/x-tar",
"label": "Tarball"
},
{
"value": "application/x-tex",
"label": "Tex"
},
{
"value": "application/x-texinfo",
"label": "Tex Info"
},
{
"value": "x-world/x-vrml",
"label": "VRML"
},
{
"value": "audio/x-wav",
"label": "WAV Audio"
},
{
"value": "video/webm",
"label": "WebM Video"
},
{
"value": "application/wordperfect",
"label": "WordPerfect"
},
{
"value": "image/x-xbitmap",
"label": "XBitmap Image"
},
{
"value": "application/xhtml+xml",
"label": "XHTML"
},
{
"value": "text/xml",
"label": "XML"
},
{
"value": "image/x-xpixmap",
"label": "XPixmap Image"
},
{
"value": "image/x-xwindowdump",
"label": "XWindow Dump"
},
{
"value": "application/x-compress",
"label": "Z Compress"
},
{
"value": "application/zip",
"label": "ZIP"
},
{
"value": "text/calendar",
"label": "iCalendar File"
}
],
"content-metadata": {
"presets": {
"custom": [

View File

@ -18,25 +18,21 @@ module.exports = () => {
],
files: [
{
pattern:
'./node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json',
pattern: './node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json',
watched: false,
served: true,
included: false
},
{
pattern:
'./node_modules/@alfresco/adf-content-services/bundles/assets/adf-content-services/i18n/en.json',
pattern: './node_modules/@alfresco/adf-content-services/bundles/assets/adf-content-services/i18n/en.json',
watched: false,
served: true,
included: false
}
],
proxies: {
'/assets/adf-core/i18n/en-GB.json':
'/base/node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json',
'/assets/adf-core/i18n/en.json':
'/base/node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json',
'/assets/adf-core/i18n/en-GB.json': '/base/node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json',
'/assets/adf-core/i18n/en.json': '/base/node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json',
'/assets/adf-content-services/i18n/en.json':
'/base/node_modules/@alfresco/adf-content-services/bundles/assets/adf-content-services/i18n/en.json',
'/assets/adf-content-services/i18n/en-GB.json':
@ -49,10 +45,10 @@ module.exports = () => {
// for example, you can disable the random execution with `random: false`
// or set a specific seed with `seed: 4321`
},
clearContext: false, // leave Jasmine Spec Runner output visible in browser
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
jasmineHtmlReporter: {
suppressAll: true, // removes the duplicated traces
suppressAll: true // removes the duplicated traces
},
coverageReporter: {
@ -63,7 +59,7 @@ module.exports = () => {
global: {
statements: 75,
branches: 67,
functions: 73,
functions: 72,
lines: 74
}
}
@ -78,12 +74,7 @@ module.exports = () => {
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--no-sandbox',
'--headless',
'--disable-gpu',
'--remote-debugging-port=9222'
]
flags: ['--no-sandbox', '--headless', '--disable-gpu', '--remote-debugging-port=9222']
}
},
singleRun: true,

View File

@ -24,11 +24,11 @@
import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';
import { DEV_MODE_TOKEN } from './dev-mode.tokens';
import { AboutModule, AppConfigService, AuthenticationService, RepositoryInfo } from '@alfresco/adf-core';
import { AboutModule, AuthenticationService, RepositoryInfo } from '@alfresco/adf-core';
import { DiscoveryApiService } from '@alfresco/adf-content-services';
import { PACKAGE_JSON } from './package-json.token';
import { TranslateModule } from '@ngx-translate/core';
import { AppExtensionService, PageLayoutComponent } from '@alfresco/aca-shared';
import { AppExtensionService, AppSettingsService, PageLayoutComponent } from '@alfresco/aca-shared';
import { RouterModule } from '@angular/router';
import { MatIconModule } from '@angular/material/icon';
import { CommonModule } from '@angular/common';
@ -45,14 +45,14 @@ import { MatButtonModule } from '@angular/material/button';
export class AboutComponent implements OnInit {
private authService = inject(AuthenticationService);
private appExtensions = inject(AppExtensionService);
private appSettings = inject(AppSettingsService);
private discovery = inject(DiscoveryApiService);
private appConfigService = inject(AppConfigService);
public packageJson? = inject(PACKAGE_JSON, { optional: true });
public dev = inject(DEV_MODE_TOKEN);
extensions$ = this.appExtensions.references$;
repository: RepositoryInfo = null;
landingPage = this.appConfigService.get('landingPage', '/personal-files');
landingPage = this.appSettings.landingPage;
ngOnInit(): void {
if (this.authService.isEcmLoggedIn()) {

View File

@ -28,7 +28,6 @@ import { CoreTestingModule } from '@alfresco/adf-core';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
import { tagMock, mimeTypeMock, simpleConditionUnknownFieldMock, categoriesListMock } from '../../mock/conditions.mock';
import { MimeType } from './rule-mime-types';
import { CategoryService, TagService } from '@alfresco/adf-content-services';
import { of } from 'rxjs';
import { RuleSimpleCondition } from '../../model/rule-simple-condition.model';
@ -38,6 +37,7 @@ import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';
import { AlfrescoMimeType } from '@alfresco/aca-shared';
describe('RuleSimpleConditionUiComponent', () => {
let fixture: ComponentFixture<RuleSimpleConditionUiComponent>;
@ -100,7 +100,7 @@ describe('RuleSimpleConditionUiComponent', () => {
});
it('should hide the comparator select box if the type of the field is mimeType', async () => {
fixture.componentInstance.mimeTypes = [{ value: '', label: '' } as MimeType];
fixture.componentInstance.mimeTypes = [{ value: '', label: '' } as AlfrescoMimeType];
fixture.detectChanges();
const comparatorFormField = getByDataAutomationId('comparator-form-field').nativeElement;
@ -152,7 +152,7 @@ describe('RuleSimpleConditionUiComponent', () => {
});
it('should provide select option when mimeType is selected and value filled', () => {
const mockMimeTypes: MimeType[] = [
const mockMimeTypes: AlfrescoMimeType[] = [
{
value: 'video/3gpp',
label: '3G Video'

View File

@ -22,13 +22,11 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { Component, forwardRef, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { Component, forwardRef, inject, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
import { RuleSimpleCondition } from '../../model/rule-simple-condition.model';
import { comparatorHiddenForConditionFieldType, RuleConditionField, ruleConditionFields } from './rule-condition-fields';
import { RuleConditionComparator, ruleConditionComparators } from './rule-condition-comparators';
import { AppConfigService } from '@alfresco/adf-core';
import { MimeType } from './rule-mime-types';
import { AsyncPipe, CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
import { MatFormFieldModule } from '@angular/material/form-field';
@ -41,6 +39,7 @@ import { Subject, Subscription } from 'rxjs';
import { MatOptionModule } from '@angular/material/core';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { CategoryEntry } from '@alfresco/js-api';
import { AlfrescoMimeType, AppSettingsService } from '@alfresco/aca-shared';
interface AutoCompleteOption {
displayLabel: string;
@ -77,21 +76,24 @@ const AUTOCOMPLETE_OPTIONS_DEBOUNCE_TIME = 500;
]
})
export class RuleSimpleConditionUiComponent implements OnInit, ControlValueAccessor, OnDestroy {
private appSettings = inject(AppSettingsService);
private categoryService = inject(CategoryService);
private tagService = inject(TagService);
form = new FormGroup({
field: new FormControl('cm:name'),
comparator: new FormControl('equals'),
parameter: new FormControl()
});
mimeTypes: MimeType[] = [];
mimeTypes: AlfrescoMimeType[] = [];
autoCompleteOptions: AutoCompleteOption[] = [];
showLoadingSpinner: boolean;
private onDestroy$ = new Subject<void>();
private autoCompleteOptionsSubscription: Subscription;
private _readOnly = false;
@Input()
get readOnly(): boolean {
return this._readOnly;
@ -107,9 +109,10 @@ export class RuleSimpleConditionUiComponent implements OnInit, ControlValueAcces
(condition) => !((this.disabledTags && condition.name === 'tag') || (this.disabledCategories && condition.name === 'category'))
);
constructor(config: AppConfigService, private categoryService: CategoryService, private tagService: TagService) {
this.mimeTypes = config.get<Array<MimeType>>('mimeTypes');
constructor() {
this.mimeTypes = this.appSettings.mimeTypes;
}
get isSelectedFieldKnown(): boolean {
const selectedFieldName = this.form.get('field').value;
return this.fields.findIndex((field: RuleConditionField) => selectedFieldName === field.name) > -1;

View File

@ -24,7 +24,7 @@
import { TestBed } from '@angular/core/testing';
import { AosEditOnlineService } from './aos-extension.service';
import { AppConfigService, AuthenticationService, AuthModule, LogService, NotificationService } from '@alfresco/adf-core';
import { AppConfigService, AuthenticationService, AuthModule, NotificationService } from '@alfresco/adf-core';
import { LibTestingModule } from '@alfresco/aca-shared';
import { MatSnackBarModule } from '@angular/material/snack-bar';
@ -37,8 +37,7 @@ describe('AosEditOnlineService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [LibTestingModule, MatSnackBarModule, AuthModule.forRoot()],
providers: [{ provide: LogService, useValue: { error() {} } }]
imports: [LibTestingModule, MatSnackBarModule, AuthModule.forRoot()]
});
aosEditOnlineService = TestBed.inject(AosEditOnlineService);

View File

@ -23,10 +23,11 @@
*/
/* cspell:disable */
import { AppConfigService, AuthenticationService, LogService, NotificationService } from '@alfresco/adf-core';
import { AuthenticationService, NotificationService } from '@alfresco/adf-core';
import { Injectable } from '@angular/core';
import { Node } from '@alfresco/js-api';
import { getFileExtension, supportedExtensions } from '@alfresco/aca-shared/rules';
import { AppSettingsService } from '@alfresco/aca-shared';
export interface IAosEditOnlineService {
onActionEditOnlineAos(node: Node): void;
@ -38,9 +39,8 @@ export interface IAosEditOnlineService {
export class AosEditOnlineService implements IAosEditOnlineService {
constructor(
private authenticationService: AuthenticationService,
private appConfigService: AppConfigService,
private notificationService: NotificationService,
private logService: LogService
private appSettings: AppSettingsService,
private notificationService: NotificationService
) {}
onActionEditOnlineAos(node: Node): void {
@ -77,7 +77,6 @@ export class AosEditOnlineService implements IAosEditOnlineService {
}
private onAlreadyLockedNotification(nodeId: string, lockOwner: string) {
this.logService.error('Document already locked by another user');
this.notificationService.showError(`AOS.ERRORS.ALREADY_LOCKED`, null, {
nodeId,
lockOwner
@ -89,7 +88,7 @@ export class AosEditOnlineService implements IAosEditOnlineService {
}
private triggerEditOnlineAos(node: Node): void {
const aosHost = this.appConfigService.get('aosHost');
const aosHost = this.appSettings.aosHost;
let url: string;
const pathElements = (node.path?.elements || []).map((segment) => segment.name);
@ -110,13 +109,11 @@ export class AosEditOnlineService implements IAosEditOnlineService {
const protocolHandler = this.getProtocolForFileExtension(fileExtension);
if (protocolHandler === undefined) {
this.logService.error('Protocol handler missing');
this.notificationService.showError(`AOS.ERRORS.MISSING_PROTOCOL_HANDLER`, null, { nodeName: node.name });
return;
}
if (!this.isWindows() && !this.isMacOs()) {
this.logService.error('Unsupported platform');
this.notificationService.showError('AOS.ERRORS.UNSUPPORTED_PLATFORM');
} else {
this.openByUrl(protocolHandler, url);

View File

@ -23,28 +23,26 @@
*/
import { HomeComponent } from './home.component';
import { AppConfigService, AppConfigServiceMock } from '@alfresco/adf-core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Router } from '@angular/router';
import { HttpClientModule } from '@angular/common/http';
import { RouterTestingModule } from '@angular/router/testing';
import { AppSettingsService } from '@alfresco/aca-shared';
describe('HomeComponent', () => {
let appConfig: AppConfigService;
let appSettings: AppSettingsService;
let fixture: ComponentFixture<HomeComponent>;
let router: Router;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientModule, RouterTestingModule, HomeComponent],
providers: [{ provide: AppConfigService, useClass: AppConfigServiceMock }]
imports: [HttpClientModule, RouterTestingModule, HomeComponent]
});
appSettings = TestBed.inject(AppSettingsService);
spyOnProperty(appSettings, 'landingPage', 'get').and.returnValue('/my-mock-landing-page');
fixture = TestBed.createComponent(HomeComponent);
router = TestBed.inject(Router);
appConfig = TestBed.inject(AppConfigService);
appConfig.config = Object.assign(appConfig.config, {
landingPage: '/my-mock-landing-page'
});
});
it('should navigate to the landing page from the app config', () => {
@ -53,12 +51,4 @@ describe('HomeComponent', () => {
expect(navigateSpy).toHaveBeenCalledWith('/my-mock-landing-page');
});
it('should navigate to personal files by default when there is no landingPage defined', () => {
appConfig.config = {};
const navigateSpy = spyOn(router, 'navigateByUrl');
fixture.detectChanges();
expect(navigateSpy).toHaveBeenCalledWith('/personal-files');
});
});

View File

@ -22,9 +22,9 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';
import { Router } from '@angular/router';
import { AppConfigService } from '@alfresco/adf-core';
import { AppSettingsService } from '@alfresco/aca-shared';
@Component({
standalone: true,
@ -32,12 +32,10 @@ import { AppConfigService } from '@alfresco/adf-core';
encapsulation: ViewEncapsulation.None
})
export class HomeComponent implements OnInit {
readonly DEFAULT_LANDING_PAGE = '/personal-files';
constructor(private appConfig: AppConfigService, private router: Router) {}
private appSettings = inject(AppSettingsService);
private router = inject(Router);
ngOnInit() {
const landingPage = this.appConfig.get('landingPage', this.DEFAULT_LANDING_PAGE);
this.router.navigateByUrl(landingPage);
this.router.navigateByUrl(this.appSettings.landingPage);
}
}

View File

@ -26,9 +26,8 @@ import { Component, EventEmitter, inject, OnDestroy, OnInit, Output, ViewEncapsu
import { Store } from '@ngrx/store';
import { Subject } from 'rxjs';
import { AppStore, getAppName, getLogoPath } from '@alfresco/aca-shared/store';
import { AppConfigService } from '@alfresco/adf-core';
import { ContentActionRef } from '@alfresco/adf-extensions';
import { AppExtensionService, ToolbarComponent } from '@alfresco/aca-shared';
import { AppExtensionService, AppSettingsService, ToolbarComponent } from '@alfresco/aca-shared';
import { takeUntil } from 'rxjs/operators';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';
@ -45,12 +44,12 @@ import { RouterModule } from '@angular/router';
export class SidenavHeaderComponent implements OnInit, OnDestroy {
private onDestroy$ = new Subject<boolean>();
private store = inject<Store<AppStore>>(Store);
private appConfigService = inject(AppConfigService);
private appSettings = inject(AppSettingsService);
private appExtensions = inject(AppExtensionService);
appName$ = this.store.select(getAppName);
logo$ = this.store.select(getLogoPath);
landingPage = this.appConfigService.get('landingPage', '/personal-files');
landingPage = this.appSettings.landingPage;
actions: Array<ContentActionRef> = [];
@Output()

View File

@ -22,7 +22,4 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
export interface MimeType {
label: string;
value: string;
}
export * from './mime-types';

View File

@ -0,0 +1,220 @@
/*!
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* This file is part of the Alfresco Example Content Application.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
/* eslint-disable @cspell/spellchecker */
export interface AlfrescoMimeType {
label: string;
value: string;
}
export const DefaultMimeTypes: AlfrescoMimeType[] = [
{ value: 'video/3gpp', label: '3G Video' },
{ value: 'video/3gpp2', label: '3G2 Video' },
{ value: 'application/vnd.alfresco.ai.features.v1+json', label: 'AI-Features' },
{ value: 'application/vnd.alfresco.ai.labels.v1+json', label: 'AI-Labels' },
{ value: 'application/vnd.alfresco.ai.pii.entities.v1+json', label: 'AI-PII-Entities' },
{ value: 'application/vnd.alfresco.ai.speech-to-text.v1+json', label: 'AI-SpeechToText' },
{ value: 'application/vnd.alfresco.ai.textract.v1+json', label: 'AI-Textract' },
{ value: 'audio/x-aiff', label: 'AIFF Audio' },
{ value: 'application/vnd.adobe.air-application-installer-package+zip', label: 'Adobe AIR' },
{ value: 'application/vnd.adobe.xdp+xml', label: 'Adobe Acrobat XML Data Package' },
{ value: 'application/vnd.adobe.aftereffects.project', label: 'Adobe AfterEffects Project' },
{ value: 'application/vnd.adobe.aftereffects.template', label: 'Adobe AfterEffects Template' },
{ value: 'image/x-raw-adobe', label: 'Adobe Digital Negative Image' },
{ value: 'application/x-zip', label: 'Adobe Flex Project File' },
{ value: 'application/framemaker', label: 'Adobe FrameMaker' },
{ value: 'application/illustrator', label: 'Adobe Illustrator File' },
{ value: 'application/x-indesign', label: 'Adobe InDesign Document' },
{ value: 'application/pdf', label: 'Adobe PDF Document' },
{ value: 'application/pagemaker', label: 'Adobe PageMaker' },
{ value: 'image/vnd.adobe.photoshop', label: 'Adobe Photoshop' },
{ value: 'image/vnd.adobe.premiere', label: 'Adobe Premiere' },
{ value: 'audio/vnd.adobe.soundbooth', label: 'Adobe SoundBooth' },
{ value: 'application/acp', label: 'Alfresco Content Package' },
{ value: 'application/vnd.android.package-archive', label: 'Android Package' },
{ value: 'image/x-portable-anymap', label: 'Anymap Image' },
{ value: 'image/icns', label: 'Apple Icon' },
{ value: 'application/vnd.apple.keynote', label: 'Apple iWork Keynote' },
{ value: 'application/vnd.apple.numbers', label: 'Apple iWork Numbers' },
{ value: 'application/vnd.apple.pages', label: 'Apple iWork Pages' },
{ value: 'image/vnd.dwg', label: 'AutoCAD Drawing' },
{ value: 'image/x-dwt', label: 'AutoCAD Template' },
{ value: 'audio/basic', label: 'Basic Audio' },
{ value: 'application/x-dosexec', label: 'Binary File' },
{ value: 'application/octet-stream', label: 'Binary File (Octet Stream)' },
{ value: 'image/bmp', label: 'Bitmap Image' },
{ value: 'image/cgm', label: 'CGM Image' },
{ value: 'image/x-raw-canon', label: 'Canon RAW Image' },
{ value: 'text/csv', label: 'Comma Separated Values (CSV)' },
{ value: 'application/dita+xml', label: 'DITA' },
{ value: 'message/rfc822', label: 'EMail' },
{ value: 'application/eps', label: 'EPS Type PostScript' },
{ value: 'audio/x-flac', label: 'FLAC Audio' },
{ value: 'application/x-fla', label: 'Flash Source' },
{ value: 'video/x-flv', label: 'Flash Video' },
{ value: 'image/x-raw-fuji', label: 'Fuji RAW Image' },
{ value: 'image/gif', label: 'GIF Image' },
{ value: 'application/x-gzip', label: 'GZIP' },
{ value: 'application/x-gtar', label: 'GZIP Tarball' },
{ value: 'image/x-portable-graymap', label: 'Greymap Image' },
{ value: 'text/html', label: 'HTML' },
{ value: 'application/vnd.oasis.opendocument.text-web', label: 'HTML Document Template' },
{ value: 'image/x-raw-hasselblad', label: 'Hasselblad RAW Image' },
{ value: 'image/ief', label: 'IEF Image' },
{ value: 'image/jp2', label: 'JPEG 2000 Image' },
{ value: 'image/jpeg', label: 'JPEG Image' },
{ value: 'application/json', label: 'JSON' },
{ value: 'application/java-archive', label: 'Java Archive' },
{ value: 'application/java', label: 'Java Class' },
{ value: 'text/x-jsp', label: 'Java Server Page' },
{ value: 'text/x-java-source', label: 'Java Source File' },
{ value: 'application/x-javascript', label: 'JavaScript' },
{ value: 'image/x-raw-kodak', label: 'Kodak RAW Image' },
{ value: 'application/x-latex', label: 'LaTeX' },
{ value: 'image/x-raw-leica', label: 'Leica RAW Image' },
{ value: 'audio/mpeg', label: 'MPEG Audio' },
{ value: 'video/mp2t', label: 'MPEG Transport Stream' },
{ value: 'video/mpeg', label: 'MPEG Video' },
{ value: 'video/mpeg2', label: 'MPEG2 Video' },
{ value: 'audio/mp4', label: 'MPEG4 Audio' },
{ value: 'video/mp4', label: 'MPEG4 Video' },
{ value: 'video/x-m4v', label: 'MPEG4 Video (m4v)' },
{ value: 'video/x-ms-asf', label: 'MS ASF Streaming Video' },
{ value: 'video/x-msvideo', label: 'MS Video' },
{ value: 'audio/x-ms-wma', label: 'MS WMA Streaming Audio' },
{ value: 'video/x-ms-wmv', label: 'MS WMV Streaming Video' },
{ value: 'application/x-troff-man', label: 'Man Page' },
{ value: 'text/x-markdown', label: 'Markdown' },
{ value: 'text/mediawiki', label: 'MediaWiki Markup' },
{ value: 'application/vnd.ms-excel', label: 'Microsoft Excel' },
{ value: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', label: 'Microsoft Excel 2007' },
{ value: 'application/vnd.ms-excel.addin.macroenabled.12', label: 'Microsoft Excel 2007 add-in' },
{ value: 'application/vnd.ms-excel.sheet.binary.macroenabled.12', label: 'Microsoft Excel 2007 binary workbook' },
{ value: 'application/vnd.ms-excel.sheet.macroenabled.12', label: 'Microsoft Excel 2007 macro-enabled workbook' },
{ value: 'application/vnd.ms-excel.template.macroenabled.12', label: 'Microsoft Excel 2007 macro-enabled workbook template' },
{ value: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', label: 'Microsoft Excel template 2007' },
{ value: 'application/vnd.ms-outlook', label: 'Microsoft Outlook Message' },
{ value: 'application/vnd.ms-powerpoint', label: 'Microsoft PowerPoint' },
{ value: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', label: 'Microsoft PowerPoint 2007' },
{ value: 'application/vnd.ms-powerpoint.addin.macroenabled.12', label: 'Microsoft PowerPoint 2007 add-in' },
{ value: 'application/vnd.ms-powerpoint.presentation.macroenabled.12', label: 'Microsoft PowerPoint 2007 macro-enabled presentation' },
{ value: 'application/vnd.ms-powerpoint.template.macroenabled.12', label: 'Microsoft PowerPoint 2007 macro-enabled presentation template' },
{ value: 'application/vnd.ms-powerpoint.slide.macroenabled.12', label: 'Microsoft PowerPoint 2007 macro-enabled slide' },
{ value: 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', label: 'Microsoft PowerPoint 2007 macro-enabled slide show' },
{ value: 'application/vnd.openxmlformats-officedocument.presentationml.slide', label: 'Microsoft PowerPoint 2007 slide' },
{ value: 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', label: 'Microsoft PowerPoint 2007 slide show' },
{ value: 'application/vnd.openxmlformats-officedocument.presentationml.template', label: 'Microsoft PowerPoint 2007 template' },
{ value: 'application/vnd.ms-project', label: 'Microsoft Project' },
{ value: 'application/vnd.visio', label: 'Microsoft Visio' },
{ value: 'application/vnd.visio2013', label: 'Microsoft Visio 2013' },
{ value: 'application/vnd.ms-visio.drawing.macroenabled.main+xml', label: 'Microsoft Visio macro-enabled drawing' },
{ value: 'application/vnd.ms-visio.stencil.macroenabled.main+xml', label: 'Microsoft Visio macro-enabled stencil' },
{ value: 'application/vnd.ms-visio.template.macroenabled.main+xml', label: 'Microsoft Visio macro-enabled template' },
{ value: 'application/vnd.ms-visio.stencil.main+xml', label: 'Microsoft Visio stencil' },
{ value: 'application/vnd.ms-visio.template.main+xml', label: 'Microsoft Visio template' },
{ value: 'application/msword', label: 'Microsoft Word' },
{ value: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', label: 'Microsoft Word 2007' },
{ value: 'application/vnd.ms-word.document.macroenabled.12', label: 'Microsoft Word 2007 macro-enabled document' },
{ value: 'application/vnd.ms-word.template.macroenabled.12', label: 'Microsoft Word 2007 macro-enabled document template' },
{ value: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', label: 'Microsoft Word 2007 template' },
{ value: 'image/x-raw-minolta', label: 'Minolta RAW Image' },
{ value: 'image/x-raw-nikon', label: 'Nikon RAW Image' },
{ value: 'audio/ogg', label: 'Ogg Audio' },
{ value: 'application/ogg', label: 'Ogg Multiplex' },
{ value: 'video/ogg', label: 'Ogg Video' },
{ value: 'audio/vorbis', label: 'Ogg Vorbis Audio' },
{ value: 'image/x-raw-olympus', label: 'Olympus RAW Image' },
{ value: 'application/vnd.oasis.opendocument.chart', label: 'OpenDocument Chart' },
{ value: 'application/vnd.oasis.opendocument.database', label: 'OpenDocument Database' },
{ value: 'application/vnd.oasis.opendocument.graphics', label: 'OpenDocument Drawing' },
{ value: 'application/vnd.oasis.opendocument.graphics-template', label: 'OpenDocument Drawing Template' },
{ value: 'application/vnd.oasis.opendocument.formula', label: 'OpenDocument Formula' },
{ value: 'application/vnd.oasis.opendocument.image', label: 'OpenDocument Image' },
{ value: 'application/vnd.oasis.opendocument.text-master', label: 'OpenDocument Master Document' },
{ value: 'application/vnd.oasis.opendocument.presentation', label: 'OpenDocument Presentation' },
{ value: 'application/vnd.oasis.opendocument.presentation-template', label: 'OpenDocument Presentation Template' },
{ value: 'application/vnd.oasis.opendocument.spreadsheet', label: 'OpenDocument Spreadsheet' },
{ value: 'application/vnd.oasis.opendocument.spreadsheet-template', label: 'OpenDocument Spreadsheet Template' },
{ value: 'application/vnd.oasis.opendocument.text', label: 'OpenDocument Text (OpenOffice 2.0)' },
{ value: 'application/vnd.oasis.opendocument.text-template', label: 'OpenDocument Text Template' },
{ value: 'application/vnd.sun.xml.calc', label: 'OpenOffice 1.0/StarOffice6.0 Calc 6.0' },
{ value: 'application/vnd.sun.xml.calc.template', label: 'OpenOffice 1.0/StarOffice6.0 Calc 6.0 Template' },
{ value: 'application/vnd.sun.xml.draw', label: 'OpenOffice 1.0/StarOffice6.0 Draw 6.0' },
{ value: 'application/vnd.sun.xml.impress', label: 'OpenOffice 1.0/StarOffice6.0 Impress 6.0' },
{ value: 'application/vnd.sun.xml.impress.template', label: 'OpenOffice 1.0/StarOffice6.0 Impress 6.0 Template' },
{ value: 'application/vnd.sun.xml.writer', label: 'OpenOffice 1.0/StarOffice6.0 Writer 6.0' },
{ value: 'application/vnd.sun.xml.writer.template', label: 'OpenOffice 1.0/StarOffice6.0 Writer 6.0 Template' },
{ value: 'image/png', label: 'PNG Image' },
{ value: 'image/x-raw-panasonic', label: 'Panasonic RAW Image' },
{ value: 'image/x-raw-pentax', label: 'Pentax RAW Image' },
{ value: 'image/x-portable-pixmap', label: 'Pixmap Image' },
{ value: 'text/plain', label: 'Plain Text' },
{ value: 'image/x-portable-bitmap', label: 'Portable Bitmap' },
{ value: 'application/postscript', label: 'PostScript' },
{ value: 'application/remote-printing', label: 'Printer Text File' },
{ value: 'video/quicktime', label: 'Quicktime Video' },
{ value: 'video/x-rad-screenplay', label: 'RAD Screen Display' },
{ value: 'application/x-rar-compressed', label: 'RAR Archive' },
{ value: 'image/x-raw-red', label: 'RED RAW Image' },
{ value: 'image/x-rgb', label: 'RGB Image' },
{ value: 'application/rss+xml', label: 'RSS' },
{ value: 'image/x-cmu-raster', label: 'Raster Image' },
{ value: 'text/richtext', label: 'Rich Text' },
{ value: 'application/rtf', label: 'Rich Text Format' },
{ value: 'video/x-sgi-movie', label: 'SGI Video' },
{ value: 'text/sgml', label: 'SGML (Human Readable)' },
{ value: 'application/sgml', label: 'SGML (Machine Readable)' },
{ value: 'image/svg+xml', label: 'Scalable Vector Graphics Image' },
{ value: 'application/x-sh', label: 'Shell Script' },
{ value: 'application/x-shockwave-flash', label: 'Shockwave Flash' },
{ value: 'image/x-raw-sigma', label: 'Sigma RAW Image' },
{ value: 'image/x-raw-sony', label: 'Sony RAW Image' },
{ value: 'application/vnd.stardivision.chart', label: 'StarChart 5.x' },
{ value: 'application/vnd.stardivision.calc', label: 'StarCalc 5.x' },
{ value: 'application/vnd.stardivision.draw', label: 'StarDraw 5.x' },
{ value: 'application/vnd.stardivision.impress', label: 'StarImpress 5.x' },
{ value: 'application/vnd.stardivision.impress-packed', label: 'StarImpress Packed 5.x' },
{ value: 'application/vnd.stardivision.math', label: 'StarMath 5.x' },
{ value: 'application/vnd.stardivision.writer', label: 'StarWriter 5.x' },
{ value: 'application/vnd.stardivision.writer-global', label: 'StarWriter 5.x global' },
{ value: 'text/css', label: 'Style Sheet' },
{ value: 'image/tiff', label: 'TIFF Image' },
{ value: 'text/tab-separated-values', label: 'Tab Separated Values' },
{ value: 'application/x-tar', label: 'Tarball' },
{ value: 'application/x-tex', label: 'Tex' },
{ value: 'application/x-texinfo', label: 'Tex Info' },
{ value: 'x-world/x-vrml', label: 'VRML' },
{ value: 'audio/x-wav', label: 'WAV Audio' },
{ value: 'video/webm', label: 'WebM Video' },
{ value: 'application/wordperfect', label: 'WordPerfect' },
{ value: 'image/x-xbitmap', label: 'XBitmap Image' },
{ value: 'application/xhtml+xml', label: 'XHTML' },
{ value: 'text/xml', label: 'XML' },
{ value: 'image/x-xpixmap', label: 'XPixmap Image' },
{ value: 'image/x-xwindowdump', label: 'XWindow Dump' },
{ value: 'application/x-compress', label: 'Z Compress' },
{ value: 'application/zip', label: 'ZIP' },
{ value: 'text/calendar', label: 'iCalendar File' }
];

View File

@ -0,0 +1,54 @@
/*!
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* This file is part of the Alfresco Example Content Application.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { inject, Injectable } from '@angular/core';
import { AppConfigService } from '@alfresco/adf-core';
import { AlfrescoMimeType, DefaultMimeTypes } from '../constants/mime-types';
@Injectable({ providedIn: 'root' })
export class AppSettingsService {
private appConfig = inject(AppConfigService);
/**
* Get the AOS (Alfresco Office Services) host URL from the app settings.
*/
get aosHost(): string {
return this.appConfig.get<string>('aosHost');
}
/**
* Get the default landing page from the app settings.
* Default value: `/personal-files`.
*/
get landingPage(): string {
return this.appConfig.get<string>('landingPage', '/personal-files');
}
/**
* Get the list of mime types from the app settings.
*/
get mimeTypes(): AlfrescoMimeType[] {
return this.appConfig.get<AlfrescoMimeType[]>('mimeTypes', DefaultMimeTypes);
}
}

View File

@ -39,7 +39,7 @@ export * from './lib/components/info-drawer/info-drawer.component';
export * from './lib/components/document-base-page/document-base-page.component';
export * from './lib/components/document-base-page/document-base-page.service';
export * from './lib/components/open-in-app/open-in-app.component';
export * from './lib/constants';
export * from './lib/directives/contextmenu/contextmenu.directive';
export * from './lib/directives/pagination.directive';
@ -56,6 +56,7 @@ export * from './lib/services/app.extension.service';
export * from './lib/services/router.extension.service';
export * from './lib/services/app-hook.service';
export * from './lib/services/aca-file-auto-download.service';
export * from './lib/services/app-settings.service';
export * from './lib/utils/node.utils';
export * from './lib/testing/lib-testing-module';