Ontica/Empiria.Land.Intranet

View on GitHub
src/app/main-layout/common-models/common.ts

Summary

Maintainability
A
40 mins
Test Coverage
/**
 * @license
 * Copyright (c) La Vía Óntica SC, Ontica LLC and contributors. All rights reserved.
 *
 * See LICENSE.txt in the project root for complete license information.
 */


export interface AppData {
  name: string;
  nameShort: string;
  organization: string;
  organizationShort: string;
  hint: string;
  description: string;
}


export interface AppLayout {
  displayLogo: boolean;
  displayNavbarHeader: boolean;
  displayNavbarHint: boolean;
  displayMenuUser: boolean;
  displayChangeLanguage: boolean;
  displayChangePassword: boolean;
  displaySubMenu: boolean;
  displayHeader: boolean;
  displayFooter: boolean;
}

export interface AppSecurity {
  fakeLogin: boolean;
  enablePermissions: boolean;
  encriptLocalStorageData: boolean;
  protectUserWork: boolean;
}


export interface AppConfig {
  data: AppData;
  security: AppSecurity;
  layout: AppLayout;
}


export type LayoutType = 'Transactions' | 'Search' | 'HistoricRegistration' | 'SystemManagement' |
                         'Unauthorized';


export interface Layout {
  name: LayoutType;
  views: View[];
  hint: string;
  defaultTitle: string;
  url: string;
  permission?: string;
}


export type ViewActionType = 'None' | 'ActionFilter' | 'ActionCreate' | 'ActionExport' | 'ActionImport' |
                             'ActionChangeStatus';


export interface View {
  name: string;
  title: string;
  url: string;
  menuTitle?: string;
  disabled?: boolean;
  hidden?: boolean;
  permission?: string;
  actions?: ViewAction[];
}


export interface ViewAction {
  action: ViewActionType;
  name: string;
  icon?: string;
  permission?: string;
}


export const DefaultView: View = {
  name: 'Default view',
  title: 'Default view',
  url: '/',
};