From d057e11dac7b04892ccdf8f72f10bffdc3feca2f Mon Sep 17 00:00:00 2001 From: Siroco Date: Sat, 20 Jul 2019 18:57:52 +0200 Subject: [PATCH] Update interface for simplify view and publish to Tramontana Website --- angular.json | 2 + package-lock.json | 30 ++++++++++++++ package.json | 5 ++- src/app/app-material.module.ts | 28 +++++++++++++ src/app/app.module.ts | 8 +++- src/app/geojson.service.ts | 27 +++++++++++-- src/app/grid/grid.component.html | 56 ++++++++++++++++++++++---- src/app/grid/grid.component.ts | 57 +++++++++++++++++++-------- src/app/omeka-classic.service.ts | 10 ++++- src/app/wordpress.service.ts | 1 + src/assets/json/binaural_archive.json | 1 + src/index.html | 2 + src/main.ts | 1 + src/styles.css | 8 ++++ 14 files changed, 203 insertions(+), 33 deletions(-) create mode 100644 src/app/app-material.module.ts create mode 100644 src/assets/json/binaural_archive.json diff --git a/angular.json b/angular.json index 230897f..79bb866 100644 --- a/angular.json +++ b/angular.json @@ -21,6 +21,7 @@ "src/favicon.ico" ], "styles": [ + "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.css" ], "scripts": [] @@ -71,6 +72,7 @@ "tsConfig": "src/tsconfig.spec.json", "scripts": [], "styles": [ + "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.css" ], "assets": [ diff --git a/package-lock.json b/package-lock.json index fd60bca..b61d8c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -236,6 +236,23 @@ "tslib": "^1.9.0" } }, + "@angular/cdk": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-7.3.7.tgz", + "integrity": "sha512-xbXxhHHKGkVuW6K7pzPmvpJXIwpl0ykBnvA2g+/7Sgy5Pd35wCC+UtHD9RYczDM/mkygNxMQtagyCErwFnDtQA==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^1.7.1" + }, + "dependencies": { + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "optional": true + } + } + }, "@angular/cli": { "version": "7.3.9", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.3.9.tgz", @@ -370,6 +387,14 @@ "integrity": "sha512-Ig5Jr7mnDelaZvSbUd9YhI5am3q1ku9xelAuwvtyDKvQJeKQj3BtTagcOgWrnQBfrJ/FsA/M5Zo48ncSsV0tqQ==", "dev": true }, + "@angular/material": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-7.3.7.tgz", + "integrity": "sha512-Eq+7frkeNGkLOfEtmkmJgR+AgoWajOipXZWWfCSamNfpCcPof82DwvGOpAmgGni9FuN2XFQdqP5MoaffQzIvUA==", + "requires": { + "tslib": "^1.7.1" + } + }, "@angular/platform-browser": { "version": "7.2.15", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.15.tgz", @@ -4388,6 +4413,11 @@ "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" + }, "handle-thing": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", diff --git a/package.json b/package.json index 8192e7f..9b20e77 100644 --- a/package.json +++ b/package.json @@ -12,16 +12,19 @@ }, "private": true, "dependencies": { - "@angular/animations": "7.2.15", + "@angular/animations": "^7.2.15", + "@angular/cdk": "^7.3.7", "@angular/common": "7.2.15", "@angular/compiler": "7.2.15", "@angular/core": "7.2.15", "@angular/forms": "7.2.15", "@angular/http": "7.2.15", + "@angular/material": "^7.3.7", "@angular/platform-browser": "7.2.15", "@angular/platform-browser-dynamic": "7.2.15", "@angular/router": "7.2.15", "core-js": "^2.4.1", + "hammerjs": "^2.0.8", "rxjs": "^6.5.2", "tslib": "^1.9.0", "zone.js": "^0.8.29" diff --git a/src/app/app-material.module.ts b/src/app/app-material.module.ts new file mode 100644 index 0000000..80b9a16 --- /dev/null +++ b/src/app/app-material.module.ts @@ -0,0 +1,28 @@ +import { NgModule } from '@angular/core'; +import { MatSelectModule,MatStepperModule,MatCheckboxModule,MatPaginatorModule,MatFormFieldModule,MatTabsModule, MatDialogModule, MatProgressBarModule, MatInputModule, MatToolbarModule,MatMenuModule, MatTableModule, MatCardModule, MatButtonModule, MatSidenavModule, MatIconModule, MatListModule, } from '@angular/material'; + +const materialModules = [ + MatTabsModule, + MatToolbarModule, + MatCardModule, + MatButtonModule, + MatTableModule, + MatSidenavModule, + MatIconModule, + MatListModule, + MatMenuModule, + MatInputModule, + MatFormFieldModule, + MatProgressBarModule, + MatDialogModule, + MatPaginatorModule, + MatCheckboxModule, + MatStepperModule, + MatSelectModule, +]; + +@NgModule({ + imports: materialModules, + exports: materialModules +}) +export class AppMaterialModule { } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 07e7bb9..7007d68 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,12 +1,13 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; +import { FormsModule } from '@angular/forms'; import { HttpClientModule } from '@angular/common/http'; - +import {AppMaterialModule} from './app-material.module'; import {WordpressService} from './wordpress.service'; - import { AppComponent } from './app.component'; import { GridComponent } from './grid/grid.component'; import {SlicePipe } from '@angular/common'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; @NgModule({ @@ -16,7 +17,10 @@ import {SlicePipe } from '@angular/common'; ], imports: [ BrowserModule, + BrowserAnimationsModule, HttpClientModule, + FormsModule, + AppMaterialModule, ], providers: [ WordpressService, diff --git a/src/app/geojson.service.ts b/src/app/geojson.service.ts index d2655b8..5f27825 100644 --- a/src/app/geojson.service.ts +++ b/src/app/geojson.service.ts @@ -11,14 +11,22 @@ export class GeojsonService { constructor(private http: HttpClient, private slicePipe:SlicePipe) { - this.items = soinumapa.features as JSON + let items = soinumapa.features as any[] + // only gizartea (sociedad) + this.items = items.filter( (i) => { + if (i.properties) { + let category = i.properties.category + if (category==="Gizartea") { return true } + } + return false + }) this.total_pages let pages = Object.keys(this.items).length/this.per_page if (pages%1!=0) pages=Math.floor(pages)+1 this.total_pages = pages } - items:JSON + items:any[] per_page:number=10 total_pages:number=0 @@ -29,8 +37,19 @@ export class GeojsonService { let page = feed.page let start:number = (page-1)*this.per_page let end:number = (page-1)*this.per_page+this.per_page - return this.slicePipe.transform(this.items, start, end); - // return a.slice( start, end) + let items:any[] = this.items + + if (feed.search) { + items = this.items.filter( (i) => { + if (i.properties) { + let title = i.properties.title + if (title.toLowerCase().search(feed.search.toLowerCase())>=0) return true + return false + } else { return false } + }) + } + // if (feed.search!='') items = items.filter( (i) => {i.title.search(feed.search)}) + return this.slicePipe.transform(items, start, end); } getCount():any { diff --git a/src/app/grid/grid.component.html b/src/app/grid/grid.component.html index 78b696d..4361b0b 100644 --- a/src/app/grid/grid.component.html +++ b/src/app/grid/grid.component.html @@ -1,17 +1,22 @@ -