import { Component } from '@angular/core';
import {AppInstructionComponent} from './common/app-instruction.component';

@Component({
  selector: 'app-dashboard',
  templateUrl: './dashboard.component.html'
})
export class DashboardComponent {

  viewInstructionModalOpen = false;
  activeMenu = '';

  expandedMenu = {
    parameter: false,
    supplier: false,
    socService: false,
    roles: false,
    journal: false
  };

  expandedRoles = {
    admin: false,
    adminParameter: false,
    adminSupplier: false,
    adminSocService: false,
    adminUsers: false,
    adminJournal: false,
    editor: false,
    editorParameter: false,
    editorSupplier: false,
    editorSocService: false,
    editorUsers: false,
    editorJournal: false,
    viewer: false,
    viewerParameter: false,
    viewerSupplier: false,
    viewerSocService: false,
    viewerUsers: false,
    viewerJournal: false
  };

  roles = [
    {code: 'admin', caption: 'Администратор'},
    {code: 'editor', caption: 'Редактор данных'},
    {code: 'viewer', caption: 'Просмотр'}
  ];

  constructor(public appInstructionComponent: AppInstructionComponent) {}

  setDefaultActive() {
    this.expandedMenu = {
      parameter: false,
      supplier: false,
      socService: false,
      roles: false,
      journal: false
    };
  }

  setActiveMenu(activeMenuButton: string) {
    this.setDefaultActive();
    this.expandedMenu[activeMenuButton] = true;
    this.activeMenu = activeMenuButton;
  }

  getInstruction() {
    return this.appInstructionComponent.instructions[this.activeMenu];
  }

  getRightsParameter(code: string) {
    if (code === 'admin' || code === 'editor') {
      return '<li>Просмотр информации</li><li>Сохранение новых данных</li><li>Редактирование ранее сохраненных данных</li><li>Удаление информации</li>';
    }
    return '<li>Просмотр информации</li>';
  }

  getRightsSupplierAndSocService(code: string) {
    if (code === 'admin') {
      return '<li>Просмотр информации</li><li>Сохранение новых данных</li><li>Редактирование ранее сохраненных данных</li><li>Удаление информации</li>';
    }
    if (code === 'editor') {
      return '<li>Просмотр информации</li><li>Сохранение новых данных</li><li>Редактирование ранее сохраненных данных</li>';
    }
    return '<li>Просмотр информации</li>';
  }

  getRightsUserAndJournal(code: string) {
    if (code === 'admin') {
      return '<li>Просмотр информации</li><li>Сохранение новых данных</li><li>Редактирование ранее сохраненных данных</li><li>Удаление информации</li>';
    }
    return '<li>Доступ к разделу отсутствует</li>';
  }
}
