diff --git a/dmp-frontend/.angular-cli.json b/dmp-frontend/.angular-cli.json index 9e16abc32..fa49c8f03 100644 --- a/dmp-frontend/.angular-cli.json +++ b/dmp-frontend/.angular-cli.json @@ -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": { diff --git a/dmp-frontend/package-lock.json b/dmp-frontend/package-lock.json index bf3c5c5d4..27d9d0aaa 100644 --- a/dmp-frontend/package-lock.json +++ b/dmp-frontend/package-lock.json @@ -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", diff --git a/dmp-frontend/package.json b/dmp-frontend/package.json index 5dc879ded..238b93fad 100644 --- a/dmp-frontend/package.json +++ b/dmp-frontend/package.json @@ -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", diff --git a/dmp-frontend/src/app/app.module.ts b/dmp-frontend/src/app/app.module.ts index 5b20cd5a0..2d7b67aee 100644 --- a/dmp-frontend/src/app/app.module.ts +++ b/dmp-frontend/src/app/app.module.ts @@ -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, diff --git a/dmp-frontend/src/app/form/dynamic-form.component.html b/dmp-frontend/src/app/form/dynamic-form.component.html index f9d128b70..b907376e2 100644 --- a/dmp-frontend/src/app/form/dynamic-form.component.html +++ b/dmp-frontend/src/app/form/dynamic-form.component.html @@ -36,17 +36,36 @@

Form value: {{ form.value | json }}

- +
+
+
+
+

Table of contents:

