Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Aktualisierung hierarchisch tieferer Ebenen: Listen werden gespeicher…

…t und nachgeführt, um DB-Zugriffe zu vermindern. Nächsttiefere Ebenen werden nur aktualisiert, wenn die höhere Datensätze hatte
  • Loading branch information...
commit 5239bcc80a02061d42e110deaffb205b96651250 1 parent c525027
@barbalex authored
View
16 _attachments/BeobEdit.html
@@ -259,10 +259,6 @@
'ja': {
click: function () {
$('#dialogoutput').text('ja');
- //allfällige Lokalisierung abbrechen
- if (typeof watchID !== "undefined") {
- stopGeolocation();
- }
löscheBeobachtung();
},
icon: "delete",
@@ -380,11 +376,7 @@
case "nächste":
if (parseInt(i) < AnzBeob) {
localStorage.BeobId = BeobListe.rows[parseInt(i)+1].value._id;
- delete window.Beobachtung;
- //allfällige Lokalisierung abbrechen
- if (typeof watchID !== "undefined") {
- stopGeolocation();
- }
+ leereStorageBeobEdit("ohneId");
initiiereBeobEdit();
return;
} else {
@@ -395,11 +387,7 @@
case "vorige":
if (parseInt(i) > 0) {
localStorage.BeobId = BeobListe.rows[parseInt(i)-1].value._id;
- delete window.Beobachtung;
- //allfällige Lokalisierung abbrechen
- if (typeof watchID !== "undefined") {
- stopGeolocation();
- }
+ leereStorageBeobEdit("ohneId");
initiiereBeobEdit();
return;
} else {
View
4 _attachments/FeldEdit.html
@@ -644,7 +644,7 @@ <h2 class="FeldEditHeaderTitel">Datenfelder</h2>
if (AktFeld_y.User === localStorage.Username || AktFeld_y.User === "ZentrenBdKt") {
//das ist das nächste eigene Feld > öffnen
localStorage.FeldId = Feldliste.rows[parseInt(i)+1].value._id;
- delete window.Feld;
+ leereStorageFeldEdit("ohneId");
initiiereFeldEdit();
return;
} else {
@@ -708,7 +708,7 @@ <h2 class="FeldEditHeaderTitel">Datenfelder</h2>
//das ist das nächstvorherige eigene Feld > öffnen
FeldIdVoriges = Feldliste.rows[parseInt(i)-1].value._id;
localStorage.FeldId = FeldIdVoriges;
- delete window.Feld;
+ leereStorageFeldEdit("ohneId");
initiiereFeldEdit();
return;
} else {
View
4 _attachments/hArtEdit.html
@@ -547,7 +547,7 @@
case "nächste":
if (parseInt(i) < AnzArt) {
localStorage.hBeobId = hBeobListe.rows[parseInt(i)+1].value._id;
- delete window.hArt;
+ leereStoragehBeobEdit("ohneId");
initiierehBeobEdit();
return;
} else {
@@ -558,7 +558,7 @@
case "vorige":
if (parseInt(i) > 0) {
localStorage.hBeobId = hBeobListe.rows[parseInt(i)-1].value._id;
- delete window.hArt;
+ leereStoragehBeobEdit("ohneId");
initiierehBeobEdit();
return;
} else {
View
84 _attachments/hOrtEdit.html
@@ -222,10 +222,6 @@
'ja': {
click: function () {
$('#dialogoutput').text('ja');
- //allfällige Lokalisierung abbrechen
- if (typeof watchID !== "undefined") {
- stopGeolocation();
- }
löscheOrt(Arten, Zeiten);
},
icon: "delete",
@@ -433,7 +429,9 @@
$db.saveDoc(window.hOrt, {
success: function (data) {
window.hOrt._rev = data.rev;
- speichereOrtfeldInArten(Feldname, Feldwert, InputTyp);
+ //tiefere Hierarchiestufen aktualisieren
+ //jede löst ihre eigene und die Aktualisierung der nächsten nur aus,
+ //wenn sie selber Datensätze hat
speichereOrtfeldInZeiten(Feldname, Feldwert, InputTyp);
//window.ZuletztGespeicherteOrtId wird benutzt, damit auch nach einem
//Datensatzwechsel die Listen nicht (immer) aus der DB geholt werden müssen
@@ -452,35 +450,55 @@
}
function speichereOrtfeldInZeiten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hZeitIdVonOrt?startkey=["' + localStorage.OrtId + '"]&endkey=["' + localStorage.OrtId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.ZeitenVonOrt = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ZeitenVonOrt);
+ if (window.ZeitenVonOrt) {
+ //vorhandenes Objekt nutzen
+ speichereOrtfeldInZeiten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hZeitIdVonOrt?startkey=["' + localStorage.OrtId + '"]&endkey=["' + localStorage.OrtId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.ZeitenVonOrt = data;
+ speichereOrtfeldInZeiten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereOrtfeldInZeiten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.ZeitenVonOrt.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ZeitenVonOrt, "ZeitenVonOrt");
+ //nächste Hierarchiestufe nur updaten, wenn obere Datensätze hatte
+ speichereOrtfeldInArten(Feldname, Feldwert, InputTyp);
+ }
}
function speichereOrtfeldInArten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hArtIdVonOrt?startkey=["' + localStorage.OrtId + '"]&endkey=["' + localStorage.OrtId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.ArtenVonOrt = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonOrt);
+ if (window.ArtenVonOrt) {
+ //vorhandenes Objekt nutzen
+ speichereOrtfeldInArten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hArtIdVonOrt?startkey=["' + localStorage.OrtId + '"]&endkey=["' + localStorage.OrtId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.ArtenVonOrt = data;
+ speichereOrtfeldInArten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereOrtfeldInArten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.ArtenVonOrt.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonOrt, "ArtenVonOrt");
+ }
}
//Menü aufbauen
@@ -585,11 +603,7 @@
case "nächster":
if (parseInt(i) < AnzOrt) {
localStorage.OrtId = OrtListe.rows[parseInt(i)+1].value._id;
- //allfällige Lokalisierung abbrechen
- if (typeof watchID !== "undefined") {
- stopGeolocation();
- }
- delete window.hOrt;
+ leereStorageOrtEdit("ohneId");
initiiereOrtEdit();
return;
} else {
@@ -600,11 +614,7 @@
case "voriger":
if (parseInt(i) > 0) {
localStorage.OrtId = OrtListe.rows[parseInt(i)-1].value._id;
- //allfällige Lokalisierung abbrechen
- if (typeof watchID !== "undefined") {
- stopGeolocation();
- }
- delete window.hOrt;
+ leereStorageOrtEdit("ohneId");
initiiereOrtEdit();
return;
} else {
View
144 _attachments/hProjektEdit.html
@@ -377,9 +377,9 @@
$db.saveDoc(window.hProjekt, {
success: function (data) {
window.hProjekt._rev = data.rev;
- speichereProjektfeldInArten(Feldname, Feldwert, InputTyp);
- speichereProjektfeldInZeiten(Feldname, Feldwert, InputTyp);
- speichereProjektfeldInOrten(Feldname, Feldwert, InputTyp);
+ //tiefere Hierarchiestufen aktualisieren
+ //jede löst ihre eigene und die Aktualisierung der nächsten nur aus,
+ //wenn sie selber Datensätze hat
speichereProjektfeldInRäumen(Feldname, Feldwert, InputTyp);
//window.ZuletztGespeicherteProjektId wird benutzt, damit auch nach einem
//Datensatzwechsel die Listen nicht (immer) aus der DB geholt werden müssen
@@ -398,67 +398,109 @@
}
function speichereProjektfeldInArten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hArtIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.ArtenVonProjekt = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonProjekt);
+ if (window.ArtenVonProjekt) {
+ //vorhandenes Objekt nutzen
+ speichereProjektfeldInArten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hArtIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.ArtenVonProjekt = data;
+ speichereProjektfeldInArten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereProjektfeldInArten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.ArtenVonProjekt.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonProjekt, "ArtenVonProjekt");
+ }
}
function speichereProjektfeldInZeiten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
- var viewname;
- viewname = 'evab/hZeitIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.ZeitenVonProjekt = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ZeitenVonProjekt);
+ var viewname
+ if (window.ZeitenVonProjekt) {
+ //vorhandenes Objekt benutzen
+ speichereProjektfeldInZeiten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hZeitIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.ZeitenVonProjekt = data;
+ speichereProjektfeldInZeiten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereProjektfeldInZeiten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.ZeitenVonProjekt.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ZeitenVonProjekt, "ZeitenVonProjekt");
+ //nächste Hierarchiestufe nur updaten, wenn obere Datensätze hatte
+ speichereProjektfeldInArten(Feldname, Feldwert, InputTyp);
+ }
}
function speichereProjektfeldInOrten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hOrtIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.OrteVonProjekt = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.OrteVonProjekt);
+ if (window.OrteVonProjekt) {
+ //vorhandenes Objekt nutzen
+ speichereProjektfeldInOrten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hOrtIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.OrteVonProjekt = data;
+ speichereProjektfeldInOrten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereProjektfeldInOrten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.OrteVonProjekt.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.OrteVonProjekt, "OrteVonProjekt");
+ //nächste Hierarchiestufe nur updaten, wenn obere Datensätze hatte
+ speichereProjektfeldInZeiten(Feldname, Feldwert, InputTyp);
+ }
}
function speichereProjektfeldInRäumen(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hRaumIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.RaeumeVonProjekt = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.RaeumeVonProjekt);
+ if (window.RaeumeVonProjekt) {
+ //vorhandenes Objekt nutzen
+ speichereProjektfeldInRäumen_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hRaumIdVonProjekt?startkey=["' + localStorage.ProjektId + '"]&endkey=["' + localStorage.ProjektId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.RaeumeVonProjekt = data;
+ speichereProjektfeldInRäumen_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereProjektfeldInRäumen_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.RaeumeVonProjekt.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.RaeumeVonProjekt, "RaeumeVonProjekt");
+ //nächste Hierarchiestufe nur updaten, wenn obere Datensätze hatte
+ speichereProjektfeldInOrten(Feldname, Feldwert, InputTyp);
+ }
}
//Menü aufbauen
@@ -559,8 +601,7 @@
if (parseInt(i) < AnzProj) {
localStorage.ProjektId = Projektliste.rows[parseInt(i)+1].value._id;
//$.mobile.changePage("#ProjektEditPage", {allowSamePageTransition: true});
- delete window.hOrteLatLngProjekt;
- delete window.hProjekt;
+ leereStorageProjektEdit("mitLatLngListe", "ohneId");
initiiereProjektEdit();
return;
} else {
@@ -572,8 +613,7 @@
if (parseInt(i) > 0) {
localStorage.ProjektId = Projektliste.rows[parseInt(i)-1].value._id;
//$.mobile.changePage("#ProjektEditPage", {allowSamePageTransition: true});
- delete window.hOrteLatLngProjekt;
- delete window.hProjekt;
+ leereStorageProjektEdit("mitLatLngListe", "ohneId");
initiiereProjektEdit();
return;
} else {
View
108 _attachments/hRaumEdit.html
@@ -394,8 +394,9 @@
$db.saveDoc(window.hRaum, {
success: function (data) {
window.hRaum._rev = data.rev;
- speichereRaumfeldInArten(Feldname, Feldwert, InputTyp);
- speichereRaumfeldInZeiten(Feldname, Feldwert, InputTyp);
+ //tiefere Hierarchiestufen aktualisieren
+ //jede löst ihre eigene und die Aktualisierung der nächsten nur aus,
+ //wenn sie selber Datensätze hat
speichereRaumfeldInOrten(Feldname, Feldwert, InputTyp);
//window.ZuletztGespeicherteRaumId wird benutzt, damit auch nach einem
//Datensatzwechsel die Listen nicht (immer) aus der DB geholt werden müssen
@@ -414,51 +415,82 @@
}
function speichereRaumfeldInArten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hArtIdVonRaum?startkey=["' + localStorage.RaumId + '"]&endkey=["' + localStorage.RaumId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.ArtenVonRaum = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonRaum);
+ if (window.ArtenVonRaum) {
+ //vorhandenes Objekt nutzen
+ speichereRaumfeldInArten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hArtIdVonRaum?startkey=["' + localStorage.RaumId + '"]&endkey=["' + localStorage.RaumId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.ArtenVonRaum = data;
+ speichereRaumfeldInArten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereRaumfeldInArten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.ArtenVonRaum.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonRaum, "ArtenVonRaum");
+ }
}
function speichereRaumfeldInZeiten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hZeitIdVonRaum?startkey=["' + localStorage.RaumId + '"]&endkey=["' + localStorage.RaumId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.ZeitenVonRaum = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ZeitenVonRaum);
+ if (window.ZeitenVonRaum) {
+ //vorhandenes Objekt nutzen
+ speichereRaumfeldInZeiten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hZeitIdVonRaum?startkey=["' + localStorage.RaumId + '"]&endkey=["' + localStorage.RaumId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.ZeitenVonRaum = data;
+ speichereRaumfeldInZeiten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereRaumfeldInZeiten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.ZeitenVonRaum.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ZeitenVonRaum, "ZeitenVonRaum");
+ //nächste Hierarchiestufe nur updaten, wenn obere Datensätze hatte
+ speichereRaumfeldInArten(Feldname, Feldwert, InputTyp);
+ }
}
function speichereRaumfeldInOrten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hOrtIdVonRaum?startkey=["' + localStorage.RaumId + '"]&endkey=["' + localStorage.RaumId + '",{}]&include_docs=true';
- $db = $.couch.db("evab");
- $db.view(viewname, {
- success: function (data) {
- window.OrteVonRaum = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.OrteVonRaum);
+ if (window.OrteVonRaum) {
+ //vorhandenes Objekt nutzen
+ speichereRaumfeldInOrten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hOrtIdVonRaum?startkey=["' + localStorage.RaumId + '"]&endkey=["' + localStorage.RaumId + '",{}]&include_docs=true';
+ $db = $.couch.db("evab");
+ $db.view(viewname, {
+ success: function (data) {
+ window.OrteVonRaum = data;
+ speichereRaumfeldInOrten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereRaumfeldInOrten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.OrteVonRaum.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.OrteVonRaum, "OrteVonRaum");
+ //nächste Hierarchiestufe nur updaten, wenn obere Datensätze hatte
+ speichereRaumfeldInZeiten(Feldname, Feldwert, InputTyp);
+ }
}
//Menü aufbauen
@@ -560,8 +592,7 @@
case "nächster":
if (parseInt(i) < AnzRaum) {
localStorage.RaumId = RaumListe.rows[parseInt(i)+1].value._id;
- delete window.hOrteLatLngRaum;
- delete window.hRaum;
+ leereStorageRaumEdit("mitLatLngListe", "ohneId");
initiiereRaumEdit();
return;
} else {
@@ -572,8 +603,7 @@
case "voriger":
if (parseInt(i) > 0) {
localStorage.RaumId = RaumListe.rows[parseInt(i)-1].value._id;
- delete window.hOrteLatLngRaum;
- delete window.hRaum;
+ leereStorageRaumEdit("mitLatLngListe", "ohneId");
initiiereRaumEdit();
return;
} else {
View
35 _attachments/hZeitEdit.html
@@ -406,6 +406,8 @@
$db.saveDoc(window.hZeit, {
success: function (data) {
window.hZeit._rev = data.rev;
+ //tiefere Hierarchiestufen aktualisieren
+ //löst ihre Aktualisierung nur aus, wenn sie Datensätze hat
speichereZeitfeldInArten(Feldname, Feldwert, InputTyp);
//window.ZuletztGespeicherteZeitId wird benutzt, damit auch nach einem
//Datensatzwechseldie Listen nicht (immer) aus der DB geholt werden müssen
@@ -424,18 +426,27 @@
}
function speichereZeitfeldInArten(Feldname, Feldwert, InputTyp) {
- //Diese Listen sollen NICHT als globale Variable gespeichert werden
- //denn ihr Ihalt wird nach jedem Aufruf verändert!
var viewname;
- viewname = 'evab/hArtIdVonZeit?startkey=["' + localStorage.ZeitId + '"]&endkey=["' + localStorage.ZeitId + '",{}]&include_docs=true';
- $db.view(viewname, {
- success: function (data) {
- window.ArtenVonZeit = data;
- if (data.rows.length > 0) {
- speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonZeit);
+ if (window.ArtenVonZeit) {
+ //vorhandenes Objekt nutzen
+ speichereZeitfeldInArten_2(Feldname, Feldwert, InputTyp);
+ } else {
+ //Objekt aus DB holen
+ viewname = 'evab/hArtIdVonZeit?startkey=["' + localStorage.ZeitId + '"]&endkey=["' + localStorage.ZeitId + '",{}]&include_docs=true';
+ $db.view(viewname, {
+ success: function (data) {
+ window.ArtenVonZeit = data;
+ speichereZeitfeldInArten_2(Feldname, Feldwert, InputTyp);
}
- }
- });
+ });
+ }
+ }
+
+ function speichereZeitfeldInArten_2(Feldname, Feldwert, InputTyp) {
+ //nur machen, wenn Datensätze vorkommen
+ if (window.ArtenVonZeit.rows.length > 0) {
+ speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, window.ArtenVonZeit, "ArtenVonZeit");
+ }
}
//Menü aufbauen. Wird aufgerufen von allen Formularen in evab/templates
@@ -538,7 +549,7 @@
case "nächste":
if (parseInt(i) < AnzZeit) {
localStorage.ZeitId = ZeitListe.rows[parseInt(i)+1].value._id;
- delete window.hZeit;
+ leereStorageZeitEdit("ohneId");
initiiereZeitEdit();
return;
} else {
@@ -549,7 +560,7 @@
case "vorige":
if (parseInt(i) > 0) {
localStorage.ZeitId = ZeitListe.rows[parseInt(i)-1].value._id;
- delete window.hZeit;
+ leereStorageZeitEdit("ohneId");
initiiereZeitEdit();
return;
} else {
View
97 vendor/couchapp/_attachments/evab.js
@@ -1475,10 +1475,12 @@ function initiiereFeldliste_2() {
}
//Übernimmt einen Feldnamen, einen Feldwert und seinen Typ (number?)
-//und eine Datensatzliste (z.B. alle Räume eines Projekts)
-//speichert das neue Feld in alle Datensätze
-function speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, Datensatzliste) {
+//und eine Datensatzliste (z.B. alle Räume eines Projekts) sowie ihren Namen
+//speichert das neue Feld in alle Datensätze der Liste in der DB
+//und aktualisiert die Liste selber, damit sie das nächste mal nicht in der DB geholt werden muss
+function speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, Datensatzliste, DatensatzlisteName) {
var JsonBulkListe, DsBulkListe, Docs, row;
+ //nur machen, wenn Datensätze da sind
DsBulkListe = {};
Docs = [];
for (i in Datensatzliste.rows) {
@@ -1503,6 +1505,10 @@ function speichereFeldInDatensatzliste(Feldname, Feldwert, InputTyp, Datensatzli
url: "../../_bulk_docs",
contentType: "application/json", data: JSON.stringify(DsBulkListe)
});
+ //Datensatzliste nachführen, damit sie nächstens mal nicht aus DB geholt werden muss
+ if (DatensatzlisteName) {
+ window[DatensatzlisteName] = Datensatzliste;
+ }
}
function speichereFeldInDatensatzlisteEinzeln(Feldname, Feldwert, InputTyp, Datensatzliste) {
@@ -3361,12 +3367,19 @@ function leereStorageProjektListe(mitLatLngListe) {
}
}
-function leereStorageProjektEdit(mitLatLngListe) {
- delete localStorage.ProjektId;
+//ohneId wird beim paginaten benutzt, da die ID übermittelt werden muss
+function leereStorageProjektEdit(mitLatLngListe, ohneId) {
+ if (!ohneId) {
+ delete localStorage.ProjektId;
+ }
delete window.hProjekt;
if (mitLatLngListe) {
delete window.hOrteLatLngProjekt;
}
+ delete window.RaeumeVonProjekt;
+ delete window.OrteVonProjekt;
+ delete window.ZeitenVonProjekt;
+ delete window.ArtenVonProjekt;
}
function leereStorageRaumListe(mitLatLngListe) {
@@ -3374,14 +3387,23 @@ function leereStorageRaumListe(mitLatLngListe) {
if (mitLatLngListe) {
delete window.hOrteLatLngProjekt;
}
+ delete window.RaeumeVonProjekt;
}
-function leereStorageRaumEdit(mitLatLngListe) {
- delete localStorage.RaumId;
+function leereStorageRaumEdit(mitLatLngListe, ohneId) {
+ if (!ohneId) {
+ delete localStorage.RaumId;
+ }
delete window.hRaum;
if (mitLatLngListe) {
delete window.hOrteLatLngRaum;
}
+ delete window.OrteVonProjekt;
+ delete window.ZeitenVonProjekt;
+ delete window.ArtenVonProjekt;
+ delete window.OrteVonRaum;
+ delete window.ZeitenVonRaum;
+ delete window.ArtenVonRaum;
}
function leereStorageOrtListe(mitLatLngListe) {
@@ -3389,10 +3411,15 @@ function leereStorageOrtListe(mitLatLngListe) {
if (mitLatLngListe) {
delete window.hOrteLatLngRaum;
}
+ delete window.OrteVonProjekt;
+ delete window.OrteVonRaum;
}
-function leereStorageOrtEdit() {
- delete localStorage.OrtId;
+function leereStorageOrtEdit(ohneId) {
+ if (!ohneId) {
+ delete localStorage.OrtId;
+ }
+ delete window.hOrt;
delete localStorage.oXKoord;
delete localStorage.oYKoord;
delete localStorage.oLagegenauigkeit;
@@ -3401,24 +3428,48 @@ function leereStorageOrtEdit() {
delete localStorage.aArtId;
delete localStorage.aArtName;
delete localStorage.aArtGruppe;
- delete window.hOrt;
+ delete window.ZeitenVonProjekt;
+ delete window.ArtenVonProjekt;
+ delete window.ZeitenVonRaum;
+ delete window.ArtenVonRaum;
+ delete window.ZeitenVonOrt;
+ delete window.ArtenVonOrt;
+ //allfällige Lokalisierung abbrechen
+ if (typeof watchID !== "undefined") {
+ stopGeolocation();
+ }
}
function leereStorageZeitListe() {
delete window.ZeitListe;
+ delete window.ZeitenVonProjekt;
+ delete window.ZeitenVonRaum;
+ delete window.ZeitenVonOrt;
}
-function leereStorageZeitEdit() {
- delete localStorage.ZeitId;
+function leereStorageZeitEdit(ohneId) {
+ if (!ohneId) {
+ delete localStorage.ZeitId;
+ }
delete window.hZeit;
+ delete window.ArtenVonProjekt;
+ delete window.ArtenVonRaum;
+ delete window.ArtenVonOrt;
+ delete window.ArtenVonZeit;
}
function leereStoragehBeobListe() {
delete window.hBeobListe;
+ delete window.ArtenVonProjekt;
+ delete window.ArtenVonRaum;
+ delete window.ArtenVonOrt;
+ delete window.ArtenVonZeit;
}
-function leereStoragehBeobEdit() {
- delete localStorage.hBeobId;
+function leereStoragehBeobEdit(ohneId) {
+ if (!ohneId) {
+ delete localStorage.hBeobId;
+ }
delete window.hArt;
}
@@ -3427,8 +3478,11 @@ function leereStorageBeobListe() {
delete window.BeobListeLatLng;
}
-function leereStorageBeobEdit() {
- delete localStorage.BeobId;
+function leereStorageBeobEdit(ohneId) {
+ if (!ohneId) {
+ delete localStorage.BeobId;
+ }
+ delete window.Beobachtung;
delete localStorage.oXKoord;
delete localStorage.oYKoord;
delete localStorage.oLagegenauigkeit;
@@ -3437,7 +3491,10 @@ function leereStorageBeobEdit() {
delete localStorage.aArtId;
delete localStorage.aArtName;
delete localStorage.aArtGruppe;
- delete window.Beobachtung;
+ //allfällige Lokalisierung abbrechen
+ if (typeof watchID !== "undefined") {
+ stopGeolocation();
+ }
}
function leereStorageFeldListe() {
@@ -3450,9 +3507,11 @@ function leereStorageFeldListe() {
delete window.FeldlisteProjekt;
}
-function leereStorageFeldEdit() {
+function leereStorageFeldEdit(ohneId) {
+ if (!ohneId) {
+ delete localStorage.FeldId;
+ }
delete window.Feld;
- delete localStorage.FeldId;
}

0 comments on commit 5239bcc

Please sign in to comment.
Something went wrong with that request. Please try again.