mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 17:32:18 +00:00
Merge branch 'master' into feature-33683/digitale_anwesenheitsliste_und_entschuldigungsmanagement_fuer_studierende_prototyp
This commit is contained in:
+13
-3
@@ -27,7 +27,9 @@ require_once('dbupdate_3.4/example.php');
|
||||
require_once('dbupdate_3.4/example2.php');
|
||||
...
|
||||
*/
|
||||
//require_once('dbupdate_3.4/25003_notenimport_nachpruefung.php');
|
||||
require_once('dbupdate_3.4/25003_notenimport_nachpruefung.php');
|
||||
|
||||
require_once('dbupdate_3.4/dbupdate_dashboard.php');
|
||||
require_once('dbupdate_3.4/26173_index_webservicelog.php');
|
||||
require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php');
|
||||
require_once('dbupdate_3.4/17512_fehlercode_constraints.php');
|
||||
@@ -52,12 +54,18 @@ require_once('dbupdate_3.4/37107_fristenmanagement.php');
|
||||
require_once('dbupdate_3.4/33003_bis_meldung_personal.php');
|
||||
require_once('dbupdate_3.4/36275_zeitaufzeichnung_karenz.php');
|
||||
require_once('dbupdate_3.4/21620_neues_feld_zum_erfassen_des_ESI.php');
|
||||
require_once('dbupdate_3.4/25999_C4_profil.php');
|
||||
require_once('dbupdate_3.4/25999_cis4_cms.php');
|
||||
require_once('dbupdate_3.4/36530_bis_internationsalisierung_codextabelle_neuerungen.php');
|
||||
require_once('dbupdate_3.4/34543_ux_template.php');
|
||||
require_once('dbupdate_3.4/17513_Entwicklungsteam.php');
|
||||
require_once('dbupdate_3.4/41134_C4_bookmark_dashboardWidget.php');
|
||||
require_once('dbupdate_3.4/28575_softwarebereitstellung.php');
|
||||
require_once('dbupdate_3.4/41150_oe-pfad_db_view.php');
|
||||
require_once('dbupdate_3.4/44031_stv_favorites.php');
|
||||
require_once('dbupdate_3.4/40896_kennzeichnung_unruly_person.php');
|
||||
require_once('dbupdate_3.4/39911_tabulator_in_contentmittitel.php');
|
||||
require_once('dbupdate_3.4/25999_C4_permission.php');
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
@@ -301,7 +309,7 @@ $tabellen=array(
|
||||
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
|
||||
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix","standort_id"),
|
||||
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
|
||||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values","bpk","matr_aktiv","wahlname"),
|
||||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values","bpk","matr_aktiv","wahlname","unruly"),
|
||||
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
|
||||
"public.tbl_personfunktionstandort" => array("personfunktionstandort_id","funktion_kurzbz","person_id","standort_id","position","anrede"),
|
||||
"public.tbl_preincoming" => array("preincoming_id","person_id","mobilitaetsprogramm_code","zweck_code","firma_id","universitaet","aktiv","bachelorthesis","masterthesis","von","bis","uebernommen","insertamum","insertvon","updateamum","updatevon","anmerkung","zgv","zgv_ort","zgv_datum","zgv_name","zgvmaster","zgvmaster_datum","zgvmaster_ort","zgvmaster_name","program_name","bachelor","master","jahre","person_id_emergency","person_id_coordinator_dep","person_id_coordinator_int","code","deutschkurs1","deutschkurs2","research_area","deutschkurs3","ext_id"),
|
||||
@@ -315,7 +323,7 @@ $tabellen=array(
|
||||
"public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"),
|
||||
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung","foerderrelevant","standort_code","zgv_erfuellt","zgvmas_erfuellt","zgvdoktor_erfuellt"),
|
||||
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"),
|
||||
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten","aktiv"),
|
||||
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"),
|
||||
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist","zugangs_ueberpruefung","zugangscode"),
|
||||
"public.tbl_rueckstellung" => array("rueckstellung_id","person_id","status_kurzbz","datum_bis","insertamum","insertvon"),
|
||||
"public.tbl_rueckstellung_status" => array("status_kurzbz", "bezeichnung_mehrsprachig", "sort", "aktiv"),
|
||||
@@ -412,6 +420,8 @@ $tabellen=array(
|
||||
"wawi.tbl_rechnungsbetrag" => array("rechnungsbetrag_id","rechnung_id","mwst","betrag","bezeichnung","ext_id"),
|
||||
"wawi.tbl_aufteilung" => array("aufteilung_id","bestellung_id","oe_kurzbz","anteil","insertamum","insertvon","updateamum","updatevon"),
|
||||
"wawi.tbl_aufteilung_default" => array("aufteilung_id","kostenstelle_id","oe_kurzbz","anteil","insertamum","insertvon","updateamum","updatevon"),
|
||||
"dashboard.tbl_bookmark" => array("bookmark_id","uid","url","title","tag","insertamum","insertvon","updateamum","updatevon"),
|
||||
|
||||
);
|
||||
|
||||
$tabs=array_keys($tabellen);
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Harald Bamberger <harald.bamberger@technikum-wien.at>,
|
||||
*
|
||||
* Beschreibung:
|
||||
* Dashboard DB Aenderungen
|
||||
*/
|
||||
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
|
||||
// Add permission: basis/cis
|
||||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'basis/cis';"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('basis/cis', 'CIS Grundrecht ab CIS 4.0');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
{
|
||||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'system.tbl_berechtigung: Added permission "basis/cis"<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
if (!$result = @$db->db_query("SELECT 1 FROM public.tbl_profil_update_status LIMIT 1")) {
|
||||
|
||||
$qry = " CREATE TABLE public.tbl_profil_update_status (
|
||||
status_kurzbz VARCHAR(32) NOT NULL,
|
||||
beschreibung VARCHAR(256) NULL,
|
||||
bezeichnung_mehrsprachig VARCHAR(256)[] NULL,
|
||||
CONSTRAINT tbl_profil_update_status_pk PRIMARY KEY(status_kurzbz)
|
||||
);
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_profil_update_status TO vilesci;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_profil_update_status TO web;
|
||||
|
||||
INSERT INTO public.tbl_profil_update_status VALUES ('Pending','Profil Änderungen die noch nicht bearbeiten wurden','{Ausstehend,Pending}'),
|
||||
('Accepted','Profil Änderungen die angenommen wurden','{Angenommen,Accepted}'),
|
||||
('Rejected','Profil Änderungen die abgelehn wurden','{Abgelehnt,Rejected}');";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_profil_update_status: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_profil_update_status: table created';
|
||||
}
|
||||
|
||||
if (!$result = @$db->db_query("SELECT 1 FROM public.tbl_profil_update_topic LIMIT 1")) {
|
||||
|
||||
$qry = "CREATE TABLE public.tbl_profil_update_topic (
|
||||
topic_kurzbz VARCHAR(32) NOT NULL,
|
||||
beschreibung VARCHAR(256) NULL,
|
||||
bezeichnung_mehrsprachig VARCHAR(256)[] NULL,
|
||||
CONSTRAINT tbl_profil_update_topic_pk PRIMARY KEY(topic_kurzbz)
|
||||
);
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_profil_update_topic TO vilesci;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_profil_update_topic TO web;
|
||||
|
||||
|
||||
INSERT INTO public.tbl_profil_update_topic VALUES ('Vorname','Vorname aktualisieren','{Vorname,\"First name\"}'),
|
||||
('Nachname','Nachname aktualisieren','{Nachname,\"Last name\"}'),
|
||||
('Titel','Titel aktualisieren','{Titel,Title}'),
|
||||
('Postnomen','Postnomen aktualisieren','{Postnomen,Post-nominal}'),
|
||||
('Private Kontakte','Kontakt aktualisieren','{\"Private Kontakte\",\"Private Contacts\"}'),
|
||||
('Delete Kontakt','Kontakt löschen','{\"Kontakt löschen\",\"Delete contact\"}'),
|
||||
('Add Kontakt','Kontakt hinzufügen','{\"Kontakt hinzufügen\",\"Add contact\"}'),
|
||||
('Private Adressen','Adresse aktualisieren','{\"Private Adressen\",\"Private Addreses\"}'),
|
||||
('Delete Adresse','Adresse löschen','{\"Adresse löschen\",\"Delete address\"}'),
|
||||
('Add Adresse','Adresse hinzufügen','{\"Adresse hinzufügen\",\"Delete address\"}');";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_profil_update_topic: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_profil_update_topic: table created';
|
||||
}
|
||||
|
||||
if (!$result = @$db->db_query("SELECT 1 FROM public.tbl_profil_update LIMIT 1")) {
|
||||
|
||||
$qry = "CREATE TABLE public.tbl_profil_update (
|
||||
profil_update_id INTEGER NOT NULL,
|
||||
uid VARCHAR(32) NOT NULL,
|
||||
topic VARCHAR(32) NOT NULL,
|
||||
requested_change jsonb NOT NULL,
|
||||
updateamum TIMESTAMP NULL,
|
||||
updatevon VARCHAR(32) NULL,
|
||||
insertamum TIMESTAMP NOT NULL,
|
||||
insertvon VARCHAR(32) NOT NULL,
|
||||
status VARCHAR(32) NOT NULL,
|
||||
status_timestamp TIMESTAMP NULL,
|
||||
status_message TEXT NULL,
|
||||
attachment_id bigint NULL,
|
||||
CONSTRAINT tbl_profil_update_pk PRIMARY KEY(profil_update_id),
|
||||
CONSTRAINT tbl_profil_update_fk FOREIGN KEY(uid) REFERENCES public.tbl_benutzer(uid),
|
||||
CONSTRAINT tbl_profil_update_status_fk FOREIGN KEY(status) REFERENCES public.tbl_profil_update_status(status_kurzbz),
|
||||
CONSTRAINT tbl_profil_update_topic_fk FOREIGN KEY(topic) REFERENCES public.tbl_profil_update_topic(topic_kurzbz),
|
||||
CONSTRAINT tbl_profil_update_attachment_fk FOREIGN KEY(attachment_id) REFERENCES campus.tbl_dms(dms_id)
|
||||
);
|
||||
|
||||
CREATE SEQUENCE public.tbl_profil_update_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
|
||||
ALTER TABLE public.tbl_profil_update ALTER COLUMN profil_update_id SET DEFAULT nextval('public.tbl_profil_update_id_seq');
|
||||
ALTER SEQUENCE public.tbl_profil_update_id_seq OWNED BY public.tbl_profil_update.profil_update_id;
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_profil_update TO vilesci;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_profil_update TO web;
|
||||
GRANT SELECT, UPDATE ON public.tbl_profil_update_id_seq TO vilesci;
|
||||
GRANT SELECT, UPDATE ON public.tbl_profil_update_id_seq TO web;";
|
||||
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_profil_update: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo '<br>public.tbl_profil_update: table created';
|
||||
}
|
||||
|
||||
// adds the dms_kategorie profil_aenderung to the database
|
||||
if ($result = @$db->db_query("SELECT * FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz='profil_aenderung'")) {
|
||||
|
||||
if ($db->db_num_rows($result) == 0) {
|
||||
|
||||
$qry = "INSERT INTO campus.tbl_dms_kategorie VALUES ('profil_aenderung','Dokumente fuer Profil Aenderungen','Dokumente die Belegen ob man eine neue Adresse angemeldet hat oder seinen Namen geaendert hat','dokumente',NULL,NULL);";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>INSERT OF DMS_KATEGORIE profil_aenderung ERROR : ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo '<br>INSERT OF DMS_KATEGORIE profil_aenderung was successful';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,309 @@
|
||||
<?php
|
||||
if (!defined('DB_NAME'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
// Add index to system.tbl_log
|
||||
if (!$result = @$db->db_query("SELECT xslt_xhtml_c4 FROM campus.tbl_template LIMIT 1")) {
|
||||
$qry = "ALTER TABLE campus.tbl_template ADD COLUMN xslt_xhtml_c4 xml;";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>campus.tbl_template: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo '<br>campus.tbl_template: Spalte xslt_xhtml_c4 hinzugefuegt';
|
||||
|
||||
$xml01 = <<<EOXML01
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method="html"/>
|
||||
<xsl:template match="content">
|
||||
<h1>
|
||||
<xsl:value-of select="titel" />
|
||||
</h1>
|
||||
<xsl:value-of select="inhalt" disable-output-escaping="yes" />
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
EOXML01;
|
||||
|
||||
$xml02 = <<<EOXML02
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method="html"/>
|
||||
<xsl:template match="content">
|
||||
<xsl:value-of select="inhalt" disable-output-escaping="yes" />
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
EOXML02;
|
||||
|
||||
$xml03 = <<<EOXML03
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method="html"/>
|
||||
<xsl:template match="content">
|
||||
<script type="text/javascript">
|
||||
window.location.href=''<xsl:value-of select="url" />'';
|
||||
</script>
|
||||
<div class="alert alert-primary" role="alert">Sie werden automatisch weitergeleitet. Sollte dies nicht der Fall sein, klicken sie bitte
|
||||
<xsl:variable name="url" select="url"></xsl:variable>
|
||||
<a href="{url}">hier</a>
|
||||
</div>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
EOXML03;
|
||||
|
||||
$xml04 = <<<EOXML04
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output method="html"/>
|
||||
<xsl:template match="content">
|
||||
<div class="alert alert-danger" role="alert">Diese Seite sollte nicht direkt aufgerufen werden!</div>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
EOXML04;
|
||||
|
||||
$xml05 = <<<EOXML05
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/>
|
||||
<xsl:output method="html"/>
|
||||
<xsl:template match="/">
|
||||
<div class="row">
|
||||
<xsl:choose>
|
||||
<xsl:when test="content/stg_extras">
|
||||
<div class="news-list col-9" aria-role="feed">
|
||||
<xsl:call-template name="content"/>
|
||||
</div>
|
||||
<aside class="col-3">
|
||||
<xsl:apply-templates select="content/stg_extras" />
|
||||
</aside>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<div class="news-list col" aria-role="feed">
|
||||
<xsl:call-template name="content"/>
|
||||
</div>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</div>
|
||||
</xsl:template>
|
||||
<xsl:template name="content">
|
||||
<xsl:choose>
|
||||
<xsl:when test="content/news">
|
||||
<xsl:apply-templates select="content/news" />
|
||||
</xsl:when>
|
||||
<xsl:when test="content/newswrapper">
|
||||
<xsl:apply-templates select="content/newswrapper" />
|
||||
</xsl:when>
|
||||
<xsl:when test="newswrapper">
|
||||
<xsl:apply-templates select="newswrapper" />
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="news" />
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template match="newswrapper">
|
||||
<xsl:apply-templates select="news">
|
||||
<xsl:with-param name="datum" select="datum" />
|
||||
<xsl:with-param name="datumdetail" select="datumdetail" />
|
||||
<xsl:with-param name="news_id" select="news_id" />
|
||||
</xsl:apply-templates>
|
||||
</xsl:template>
|
||||
<xsl:template match="news">
|
||||
<xsl:param name="datum" select="datum"/>
|
||||
<xsl:param name="datumdetail" select="datumdetail"/>
|
||||
<xsl:param name="news_id" select="news_id"/>
|
||||
<article class="news-list-item card mb-3">
|
||||
<header class="card-header d-flex justify-content-between align-items-center">
|
||||
<div class="row ">
|
||||
<h2 class="h5 col-auto me-auto">
|
||||
<xsl:value-of select="betreff"/>
|
||||
</h2>
|
||||
<div class="col-auto">
|
||||
<address class="fw-bold small mb-0">
|
||||
<xsl:value-of select="verfasser"/>
|
||||
</address>
|
||||
<xsl:if test="\$datum">
|
||||
<time class="small text-end w-100" datetime="{\$datumdetail}">
|
||||
<xsl:value-of select="\$datum"/>
|
||||
</time>
|
||||
</xsl:if>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<xsl:if test="text">
|
||||
<xsl:if test="text != ''''">
|
||||
<div class="card-body">
|
||||
<div class="card-text">
|
||||
<xsl:value-of select="text" disable-output-escaping="yes" />
|
||||
</div>
|
||||
</div>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:if test="\$news_id">
|
||||
<footer class="card-footer d-flex justify-content-end">
|
||||
<a class="btn btn-outline-primary btn-sm mx-1" href="#" data-href="newsverwaltung.php?news_id={\$news_id}" target="_blank" aria-label="Edit">
|
||||
<i class="fa fa-pencil" aria-hidden="true" title="Edit"></i>
|
||||
</a>
|
||||
<a class="btn btn-outline-primary btn-sm mx-1" href="#" data-confirm="Soll dieser Eintrag wirklich gelöscht werden?" data-href="newsverwaltung.php?news_id={\$news_id}&action=delete" target="_blank" aria-label="Delete">
|
||||
<i class="fa fa-trash" aria-hidden="true" title="Delete"></i>
|
||||
</a>
|
||||
</footer>
|
||||
</xsl:if>
|
||||
</article>
|
||||
</xsl:template>
|
||||
<xsl:template match="stg_extras">
|
||||
<dl>
|
||||
<xsl:if test="stg_ltg">
|
||||
<dt>
|
||||
<xsl:value-of select="stg_ltg_name"/>
|
||||
</dt>
|
||||
<xsl:apply-templates select="stg_ltg" />
|
||||
</xsl:if>
|
||||
<xsl:if test="gf_ltg">
|
||||
<dt>
|
||||
<xsl:value-of select="gf_ltg_name"/>
|
||||
</dt>
|
||||
<xsl:apply-templates select="gf_ltg" />
|
||||
</xsl:if>
|
||||
<xsl:if test="stv_ltg">
|
||||
<dt>
|
||||
<xsl:value-of select="stv_ltg_name"/>
|
||||
</dt>
|
||||
<xsl:apply-templates select="stv_ltg"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="ass">
|
||||
<dt>
|
||||
<xsl:value-of select="ass_name"/>
|
||||
</dt>
|
||||
<xsl:apply-templates select="ass"/>
|
||||
</xsl:if>
|
||||
</dl>
|
||||
<xsl:value-of select="zusatzinfo" disable-output-escaping="yes"/>
|
||||
<dl>
|
||||
<xsl:if test="hochschulvertr">
|
||||
<dt>
|
||||
<xsl:value-of select="hochschulvertr_name"/>
|
||||
</dt>
|
||||
<xsl:apply-templates select="hochschulvertr"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="stdv">
|
||||
<dt>
|
||||
<xsl:value-of select="stdv_name"/>
|
||||
</dt>
|
||||
<xsl:apply-templates select="stdv"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="jahrgangsvertr">
|
||||
<dt>
|
||||
<xsl:value-of select="jahrgangsvertr_name"/>
|
||||
</dt>
|
||||
<xsl:apply-templates select="jahrgangsvertr"/>
|
||||
</xsl:if>
|
||||
</dl>
|
||||
<xsl:apply-templates select="cis_ext_menu"/>
|
||||
</xsl:template>
|
||||
<xsl:template name="person_linked_name">
|
||||
<xsl:variable name="uid" select="uid"/>
|
||||
<a href="../cis/private/profile/index.php?uid={\$uid}">
|
||||
<xsl:value-of select="name"/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
<xsl:template name="person">
|
||||
<xsl:param name="ass" select="ass"/>
|
||||
<xsl:variable name="phone" select="telefon"/>
|
||||
<xsl:variable name="mail" select="email"/>
|
||||
<dd>
|
||||
<address class="mb-0">
|
||||
<xsl:if test="\$ass">
|
||||
<xsl:if test="bezeichnung != ''Assistenz''">
|
||||
<h6>
|
||||
<xsl:value-of select="bezeichnung"/>
|
||||
</h6>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="person_linked_name"/>
|
||||
<br/>
|
||||
<i class="fa fa-phone" title="Telefon" aria-hidden="true"></i>
|
||||
<span class="sr-only">Telefon</span>:
|
||||
<a href="tel:{translate(\$phone, translate(\$phone,''+1234567890'',''''),'''')}">
|
||||
<xsl:value-of select="telefon"/>
|
||||
</a>
|
||||
<br/>
|
||||
<i class="fa fa-home" title="Raum" aria-hidden="true"></i>
|
||||
<span class="sr-only">Raum</span>:
|
||||
<xsl:value-of select="ort"/>
|
||||
<br/>
|
||||
<i class="fa fa-envelope" title="E-mail" aria-hidden="true"></i>
|
||||
<span class="sr-only">E-mail</span>:
|
||||
<a href="mailto:{\$mail}">
|
||||
<xsl:value-of select="email"/>
|
||||
</a>
|
||||
</address>
|
||||
</dd>
|
||||
</xsl:template>
|
||||
<xsl:template name="person_short">
|
||||
<dd>
|
||||
<address class="mb-0">
|
||||
<xsl:call-template name="person_linked_name"/>
|
||||
</address>
|
||||
</dd>
|
||||
</xsl:template>
|
||||
<xsl:template match="stg_ltg">
|
||||
<xsl:call-template name="person"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="gf_ltg">
|
||||
<xsl:call-template name="person"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="stv_ltg">
|
||||
<xsl:call-template name="person"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="ass">
|
||||
<xsl:call-template name="person">
|
||||
<xsl:with-param name="ass" select="1"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template match="hochschulvertr">
|
||||
<xsl:call-template name="person_short"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="stdv">
|
||||
<xsl:call-template name="person_short"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="jahrgangsvertr">
|
||||
<xsl:call-template name="person_short"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="cis_ext_menu">
|
||||
<xsl:variable name="kurzbz" select="kurzbz"></xsl:variable>
|
||||
<xsl:variable name="stg_kz" select="stg_kz"></xsl:variable>
|
||||
<p>
|
||||
<a class="btn btn-primary" href="https://moodle.technikum-wien.at/course/view.php?idnumber=dl{\$stg_kz}" target="_blank">
|
||||
<xsl:value-of select="download_name"/>
|
||||
</a>
|
||||
</p>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
||||
EOXML05;
|
||||
|
||||
$qry = <<<EOSQL
|
||||
UPDATE campus.tbl_template SET xslt_xhtml_c4='{$xml01}' WHERE template_kurzbz='contentmittitel';
|
||||
UPDATE campus.tbl_template SET xslt_xhtml_c4='{$xml02}' WHERE template_kurzbz='contentohnetitel';
|
||||
UPDATE campus.tbl_template SET xslt_xhtml_c4='{$xml03}' WHERE template_kurzbz='redirect';
|
||||
UPDATE campus.tbl_template SET xslt_xhtml_c4='{$xml04}' WHERE template_kurzbz='include';
|
||||
UPDATE campus.tbl_template SET xslt_xhtml_c4='{$xml05}' WHERE template_kurzbz='news';
|
||||
UPDATE campus.tbl_template SET xslt_xhtml_c4=xslt_xhtml WHERE xslt_xhtml_c4 IS NULL;
|
||||
|
||||
EOSQL;
|
||||
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>campus.tbl_template: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo '<br>campus.tbl_template: Spalte xslt_xhtml_c4 Defaultwerte eingefügt';
|
||||
}
|
||||
|
||||
$tabellen['campus.tbl_template'][] = 'xslt_xhtml_c4';
|
||||
@@ -85,6 +85,8 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table
|
||||
betrag bytea,
|
||||
gehaltsbestandteil_id integer,
|
||||
mitarbeiter_uid character varying(32),
|
||||
gehaltsbestandteil_von date,
|
||||
gehaltsbestandteil_bis date,
|
||||
CONSTRAINT tbl_gehaltshistorie_pk PRIMARY KEY (gehaltshistorie_id)
|
||||
);
|
||||
|
||||
@@ -570,3 +572,37 @@ if ($result = $db->db_query("SELECT * FROM hr.tbl_vertragsart WHERE vertragsart_
|
||||
echo 'Vertragsart "Dienstverhältnis zu einer anderen Bildungseinrichtung oder einem anderen Träger" erstellt.<br />';
|
||||
}
|
||||
}
|
||||
|
||||
if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='gehaltsbestandteil_von' AND table_name='tbl_gehaltshistorie' AND table_schema='hr'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "
|
||||
ALTER TABLE
|
||||
hr.tbl_gehaltshistorie
|
||||
ADD COLUMN
|
||||
gehaltsbestandteil_von date
|
||||
";
|
||||
if (! $db->db_query($qry))
|
||||
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo 'Spalte gehaltsbestandteil_von wurde in hr.tbl_gehaltshistorie neu erstellt<br>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='gehaltsbestandteil_bis' AND table_name='tbl_gehaltshistorie' AND table_schema='hr'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "
|
||||
ALTER TABLE
|
||||
hr.tbl_gehaltshistorie
|
||||
ADD COLUMN
|
||||
gehaltsbestandteil_bis date
|
||||
";
|
||||
if (! $db->db_query($qry))
|
||||
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo 'Spalte gehaltsbestandteil_bis wurde in hr.tbl_gehaltshistorie neu erstellt<br>';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
$raum_contentmittitel_xslt_xhtml= <<<EOD
|
||||
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:template match="content">
|
||||
<html>
|
||||
<head>
|
||||
<title><xsl:value-of select="titel" /></title>
|
||||
<link rel="stylesheet" href="../skin/style.css.php" type="text/css" />
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/tabulator/5.0.7/css/tabulator.min.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="https://c3p0.ma0594.technikum-wien.at/fh-core/vendor/olifolkerd/tabulator5/dist/js/tabulator.min.js?2019102903"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function()
|
||||
{
|
||||
let tables = document.getElementsByClassName("tablesorter");
|
||||
for(table of tables){
|
||||
new Tabulator(table, {
|
||||
layout:"fitDataFill",
|
||||
autoResize:true,
|
||||
resizableRows:true,
|
||||
columnDefaults:{
|
||||
formatter:"html",
|
||||
resizable:true,
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1><xsl:value-of select="titel" /></h1>
|
||||
<xsl:value-of select="inhalt" disable-output-escaping="yes" />
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
EOD;
|
||||
|
||||
$raum_contentmittitel_xsd=<<<EOD
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="content">
|
||||
<xs:element name="titel" type="xs:string"/>
|
||||
<xs:element name="inhalt" type="wysiwyg"/>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
EOD;
|
||||
|
||||
$raum_contentmittitel_xslt_xhtml_c4= <<<EOD
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:template match="content">
|
||||
<h1>
|
||||
<xsl:value-of select="titel" />
|
||||
</h1>
|
||||
<xsl:value-of select="inhalt" disable-output-escaping="yes" />
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
EOD;
|
||||
|
||||
$raum_contentmittitel_insert_query= <<<EOD
|
||||
INSERT INTO campus.tbl_template
|
||||
(template_kurzbz, bezeichnung, xsd, xslt_xhtml, xslfo_pdf, xslt_xhtml_c4)
|
||||
VALUES
|
||||
('raum_contentmittitel','template for the raum view that uses the tabulator javascript instead of the jquery scripts and the table sorter ', '{$raum_contentmittitel_xsd}', '{$raum_contentmittitel_xslt_xhtml}' , NULL, '{$raum_contentmittitel_xslt_xhtml_c4}');
|
||||
EOD;
|
||||
|
||||
$raum_content_update_query= <<<EOD
|
||||
UPDATE campus.tbl_content
|
||||
SET template_kurzbz = 'raum_contentmittitel'
|
||||
where content_id IN
|
||||
(SELECT content_id
|
||||
FROM public.tbl_ort
|
||||
JOIN campus.tbl_content USING(content_id));
|
||||
EOD;
|
||||
|
||||
|
||||
if ($result = @$db->db_query("SELECT * FROM campus.tbl_template WHERE template_kurzbz='raum_contentmittitel'")) {
|
||||
|
||||
// only inserting the new template if it doesn't exist already
|
||||
if ($db->db_num_rows($result) == 0) {
|
||||
|
||||
// executing the insert statement for the new template
|
||||
if (!$db->db_query($raum_contentmittitel_insert_query)){
|
||||
echo '<strong>FAILED INSERTING NEW TEMPLATE RAUM_CONTENTMITTITEL : ' . $db->db_last_error() . '</strong><br>';
|
||||
|
||||
}
|
||||
else {
|
||||
echo '<br>SUCCESSFULLY INSERTING NEW TEMPLATE RAUM_CONTENTMITTITEL ';
|
||||
|
||||
// only update the rooms template if the insert of the room_contentmittitel template was successful
|
||||
// executing the update statement to update the template for all room content
|
||||
if (!$db->db_query($raum_content_update_query)){
|
||||
echo '<strong>FAILED TO UPDATE ROOMS WITH NEW TEMPLATE raum_contentmittitel : ' . $db->db_last_error() . '</strong><br>';
|
||||
}
|
||||
else{
|
||||
echo '<br>SUCCESSFULLY UPDATED ROOMS WITH NEW TEMPLATE raum_contentmittitel';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
|
||||
// add unruly column public.tbl_person
|
||||
if($result = $db->db_query("SELECT 1 FROM information_schema.columns WHERE table_schema = 'public'
|
||||
AND table_name = 'tbl_person' AND column_name = 'unruly'"))
|
||||
{
|
||||
if($db->db_num_rows($result) === 0)
|
||||
{
|
||||
$qry = "ALTER TABLE tbl_person ADD COLUMN unruly BOOLEAN NOT NULL DEFAULT FALSE";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Public Tabelle person: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>spalte unruly hinzugefuegt';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
if ($result = @$db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_bookmark' AND table_schema='dashboard'"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "
|
||||
CREATE TABLE IF NOT EXISTS dashboard.tbl_bookmark(
|
||||
bookmark_id BIGSERIAL PRIMARY KEY,
|
||||
uid VARCHAR(255) NOT NULL,
|
||||
url VARCHAR(511) NOT NULL,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
tag VARCHAR(255) NULL,
|
||||
insertamum TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
insertvon VARCHAR(255) NULL REFERENCES public.tbl_benutzer(uid),
|
||||
updateamum TIMESTAMP NULL,
|
||||
updatevon VARCHAR(255) NULL REFERENCES public.tbl_benutzer(uid)
|
||||
);
|
||||
|
||||
ALTER TABLE dashboard.tbl_bookmark ADD CONSTRAINT tbl_bookmark_fk FOREIGN KEY(uid) REFERENCES public.tbl_benutzer(uid);
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON dashboard.tbl_bookmark TO vilesci;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON dashboard.tbl_bookmark TO web;
|
||||
GRANT SELECT, UPDATE ON dashboard.tbl_bookmark_bookmark_id_seq TO vilesci;
|
||||
GRANT SELECT, UPDATE ON dashboard.tbl_bookmark_bookmark_id_seq TO web;
|
||||
";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
{
|
||||
echo '<strong>error occurred during tbl_bookmark creation: ' . $db->db_last_error() . '</strong><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>dashboard.tbl_bookmark successfully created';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,468 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Harald Bamberger <harald.bamberger@technikum-wien.at>,
|
||||
*
|
||||
* Beschreibung:
|
||||
* Dashboard DB Aenderungen
|
||||
*/
|
||||
if (! defined('DB_NAME')) exit('No direct script access allowed');
|
||||
|
||||
if (($result = $db->db_query("SELECT schema_name FROM information_schema.schemata WHERE schema_name='dashboard'")))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{// TODO(chris): Rechte "Web"?
|
||||
$qry = <<<EODASHBOARDSQL
|
||||
|
||||
--
|
||||
-- Name: dashboard; Type: SCHEMA; Schema: -; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE SCHEMA dashboard;
|
||||
|
||||
|
||||
ALTER SCHEMA dashboard OWNER TO fhcomplete;
|
||||
|
||||
SET default_tablespace = '';
|
||||
|
||||
SET default_with_oids = false;
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard; Type: TABLE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE TABLE dashboard.tbl_dashboard (
|
||||
dashboard_id integer NOT NULL,
|
||||
dashboard_kurzbz character varying(32) NOT NULL,
|
||||
beschreibung text
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_dashboard OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override; Type: TABLE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE TABLE dashboard.tbl_dashboard_benutzer_override (
|
||||
override_id integer NOT NULL,
|
||||
dashboard_id integer NOT NULL,
|
||||
uid character varying(32) NOT NULL,
|
||||
override jsonb NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_dashboard_benutzer_override OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override_override_id_seq; Type: SEQUENCE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE SEQUENCE dashboard.tbl_dashboard_benutzer_override_override_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_dashboard_benutzer_override_override_id_seq OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override_override_id_seq; Type: SEQUENCE OWNED BY; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER SEQUENCE dashboard.tbl_dashboard_benutzer_override_override_id_seq OWNED BY dashboard.tbl_dashboard_benutzer_override.override_id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_dashboard_id_seq; Type: SEQUENCE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE SEQUENCE dashboard.tbl_dashboard_dashboard_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_dashboard_dashboard_id_seq OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_dashboard_id_seq; Type: SEQUENCE OWNED BY; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER SEQUENCE dashboard.tbl_dashboard_dashboard_id_seq OWNED BY dashboard.tbl_dashboard.dashboard_id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset; Type: TABLE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE TABLE dashboard.tbl_dashboard_preset (
|
||||
preset_id integer NOT NULL,
|
||||
dashboard_id integer NOT NULL,
|
||||
funktion_kurzbz character varying(16),
|
||||
preset jsonb NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_dashboard_preset OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset_preset_id_seq; Type: SEQUENCE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE SEQUENCE dashboard.tbl_dashboard_preset_preset_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_dashboard_preset_preset_id_seq OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset_preset_id_seq; Type: SEQUENCE OWNED BY; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER SEQUENCE dashboard.tbl_dashboard_preset_preset_id_seq OWNED BY dashboard.tbl_dashboard_preset.preset_id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_widget; Type: TABLE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE TABLE dashboard.tbl_dashboard_widget (
|
||||
dashboard_id integer NOT NULL,
|
||||
widget_id integer NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_dashboard_widget OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_widget; Type: TABLE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE TABLE dashboard.tbl_widget (
|
||||
widget_id integer NOT NULL,
|
||||
widget_kurzbz character varying(32) NOT NULL,
|
||||
beschreibung text,
|
||||
arguments jsonb NOT NULL,
|
||||
setup jsonb NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_widget OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_widget_widget_id_seq; Type: SEQUENCE; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
CREATE SEQUENCE dashboard.tbl_widget_widget_id_seq
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
|
||||
ALTER TABLE dashboard.tbl_widget_widget_id_seq OWNER TO fhcomplete;
|
||||
|
||||
--
|
||||
-- Name: tbl_widget_widget_id_seq; Type: SEQUENCE OWNED BY; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER SEQUENCE dashboard.tbl_widget_widget_id_seq OWNED BY dashboard.tbl_widget.widget_id;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard dashboard_id; Type: DEFAULT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard ALTER COLUMN dashboard_id SET DEFAULT nextval('dashboard.tbl_dashboard_dashboard_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override override_id; Type: DEFAULT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_benutzer_override ALTER COLUMN override_id SET DEFAULT nextval('dashboard.tbl_dashboard_benutzer_override_override_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset preset_id; Type: DEFAULT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_preset ALTER COLUMN preset_id SET DEFAULT nextval('dashboard.tbl_dashboard_preset_preset_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_widget widget_id; Type: DEFAULT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_widget ALTER COLUMN widget_id SET DEFAULT nextval('dashboard.tbl_widget_widget_id_seq'::regclass);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override tbl_dashboard_benutzer_override_pkey; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_benutzer_override
|
||||
ADD CONSTRAINT tbl_dashboard_benutzer_override_pkey PRIMARY KEY (override_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override tbl_dashboard_benutzer_override_uk1; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_benutzer_override
|
||||
ADD CONSTRAINT tbl_dashboard_benutzer_override_uk1 UNIQUE (dashboard_id, uid);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard tbl_dashboard_kurz_bz_key; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard
|
||||
ADD CONSTRAINT tbl_dashboard_kurz_bz_key UNIQUE (dashboard_kurzbz);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard tbl_dashboard_pkey; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard
|
||||
ADD CONSTRAINT tbl_dashboard_pkey PRIMARY KEY (dashboard_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset tbl_dashboard_preset_pkey; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_preset
|
||||
ADD CONSTRAINT tbl_dashboard_preset_pkey PRIMARY KEY (preset_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset tbl_dashboard_preset_uk1; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_preset
|
||||
ADD CONSTRAINT tbl_dashboard_preset_uk1 UNIQUE (dashboard_id, funktion_kurzbz);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_widget tbl_dashboard_widget_pkey; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_widget
|
||||
ADD CONSTRAINT tbl_dashboard_widget_pkey PRIMARY KEY (dashboard_id, widget_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_widget tbl_widget_pkey; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_widget
|
||||
ADD CONSTRAINT tbl_widget_pkey PRIMARY KEY (widget_id);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_widget tbl_widget_widget_kurzbz_key; Type: CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_widget
|
||||
ADD CONSTRAINT tbl_widget_widget_kurzbz_key UNIQUE (widget_kurzbz);
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override tbl_dashboard_benutzer_override_fk1; Type: FK CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_benutzer_override
|
||||
ADD CONSTRAINT tbl_dashboard_benutzer_override_fk1 FOREIGN KEY (dashboard_id) REFERENCES dashboard.tbl_dashboard(dashboard_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_benutzer_override tbl_dashboard_benutzer_override_fk2; Type: FK CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_benutzer_override
|
||||
ADD CONSTRAINT tbl_dashboard_benutzer_override_fk2 FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset tbl_dashboard_preset_fk1; Type: FK CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_preset
|
||||
ADD CONSTRAINT tbl_dashboard_preset_fk1 FOREIGN KEY (dashboard_id) REFERENCES dashboard.tbl_dashboard(dashboard_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_preset tbl_dashboard_preset_fk2; Type: FK CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_preset
|
||||
ADD CONSTRAINT tbl_dashboard_preset_fk2 FOREIGN KEY (funktion_kurzbz) REFERENCES public.tbl_funktion(funktion_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_widget tbl_dashboard_widget_fk1; Type: FK CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_widget
|
||||
ADD CONSTRAINT tbl_dashboard_widget_fk1 FOREIGN KEY (dashboard_id) REFERENCES dashboard.tbl_dashboard(dashboard_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
|
||||
--
|
||||
-- Name: tbl_dashboard_widget tbl_dashboard_widget_fk2; Type: FK CONSTRAINT; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY dashboard.tbl_dashboard_widget
|
||||
ADD CONSTRAINT tbl_dashboard_widget_fk2 FOREIGN KEY (widget_id) REFERENCES dashboard.tbl_widget(widget_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
|
||||
--
|
||||
-- Name: SCHEMA dashboard; Type: ACL; Schema: -; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT USAGE ON SCHEMA dashboard TO web;
|
||||
GRANT USAGE ON SCHEMA dashboard TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: TABLE tbl_dashboard; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT SELECT ON TABLE dashboard.tbl_dashboard TO web;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE dashboard.tbl_dashboard TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: TABLE tbl_dashboard_benutzer_override; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT SELECT,INSERT,UPDATE ON TABLE dashboard.tbl_dashboard_benutzer_override TO web;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE dashboard.tbl_dashboard_benutzer_override TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: SEQUENCE tbl_dashboard_benutzer_override_override_id_seq; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT ALL ON SEQUENCE dashboard.tbl_dashboard_benutzer_override_override_id_seq TO web;
|
||||
GRANT ALL ON SEQUENCE dashboard.tbl_dashboard_benutzer_override_override_id_seq TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: SEQUENCE tbl_dashboard_dashboard_id_seq; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT ALL ON SEQUENCE dashboard.tbl_dashboard_dashboard_id_seq TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: TABLE tbl_dashboard_preset; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT SELECT ON TABLE dashboard.tbl_dashboard_preset TO web;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE dashboard.tbl_dashboard_preset TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: SEQUENCE tbl_dashboard_preset_preset_id_seq; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT ALL ON SEQUENCE dashboard.tbl_dashboard_preset_preset_id_seq TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: TABLE tbl_dashboard_widget; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT SELECT ON TABLE dashboard.tbl_dashboard_widget TO web;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE dashboard.tbl_dashboard_widget TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: TABLE tbl_widget; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT SELECT ON TABLE dashboard.tbl_widget TO web;
|
||||
GRANT SELECT,INSERT,UPDATE ON TABLE dashboard.tbl_widget TO vilesci;
|
||||
|
||||
|
||||
--
|
||||
-- Name: SEQUENCE tbl_widget_widget_id_seq; Type: ACL; Schema: dashboard; Owner: fhcomplete
|
||||
--
|
||||
|
||||
GRANT ALL ON SEQUENCE dashboard.tbl_widget_widget_id_seq TO vilesci;
|
||||
|
||||
EODASHBOARDSQL;
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
{
|
||||
echo '<strong>Schema Dashboard: '.$db->db_last_error().'</strong><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>Neues Schema dashboard hinzugefuegt';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add permission: dashboard/admin
|
||||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'dashboard/admin';"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('dashboard/admin', 'Adminberechtigung');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
{
|
||||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'system.tbl_berechtigung: Added permission for dashboard/admin<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add permission: dashboard/benutzer
|
||||
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'dashboard/benutzer';"))
|
||||
{
|
||||
if($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('dashboard/benutzer', 'Benutzerberechtigung');";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
{
|
||||
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'system.tbl_berechtigung: Added permission for dashboard/benutzer<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3815
-6
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user