+
+
+
+ +
+
+
+ + + +
+
+ + +
diff --git a/dmp-frontend/src/app/form/tableOfContents/toc.component.ts b/dmp-frontend/src/app/form/tableOfContents/toc.component.ts index 12aa99c8b..fd5ef2715 100644 --- a/dmp-frontend/src/app/form/tableOfContents/toc.component.ts +++ b/dmp-frontend/src/app/form/tableOfContents/toc.component.ts @@ -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); + } + } \ No newline at end of file diff --git a/dmp-frontend/src/app/modal/modal.component.ts b/dmp-frontend/src/app/modal/modal.component.ts index ad8ac94c6..cb135700c 100644 --- a/dmp-frontend/src/app/modal/modal.component.ts +++ b/dmp-frontend/src/app/modal/modal.component.ts @@ -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; diff --git a/dmp-frontend/src/app/projects/project.html b/dmp-frontend/src/app/projects/project.html index 8ebb50ec2..1ee5d4c3f 100644 --- a/dmp-frontend/src/app/projects/project.html +++ b/dmp-frontend/src/app/projects/project.html @@ -1,7 +1,7 @@ - diff --git a/dmp-frontend/src/app/services/rest-base.ts b/dmp-frontend/src/app/services/rest-base.ts index c39a21aa5..46e77966c 100644 --- a/dmp-frontend/src/app/services/rest-base.ts +++ b/dmp-frontend/src/app/services/rest-base.ts @@ -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"; diff --git a/dmp-frontend/src/assets/jquery.scrollTo.min.js b/dmp-frontend/src/assets/jquery.scrollTo.min.js new file mode 100644 index 000000000..65a020d92 --- /dev/null +++ b/dmp-frontend/src/assets/jquery.scrollTo.min.js @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2007-2015 Ariel Flesler - afleslergmailcom | 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=f[g]?0:Math.min(f[g],n));!a&&1.panel-heading{padding:5px;position:relative;border-top-right-radius:0;border-top-left-radius:0}.lobipanel>.panel-heading>.panel-title{float:left;max-width:calc(100% - 30px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;line-height:30px;padding-left:15px}.lobipanel>.panel-heading>.panel-title h1,.lobipanel>.panel-heading>.panel-title h2,.lobipanel>.panel-heading>.panel-title h3,.lobipanel>.panel-heading>.panel-title h4,.lobipanel>.panel-heading>.panel-title h5,.lobipanel>.panel-heading>.panel-title h6{margin:0;line-height:30px}.lobipanel>.panel-heading>.panel-title input{color:inherit;line-height:30px;border-radius:2px;padding:0 5px;width:100%;background-color:rgba(0,0,0,.2);border:1px solid #337ab7;outline:0}.lobipanel>.panel-heading>.panel-title input:focus{background-color:rgba(0,0,0,.15)}.lobipanel>.panel-heading .dropdown{display:inline-block;float:right;position:relative}.lobipanel>.panel-heading .dropdown .dropdown-menu{left:auto;right:0;min-width:initial;margin-top:0;border-radius:0}.lobipanel>.panel-heading .dropdown .dropdown-menu>li>a .control-title{display:inline-block;margin-left:15px}.lobipanel>.panel-heading .dropdown .dropdown-toggle{border:none;outline:0;background-color:transparent;text-align:center;padding:0;width:30px;font-size:14px;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.lobipanel>.panel-heading .dropdown .dropdown-toggle .panel-control-icon{top:0;line-height:30px}.lobipanel>.panel-heading .dropdown .dropdown-toggle:hover,.lobipanel>.panel-heading .dropdown .dropdown-toggle:hover:focus,.lobipanel>.panel-heading .dropdown.open .dropdown-toggle{text-shadow:2px 2px 5px rgba(0,0,0,.6);background-color:rgba(0,0,0,.15)}.lobipanel>.panel-heading:after,.lobipanel>.panel-heading:before{content:" ";display:table}.lobipanel>.panel-heading:after{clear:both}@media screen and (min-width:768px){.lobipanel .panel-heading .panel-title{max-width:calc(100% - 180px)}.lobipanel .panel-heading .dropdown .dropdown-menu{position:static;display:inline-block;border:none;padding:0;margin:0;min-width:initial;width:auto;-webkit-box-shadow:none;box-shadow:none;background:0 0}.lobipanel .panel-heading .dropdown .dropdown-menu>li{display:inline-block}.lobipanel .panel-heading .dropdown .dropdown-menu>li>a .control-title,.lobipanel .panel-heading .dropdown .dropdown-toggle{display:none}.lobipanel .panel-heading .dropdown .dropdown-menu>li>a{cursor:pointer;color:inherit;padding:0;outline:0;text-align:center;width:30px;font-size:14px;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.lobipanel .panel-heading .dropdown .dropdown-menu>li>a .panel-control-icon{top:0;line-height:30px}.lobipanel .panel-heading .dropdown .dropdown-menu>li>a:focus:hover,.lobipanel .panel-heading .dropdown .dropdown-menu>li>a:hover{text-shadow:2px 2px 5px rgba(0,0,0,.6);background-color:rgba(0,0,0,.15)}.lobipanel .panel-heading .dropdown .dropdown-menu>li>a:focus{text-shadow:none;background-color:transparent}}.lobipanel>.panel-body{overflow:auto;position:relative}.lobipanel .panel-loader{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fff;opacity:.8}.lobipanel.panel-collapsed>.panel-heading{border-bottom:none}.lobipanel.panel-collapsed>.panel-heading .dropdown .dropdown-menu>li>a[data-func=unpin],.lobipanel.panel-collapsed>.panel-heading .dropdown .dropdown-menu>li>a[data-func=reload],.lobipanel.panel-collapsed>.panel-heading .dropdown .dropdown-menu>li>a[data-func=expand]{display:none}.lobipanel.panel-expanded,.lobipanel.panel-minimized.panel-unpin,.lobipanel.panel-unpin{margin-bottom:0}.lobipanel.panel-unpin{overflow:hidden;position:fixed;z-index:10000;-webkit-box-shadow:2px 2px 15px 5px rgba(10,10,10,.5);box-shadow:2px 2px 15px 5px rgba(10,10,10,.5)}.lobipanel.panel-unpin>.panel-heading{cursor:move}.lobipanel.panel-unpin.panel-minimized{float:left;position:initial;border-radius:0;-webkit-box-shadow:none;box-shadow:none;min-width:170px;margin-right:5px}.lobipanel.panel-unpin.panel-minimized>.panel-heading{padding:0;cursor:pointer;border-bottom:none}.lobipanel.panel-unpin.panel-minimized>.panel-heading .panel-title{max-width:calc(100% - 60px)}.lobipanel.panel-unpin.panel-minimized>.panel-heading .panel-title h1,.lobipanel.panel-unpin.panel-minimized>.panel-heading .panel-title h2,.lobipanel.panel-unpin.panel-minimized>.panel-heading .panel-title h3,.lobipanel.panel-unpin.panel-minimized>.panel-heading .panel-title h4,.lobipanel.panel-unpin.panel-minimized>.panel-heading .panel-title h5,.lobipanel.panel-unpin.panel-minimized>.panel-heading .panel-title h6{overflow:hidden;text-overflow:ellipsis}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu{position:static;display:inline-block;border:none;padding:0;margin:0;min-width:initial;width:auto;-webkit-box-shadow:none;box-shadow:none;background:0 0}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li{display:inline-block}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a,.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a .control-title,.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-toggle{display:none}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a{cursor:pointer;color:inherit;padding:0;outline:0;text-align:center;width:30px;font-size:14px;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a .panel-control-icon{top:0;line-height:30px}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a:focus:hover,.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a:hover{text-shadow:2px 2px 5px rgba(0,0,0,.6);background-color:rgba(0,0,0,.15)}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a:focus{text-shadow:none;background-color:transparent}.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a[data-func=expand],.lobipanel.panel-unpin.panel-minimized>.panel-heading .dropdown .dropdown-menu>li>a[data-func=close]{display:inline-block}.lobipanel.panel-unpin.panel-minimized>.panel-body,.lobipanel.panel-unpin.panel-minimized>.panel-footer{display:none!important}.lobipanel.panel-expanded>.panel-heading{cursor:initial}.lobipanel.panel-expanded>.panel-heading .dropdown .dropdown-menu>li>a[data-func=unpin],.lobipanel.panel-expanded>.panel-heading .dropdown .dropdown-menu>li>a[data-func=minimize]{display:none}.lobipanel.panel-expanded.panel-unpin>.panel-heading .panel-control[data-func=minimize]{display:block}.lobipanel-minimized-toolbar{position:fixed;height:36px;padding:2px;bottom:0;left:0;right:0;z-index:20000;background:rgba(34,115,182,.51)}.lobipanel-placeholder{background-color:#f9f5d1;border:1px dashed #919191;margin-bottom:15px} \ No newline at end of file diff --git a/dmp-frontend/src/assets/lobipanel/lobipanel.min.js b/dmp-frontend/src/assets/lobipanel/lobipanel.min.js new file mode 100644 index 000000000..dc73eb51a --- /dev/null +++ b/dmp-frontend/src/assets/lobipanel/lobipanel.min.js @@ -0,0 +1 @@ +Math.randomString=function(n){for(var text="",possible="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;n>i;i++)text+=possible.charAt(Math.floor(Math.random()*possible.length));return text},String.prototype.getCss=function(){for(var css={},style=this.valueOf().split(";"),i=0;i=num1)return!0}else if(this.valueOf()num1)return!0;return!1},$.fn.insertAt=function(i,selector){var object=selector;if("string"==typeof selector&&(object=$(selector)),i=Math.min(object.children().length,i),0==i)return object.prepend(this),this;var oldIndex=this.data("index");return this.attr("data-index",i),object.find(">*:nth-child("+i+")").after(this),object.children().each(function(index,el){var $el=$(el);i>oldIndex&&index>oldIndex&&i>=index?$el.attr("data-index",parseInt($el.data("data-index"),10)-1):oldIndex>=i&&index>i&&oldIndex>=index&&$el.attr("data-index",parseInt($el.attr("data-index"),10)+1)}),this},$.fn.disableSelection=function(){return this.attr("unselectable","on").css("user-select","none").on("selectstart",!1)},$.fn.enableSelection=function(){return this.removeAttr("unselectable").css("user-select","initial").off("selectstart")},$(function(){var LobiPanel=function($el,options){this.$el=null,this.$options={},this.hasRandomId=!1,this.storage=null;var $heading,$body,innerId,storagePrefix="lobipanel_",me=this,_processInput=function(options){options||(options={});var opts=_getOptionsFromAttributes();options=$.extend({},$.fn.lobiPanel.DEFAULTS,me.storage,options,opts);for(var objects=["unpin","reload","expand","minimize","close","editTitle"],i=0;ili>a").on("click",function(ev){ev.preventDefault(),ev.stopPropagation()}),dropdown},_generateDropdown=function(){return $('').append('').append('')},_generateEditTitle=function(){var options=me.$options.editTitle,control=$('');return control.append(''),options.tooltip&&"string"==typeof options.tooltip&&(control.append(''+options.tooltip+""),control.attr("data-tooltip",options.tooltip)),_onEditTitleClick(control),$("
  • ").append(control)},_onEditTitleClick=function(control){control.on("mousedown",function(ev){ev.stopPropagation()}),control.on("click",function(ev){ev.stopPropagation(),$heading.find('[data-func="editTitle"]').tooltip("hide"),me.isTitleEditing()?me.finishTitleEditing():me.startTitleEditing()})},_generateUnpin=function(){var options=me.$options.unpin,control=$('');return control.append(''),options.tooltip&&"string"==typeof options.tooltip&&(control.append(''+options.tooltip+""),control.attr("data-tooltip",options.tooltip)),_onUnpinClick(control),$("
  • ").append(control)},_onUnpinClick=function(control){control.on("mousedown",function(ev){ev.stopPropagation()}),control.on("click",function(){me.togglePin()})},_generateReload=function(){var options=me.$options.reload,control=$('');return control.append(''),options.tooltip&&"string"==typeof options.tooltip&&(control.append(''+options.tooltip+""),control.attr("data-tooltip",options.tooltip)),_onReloadClick(control),$("
  • ").append(control)},_onReloadClick=function(control){control.on("mousedown",function(ev){ev.stopPropagation()}),control.on("click",function(){me.load({callback:function(){control.tooltip("hide")}})})},_generateMinimize=function(){var options=me.$options.minimize,control=$('');return control.append(''),options.tooltip&&"string"==typeof options.tooltip&&(control.append(''+options.tooltip+""),control.attr("data-tooltip",options.tooltip)),_onMinimizeClick(control),$("
  • ").append(control)},_onMinimizeClick=function(control){control.on("mousedown",function(ev){ev.stopPropagation()}),control.on("click",function(ev){ev.stopPropagation(),me.toggleMinimize()})},_generateExpand=function(){var options=me.$options.expand,control=$('');return control.append(''),options.tooltip&&"string"==typeof options.tooltip&&(control.append(''+options.tooltip+""),control.attr("data-tooltip",options.tooltip)),_onExpandClick(control),$("
  • ").append(control)},_onExpandClick=function(control){control.on("mousedown",function(ev){ev.stopPropagation()}),control.on("click",function(ev){ev.stopPropagation(),me.toggleSize()})},_generateClose=function(){var options=me.$options.close,control=$('');return control.append(''),options.tooltip&&"string"==typeof options.tooltip&&(control.append(''+options.tooltip+""),control.attr("data-tooltip",options.tooltip)),_onCloseClick(control),$("
  • ").append(control)},_onCloseClick=function(control){control.on("mousedown",function(ev){ev.stopPropagation()}),control.on("click",function(ev){ev.stopPropagation(),control.tooltip("hide"),me.close()})},_getMaxZIndex=function(){var style,max,cur,panels=$(".lobipanel.panel-unpin:not(.panel-minimized.panel-expanded)");if(0===panels.length)return{id:"","z-index":LobiPanel.PRIVATE_OPTIONS.initialZIndex};style=$(panels[0]).attr("style");var id=$(panels[0]).data("inner-id");max=style?style.getCss()["z-index"]:LobiPanel.PRIVATE_OPTIONS.initialZIndex;for(var i=1;imax&&(id=$(panels[i]).data("inner-id"),max=cur);return{id:id,"z-index":parseInt(max,10)}},_onPanelClick=function(){me.$el.on("mousedown.lobiPanel",function(){return me.isPinned()||me.isMinimized()||me.isOnFullScreen()?!1:void me.bringToFront()})},_offPanelClick=function(){me.$el.off("mousedown.lobiPanel")},_changeClassOfControl=function(el){el=$(el);var opts=me.$options[el.attr("data-func")];opts.icon&&el.find("."+LobiPanel.PRIVATE_OPTIONS.iconClass).toggleClass(opts.icon).toggleClass(opts.icon2)},_getFooterForMinimizedPanels=function(){var minimizedCtr=$("."+LobiPanel.PRIVATE_OPTIONS.toolbarClass);return 0===minimizedCtr.length&&(minimizedCtr=$('
    '),$("body").append(minimizedCtr)),minimizedCtr},_expandOnHeaderClick=function(){$heading.on("click.lobiPanel",function(){me.maximize(),me.bringToFront()})},_removeExpandOnHeaderClick=function(){$heading.off("click.lobiPanel")},_getAvailableWidth=function(calcWidth){return me.$options.maxWidth&&(calcWidth=Math.min(calcWidth,me.$options.maxWidth)),me.$options.minWidth&&(calcWidth=Math.max(calcWidth,me.$options.minWidth)),calcWidth},_getAvailableHeight=function(calcHeight){return me.$options.maxHeight&&(calcHeight=Math.min(calcHeight,me.$options.maxHeight)),me.$options.minHeight&&(calcHeight=Math.max(calcHeight,me.$options.minHeight)),calcHeight},_calculateBodyHeight=function(h){return h-$heading.outerHeight()-me.$el.find(".panel-footer").outerHeight()},_calculateBodyWidth=function(w){return w-2},_appendInnerIdToParent=function(parent,innerId){if(void 0===parent.attr(LobiPanel.PRIVATE_OPTIONS.parentAttr))parent.attr(LobiPanel.PRIVATE_OPTIONS.parentAttr,innerId);else{if(parent.attr(LobiPanel.PRIVATE_OPTIONS.parentAttr).indexOf(innerId)>-1)return;var innerIds=parent.attr(LobiPanel.PRIVATE_OPTIONS.parentAttr);parent.attr(LobiPanel.PRIVATE_OPTIONS.parentAttr,innerIds+" "+innerId)}me.$el.attr("data-index",me.$el.index())},_insertInParent=function(){var parent=$("["+LobiPanel.PRIVATE_OPTIONS.parentAttr+"~="+innerId+"]");me.$el.insertAt(me.$el.attr("data-index"),parent)},_generateWindow8Spinner=function(){var template=['
    ','
    ','
    ',"
    ","
    ",'
    ','
    ',"
    ","
    ",'
    ','
    ',"
    ","
    ",'
    ','
    ',"
    ","
    ",'
    ','
    ',"
    ","
    ","
    "].join("");return $('
    '+template+"
    ")},_enableSorting=function(){var parent=me.$el.parent();parent.hasClass("ui-sortable")&&parent.sortable("destroy"),me.$options.sortable?(me.$el.addClass("lobipanel-sortable"),parent.addClass("lobipanel-parent-sortable")):me.$el.removeClass("lobipanel-sortable"),parent.sortable({connectWith:".lobipanel-parent-sortable",items:".lobipanel-sortable",handle:".panel-heading",cursor:"move",placeholder:"lobipanel-placeholder",forcePlaceholderSize:!0,opacity:.7,revert:300,update:function(event,ui){var innerId=ui.item.data("inner-id");_removeInnerIdFromParent(innerId),_appendInnerIdToParent(ui.item.parent(),innerId),_updateDataIndices(ui.item),_triggerEvent("dragged")}})},_disableSorting=function(){var parent=me.$el.parent();parent.hasClass("ui-sortable")&&parent.sortable("destroy")},_updateDataIndices=function(panel){var items=panel.parent().find("> *");items.each(function(index,el){$(el).attr("data-index",index)})},_removeInnerIdFromParent=function(innerId){var parent=$("["+LobiPanel.PRIVATE_OPTIONS.parentAttr+"~="+innerId+"]"),innerIds=parent.attr(LobiPanel.PRIVATE_OPTIONS.parentAttr).replace(innerId,"").trim().replace(/\s{2,}/g," ");parent.attr(LobiPanel.PRIVATE_OPTIONS.parentAttr,innerIds)},_onToggleIconsBtnClick=function(){$heading.find(".toggle-controls").on("click.lobiPanel",function(){me.$el.toggleClass("controls-expanded")})},_adjustForScreenSize=function(){me.disableTooltips(),$(window).width()>768&&me.$options.tooltips&&me.enableTooltips(),me.isOnFullScreen()&&$body.css({width:_calculateBodyWidth(me.$el.width()),height:_calculateBodyHeight(me.$el.height())})},_enableResponsiveness=function(){$(window).on("resize.lobiPanel",function(){_adjustForScreenSize()})},_setBodyHeight=function(){"auto"!==me.$options.bodyHeight&&$body.css({height:me.$options.bodyHeight,overflow:"auto"})},_getOptionsFromAttributes=function(){var $el=me.$el,options={};for(var key in $.fn.lobiPanel.DEFAULTS){var k=key.toDash(),val=$el.data(k);void 0!==val&&(options[key]="object"!=typeof $.fn.lobiPanel.DEFAULTS[key]?val:eval("("+val+")"))}return options},_saveState=function(state){!me.hasRandomId&&me.$options.stateful&&(me.storage.state=state,_saveLocalStorage(me.storage))},_saveLocalStorage=function(storage){localStorage.setItem(storagePrefix+innerId,JSON.stringify(storage))},_applyState=function(state){switch(state){case"unpinned":me.unpin();break;case"minimized":me.unpin(),me.minimize();break;case"collapsed":me.minimize();break;case"fullscreen":me.toFullScreen()}},_applyIndex=function(index){null!==index&&me.$el.insertAt(index,me.$el.parent())},_triggerEvent=function(eventType){var args=Array.prototype.slice.call(arguments,1);args.unshift(me),me.$el.trigger(eventType+".lobiPanel",args)};this.isPanelInit=function(){return me.$el.hasClass("lobipanel")&&me.$el.data("inner-id")},this.isPinned=function(){return!me.$el.hasClass("panel-unpin")},this.pin=function(){return _triggerEvent("beforePin"),$heading.find('[data-func="unpin"]').tooltip("hide"),me.disableResize(),me.disableDrag(),_enableSorting(),_offPanelClick(),me.$el.removeClass("panel-unpin").attr("old-style",me.$el.attr("style")).removeAttr("style").css("position","relative"),$body.css({width:"",height:""}),_setBodyHeight(),_insertInParent(),_saveState("pinned"),_triggerEvent("onPin"),me},this.unpin=function(){if(_triggerEvent("beforeUnpin"),me.$el.hasClass("panel-collapsed"))return me;if(_disableSorting(),$heading.find('[data-func="unpin"]').tooltip("hide"),me.$el.attr("old-style"))me.$el.attr("style",me.$el.attr("old-style"));else{var width=me.$el.width(),height=me.$el.height(),left=Math.max(0,($(window).width()-me.$el.outerWidth())/2),top=Math.max(0,($(window).height()-me.$el.outerHeight())/2);me.$el.css({left:left,top:top,width:width,height:height})}var res=_getMaxZIndex();me.$el.css("z-index",res["z-index"]+1),_onPanelClick(),me.$el.addClass("panel-unpin"),$("body").append(me.$el);var panelWidth=_getAvailableWidth(me.$el.width()),panelHeight=_getAvailableHeight(me.$el.height());me.$el.css({position:"fixed",width:panelWidth,height:panelHeight});var bHeight=_calculateBodyHeight(panelHeight),bWidth=_calculateBodyWidth(panelWidth);return $body.css({width:bWidth,height:bHeight}),me.$options.draggable&&me.enableDrag(),"none"!==me.$options.resize&&me.enableResize(),_saveState("unpinned"),_triggerEvent("onUnpin"),me},this.togglePin=function(){return this.isPinned()?this.unpin():this.pin(),me},this.isMinimized=function(){return me.$el.hasClass("panel-minimized")||me.$el.hasClass("panel-collapsed")},this.minimize=function(){if(_triggerEvent("beforeMinimize"),me.isMinimized())return me;if(me.isPinned())$body.slideUp(),me.$el.find(".panel-footer").slideUp(),me.$el.addClass("panel-collapsed"),_saveState("collapsed"),_changeClassOfControl($heading.find('[data-func="minimize"]'));else{me.disableTooltips(),$heading.find('[data-func="minimize"]').tooltip("hide");var left,top,footer=_getFooterForMinimizedPanels(),children=footer.find(">*");if(top=footer.offset().top,0===children.length)left=footer.offset().left;else{var ch=$(children[children.length-1]);left=ch.offset().left+ch.width()}me.$el.hasClass("panel-expanded")||me.$el.attr("old-style",me.$el.attr("style")),me.$el.animate({left:left,top:top,width:200,height:footer.height()},100,function(){me.$el.hasClass("panel-expanded")&&(me.$el.removeClass("panel-expanded"),me.$el.find(".panel-heading [data-func=expand] ."+LobiPanel.PRIVATE_OPTIONS.iconClass).removeClass(me.$options.expand.icon2).addClass(me.$options.expand.icon)),me.$el.addClass("panel-minimized"),me.$el.removeAttr("style"),me.disableDrag(),me.disableResize(),_expandOnHeaderClick(),footer.append(me.$el),$("body").addClass("lobipanel-minimized");var maxWidth="calc(100% - "+$heading.find(".dropdown-menu li>a:visible").length*$heading.find(".dropdown-menu li>a:visible").first().outerWidth()+"px)";$heading.find(".panel-title").css("max-width",maxWidth),_saveState("minimized"),_triggerEvent("onMinimize")})}return me},this.maximize=function(){if(_triggerEvent("beforeMaximize"),!me.isMinimized())return me;if(me.isPinned())$body.slideDown(),me.$el.find(".panel-footer").slideDown(),me.$el.removeClass("panel-collapsed"),_saveState("pinned"),_changeClassOfControl($heading.find('[data-func="minimize"]'));else{me.enableTooltips();var css=me.$el.attr("old-style").getCss();me.$el.css({position:css.position||"fixed","z-index":css["z-index"],left:me.$el.offset().left,top:me.$el.offset().top,width:me.$el.width(),height:me.$el.height()}),$("body").append(me.$el),delete css.position,delete css["z-index"],me.$el.animate(css,100,function(){me.$el.css("position",""),me.$el.removeClass("panel-minimized"),me.$el.removeAttr("old-style"),me.$options.draggable&&me.enableDrag(),me.enableResize(),_removeExpandOnHeaderClick();var footer=_getFooterForMinimizedPanels();0===footer.children().length&&footer.remove(),$("body").removeClass("lobipanel-minimized").addClass("lobipanel-minimized");var maxWidth="calc(100% - "+$heading.find(".dropdown-menu li").length*$heading.find(".dropdown-menu li").first().outerWidth()+"px)";$heading.find(".panel-title").css("max-width",maxWidth),_saveState("unpinned"),_triggerEvent("onMaximize")})}return me},this.toggleMinimize=function(){return me.isMinimized()?me.maximize():me.minimize(),me},this.isOnFullScreen=function(){return me.$el.hasClass("panel-expanded")},this.toFullScreen=function(){if(_triggerEvent("beforeFullScreen"),me.$el.hasClass("panel-collapsed"))return me;_changeClassOfControl($heading.find('[data-func="expand"]')),$heading.find('[data-func="expand"]').tooltip("hide");var res=_getMaxZIndex();if(me.isPinned()||me.isMinimized()){me.enableTooltips(),me.$el.css({position:"fixed","z-index":res["z-index"]+1,left:me.$el.offset().left,top:me.$el.offset().top-$(window).scrollTop(),width:me.$el.width(),height:me.$el.height()}),$("body").append(me.$el);var footer=_getFooterForMinimizedPanels();0===footer.children().length&&footer.remove()}else $body.css({width:"",height:""}),_setBodyHeight();me.isMinimized()?(me.$el.removeClass("panel-minimized"),_removeExpandOnHeaderClick()):(me.$el.attr("old-style",me.$el.attr("style")),me.disableResize());var toolbar=$("."+LobiPanel.PRIVATE_OPTIONS.toolbarClass),toolbarHeight=toolbar.outerHeight()||0;return me.$el.animate({width:$(window).width(),height:$(window).height()-toolbarHeight,left:0,top:0},me.$options.expandAnimation,function(){me.$el.css({width:"",height:"",right:0,bottom:toolbarHeight}),me.$el.addClass("panel-expanded"),$("body").css("overflow","hidden"),$body.css({width:_calculateBodyWidth(me.$el.width()),height:_calculateBodyHeight(me.$el.height())}),me.disableDrag(),me.isPinned()&&_disableSorting(),_saveState("fullscreen"),_triggerEvent("onFullScreen")}),me},this.toSmallSize=function(){_triggerEvent("beforeSmallSize"),_changeClassOfControl($heading.find('[data-func="expand"]')),$heading.find('[data-func="expand"]').tooltip("hide");var css=me.$el.attr("old-style").getCss();return me.$el.animate({left:css.left,top:css.top,width:css.width,height:css.height,right:css.right,bottom:css.bottom},me.$options.collapseAnimation,function(){me.$el.removeAttr("old-style"),me.$el.hasClass("panel-unpin")?(me.$options.draggable&&me.enableDrag(),me.enableResize()):(me.$el.removeAttr("style"),_insertInParent(),_enableSorting()),me.$el.removeClass("panel-expanded"),$("body").css("overflow","auto");var bWidth="",bHeight="";me.isPinned()?"auto"!==me.$options.bodyHeight&&(bHeight=me.$options.bodyHeight,_saveState("pinned")):(bWidth=_calculateBodyWidth(me.getWidth()),bHeight=_calculateBodyHeight(me.getHeight()),_saveState("unpinned")),$body.css({width:bWidth,height:bHeight}),_triggerEvent("onSmallSize")}),me},this.toggleSize=function(){return me.isOnFullScreen()?me.toSmallSize():me.toFullScreen(),me},this.close=function(){return _triggerEvent("beforeClose"),me.$el.hide(100,function(){me.isOnFullScreen()&&$("body").css("overflow","auto"),me.$el.remove();var footer=_getFooterForMinimizedPanels();0===footer.children().length&&footer.remove(),_triggerEvent("onClose")}),me},this.setPosition=function(left,top){return me.isPinned()?me:(me.$el.animate({left:left,top:top},100),me)},this.setWidth=function(w){if(me.isPinned())return me;var bWidth=_calculateBodyWidth(w);return me.$el.animate({width:w},100),$body.animate({width:bWidth},100),me},this.setHeight=function(h){if(me.isPinned())return me;var bHeight=_calculateBodyHeight(h);return me.$el.animate({height:h},100),$body.animate({height:bHeight},100),me},this.setSize=function(w,h){if(me.isPinned())return me;var bHeight=_calculateBodyHeight(h),bWidth=_calculateBodyWidth(w);return me.$el.animate({height:h,width:w},100),$body.animate({height:bHeight,width:bWidth},100),me},this.getPosition=function(){var offset=me.$el.offset();return{x:offset.left,y:offset.top}},this.getWidth=function(){return me.$el.width()},this.getHeight=function(){return me.$el.height()},this.bringToFront=function(){_triggerEvent("beforeToFront");var res=_getMaxZIndex();return res.id===me.$el.data("inner-id")?me:(me.$el.css("z-index",res["z-index"]+1),_triggerEvent("onToFront"),me)},this.enableDrag=function(){return me.$el.draggable({handle:".panel-heading"}),me},this.disableDrag=function(){return me.$el.hasClass("ui-draggable")&&me.$el.draggable("destroy"),me},this.enableResize=function(){var handles=!1;return"vertical"===me.$options.resize?handles="n, s":"horizontal"===me.$options.resize?handles="e, w":"both"===me.$options.resize&&(handles="all"),handles?(me.$el.resizable({minWidth:me.$options.minWidth,maxWidth:me.$options.maxWidth,minHeight:me.$options.minHeight,maxHeight:me.$options.maxHeight,handles:handles,start:function(){me.$el.disableSelection(),_triggerEvent("resizeStart")},stop:function(){me.$el.enableSelection(),_triggerEvent("resizeStop")},resize:function(){var bHeight=_calculateBodyHeight(me.$el.height()),bWidth=_calculateBodyWidth(me.$el.width());$body.css({width:bWidth,height:bHeight}),_triggerEvent("onResize")}}),me):void 0},this.disableResize=function(){return me.$el.hasClass("ui-resizable")&&me.$el.resizable("destroy"),me},this.startLoading=function(){var spinner=_generateWindow8Spinner();me.$el.append(spinner);var sp=spinner.find(".spinner");return sp.css("margin-top",50),me},this.stopLoading=function(){return me.$el.find(".spinner-wrapper").remove(),me},this.setLoadUrl=function(url){return me.$options.loadUrl=url,me},this.load=function(params){params=params||{},"string"==typeof params&&(params={url:params});var url=params.url||me.$options.loadUrl,data=params.data||{},callback=params.callback||null;return url?(_triggerEvent("beforeLoad"),me.startLoading(),$body.load(url,data,function(result,status,xhr){callback&&"function"==typeof callback&&callback(result,status,xhr),me.stopLoading(),_triggerEvent("loaded",result,status,xhr)}),me):me},this.destroy=function(){return me.disableDrag(),me.disableResize(),me.$options.sortable=!1,_enableSorting(),_removeInnerIdFromParent(innerId),me.$el.removeClass("lobipanel").removeAttr("data-inner-id").removeAttr("data-index").removeData("lobiPanel"),$heading.find(".dropdown").remove(),me.$el},this.startTitleEditing=function(){var title=$heading.find(".panel-title").text().trim(),input=$('');return input.on("keydown",function(ev){13===ev.which?me.finishTitleEditing():27===ev.which&&me.cancelTitleEditing()}),$heading.find(".panel-title").data("old-title",title).html("").append(input),input[0].focus(),input[0].select(),_changeClassOfControl($heading.find('[data-func="editTitle"]')),me},this.isTitleEditing=function(){return $heading.find(".panel-title input").length>0},this.cancelTitleEditing=function(){var title=$heading.find(".panel-title");return title.html(title.data("old-title")).find("input").remove(),_changeClassOfControl($heading.find('[data-func="editTitle"]')),me},this.finishTitleEditing=function(){var input=$heading.find("input");return $heading.find(".panel-title").html(input.val()),input.remove(),_changeClassOfControl($heading.find('[data-func="editTitle"]')),me},this.enableTooltips=function(){if($(window).width()<768)return me;var controls=$heading.find(".dropdown-menu>li>a");return controls.each(function(index,el){var $el=$(el);$el.attr("data-toggle","tooltip").attr("data-title",$el.data("tooltip")).attr("data-placement","bottom")}),controls.each(function(ind,el){$(el).tooltip({container:"body",template:''})}),me},this.disableTooltips=function(){return $heading.find(".dropdown-menu>li>a").tooltip("destroy"),me},this.$el=$el,me.$el.data("inner-id")||(me.hasRandomId=!0,me.$el.attr("data-inner-id",Math.randomString(10))),innerId=me.$el.data("inner-id"),me.hasRandomId||(me.storage=localStorage.getItem(storagePrefix+innerId),me.storage=JSON.parse(me.storage)||{}),this.$options=_processInput(options),$heading=this.$el.find(">.panel-heading"),$body=this.$el.find(">.panel-body"),_init(),_applyState(me.$options.state),_applyIndex(me.$options.initialIndex)};$.fn.lobiPanel=function(option){var args=arguments,ret=null;return this.each(function(){var $this=$(this),data=$this.data("lobiPanel"),options="object"==typeof option&&option;data||$this.data("lobiPanel",data=new LobiPanel($this,options)),"string"==typeof option&&(args=Array.prototype.slice.call(args,1),ret=data[option].apply(data,args))}),ret},LobiPanel.PRIVATE_OPTIONS={parentAttr:"data-lobipanel-child-inner-id",toolbarClass:"lobipanel-minimized-toolbar",initialZIndex:1e4,iconClass:"panel-control-icon"},$.fn.lobiPanel.DEFAULTS={draggable:!0,sortable:!1,connectWith:".ui-sortable",resize:"both",minWidth:200,minHeight:100,maxWidth:1200,maxHeight:700,loadUrl:"",autoload:!0,bodyHeight:"auto",tooltips:!0,toggleIcon:"glyphicon glyphicon-cog",expandAnimation:100,collapseAnimation:100,state:"pinned",initialIndex:null,stateful:!1,unpin:{icon:"glyphicon glyphicon-move",tooltip:"Unpin"},reload:{icon:"glyphicon glyphicon-refresh",tooltip:"Reload"},minimize:{icon:"glyphicon glyphicon-minus",icon2:"glyphicon glyphicon-plus",tooltip:"Minimize"},expand:{icon:"glyphicon glyphicon-resize-full",icon2:"glyphicon glyphicon-resize-small",tooltip:"Fullscreen"},close:{icon:"glyphicon glyphicon-remove",tooltip:"Close"},editTitle:{icon:"glyphicon glyphicon-pencil",icon2:"glyphicon glyphicon-floppy-disk",tooltip:"Edit title"}},$(".lobipanel").lobiPanel()}); \ No newline at end of file diff --git a/dmp-frontend/src/tsconfig.app.json b/dmp-frontend/src/tsconfig.app.json index 39ba8dbac..33aace051 100644 --- a/dmp-frontend/src/tsconfig.app.json +++ b/dmp-frontend/src/tsconfig.app.json @@ -4,7 +4,8 @@ "outDir": "../out-tsc/app", "baseUrl": "./", "module": "es2015", - "types": [] + "types": ["node"], + "typeRoots": [ "../node_modules/@types" ] }, "exclude": [ "test.ts", diff --git a/dmp-frontend/src/typings.d.ts b/dmp-frontend/src/typings.d.ts index ef5c7bd62..57ca26fb0 100644 --- a/dmp-frontend/src/typings.d.ts +++ b/dmp-frontend/src/typings.d.ts @@ -3,3 +3,4 @@ declare var module: NodeModule; interface NodeModule { id: string; } +