fixes after commit & project table

This commit is contained in:
annampak 2017-11-01 12:15:36 +02:00
commit 5c0309e232
16 changed files with 176 additions and 29 deletions

View File

@ -25,7 +25,8 @@
"scripts": [
"./../node_modules/jquery/dist/jquery.min.js",
"./../node_modules/bootstrap/dist/js/bootstrap.min.js",
"./assets/xml2json.min.js"
"./assets/xml2json.min.js",
"./assets/jquery.scrollTo.min.js"
],
"environmentSource": "environments/environment.ts",
"environments": {

View File

@ -248,9 +248,9 @@
}
},
"@types/node": {
"version": "6.0.88",
"resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz",
"integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ=="
"version": "6.0.90",
"resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.90.tgz",
"integrity": "sha512-tXoGRVdi7wZX7P1VWoV9Wfk0uYDOAHdEYXAttuWgSrN76Q32wQlSrMX0Rgyv3RTEaQY2ZLQrzYHVM2e8rfo8sA=="
},
"@types/q": {
"version": "0.0.32",
@ -589,6 +589,11 @@
"lodash": "4.17.4"
}
},
"angular2-draggable": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/angular2-draggable/-/angular2-draggable-1.0.7.tgz",
"integrity": "sha1-NeH4HIzPPdljDyMmVYuILMEvDyk="
},
"ansi-escapes": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz",
@ -3182,6 +3187,14 @@
"pinkie-promise": "2.0.1"
}
},
"flat": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/flat/-/flat-4.0.0.tgz",
"integrity": "sha512-ji/WMv2jdsE+LaznpkIF9Haax0sdpTBozrz/Dtg4qSRMfbs8oVg4ypJunIRYPiMLvH/ed6OflXbnbTIKJhtgeg==",
"requires": {
"is-buffer": "1.1.5"
}
},
"flatten": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
@ -4103,8 +4116,7 @@
"is-buffer": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
"dev": true
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw="
},
"is-builtin-module": {
"version": "1.0.0",
@ -5941,7 +5953,7 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.2.tgz",
"integrity": "sha1-Be/1fw70V3+xRKefi5qWemzERRA=",
"requires": {
"@types/node": "6.0.88"
"@types/node": "6.0.90"
}
},
"parsejson": {
@ -6677,7 +6689,7 @@
"integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=",
"dev": true,
"requires": {
"@types/node": "6.0.88",
"@types/node": "6.0.90",
"@types/q": "0.0.32",
"@types/selenium-webdriver": "2.53.42",
"blocking-proxy": "0.0.5",

View File

@ -24,9 +24,11 @@
"angular-2-data-table": "^0.1.2",
"angular-4-data-table-bootstrap-4": "^0.2.0",
"angular-google-signin": "^0.1.5",
"angular2-draggable": "^1.0.7",
"angular2-datatable": "^0.6.0",
"bootstrap": "^3.3.7",
"core-js": "^2.4.1",
"flat": "^4.0.0",
"jquery": "^3.2.1",
"ngx-webstorage": "^1.8.0",
"rxjs": "^5.4.2",
@ -38,7 +40,7 @@
"@angular/language-service": "^4.3.6",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "^6.0.88",
"@types/node": "^6.0.90",
"angular-ide": "^0.9.31",
"codelyzer": "~3.1.1",
"jasmine-core": "~2.6.2",

View File

@ -31,6 +31,8 @@ import { GlobalInterceptor } from './services/interceptor';
import { DatasetsModule } from './datasets/dataset.module';
import { DmpModule } from './dmps/dmp.module';
import { TabModule } from './tabs/tab.module';
import { AngularDraggableModule } from 'angular2-draggable';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
@ -56,11 +58,11 @@ import { HTTP_INTERCEPTORS } from '@angular/common/http';
DmpModule,
DatasetsModule,
AppRoutingModule,
AngularDraggableModule,
DataTableModule
],
providers: [
{
providers: [{
provide: HTTP_INTERCEPTORS,
useClass: GlobalInterceptor,
multi: true,

View File

@ -36,17 +36,36 @@
<p>Form value: {{ form.value | json }}</p>
</div>
<div class="col-md-4">
<div ngDraggable style="position:fixed; top:60;">
<div class="panel panel-default" >
<div class="panel-heading" data-toggle="collapse" href="#collapse-panel">
<h4>Table of contents:</h4>
</div>
<div class="panel-body" id="collapse-panel" class="panel-collapse">
<div *ngIf="dataModel.groups.length">
<toc [dataModel]="dataModel"></toc>
</div>
</div>
</div>
</div>
</div>
<!--
<div class="col-md-4">
<h4>On this page:</h4>
<div *ngIf="dataModel.groups.length">
<toc [dataModel]="dataModel"></toc>
</div>
</div>
-->
</div>
<div class="text-center">
<!-- pagination -->
<ul *ngIf="pagination.pages && pagination.pages.length" class="pagination">

View File

@ -13,9 +13,22 @@ import { GroupBase } from './dynamic-form-group/group-base';
import { PaginationService } from '../../app/services/pagination.service';
import { TokenService, TokenProvider } from '../services/token.service';
import { AngularDraggableModule } from 'angular2-draggable';
import './../../assets/xml2json.min.js';
declare var X2JS: any;
var flatten = require('flat');
import * as $ from '../../../node_modules/jquery/dist/jquery'
import * as scroll from '../../assets/jquery.scrollTo.min.js';
@Component({
selector: 'dynamic-form',
templateUrl: './dynamic-form.component.html',
@ -31,11 +44,14 @@ export class DynamicFormComponent implements OnInit {
@Input() pagination: any = {};
id:string;
datasetId:string;
datasetProperties:string;
//datasetProperties:string;
private fragment: string;
xml2jsonOBJ: any;
constructor(private qcs: FieldControlService, private serverService: ServerService, private dataModelService: dataModelBuilder, private router: Router,
private route: ActivatedRoute, private pagerService: PaginationService, private tokenService : TokenService) {
this.form = this.qcs.toFormGroup(new Array(), new Array());
@ -57,10 +73,10 @@ export class DynamicFormComponent implements OnInit {
let sub = this.route.params.subscribe(params => {
this.id = params.id;
this.datasetId = params.datasetId;
this.datasetProperties = params.datasetProperties
//this.datasetProperties = params.datasetProperties
});
this.serverService.getDatsetsProfile(this.id).subscribe(
this.serverService.getDatasetProfileByID(this.id).subscribe(
response => {
@ -132,8 +148,53 @@ export class DynamicFormComponent implements OnInit {
}
);
this.serverService.getDatasetByID(this.datasetId).subscribe(
(data) => {
if(data.properties){
console.log("Found already submitted form, loading that one!");
//console.log(data.properties)
//console.log(JSON.parse(data.properties))
let formValues = JSON.parse(data.properties);
var flatList = flatten(formValues);
this.patchForm(flatList);
}
},
(err) => {
});
}
scrollToElemID(elemID){
scroll("#"+elemID);
}
private patchForm(flatList : any){
for (var prop in flatList) {
if (flatList.hasOwnProperty(prop)) {
if(prop.endsWith('.id')||prop.endsWith('.answer')||prop.endsWith('.value')) continue;
//console.log("updating value of "+prop +" to "+flatList[prop].valueOf())
this.form.get(prop).setValue(flatList[prop].valueOf());
}
}
//this.form.get("namingConventionGroup.nonamingConventionA213").setValue("TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT");
}
ngAfterViewChecked(): void { //navigate to certain section of the page
try {
document.querySelector('#' + this.fragment).scrollIntoView();
@ -141,6 +202,30 @@ export class DynamicFormComponent implements OnInit {
}
onSubmit() {
this.serverService.getDatasetByID(this.datasetId).subscribe(
(data) => {
//is xml, so transform them to xml (it's json)
//data.properties = this.xml2jsonOBJ.json2xml_str(JSON.stringify(this.form.value));
data.properties = JSON.stringify(this.form.value);
this.serverService.setDataset(data).subscribe( (data) => {
console.log("Updated dataset");
//VALE EDW NA SE PIGAINEI PISW KAI NA SOU VGAZEI ENA MHNYMA SUCCESS... (to success tha to valw egw an thes)
},
(err) => {
});
},
(err) => {
});
this.payLoad = JSON.stringify(this.form.value);
}

View File

@ -4,15 +4,16 @@
<li class="nav-item">
<div *ngFor="let group of dataModel.groups"> <!-- All contents in the first page -->
<ul>
<li><a class="nav-link" [routerLink]="['.']" fragment="{{group.key}}">{{group.title}}</a>
<ul *ngFor="let field of group.groupFields">
<li *ngIf="field.visible == 'true'">
<a class="nav-link" [routerLink]="['.']" fragment="{{field.key}}">{{field.label}}</a>
</li>
</ul>
</li>
</ul>
<li>
<a (click)='scrollToElemID(group.key)'>{{group.title}}</a>
<ul *ngFor="let field of group.groupFields">
<li *ngIf="field.visible == 'true'">
<a (click)='scrollToElemID(field.key)'>{{field.label}}</a>
</li>
</ul>
</li>
</ul>
</div>

View File

@ -1,12 +1,17 @@
import { Component, OnInit, Input } from '@angular/core';
import { DataModel } from '../../entities/DataModel';
//import * as $ from '../../../../node_modules/jquery/dist/jquery'
import * as scroll from '../../../assets/jquery.scrollTo.min.js';
@Component({
selector: 'toc',
templateUrl: '/toc.component.html',
providers: []
})
export class TocComponent implements OnInit{
export class TocComponent implements OnInit{
@Input() dataModel: DataModel;
private headers = new Array();
@ -18,4 +23,9 @@ export class TocComponent implements OnInit{
}
scrollToElemID(elemID){
console.log("going to id:"+elemID)
scroll("#"+elemID);
}
}

View File

@ -97,7 +97,8 @@ export class ModalComponent implements OnInit {
this.show = false;
}
showDatasets(dmpId, event) {
showDatasets(dmpId, event) {
debugger;
this.dataSetVisibe = true;
$("#exampleModalDmps").modal("hide");
this.show = false;

View File

@ -1,7 +1,7 @@
<meta name="google-signin-client_id" content="524432312250-vhgidft856v8qftsc81kls4c74v87d8o.apps.googleusercontent.com">
<table class="table table-striped" [mfData]="tableData | dmpTableFilter : filterQuery"
<table class="table table-striped" [mfData]="tableData | projectTableFilter : filterQuery"
#mf="mfDataTable" [mfRowsOnPage]="rowsOnPage" [(mfSortBy)]="sortBy" [(mfSortOrder)]="sortOrder">
<thead>
<tr>

View File

@ -16,10 +16,13 @@ export class RestBase {
}
protocol: string = "http";
hostname: string ="dl010.madgik.di.uoa.gr" ;//"localhost";//"dl010.madgik.di.uoa.gr";//
port: number = 8080;//8080;//
webappname: string = "dmp-backend";//"dmp-backend-new";//
/*protocol: string = "http";

View File

@ -0,0 +1,7 @@
/**
* Copyright (c) 2007-2015 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
* Licensed under MIT
* @author Ariel Flesler
* @version 2.1.2
*/
;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,8 @@
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es2015",
"types": []
"types": ["node"],
"typeRoots": [ "../node_modules/@types" ]
},
"exclude": [
"test.ts",

View File

@ -3,3 +3,4 @@ declare var module: NodeModule;
interface NodeModule {
id: string;
}