apflora
Version:
Aktionsplan Flora Kt. Zürich
284 lines (260 loc) • 13.3 kB
JavaScript
// wird gemeinsam für Feld- und Freiwilligenkontrollen verwendet
// Feldkontrollen: Felder der Freiwilligenkontrollen ausblenden
// Freiwilligenkontrollen: Felder der Feldkontrollen ausblenen plus Register Biotop
;
var $ = require('jquery'),
dateFormat = require('dateformat'),
_ = require('underscore'),
limiter = require('../lib/limiter'),
initiiereIndex = require('./initiiereIndex'),
initiiereAp = require('./initiiereAp'),
initiierePop = require('./initiierePop'),
initiiereTPop = require('./initiiereTPop'),
getAdressenHtml = require('./getAdressenHtml'),
getZaehleinheitenHtml = require('./getZaehleinheitenHtml'),
getLrDelarzeHtml = require('./getLrDelarzeHtml'),
getIdealbiotopUebereinstHtml = require('./getIdealbiotopUebereinstHtml');
require('jquery-ui');
var returnFunction = function (apId, popId, tpopId, feldKontrId, kontrTyp) {
var $TPopKontrJahr = $("#TPopKontrJahr"),
$TPopKontrJungPflJN_ja = $("#TPopKontrJungPflJN_ja"),
$TPopKontrJungPflJN_nein = $("#TPopKontrJungPflJN_nein"),
$TPopKontrJungPflJN_leer = $("#TPopKontrJungPflJN_leer");
// prüfen, ob voraussetzungen gegeben sind
if (!apId && !localStorage.ap_id) {
// Anwendung neu initiieren
initiiereIndex();
return;
}
if (!popId && !localStorage.pop_id) {
// es fehlen benötigte Daten > zwei Ebenen höher
initiiereAp(apId);
return;
}
if (!tpopId && !localStorage.tpop_id) {
// es fehlen benötigte Daten > eine Ebene höher
initiierePop(apId, popId);
return;
}
if (!feldKontrId && !localStorage.tpopfeldkontr_id) {
// es fehlen benötigte Daten > eine Ebene höher
initiiereTPop(apId, popId, tpopId);
return;
}
// apId setzen
if (!localStorage.ap_id) localStorage.ap_id = apId;
if (!apId) apId = localStorage.ap_id;
// popId setzen
if (!localStorage.pop_id) localStorage.pop_id = popId;
if (!popId) popId = localStorage.pop_id;
// tpopId setzen
if (!localStorage.tpop_id) localStorage.tpop_id = tpopId;
if (!tpopId) tpopId = localStorage.tpop_id;
// feldKontrId setzen
if (!localStorage.tpopfeldkontr_id) localStorage.tpopfeldkontr_id = feldKontrId;
if (!feldKontrId) feldKontrId = localStorage.tpopfeldkontr_id;
// typ setzen, falls er nicht übergeben wurde (provisorisch)
// TODO: entfernen, wenn router übernimmt
if (!kontrTyp && localStorage.tpopfreiwkontr) {
kontrTyp = 'freiwKontr';
}
if (!kontrTyp && !localStorage.tpopfreiwkontr) {
kontrTyp = 'feldKontr';
}
// damit kann man die verbleibende Anzahl Zeichen, die in einem Feld erfasst werden, anzeigen
limiter($);
// Felder zurücksetzen
window.apf.leereFelderVonFormular("tpopfeldkontr");
// alle Felder ausblenden. Später werden die benötigten eingeblendet
$('.feld_tpopfeldkontr').each(function () {
$(this).hide();
});
// Daten für die tpopfeldkontr aus der DB holen
$.ajax({
type: 'get',
url: 'api/v1/apflora/tabelle=tblTeilPopFeldkontrolle/feld=TPopKontrId/wertNumber=' + feldKontrId,
dataType: 'json'
}).done(function (data) {
// Rückgabewert null wird offenbar auch als success gewertet, gibt weiter unten Fehler, also Ausführung verhindern
if (data && data[0]) {
data = data[0];
// tpopfeldkontr bereitstellen
window.apf.tpopfeldkontr = data;
// gemeinsame Felder
// mit Daten beliefern
$TPopKontrJahr.val(data.TPopKontrJahr);
if (data.TPopKontrDatum) {
$("#TPopKontrDatum").val(dateFormat(data.TPopKontrDatum, 'yyyy.mm.dd'));
}
$("#TPopKontrMethode1" + data.TPopKontrMethode1).prop("checked", true);
$("#TPopKontrAnz1").val(data.TPopKontrAnz1);
$("#TPopKontrMethode2" + data.TPopKontrMethode2).prop("checked", true);
$("#TPopKontrAnz2").val(data.TPopKontrAnz2);
$("#TPopKontrMethode3" + data.TPopKontrMethode3).prop("checked", true);
$("#TPopKontrAnz3").val(data.TPopKontrAnz3);
$("#TPopKontrTxt").val(data.TPopKontrTxt);
$("#TPopKontrGuid").val(data.TPopKontrGuid);
// Adressen holen, um TPopKontrBearb zu füllen
getAdressenHtml(function (html) {
$("#TPopKontrBearb")
.html(html)
.val(window.apf.tpopfeldkontr.TPopKontrBearb);
});
// für 3 selectfelder TPopKontrZaehleinheit Daten holen - oder vorhandene nutzen
getZaehleinheitenHtml(function (html) {
// alle 3 Felder setzen
$("#TPopKontrZaehleinheit1")
.html(html)
.val(window.apf.tpopfeldkontr.TPopKontrZaehleinheit1);
$("#TPopKontrZaehleinheit2")
.html(html)
.val(window.apf.tpopfeldkontr.TPopKontrZaehleinheit2);
$("#TPopKontrZaehleinheit3")
.html(html)
.val(window.apf.tpopfeldkontr.TPopKontrZaehleinheit3);
});
// Felder, die nur in der Feldkontrolle vorkommen
if (kontrTyp === 'feldKontr') {
$("#TPopKontrTyp" + data.TPopKontrTyp).prop("checked", true);
$("#TPopKontrJungpfl").val(data.TPopKontrJungpfl);
$("#TPopKontrVitalitaet")
.val(data.TPopKontrVitalitaet)
.limiter(255, $("#TPopKontrVitalitaet_limit"));
$("#TPopKontrUeberleb").val(data.TPopKontrUeberleb);
$("#TPopKontrEntwicklung" + data.TPopKontrEntwicklung).prop("checked", true);
$("#TPopKontrUrsach")
.val(data.TPopKontrUrsach)
.limiter(255, $("#TPopKontrUrsach_limit"));
$("#TPopKontrUrteil")
.val(data.TPopKontrUrteil)
.limiter(255, $("#TPopKontrUrteil_limit"));
$("#TPopKontrAendUms")
.val(data.TPopKontrAendUms)
.limiter(255, $("#TPopKontrAendUms_limit"));
$("#TPopKontrAendKontr")
.val(data.TPopKontrAendKontr)
.limiter(255, $("#TPopKontrAendKontr_limit"));
// Biotop
$("#TPopKontrFlaeche").val(data.TPopKontrFlaeche);
$("#TPopKontrVegTyp")
.val(data.TPopKontrVegTyp)
.limiter(100, $("#TPopKontrVegTyp_limit"));
$("#TPopKontrKonkurrenz")
.val(data.TPopKontrKonkurrenz)
.limiter(100, $("#TPopKontrKonkurrenz_limit"));
$("#TPopKontrMoosschicht")
.val(data.TPopKontrMoosschicht)
.limiter(100, $("#TPopKontrMoosschicht_limit"));
$("#TPopKontrKrautschicht")
.val(data.TPopKontrKrautschicht)
.limiter(100, $("#TPopKontrKrautschicht_limit"));
$("#TPopKontrStrauchschicht")
.val(data.TPopKontrStrauchschicht)
.limiter(255, $("#TPopKontrStrauchschicht_limit"));
$("#TPopKontrBaumschicht")
.val(data.TPopKontrBaumschicht)
.limiter(100, $("#TPopKontrBaumschicht_limit"));
$("#TPopKontrBodenTyp")
.val(data.TPopKontrBodenTyp)
.limiter(255, $("#TPopKontrBodenTyp_limit"));
$("#TPopKontrBodenKalkgehalt")
.val(data.TPopKontrBodenKalkgehalt)
.limiter(100, $("#TPopKontrBodenKalkgehalt_limit"));
$("#TPopKontrBodenDurchlaessigkeit")
.val(data.TPopKontrBodenDurchlaessigkeit)
.limiter(100, $("#TPopKontrBodenDurchlaessigkeit_limit"));
$("#TPopKontrBodenHumus")
.val(data.TPopKontrBodenHumus)
.limiter(100, $("#TPopKontrBodenHumus_limit"));
$("#TPopKontrBodenNaehrstoffgehalt")
.val(data.TPopKontrBodenNaehrstoffgehalt)
.limiter(100, $("#TPopKontrBodenNaehrstoffgehalt_limit"));
$("#TPopKontrBodenAbtrag")
.val(data.TPopKontrBodenAbtrag)
.limiter(255, $("#TPopKontrBodenAbtrag_limit"));
$("#TPopKontrWasserhaushalt")
.val(data.TPopKontrWasserhaushalt)
.limiter(255, $("#TPopKontrWasserhaushalt_limit"));
$("#TPopKontrHandlungsbedarf").val(data.TPopKontrHandlungsbedarf);
$("#TPopKontrIdealBiotopUebereinst" + data.TPopKontrIdealBiotopUebereinst).prop("checked", true);
// TPopKontrLeb: Daten holen - oder vorhandene nutzen
getLrDelarzeHtml(function (html) {
$("#TPopKontrLeb")
.html(html)
.val(window.apf.tpopfeldkontr.TPopKontrLeb);
$("#TPopKontrLebUmg")
.html(html)
.val(window.apf.tpopfeldkontr.TPopKontrLebUmg);
});
}
// TPopKontrIdealBiotopUebereinst: Daten holen - oder vorhandene nutzen
getIdealbiotopUebereinstHtml(function (html) {
$("#TPopKontrIdealBiotopUebereinst")
.html(html)
.val(window.apf.tpopfeldkontr.TPopKontrIdealBiotopUebereinst);
});
// Felder, die nur in freiwkontr vorkommen
if (kontrTyp === 'freiwKontr') {
if (data.TPopKontrPlan == 1) {
$("#TPopKontrPlan").prop("checked", true);
} else {
$("#TPopKontrPlan").prop("checked", false);
}
$("#TPopKontrUebFlaeche").val(data.TPopKontrUebFlaeche);
$("#TPopKontrUebPfl").val(data.TPopKontrUebPfl);
$("#TPopKontrNaBo").val(data.TPopKontrNaBo);
$TPopKontrJungPflJN_ja.prop("checked", false);
$TPopKontrJungPflJN_nein.prop("checked", false);
$TPopKontrJungPflJN_leer.prop("checked", false);
if (data.TPopKontrJungPflJN == 1) {
$TPopKontrJungPflJN_ja.prop("checked", true);
} else if (data.TPopKontrJungPflJN == 0) {
$TPopKontrJungPflJN_nein.prop("checked", true);
} else {
$TPopKontrJungPflJN_leer.prop("checked", true);
}
$("#TPopKontrVegHoeMax").val(data.TPopKontrVegHoeMax);
$("#TPopKontrVegHoeMit").val(data.TPopKontrVegHoeMit);
$("#TPopKontrGefaehrdung")
.val(data.TPopKontrGefaehrdung)
.limiter(255, $("#TPopKontrGefaehrdung_limit"));
}
// fieldcontain-divs der benötigten Felder einblenden
if (kontrTyp === 'freiwKontr') {
_.each(window.apf.feldliste_freiwkontr, function (feld) {
$("#fieldcontain_" + feld).show();
});
} else {
_.each(window.apf.feldliste_feldkontr, function (feld) {
$("#fieldcontain_" + feld).show();
});
}
// Formulare blenden
window.apf.zeigeFormular("tpopfeldkontr");
if (kontrTyp === 'feldKontr') {
history.pushState(null, null, "index.html?ap=" + apId + "&pop=" + popId + "&tpop=" + tpopId + "&tpopfeldkontr=" + feldKontrId);
} else {
history.pushState(null, null, "index.html?ap=" + apId + "&pop=" + popId + "&tpop=" + tpopId + "&tpopfreiwkontr=" + feldKontrId);
}
// Register in Feldkontr blenden
if (kontrTyp === 'freiwKontr') {
$("#tpopfeldkontr_tabs_biotop").hide();
$("#biotop_tab_li").hide();
$("#tpopfeldkontr_tabs").tabs("option", "active", 0);
} else {
$("#tpopfeldkontr_tabs_biotop").show();
$("#biotop_tab_li").show();
// Dieses Element wird fälschlicherweise in Entwicklung eingeblendet
// keine Ahnung wieso
// ausblenden!
$("#tpopfeldkontr_tabs_biotop").hide();
}
// Fokus steuern
$TPopKontrJahr.focus();
$(window).scrollTop(0);
}
}).fail(function () {
window.apf.melde('Fehler: keine Daten für die Kontrolle erhalten');
});
};
module.exports = returnFunction;