Commit d30e5802 authored by Sebastian Chicoma's avatar Sebastian Chicoma

Correcciones post revisión

parent 8f00e57d
......@@ -30,7 +30,8 @@
<ng-container matColumnDef="{{template.name}}"
*ngFor="let template of columnTemplateArray">
<div *ngIf="template.sortable">
<th mat-header-cell *matHeaderCellDef mat-sort-header>
<th mat-header-cell *matHeaderCellDef mat-sort-header
[ngClass]="{'th-avatar': template['name'] === 'avatar', 'text-right': template['name'] === 'id'}">
{{ template.title | translate }}
<mat-icon *ngIf="sortColumn===template?.name">
<i class="fa fa-sort-amount-desc"
......@@ -45,13 +46,14 @@
</th>
</div>
<td mat-cell *matCellDef="let item"
[style.width]="template.width ? template.width : ''"
[ngClass]="{'td-view': !this.resourceAuth['view']}" (click)="view(item)">
[style.width]="template.style.width ? template.style.width : ''"
[ngClass]="{'td-view': !this.resourceAuth['view'], 'text-right': template['name'] === 'id'}"
(click)="view(item)">
<div *ngIf="template['name'] !== 'avatar'">
<span class="label"
[ngClass]="{'label-success': item[template['name']] === 'DP', 'label-default': item[template['name']] === 'CR'}"
<span class="label" [ngClass]="{'label-success': item[template['name']] === 'DP', 'label-default': item[template['name']] === 'CR',
'label-warning': item[template['name']] === 'PS' }"
*ngIf="template['name'] === 'status'">{{ item[template['name']] | agentStatus | translate }}</span>
<span
*ngIf="template['name'] !== 'status'">{{ item[template['name']] }}</span>
......@@ -66,14 +68,15 @@
<th mat-header-cell *matHeaderCellDef></th>
<td class="text-center mat-cell cdk-column-actions mat-column-actions ng-star-inserted"
mat-cell="" role="gridcell" *matCellDef="let item">
<div class="btn-group">
<div class="btn-group btn-actions">
<!--
<button mat-icon-button [matMenuTriggerFor]="beforeMenu"
aria-label="Example icon-button with a menu">
<mat-icon>more_vert</mat-icon>
</button>
<mat-menu #beforeMenu="matMenu" xPosition="before">
<button mat-menu-item (click)="synchronize(item)" *ngIf="item.status !== 'DP'">
<button mat-menu-item (click)="synchronize(item)"
*ngIf="item.status !== 'DP'">
<mat-icon>sync_alt</mat-icon>
<span>Sincronizar</span>
</button>
......@@ -82,24 +85,13 @@
<mat-icon>edit</mat-icon>
<span>{{'btn.edit' | translate}}</span>
</button>
<button mat-menu-item color="warn" (click)="delete(item)"
<button mat-menu-item color="warn" (click)="delete(item)"
*ngIf="this.resourceAuth['delete']">
<mat-icon>delete</mat-icon>
<span>{{'btn.delete' | translate}}</span>
</button>
</mat-menu>
<!-- <div class="dropdown">
<button class="btn btn-default btn-sm dropdown-toggle" type="button"
id="dropdownMenuButton" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
-->
<button class="btn btn-default btn-sm" (click)="edit(item)"
*ngIf="this.resourceAuth['edit']" type="button">
<i class="fa fa-edit"></i>
......@@ -114,7 +106,19 @@
<span class="visible-md-inline visible-lg-inline visible-xl-inline">
{{'btn.delete' | translate}}
</span>
</button> -->
</button>
<button class="btn btn-default btn-sm dropdown-toggle" type="button"
[matMenuTriggerFor]="beforeMenu" [disabled]="item.status !== 'PS'">
<!-- <i class="fa fa-ellipsis-v"></i> -->
</button>
<mat-menu #beforeMenu="matMenu" xPosition="before">
<button mat-menu-item (click)="synchronize(item)"
*ngIf="item.status !== 'DP'">
<mat-icon>sync_alt</mat-icon>
<span>{{'btn.synchronize' | translate}}</span>
</button>
</mat-menu>
</div>
</td>
......
......@@ -60,16 +60,6 @@ $fontcolor: #676a6c;
margin: -10px auto 0 auto;
}
th.mat-column-actions {
width: 1px !important;
padding-right: 0px !important;
}
td.mat-column-actions {
min-width: 80px;
padding-right: 20px !important;
cursor: default !important;
}
td {
vertical-align: middle !important;
color: $fontcolor;
......@@ -203,11 +193,6 @@ tr.mat-row {
padding-top: 2px;
}
.btn-grid-action {
padding: 0 10px;
line-height: 0em;
}
.mat-row:hover {
cursor: pointer;
background-color: #f8f9fa;
......@@ -261,3 +246,11 @@ tr.mat-row {
::ng-deep .mat-menu-panel {
overflow: hidden !important;
}
.th-avatar {
width: 130px;
}
::ng-deep .text-right > .mat-sort-header-container {
justify-content: flex-end !important;
}
......@@ -13,7 +13,7 @@ import { AgentService } from '../../service/agent.service';
const columnTemplateArray = [
{
name: 'avatar',
sortable: true,
sortable: false,
title: 'agent_avatar',
visible: true,
filtable: true,
......@@ -34,7 +34,7 @@ const columnTemplateArray = [
title: 'agent_code',
visible: true,
filtable: true,
style: { width: 'auto' },
style: { width: '75px' },
type: 'number',
aliasName: null,
queryName: null,
......@@ -136,6 +136,7 @@ const columnTemplateArray = [
const fieldFilters = [
new FieldFilter('agent_code', 'id', 'id', 'number', undefined),
new FieldFilter('agent_name', 'name', 'name', 'string', undefined),
new FieldFilter('agent_status', 'status', 'status', 'select', []),
];
@Component({
......
......@@ -25,7 +25,9 @@
}
::ng-deep .mat-step-header[aria-selected="true"] {
background: #c3ccff !important;
/*background: #c3ccff !important;*/
background: #c3ccff9e !important;
border: solid 1px #c3ccff80;
border-radius: 9px !important;
}
......
......@@ -12,18 +12,20 @@
<mat-dialog-content>
<h4>
{{'label.deployment-channels.configuration.description' | translate}}
{{'label.deployment-channels.configuration.description' | translate}}
<!-- -->
</h4>
<div>
<mat-card class="channel-card" *ngFor="let channel of channels" (click)="selectChannel(channel)"
[ngClass]="{ 'active': selectedChannel === channel}">
<mat-card-header>
<img [src]="channel.image" mat-card-avatar>
<mat-card-title>{{channel.name}}</mat-card-title>
</mat-card-header>
</mat-card>
<ng-container *ngFor="let channel of channels">
<mat-card class="channel-card" (click)="selectChannel(channel)"
[ngClass]="{ 'active': selectedChannel === channel}" *ngIf="!channel.disabled">
<mat-card-header>
<img [src]="channel.image" mat-card-avatar>
<mat-card-title>{{channel.name}}</mat-card-title>
</mat-card-header>
</mat-card>
</ng-container>
</div>
</mat-dialog-content>
......
......@@ -85,7 +85,8 @@
<mat-action-row *ngIf="!viewMode">
<button mat-button color="warn" (click)="deleteChannel(i)">
<i class="fa fa-trash"></i>&nbsp;&nbsp;{{'label.delete-channel' | translate}}
<i
class="fa fa-trash"></i><span>&nbsp;&nbsp;{{'label.delete-channel' | translate}}</span>
</button>
</mat-action-row>
</mat-expansion-panel>
......
......@@ -91,6 +91,18 @@ export class CaDeploymentChannelsComponent implements OnInit {
}
addChannel() {
mainLoop: for (let channel of this.channels) {
channel.disabled = false;
for (let deploymentChannel of this.deploymentChannels) {
if (channel.id === deploymentChannel.channelId) {
channel.disabled = true;
continue mainLoop;
}
}
}
let dialog = this.matDialog.open(CaDeploymentChannelsModalComponent, {
width: '500px',
data: {
......
......@@ -10,7 +10,7 @@
</div>
</div>
<mat-dialog-content class="none-overflow">
<mat-dialog-content class="none-overflow" [hidden]="fileErrorDetail">
<h4>
{{'label.file-upload.description' | translate}}
</h4>
......@@ -68,9 +68,38 @@
</div>
</form>
</mat-dialog-content>
<mat-dialog-content class="none-overflow" [hidden]="!fileErrorDetail">
<h4>
{{'label.file-upload.error.description' | translate}}
</h4>
<div class="row pt-2" *ngIf="fileErrorDetail">
<!-- <div class="col-12">
<h4>
<b>{{'label.file-upload.error.subtitle' | translate}}</b>
</h4>
</div> -->
<div class="col-12">
<div class="example-container mat-elevation-z8">
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
<!-- Position Column -->
<ng-container [matColumnDef]="column" *ngFor="let column of displayedColumns">
<th mat-header-cell *matHeaderCellDef> {{ 'header.' + column | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element[column] | translate}}</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</div>
</div>
</div>
</mat-dialog-content>
<mat-dialog-actions align="end">
<button mat-button mat-dialog-close>{{'btn.cancel' | translate}}</button>
<button mat-button (click)="ok()" cdkFocusInitial
[disabled]="formGroup.invalid || !enabledOK">{{'btn.accept' | translate}}</button>
</mat-dialog-actions>
\ No newline at end of file
<button mat-button (click)="retry()" *ngIf="fileErrorDetail">{{'btn.retry' | translate}}</button>
<button mat-button (click)="ok()" cdkFocusInitial *ngIf="!fileErrorDetail"
[disabled]="formGroup.invalid || !enabledOK">{{'btn.accept' | translate}}</button>
</mat-dialog-actions>
\ No newline at end of file
......@@ -4,7 +4,7 @@ import { HttpEventType, HttpErrorResponse } from '@angular/common/http';
import { of } from 'rxjs';
import { map, catchError } from 'rxjs/operators';
import { AgentService } from '../../../service/agent.service';
import { MatDialogRef, MatTableDataSource, MAT_DIALOG_DATA} from '@angular/material';
import { MatDialogRef, MatTableDataSource, MAT_DIALOG_DATA } from '@angular/material';
import { NotificationService, NotificationType } from '@xdf/commons';
import { TranslateService } from '@ngx-translate/core';
......@@ -68,7 +68,7 @@ export class CaFileUploadModalComponent implements OnInit {
ngOnInit() {
}
buildErrorDetail(status , detail) {
buildErrorDetail(status, detail) {
this.fileErrorDetail = undefined;
if ("CONTENT_ERROR" === status) {
......@@ -121,6 +121,10 @@ export class CaFileUploadModalComponent implements OnInit {
}
}
retry() {
this.fileErrorDetail = undefined;
}
uploadFile(event) {
for (const i in event) {
if (event[i] instanceof File) {
......
......@@ -8,7 +8,7 @@
<div class="row pb-4">
<div class="col-1"></div>
<div class="col-10">
<div class="row pt-2" *ngIf="!viewMode">
<div class="row pt-2" *ngIf="!viewMode" [hidden]="!(dataSource.data && dataSource.data.length)">
<div class="col-12">
<button type="button" class="btn btn-outline-primary btn-sm pull-right" (click)="addFile()">
<i class="fa fa-file-excel-o"></i>
......@@ -19,12 +19,21 @@
</div>
</div>
<div class="table-container mat-elevation-z8 p-b-15 mt-3">
<div class="border-all text-center" *ngIf="!(dataSource.data && dataSource.data.length)">
Seleccione <button type="button" class="btn btn-outline-primary btn-sm " (click)="addFile()">
<i class="fa fa-file-excel-o"></i>
<span class="visible-md-inline visible-lg-inline visible-xl-inline">
{{'btn.new.file' | translate}}
</span>
</button> para cargar un archivo de preguntas frecuentes
</div>
<div class="table-container mat-elevation-z8 p-b-15 mt-3" [hidden]="!(dataSource.data && dataSource.data.length)">
<table mat-table [dataSource]="dataSource" matSort>
<!-- Load ID -->
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef mat-sort-header class="w-id">{{'label.file.id' | translate}}</th>
<td mat-cell *matCellDef="let element" class="w-id"> {{element.id}} </td>
<th mat-header-cell *matHeaderCellDef mat-sort-header class="w-id text-right">{{'label.file.id' | translate}}</th>
<td mat-cell *matCellDef="let element" class="w-id text-right"> {{element.id}} </td>
</ng-container>
<!-- Filename -->
......@@ -59,8 +68,10 @@
<!-- Fecha de carga -->
<ng-container matColumnDef="uploadDate">
<th mat-header-cell *matHeaderCellDef class="w-uploadDate">{{'label.file.upload.date' | translate}}</th>
<td mat-cell *matCellDef="let element" class="w-uploadDate"> {{element.uploadDate}} </td>
<th mat-header-cell *matHeaderCellDef class="w-uploadDate text-right">{{'label.file.upload.date' | translate}}</th>
<td mat-cell *matCellDef="let element" class="w-uploadDate text-right">
<i class="fa fa-calendar" *ngIf="element.uploadDate"></i> {{element.uploadDate}}
</td>
</ng-container>
<!-- Actions -->
......
table {
width: 100%;
}
.table-container {
height: 400px;
height: 300px;
overflow: auto;
}
......@@ -11,14 +7,6 @@ th.mat-sort-header-sorted {
color: black;
}
.no-padding {
padding: 0px;
}
::ng-deep mat-form-field .mat-form-field-infix {
width: initial;
}
$fontcolor: #676a6c;
.content {
width: 100%;
......@@ -30,61 +18,32 @@ $fontcolor: #676a6c;
margin-bottom: 0px;
width: 100%;
}
.form {
padding: 10px 20px 10px 20px;
}
}
.filter-panel {
margin-bottom: 10px;
}
.toolbar-option {
margin-left: 10px;
margin-right: -10px;
}
}
.grid-ibox-content {
// width: calc(100% - 35px);
width: 100%;
}
.grid-ibox-content-options {
width: calc(100% - 35px);
}
.btn-actions {
.btn-group {
.btn {
font-size: 10px;
white-space: nowrap;
}
}
.spinner-container {
height: 100%;
width: 100%;
padding-top: 50px;
position: fixed;
}
.spinner-container {
height: 100%;
width: 100%;
padding-top: 50px;
position: fixed;
}
.spinner-container mat-spinner {
margin: -10px auto 0 auto;
}
th.mat-column-actions {
width: 1px !important;
padding-right: 0px !important;
}
td.mat-column-actions {
min-width: 80px;
padding-right: 20px !important;
cursor: default !important;
}
td {
vertical-align: middle !important;
color: $fontcolor;
......@@ -98,8 +57,8 @@ tr.mat-header-row {
}
tr.mat-footer-row,
tr.mat-row:not(.inner-detail-row) {
height: 40px;
tr.mat-row {
height: 40px !important;
}
.table-toolbar {
......@@ -110,27 +69,10 @@ tr.mat-row:not(.inner-detail-row) {
}
}
.status-button-bar {
button {
font-size: 16px;
}
padding-top: 8px;
padding-left: 15px;
}
.mat-raised-button {
padding: 0px 10px;
}
.icon-centered-button span.mat-button-wrapper {
display: flex;
}
.icon-centered-button mat-icon {
font-size: 15px;
padding-top: 2px;
}
::ng-deep .mat-sort-header-arrow {
visibility: hidden;
}
......@@ -143,81 +85,48 @@ tr.mat-row:not(.inner-detail-row) {
}
}
@media (min-width: 576px) {
::ng-deep .d-sm-block {
display: table-cell !important;
}
}
@media (max-width: 576px) {
::ng-deep .mat-paginator-page-size-label {
display: none !important;
}
th {
background: rgb(242, 242, 242);
}
tr.inner-detail-row {
height: 0;
.mat-column-expandedDetail {
padding: 0 10px;
}
}
//////
.inner-element-detail {
overflow: hidden;
display: flex;
}
//@extend
tr.inner-detail-row {
td {
border-bottom: 1px solid #dee2e6;
border-top: 0px;
}
table {
width: 100%;
}
tr.inner-element-row.odd,
tr.inner-detail-row.odd {
background-color: rgba(0, 0, 0, 0.05);
tr.mat-header-row {
height: 25px;
}
// tr.inner-detail-row {
// cursor: pointer !important;
// }
tr.mat-row-auth:not(.inner-expanded-row):hover {
background-color: #f8f9fa;
cursor: pointer !important;
tr.mat-footer-row,
tr.mat-row {
height: 40px;
}
tr.mat-row-auth.inner-expanded-row:hover {
cursor: pointer !important;
.button-grid {
margin: 2px 5px;
mat-icon {
padding-top: 2px;
}
}
tr.inner-element-row-expanded td {
border-top: 0px;
border-bottom: 0px;
.btn-grid-action {
padding: 0 10px;
line-height: 0em;
}
.additional-options-section {
padding: 0;
.grid-ibox-content {
width: 100%;
display: inline-grid;
button {
margin: 1px 0;
color: inherit;
font-size: inherit;
border-radius: 0px;
}
}
::ng-deep .mat-menu-item {
padding: 0 10px;
}
@media (min-width: 992px) {
.d-t-lg-block {
display: table-cell !important;
}
td.mat-cell,
td.mat-footer-cell,
th.mat-header-cell {
/* padding: 0; */
border-bottom-width: 1px;
border-bottom-style: solid;
padding: 1px 10px 1px 10px;
}
.p-b-15 {
......@@ -225,11 +134,11 @@ tr.inner-element-row-expanded td {
}
.w-id {
width: 10%;
width: 5%;
}
.w-filename {
width: 15%;
width: 20%;
}
.w-description {
......@@ -251,3 +160,14 @@ tr.inner-element-row-expanded td {
.w-actions {
width: 20%;
}
.border-all.text-center {
padding: 50px;
border-radius: 4px;
margin-top: 56px;
}
::ng-deep .text-right > .mat-sort-header-container {
justify-content: flex-end !important;
}
\ No newline at end of file
......@@ -9,8 +9,8 @@
<div class="panel-viewer-body">
<div class="row pt-3 pb-4">
<div class="col-3"></div>
<div class="col-6 border-all">
<div class="row pt-2">
<div class="col-6 mat-elevation-z3">
<div class="row">
<div class="col-6">
<!-- INICIO :: SECCION AVATAR -->
<div class="row pt-2 h-100">
......
ul,
li {
margin: 0;
padding: 0;
list-style: none;
margin: 0;
padding: 0;
list-style: none;
}
#file-label {
display: inline-flex;
vertical-align: middle;
font-size: 12px;
line-height: 18px;
display: inline-flex;
vertical-align: middle;
font-size: 12px;
line-height: 18px;
}
#file-label mat-icon {
font-size: 18px;
text-align: center;
font-size: 18px;
text-align: center;
}
#file-label a {
cursor: pointer;
cursor: pointer;
}
.uploadList {
margin-top: 10px;
margin-top: 10px;
}
.uploadfilecontainer {
background-position: center;
line-height: 200px;
margin: 20px auto;
border: 2px dashed #1C8ADB;
border-radius: 10px;
button {
vertical-align: middle;
}
background-position: center;
line-height: 200px;
margin: 20px auto;
border: 2px dashed #1c8adb;
border-radius: 10px;
button {
vertical-align: middle;
}
}
.uploadfilecontainer:hover {
cursor: pointer;
background-color: #9ecbec !important;
opacity: 0.8;
cursor: pointer;
background-color: #9ecbec !important;
opacity: 0.8;
}
.image-preview {
height: 100%;
width: 100%;
height: 100%;
width: 100%;
position: relative;
overflow: hidden;
background-image: none;
background-color: white;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
border: 1px solid rgba(0, 0, 0, 0.12);
border-radius: 5px;
}
.image-notfound {
width: 100%;
height: 100%;
// border-radius: 5px;
// border-bottom-color:rgba(0,0,0,.12);
&::after {
content: "photo_size_select_actual";
font-family: "Material Icons";
position: relative;
overflow: hidden;
background-image: none;
background-color: white;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
border: 1px solid rgba(0,0,0,.12);
border-radius: 5px;
font-size: 4.5em;
color: rgba(230, 230, 230, 1);
top: calc(50% - 3rem);
left: calc(50% - 2.25rem);
z-index: 0;
}
}
.image-notfound {
width: 100%;
height: 100%;
// border-radius: 5px;
// border-bottom-color:rgba(0,0,0,.12);
&::after {
content: "photo_size_select_actual";
font-family: 'Material Icons';
position: relative;
font-size: 4.5em;
color: rgba(230, 230, 230, 1);
top: calc(50% - 3rem);
left: calc(50% - 2.25rem);
z-index: 0;
}
}
.btn-upload-image {
font-size: 80%;
width: 100%;
border-radius: 0;
border-width: 1px 0 0 0;
border-top-color: rgba(0, 0, 0, 0.12);
}
.btn-upload-image {
font-size: 80%;
width: 100%;
border-radius: 0;
border-width: 1px 0 0 0;
border-top-color:rgba(0,0,0,.12);
}
.form-field-label {
color: rgba(0, 0, 0, 0.54);
font-size: 75%;
}
.form-field-label {
color: rgba(0,0,0,.54);
font-size: 75%;
}
.with-image {
text-align: center;
height: 100%;
}
.with-image {
text-align: center;
height: 100%;
}
.edit-image {
text-align: center;
height: calc(100% - 36px);
}
.edit-image {
text-align: center;
height: calc(100% - 36px);
}
.without-image {
text-align: inherit;
height: calc(100% - 36px);
}
.without-image {
text-align: inherit;
height: calc(100% - 36px);
}
.h-85 {
height: 85%;
}
.h-85 {
height: 85%;
}
.h-100 {
height: 85%;
}
.h-100 {
height: 85%;
}
\ No newline at end of file
.col-6.mat-elevation-z3 {
padding: 24px;
}
......@@ -62,8 +62,11 @@
"NOT.FOUND.VALUE": "Value not found",
"header.type": "Column",
"header.header": "Column",
"header.line": "Line",
"header.line": "Row",
"header.value": "Value",
"HEADER.REPETEAD": "Repeated column",
"HEADER.NOT.FOUND": "Column not found"
"HEADER.NOT.FOUND": "Column not found",
"label.file-upload.error.subtitle": "Error detail",
"label.file-upload.error.description": "An error occurred in the validation of the file.",
"btn.synchronize": "Synchronize"
}
\ No newline at end of file
......@@ -62,8 +62,12 @@
"NOT.FOUND.VALUE": "Valor no encontrado",
"header.type": "Columna",
"header.header": "Columna",
"header.line": "Línea",
"header.line": "Fila",
"header.value": "Valor",
"HEADER.REPETEAD": "Columna repetida",
"HEADER.NOT.FOUND": "Columna no encontrado"
"HEADER.NOT.FOUND": "Columna no encontrado",
"label.file-upload.error.subtitle": "Detalle de error",
"label.file-upload.error.description": "Ha ocurrido un error en la validación del archivo.",
"btn.retry": "Cargar otro archivo",
"btn.synchronize": "Sincronizar"
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment