'+data_list[x]['name']
+ if (data[x] instanceof Object && Object.keys(data[x]).length > 0) {
+ res += ''+data_list[x]['name']+'\
+
'
+ res += create_nested_menu(data[x], data_list)
+ res += '
'
+ } else {
+ //console.log(data_list[x])
+ res += get_menu_object(data_list[x])
+ }
+ }
+ return res
+}
+
+function create_apis_menu(data) {
+ var lst_m = []
+ var len = 0
+ for (i = 0; i < data['menuentry_set'].length; i++) {
+ //console.log(data['menuentry_set'][i]);
+ var lst = []
+ var elem = data['menuentry_set'][i]
+ lst.push(elem)
+ while (elem.parent) {
+ if (!(elem.parent instanceof Object)) {
+ elem.parent = find_related_object(elem.parent, data['menuentry_set'])}
+ lst.push(elem.parent)
+ elem = elem.parent
+ }
+ lst_m.push(lst.reverse());
+ if (lst.length > len) {
+ len = lst.length
+ }
+ }
+ var menu_2 = {}
+ var menu_2_lst = {}
+ for (x = 0; x < lst_m.length; x++) {
+ var s_n = menu_2
+ for (u = 0; u < lst_m[x].length; u++) {
+ if (!(lst_m[x][u]['id'] in menu_2_lst)) {
+ s_n[lst_m[x][u]['id']] = {}
+ menu_2_lst[lst_m[x][u]['id']] = lst_m[x][u]
+ }
+ s_n = s_n[lst_m[x][u]['id']]}
+ }
+ var menu_html = create_nested_menu(menu_2, menu_2_lst)
+ menu_html += ''
+ menu_html = '
' + menu_html
+ return menu_html
+}
+
+
+function get_selected_text(txt_id) {
+ var element = document.getElementById(txt_id);
+ var start = 0, end = 0;
+ var sel, range, priorRange;
+ if (typeof window.getSelection != "undefined") {
+ range = window.getSelection().getRangeAt(0);
+ priorRange = range.cloneRange();
+ priorRange.selectNodeContents(element);
+ priorRange.setEnd(range.startContainer, range.startOffset);
+ start = priorRange.toString().length;
+ end = start + range.toString().length;
+ } else if (typeof document.selection != "undefined" &&
+ (sel = document.selection).type != "Control") {
+ range = sel.createRange();
+ priorRange = document.body.createTextRange();
+ priorRange.moveToElementText(element);
+ priorRange.setEndPoint("EndToStart", range);
+ start = priorRange.text.length;
+ end = start + range.text.length;
+ }
+ return {
+ start: start,
+ end: end,
+ rect: range.getBoundingClientRect()
+ };
+};
+
+
+function init_apis_highlighter(project_id, entity_id) {
+ $.get("/api/HLProjects/"+project_id.toString()+"/", function(data){
+ //menu = create_apis_menu(data.results[0])
+ //$( "#test_menu" ).append(menu)
+ //console.log(data)
+ $.ApisHigh = {}
+ $.ApisHigh.entity_id = entity_id
+ var lst_class = []
+ for (i=0; i < data['texthigh_set'].length; i++) {
+ lst_class.push('.'+data['texthigh_set'][i]['text_class'])
+ }
+ var cl_2 = lst_class.join(', ')
+ $(cl_2).bind('mouseup',function() {
+ $.ApisHigh.selected_text = get_selected_text($(this).attr('id'))
+ $.ApisHigh.selected_text.id = $(this).attr('id')
+ })
+ $(cl_2).tooltipster({
+ content: 'Loading...',
+ contentAsHTML: true,
+ interactive: true,
+ trigger: 'click',
+ theme: 'tooltipster-light',
+ side: ['bottom'],
+
+ functionPosition: function(instance, helper, position){
+ //console.log(position)
+ position.coord.top = ($.ApisHigh.selected_text.rect.top + (position.distance + $.ApisHigh.selected_text.rect.height));
+ position.coord.left = ($.ApisHigh.selected_text.rect.left - ((position.size.width/2)-($.ApisHigh.selected_text.rect.width/2)));
+ position.target = $.ApisHigh.selected_text.rect.left + ($.ApisHigh.selected_text.rect.width/2)
+ position.size.height = 'auto'
+ //console.log(position.target)
+ return position;
+ },
+ // 'instance' is basically the tooltip. More details in the "Object-oriented Tooltipster" section.
+ functionBefore: function(instance, helper) {
+ if ($.ApisHigh.high_complex){
+ $.ApisHigh.high_complex.close();
+ };
+ if ($.ApisHigh.selected_text.start == $.ApisHigh.selected_text.end) {
+ return false
+ }
+ var $origin = $(helper.origin);
+ // we set a variable so the data is only loaded once via Ajax, not every time the tooltip opens
+ if ($origin.data('loaded') !== true) {
+
+ menu = create_apis_menu(data)
+
+ // call the 'content' method to update the content of our tooltip with the returned data
+ instance.content(menu);
+
+
+ // to remember that the data has been loaded
+ $origin.data('loaded', true);
+ $.ApisHigh.data_original = menu;
+
+ } else {//console.log('fired');
+
+ instance.content($.ApisHigh.data_original);}
+ $.ApisHigh.tt_instance = instance
+ },
+
+ });
+
+ //$.ApisHigh.tt_instance = $(cl_2).tooltipster('instance');
+ })
+}
+
diff --git a/static/webpage/img/ACDH_Panorama_Postkarte_motiv02.jpg b/static/webpage/img/ACDH_Panorama_Postkarte_motiv02.jpg
new file mode 100644
index 0000000..25c69be
Binary files /dev/null and b/static/webpage/img/ACDH_Panorama_Postkarte_motiv02.jpg differ
diff --git a/static/webpage/img/INZ-Logo.png b/static/webpage/img/INZ-Logo.png
new file mode 100644
index 0000000..8f63900
Binary files /dev/null and b/static/webpage/img/INZ-Logo.png differ
diff --git a/static/webpage/img/INZ-Logo_orig.jpg b/static/webpage/img/INZ-Logo_orig.jpg
new file mode 100644
index 0000000..ff08b37
Binary files /dev/null and b/static/webpage/img/INZ-Logo_orig.jpg differ
diff --git a/static/webpage/img/ISR_logo.png b/static/webpage/img/ISR_logo.png
new file mode 100644
index 0000000..5f52de5
Binary files /dev/null and b/static/webpage/img/ISR_logo.png differ
diff --git a/static/webpage/img/apis.png b/static/webpage/img/apis.png
new file mode 100644
index 0000000..6e1697a
Binary files /dev/null and b/static/webpage/img/apis.png differ
diff --git a/static/webpage/img/dach_3et.jpg b/static/webpage/img/dach_3et.jpg
new file mode 100644
index 0000000..5473625
Binary files /dev/null and b/static/webpage/img/dach_3et.jpg differ
diff --git a/static/webpage/img/fassadehauptgebaeude.jpg b/static/webpage/img/fassadehauptgebaeude.jpg
new file mode 100644
index 0000000..3fb7a55
Binary files /dev/null and b/static/webpage/img/fassadehauptgebaeude.jpg differ
diff --git a/static/webpage/img/logo.png b/static/webpage/img/logo.png
new file mode 100644
index 0000000..8403971
Binary files /dev/null and b/static/webpage/img/logo.png differ
diff --git a/static/webpage/img/network.jpg b/static/webpage/img/network.jpg
new file mode 100644
index 0000000..18375cd
Binary files /dev/null and b/static/webpage/img/network.jpg differ
diff --git a/static/webpage/img/places.jpg b/static/webpage/img/places.jpg
new file mode 100644
index 0000000..155c01b
Binary files /dev/null and b/static/webpage/img/places.jpg differ
diff --git a/static/webpage/libraries/bower.json b/static/webpage/libraries/bower.json
new file mode 100644
index 0000000..d5b150f
--- /dev/null
+++ b/static/webpage/libraries/bower.json
@@ -0,0 +1,26 @@
+{
+ "name": "libraries",
+ "description": "libraries for APIS",
+ "main": "libraries",
+ "license": "MIT",
+ "homepage": "",
+ "private": true,
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "test",
+ "tests"
+ ],
+ "dependencies": {
+ "jquery": "^3.2.1",
+ "bootstrap": "^3.3.7",
+ "bootstrap-multiselect": "^0.9.13",
+ "bootstrap-datepicker": "^1.7.0",
+ "jquery-tablesort": "^0.0.11",
+ "leaflet": "^1.1.0",
+ "tooltipster": "^4.2.5",
+ "leaflet.markercluster": "Leaflet.markercluster#^1.0.6",
+ "linkurious.js": "Linkurious/linkurious.js#^1.5.1"
+ }
+}
diff --git a/static/webpage/libraries/scroll-to-top/css/ap-scroll-top.min.css b/static/webpage/libraries/scroll-to-top/css/ap-scroll-top.min.css
new file mode 100644
index 0000000..71bc8a2
--- /dev/null
+++ b/static/webpage/libraries/scroll-to-top/css/ap-scroll-top.min.css
@@ -0,0 +1 @@
+.apst-wrapper,.apst-wrapper::before,.apst-wrapper::after,.apst-wrapper *,.apst-wrapper *::before,.apst-wrapper *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.apst-wrapper{display:none;position:fixed;z-index:99999;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.apst-top{top:20px}.apst-bottom{bottom:20px}.apst-left{left:20px}.apst-center{left:50%;margin-left:-40px}.apst-right{right:20px}.apst-button{width:80px;height:80px;background-color:#555;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%}.apst-button,.apst-button::before{display:block;position:relative;-webkit-transition:all .2s;-moz-transition:all .2s;-ms-transition:all .2s;-o-transition:all .2s;transition:all .2s}.apst-button::before{content:"";left:29px;top:33px;width:22px;height:22px;border-right:6px solid #fff;border-top:6px solid #fff;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.apst-button:hover{background-color:#333}.apst-button:hover::before{border-color:#fff}@media only screen and (max-width:640px){.apst-center{margin-left:-35px}.apst-button{width:70px;height:70px}.apst-button::before{left:25px;top:27px;width:20px;height:20px}}@media only screen and (max-width:400px){.apst-center{margin-left:-30px}.apst-button{width:60px;height:60px}.apst-button::before{left:21px;top:23px;width:18px;height:18px;border-width:5px}}
\ No newline at end of file
diff --git a/static/webpage/libraries/scroll-to-top/js/ap-scroll-top.min.js b/static/webpage/libraries/scroll-to-top/js/ap-scroll-top.min.js
new file mode 100644
index 0000000..5cf4af1
--- /dev/null
+++ b/static/webpage/libraries/scroll-to-top/js/ap-scroll-top.min.js
@@ -0,0 +1 @@
+!function(t){function i(t){t+="";var i=t[0].toUpperCase();return i+t.substr(1)}function s(i){this.settings=t.extend(!0,{},s.defaultSettings,i),this._init(),e=this}var e,r="apst-",o="apst",l="apst";String.prototype.ucfirst||(String.prototype.ucfirst=function(){return i(this)}),s.prototype={_init:function(){this._addScrollTopElement(),this._registerScrollEvent(),this._updateCssClasses(),this._updatePosition(),this._updateScrollElementVisibility(),this._trigger("init")},_addScrollTopElement:function(){var i=this;"function"==typeof this.settings.customButton?this._scrollTopWrapper=this.settings.customButton(this.settings):(this._scrollTopWrapper=t("",{"class":r+"wrapper"}),this._scrollTopButton=t("",{"class":r+"button"}),this._scrollTopWrapper.append(this._scrollTopButton)),this._scrollTopWrapper.data("visible",!1),t("body").append(this._scrollTopWrapper);var s=this._getButton();s.on("click."+o,function(){i.scrollTo()})},_getButton:function(){var t=this._scrollTopWrapper.find("."+r+"button");return 0==t.length&&(t=this._scrollTopWrapper),t},_registerScrollEvent:function(){var i=this;t(document).ready(function(){t(window).scroll(function(t){i._updateScrollElementVisibility()})})},_updateScrollElementVisibility:function(){var t=this;this.settings.enabled&&this._isVisible()&&!this._scrollTopWrapper.data("visible")?(this._scrollTopWrapper.stop(!0,!1).fadeIn(this.settings.visibilityFadeSpeed,function(){t._updateCssClasses(),t._trigger("toggle",{visible:!0})}),this._scrollTopWrapper.data("visible",!0)):(!this._isVisible()&&this._scrollTopWrapper.data("visible")||!this.settings.enabled)&&(this._scrollTopWrapper.stop(!0,!1).fadeOut(this.settings.visibilityFadeSpeed,function(){t._updateCssClasses(),t._trigger("toggle",{visible:!1})}),this._scrollTopWrapper.data("visible",!1))},_isVisible:function(){var i=t(window).scrollTop();if("function"==typeof this.settings.visibilityTrigger)return this.settings.visibilityTrigger(i);var s=parseInt(this.settings.visibilityTrigger);return i>=s},_updateCssClasses:function(){if(this.settings.enabled?(this._scrollTopWrapper.addClass(r+"enabled"),this._scrollTopWrapper.removeClass(r+"disabled")):(this._scrollTopWrapper.addClass(r+"disabled"),this._scrollTopWrapper.removeClass(r+"enabled")),this._scrollTopWrapper.data("visible")?(this._scrollTopWrapper.addClass(r+"visible"),this._scrollTopWrapper.removeClass(r+"hidden")):(this._scrollTopWrapper.addClass(r+"hidden"),this._scrollTopWrapper.removeClass(r+"visible")),"string"==typeof this.settings.theme||this.settings.theme.length>0){var t=r+"theme-"+this.settings.theme;this._scrollTopWrapper.hasClass(t)||this._scrollTopWrapper.addClass(t)}this._trigger("cssClassesUpdated")},_updatePosition:function(){var t=["top","bottom","left","center","right"];if("string"==typeof this.settings.position){var i=this.settings.position.split(" ");for(index in i){var s=i[index].trim();t.indexOf(s)>-1&&this._scrollTopWrapper.addClass(r+i[index])}this._trigger("positionUpdated")}},_trigger:function(i,s){var e="on"+i.ucfirst(),r=this.settings[e];"function"==typeof r&&r.apply(t(this),s),i=l+i.ucfirst(),t(this).trigger(i,s)},_triggerHandler:function(i,s){var e,r="on"+i.ucfirst(),o=this.settings[r],n=void 0;return"function"==typeof o&&(n=o.apply(t(this),s)),i=l+i.ucfirst(),e=void 0!==(e=t(this).triggerHandler(i,s))?e:n},enable:function(){this.settings.enabled||(this.settings.enabled=!0,this._updateCssClasses(),this._updateScrollElementVisibility(),this._trigger("enabled"))},disable:function(){this.settings.enabled&&(this.settings.enabled=!1,this._updateCssClasses(),this._updateScrollElementVisibility(),this._trigger("disabled"))},scrollTo:function(i,s){var e=this;i=void 0!=i?i:0,s=s?s:this.settings.scrollSpeed;var r=this._triggerHandler("beforeScrollTo",{position:i,speed:s});"number"==typeof r?i=parseInt(r):"object"==typeof r&&(r.position&&(i=parseInt(r.position)),r.speed&&(s=parseInt(r.speed))),t("html, body").animate({scrollTop:i},s,function(){e._trigger("scrolledTo",{position:i})})},option:function(i,s){if(!i)return t.extend({},this.settings);var e;if("string"==typeof i){if(1===arguments.length)return void 0!==this.settings[i]?this.settings[i]:null;e={},e[i]=s}else e=i;this._setOptions(e)},_setOptions:function(t){for(key in t){var i=t[key];if("position"==key&&this._scrollTopWrapper.removeClass(r+"top "+r+"bottom "+r+"left "+r+"center "+r+"right"),"theme"==key){var s=r+"theme-"+this.settings.theme;this._scrollTopWrapper.hasClass(s)&&this._scrollTopWrapper.removeClass(s)}this.settings[key]=i,["enabled","visibilityTrigger","theme"].indexOf(key)>-1&&this._updateCssClasses(),["enabled","visibilityTrigger"].indexOf(key)>-1&&this._updateScrollElementVisibility(),["position"].indexOf(key)>-1&&this._updatePosition()}},destroy:function(){this._trigger("destroy"),this._getButton().off("click."+o),this._scrollTopWrapper.remove()}},t.apScrollTop=function(i){if(e||new s(i),"string"==typeof i){var r,o,l=Array.prototype.slice.call(arguments,1);if("function"==typeof(r=e[i])&&"_"!==i.charAt(0))return o=r.apply(e,l),void 0!==o?o:t(e)}return t(e)},s.defaultSettings={enabled:!0,visibilityTrigger:100,visibilityFadeSpeed:150,scrollSpeed:250,position:"right bottom",customButton:void 0,theme:"default"}}(jQuery);
\ No newline at end of file
diff --git a/templates/webpage/apis.html b/templates/webpage/apis.html
new file mode 100644
index 0000000..6221413
--- /dev/null
+++ b/templates/webpage/apis.html
@@ -0,0 +1,20 @@
+{% extends "webpage/base.html" %}
+{% load staticfiles %}
+
+{% block content %}
+
+
+
APIS-Project
+
Mapping historical networks: Building the new Austrian Prosopographical | Biographical Information System
+
Abstract
+
+
Das Österreichische Biographische Lexikon (ÖBL) ist das einzige enzyklopädische Werk in Mitteleuropa, das Lebens- und Karriereverläufe verdienter Persönlichkeiten des gesamten Gebiets der ehemaligen österreichisch-ungarischen Monarchie sowie der Ersten/Zweiten Republik erfasst. Basierend auf den rund 18.000 publizierten und bereits digital verfügbaren Biographien werden in Zusammenarbeit mit dem Austrian Centre for Digital Humanities (ACDH) und dem Institut für Stadt- und Regionalforschung (ISR) durch den Einsatz unterschiedlicher Methoden der Computerlinguistik (differenzierte, textlinguistische Erschließung), moderner IT-Strukturen und des Semantic Web Möglichkeiten geschaffen, um Lösungsansätze für Forschungsfragen im geistes-, sozial- und kulturwissenschaftlichen Kontext zu unterstützen und spezifische Auswertungen zu ermöglichen. Das ÖBL wird durch Transformation in eine adäquate Forschungsinfrastruktur maschinenlesbar (RDF, SKOS), semantisch angereichert, in der Linked Open Data Cloud publiziert (Open-Access Bereitstellung der Daten unter der CC-BY-NC Lizenz) sowie vollständig an internationale Standards angebunden (GND, VIAF); eine Integration in bestehende europäische Initiativen (DARIAH, CLARIN, EUROPEANA) ist projektiert. Dadurch wird zugleich die maximale Zugänglichkeit der Forschungsdaten erreicht.
+
Im Sinne transdisziplinärer Zusammenarbeit verbindet sich die Expertise des ÖBL (historisch-biographische Forschung) mit jener des ACDH im Bereich der Corpuslinguistik und Textechnologie zur Entwicklung innovativer Methoden, um beispielhaft konkreten sozialwissenschaftlichen Forschungsfragen des ISR eine neue Plattform zu bieten; parallel wird eine umfangreiche sozialwissenschaftliche und demographische Analyse der Wanderungsformen und Wanderungsmuster gesellschaftlicher Eliten im 19. und frühen 20. Jahrhundert mit besonderer Berücksichtigung der politischen Brüche innerhalb dieses Zeitraums erarbeitet/publiziert.
+
Das Projekt schlägt damit die Brücke von den Geisteswissenschaften über die Texttechnologie und Semantic Web-Ansätze zu den Sozialwissenschaften; es ist modellhaft, zukunftsweisend und realisiert Interdisziplinarität anhand eines konkreten „Werkstücks“.
+
APIS
+ Austrian Prosopographical Information System
+
+ This is a web application to
+ collect,
+ curate,
+ enrich,
+ analyze,
+ visualize,
+ and export
+ prosopgraphical and biographical data.
+ This web application is developed in the context of the APIS-Project.
+ First use cases are the are Modeling the Austrian Biographical Dictionary (Österreichisches Biograpisches Lexikon / ÖBL) and Semantic Academy (SemAc).
+
Prosopography of the Members of the Austrian Academy of Sciences 1847–2022
+
Abstract
+
+
APIS PAAS is a web application to collect, analyze and evaluate prosopographical and biographical data of the approximately 3000 members of the Austrian Academy of Sciences 1847–2022. This prosopography is developed by the APIS-Project of the ACDH (Austrian Prosopographical | Biographical Information System | Austrian Centre for Digitial Humanities | AAS) in cooperation with the Working Group History of the Austrian Academy of Sciences (HAAS).
+ The open app will enable users to retrieve the life and career paths of about 3000 Academy members since 1847. Combined evaluation methods make possible an analysis of specific network structures and constellations in the field of science and scholarship of Central Europe. The data concerning persons, places, institutions, events and publications are gathered in a structured way and linked with the GND (Gemeinsame Normdatei, “common authority file”) of the German National Library, the German-speaking library associations, the ZDB (Zeitschriftenbank, “periodicals database”) and the GeoNames geographical database.
+
APIS PAAS is an essential part of the new history of the Austrian Academy of Sciences 1847–2022 that is being compiled by the Working Group History of the Austrian Academy of Sciences (HAAS) at the Austrian Academy of Sciences.
+