notifi-lib
Version:
Notificaciones sistema de comunicación Interna
239 lines (231 loc) • 13.1 kB
JavaScript
import { ɵɵdefineInjectable, ɵɵinject, Injectable, Component, NgModule } from '@angular/core';
import { HttpHeaders, HttpClient } from '@angular/common/http';
import { A11yModule } from '@angular/cdk/a11y';
import { ClipboardModule } from '@angular/cdk/clipboard';
import { DragDropModule } from '@angular/cdk/drag-drop';
import { PortalModule } from '@angular/cdk/portal';
import { ScrollingModule } from '@angular/cdk/scrolling';
import { CdkStepperModule } from '@angular/cdk/stepper';
import { CdkTableModule } from '@angular/cdk/table';
import { CdkTreeModule } from '@angular/cdk/tree';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatBadgeModule } from '@angular/material/badge';
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
import { MatButtonModule } from '@angular/material/button';
import { MatButtonToggleModule } from '@angular/material/button-toggle';
import { MatCardModule } from '@angular/material/card';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatChipsModule } from '@angular/material/chips';
import { MatStepperModule } from '@angular/material/stepper';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatDialogModule } from '@angular/material/dialog';
import { MatDividerModule } from '@angular/material/divider';
import { MatExpansionModule } from '@angular/material/expansion';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatListModule } from '@angular/material/list';
import { MatMenuModule } from '@angular/material/menu';
import { MatNativeDateModule, MatRippleModule } from '@angular/material/core';
import { MatPaginatorModule } from '@angular/material/paginator';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatRadioModule } from '@angular/material/radio';
import { MatSelectModule } from '@angular/material/select';
import { MatSidenavModule } from '@angular/material/sidenav';
import { MatSliderModule } from '@angular/material/slider';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatSortModule } from '@angular/material/sort';
import { MatTableModule } from '@angular/material/table';
import { MatTabsModule } from '@angular/material/tabs';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatTooltipModule } from '@angular/material/tooltip';
import { MatTreeModule } from '@angular/material/tree';
import { OverlayModule } from '@angular/cdk/overlay';
import { CommonModule } from '@angular/common';
class NotifiLibService {
constructor(http) {
this.http = http;
this._url = 'https://titulaciones.siaan.ucb.edu.bo/titulos/api/';
//_url ='https://sci.siaan.ucb.edu.bo/be/api/';
//_url = 'https://localhost:44320/api/';
this.authUrl = 'https://backend.cba.ucb.edu.bo/Authentication/api/v1/';
}
getFull(idCRyp) {
return this.http.get(this._url + 'Notificaciones/GetNotificacion?cadena=' + idCRyp);
}
getPerfil() {
const headers = {
'token': localStorage.getItem('tokenDeAcceso'),
'uniqueCode': localStorage.getItem('UCB_UNIQUE_CODE')
};
const httpOptions = {
headers: new HttpHeaders(headers)
};
return this.http.get(this.authUrl + 'General/ParametrosDesdeToken', httpOptions);
}
cofirmarlectura(idcryp, idN) {
let data = {
idPublicacion: idN,
idPersona: 0,
estado: 1
};
return this.http.post(this._url + "Notificaciones/AddLectura?cadena=" + idcryp, data);
}
}
NotifiLibService.ɵprov = ɵɵdefineInjectable({ factory: function NotifiLibService_Factory() { return new NotifiLibService(ɵɵinject(HttpClient)); }, token: NotifiLibService, providedIn: "root" });
NotifiLibService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
NotifiLibService.ctorParameters = () => [
{ type: HttpClient }
];
class NotifiLibComponent {
constructor(serv) {
this.serv = serv;
this.badge = 0;
}
ngOnInit() {
const info = {
UCBLIB: 'ucb-libs : notificaciones',
Version: 'v. 0.1.1',
Desc: 'Notificaciones sistema de comunicación Interna'
};
console.log(info);
this.getid();
}
getid() {
console.log("Obteniendo datos desde token");
this.serv.getPerfil().subscribe(d => {
if (Object.entries(d).length > 0) {
this.persona = d;
this.idPersona = this.persona.datos.idPersona;
this.getTodo();
}
else {
console.log("No, data");
}
});
}
getTodo() {
this.serv.getFull(this.idPersona).subscribe(data => {
// if(Object.entries(data).length > 0){
this.fullData = data;
if (this.fullData.count > 0) {
this.fullData = data;
console.log(this.fullData);
this.porLeer = this.fullData.result;
this.badge = this.fullData.count;
this.NumEventos = this.fullData.eventos;
}
else {
console.log("No, data");
this.badge = 0;
}
});
}
verNoticia(noticia) {
this.serv.cofirmarlectura(this.idPersona, noticia.id).subscribe(n => {
if (n) {
console.log(n);
this.getTodo();
window.open("https://sci.siaan.ucb.edu.bo/ucb-noticia/" + noticia.id, "_blank");
}
});
}
vercalendario() {
window.open("https://sci.siaan.ucb.edu.bo", "_blank");
}
}
NotifiLibComponent.decorators = [
{ type: Component, args: [{
selector: 'ucb-notifi-lib',
template: "\r\n<div class=\"notifi-div\">\r\n <div style=\"border: none; background-color: none;\">\r\n <label for=\"check\">\r\n <mat-icon class=\"bagde-icon\" matBadge=\"{{badge}}\" matBadgePosition=\"after\" matBadgeColor=\"accent\" >\r\n feedback\r\n </mat-icon>\r\n </label>\r\n </div>\r\n <input id=\"check\" #check type=\"checkbox\">\r\n <div class=\"div-notifi\">\r\n <div class=\"notifi-contet\" >\r\n <div style=\"background-color: #075eaf;\" class=\"cabecera-Notifi\">\r\n <div style=\"float: left;\">\r\n <h3 style=\"color: #ffffff\" class=\"tit-secc\">Notificaciones: </h3>\r\n </div>\r\n <div style=\"float: right; margin-right: 3%; color:#FFA482; font-size: large;\">\r\n <label for=\"check\" style=\"cursor: pointer; font-size: large;\">\r\n <mat-icon >cancel</mat-icon>\r\n </label>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n </div>\r\n <label for=\"check\">\r\n <div class=\"numeventos\" (click)=\"vercalendario()\"> \r\n <mat-icon class=\"bagde-icon-event\" matBadge=\"{{NumEventos}}\" matBadgePosition=\"after\" matBadgeColor=\"accent\" style=\"color:rgb(8, 71, 243); margin-top: 3%;\" > event </mat-icon>\r\n <span style=\"font-size: small;\"> Este mes <span *ngIf=\"NumEventos<1\">No</span> hay <span *ngIf=\"NumEventos>0\">{{NumEventos}}</span> eventos.</span>\r\n </div>\r\n </label>\r\n <!---\r\n <div class=\"load\">\r\n <div style=\"color: #053e61;\"><mat-spinner style=\"margin: auto; width: 50%;\" [diameter]=\"35\" ></mat-spinner></div>\r\n <div style=\"color: #053e61; margin: auto; width: 50%;\" *ngIf=\"spinner\" ><h4>Cargando...</h4></div>\r\n </div>\r\n -->\r\n <mat-divider></mat-divider>\r\n <h5 style=\"color: #053e61; margin-left: 1%;\" class=\"tit-secc\">Publicaciones:</h5>\r\n <div style=\"color: #053e61;\" class=\"n-titulo\" *ngIf=\"badge<1\" style=\"font-size: medium; width: 80%; margin: auto; text-align: center;\" >\r\n No hay nuevas notificaciones\r\n </div>\r\n <div *ngIf=\"badge>0\">\r\n <div class=\"publi-por-leer\" *ngFor=\"let notifi of porLeer\" mat-menu-item>\r\n <label class=\"publi-por-leer\" for=\"check\" (click)=\"verNoticia(notifi)\">\r\n <mat-icon style=\"color:#09CEBC;\" *ngIf=\"notifi.tipo===1\">newspaper</mat-icon>\r\n <mat-icon style=\"color:#5CA505;\" *ngIf=\"notifi.tipo===2\">receipt_long</mat-icon>\r\n <mat-icon style=\"color:#A505A0;\" *ngIf=\"notifi.tipo===3\">notifications_active</mat-icon>\r\n <mat-icon style=\"color:#6d0369;\" *ngIf=\"notifi.tipo===4\">church</mat-icon>\r\n {{notifi.titulo | slice:0:30}}...\r\n <i style=\"font-size: x-small;\">{{notifi.fechaModificacion | date : 'dd, MMMM' }}</i>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
styles: [".notifi-div{height:max-content;line-height:40px;margin-left:10px;margin-top:1%;width:20%;z-index:1000}.bagde-icon{border-radius:100%;color:#fff;cursor:pointer;font-size:20px;padding:5px;text-align:center}h3{padding-left:10px;padding-top:10px}.publi-por-leer{padding-bottom:1%;padding-top:1%;text-align:justify}.n-titulo{font-style:italic;margin-left:10px;width:70%}input{display:none}.div-notifi{background-color:#fff;left:99%;overflow:hidden;position:absolute;transition:1s;width:0;z-index:1000}.notifi-contet{width:320px;z-index:1000}input:checked+.div-notifi{border-radius:5px;box-shadow:1px 1px 1px 1px rgba(136,135,135,.726);left:calc(99% - 330px);width:320px}.numeventos{color:#075eaf;cursor:pointer;margin-left:3%;margin-top:1%}.numeventos:hover{background-color:hsla(0,0%,96.9%,.863)}"]
},] }
];
NotifiLibComponent.ctorParameters = () => [
{ type: NotifiLibService }
];
class MaterialModule {
}
MaterialModule.decorators = [
{ type: NgModule, args: [{
exports: [
A11yModule,
ClipboardModule,
CdkStepperModule,
CdkTableModule,
CdkTreeModule,
DragDropModule,
MatAutocompleteModule,
MatBadgeModule,
MatBottomSheetModule,
MatButtonModule,
MatButtonToggleModule,
MatCardModule,
MatCheckboxModule,
MatChipsModule,
MatStepperModule,
MatDatepickerModule,
MatDialogModule,
MatDividerModule,
MatExpansionModule,
MatGridListModule,
MatIconModule,
MatInputModule,
MatListModule,
MatMenuModule,
MatNativeDateModule,
MatPaginatorModule,
MatProgressBarModule,
MatProgressSpinnerModule,
MatRadioModule,
MatRippleModule,
MatSelectModule,
MatSidenavModule,
MatSliderModule,
MatSlideToggleModule,
MatSnackBarModule,
MatSortModule,
MatTableModule,
MatTabsModule,
MatToolbarModule,
MatTooltipModule,
MatTreeModule,
OverlayModule,
PortalModule,
ScrollingModule,
]
},] }
];
/** Copyright 2020 Google LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://angular.io/license */
class NotifiLibModule {
}
NotifiLibModule.decorators = [
{ type: NgModule, args: [{
declarations: [
NotifiLibComponent
],
imports: [
CommonModule,
MaterialModule
],
exports: [
NotifiLibComponent
]
},] }
];
/*
* Public API Surface of notifi-lib
*/
/**
* Generated bundle index. Do not edit.
*/
export { NotifiLibComponent, NotifiLibModule, NotifiLibService, MaterialModule as ɵa };
//# sourceMappingURL=notifi-lib.js.map