import { Component, OnInit, ViewChild } from '@angular/core';
import { jqxDropDownListComponent } from 'jqwidgets-scripts/jqwidgets-ts/angular_jqxdropdownlist';
import { jqxInputComponent } from 'jqwidgets-scripts/jqwidgets-ts/angular_jqxinput';
import { jqxEditorComponent } from 'jqwidgets-scripts/jqwidgets-ts/angular_jqxeditor';
@Component({
selector: 'app-quick-notes',
templateUrl: './quick-notes.component.html',
styleUrls: ['./quick-notes.component.css']
})
export class QuickNotesComponent implements OnInit {
@ViewChild('myDropDownList') myDropDownList: jqxDropDownListComponent;
@ViewChild('myInput') myInput: jqxInputComponent;
@ViewChild('myEditor') myEditor: jqxEditorComponent;
constructor() { }
ngOnInit() {
}
noteId: number = -1;
data: any;
height: number = window.innerHeight - 150;
panels: jqwidgets.SplitterPanel[] = [
{ size: '25%', min: 250 }
];
source: any = {
datatype: 'json',
dataFields: [
{ name: 'id', type: 'number' },
{ name: 'image', type: 'string' },
{ name: 'firstname', type: 'string' },
{ name: 'lastname', type: 'string' },
{ name: 'job', type: 'string' },
{ name: 'title', type: 'string' },
{ name: 'notes', type: 'string' }
],
url: 'https://www.jqwidgets.com/jquery-widgets-demo/demos/interactivedemos/fitnessmanager/data.php?usedwidget=quicknotesdata'
}
listBoxDataAdapter = new jqx.dataAdapter(this.source, {
beforeLoadComplete: (records) => {
this.data = records;
},
loadComplete: () => {
this.updatePanel(0);
this.noteId = 1;
}
});
dropDownDataAdapter = new jqx.dataAdapter(this.source);
listBoxRenderer = (index: number): string => {
let dataRecord = this.data[index];
let imgUrl = dataRecord.image;
let img = '
';
var table = '
| ' + img + ' | ' + dataRecord.firstname + " " + dataRecord.lastname + ' |
| ' + dataRecord.job + ' |
';
return table;
}
dropDownRenderer = (index: number): string => {
let dataRecord = this.data[index];
let imgUrl = dataRecord.image;
let img = '
';
let table = '| ' + img + ' | ' + dataRecord.firstname + " " + dataRecord.lastname + ' |
| ' + dataRecord.job + ' |
';
return table;
}
updatePanel = (index: number): void => {
let dataRecord = this.data[index];
this.myDropDownList.setOptions({ disabled: false });
this.myDropDownList.selectIndex(index);
this.myDropDownList.setOptions({ disabled: true });
this.myInput.val(dataRecord.title);
this.myEditor.val(dataRecord.notes);
}
listBoxSelect = (event): void => {
let index = event.args.index;
this.updatePanel(index);
this.noteId = index;
}
buttonClick = (): void => {
this.data[this.noteId].notes = this.myEditor.val();
}
}