mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 01:12:17 +00:00
Merge branch 'master' into permissions
This commit is contained in:
@@ -20,6 +20,7 @@ application/models/extensions/
|
||||
application/views/extensions/
|
||||
application/widgets/extensions/
|
||||
application/logs/
|
||||
public/extensions/
|
||||
tests/codeception/_output/*
|
||||
!/tests/codeception/_output/.placeholder
|
||||
tests/codeception/codeception.yml
|
||||
|
||||
@@ -4,6 +4,5 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
$config['fhc_version'] = '3.2';
|
||||
|
||||
//
|
||||
$config['addons_aufnahme_url'] = array();
|
||||
$config['addons_aufnahme_url']['OE_ROOT'] = 'http://debian.dev/addons/aufnahme/OE_ROOT/cis/index.php';
|
||||
$config['addons_aufnahme_url']['OE_ROOT'] = 'https://SERVER-NAME/addons/aufnahme/OE_ROOT/cis/index.php';
|
||||
|
||||
@@ -1,17 +1,12 @@
|
||||
<?php
|
||||
|
||||
$config['navigation_header'] = array(
|
||||
'Vilesci/index' => array(
|
||||
'FH-Complete' => base_url('index.ci.php/'),
|
||||
'*' => array(
|
||||
'FH-Complete' => site_url(''),
|
||||
'Vilesci' => base_url('/vilesci'),
|
||||
'CIS' => CIS_ROOT
|
||||
),
|
||||
'system/infocenter/InfoCenter/index' => array(
|
||||
'FH-Complete' => base_url('index.ci.php/'),
|
||||
'Vilesci' => base_url('/vilesci'),
|
||||
'CIS' => CIS_ROOT
|
||||
),
|
||||
'system/infocenter/InfoCenter/showDetails' => array(
|
||||
'system/infocenter/InfoCenter/infocenterFreigegeben' => array(
|
||||
'FH-Complete' => base_url('index.ci.php/'),
|
||||
'Vilesci' => base_url('/vilesci'),
|
||||
'CIS' => CIS_ROOT
|
||||
@@ -39,7 +34,7 @@ $config['navigation_menu']['Vilesci/index'] = array(
|
||||
'expand' => true
|
||||
),
|
||||
'Infocenter' => array(
|
||||
'link' => base_url('index.ci.php/system/infocenter/InfoCenter'),
|
||||
'link' => site_url('/system/infocenter/InfoCenter'),
|
||||
'icon' => 'info',
|
||||
'description' => 'Infocenter',
|
||||
'expand' => true
|
||||
@@ -59,17 +54,35 @@ $config['navigation_menu']['Vilesci/index'] = array(
|
||||
'expand' => true
|
||||
),
|
||||
'Extensions' => array(
|
||||
'link' => base_url('index.ci.php/system/extensions/Manager'),
|
||||
'link' => site_url('/system/extensions/Manager'),
|
||||
'icon' => 'cubes',
|
||||
'description' => 'Extensions Manager',
|
||||
'expand' => true
|
||||
),
|
||||
'Datenschutz' => array(
|
||||
'link' => base_url('index.ci.php/extensions/FHC-Core-DSMS/export'),
|
||||
'description' => 'Datenschutz',
|
||||
'icon' => 'legal',
|
||||
'expand' => true
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
//HIDDEN as long as filter is revised
|
||||
//$config['navigation_menu']['system/infocenter/InfoCenter/index'] = array(
|
||||
// 'Freigegeben' => array(
|
||||
// 'link' => base_url('index.ci.php/system/infocenter/InfoCenter/infocenterFreigegeben'),
|
||||
// 'description' => 'Freigegeben',
|
||||
// 'icon' => 'thumbs-up'
|
||||
// ));
|
||||
|
||||
$config['navigation_menu']['system/infocenter/InfoCenter/showDetails'] = array(
|
||||
'Freigegeben' => array(
|
||||
'link' => base_url('index.ci.php/system/infocenter/InfoCenter/infocenterFreigegeben'),
|
||||
'description' => 'Freigegeben',
|
||||
'icon' => 'thumbs-up'
|
||||
));
|
||||
|
||||
$config['navigation_menu']['system/infocenter/InfoCenter/infocenterFreigegeben'] = array(
|
||||
'Zurück' => array(
|
||||
'link' => base_url('index.ci.php/system/infocenter/InfoCenter/index'),
|
||||
'description' => 'Zurück',
|
||||
'icon' => 'angle-left'
|
||||
));
|
||||
|
||||
|
||||
|
||||
@@ -22,11 +22,12 @@ class Phrase extends APIv1_Controller
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(array('Phrase' => 'system/phrase:rw', 'Phrases' => 'system/phrase:r'));
|
||||
|
||||
$this->load->library('PhrasesLib');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
public function getPhrase()
|
||||
{
|
||||
@@ -45,7 +46,7 @@ class Phrase extends APIv1_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
public function getPhrases()
|
||||
{
|
||||
@@ -69,7 +70,7 @@ class Phrase extends APIv1_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*
|
||||
*/
|
||||
public function postPhrase()
|
||||
{
|
||||
@@ -92,6 +93,9 @@ class Phrase extends APIv1_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _validate($phrase = null)
|
||||
{
|
||||
return false;
|
||||
|
||||
@@ -439,6 +439,11 @@ class Filters extends CI_Controller
|
||||
$filterOperationValues = $this->input->post('filterOperationValues');
|
||||
$filterOptions = $this->input->post('filterOptions');
|
||||
|
||||
if ($fieldNames == null) $fieldNames = array();
|
||||
if ($filterOperationValues == null) $filterOperationValues = array();
|
||||
if ($filterOperations == null) $filterOperations = array();
|
||||
if ($filterOptions == null) $filterOptions = array();
|
||||
|
||||
$activeFilters = array_combine($fieldNames, $filterOperationValues);
|
||||
$activeFiltersOperation = array_combine($fieldNames, $filterOperations);
|
||||
$activeFiltersOption = array_combine($fieldNames, $filterOptions);
|
||||
|
||||
@@ -10,7 +10,7 @@ class Navigation extends FHC_Controller
|
||||
const SESSION_NAME = 'NAVIGATION_MENU';
|
||||
|
||||
/**
|
||||
*
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
@@ -23,12 +23,15 @@ class Navigation extends FHC_Controller
|
||||
|
||||
$this->config->load('navigation');
|
||||
|
||||
// Load session library
|
||||
$this->load->library('session');
|
||||
}
|
||||
// Load session library
|
||||
$this->load->library('session');
|
||||
$this->load->library('ExtensionsLib');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* This function creates the left Menu for each Page
|
||||
* @param navigation_widget_called GET Parameter witch holds the currently called Page
|
||||
* @return JSON object with the Menu Entries
|
||||
*/
|
||||
public function menu()
|
||||
{
|
||||
@@ -37,16 +40,33 @@ class Navigation extends FHC_Controller
|
||||
|
||||
if (isset($navigation_widget_called))
|
||||
{
|
||||
// Get Menu Entries of the Core
|
||||
$navigationMenuArray = $this->config->item('navigation_menu');
|
||||
$json = $this->wildcardsearch($navigationMenuArray, $navigation_widget_called);
|
||||
|
||||
if (isset($navigationMenuArray) && is_array($navigationMenuArray))
|
||||
// Load Menu Entries of Extensions
|
||||
$extensions = $this->extensionslib->getInstalledExtensions();
|
||||
if(hasData($extensions))
|
||||
{
|
||||
if (isset($navigationMenuArray[$navigation_widget_called]))
|
||||
$json_extension = array();
|
||||
foreach($extensions->retval as $ext)
|
||||
{
|
||||
$json = $navigationMenuArray[$navigation_widget_called];
|
||||
$filename = APPPATH.'config/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$ext->name.'/navigation.php';
|
||||
if (file_exists($filename))
|
||||
{
|
||||
unset($config);
|
||||
include($filename);
|
||||
if(isset($config['navigation_menu']) && is_array($config['navigation_menu']))
|
||||
{
|
||||
$json_extension = array_merge_recursive($json_extension, $this->wildcardsearch($config['navigation_menu'], $navigation_widget_called));
|
||||
}
|
||||
}
|
||||
}
|
||||
// Merge Extension Menuentries with the Core Entries
|
||||
$json = array_merge_recursive($json, $json_extension);
|
||||
}
|
||||
|
||||
// Load dynamic Menu Entries from Session
|
||||
if (isset($_SESSION['navigation_menu']))
|
||||
{
|
||||
$navigationMenuSessionArray = $_SESSION['navigation_menu'];
|
||||
@@ -55,7 +75,7 @@ class Navigation extends FHC_Controller
|
||||
{
|
||||
if (isset($navigationMenuSessionArray[$navigation_widget_called]))
|
||||
{
|
||||
$json = array_merge($json, $navigationMenuSessionArray[$navigation_widget_called]);
|
||||
$json = array_merge_recursive($json, $navigationMenuSessionArray[$navigation_widget_called]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -65,7 +85,9 @@ class Navigation extends FHC_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* This function creates the Top Menu for each Page
|
||||
* @param navigation_widget_called GET Parameter witch holds the currently called Page
|
||||
* @return JSON object with the Menu Entries
|
||||
*/
|
||||
public function header()
|
||||
{
|
||||
@@ -74,16 +96,32 @@ class Navigation extends FHC_Controller
|
||||
|
||||
if (isset($navigation_widget_called))
|
||||
{
|
||||
// Load Header Entries of Core
|
||||
$navigationHeaderArray = $this->config->item('navigation_header');
|
||||
$json = $this->wildcardsearch($navigationHeaderArray, $navigation_widget_called);
|
||||
|
||||
if (isset($navigationHeaderArray) && is_array($navigationHeaderArray))
|
||||
// Load Header Entries of Extensions
|
||||
$extensions = $this->extensionslib->getInstalledExtensions();
|
||||
if(hasData($extensions))
|
||||
{
|
||||
if (isset($navigationHeaderArray[$navigation_widget_called]))
|
||||
$json_extension = array();
|
||||
foreach($extensions->retval as $ext)
|
||||
{
|
||||
$json = $navigationHeaderArray[$navigation_widget_called];
|
||||
$filename = APPPATH.'config/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$ext->name.'/navigation.php';
|
||||
if (file_exists($filename))
|
||||
{
|
||||
unset($config);
|
||||
include($filename);
|
||||
if(isset($config['navigation_header']) && is_array($config['navigation_header']))
|
||||
{
|
||||
$json_extension = array_merge_recursive($json_extension, $this->wildcardsearch($config['navigation_header'], $navigation_widget_called));
|
||||
}
|
||||
}
|
||||
}
|
||||
$json = array_merge_recursive($json, $json_extension);
|
||||
}
|
||||
|
||||
// Load dynamic Header Entries from Session
|
||||
if (isset($_SESSION['navigation_header']))
|
||||
{
|
||||
$navigationHeaderSessionArray = $_SESSION['navigation_header'];
|
||||
@@ -92,7 +130,8 @@ class Navigation extends FHC_Controller
|
||||
{
|
||||
if (isset($navigationHeaderSessionArray[$navigation_widget_called]))
|
||||
{
|
||||
$json = array_merge($json, $navigationHeaderSessionArray[$navigation_widget_called]);
|
||||
$jsontmp = $this->wildcardsearch($navigationHeaderSessionArray, $navigation_widget_called);
|
||||
$json = array_merge_recursive($json, $jsontmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -100,4 +139,47 @@ class Navigation extends FHC_Controller
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
* Searches a Menuentry. If there is no exact entry it searches for Wildcard Entries with a Star
|
||||
* Example:
|
||||
* Searching for /system/foo/index will Match the following Menuentries:
|
||||
* /system/foo/index
|
||||
* /system/foo/*
|
||||
* /system/*
|
||||
* *
|
||||
*
|
||||
* @param $navigationArray Array to Search in.
|
||||
* @param $navigation_widget_called Navigation to search for.
|
||||
* @return Navigation Array if found, empty array otherwise
|
||||
*/
|
||||
private function wildcardsearch($navigationArray, $navigation_widget_called)
|
||||
{
|
||||
// Sort Navigation to have them in correct order
|
||||
krsort($navigationArray);
|
||||
|
||||
// 100% match found
|
||||
if(isset($navigationArray[$navigation_widget_called]))
|
||||
{
|
||||
return $navigationArray[$navigation_widget_called];
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($navigationArray as $key=>$row)
|
||||
{
|
||||
// Search for * Entries
|
||||
if(mb_strpos($key, '*') === 0 || mb_strpos($key, '*') === mb_strlen($key) - 1)
|
||||
{
|
||||
// Take * Entry if Matches
|
||||
$search = mb_substr($key, 0, -1);
|
||||
if($search == '' || mb_strpos($navigation_widget_called, $search) === 0)
|
||||
{
|
||||
return $row;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Phrases extends FHC_Controller
|
||||
{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
@@ -31,107 +34,133 @@ class Phrases extends FHC_Controller
|
||||
$this->load->helper('message');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->load->view('system/phrases.php');
|
||||
$this->load->view('system/phrases/phrases.php');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function table()
|
||||
{
|
||||
$phrases = $this->phraseslib->getPhraseByApp('aufnahme');
|
||||
if ($phrases->error)
|
||||
show_error($phrases->retval);
|
||||
//var_dump($vorlage);
|
||||
|
||||
$data = array
|
||||
(
|
||||
$data = array(
|
||||
'app' => 'aufnahme',
|
||||
'phrases' => $phrases->retval
|
||||
);
|
||||
$v = $this->load->view('system/phrasesList.php', $data);
|
||||
|
||||
$this->load->view('system/phrases/phrasesList.php', $data);
|
||||
}
|
||||
|
||||
public function view($phrase_id = null)
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function view($phrase_id)
|
||||
{
|
||||
if (empty($phrase_id))
|
||||
exit;
|
||||
$phrase_inhalt = $this->phraseslib->getPhraseInhalt($phrase_id);
|
||||
show_error('Invalid phrase_id parameter');
|
||||
|
||||
$phrase = $this->phraseslib->getPhrase($phrase_id);
|
||||
|
||||
$phrase_inhalt = $this->phraseslib->getPhraseInhalt($phrase_id);
|
||||
if ($phrase_inhalt->error)
|
||||
show_error($phrase_inhalt->retval);
|
||||
//var_dump($vorlage);
|
||||
|
||||
$data = array
|
||||
(
|
||||
$data = array(
|
||||
'phrase_id' => $phrase_id,
|
||||
'phrase' => $phrase->retval[0]->phrase,
|
||||
'phrase_inhalt' => $phrase_inhalt->retval
|
||||
);
|
||||
$v = $this->load->view('system/phrasesinhaltList.php', $data);
|
||||
|
||||
$this->load->view('system/phrases/phrasesinhaltList.php', $data);
|
||||
}
|
||||
|
||||
public function deltext($phrasentext_id=null, $phrase_id = null)
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function deltext($phrasentext_id, $phrase_id)
|
||||
{
|
||||
if (empty($phrase_id) or empty($phrasentext_id))
|
||||
exit;
|
||||
if (empty($phrasentext_id) || empty($phrase_id))
|
||||
show_error('Invalid phrasentext_id or phrase_id parameter');
|
||||
|
||||
$phrase_inhalt = $this->phraseslib->delPhrasentext($phrasentext_id);
|
||||
if ($phrase_inhalt->error)
|
||||
show_error($phrase_inhalt->retval);
|
||||
//var_dump($vorlage);
|
||||
|
||||
redirect('/system/Phrases/view/'.$phrase_id);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function edit($phrase_id = null)
|
||||
{
|
||||
if (empty($phrase_id))
|
||||
exit;
|
||||
if (empty($phrase_id)) return;
|
||||
|
||||
$phrase = $this->phraseslib->getPhrase($phrase_id);
|
||||
//var_dump($vorlage);
|
||||
if ($phrase->error)
|
||||
show_error($phrase->retval);
|
||||
|
||||
if (count($phrase->retval) != 1)
|
||||
show_error('Phrase nicht vorhanden! ID: '.$phrase_id);
|
||||
|
||||
$data = array
|
||||
(
|
||||
$data = array(
|
||||
'phrase' => $phrase->retval[0]
|
||||
);
|
||||
//var_dump($data['message']);
|
||||
$v = $this->load->view('system/phrasesEdit', $data);
|
||||
|
||||
$this->load->view('system/phrases/phrasesEdit', $data);
|
||||
}
|
||||
|
||||
public function write($vorlage_kurzbz = null)
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function write()
|
||||
{
|
||||
$data = array
|
||||
(
|
||||
$data = array(
|
||||
'subject' => 'TestSubject',
|
||||
'body' => 'TestDevelopmentBodyText'
|
||||
);
|
||||
$v = $this->load->view('system/messageWrite', $data);
|
||||
|
||||
$this->load->view('system/messageWrite', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function save()
|
||||
{
|
||||
$phrase_id = $this->input->post('phrase_id');
|
||||
$data['phrase'] = $this->input->post('phrase');
|
||||
$data = array('phrase' => $this->input->post('phrase'));
|
||||
|
||||
$phrase = $this->phraseslib->savePhrase($phrase_id, $data);
|
||||
if ($phrase->error)
|
||||
show_error($phrase->retval);
|
||||
|
||||
$phrase_id = $phrase->retval;
|
||||
|
||||
redirect('/system/Phrases/edit/'.$phrase_id);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function newText()
|
||||
{
|
||||
$phrase_id = $this->input->post('phrase_id');
|
||||
|
||||
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
|
||||
|
||||
$this->OrganisationseinheitModel->addLimit(1);
|
||||
$this->OrganisationseinheitModel->addOrder('oe_kurzbz');
|
||||
$resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null));
|
||||
|
||||
$resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null));
|
||||
if ($resultOE->error)
|
||||
show_error($resultOE->retval);
|
||||
|
||||
@@ -139,7 +168,7 @@ class Phrases extends FHC_Controller
|
||||
{
|
||||
$orgeinheit_kurzbz = $resultOE->retval[0]->oe_kurzbz;
|
||||
|
||||
$data = array (
|
||||
$data = array(
|
||||
'phrase_id' => $phrase_id,
|
||||
'sprache' => 'German',
|
||||
'text' => '',
|
||||
@@ -161,30 +190,40 @@ class Phrases extends FHC_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function editText($phrasentext_id)
|
||||
{
|
||||
$phrase_inhalt = $this->phraseslib->getPhrasentextById($phrasentext_id);
|
||||
if ($phrase_inhalt->error)
|
||||
show_error($phrase_inhalt->retval);
|
||||
|
||||
$data = $phrase_inhalt->retval[0];
|
||||
|
||||
$this->load->view('system/phraseinhaltEdit', $data);
|
||||
$this->load->view('system/phrases/phraseinhaltEdit', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function saveText()
|
||||
{
|
||||
$phrase_inhalt_id = $this->input->post('phrase_inhalt_id');
|
||||
$data['orgeinheit_kurzbz'] = $this->input->post('oe_kurzbz');
|
||||
$data['orgform_kurzbz'] = $this->input->post('orgform_kurzbz');
|
||||
$data['text'] = $this->input->post('text');
|
||||
$data['description'] = $this->input->post('description');
|
||||
$data['sprache'] = $this->input->post('sprache');
|
||||
|
||||
$data = array(
|
||||
'orgeinheit_kurzbz' => $this->input->post('oe_kurzbz'),
|
||||
'orgform_kurzbz' => $this->input->post('orgform_kurzbz'),
|
||||
'text' => $this->input->post('text'),
|
||||
'description' => $this->input->post('description'),
|
||||
'sprache' => $this->input->post('sprache')
|
||||
);
|
||||
|
||||
$phrase_inhalt = $this->phraseslib->updatePhraseInhalt($phrase_inhalt_id, $data);
|
||||
if ($phrase_inhalt->error)
|
||||
show_error($phrase_inhalt->retval);
|
||||
$data['phrase_inhalt_id'] = $phrase_inhalt_id;
|
||||
redirect('/system/Phrases/editText/'.$phrase_inhalt_id);
|
||||
//$this->load->view('system/templatetextEdit', $data);
|
||||
}
|
||||
|
||||
|
||||
redirect('/system/Phrases/editText/'.$phrase_inhalt_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,9 +24,9 @@ class Manager extends FHC_Controller
|
||||
// Load helpers to upload files
|
||||
$this->load->helper(array('form', 'url'));
|
||||
|
||||
// Loads the extensions library
|
||||
$this->load->library('ExtensionsLib');
|
||||
}
|
||||
// Loads the extensions library
|
||||
$this->load->library('ExtensionsLib');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -42,6 +42,11 @@ class InfoCenter extends FHC_Controller
|
||||
'logtype' => 'Action',
|
||||
'name' => 'Note added',
|
||||
'message' => 'Note with title %s was added'
|
||||
),
|
||||
'updatenotiz' => array(
|
||||
'logtype' => 'Action',
|
||||
'name' => 'Note updated',
|
||||
'message' => 'Note with title %s was updated'
|
||||
)
|
||||
);
|
||||
private $uid; // contains the UID of the logged user
|
||||
@@ -103,7 +108,12 @@ class InfoCenter extends FHC_Controller
|
||||
{
|
||||
$this->load->view('system/infocenter/infocenter.php');
|
||||
}
|
||||
|
||||
|
||||
public function infocenterFreigegeben()
|
||||
{
|
||||
$this->load->view('system/infocenter/infocenterFreigegeben.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialization function, gets person and prestudent data and loads the view with the data
|
||||
* @param $person_id
|
||||
@@ -137,7 +147,7 @@ class InfoCenter extends FHC_Controller
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* unlocks page from edit by a person, redirects to overview filter page
|
||||
* @param $person_id
|
||||
@@ -367,7 +377,7 @@ class InfoCenter extends FHC_Controller
|
||||
|
||||
$this->_redirectToStart($prestudent_id, 'ZgvPruef');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Saves a new Notiz for a person
|
||||
* @param $person_id
|
||||
@@ -391,6 +401,44 @@ class InfoCenter extends FHC_Controller
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode($result->retval));
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates a new Notiz for a person
|
||||
* @param int $notiz_id
|
||||
* @param int $person_id
|
||||
* @return bool true if success
|
||||
*/
|
||||
public function updateNotiz($notiz_id, $person_id)
|
||||
{
|
||||
$titel = $this->input->post('notiztitel');
|
||||
$text = $this->input->post('notiz');
|
||||
|
||||
$result = $this->NotizModel->update(
|
||||
$notiz_id,
|
||||
array(
|
||||
'titel' => $titel,
|
||||
'text' => $text,
|
||||
'verfasser_uid' => $this->uid,
|
||||
"updateamum" => 'NOW()',
|
||||
"updatevon" => $this->uid
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
$json = FALSE;
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$json = TRUE;
|
||||
|
||||
//set log "Notiz updated"
|
||||
$this->_log($person_id, 'updatenotiz', array($titel));
|
||||
}
|
||||
|
||||
$this->output
|
||||
->set_content_type('application/json')
|
||||
->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads Notizen view for a person, helper for reloading after ajax request
|
||||
@@ -514,7 +562,7 @@ class InfoCenter extends FHC_Controller
|
||||
'children' => array()
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
$this->_fillFilters($listFiltersSent, $filtersarray['abgeschickt']);
|
||||
$this->_fillFilters($listFiltersNotSent, $filtersarray['nichtabgeschickt']);
|
||||
|
||||
@@ -562,7 +610,7 @@ class InfoCenter extends FHC_Controller
|
||||
{
|
||||
$toPrint = "%s=%s";
|
||||
$tofill['children'][] = array(
|
||||
'link' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filter_id'), $filterId),
|
||||
'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter?filter_id'), $filterId),
|
||||
'description' => $description
|
||||
);
|
||||
}
|
||||
@@ -574,13 +622,8 @@ class InfoCenter extends FHC_Controller
|
||||
{
|
||||
$toPrint = "%s=%s";
|
||||
|
||||
if ($this->router->method != 'index')
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
$tofill['children'][] = array(
|
||||
'link' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filter_id'), $filterId),
|
||||
'link' => sprintf($toPrint, site_url('system/infocenter/InfoCenter?filter_id'), $filterId),
|
||||
'description' => $description,
|
||||
'subscriptDescription' => 'Remove',
|
||||
'subscriptLinkClass' => 'remove-filter',
|
||||
@@ -831,6 +874,8 @@ class InfoCenter extends FHC_Controller
|
||||
$prestudentstatus = $prestudent->prestudentstatus;
|
||||
$person_id = $prestudent->person_id;
|
||||
$person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval;
|
||||
$dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false)->retval;
|
||||
$dokumenteNachzureichen = $this->AkteModel->getAktenWithDokInfo($person_id, null, true)->retval;
|
||||
|
||||
//fill mail variables
|
||||
$interessentbez = $person->geschlecht == 'm' ? 'Ein Interessent' : 'Eine Interessentin';
|
||||
@@ -838,6 +883,25 @@ class InfoCenter extends FHC_Controller
|
||||
$orgform = $prestudentstatus->orgform != '' ? ' ('.$prestudentstatus->orgform.')' : '';
|
||||
$geschlecht = $person->geschlecht == 'm' ? 'männlich' : 'weiblich';
|
||||
$geburtsdatum = date('d.m.Y', strtotime($person->gebdatum));
|
||||
$zgvort = !empty($prestudent->zgvort) ? ' in '.$prestudent->zgvort : '';
|
||||
$zgvnation = !empty($prestudent->zgvnation_bez) ? ', '.$prestudent->zgvnation_bez : '';
|
||||
$zgvdatum = !empty($prestudent->zgvdatum) ? ', am '.date_format(date_create($prestudent->zgvdatum), 'd.m.Y') : '';
|
||||
|
||||
$dokumenteNachzureichenMail = $dokumenteMail = array();
|
||||
//convert documents to array so they can be parsed, and keeping only needed fields
|
||||
$lastel = end($dokumente);
|
||||
foreach ($dokumente as $dokument)
|
||||
{
|
||||
$postfix = $lastel === $dokument ? '' : ' |';
|
||||
$dokumenteMail[] = array('dokument_bezeichnung' => $dokument->dokument_bezeichnung.$postfix);
|
||||
}
|
||||
|
||||
foreach ($dokumenteNachzureichen as $dokument)
|
||||
{
|
||||
$anmerkung = !empty($dokument->anmerkung) ? ' | Anmerkung: '.$dokument->anmerkung : '';
|
||||
$nachgereichtam = !empty($dokument->nachgereicht_am) ? ' | wird nachgereicht bis '.date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : '';
|
||||
$dokumenteNachzureichenMail[] = array('dokument_bezeichnung' => $dokument->dokument_bezeichnung, 'anmerkung' => $anmerkung, 'nachgereicht_am' => $nachgereichtam);
|
||||
}
|
||||
|
||||
$notizenBewerbung = $this->NotizModel->getNotizByTitel($person_id, 'Anmerkung zur Bewerbung')->retval;
|
||||
|
||||
@@ -874,7 +938,13 @@ class InfoCenter extends FHC_Controller
|
||||
'gebdatum' => $geburtsdatum,
|
||||
'mailadresse' => $mailadresse,
|
||||
'prestudentid' => $prestudent_id,
|
||||
'notizentext' => $notizentext
|
||||
'zgvbez' => $prestudent->zgv_bez,
|
||||
'zgvort' => $zgvort,
|
||||
'zgvdatum' => $zgvdatum,
|
||||
'zgvnation' => $zgvnation,
|
||||
'notizentext' => $notizentext,
|
||||
'dokumente' => $dokumenteMail,
|
||||
'dokumente_nachgereicht' => $dokumenteNachzureichenMail
|
||||
);
|
||||
|
||||
$this->load->library('parser');
|
||||
@@ -884,7 +954,7 @@ class InfoCenter extends FHC_Controller
|
||||
//parse freigabe html email template, wordwrap wraps text so no display errors
|
||||
$email = wordwrap($this->parser->parse('templates/mailtemplates/interessentFreigabe', $data, true), 70);
|
||||
|
||||
$subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' freigegeben';
|
||||
$subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' für '.$prestudent->studiengangbezeichnung.$orgform.' freigegeben';
|
||||
|
||||
$receiver = $prestudent->studiengangmail;
|
||||
|
||||
|
||||
@@ -29,18 +29,16 @@ class DB_Model extends FHC_Model
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct($dbTable = null, $pk = null, $hasSequence = true)
|
||||
public function __construct($dbtype = 'default')
|
||||
{
|
||||
// Call parent constructor
|
||||
parent::__construct();
|
||||
|
||||
// Set properties
|
||||
$this->pk = $pk;
|
||||
$this->dbTable = $dbTable;
|
||||
$this->hasSequence = $hasSequence;
|
||||
$this->hasSequence = true;
|
||||
|
||||
// Loads DB conns and confs
|
||||
$this->load->database();
|
||||
$this->load->database($dbtype);
|
||||
|
||||
// Loads the UDF library
|
||||
$this->load->library('UDFLib');
|
||||
|
||||
@@ -35,4 +35,14 @@ class FHC_Controller extends CI_Controller
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper to load phrases using the PhrasesLib
|
||||
* NOTE: The library is loaded with the alias 'p', so must me used with this alias in the rest of the code.
|
||||
* EX: $this->p->t(<category>, <phrase name>)
|
||||
*/
|
||||
public function loadPhrases($categories, $language = null)
|
||||
{
|
||||
$this->load->library('PhrasesLib', array($categories, $language), 'p');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,12 +15,17 @@ class ExtensionsLib
|
||||
const EXTENSION_JSON_NAME = 'extension.json'; // file that contains extension data
|
||||
const EXTENSIONS_DIR_NAME = 'extensions'; // name of the directories where will be created the symlinks
|
||||
|
||||
private $_ci;
|
||||
|
||||
private $ARCHIVE_EXTENSIONS = array('.tgz', '.tbz2'); // accepted file extensions for an uploaded extension
|
||||
private $UPLOAD_PATH; // temporary directory to store the upload file and checks the archive
|
||||
private $EXTENSIONS_PATH; // directory where all the extensions are
|
||||
|
||||
// Directories that are part of the extension archive
|
||||
private $SOFTLINK_TARGET_DIRECTORIES = array('config', 'controllers', 'helpers', 'hooks', 'libraries', 'models', 'views', 'widgets');
|
||||
private $SOFTLINK_TARGET_DIRECTORIES = array(
|
||||
APPPATH => array('config', 'controllers', 'helpers', 'hooks', 'libraries', 'models', 'views', 'widgets'),
|
||||
DOC_ROOT => array('public')
|
||||
);
|
||||
|
||||
private $_errorOccurred; // boolean, true if an error occurred while installing an extension
|
||||
private $_currentInstalledExtensionVersion; // contains the version of the current installation of an extension
|
||||
@@ -33,16 +38,16 @@ class ExtensionsLib
|
||||
$this->UPLOAD_PATH = APPPATH.'tmp/';
|
||||
$this->EXTENSIONS_PATH = APPPATH.'extensions/';
|
||||
// Get code igniter instance
|
||||
$this->ci =& get_instance();
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
// Loads message configurationx
|
||||
$this->ci->config->load('message');
|
||||
$this->_ci->config->load('message');
|
||||
|
||||
// Loads EPrintfLib
|
||||
$this->ci->load->library('EPrintfLib');
|
||||
$this->_ci->load->library('EPrintfLib');
|
||||
|
||||
// Loading models
|
||||
$this->ci->load->model('system/Extensions_model', 'ExtensionsModel');
|
||||
$this->_ci->load->model('system/Extensions_model', 'ExtensionsModel');
|
||||
|
||||
// Set default values fot class properties
|
||||
$this->_errorOccurred = false;
|
||||
@@ -153,7 +158,7 @@ class ExtensionsLib
|
||||
$delExtension = false;
|
||||
|
||||
// Loads data about this extension from the DB
|
||||
$result = $this->ci->ExtensionsModel->load($extensionId);
|
||||
$result = $this->_ci->ExtensionsModel->load($extensionId);
|
||||
if (hasData($result)) // if something was found
|
||||
{
|
||||
$extensionName = $result->retval[0]->name; // extension name
|
||||
@@ -162,15 +167,15 @@ class ExtensionsLib
|
||||
$delExtension = $this->_rrm($this->EXTENSIONS_PATH.$extensionName);
|
||||
|
||||
// Select all the version of this extension
|
||||
$this->ci->ExtensionsModel->addSelect('extension_id');
|
||||
$result = $this->ci->ExtensionsModel->loadWhere(array('name' => $extensionName));
|
||||
$this->_ci->ExtensionsModel->addSelect('extension_id');
|
||||
$result = $this->_ci->ExtensionsModel->loadWhere(array('name' => $extensionName));
|
||||
if (hasData($result)) // if something was found
|
||||
{
|
||||
$extsArray = array();
|
||||
foreach ($result->retval as $key => $extension) // loops on them
|
||||
{
|
||||
// Remove them all
|
||||
$result = $this->ci->ExtensionsModel->delete($extension->extension_id);
|
||||
$result = $this->_ci->ExtensionsModel->delete($extension->extension_id);
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$delExtension = true;
|
||||
@@ -187,7 +192,7 @@ class ExtensionsLib
|
||||
*/
|
||||
public function getInstalledExtensions()
|
||||
{
|
||||
return $this->ci->ExtensionsModel->getInstalledExtensions();
|
||||
return $this->_ci->ExtensionsModel->getInstalledExtensions();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -214,7 +219,7 @@ class ExtensionsLib
|
||||
*/
|
||||
private function _loadUploadLibrary()
|
||||
{
|
||||
$this->ci->load->library(
|
||||
$this->_ci->load->library(
|
||||
'upload',
|
||||
array(
|
||||
'upload_path' => $this->UPLOAD_PATH,
|
||||
@@ -234,9 +239,9 @@ class ExtensionsLib
|
||||
$this->_printStart('Uploading extension');
|
||||
|
||||
// If the upload was a success
|
||||
if ($this->ci->upload->do_upload(ExtensionsLib::FILE_INPUT_NAME))
|
||||
if ($this->_ci->upload->do_upload(ExtensionsLib::FILE_INPUT_NAME))
|
||||
{
|
||||
$uploadData = $this->ci->upload->data(); // retrives data about the uploaded file
|
||||
$uploadData = $this->_ci->upload->data(); // retrives data about the uploaded file
|
||||
// Checks the file extension
|
||||
$uploadedFileExtension = '.'.pathinfo($uploadData['full_path'], PATHINFO_EXTENSION);
|
||||
if (!in_array($uploadedFileExtension, $this->ARCHIVE_EXTENSIONS))
|
||||
@@ -259,7 +264,7 @@ class ExtensionsLib
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_printFailure($this->ci->upload->display_errors('', ''));
|
||||
$this->_printFailure($this->_ci->upload->display_errors('', ''));
|
||||
}
|
||||
|
||||
$this->_printSuccess($_uploadExtension != null);
|
||||
@@ -309,9 +314,9 @@ class ExtensionsLib
|
||||
$this->_printStart('Loads any previous installation data');
|
||||
|
||||
// Loads the last version of the previous installation of this extension
|
||||
$this->ci->ExtensionsModel->addOrder('version', 'DESC');
|
||||
$this->ci->ExtensionsModel->addLimit(1);
|
||||
$result = $this->ci->ExtensionsModel->loadWhere(array('name' => $extensionName));
|
||||
$this->_ci->ExtensionsModel->addOrder('version', 'DESC');
|
||||
$this->_ci->ExtensionsModel->addLimit(1);
|
||||
$result = $this->_ci->ExtensionsModel->loadWhere(array('name' => $extensionName));
|
||||
if (isError($result))
|
||||
{
|
||||
$this->_errorOccurred = true;
|
||||
@@ -428,7 +433,7 @@ class ExtensionsLib
|
||||
&& count($extensionJson->dependencies) > 0)
|
||||
{
|
||||
// Gets the required dependencies
|
||||
$result = $this->ci->ExtensionsModel->getDependencies($extensionJson->dependencies);
|
||||
$result = $this->_ci->ExtensionsModel->getDependencies($extensionJson->dependencies);
|
||||
// If they are matcheds
|
||||
if (hasData($result) && count($result->retval) == count($extensionJson->dependencies))
|
||||
{
|
||||
@@ -525,7 +530,7 @@ class ExtensionsLib
|
||||
{
|
||||
$this->_printStart('Adding new entry in the DB');
|
||||
|
||||
$result = $this->ci->ExtensionsModel->insert(
|
||||
$result = $this->_ci->ExtensionsModel->insert(
|
||||
array(
|
||||
'name' => $extensionJson->name,
|
||||
'description' => isset($extensionJson->description) ? $extensionJson->description : null,
|
||||
@@ -581,7 +586,7 @@ class ExtensionsLib
|
||||
$this->_printMessage($sql);
|
||||
|
||||
// Try to execute that
|
||||
if (!isSuccess($result = @$this->ci->ExtensionsModel->executeQuery($sql)))
|
||||
if (!isSuccess($result = @$this->_ci->ExtensionsModel->executeQuery($sql)))
|
||||
{
|
||||
$this->_errorOccurred = true;
|
||||
$this->_printFailure(' error occurred while executing the query');
|
||||
@@ -592,7 +597,7 @@ class ExtensionsLib
|
||||
{
|
||||
$this->_printMessage('Query result:');
|
||||
var_dump($result->retval); // KEEP IT!!!
|
||||
$this->ci->eprintflib->printEOL();
|
||||
$this->_ci->eprintflib->printEOL();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -654,11 +659,14 @@ class ExtensionsLib
|
||||
{
|
||||
$_delSoftLinks = false;
|
||||
|
||||
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $key => $targetDirectory)
|
||||
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $rootPath => $targetDirectories)
|
||||
{
|
||||
if (file_exists(APPPATH.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
|
||||
foreach ($targetDirectories as $key => $targetDirectory)
|
||||
{
|
||||
$_delSoftLinks = unlink(APPPATH.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName);
|
||||
if (file_exists($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
|
||||
{
|
||||
$_delSoftLinks = unlink($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -705,25 +713,29 @@ class ExtensionsLib
|
||||
$extensionPath = $this->EXTENSIONS_PATH.$extensionName.'/';
|
||||
|
||||
// For every target directory
|
||||
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $key => $targetDirectory)
|
||||
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $rootPath => $targetDirectories)
|
||||
{
|
||||
// If destination of the symlink does not exist
|
||||
if (!file_exists(APPPATH.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
|
||||
foreach ($targetDirectories as $key => $targetDirectory)
|
||||
{
|
||||
// If the target directory does not exist than creates that
|
||||
if (!is_dir($extensionPath.$targetDirectory))
|
||||
// If destination of the symlink does not exist
|
||||
if (!file_exists($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
|
||||
{
|
||||
mkdir($extensionPath.$targetDirectory);
|
||||
}
|
||||
// If the target directory does not exist than creates that
|
||||
if (!is_dir($extensionPath.$targetDirectory))
|
||||
{
|
||||
mkdir($extensionPath.$targetDirectory);
|
||||
}
|
||||
|
||||
// Create the symlink
|
||||
$_addSoftLinks = symlink(
|
||||
$extensionPath.$targetDirectory,
|
||||
APPPATH.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName
|
||||
);
|
||||
if (!$_addSoftLinks)
|
||||
{
|
||||
break;
|
||||
// Create the symlink
|
||||
$_addSoftLinks = symlink(
|
||||
$extensionPath.$targetDirectory,
|
||||
$rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName
|
||||
);
|
||||
if (!$_addSoftLinks)
|
||||
{
|
||||
log_message('error','Failed to create Symlink to '.$extensionPath.$targetDirectory);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -757,13 +769,13 @@ class ExtensionsLib
|
||||
if ($uploadData != null && isset($uploadData->extensionName) && $extensionDB == null)
|
||||
{
|
||||
// Loads all the previous installations of this extension
|
||||
$this->ci->ExtensionsModel->addOrder('version', 'DESC');
|
||||
$this->ci->ExtensionsModel->addLimit(1);
|
||||
$result = $this->ci->ExtensionsModel->loadWhere(array('name' => $uploadData->extensionName));
|
||||
$this->_ci->ExtensionsModel->addOrder('version', 'DESC');
|
||||
$this->_ci->ExtensionsModel->addLimit(1);
|
||||
$result = $this->_ci->ExtensionsModel->loadWhere(array('name' => $uploadData->extensionName));
|
||||
if (hasData($result)) // if found
|
||||
{
|
||||
// Remove them all from file system and DB
|
||||
$this->_printMessage('Removing entries in the DB related to this extension');
|
||||
$this->_printMessage('Removing entries in the DB related to this extension and from extensions directory');
|
||||
$this->delExtension($result->retval[0]->extension_id);
|
||||
}
|
||||
}
|
||||
@@ -772,7 +784,7 @@ class ExtensionsLib
|
||||
// Remove them all only from DB
|
||||
if ($extensionJson != null && isset($extensionJson->extension_id))
|
||||
{
|
||||
$this->ci->ExtensionsModel->delete($extensionJson->extension_id);
|
||||
$this->_ci->ExtensionsModel->delete($extensionJson->extension_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -789,7 +801,7 @@ class ExtensionsLib
|
||||
$_toggleExtension = false;
|
||||
|
||||
// Loads data from DB about the given extension
|
||||
$result = $this->ci->ExtensionsModel->load($extensionId);
|
||||
$result = $this->_ci->ExtensionsModel->load($extensionId);
|
||||
if (hasData($result))
|
||||
{
|
||||
$extensionName = $result->retval[0]->name; // extension name
|
||||
@@ -809,7 +821,7 @@ class ExtensionsLib
|
||||
if ($_toggleExtension) // if is a success
|
||||
{
|
||||
// Updates DB
|
||||
$result = $this->ci->ExtensionsModel->update($extensionId, array('enabled' => $enabled));
|
||||
$result = $this->_ci->ExtensionsModel->update($extensionId, array('enabled' => $enabled));
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$_toggleExtension = true;
|
||||
@@ -829,7 +841,7 @@ class ExtensionsLib
|
||||
*/
|
||||
private function _printError($error)
|
||||
{
|
||||
$this->ci->eprintflib->printError($error);
|
||||
$this->_ci->eprintflib->printError($error);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -845,7 +857,7 @@ class ExtensionsLib
|
||||
*/
|
||||
private function _printMessage($message)
|
||||
{
|
||||
$this->ci->eprintflib->printMessage($message);
|
||||
$this->_ci->eprintflib->printMessage($message);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -864,7 +876,7 @@ class ExtensionsLib
|
||||
*/
|
||||
private function _printInfo($info)
|
||||
{
|
||||
$this->ci->eprintflib->printInfo($info);
|
||||
$this->_ci->eprintflib->printInfo($info);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,38 +4,40 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class PhrasesLib
|
||||
{
|
||||
private $_ci; // Code igniter instance
|
||||
private $_phrases; // Contains the retrived phrases
|
||||
|
||||
/**
|
||||
* Loads parser library
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//require_once APPPATH.'config/message.php';
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
$this->ci =& get_instance();
|
||||
// CI parser
|
||||
$this->_ci->load->library('parser');
|
||||
|
||||
// Loads message configuration
|
||||
$this->ci->config->load('message');
|
||||
|
||||
$this->ci->load->library('parser');
|
||||
|
||||
$this->ci->load->model('system/Phrase_model', 'PhraseModel');
|
||||
$this->ci->load->model('system/Phrasentext_model', 'PhrasentextModel');
|
||||
$this->_ci->load->model('system/Phrase_model', 'PhraseModel');
|
||||
$this->_ci->load->model('system/Phrasentext_model', 'PhrasentextModel');
|
||||
|
||||
$this->ci->load->helper('language');
|
||||
// Loads helper message to manage returning messages
|
||||
$this->ci->load->helper('message');
|
||||
$this->_ci->load->helper('message');
|
||||
|
||||
// Workaround to use more parameters in the construct since PHP doesn't support many constructors
|
||||
$this->_extend_construct(func_get_args());
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* getPhrase() - will load a spezific Phrase
|
||||
* getPhrase() - loads a specific Phrase
|
||||
*/
|
||||
public function getPhrase($phrase_id)
|
||||
{
|
||||
if (empty($phrase_id))
|
||||
return error(MSG_ERR_INVALID_MSG_ID);
|
||||
if (empty($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
|
||||
|
||||
$phrase = $this->ci->PhraseModel->load($phrase_id);
|
||||
return $phrase;
|
||||
return $this->_ci->PhraseModel->load($phrase_id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,8 +45,7 @@ class PhrasesLib
|
||||
*/
|
||||
public function getPhraseByApp($app = null)
|
||||
{
|
||||
$phrases = $this->ci->PhraseModel->loadWhere(array('app' => $app));
|
||||
return $phrases;
|
||||
return $this->_ci->PhraseModel->loadWhere(array('app' => $app));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,11 +53,9 @@ class PhrasesLib
|
||||
*/
|
||||
public function getPhraseInhalt($phrase_id)
|
||||
{
|
||||
if (empty($phrase_id))
|
||||
return error(MSG_ERR_INVALID_MSG_ID);
|
||||
if (empty($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
|
||||
|
||||
$phrasentext = $this->ci->PhrasentextModel->loadWhere(array('phrase_id' => $phrase_id));
|
||||
return $phrasentext;
|
||||
return $this->_ci->PhrasentextModel->loadWhere(array('phrase_id' => $phrase_id));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -64,11 +63,9 @@ class PhrasesLib
|
||||
*/
|
||||
public function delPhrasentext($phrasentext_id)
|
||||
{
|
||||
if (empty($phrasentext_id))
|
||||
return error(MSG_ERR_INVALID_MSG_ID);
|
||||
if (empty($phrasentext_id)) return error(MSG_ERR_INVALID_MSG_ID);
|
||||
|
||||
$phrasentext = $this->ci->PhrasentextModel->delete(array('phrasentext_id' => $phrasentext_id));
|
||||
return $phrasentext;
|
||||
return $this->_ci->PhrasentextModel->delete(array('phrasentext_id' => $phrasentext_id));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -76,11 +73,9 @@ class PhrasesLib
|
||||
*/
|
||||
public function savePhrase($phrase_id, $data)
|
||||
{
|
||||
if (empty($data))
|
||||
return error(MSG_ERR_INVALID_MSG_ID);
|
||||
if (empty($data)) return error(MSG_ERR_INVALID_MSG_ID);
|
||||
|
||||
$phrase = $this->ci->PhraseModel->update($phrase_id, $data);
|
||||
return $phrase;
|
||||
return $this->_ci->PhraseModel->update($phrase_id, $data);
|
||||
}
|
||||
|
||||
|
||||
@@ -90,32 +85,33 @@ class PhrasesLib
|
||||
public function getPhrasentextById($phrasentext_id)
|
||||
{
|
||||
if (empty($phrasentext_id))
|
||||
return error($this->ci->lang->line('fhc_'.FHC_INVALIDID, false));
|
||||
return error($this->_ci->lang->line('fhc_'.FHC_INVALIDID, false));
|
||||
|
||||
$phrasentext = $this->ci->PhrasentextModel->load($phrasentext_id);
|
||||
return $phrasentext;
|
||||
return $this->_ci->PhrasentextModel->load($phrasentext_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* getPhrases()
|
||||
* getPhrases() - Retrives phrases from the DB
|
||||
* The given parameter are the same needed to read from the table system.tb_phrase
|
||||
*/
|
||||
public function getPhrases($app, $sprache, $phrase = null, $orgeinheit_kurzbz = null, $orgform_kurzbz = null, $blockTags = null)
|
||||
{
|
||||
if (isset($app) && isset($sprache))
|
||||
{
|
||||
$result = $this->ci->PhraseModel->getPhrases($app, $sprache, $phrase, $orgeinheit_kurzbz, $orgform_kurzbz);
|
||||
|
||||
$result = $this->_ci->PhraseModel->getPhrases($app, $sprache, $phrase, $orgeinheit_kurzbz, $orgform_kurzbz);
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$parser = new \Netcarver\Textile\Parser();
|
||||
|
||||
// Textile parser
|
||||
$textileParser = new \Netcarver\Textile\Parser();
|
||||
|
||||
for ($i = 0; $i < count($result->retval); $i++)
|
||||
{
|
||||
// If no <p> tags required
|
||||
if ($blockTags == 'no')
|
||||
{
|
||||
$tmpText = $parser->textileThis($result->retval[$i]->text); // Parse
|
||||
|
||||
$tmpText = $textileParser->textileThis($result->retval[$i]->text); // Parse
|
||||
|
||||
// Removes tags <p> and </p> from the beginning and from the end of the string if they are present
|
||||
// NOTE: Those tags are usually, but not always, added by the textile parser
|
||||
if (strlen($tmpText) >= 7)
|
||||
@@ -129,12 +125,12 @@ class PhrasesLib
|
||||
$tmpText = substr($tmpText, 0, strlen($tmpText) - 4);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$result->retval[$i]->text = $tmpText;
|
||||
}
|
||||
else
|
||||
{
|
||||
$result->retval[$i]->text = $parser->textileThis($result->retval[$i]->text);
|
||||
$result->retval[$i]->text = $textileParser->textileThis($result->retval[$i]->text);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -152,8 +148,7 @@ class PhrasesLib
|
||||
*/
|
||||
public function insertPhraseinhalt($data)
|
||||
{
|
||||
$phrasentext = $this->ci->PhrasentextModel->insert($data);
|
||||
return $phrasentext;
|
||||
return $this->_ci->PhrasentextModel->insert($data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -161,8 +156,7 @@ class PhrasesLib
|
||||
*/
|
||||
public function getVorlagetextById($vorlagestudiengang_id)
|
||||
{
|
||||
$vorlagetext = $this->ci->VorlageStudiengangModel->load($vorlagestudiengang_id);
|
||||
return $vorlagetext;
|
||||
return $this->_ci->VorlageStudiengangModel->load($vorlagestudiengang_id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -170,8 +164,7 @@ class PhrasesLib
|
||||
*/
|
||||
public function updatePhraseInhalt($phrasentext_id, $data)
|
||||
{
|
||||
$phrasentext = $this->ci->PhrasentextModel->update($phrasentext_id, $data);
|
||||
return $phrasentext;
|
||||
return $this->_ci->PhrasentextModel->update($phrasentext_id, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -180,8 +173,84 @@ class PhrasesLib
|
||||
public function parseVorlagetext($text, $data = array())
|
||||
{
|
||||
if (empty($text))
|
||||
return error($this->ci->lang->line('fhc_'.FHC_INVALIDID, false));
|
||||
$text = $this->ci->parser->parse_string($text, $data, true);
|
||||
return $text;
|
||||
return error($this->_ci->lang->line('fhc_'.FHC_INVALIDID, false));
|
||||
|
||||
return $this->_ci->parser->parse_string($text, $data, true);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function t($category, $phrase, $parameters = array(), $orgeinheit_kurzbz = null, $orgform_kurzbz = null)
|
||||
{
|
||||
if (isset($this->_phrases) && is_array($this->_phrases))
|
||||
{
|
||||
for ($i = 0; $i < count($this->_phrases); $i++)
|
||||
{
|
||||
$_phrase = $this->_phrases[$i];
|
||||
|
||||
if ($_phrase->category == $category
|
||||
&& $_phrase->phrase == $phrase
|
||||
&& $_phrase->orgeinheit_kurzbz == $orgeinheit_kurzbz
|
||||
&& $_phrase->orgform_kurzbz== $orgform_kurzbz)
|
||||
{
|
||||
if ($parameters == null) $parameters = array();
|
||||
|
||||
echo $this->_ci->parser->parse_string($_phrase->text, $parameters, true)."\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Extends the functionalities of the constructor of this class
|
||||
* This is a workaround to use more parameters in the construct since PHP doesn't support many constructors
|
||||
* The new accepted parameters are:
|
||||
* - categories: could be a string or an array of strings. These are the categories used to load phrases
|
||||
* - language: optional parameter must be a string. It's used to load phrases
|
||||
*/
|
||||
private function _extend_construct($params)
|
||||
{
|
||||
// Checks if the $params is an array with at least one element
|
||||
if (is_array($params) && count($params) > 0)
|
||||
{
|
||||
$parameters = $params[0]; // temporary variable
|
||||
|
||||
// If there are parameters
|
||||
if (is_array($parameters) && count($parameters) > 0)
|
||||
{
|
||||
$categories = $parameters[0]; // categories is always the first parameter
|
||||
if (!is_array($categories)) // if it is not an array, then convert into one
|
||||
{
|
||||
$categories = array($categories);
|
||||
}
|
||||
|
||||
// Use the given language if present, otherwise retrives the language for the logged user
|
||||
$language = DEFAULT_LANGUAGE;
|
||||
if (count($parameters) == 2 && !empty($parameters[1]) && is_string($parameters[1]))
|
||||
{
|
||||
$language = $parameters[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_ci->load->model('person/Person_model', 'PersonModel');
|
||||
|
||||
$language = $this->_ci->PersonModel->getLanguage(getAuthUID());
|
||||
}
|
||||
|
||||
// Loads phrases
|
||||
$phrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndLanguage($categories, $language);
|
||||
|
||||
// If there are phrases loaded then store them in the property _phrases
|
||||
if (hasData($phrases))
|
||||
{
|
||||
$this->_phrases = $phrases->retval;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,6 +114,8 @@ class VorlageLib
|
||||
$queryParameters["sprache"] = $sprache;
|
||||
}
|
||||
|
||||
$this->ci->VorlageStudiengangModel->addOrder('version', 'DESC');
|
||||
|
||||
$vorlage = $this->ci->VorlageStudiengangModel->loadWhere($queryParameters);
|
||||
// If the searched template was not found
|
||||
if (!hasData($vorlage))
|
||||
|
||||
@@ -11,4 +11,20 @@ class Konto_model extends DB_Model
|
||||
$this->dbTable = 'wawi.tbl_konto';
|
||||
$this->pk = 'konto_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all Konten connected for a Kostenstelle
|
||||
* @param $kostenstelle_id
|
||||
* @return array
|
||||
*/
|
||||
public function getKontenForKostenstelle($kostenstelle_id)
|
||||
{
|
||||
$this->addJoin('wawi.tbl_konto_kostenstelle', 'konto_id');
|
||||
$konten = $this->loadWhere(array('kostenstelle_id' => $kostenstelle_id));
|
||||
|
||||
if ($konten->error)
|
||||
return error($konten->retval);
|
||||
|
||||
return $konten;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,70 @@ class Kostenstelle_model extends DB_Model
|
||||
$this->dbTable = 'wawi.tbl_kostenstelle';
|
||||
$this->pk = 'kostenstelle_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields
|
||||
* Gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified
|
||||
* Only the Kostenstellen for which a permission exists are returned!
|
||||
* @param $geschaeftsjahr
|
||||
* @return array|null
|
||||
*/
|
||||
public function getActiveKostenstellenForGeschaeftsjahr($geschaeftsjahr = null)
|
||||
{
|
||||
$this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
|
||||
|
||||
if ($geschaeftsjahr === null)
|
||||
{
|
||||
$lgj = $this->GeschaeftsjahrModel->getCurrGeschaeftsjahr();
|
||||
|
||||
if ($lgj->error)
|
||||
return error($lgj->retval);
|
||||
|
||||
if (count($lgj->retval) < 1)
|
||||
return success(array());
|
||||
|
||||
$geschaeftsjahr = $lgj->retval[0]->geschaeftsjahr_kurzbz;
|
||||
}
|
||||
|
||||
$this->GeschaeftsjahrModel->addSelect('start, ende');
|
||||
$gj = $this->GeschaeftsjahrModel->load($geschaeftsjahr);
|
||||
|
||||
if ($gj->error)
|
||||
return error($gj->retval);
|
||||
|
||||
if (count($gj->retval) < 1)
|
||||
return success(array());
|
||||
|
||||
$gjstart = $gj->retval[0]->start;
|
||||
|
||||
$query = 'SELECT kostenstelle_id, kurzbz, wawi.tbl_kostenstelle.bezeichnung, wawi.tbl_kostenstelle.aktiv
|
||||
FROM wawi.tbl_kostenstelle
|
||||
LEFT JOIN public.tbl_geschaeftsjahr kgjvon on wawi.tbl_kostenstelle.geschaeftsjahrvon = kgjvon.geschaeftsjahr_kurzbz
|
||||
LEFT JOIN public.tbl_geschaeftsjahr kgjbis on wawi.tbl_kostenstelle.geschaeftsjahrbis = kgjbis.geschaeftsjahr_kurzbz
|
||||
WHERE
|
||||
(DATE ? >= kgjvon.start OR wawi.tbl_kostenstelle.geschaeftsjahrvon IS NULL)
|
||||
AND
|
||||
(DATE ? < kgjbis.ende OR wawi.tbl_kostenstelle.geschaeftsjahrbis IS NULL)
|
||||
ORDER BY wawi.tbl_kostenstelle.bezeichnung';
|
||||
|
||||
$kostenstellen = $this->execQuery($query, array($gjstart, $gjstart));
|
||||
|
||||
if ($kostenstellen->error)
|
||||
return error($kostenstellen->retval);
|
||||
|
||||
$this->load->library('PermissionLib');
|
||||
|
||||
$kostenstellenresult = array();
|
||||
|
||||
//filter kostenstellen, only kostenstellen for which berechtigt
|
||||
foreach ($kostenstellen->retval as $kostenstelle)
|
||||
{
|
||||
if ($this->permissionlib->isBerechtigt('extension/budget_verwaltung', 'suid', null, $kostenstelle->kostenstelle_id) === true)
|
||||
{
|
||||
$kostenstellenresult[] = $kostenstelle;
|
||||
}
|
||||
}
|
||||
|
||||
return success($kostenstellenresult);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,33 @@ class Geschaeftsjahr_model extends DB_Model
|
||||
$this->dbTable = 'public.tbl_geschaeftsjahr';
|
||||
$this->pk = 'geschaeftsjahr_kurzbz';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets current Geschaeftsjahr, as determined by its start date
|
||||
* @return array|null
|
||||
*/
|
||||
public function getCurrGeschaeftsjahr()
|
||||
{
|
||||
$query = 'SELECT *
|
||||
FROM public.tbl_geschaeftsjahr
|
||||
WHERE start <= now()
|
||||
AND ende >= now()';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets next Geschaeftsjahr, as determined by its start date
|
||||
* @return array|null
|
||||
*/
|
||||
public function getNextGeschaeftsjahr()
|
||||
{
|
||||
$query = 'SELECT *
|
||||
FROM public.tbl_geschaeftsjahr
|
||||
WHERE start > now()
|
||||
ORDER BY start
|
||||
LIMIT 1';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,10 +94,13 @@ class Person_model extends DB_Model
|
||||
{
|
||||
$this->addJoin('public.tbl_prestudent', 'person_id');
|
||||
|
||||
$this->addJoin('public.tbl_benutzer', 'person_id');
|
||||
|
||||
$result = $this->loadTree(
|
||||
'public.tbl_person',
|
||||
array(
|
||||
'public.tbl_prestudent'
|
||||
'public.tbl_prestudent',
|
||||
'public.tbl_benutzer'
|
||||
),
|
||||
'EXISTS (
|
||||
SELECT
|
||||
@@ -112,7 +115,8 @@ class Person_model extends DB_Model
|
||||
AND datum <= '.$this->escape($bis).'
|
||||
)',
|
||||
array(
|
||||
'prestudenten'
|
||||
'prestudenten',
|
||||
'benutzer'
|
||||
)
|
||||
);
|
||||
|
||||
@@ -192,4 +196,37 @@ class Person_model extends DB_Model
|
||||
|
||||
return $this->loadWhere(array('uid' => $uid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrives the language of the user by the UID
|
||||
* Gets all the persons related to the given UID and starting from the most recent person in DB
|
||||
* tries to find a valid language (!= null), if found is returned, otherwise is returned the
|
||||
* default global language of the system
|
||||
*/
|
||||
public function getLanguage($uid)
|
||||
{
|
||||
$language = DEFAULT_LANGUAGE;
|
||||
|
||||
$this->addJoin('public.tbl_benutzer', 'person_id');
|
||||
$this->addOrder('public.tbl_person.updateamum', 'DESC');
|
||||
$this->addOrder('public.tbl_person.insertvon', 'DESC');
|
||||
|
||||
$persons = $this->loadWhere(array('uid' => $uid));
|
||||
|
||||
if (hasData($persons))
|
||||
{
|
||||
for ($i = 0; $i < count($persons->retval); $i++)
|
||||
{
|
||||
$person = $persons->retval[$i];
|
||||
|
||||
if (!empty($person->sprache))
|
||||
{
|
||||
$language = $person->sprache;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $language;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ class Extensions_model extends DB_Model
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
parent::__construct('system');
|
||||
$this->dbTable = 'system.tbl_extensions';
|
||||
$this->pk = 'extension_id';
|
||||
}
|
||||
|
||||
@@ -54,4 +54,21 @@ class Phrase_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads phrases using category(s) and language as keys
|
||||
* The retrived fields are category, phrase, orgeinheit_kurzbz, orgform_kurzbz and text
|
||||
* They are ordered by p.category, p.phrase, pt.orgeinheit_kurzbz DESC and pt.orgform_kurzbz DESC'
|
||||
*/
|
||||
public function getPhrasesByCategoryAndLanguage($categories, $language)
|
||||
{
|
||||
$query = 'SELECT p.category, p.phrase, pt.orgeinheit_kurzbz, pt.orgform_kurzbz, pt.text
|
||||
FROM system.tbl_phrase p
|
||||
INNER JOIN system.tbl_phrasentext pt USING(phrase_id)
|
||||
WHERE p.category IN ?
|
||||
AND pt.sprache = ?
|
||||
ORDER BY p.category, p.phrase, pt.orgeinheit_kurzbz DESC, pt.orgform_kurzbz DESC';
|
||||
|
||||
return $this->execQuery($query, array($categories, $language));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<form method="post" action="#" id="notizform">
|
||||
<input type="hidden" name="hiddenNotizId" value="">
|
||||
<div class="form-group">
|
||||
<div class="text-center">
|
||||
<label>Notiz hinzufügen</label>
|
||||
@@ -19,6 +20,8 @@
|
||||
<textarea name="notiz" class="form-control" rows="10" cols="32"></textarea>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<!--abbrechen-button only shown when notice is clicked to be changed-->
|
||||
<button type="reset" class="btn btn-default" style="display: none">Abbrechen</button>
|
||||
<button type="submit" class="btn btn-default">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Regular → Executable
+69
-5
@@ -9,10 +9,12 @@
|
||||
p.vorname AS "Vorname",
|
||||
p.nachname AS "Nachname",
|
||||
p.gebdatum AS "Gebdatum",
|
||||
p.staatsbuergerschaft AS "Nation",
|
||||
(
|
||||
SELECT zeitpunkt
|
||||
FROM system.tbl_log
|
||||
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
|
||||
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1
|
||||
@@ -21,6 +23,7 @@
|
||||
SELECT insertvon
|
||||
FROM system.tbl_log
|
||||
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
|
||||
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1
|
||||
@@ -79,15 +82,17 @@
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
|
||||
LIMIT 1
|
||||
) AS "AnzahlAbgeschickt",
|
||||
array_to_string(
|
||||
(
|
||||
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
|
||||
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan using (studienplan_id)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
|
||||
AND pss.bestaetigtam IS NULL
|
||||
@@ -98,9 +103,53 @@
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
|
||||
LIMIT 1
|
||||
),\', \'
|
||||
) AS "StgAbgeschickt",
|
||||
array_to_string(
|
||||
(
|
||||
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan using (studienplan_id)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND (pss.bewerbung_abgeschicktamum IS NULL)
|
||||
AND pss.bestaetigtam IS NULL
|
||||
AND ps.person_id = p.person_id
|
||||
AND tbl_studiengang.typ in(\'b\')
|
||||
AND studiensemester_kurzbz IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
|
||||
LIMIT 1
|
||||
),\', \'
|
||||
) AS "StgNichtAbgeschickt",
|
||||
array_to_string(
|
||||
(
|
||||
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
JOIN lehre.tbl_studienplan using (studienplan_id)
|
||||
WHERE pss.status_kurzbz in (\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\')
|
||||
AND (pss.bewerbung_abgeschicktamum IS NULL)
|
||||
AND ps.person_id = p.person_id
|
||||
AND tbl_studiengang.typ in(\'b\')
|
||||
AND studiensemester_kurzbz IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE start >= NOW()
|
||||
)
|
||||
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\')
|
||||
LIMIT 1
|
||||
),\', \'
|
||||
) AS "StgAktiv",
|
||||
pl.zeitpunkt AS "LockDate",
|
||||
pl.lockuser as "LockUser"
|
||||
FROM public.tbl_person p
|
||||
@@ -141,14 +190,17 @@
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array(
|
||||
'PersonID','Vorname','Nachname','GebDatum','Letzte Aktion','Letzter Bearbeiter',
|
||||
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'
|
||||
'PersonID', 'Vorname', 'Nachname',
|
||||
'GebDatum', 'Nation', 'Letzte Aktion',
|
||||
'Letzter Bearbeiter', 'StSem', 'GesendetAm',
|
||||
'NumAbgeschickt', 'StgSent', 'StgNotSent',
|
||||
'StgAktiv', 'Sperrdatum', 'GesperrtVon'
|
||||
),
|
||||
'formatRaw' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->{'Details'} = sprintf(
|
||||
'<a href="%s%s">Details</a>',
|
||||
base_url('index.ci.php/system/infocenter/InfoCenter/showDetails/'),
|
||||
site_url('system/infocenter/InfoCenter/showDetails/'),
|
||||
$datasetRaw->{'PersonId'}
|
||||
);
|
||||
|
||||
@@ -187,7 +239,19 @@
|
||||
|
||||
if ($datasetRaw->{'StgAbgeschickt'} == null)
|
||||
{
|
||||
$datasetRaw->{'StgAbgeschickt'} = 'N/A';
|
||||
$datasetRaw->{'StgAbgeschickt'} = '-';
|
||||
}
|
||||
if ($datasetRaw->{'StgNichtAbgeschickt'} == null)
|
||||
{
|
||||
$datasetRaw->{'StgNichtAbgeschickt'} = '-';
|
||||
}
|
||||
if ($datasetRaw->{'StgAktiv'} == null)
|
||||
{
|
||||
$datasetRaw->{'StgAktiv'} = '-';
|
||||
}
|
||||
if ($datasetRaw->{'Nation'} == null)
|
||||
{
|
||||
$datasetRaw->{'Nation'} = '-';
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Info Center',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'customCSSs' => 'skin/tablesort_bootstrap.css',
|
||||
'customJSs' => array('include/js/bootstrapper.js', 'include/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">Freigegebene Interessenten</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php
|
||||
|
||||
$APP = 'infocenter';
|
||||
$NOTBEFORE = '2018-03-01 18:00:00';
|
||||
$filterWidgetArray = array(
|
||||
'query' => '
|
||||
SELECT
|
||||
p.person_id AS "PersonId",
|
||||
p.vorname AS "Vorname",
|
||||
p.nachname AS "Nachname",
|
||||
p.gebdatum AS "Gebdatum",
|
||||
p.staatsbuergerschaft AS "Nation",
|
||||
(
|
||||
SELECT zeitpunkt
|
||||
FROM system.tbl_log
|
||||
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
|
||||
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1
|
||||
) AS "LastAction",
|
||||
(
|
||||
SELECT insertvon
|
||||
FROM system.tbl_log
|
||||
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
|
||||
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1
|
||||
) AS "User/Operator",
|
||||
(
|
||||
SELECT
|
||||
pss.studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND pss.bestaetigtam IS NULL
|
||||
AND ps.person_id = p.person_id
|
||||
AND tbl_studiengang.typ in(\'b\')
|
||||
AND studiensemester_kurzbz IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "Studiensemester",
|
||||
(
|
||||
SELECT pss.bewerbung_abgeschicktamum
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
|
||||
AND pss.bestaetigtam IS NULL
|
||||
AND ps.person_id = p.person_id
|
||||
AND tbl_studiengang.typ in(\'b\')
|
||||
AND studiensemester_kurzbz IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "SendDate",
|
||||
(
|
||||
SELECT count(*)
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
|
||||
AND pss.bestaetigtam IS NULL
|
||||
AND ps.person_id = p.person_id
|
||||
AND tbl_studiengang.typ in(\'b\')
|
||||
AND studiensemester_kurzbz IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "AnzahlAbgeschickt",
|
||||
array_to_string(
|
||||
(
|
||||
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE pss.status_kurzbz = \'Interessent\'
|
||||
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
|
||||
AND pss.bestaetigtam IS NULL
|
||||
AND ps.person_id = p.person_id
|
||||
AND tbl_studiengang.typ in(\'b\')
|
||||
AND studiensemester_kurzbz IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
LIMIT 1
|
||||
),\', \'
|
||||
) AS "StgAbgeschickt",
|
||||
pl.zeitpunkt AS "LockDate",
|
||||
pl.lockuser as "LockUser"
|
||||
FROM public.tbl_person p
|
||||
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
|
||||
WHERE
|
||||
EXISTS(
|
||||
SELECT 1
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
person_id=p.person_id
|
||||
AND tbl_studiengang.typ in(\'b\')
|
||||
AND \'Interessent\' = (SELECT status_kurzbz FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id=tbl_prestudent.prestudent_id
|
||||
ORDER BY datum DESC, insertamum DESC, ext_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
WHERE
|
||||
prestudent_id = tbl_prestudent.prestudent_id
|
||||
AND status_kurzbz = \'Interessent\'
|
||||
AND (bestaetigtam IS NOT NULL AND (bewerbung_abgeschicktamum is null OR bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\'))
|
||||
AND studiensemester_kurzbz IN (
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" ASC
|
||||
',
|
||||
'hideHeader' => false,
|
||||
'hideSave' => false,
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter',
|
||||
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
|
||||
'formatRaw' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->{'Details'} = sprintf(
|
||||
'<a href="%s%s">Details</a>',
|
||||
base_url('index.ci.php/system/infocenter/InfoCenter/showDetails/'),
|
||||
$datasetRaw->{'PersonId'}
|
||||
);
|
||||
|
||||
if ($datasetRaw->{'SendDate'} == null)
|
||||
{
|
||||
$datasetRaw->{'SendDate'} = 'Not sent';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}),'Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'LastAction'} == null)
|
||||
{
|
||||
$datasetRaw->{'LastAction'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}),'Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'User/Operator'} == '')
|
||||
{
|
||||
$datasetRaw->{'User/Operator'} = 'NA';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'LockDate'} == null)
|
||||
{
|
||||
$datasetRaw->{'LockDate'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'LockUser'} == null)
|
||||
{
|
||||
$datasetRaw->{'LockUser'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'StgAbgeschickt'} == null)
|
||||
{
|
||||
$datasetRaw->{'StgAbgeschickt'} = 'N/A';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Nation'} == null)
|
||||
{
|
||||
$datasetRaw->{'Nation'} = '-';
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
if ($datasetRaw->LockDate != null)
|
||||
{
|
||||
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
$filterId = isset($_GET[InfoCenter::FILTER_ID]) ? $_GET[InfoCenter::FILTER_ID] : null;
|
||||
|
||||
if (isset($filterId) && is_numeric($filterId))
|
||||
{
|
||||
$filterWidgetArray[InfoCenter::FILTER_ID] = $filterId;
|
||||
}
|
||||
else
|
||||
{
|
||||
$filterWidgetArray['app'] = $APP;
|
||||
$filterWidgetArray['datasetName'] = 'PersonActions';
|
||||
$filterWidgetArray['filterKurzbz'] = 'InfoCenterNotSentApplicationAll';
|
||||
}
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -1,19 +1,20 @@
|
||||
<table id="notiztable" class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Notiz</th>
|
||||
<th>User</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($notizen as $notiz): ?>
|
||||
<tr data-toggle="tooltip"
|
||||
title="<?php echo isset($notiz->text) ? strip_tags($notiz->text) : '' ?>">
|
||||
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
|
||||
<td><?php echo html_escape($notiz->titel) ?></td>
|
||||
<td><?php echo $notiz->verfasser_uid ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
<table id="notiztable" class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Notiz</th>
|
||||
<th>User</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($notizen as $notiz): ?>
|
||||
<tr data-toggle="tooltip"
|
||||
title="<?php echo isset($notiz->text) ? strip_tags($notiz->text) : '' ?>">
|
||||
<td><?php echo date_format(date_create($notiz->insertamum), 'd.m.Y H:i:s') ?></td>
|
||||
<td><?php echo html_escape($notiz->titel) ?></td>
|
||||
<td><?php echo $notiz->verfasser_uid ?></td>
|
||||
<td style="display: none"><?php echo $notiz->notiz_id ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -287,10 +287,25 @@
|
||||
</div>
|
||||
</div><!-- /.column-absage -->
|
||||
<div class="col-lg-6 text-right">
|
||||
<?php
|
||||
$disabled = $disabledTxt = '';
|
||||
if (empty($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = 'Die Bewerbung muss erst abgeschickt worden sein.';
|
||||
}
|
||||
|
||||
if ($zgvpruefung->studiengangtyp !== 'b')
|
||||
{
|
||||
$disabled = 'disabled';
|
||||
$disabledTxt = 'Nur Bachelorstudiengänge können freigegeben werden.';;
|
||||
}
|
||||
?>
|
||||
<div>
|
||||
<button type="button" class="btn btn-default"
|
||||
<button type="button" class="btn btn-default" <?php echo $disabled ?>
|
||||
data-toggle="modal"
|
||||
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>">
|
||||
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>"
|
||||
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
|
||||
Freigabe an Studiengang
|
||||
</button>
|
||||
</div>
|
||||
|
||||
+20
-29
@@ -65,10 +65,6 @@
|
||||
</code><br/>
|
||||
<a href="https://warpedvisions.org/projects/textile-cheat-sheet/" target="_blank">Textile CheatSheet</a>
|
||||
</td></tr>
|
||||
<?php
|
||||
// This is an example to show that you can load stuff from inside the template file
|
||||
//echo $this->widgetlib->widget("tinymce_widget", array('name' => 'text', 'text' => $text));
|
||||
?>
|
||||
<tr><td colspan="2" align="right"><button type="submit">Save</button></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
@@ -77,34 +73,29 @@
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
<script>
|
||||
|
||||
$(document).ready(function () {
|
||||
initTextile();
|
||||
});
|
||||
$(document).ready(function () {
|
||||
initTextile();
|
||||
});
|
||||
|
||||
function initTextile() {
|
||||
var $content = $('#markitup'); // my textarea
|
||||
var $preview = $('#textile-preview'); // the preview div
|
||||
function initTextile() {
|
||||
var $content = $('#markitup'); // my textarea
|
||||
var $preview = $('#textile-preview'); // the preview div
|
||||
|
||||
//$content.markItUp(); // init markitup
|
||||
// use a simple timer to check if the textarea content has changed
|
||||
var value = $content.val();
|
||||
$preview.html(textile.parse(value));
|
||||
setInterval(function () {
|
||||
var newValue = $content.val();
|
||||
if (value != newValue) {
|
||||
value = newValue;
|
||||
$preview.html(textile.parse(newValue)); // convert the textile to html
|
||||
}
|
||||
}, 500);
|
||||
};
|
||||
|
||||
// use a simple timer to check if the textarea content has changed
|
||||
var value = $content.val();
|
||||
$preview.html(textile.parse(value));
|
||||
setInterval(function () {
|
||||
var newValue = $content.val();
|
||||
if (value != newValue) {
|
||||
value = newValue;
|
||||
$preview.html(textile.parse(newValue)); // convert the textile to html
|
||||
}
|
||||
}, 500);
|
||||
};
|
||||
</script>
|
||||
|
||||
</script>
|
||||
|
||||
<!--
|
||||
<iframe name="TemplatePreview" width="100%" src=""/>
|
||||
-->
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
-10
@@ -4,16 +4,6 @@
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<h2>Phrasen</h2>
|
||||
<!--
|
||||
<form method="post" action="">
|
||||
App: aufnahme
|
||||
<?php
|
||||
// This is an example to show that you can load stuff from inside the template file
|
||||
//echo $this->widgetlib->widget("mimetype_widget", array('mimetype' => $mimetype));
|
||||
?>
|
||||
<button type="submit">Filter</button>
|
||||
</form>
|
||||
-->
|
||||
<table id="t1" class="tablesorter">
|
||||
<thead>
|
||||
<tr><th class='table-sortable:default'>ID</th>
|
||||
@@ -2,6 +2,11 @@
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
// Retrives the URL path of the called controller + controller method
|
||||
// NOTE: placed here because it doesn't work inside functions
|
||||
$calledPath = $this->router->directory.$this->router->class;
|
||||
$calledMethod = $this->router->method;
|
||||
|
||||
// By default set the parameters to null
|
||||
$title = isset($title) ? $title : null;
|
||||
$customCSSs = isset($customCSSs) ? $customCSSs : null;
|
||||
@@ -55,6 +60,27 @@ function _generateCSSsInclude($CSSs)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates global JS-Object to pass parms to other javascripts
|
||||
*/
|
||||
function _generateJSDataStorageObject($calledPath, $calledMethod)
|
||||
{
|
||||
$toPrint = "\n";
|
||||
$toPrint .= '<script type="text/javascript">';
|
||||
$toPrint .= '
|
||||
var FHC_JS_DATA_STORAGE_OBJECT = {
|
||||
app_root: "'.APP_ROOT.'",
|
||||
ci_router: "index.ci.php",
|
||||
called_path: "'.$calledPath.'",
|
||||
called_method: "'.$calledMethod.'"
|
||||
};';
|
||||
$toPrint .= "\n";
|
||||
$toPrint .= '</script>';
|
||||
$toPrint .= "\n\n";
|
||||
|
||||
echo $toPrint;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates tags for the javascripts you want to include, the parameter could by a string or an array of strings
|
||||
*/
|
||||
@@ -78,13 +104,25 @@ function _generateJSsInclude($JSs)
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates global JS-Object to pass parms to addon-js-functions
|
||||
* Generates all the includes needed by the Addons
|
||||
*/
|
||||
function _generateAddonDataStorageObject()
|
||||
function _generateAddonsJSsInclude($calledFrom)
|
||||
{
|
||||
echo '<script type="text/javascript">';
|
||||
echo 'var FHC_ADDON_DATA_STORAGE_OBJECT = {app_root:"'.APP_ROOT.'"};';
|
||||
echo "</script>\n";
|
||||
$aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
|
||||
|
||||
foreach ($aktive_addons as $addon)
|
||||
{
|
||||
$hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
|
||||
if (file_exists($hookfile))
|
||||
{
|
||||
include($hookfile);
|
||||
if (key_exists($calledFrom, $js_hooks))
|
||||
{
|
||||
foreach ($js_hooks[$calledFrom] as $js_file)
|
||||
_generateJSsInclude('addons/'.$addon.'/'.$js_file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -102,16 +140,20 @@ function _generateAddonDataStorageObject()
|
||||
|
||||
// jQuery UI CSS
|
||||
if ($jqueryui === true) _generateCSSsInclude('vendor/components/jqueryui/themes/base/jquery-ui.min.css');
|
||||
|
||||
// bootstrap CSS
|
||||
if ($bootstrap === true) _generateCSSsInclude('vendor/twbs/bootstrap/dist/css/bootstrap.min.css');
|
||||
|
||||
// font awesome CSS
|
||||
if ($fontawesome === true) _generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css');
|
||||
|
||||
// Table sorter CSS
|
||||
if ($tablesorter === true)
|
||||
{
|
||||
_generateCSSsInclude('vendor/mottie/tablesorter/dist/css/theme.default.min.css');
|
||||
_generateCSSsInclude('vendor/mottie/tablesorter/dist/css/jquery.tablesorter.pager.min.css');
|
||||
}
|
||||
|
||||
// sb admin template CSS
|
||||
if ($sbadmintemplate === true)
|
||||
{
|
||||
@@ -125,8 +167,13 @@ function _generateAddonDataStorageObject()
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
// Javascripts
|
||||
|
||||
// Generates the global object to pass useful parms to the other javascripts
|
||||
// NOTE: must be called before any other JS include
|
||||
_generateJSDataStorageObject($calledPath, $calledMethod);
|
||||
|
||||
// JQuery V3
|
||||
if ($jquery === true) _generateJSsInclude('vendor/components/jquery/jquery.min.js');
|
||||
|
||||
// JQuery UI
|
||||
if ($jqueryui === true)
|
||||
{
|
||||
@@ -134,8 +181,10 @@ function _generateAddonDataStorageObject()
|
||||
//datepicker german language file
|
||||
_generateJSsInclude('vendor/components/jqueryui/ui/i18n/datepicker-de.js');
|
||||
}
|
||||
|
||||
// bootstrap JS
|
||||
if ($bootstrap === true) _generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js');
|
||||
|
||||
// Table sorter JS
|
||||
if ($tablesorter === true)
|
||||
{
|
||||
@@ -143,6 +192,7 @@ function _generateAddonDataStorageObject()
|
||||
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/jquery.tablesorter.widgets.min.js');
|
||||
_generateJSsInclude('vendor/mottie/tablesorter/dist/js/extras/jquery.tablesorter.pager.min.js');
|
||||
}
|
||||
|
||||
//tinymce JS
|
||||
if($tinymce === true) _generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js') ;
|
||||
|
||||
@@ -153,27 +203,8 @@ function _generateAddonDataStorageObject()
|
||||
_generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js');
|
||||
}
|
||||
|
||||
// load addon hooks JS
|
||||
if ($addons === true)
|
||||
{
|
||||
_generateAddonDataStorageObject();
|
||||
|
||||
$aktive_addons = array_filter(explode(";", ACTIVE_ADDONS));
|
||||
$called_from = $this->router->directory.$this->router->class.'/'.$this->router->method;
|
||||
foreach ($aktive_addons as $addon)
|
||||
{
|
||||
$hookfile = DOC_ROOT.'addons/'.$addon.'/hooks.config.inc.php';
|
||||
if (file_exists($hookfile))
|
||||
{
|
||||
include($hookfile);
|
||||
if (key_exists($called_from, $js_hooks))
|
||||
{
|
||||
foreach ($js_hooks[$called_from] as $js_file)
|
||||
_generateJSsInclude('addons/'.$addon.'/'.$js_file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Load addon hooks JS
|
||||
if ($addons === true) _generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
|
||||
|
||||
// Eventually required JS
|
||||
_generateJSsInclude($customJSs);
|
||||
|
||||
@@ -8,42 +8,63 @@
|
||||
<br><br>
|
||||
<table style="font-size:small">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><b>Studiengang</b></td>
|
||||
<td>{studiengangbez} {studiengangtypbez} {orgform} {sprache}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Studiensemester</b></td>
|
||||
<td>{studiensemester}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Geschlecht</b></td>
|
||||
<td>{geschlecht}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Vorname</b></td>
|
||||
<td>{vorname}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Nachname</b></td>
|
||||
<td>{nachname}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Geburtsdatum</b></td>
|
||||
<td>{gebdatum}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>E-Mail Adresse</b></td>
|
||||
<td>{mailadresse}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Prestudent ID</b></td>
|
||||
<td>{prestudentid}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b>Anmerkungen zur Bewerbung</b></td>
|
||||
<td>{notizentext}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Studiengang</b></td>
|
||||
<td>{studiengangbez} {studiengangtypbez} {orgform} {sprache}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Studiensemester</b></td>
|
||||
<td>{studiensemester}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Geschlecht</b></td>
|
||||
<td>{geschlecht}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Vorname</b></td>
|
||||
<td>{vorname}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Nachname</b></td>
|
||||
<td>{nachname}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Geburtsdatum</b></td>
|
||||
<td>{gebdatum}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>E-Mail Adresse</b></td>
|
||||
<td>{mailadresse}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Prestudent ID</b></td>
|
||||
<td>{prestudentid}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Zugangsvoraussetzung</b></td>
|
||||
<td>{zgvbez}{zgvort}{zgvnation}{zgvdatum}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b>Erbrachte Dokumente</b></td>
|
||||
<td>
|
||||
{dokumente}
|
||||
{dokument_bezeichnung}
|
||||
{/dokumente}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b>Nachzureichende Dokumente</b></td>
|
||||
<td>
|
||||
{dokumente_nachgereicht}
|
||||
{dokument_bezeichnung}{anmerkung}{nachgereicht_am}
|
||||
<br>
|
||||
{/dokumente_nachgereicht}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><b>Anmerkungen zur Bewerbung</b></td>
|
||||
<td>{notizentext}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
<style>
|
||||
|
||||
.filter-options-span {
|
||||
display: inline-block;
|
||||
width: 130px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.filter-name-title {
|
||||
font-family: inherit;
|
||||
font-size: 16px;
|
||||
@@ -69,26 +75,37 @@
|
||||
|
||||
.select-filter-option {
|
||||
display: inline;
|
||||
width: 90px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#addField {
|
||||
#addField, #customFilterDescription, #addFilter {
|
||||
display: inline;
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
#addFilter {
|
||||
display: inline;
|
||||
width: 400px;
|
||||
width: 535px;
|
||||
}
|
||||
|
||||
#selectedFilters {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#customFilterDescription {
|
||||
display: inline;
|
||||
width: 400px;
|
||||
#applyFilter, #saveCustomFilterButton, .remove-selected-filter {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#applyFilter, #saveCustomFilterButton {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.remove-selected-filter {
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.panel-title {
|
||||
font-weight: bold;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
.remove-field {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -97,7 +114,7 @@
|
||||
function refreshSideMenu()
|
||||
{
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/infocenter/InfoCenter/setNavigationMenuArray'); ?>",
|
||||
url: "<?php echo site_url('system/infocenter/InfoCenter/setNavigationMenuArray'); ?>",
|
||||
method: "GET",
|
||||
data: {}
|
||||
})
|
||||
@@ -115,7 +132,7 @@
|
||||
$(".remove-filter").click(function() {
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/deleteCustomFilter'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/deleteCustomFilter'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
filter_id: $(this).attr('value')
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
if ($("#customFilterDescription").val() != '')
|
||||
{
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/saveFilter'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/saveFilter'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
customFilterDescription: $("#customFilterDescription").val()
|
||||
@@ -30,12 +30,19 @@
|
||||
|
||||
</script>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<span class="filter-options-span">
|
||||
Filter description:
|
||||
</span>
|
||||
<span>
|
||||
Filter description: <input type="text" id="customFilterDescription" value="">
|
||||
<input type="text" id="customFilterDescription" value="">
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input type="button" id="saveCustomFilterButton" value="Save filter">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/sortSelectedFields'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/sortSelectedFields'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
selectedFieldsLst: arrayDndId
|
||||
@@ -106,7 +106,7 @@
|
||||
$("#addField").change(function(event) {
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/addSelectedFields'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/addSelectedFields'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
fieldName: $(this).val()
|
||||
@@ -128,7 +128,7 @@
|
||||
$(".remove-field").click(function(event) {
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/removeSelectedFields'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/removeSelectedFields'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
fieldName: $(this).attr('fieldToRemove')
|
||||
@@ -151,7 +151,7 @@
|
||||
function renderSelectedFields()
|
||||
{
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/selectFields'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/selectFields'); ?>",
|
||||
method: "GET",
|
||||
data: {},
|
||||
dataType: "json"
|
||||
@@ -232,7 +232,7 @@
|
||||
<div id="filterSelectFieldsDnd" class="filter-select-fields-dnd-div"></div>
|
||||
|
||||
<div>
|
||||
<span>
|
||||
<span class="filter-options-span">
|
||||
Add field:
|
||||
</span>
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
$("#addFilter").change(function(event) {
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/addSelectedFilters'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/addSelectedFilters'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
fieldName: $(this).val()
|
||||
@@ -29,28 +29,6 @@
|
||||
|
||||
});
|
||||
|
||||
$(".remove-filter").click(function(event) {
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/removeSelectedFilters'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
fieldName: $(this).attr('filterToRemove')
|
||||
}
|
||||
})
|
||||
.done(function(data, textStatus, jqXHR) {
|
||||
|
||||
resetSelectedFilters();
|
||||
renderSelectedFilters();
|
||||
|
||||
renderTableDataset();
|
||||
|
||||
}).fail(function(jqXHR, textStatus, errorThrown) {
|
||||
alert(textStatus);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(".select-filter-operation").change(function() {
|
||||
|
||||
if ($(this).val() == "set" || $(this).val() == "nset")
|
||||
@@ -92,7 +70,7 @@
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/applyFilter'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/applyFilter'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
filterNames: selectFilterName,
|
||||
@@ -116,6 +94,23 @@
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(".remove-selected-filter").click(function(event) {
|
||||
$.ajax({
|
||||
url: "<?php echo site_url('system/Filters/removeSelectedFilters'); ?>",
|
||||
method: "POST",
|
||||
data: {
|
||||
fieldName: $(this).attr('filterToRemove')
|
||||
}
|
||||
})
|
||||
.done(function(data, textStatus, jqXHR) {
|
||||
resetSelectedFilters();
|
||||
renderSelectedFilters();
|
||||
}).fail(function(jqXHR, textStatus, errorThrown) {
|
||||
alert(textStatus);
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function renderSelectedFilterFields(metaData, activeFilters, activeFiltersOperation, activeFiltersOption)
|
||||
@@ -125,7 +120,7 @@
|
||||
if (metaData.type.toLowerCase().indexOf("int") >= 0)
|
||||
{
|
||||
html = '<span>';
|
||||
html += ' <select class="select-filter-operation form-control">';
|
||||
html += ' <select class="form-control select-filter-operation">';
|
||||
html += ' <option value="equal" ' + (activeFiltersOperation == "equal" ? "selected" : "") + '>equal</option>';
|
||||
html += ' <option value="nequal" ' + (activeFiltersOperation == "nqual" ? "selected" : "") + '>not equal</option>';
|
||||
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
|
||||
@@ -133,37 +128,37 @@
|
||||
html += ' </select>';
|
||||
html += '</span>';
|
||||
html += '<span>';
|
||||
html += ' <input type="number" value="' + activeFilters + '" class="select-filter-operation-value form-control">';
|
||||
html += ' <input type="number" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
|
||||
html += '</span>';
|
||||
}
|
||||
if (metaData.type.toLowerCase().indexOf('varchar') >= 0)
|
||||
if (metaData.type.toLowerCase().indexOf('varchar') >= 0 || metaData.type.toLowerCase() == 'text')
|
||||
{
|
||||
html = '<span>';
|
||||
html += ' <select class="select-filter-operation form-control">';
|
||||
html += ' <select class="form-control select-filter-operation">';
|
||||
html += ' <option value="contains" ' + (activeFiltersOperation == "contains" ? "selected" : "") + '>contains</option>';
|
||||
html += ' <option value="ncontains" ' + (activeFiltersOperation == "ncontains" ? "selected" : "") + '>does not contain</option>';
|
||||
html += ' </select>';
|
||||
html += '</span>';
|
||||
html += '<span>';
|
||||
html += ' <input type="text" value="' + activeFilters + '" class="select-filter-operation-value form-control">';
|
||||
html += ' <input type="text" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
|
||||
html += '</span>';
|
||||
}
|
||||
if (metaData.type.toLowerCase().indexOf('bool') >= 0)
|
||||
{
|
||||
html = '<span>';
|
||||
html += ' <select class="select-filter-operation form-control">';
|
||||
html += ' <select class="form-control select-filter-operation">';
|
||||
html += ' <option value="true" ' + (activeFiltersOperation == "true" ? "selected" : "") + '>is true</option>';
|
||||
html += ' <option value="false" ' + (activeFiltersOperation == "false" ? "selected" : "") + '>is false</option>';
|
||||
html += ' </select>';
|
||||
html += '</span>';
|
||||
html += '<span>';
|
||||
html += ' <input type="hidden" value="' + activeFilters + '" class="select-filter-operation-value form-control">';
|
||||
html += ' <input type="hidden" value="' + activeFilters + '" class="form-control select-filter-operation-value">';
|
||||
html += '</span>';
|
||||
}
|
||||
if (metaData.type.toLowerCase().indexOf('timestamp') >= 0 || metaData.type.toLowerCase().indexOf('date') >= 0)
|
||||
{
|
||||
var classOperation = 'select-filter-operation-value form-control';
|
||||
var classOption = 'select-filter-option form-control';
|
||||
var classOperation = 'form-control select-filter-operation-value';
|
||||
var classOption = 'form-control select-filter-option';
|
||||
var disabled = "";
|
||||
|
||||
if (activeFiltersOperation == "set" || activeFiltersOperation == "nset")
|
||||
@@ -174,7 +169,7 @@
|
||||
}
|
||||
|
||||
html = '<span>';
|
||||
html += ' <select class="select-filter-operation form-control">';
|
||||
html += ' <select class="form-control select-filter-operation">';
|
||||
html += ' <option value="lt" ' + (activeFiltersOperation == "lt" ? "selected" : "") + '>less than</option>';
|
||||
html += ' <option value="gt" ' + (activeFiltersOperation == "gt" ? "selected" : "") + '>greater than</option>';
|
||||
html += ' <option value="set" ' + (activeFiltersOperation == "set" ? "selected" : "") + '>is set</option>';
|
||||
@@ -202,7 +197,7 @@
|
||||
function renderSelectedFilters()
|
||||
{
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/selectFilters'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/selectFilters'); ?>",
|
||||
method: "GET",
|
||||
data: {},
|
||||
dataType: "json"
|
||||
@@ -220,7 +215,7 @@
|
||||
{
|
||||
var selectedFilters = '<div>';
|
||||
|
||||
selectedFilters += '<span>';
|
||||
selectedFilters += '<span class="filter-options-span">';
|
||||
selectedFilters += data.selectedFiltersAliases[i];
|
||||
selectedFilters += '</span>';
|
||||
|
||||
@@ -232,7 +227,7 @@
|
||||
);
|
||||
|
||||
selectedFilters += '<span>';
|
||||
selectedFilters += '<input type="button" value="X" class="remove-filter btn btn-default" filterToRemove="' + data.selectedFilters[i] + '">';
|
||||
selectedFilters += '<input type="button" value="X" class="remove-selected-filter btn btn-default" filterToRemove="' + data.selectedFilters[i] + '">';
|
||||
selectedFilters += '</span>';
|
||||
|
||||
selectedFilters += '</div>';
|
||||
@@ -277,10 +272,12 @@
|
||||
|
||||
</script>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="selectedFilters"></div>
|
||||
|
||||
<div>
|
||||
<span>
|
||||
<span class="filter-options-span">
|
||||
Add filter:
|
||||
</span>
|
||||
|
||||
@@ -289,6 +286,6 @@
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="applyFilter" type="button" value="Apply">
|
||||
<input id="applyFilter" type="button" value="Apply filter">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
function renderTableDataset()
|
||||
{
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Filters/tableDataset'); ?>",
|
||||
url: "<?php echo site_url('system/Filters/tableDataset'); ?>",
|
||||
method: "GET",
|
||||
data: {},
|
||||
dataType: "json"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Navigation/header'); ?>",
|
||||
url: "<?php echo site_url('system/Navigation/header'); ?>",
|
||||
method: "GET",
|
||||
data: {
|
||||
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
function renderSideMenu()
|
||||
{
|
||||
$.ajax({
|
||||
url: "<?php echo base_url('index.ci.php/system/Navigation/menu'); ?>",
|
||||
url: "<?php echo site_url('system/Navigation/menu'); ?>",
|
||||
method: "GET",
|
||||
data: {
|
||||
navigation_widget_called: "<?php echo $this->router->directory.$this->router->class.'/'.$this->router->method; ?>"
|
||||
@@ -114,13 +114,13 @@
|
||||
{
|
||||
var strMenu = '';
|
||||
|
||||
$("#side-menu").html('<li id="collapseicon" class="text-right" style="cursor: pointer; color: #337ab7"><i class="fa fa-angle-double-left fa-fw"></i></li>');
|
||||
printCollapseIcon();
|
||||
|
||||
jQuery.each(data, function(i, e) {
|
||||
strMenu += printNavItem(e);
|
||||
});
|
||||
|
||||
$("#side-menu").append(strMenu);
|
||||
$("#side-menu").html(strMenu);
|
||||
$("#side-menu").metisMenu();
|
||||
}
|
||||
|
||||
@@ -134,23 +134,31 @@
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
renderSideMenu();
|
||||
|
||||
function printCollapseIcon()
|
||||
{
|
||||
// Hiding/showing navigation menu - works only with sb admin 2 template!!
|
||||
if(!$("#collapseicon").length)
|
||||
$("#side-menu").parent().append('<div id="collapseicon" title="hide Menu" class="text-right" style="cursor: pointer; color: #337ab7"><i class="fa fa-angle-double-left fa-fw"></i></div>');
|
||||
|
||||
$("#collapseicon").click(function() {
|
||||
$("#page-wrapper").css('margin-left', '0px');
|
||||
$("#side-menu").hide();
|
||||
$("#collapseicon").hide();
|
||||
$("#collapseinicon").show();
|
||||
});
|
||||
|
||||
$("#collapseinicon").click(function() {
|
||||
$("#page-wrapper").css('margin-left', '250px');
|
||||
$("#side-menu").show();
|
||||
$("#collapseicon").show();
|
||||
$("#collapseinicon").hide();
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
renderSideMenu();
|
||||
|
||||
});
|
||||
|
||||
@@ -160,5 +168,5 @@
|
||||
<div class="sidebar-nav navbar-collapse">
|
||||
<ul class="nav" id="side-menu"></ul>
|
||||
</div>
|
||||
<i id="collapseinicon" class="fa fa-angle-double-right fa-fw"></i>
|
||||
<i id="collapseinicon" title="show Menu" class="fa fa-angle-double-right fa-fw"></i>
|
||||
</div>
|
||||
|
||||
+61
-25
@@ -87,16 +87,62 @@ echo '<!DOCTYPE HTML>
|
||||
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>'.$p->t('mailverteiler/oeffnenEinesVerteilers').'</title>
|
||||
</head>
|
||||
<style>
|
||||
body
|
||||
{
|
||||
width: 95%;
|
||||
margin: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.button_oeffnen
|
||||
{
|
||||
display: block;
|
||||
color: #fff;
|
||||
background-color: #337ab7;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
background-image: none;
|
||||
border-radius: 4px;
|
||||
border: 1px solid transparent;
|
||||
overflow: visible;
|
||||
box-sizing: border-box;
|
||||
text-transform: none;
|
||||
}
|
||||
.button_oeffnen:hover
|
||||
{
|
||||
display: block;
|
||||
color: #fff;
|
||||
background-color: #286090;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
background-image: none;
|
||||
border-radius: 4px;
|
||||
border: 1px solid transparent;
|
||||
overflow: visible;
|
||||
box-sizing: border-box;
|
||||
text-transform: none;
|
||||
}
|
||||
a, a:hover
|
||||
{
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
<body>';
|
||||
|
||||
if (isset($_REQUEST['token']) && isset($_REQUEST['grp']))
|
||||
{
|
||||
echo '
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/mailverteiler').'</font></td>
|
||||
<td class="ContentHeader"><font class="ContentHeader">'.$p->t('mailverteiler/status').'</font></td>
|
||||
</tr>';
|
||||
<h1>'.$p->t('mailverteiler/oeffnenEinesVerteilers').'</h1>';
|
||||
|
||||
/* Generate an random String */
|
||||
$mail_id = mail_id_generator();
|
||||
@@ -116,30 +162,18 @@ if (isset($_REQUEST['token']) && isset($_REQUEST['grp']))
|
||||
fwrite($filet, $message, mb_strlen($message));
|
||||
fclose($filet);
|
||||
|
||||
echo "
|
||||
<tr>
|
||||
<td><a href='mailto:".$_REQUEST['grp'].$mail_id."@".DOMAIN."'>".$db->convert_html_chars($_REQUEST['desc'])."</a></td>
|
||||
<td>".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.")</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2'>
|
||||
<p>".$p->t('mailverteiler/klickenZumSchicken')."</p>
|
||||
|
||||
<p>".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."</p>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
echo '
|
||||
<p>'.$p->t('mailverteiler/geoeffnet',$db->convert_html_chars($_REQUEST['desc'])).'</p>
|
||||
<p><b>Code</b>: '.$mail_id.'<br>
|
||||
<b>Adresse</b>: <a href="mailto:?bcc='.$_REQUEST["grp"].$mail_id.'@'.DOMAIN.'">'.$_REQUEST["grp"].$mail_id.'@'.DOMAIN.'</a></p>
|
||||
<p>'.$p->t('mailverteiler/klickenZumSchicken').'</p>
|
||||
<p>'.$p->t('mailverteiler/infoBenutzung').'</p>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
'.$p->t('mailverteiler/oeffnenFehlgeschlagen').'
|
||||
</td>
|
||||
</tr>';
|
||||
<p class="error">'.$p->t('mailverteiler/oeffnenFehlgeschlagen').'</p>';
|
||||
}
|
||||
echo '</table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -149,7 +183,9 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('mailverteiler/bestaetigeOeffnen',array($_REQUEST['grp']))." : <a href=\"".$_SERVER['SCRIPT_NAME']."?grp=".$_REQUEST['grp']."&desc=".$db->convert_html_chars($_REQUEST['desc'])."&token=1\">".$p->t('mailverteiler/bestaetige')."</a>";
|
||||
echo '<h1>'.$p->t('mailverteiler/oeffnenEinesVerteilers').'</h1>';
|
||||
echo $p->t('mailverteiler/bestaetigeOeffnen').':';
|
||||
echo '<a href="'.$_SERVER['SCRIPT_NAME'].'?grp='.$_REQUEST['grp'].'&desc='.$db->convert_html_chars($_REQUEST['desc']).'&token=1"><button class="button_oeffnen">'.$p->t('mailverteiler/verteilerGenerieren',array($_REQUEST['grp'])).'</button></a>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ $p=new phrasen($sprache);
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
$uid=get_uid();
|
||||
$uid = get_uid();
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
@@ -129,11 +129,11 @@ echo '<!DOCTYPE HTML>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link href="../../../skin/flexcrollstyles.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
@@ -323,7 +323,10 @@ if(!$ansicht && (!defined('CIS_PROFIL_FHAUSWEIS_ANZEIGEN') || CIS_PROFIL_FHAUSWE
|
||||
$bm = new betriebsmittel();
|
||||
if($bm->zutrittskarteAusgegeben($user->uid))
|
||||
{
|
||||
echo '<br>'.$p->t('profil/fhausweisWurdeBereitsAusgegeben');
|
||||
//wenn es mehr Zutrittskarten gab, wird das letzte Ausgabedatum erhalten
|
||||
$ausgegeben_am = $bm->result;
|
||||
$ausgegeben_am = $datum_obj->formatDatum($ausgegeben_am, 'd.m.Y');
|
||||
echo '<br>'.$p->t('profil/fhausweisWurdeBereitsAusgegeben', array($ausgegeben_am));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -275,11 +275,7 @@ function getActualUserAmpelData($user_ampel_arr, $semester_start)
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../../skin/fhcomplete.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/jquery.css" type="text/css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<title><?php echo $p->t('tools/ampelsystem') ?></title>
|
||||
@@ -346,7 +342,7 @@ $(document).ready(function(){
|
||||
<?php
|
||||
//title in CIS
|
||||
if (!$is_popup)
|
||||
echo '<h2>' . $p->t('tools/ampelsystem') . '</h2>';
|
||||
echo '<h3>' . $p->t('tools/ampelsystem') . '</h3>';
|
||||
|
||||
//title in popup for mandatory ampeln
|
||||
if ($is_popup)
|
||||
@@ -402,10 +398,33 @@ $(document).ready(function(){
|
||||
|
||||
$cnt = 1; //counter to set iterative id's
|
||||
$cnt_inactive = 1; //counter to set only one heading line for inactive ampeln
|
||||
$cnt_active = 0;
|
||||
|
||||
//show panel "no actual ampeln" if there are no active ampeln
|
||||
foreach ($user_ampel_arr as $user_ampel)
|
||||
{
|
||||
if ($user_ampel['active'] == true)
|
||||
$cnt_active++;
|
||||
}
|
||||
|
||||
if ($cnt_active == 0)
|
||||
{
|
||||
echo '
|
||||
<div class="panel">
|
||||
<div class="row" style="margin-bottom: 15px; padding-left: 15px;">
|
||||
<div class="panel-heading" style="background-color: transparent" role="tab" id="heading">
|
||||
<h4>' . $p->t('tools/ampelKeineAktuellen'). '</h4>
|
||||
<small>' . $p->t('tools/ampelKeineAktuellenTxt'). '</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
}
|
||||
|
||||
//fill panel with ampeln
|
||||
foreach ($user_ampel_arr as $user_ampel)
|
||||
{
|
||||
|
||||
//use only ampeln that are not overdue
|
||||
if ($user_ampel['show_ampel'] == true)
|
||||
{
|
||||
@@ -416,7 +435,7 @@ $(document).ready(function(){
|
||||
<div class="panel">
|
||||
<div class="row" style="margin-bottom: 15px; padding-left: 15px;">
|
||||
<div class="panel-heading" style="background-color: transparent" role="tab" id="heading">
|
||||
<h3>' . $p->t('tools/ampelAbgelaufenTitel'). '</h3>
|
||||
<h4>' . $p->t('tools/ampelAbgelaufenTitel'). '</h4>
|
||||
<small>' . $p->t('tools/ampelAbgelaufenTxt'). '</small>
|
||||
</div>
|
||||
</div>
|
||||
@@ -428,12 +447,12 @@ $(document).ready(function(){
|
||||
<div class="row" style="margin-bottom: 15px">
|
||||
<div class="panel-heading <?php if ($user_ampel['abgelaufen'] || $user_ampel['bestaetigt']) echo 'text-muted' ?>" style="background-color: transparent" role="tab" id="heading<?php echo $cnt ?>">
|
||||
<div class="col-xs-4">
|
||||
<h4 style="text-decoration: none" class="panel-title">
|
||||
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion"
|
||||
<h5 class="panel-title" style="text-decoration: none; font-size: 14px;">
|
||||
<a class="collapsed" style="text-decoration: none;" role="button" data-toggle="collapse" data-parent="#accordion"
|
||||
href="#collapse<?php echo $cnt ?>" aria-expanded="false" aria-controls="collapse<?php echo $cnt ?>">
|
||||
<?php echo $user_ampel['kurzbz'] ?>
|
||||
</a>
|
||||
</h4>
|
||||
</h5>
|
||||
<small <?php if ($user_ampel['status'] == 'rot' && !$user_ampel['abgelaufen']) echo 'style="color: red; font-weight : bold;"'?>><?php echo $p->t('global/faelligAm') . ' '; echo date('d.m.Y', strtotime($user_ampel['deadline'])) ?></small>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
@@ -465,7 +484,7 @@ $(document).ready(function(){
|
||||
</div>
|
||||
<div id="collapse<?php echo $cnt ?>" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading<?php echo $cnt ?>">
|
||||
<div class="panel-body" style="font-size: 12px;">
|
||||
<?php echo $user_ampel['beschreibung'][$sprache]?>
|
||||
<?php echo $user_ampel['beschreibung'][$sprache] ?>
|
||||
<p><br></p>
|
||||
<form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) . '?ampel_id='. urlencode($user_ampel['ampel_id']) . '&type=bestaetigen'; ?>">
|
||||
<button type="type" type="submit" class="btn btn-default pull-right"
|
||||
|
||||
+63
-17
@@ -196,17 +196,17 @@ function searchOE($searchItems)
|
||||
|
||||
//Suche nach Studiengaengen mit dem Suchbegriff und merge mit $searchItems
|
||||
$stg_oe_array = array();
|
||||
|
||||
$oe = new organisationseinheit();
|
||||
$oe->search($searchItems);
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->search($searchItems);
|
||||
foreach($stg->result as $row)
|
||||
{
|
||||
if($row->aktiv===true)
|
||||
$stg_oe_array[].= $row->oe_kurzbz;
|
||||
$oe->result[] = new organisationseinheit($row->oe_kurzbz);
|
||||
}
|
||||
$searchItems = array_merge_recursive($stg_oe_array,$searchItems);
|
||||
|
||||
$oe = new organisationseinheit();
|
||||
$oe->search($searchItems);
|
||||
|
||||
if(count($oe->result)>0)
|
||||
{
|
||||
@@ -413,6 +413,7 @@ function searchDms($searchItems)
|
||||
<th></th>
|
||||
<th>',$p->t('global/titel'),'</th>
|
||||
<th>',$p->t('tools/aktuelleVersion'),'</th>
|
||||
<th>',$p->t('tools/suchbegriffe'),'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -430,6 +431,7 @@ function searchDms($searchItems)
|
||||
else
|
||||
echo '<td width="20px" height="20px" style="vertical-align:middle;"><img src="../../../skin/images/blank.gif" style="height: 18px; vertical-align:middle;"></td><td height="20px" style="vertical-align:middle;"><a href="../../../cms/dms.php?id='.$row->dms_id.'">',$row->beschreibung,'</a></td>';
|
||||
echo '<td style="vertical-align:middle;">',$row->version,'</td>';
|
||||
echo '<td style="vertical-align:middle;">',$row->schlagworte,'</td>';
|
||||
echo '</tr>';
|
||||
echo "\n";
|
||||
}
|
||||
@@ -442,6 +444,7 @@ function searchDms($searchItems)
|
||||
else
|
||||
echo '<td width="20px" height="20px" style="vertical-align:middle;"><img src="../../../skin/images/blank.gif" style="height: 18px; vertical-align:middle;"></td><td height="20px" style="vertical-align:middle;"><a href="../../../cms/dms.php?id='.$row->dms_id.'">',$row->beschreibung,'</a></td>';
|
||||
echo '<td style="vertical-align:middle;">',$row->version,'</td>';
|
||||
echo '<td style="vertical-align:middle;">',$row->schlagworte,'</td>';
|
||||
echo '</tr>';
|
||||
echo "\n";
|
||||
}
|
||||
@@ -468,6 +471,7 @@ function searchContent($searchItems)
|
||||
}
|
||||
// Jede Sprache getrennt anzeigen aber zuerst die eingestellte Sprache
|
||||
$anzeigesprache='';
|
||||
// var_dump($cms->result);
|
||||
foreach($cms->result as $row)
|
||||
{
|
||||
if ($sprache == $row->sprache)
|
||||
@@ -487,12 +491,33 @@ function searchContent($searchItems)
|
||||
if (in_array($row->content_id, $content_id_arr))
|
||||
continue;
|
||||
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="../../../cms/content.php?content_id=',$db->convert_html_chars($row->content_id),'&sprache=',$db->convert_html_chars($row->sprache),'">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
$preview = findAndMark($row->content, $searchItems);
|
||||
|
||||
echo $preview;
|
||||
echo '<br /><br /></div></li>';
|
||||
// Wenn der Eintrag vom Typ "redirect" ist, checken ob extern verlinkt wird oder nur ein Anker gesetzt ist (erstes Zeichen #)
|
||||
// Externe Links werden so ausgegeben, interne Anker gar nicht
|
||||
if ($row->template_kurzbz == 'redirect')
|
||||
{
|
||||
// URL aus content parsen
|
||||
$dom = new DOMDocument();
|
||||
$dom->loadXML($row->content);
|
||||
$content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
|
||||
|
||||
if (substr($content, 0, 1) == '#')
|
||||
continue;
|
||||
else
|
||||
{
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="'.$content.'" target="blank">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
echo '</div></li>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="../../../cms/content.php?content_id=',$db->convert_html_chars($row->content_id),'&sprache=',$db->convert_html_chars($row->sprache),'">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
$preview = findAndMark($row->content, $searchItems);
|
||||
|
||||
echo $preview;
|
||||
echo '</div></li>';
|
||||
}
|
||||
$content_id_arr[] .= $row->content_id;
|
||||
}
|
||||
}
|
||||
@@ -519,12 +544,33 @@ function searchContent($searchItems)
|
||||
if (in_array($row->content_id, $content_id_arr))
|
||||
continue;
|
||||
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="../../../cms/content.php?content_id=',$db->convert_html_chars($row->content_id),'&sprache=',$db->convert_html_chars($row->sprache),'">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
$preview = findAndMark($row->content, $searchItems);
|
||||
|
||||
echo $preview;
|
||||
echo '<br /><br /></div></li>';
|
||||
// Wenn der Eintrag vom Typ "redirect" ist, checken ob extern verlinkt wird oder nur ein Anker gesetzt ist (erstes Zeichen #)
|
||||
// Externe Links werden so ausgegeben, interne Anker gar nicht
|
||||
if ($row->template_kurzbz == 'redirect')
|
||||
{
|
||||
// URL aus content parsen
|
||||
$dom = new DOMDocument();
|
||||
$dom->loadXML($row->content);
|
||||
$content = $dom->getElementsByTagName('url')->item(0)->nodeValue;
|
||||
|
||||
if (substr($content, 0, 1) == '#')
|
||||
continue;
|
||||
else
|
||||
{
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="'.$content.'" target="blank">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
echo '</div></li>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<li><div class="suchergebnis">';
|
||||
echo '<a href="../../../cms/content.php?content_id=',$db->convert_html_chars($row->content_id),'&sprache=',$db->convert_html_chars($row->sprache),'">',$db->convert_html_chars($row->titel),'</a><br>';
|
||||
$preview = findAndMark($row->content, $searchItems);
|
||||
|
||||
echo $preview;
|
||||
echo '</div></li>';
|
||||
}
|
||||
$content_id_arr[] .= $row->content_id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,12 +91,12 @@ $fieldheadings = array(
|
||||
if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung'))
|
||||
{
|
||||
$za_simple = 0;
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde');
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe');
|
||||
}
|
||||
else
|
||||
{
|
||||
$za_simple = 1;
|
||||
$activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde');
|
||||
$activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe');
|
||||
}
|
||||
|
||||
$activities_str = "'".implode("','", $activities)."'";
|
||||
@@ -1096,6 +1096,8 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$wochensumme='00:00';
|
||||
$extlehrearr=array();
|
||||
$elsumme = '00:00';
|
||||
$ersumme = '00:00';
|
||||
$ersumme_woche = '00:00';
|
||||
$datum_obj = new datum();
|
||||
$tagesbeginn = '';
|
||||
$tagesende = '';
|
||||
@@ -1168,13 +1170,18 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
else
|
||||
$langindex = 2;
|
||||
echo '<b>'.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').'</b> <span id="tag_'.$datum->formatDatum($tag,'d_m_Y').'">'.$zeitsperre_text.'</span>';
|
||||
|
||||
if ($ersumme != '00:00')
|
||||
$erstr = ' (+ '.$ersumme.' ER)';
|
||||
else
|
||||
{
|
||||
$erstr = '';
|
||||
}
|
||||
echo '</td>
|
||||
<td align="right" colspan="2" '.$style.'>
|
||||
<b>'.$p->t("zeitaufzeichnung/arbeitszeit").': '.$datum->formatDatum($tagesbeginn, $format='H:i').'-'.$datum->formatDatum($tagesende, $format='H:i').' '.$p->t("eventkalender/uhr").'</b><br>LehreExtern /
|
||||
'.$p->t("zeitaufzeichnung/pause").' '.($pflichtpause==false?$p->t("zeitaufzeichnung/inklusivePflichtpause"):'').':
|
||||
</td>
|
||||
<td '.$style.' align="right"><b>'.$tagessaldo.'</b><br>'.date('H:i', ($pausesumme-3600)).'</td>
|
||||
<td '.$style.' align="right"><b>'.$tagessaldo.$erstr.'</b><br>'.date('H:i', ($pausesumme-3600)).'</td>
|
||||
<td '.$style.' colspan="3" align="right">';
|
||||
if ($tag > $sperrdatum)
|
||||
echo '<a href="?von_datum='.$datum->formatDatum($tag,'d.m.Y').'&bis_datum='.$datum->formatDatum($tag,'d.m.Y').'" class="item"><-</a>';
|
||||
@@ -1185,6 +1192,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$tagessumme='00:00';
|
||||
$pausesumme='00:00';
|
||||
$elsumme='00:00';
|
||||
$ersumme = '00:00';
|
||||
$extlehrearr = array();
|
||||
$tagesbeginn = '';
|
||||
$tagesende = '';
|
||||
@@ -1202,13 +1210,19 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$woche = $datumwoche;
|
||||
if($woche!=$datumwoche)
|
||||
{
|
||||
if ($ersumme_woche != '00:00')
|
||||
$erstr = ' (+ '.$ersumme_woche.')';
|
||||
else
|
||||
{
|
||||
$erstr = '';
|
||||
}
|
||||
echo '
|
||||
|
||||
|
||||
<tr>
|
||||
<th colspan="'.$colspan.'" style="background-color: #8DBDD8;"></th>
|
||||
<th style="background-color: #8DBDD8;" align="right" colspan="2" style="font-weight: normal;"><b>'.$p->t("zeitaufzeichnung/wochensummeArbeitszeit").':</b></th>
|
||||
<th style="background-color: #8DBDD8;" align="right" style="font-weight: normal;"><b>'.$wochensaldo.'</b></th>
|
||||
<th style="background-color: #8DBDD8;" align="right" style="font-weight: normal;"><b>'.$wochensaldo.$erstr.'</b></th>
|
||||
<th style="background-color: #8DBDD8;" colspan="3"></th>
|
||||
</tr>
|
||||
|
||||
@@ -1230,6 +1244,8 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$tagessumme='00:00';
|
||||
$pausesumme='00:00';
|
||||
$wochensaldo = '00:00';
|
||||
$ersumme = '00:00';
|
||||
$ersumme_woche = '00:00';
|
||||
}
|
||||
if ($row->uid)
|
||||
{
|
||||
@@ -1243,12 +1259,17 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$pflichtpause = true;
|
||||
}
|
||||
}
|
||||
elseif ($row->aktivitaet_kurzbz=='Ersatzruhe')
|
||||
{
|
||||
$ersumme = $datum_obj->sumZeit($ersumme, $row->diff);
|
||||
$ersumme_woche = $datum_obj->sumZeit($ersumme_woche, $row->diff);
|
||||
}
|
||||
else
|
||||
$tagessumme = $datum_obj->sumZeit($tagessumme, $row->diff);
|
||||
$style = '';
|
||||
if ($row->zeitaufzeichnung_id == $zeitaufzeichnung_id)
|
||||
$style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"';
|
||||
if ($row->aktivitaet_kurzbz=='Pause' || $row->aktivitaet_kurzbz=='LehreExtern')
|
||||
if ($row->aktivitaet_kurzbz=='Pause' || $row->aktivitaet_kurzbz=='LehreExtern'|| $row->aktivitaet_kurzbz=='Ersatzruhe')
|
||||
$style .= ' style="color: grey;"';
|
||||
$summe = $row->summe;
|
||||
$service = new service();
|
||||
@@ -1281,10 +1302,10 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo "</td>\n";
|
||||
echo " </tr>\n";
|
||||
|
||||
if (($tagesbeginn=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s')) > $datum->mktime_fromtimestamp($datum->formatDatum($row->start, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern')
|
||||
if (($tagesbeginn=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s')) > $datum->mktime_fromtimestamp($datum->formatDatum($row->start, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe')
|
||||
$tagesbeginn = $row->start;
|
||||
|
||||
if (($tagesende=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s')) < $datum->mktime_fromtimestamp($datum->formatDatum($row->ende, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern')
|
||||
if (($tagesende=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s')) < $datum->mktime_fromtimestamp($datum->formatDatum($row->ende, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe')
|
||||
$tagesende = $row->ende;
|
||||
if ($row->aktivitaet_kurzbz == 'LehreExtern')
|
||||
$extlehrearr[] = array("start"=>$row->start, "ende"=>$row->ende, "diff"=>$row->diff);
|
||||
|
||||
@@ -1938,7 +1938,7 @@ else if ($method == "profil")
|
||||
<td><input type="text" size="40" name="emergency_nachname" value="'.$personEmergency->nachname.'"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'.$p->t('global/strasse').'</td>
|
||||
<td>'.$p->t('global/adresse').'</td>
|
||||
<td><input type="text" size="40" maxlength="256" name="strasse" value="'.$adresse->result[0]->strasse.'"></td>
|
||||
<td>'.$p->t('global/telefon').'</td>
|
||||
<td><input type="text" size="40" name="emergency_telefon" value="'.$emTelefon.'">
|
||||
|
||||
+189
-124
@@ -23,13 +23,15 @@ require_once('../include/functions.inc.php');
|
||||
require_once('../include/dms.class.php');
|
||||
require_once('../include/gruppe.class.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/berechtigung.class.php');
|
||||
require_once('../include/organisationseinheit.class.php');
|
||||
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isberechtigt('basis/dms',null, 'suid', null))
|
||||
die('Sie haben keine Berechtigung diese Seite zu sehen.');
|
||||
if(!$rechte->isberechtigt('basis/dmsAdmin',null, 'suid', null))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$kategorie_kurzbz = isset($_REQUEST['kategorie_kurzbz'])?$_REQUEST['kategorie_kurzbz']:'';
|
||||
|
||||
@@ -49,11 +51,11 @@ $method = isset($_REQUEST['method'])?$_REQUEST['method']:'';
|
||||
<link href="../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<script type="text/javascript" src="../include/tiny_mce/tiny_mce.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript" src="../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
var __js_page_array = new Array();
|
||||
@@ -113,22 +115,21 @@ $method = isset($_REQUEST['method'])?$_REQUEST['method']:'';
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
|
||||
if(isset($_REQUEST['save']))
|
||||
if (isset($_REQUEST['save']))
|
||||
{
|
||||
if($method == 'gruppe')
|
||||
if ($method == 'gruppe')
|
||||
{
|
||||
// Speichert die Gruppenzugehörigkeit
|
||||
if($_REQUEST['kategorie_kurzbz'] != '')
|
||||
if ($_REQUEST['kategorie_kurzbz'] != '')
|
||||
{
|
||||
$dms = new dms();
|
||||
$dms->kategorie_kurzbz = $_REQUEST['kategorie_kurzbz'];
|
||||
$dms->gruppe_kurzbz = $_POST['gruppe_kurzbz'];
|
||||
$dms->insertamum = date('Y-m-d H:i:s');
|
||||
$dms->insertvon = $user;
|
||||
|
||||
if(!$dms->saveGruppeKategorie())
|
||||
echo '<span class="error">'.$dms->errormsg.'</span>';
|
||||
|
||||
if (! $dms->saveGruppeKategorie())
|
||||
echo '<span class="error">' . $dms->errormsg . '</span>';
|
||||
else
|
||||
echo '<span class="ok">Gruppe erfolgreich zugeteilt</span>';
|
||||
}
|
||||
@@ -140,36 +141,39 @@ if(isset($_REQUEST['save']))
|
||||
else
|
||||
{
|
||||
$kategorieSave = new dms();
|
||||
if($_POST['kategorie_kurzbz'] != '')
|
||||
if ($_POST['kategorie_kurzbz'] != '')
|
||||
{
|
||||
// wenn keine auswahl getroffen wurde
|
||||
$kategorie_auswahl = (($_POST['kategorie_parent']=='auswahl')?null:$_POST['kategorie_parent']);
|
||||
|
||||
if($kategorieSave->loadKategorie($_POST['kategorie_kurzbz']))
|
||||
$kategorie_auswahl = (($_POST['kategorie_parent'] == 'auswahl') ? null : $_POST['kategorie_parent']);
|
||||
|
||||
if ($kategorieSave->loadKategorie($_POST['kategorie_kurzbz']))
|
||||
{
|
||||
// Update
|
||||
$kategorieSave->bezeichnung = $_POST['kategorie_bezeichnung'];
|
||||
$kategorieSave->beschreibung =$_POST['kategorie_beschreibung'];
|
||||
$kategorieSave->beschreibung = $_POST['kategorie_beschreibung'];
|
||||
$kategorieSave->berechtigung_kurzbz = $_POST['berechtigung_kurzbz'];
|
||||
$kategorieSave->kategorie_oe_kurzbz = $_POST['oe_kurzbz'];
|
||||
$kategorieSave->parent_kategorie_kurzbz = $kategorie_auswahl;
|
||||
$kategorieSave->new=false;
|
||||
if(!$kategorieSave->saveKategorie())
|
||||
echo '<span class="error">'.$kategorieSave->errormsg.'</span>';
|
||||
$kategorieSave->new = false;
|
||||
if (! $kategorieSave->saveKategorie())
|
||||
echo '<span class="error">' . $kategorieSave->errormsg . '</span>';
|
||||
else
|
||||
echo'<span class="ok">Erfolgreich gespeichert</span>';
|
||||
|
||||
echo '<span class="ok">Erfolgreich gespeichert</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Neu anlegen
|
||||
$kategorieSave->kategorie_kurzbz = $_POST['kategorie_kurzbz'];
|
||||
$kategorieSave->bezeichnung = $_POST['kategorie_bezeichnung'];
|
||||
$kategorieSave->beschreibung =$_POST['kategorie_beschreibung'];
|
||||
$kategorieSave->beschreibung = $_POST['kategorie_beschreibung'];
|
||||
$kategorieSave->berechtigung_kurzbz = $_POST['berechtigung_kurzbz'];
|
||||
$kategorieSave->kategorie_oe_kurzbz = $_POST['oe_kurzbz'];
|
||||
$kategorieSave->parent_kategorie_kurzbz = $kategorie_auswahl;
|
||||
$kategorieSave->new=true;
|
||||
if(!$kategorieSave->saveKategorie())
|
||||
echo '<span class="error">'.$kategorieSave->errormsg.'<span class="error">';
|
||||
$kategorieSave->new = true;
|
||||
if (! $kategorieSave->saveKategorie())
|
||||
echo '<span class="error">' . $kategorieSave->errormsg . '<span class="error">';
|
||||
else
|
||||
echo'<span class="ok">Erfolgreich gespeichert</span>';
|
||||
echo '<span class="ok">Erfolgreich gespeichert</span>';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -178,39 +182,38 @@ if(isset($_REQUEST['save']))
|
||||
}
|
||||
|
||||
// Löscht eine Kategorie
|
||||
if(isset($_REQUEST['delete']))
|
||||
if (isset($_REQUEST['delete']))
|
||||
{
|
||||
|
||||
if($method=='gruppe')
|
||||
|
||||
if ($method == 'gruppe')
|
||||
{
|
||||
$dms = new dms();
|
||||
if(!$dms->deleteGruppe($_REQUEST['kategorie_kurzbz'], $_REQUEST['gruppe_kurzbz']))
|
||||
echo '<span class="error">'.$dms->errormsg.'</span>';
|
||||
if (! $dms->deleteGruppe($_REQUEST['kategorie_kurzbz'], $_REQUEST['gruppe_kurzbz']))
|
||||
echo '<span class="error">' . $dms->errormsg . '</span>';
|
||||
else
|
||||
echo'<span class="ok">Gruppe erfolgreich gelöscht!</span>';
|
||||
|
||||
echo '<span class="ok">Gruppe erfolgreich gelöscht!</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_REQUEST['kategorie_kurzbz']))
|
||||
if (isset($_REQUEST['kategorie_kurzbz']))
|
||||
{
|
||||
$dms = new dms();
|
||||
if(!$dms->deleteKategorie($_REQUEST['kategorie_kurzbz']))
|
||||
echo '<span class="error">'.$dms->errormsg.'</span>';
|
||||
if (! $dms->deleteKategorie($_REQUEST['kategorie_kurzbz']))
|
||||
echo '<span class="error">' . $dms->errormsg . '</span>';
|
||||
else
|
||||
echo '<span class="ok">Erfolgreich gelöscht</span>';
|
||||
}
|
||||
else
|
||||
echo "keine Kategorie übergeben";
|
||||
|
||||
$kategorie_kurzbz ='';
|
||||
|
||||
$kategorie_kurzbz = '';
|
||||
}
|
||||
}
|
||||
//Kategorien anzeigen
|
||||
$dms = new dms();
|
||||
$dms->getKategorie();
|
||||
// Kategorien anzeigen
|
||||
$dms = new dms();
|
||||
$dms->getKategorie();
|
||||
|
||||
echo' <table cellspacing=0 border="0">
|
||||
echo ' <table cellspacing=0 border="0">
|
||||
<tr>
|
||||
<td valign="top" nowrap style="border-right: 1px solid lightblue;border-top: 1px solid lightblue;padding-right:5px">
|
||||
<h3>Kategorie:</h3>
|
||||
@@ -222,19 +225,19 @@ echo' <table cellspacing=0 border="0">
|
||||
<td class="tdwidth10" nowrap> </td>
|
||||
<td> </td>
|
||||
</tr>';
|
||||
drawKategorieMenue($dms->result);
|
||||
echo '
|
||||
drawKategorieMenue($dms->result);
|
||||
echo '
|
||||
<tr><td> </td></tr>
|
||||
<tr><td colspan="2"><a href ="'.$_SERVER['PHP_SELF'].'">Neue Kategorie anlegen</a></td></tr>
|
||||
<tr><td colspan="2"><a href ="' . $_SERVER['PHP_SELF'] . '">Neue Kategorie anlegen</a></td></tr>
|
||||
|
||||
|
||||
</table></td></tr></table>';
|
||||
echo '<script>
|
||||
echo '<script>
|
||||
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
OpenTreeToKategorie("'.$kategorie_kurzbz.'");
|
||||
OpenTreeToKategorie("' . $kategorie_kurzbz . '");
|
||||
});
|
||||
|
||||
//Klappt den Kategoriebaum auf, damit die ausgewaehlte Kategorie sichtbar ist
|
||||
@@ -258,70 +261,111 @@ echo' <table cellspacing=0 border="0">
|
||||
}
|
||||
}
|
||||
</script>';
|
||||
echo '</td>
|
||||
echo '</td>
|
||||
<td valign="top" style="border-top: 1px solid lightblue; width: 100%;">
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?kategorie_kurzbz='.$kategorie_kurzbz.'">Eigenschaften</a> | <a href="'.$_SERVER['PHP_SELF'].'?kategorie_kurzbz='.$kategorie_kurzbz.'&method=gruppe">Gruppen</a><br><br>';
|
||||
<a href="' . $_SERVER['PHP_SELF'] . '?kategorie_kurzbz=' . $kategorie_kurzbz . '">Eigenschaften</a> | <a href="' . $_SERVER['PHP_SELF'] . '?kategorie_kurzbz=' . $kategorie_kurzbz . '&method=gruppe">Gruppen</a><br><br>';
|
||||
|
||||
switch($method)
|
||||
{
|
||||
case 'gruppe':
|
||||
print_rights($kategorie_kurzbz);
|
||||
break;
|
||||
switch ($method)
|
||||
{
|
||||
case 'gruppe':
|
||||
print_rights($kategorie_kurzbz);
|
||||
break;
|
||||
|
||||
default:
|
||||
drawKategorie($kategorie_kurzbz);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
drawKategorie($kategorie_kurzbz);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
echo '
|
||||
echo '
|
||||
</td>
|
||||
</tr>
|
||||
</table>';
|
||||
|
||||
|
||||
function drawKategorie($kategorie_kurzbz)
|
||||
{
|
||||
$kategorie = new dms();
|
||||
$kategorie_beschreibung = '';
|
||||
$kategorie_bezeichnung = '';
|
||||
$disabled='';
|
||||
|
||||
if($kategorie->loadKategorie($kategorie_kurzbz))
|
||||
$disabled = '';
|
||||
$kategorie_berechtigung = '';
|
||||
|
||||
if ($kategorie->loadKategorie($kategorie_kurzbz))
|
||||
{
|
||||
// Formular zum Editieren bestehender Kategorien
|
||||
$kategorie_bezeichnung = $kategorie->bezeichnung;
|
||||
$kategorie_beschreibung = $kategorie->beschreibung;
|
||||
$disabled = 'disabled="true"';
|
||||
$kategorie_berechtigung = $kategorie->berechtigung_kurzbz;
|
||||
$kategorie_oe_kurzbz = $kategorie->kategorie_oe_kurzbz;
|
||||
}
|
||||
|
||||
|
||||
$allKategorien = new dms();
|
||||
$allKategorien->getAllKategories();
|
||||
//var_dump($allKategorien->result);
|
||||
echo ' <form action="'.$_SERVER['PHP_SELF'].'?save" method="POST" name="form_kategorie">
|
||||
$berechtigungen = new berechtigung();
|
||||
$berechtigungen->getBerechtigungen();
|
||||
$organisationseinheiten = new organisationseinheit();
|
||||
$organisationseinheiten->getAll(true, null, 'organisationseinheittyp_kurzbz, bezeichnung');
|
||||
$oe_typ = '';
|
||||
|
||||
// var_dump($allKategorien->result);
|
||||
echo ' <form action="' . $_SERVER['PHP_SELF'] . '?save" method="POST" name="form_kategorie">
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td>Kategorie_kurzbz: </td><td><input type="text" name="kategorie_kurzbz" value="'.$kategorie_kurzbz.'" '.$disabled.' ></td>
|
||||
<td>Kategorie_kurzbz: </td><td><input type="text" name="kategorie_kurzbz" value="' . $kategorie_kurzbz . '" ' . $disabled . ' ></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Kategorie Bezeichnung: </td><td><input type="text" name="kategorie_bezeichnung" value="'.$kategorie_bezeichnung.'"></td>
|
||||
<td>Kategorie Bezeichnung: </td><td><input type="text" name="kategorie_bezeichnung" value="' . $kategorie_bezeichnung . '"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Kategorie Beschreibung: </td><td><textarea name="kategorie_beschreibung" cols="30" rows="3">'.$kategorie_beschreibung.'</textarea></td>
|
||||
<td>Kategorie Beschreibung: </td><td><textarea name="kategorie_beschreibung" cols="30" rows="3" style="font-size: 9pt;">' . $kategorie_beschreibung . '</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Hängt unter: </td><td><select name="kategorie_parent">
|
||||
<option value="auswahl">-- Bitte Auswählen --</option>';
|
||||
foreach($allKategorien->result as $kategorienResult)
|
||||
{
|
||||
$selected ='';
|
||||
if($kategorienResult->kategorie_kurzbz == $kategorie->parent_kategorie_kurzbz )
|
||||
$selected='selected';
|
||||
if($kategorienResult->kategorie_kurzbz != $kategorie->kategorie_kurzbz)
|
||||
echo '<option '.$selected.' value="'.$kategorienResult->kategorie_kurzbz.'">'.$kategorienResult->bezeichnung.' ['.$kategorienResult->kategorie_kurzbz.']</option>';
|
||||
}
|
||||
|
||||
echo' </select>
|
||||
foreach ($allKategorien->result as $kategorienResult)
|
||||
{
|
||||
$selected = '';
|
||||
if ($kategorienResult->kategorie_kurzbz == $kategorie->parent_kategorie_kurzbz)
|
||||
$selected = 'selected';
|
||||
if ($kategorienResult->kategorie_kurzbz != $kategorie->kategorie_kurzbz)
|
||||
echo '<option ' . $selected . ' value="' . $kategorienResult->kategorie_kurzbz . '">' . $kategorienResult->bezeichnung . ' [' . $kategorienResult->kategorie_kurzbz . ']</option>';
|
||||
}
|
||||
echo ' </select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Organisationseinheit: <br>(Upload, Ansicht, Änderungen)</td><td><select name="oe_kurzbz">
|
||||
<option value="">-- Bitte Auswählen --</option>';
|
||||
foreach ($organisationseinheiten->result as $oe)
|
||||
{
|
||||
if ($oe_typ != $oe->organisationseinheittyp_kurzbz || $oe_typ=='')
|
||||
{
|
||||
if ($oe_typ!='')
|
||||
echo '</optgroup>';
|
||||
|
||||
echo '<optgroup label="'.$oe->organisationseinheittyp_kurzbz.'">';
|
||||
}
|
||||
$selected = '';
|
||||
if ($oe->oe_kurzbz == $kategorie_oe_kurzbz)
|
||||
$selected = 'selected';
|
||||
|
||||
echo '<option ' . $selected . ' value="' . $oe->oe_kurzbz . '">'.$oe->organisationseinheittyp_kurzbz.' ' . $oe->bezeichnung . '</option>';
|
||||
$oe_typ = $oe->organisationseinheittyp_kurzbz;
|
||||
}
|
||||
echo ' </select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Berechtigung: <br>(Zugriff auf Kategorie)</td><td><select name="berechtigung_kurzbz">
|
||||
<option value="">-- Bitte Auswählen --</option>';
|
||||
foreach ($berechtigungen->result as $recht)
|
||||
{
|
||||
$selected = '';
|
||||
if ($recht->berechtigung_kurzbz == $kategorie_berechtigung)
|
||||
$selected = 'selected';
|
||||
|
||||
echo '<option ' . $selected . ' value="' . $recht->berechtigung_kurzbz . '">' . $recht->berechtigung_kurzbz . '</option>';
|
||||
}
|
||||
echo ' </select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td> </td></tr>
|
||||
@@ -332,18 +376,18 @@ function drawKategorie($kategorie_kurzbz)
|
||||
</table></form>';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Erstellt den Karteireiter zum Verwalten der Zugriffsrechte auf einen Content
|
||||
* Zu einem Content können Gruppen zugeteilt werden. Diese haben dann zugriff auf den Content
|
||||
* Zu einem Content können Gruppen zugeteilt werden.
|
||||
* Diese haben dann zugriff auf den Content
|
||||
* Wenn keine Gruppen zugeordnet sind, können alle Personen auf den Content zugreifen
|
||||
*/
|
||||
function print_rights($kategorie_kurzbz)
|
||||
{
|
||||
$dms = new dms();
|
||||
$dms->loadGruppenForKategorie($kategorie_kurzbz);
|
||||
|
||||
if(count($dms->result)>0)
|
||||
$gruppen_array = array();
|
||||
if (count($dms->result) > 0)
|
||||
{
|
||||
echo 'Die Mitglieder der folgenden Gruppen dürfen die Seite ansehen:<br><br>';
|
||||
echo '
|
||||
@@ -366,13 +410,14 @@ function print_rights($kategorie_kurzbz)
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
foreach($dms->result as $row)
|
||||
foreach ($dms->result as $row)
|
||||
{
|
||||
$gruppen_array[] = $row->gruppe_kurzbz;
|
||||
echo '<tr>';
|
||||
echo '<td>',$row->gruppe_kurzbz,'</td>';
|
||||
echo '<td>',$row->bezeichnung,'</td>';
|
||||
echo '<td>', $row->gruppe_kurzbz, '</td>';
|
||||
echo '<td>', $row->bezeichnung, '</td>';
|
||||
echo '<td>
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?kategorie_kurzbz='.$kategorie_kurzbz.'&gruppe_kurzbz='.$row->gruppe_kurzbz.'&method=gruppe&delete" title="entfernen">
|
||||
<a href="' . $_SERVER['PHP_SELF'] . '?kategorie_kurzbz=' . $kategorie_kurzbz . '&gruppe_kurzbz=' . $row->gruppe_kurzbz . '&method=gruppe&delete" title="entfernen">
|
||||
<img src="../skin/images/delete_x.png">
|
||||
</a>
|
||||
</td>';
|
||||
@@ -382,22 +427,43 @@ function print_rights($kategorie_kurzbz)
|
||||
}
|
||||
else
|
||||
echo 'Diese Seite darf von allen angezeigt werden!<br><br>';
|
||||
|
||||
|
||||
$gruppe = new gruppe();
|
||||
$gruppe->getgruppe(null, null, null, null, true);
|
||||
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'?kategorie_kurzbz='.$kategorie_kurzbz.'&method=gruppe&save" method="POST">';
|
||||
|
||||
// Sortieren der Gruppen nach kurzbz
|
||||
function sortGruppen($a, $b)
|
||||
{
|
||||
return strcasecmp($a->gruppe_kurzbz, $b->gruppe_kurzbz);
|
||||
}
|
||||
usort($gruppe->result, "sortGruppen");
|
||||
|
||||
// function sortDocuments($a, $b)
|
||||
// {
|
||||
// $c = $a->anzahl_akten_formal_geprueft - $b->anzahl_akten_formal_geprueft;
|
||||
// $c .= $a->anzahl_dokumente_akzeptiert - $b->anzahl_dokumente_akzeptiert;
|
||||
// $c .= $a->anzahl_akten_vorhanden - $b->anzahl_akten_vorhanden;
|
||||
// $c .= $b->pflicht - $a->pflicht;
|
||||
// $c .= strcmp(strtolower($a->bezeichnung_mehrsprachig[getSprache()]), strtolower($b->bezeichnung_mehrsprachig[getSprache()]));
|
||||
// return $c;
|
||||
// }
|
||||
// if ($dokumente_abzugeben)
|
||||
// usort($dokumente_abzugeben, "sortDocuments");
|
||||
|
||||
echo '<form action="' . $_SERVER['PHP_SELF'] . '?kategorie_kurzbz=' . $kategorie_kurzbz . '&method=gruppe&save" method="POST">';
|
||||
echo 'Gruppe <select name="gruppe_kurzbz">';
|
||||
foreach($gruppe->result as $row)
|
||||
foreach ($gruppe->result as $row)
|
||||
{
|
||||
echo '<option value="'.$row->gruppe_kurzbz.'">'.$row->gruppe_kurzbz.'</option>';
|
||||
if (in_array($row->gruppe_kurzbz, $gruppen_array))
|
||||
echo '<option value="' . $row->gruppe_kurzbz . '" disabled="disabled">' . $row->gruppe_kurzbz . ' (' . $row->bezeichnung . ')</option>';
|
||||
else
|
||||
echo '<option value="' . $row->gruppe_kurzbz . '">' . $row->gruppe_kurzbz . ' (' . $row->bezeichnung . ')</option>';
|
||||
}
|
||||
echo '</select>';
|
||||
echo '<input type="submit" value="Hinzufügen" name="addgroup">';
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Zeichnet das Kategorie Menu
|
||||
*
|
||||
@@ -406,40 +472,40 @@ function print_rights($kategorie_kurzbz)
|
||||
function drawKategorieMenue($rows)
|
||||
{
|
||||
global $kategorie_kurzbz;
|
||||
|
||||
//echo '<ul>';
|
||||
foreach($rows as $row)
|
||||
|
||||
// echo '<ul>';
|
||||
foreach ($rows as $row)
|
||||
{
|
||||
if($kategorie_kurzbz==$row->kategorie_kurzbz)
|
||||
$class='marked';
|
||||
if ($kategorie_kurzbz == $row->kategorie_kurzbz)
|
||||
$class = 'marked';
|
||||
else
|
||||
$class='';
|
||||
|
||||
$class = '';
|
||||
|
||||
$dms = new dms();
|
||||
$dms->getKategorie($row->kategorie_kurzbz);
|
||||
|
||||
$delete = '<a href="'.$_SERVER['PHP_SELF'].'?delete&kategorie_kurzbz='.$row->kategorie_kurzbz.'"><img src="../skin/images/cross.png" height="12px" title="Kategorie löschen" /></a>';
|
||||
|
||||
//Suchen, ob eine Sperre fuer diese Kategorie vorhanden ist
|
||||
|
||||
$delete = '<a href="' . $_SERVER['PHP_SELF'] . '?delete&kategorie_kurzbz=' . $row->kategorie_kurzbz . '"><img src="../skin/images/cross.png" height="12px" title="Kategorie löschen" /></a>';
|
||||
|
||||
// Suchen, ob eine Sperre fuer diese Kategorie vorhanden ist
|
||||
$groups = $dms->getLockGroups($row->kategorie_kurzbz);
|
||||
$locked='';
|
||||
if(count($groups)>0)
|
||||
$locked = '';
|
||||
if (count($groups) > 0)
|
||||
{
|
||||
$locked = '<img src="../skin/images/login.gif" height="12px" title="Zugriff nur für Mitglieder folgender Gruppen:';
|
||||
foreach($groups as $group)
|
||||
$locked.=" $group ";
|
||||
$locked.='"/>';
|
||||
foreach ($groups as $group)
|
||||
$locked .= " $group ";
|
||||
$locked .= '"/>';
|
||||
}
|
||||
if(count($dms->result)>0)
|
||||
if (count($dms->result) > 0)
|
||||
{
|
||||
|
||||
|
||||
echo '
|
||||
<tr>
|
||||
<td class="tdwidth10" nowrap> </td>
|
||||
<td class="tdwrap">
|
||||
<a href="'.$_SERVER['PHP_SELF'].'?kategorie_kurzbz='.$row->kategorie_kurzbz.'" class="MenuItem" onClick="js_toggle_container(\''.$row->kategorie_kurzbz.'\');"><img src="../skin/images/menu_item.gif" alt="menu item" width="7" height="9"> <span class="'.$class.'">'.$row->bezeichnung.' </span></a>
|
||||
'.$locked.'
|
||||
<table class="tabcontent" id="'.$row->kategorie_kurzbz.'" style="display: none;">';
|
||||
<a href="' . $_SERVER['PHP_SELF'] . '?kategorie_kurzbz=' . $row->kategorie_kurzbz . '" class="MenuItem" onClick="js_toggle_container(\'' . $row->kategorie_kurzbz . '\');"><img src="../skin/images/menu_item.gif" alt="menu item" width="7" height="9"> <span class="' . $class . '">' . $row->bezeichnung . ' </span></a>
|
||||
' . $locked . '
|
||||
<table class="tabcontent" id="' . $row->kategorie_kurzbz . '" style="display: none;">';
|
||||
drawKategorieMenue($dms->result);
|
||||
echo ' </table>
|
||||
</td>
|
||||
@@ -450,12 +516,11 @@ function drawKategorieMenue($rows)
|
||||
echo '
|
||||
<tr>
|
||||
<td class="tdwidth10" nowrap> </td>
|
||||
<td class="tdwrap"><a id="'.$row->kategorie_kurzbz.'" href="'.$_SERVER['PHP_SELF'].'?kategorie_kurzbz='.$row->kategorie_kurzbz.'" class="Item"><img src="../skin/images/menu_item.gif" alt="menu item" width="7" height="9"> <span class="'.$class.'">'.$row->bezeichnung.' </span></a>'.$delete.$locked.'</td>
|
||||
<td class="tdwrap"><a id="' . $row->kategorie_kurzbz . '" href="' . $_SERVER['PHP_SELF'] . '?kategorie_kurzbz=' . $row->kategorie_kurzbz . '" class="Item"><img src="../skin/images/menu_item.gif" alt="menu item" width="7" height="9"> <span class="' . $class . '">' . $row->bezeichnung . ' </span></a>' . $delete . $locked . '</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
}
|
||||
//echo '</table>';
|
||||
//echo '</ul>';
|
||||
// echo '</table>';
|
||||
// echo '</ul>';
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -106,7 +106,7 @@ class menu_addon_meinelvkompatibel extends menu_addon
|
||||
$stsementry[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache],
|
||||
'target'=>'content',
|
||||
'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stsem,
|
||||
'name'=>$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength, '...')
|
||||
'name'=>CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength, '...')
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -178,7 +178,7 @@ class menu_addon_meinelvkompatibel extends menu_addon
|
||||
$stsementry[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache],
|
||||
'target'=>'content',
|
||||
'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stsem,
|
||||
'name'=>'FF '.$this->CutString($row->lehreverzeichnis, $cutlength, '...')
|
||||
'name'=>'FF '.CutString($row->lehreverzeichnis, $cutlength, '...')
|
||||
);
|
||||
}
|
||||
else
|
||||
@@ -190,7 +190,7 @@ class menu_addon_meinelvkompatibel extends menu_addon
|
||||
$stsementry[] = array('title'=>$lv_obj->bezeichnung_arr[$sprache],
|
||||
'target'=>'content',
|
||||
'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id.'&studiensemester_kurzbz='.$stsem,
|
||||
'name'=>$this->CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength, '...')
|
||||
'name'=>CutString($lv_obj->bezeichnung_arr[$sprache], $cutlength, '...')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+1494
-1020
File diff suppressed because it is too large
Load Diff
@@ -229,7 +229,7 @@ if (isset($_GET['excel']))
|
||||
$maxlength[$i] = 3;
|
||||
|
||||
//Tabellenzeilen
|
||||
$stgs = $rechte->getStgKz();
|
||||
$stgs = $rechte->getStgKz('assistenz');
|
||||
|
||||
if ($stgs[0] == '')
|
||||
$stgwhere = '';
|
||||
@@ -756,7 +756,7 @@ if (isset($_GET['excel']))
|
||||
//zweites Blatt mit Statistik des Vorjahres zum gleichen Datum
|
||||
if (!$mail)
|
||||
{
|
||||
$stgs = $rechte->getStgKz();
|
||||
$stgs = $rechte->getStgKz('assistenz');
|
||||
|
||||
if ($stgs[0] == '')
|
||||
$stgwhere = '';
|
||||
@@ -824,7 +824,12 @@ if (isset($_GET['excel']))
|
||||
person_id=tbl_prestudent.person_id
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
|
||||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||||
AND anmeldungreihungstest<=".$db->db_add_param($datum)."
|
||||
AND (
|
||||
anmeldedatum<=".$db->db_add_param($datum)."
|
||||
OR
|
||||
(anmeldedatum is null
|
||||
AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
|
||||
)
|
||||
)
|
||||
) AS interessentenrtanmeldung,
|
||||
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
|
||||
@@ -841,7 +846,11 @@ if (isset($_GET['excel']))
|
||||
person_id=tbl_prestudent.person_id
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
|
||||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||||
AND anmeldungreihungstest<=".$db->db_add_param($datum)."
|
||||
AND (anmeldedatum<=".$db->db_add_param($datum)."
|
||||
OR
|
||||
(anmeldedatum is null
|
||||
AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
|
||||
)
|
||||
)
|
||||
) AS interessentenrtanmeldung_m,
|
||||
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
|
||||
@@ -858,7 +867,11 @@ if (isset($_GET['excel']))
|
||||
person_id=tbl_prestudent.person_id
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
|
||||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||||
AND anmeldungreihungstest<=".$db->db_add_param($datum)."
|
||||
AND (anmeldedatum<=".$db->db_add_param($datum)."
|
||||
OR
|
||||
(anmeldedatum is null
|
||||
AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
|
||||
)
|
||||
)
|
||||
) AS interessentenrtanmeldung_w,
|
||||
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
@@ -1451,7 +1464,7 @@ else
|
||||
{
|
||||
if (!$mail)
|
||||
{
|
||||
$stgs = $rechte->getStgKz();
|
||||
$stgs = $rechte->getStgKz('assistenz');
|
||||
|
||||
if ($stgs[0] == '')
|
||||
$stgwhere = '';
|
||||
@@ -1838,7 +1851,7 @@ else
|
||||
// Bewerberstatistik fuer Vorjahr (selbes Datum)
|
||||
if (!$mail)
|
||||
{
|
||||
$stgs = $rechte->getStgKz();
|
||||
$stgs = $rechte->getStgKz('assistenz');
|
||||
|
||||
if ($stgs[0] == '')
|
||||
$stgwhere = '';
|
||||
@@ -1908,7 +1921,11 @@ else
|
||||
person_id=tbl_prestudent.person_id
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
|
||||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||||
AND anmeldungreihungstest<=".$db->db_add_param($datum)."
|
||||
AND (anmeldedatum<=".$db->db_add_param($datum)."
|
||||
OR
|
||||
(anmeldedatum is null
|
||||
AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
|
||||
)
|
||||
)
|
||||
) AS interessentenrtanmeldung,
|
||||
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
|
||||
@@ -1925,7 +1942,11 @@ else
|
||||
person_id=tbl_prestudent.person_id
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
|
||||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||||
AND anmeldungreihungstest<=".$db->db_add_param($datum)."
|
||||
AND (anmeldedatum<=".$db->db_add_param($datum)."
|
||||
OR
|
||||
(anmeldedatum is null
|
||||
AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
|
||||
)
|
||||
)
|
||||
) AS interessentenrtanmeldung_m,
|
||||
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id)
|
||||
@@ -1942,7 +1963,11 @@ else
|
||||
person_id=tbl_prestudent.person_id
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz
|
||||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||||
AND anmeldungreihungstest<=".$db->db_add_param($datum)."
|
||||
AND (anmeldedatum<=".$db->db_add_param($datum)."
|
||||
OR
|
||||
(anmeldedatum is null
|
||||
AND tbl_rt_person.insertamum<=".$db->db_add_param($datum).")
|
||||
)
|
||||
)
|
||||
) AS interessentenrtanmeldung_w,
|
||||
|
||||
@@ -2208,7 +2233,7 @@ function generateMischformenQuery($orgform_arr, $stsem, $ausgeschieden, $stgwher
|
||||
|
||||
foreach ($orgform_arr as $row_orgform)
|
||||
{
|
||||
$qry .= " (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
$qry .= " (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz=".$db->db_add_param($stsem)."
|
||||
AND orgform_kurzbz=".$db->db_add_param($row_orgform).") AS interessenten_".$row_orgform.",";
|
||||
$qry .= " (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
|
||||
@@ -475,7 +475,7 @@ if($result_stg = $db->db_query($qry_stg))
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
$qry = "SELECT
|
||||
studiensemester_kurzbz, nachname, vorname, sum(stunden) AS stunden, titelpre,
|
||||
sum(tbl_projektbetreuer.stundensatz*stunden*tbl_projektbetreuer.faktor)::numeric(6,2) AS euro, person_id
|
||||
sum(tbl_projektbetreuer.stundensatz*stunden*tbl_projektbetreuer.faktor)::numeric(8,2) AS euro, person_id
|
||||
FROM
|
||||
public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id)
|
||||
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
|
||||
@@ -496,7 +496,7 @@ if($result_stg = $db->db_query($qry_stg))
|
||||
";
|
||||
$i=0;
|
||||
$gesamtkosten=0;
|
||||
|
||||
|
||||
$worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' Betreuerstunden', $format_bold);
|
||||
//Ueberschriften
|
||||
//$worksheet->write(2,$i,"Studiengang", $format_bold);
|
||||
|
||||
@@ -53,7 +53,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<hbox flex="1">
|
||||
<groupbox flex="1">
|
||||
<groupbox flex="2">
|
||||
<caption label="Nicht Akzeptiert"/>
|
||||
<tree id="interessent-dokumente-tree-nichtabgegeben" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/dokument/liste"
|
||||
@@ -64,55 +64,55 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
context="interessent-dokumente-tree-nichtabgegeben-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-bezeichnung" label="Dokument" flex="1" primary="false"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-bezeichnung" label="Dokument" flex="6" primary="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#bezeichnung" onclick="InteressentDokumenteNichtAbgegebenTreeSort()" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz" label="Kurzbezeichnung" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz" label="Kurzbezeichnung" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#dokument_kurzbz" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-datum" label="Datum" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-datum" label="Datum" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#datum" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-datumhochgeladen" label="Upload Datum" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-datumhochgeladen" label="Uploaddatum" flex="2" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#datumhochgeladen" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-nachgereicht" label="Nachgereicht" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-nachgereicht" label="Nachgereicht" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-infotext" label="Infotext" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-vorhanden" label="Vorhanden" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#vorhanden" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-infotext" label="Infotext" flex="6" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#infotext" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-vorhanden" label="vorhanden" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#vorhanden" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-akte_id" label="akte_id" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-akte_id" label="Akte ID" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#akte_id" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-titel_intern" label="titel_intern" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-titel_intern" label="Titel" flex="6" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#titel_intern" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-anmerkung_intern" label="anmerkung_intern" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-anmerkung_intern" label="Anmerkung intern" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#anmerkung_intern" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-onlinebewerbung" label="onlinebewerbung" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-onlinebewerbung" label="Online" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#onlinebewerbung" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-pflicht" label="pflicht" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-pflicht" label="Pflicht" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#pflicht" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-nachgereicht_am" label="Nachreichung Am" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-nachgereicht_am" label="Nachreichung Am" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht_am" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -128,8 +128,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#datum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#datumhochgeladen" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht" />
|
||||
<treecell src="../skin/images/rdf:http://www.technikum-wien.at/dokument/rdf#vorhanden^.png" label="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht_am" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#infotext" />
|
||||
<treecell src="../skin/images/rdf:http://www.technikum-wien.at/dokument/rdf#vorhanden^.png"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#akte_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#titel_intern" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#anmerkung_intern" />
|
||||
@@ -156,7 +156,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<spaver flex="4" />
|
||||
</vbox>
|
||||
|
||||
<groupbox flex="3">
|
||||
<groupbox flex="2">
|
||||
<caption label="Akzeptiert"/>
|
||||
<tree id="interessent-dokumente-tree-abgegeben" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/dokumentprestudent/liste"
|
||||
@@ -168,10 +168,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-bezeichnung" label="Dokument" flex="1" primary="false"
|
||||
class="sortDirectionIndicator"
|
||||
class="sortDirectionIndicator" sortActive="true" sortDirection="ascending"
|
||||
sort="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#bezeichnung" onclick="InteressentDokumenteAbgegebenTreeSort()" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-datum" label="Datum" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-datum" label="Akzeptiertdatum" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#datum_iso" onclick="InteressentDokumenteAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -179,7 +179,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#datumhochgeladen" onclick="InteressentDokumenteAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-mitarbeiter_uid" label="akzeptiert von" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-mitarbeiter_uid" label="Akzeptiert von" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#mitarbeiter_uid" onclick="InteressentDokumenteAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -195,15 +195,11 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#nachgereicht" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-infotext" label="Infotext" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-infotext" label="Infotext" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#infotext" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-vorhanden" label="vorhanden" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#vorhanden" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-akte_id" label="akte_id" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-akte_id" label="Akte ID" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#akte_id" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -211,7 +207,11 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#titel_intern" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-anmerkung_intern" label="anmerkung_intern" flex="1" hidden="true"
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-vorhanden" label="Vorhanden" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#vorhanden" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-abgegeben-anmerkung_intern" label="Anmerkung intern" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#anmerkung_intern" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
@@ -234,9 +234,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#prestudent_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#nachgereicht" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#infotext" />
|
||||
<treecell src="../skin/images/rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#vorhanden^.png"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#akte_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#titel_intern" />
|
||||
<treecell src="../skin/images/rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#vorhanden^.png"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#anmerkung_intern" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokumentprestudent/rdf#nachgereicht_am" />
|
||||
</treerow>
|
||||
|
||||
@@ -2199,6 +2199,8 @@ if(!$error)
|
||||
$akte->anmerkung_intern = $_POST['anmerkung_intern'];
|
||||
$akte->titel_intern = $_POST['titel_intern'];
|
||||
$akte->dokument_kurzbz = $_POST['dokument_kurzbz'];
|
||||
$akte->updateamum = date('Y-m-d H:i:s');
|
||||
$akte->updatevon = $user;
|
||||
|
||||
if(!$akte->save())
|
||||
{
|
||||
@@ -2251,6 +2253,29 @@ if(!$error)
|
||||
$error=true;
|
||||
$errormsg='Fehler beim Loeschen des Dokuments';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Log schreiben
|
||||
$logdata_dms = (array)$dms;
|
||||
$logdata = var_export($logdata_dms, true);
|
||||
$log = new log();
|
||||
$log->executetime = date('Y-m-d H:i:s');
|
||||
$log->mitarbeiter_uid = $user;
|
||||
$log->beschreibung = "Löschen der DMS_ID ".$akte->dms_id;
|
||||
$log->sql = 'LogData:'.$logdata;
|
||||
$log->sqlundo = '';
|
||||
$log->save(true);
|
||||
}
|
||||
// Log schreiben
|
||||
$logdata_akte = (array)$akte;
|
||||
$logdata = var_export($logdata_akte, true);
|
||||
$log = new log();
|
||||
$log->executetime = date('Y-m-d H:i:s');
|
||||
$log->mitarbeiter_uid = $user;
|
||||
$log->beschreibung = "Löschen der Akte '".$akte->dokument_kurzbz."' ID '".$akte_id."'";
|
||||
$log->sql = 'DELETE FROM public.tbl_akte WHERE akte_id='.$db->db_add_param($akte_id, FHC_INTEGER).'; LogData:'.$logdata;
|
||||
$log->sqlundo = '';
|
||||
$log->save(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -52,8 +52,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<vbox hidden="true">
|
||||
<label value="Neu"/>
|
||||
<checkbox id="student-detail-checkbox-new" checked="true" />
|
||||
<label value="Person_id"/>
|
||||
<textbox id="student-detail-textbox-person_id" disabled="true"/>
|
||||
</vbox>
|
||||
<vbox flex="1">
|
||||
<groupbox id="student-detail-groupbox-person">
|
||||
@@ -68,6 +66,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="Person ID" control="student-detail-textbox-person_id"/>
|
||||
<hbox><textbox id="student-detail-textbox-person_id" readonly="true" maxlength="16" size="16"/></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anrede" control="student-detail-textbox-anrede"/>
|
||||
<hbox><textbox id="student-detail-textbox-anrede" disabled="true" maxlength="16" size="16"/></hbox>
|
||||
@@ -534,7 +536,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#bestaetigt_Am" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-prestudent-tree-rolle-bewerbung_abgeschicktamum" label="AbgeschicktAm" flex="1" hidden="true" persist="hidden, width, ordinal"
|
||||
<treecol id="student-prestudent-tree-rolle-bewerbung_abgeschicktamum" label="AbgeschicktAm" flex="1" hidden="false" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/prestudentrolle/rdf#bewerbung_abgeschicktamum" />
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
@@ -133,10 +133,14 @@ else
|
||||
echo '<menuitem id="'.$id.'" label="'.$label.'" oncommand="'.$command.'" disabled="false" tooltiptext="Status ändern auf '.$status_kurzbz.'" hidden="true"/>';
|
||||
}
|
||||
}
|
||||
function sortGruende($a, $b)
|
||||
{
|
||||
return strcasecmp($a['bezeichnung'], $b['bezeichnung']);
|
||||
}
|
||||
// Statusgruende laden
|
||||
$statusgrund = new statusgrund();
|
||||
$statusgrund->getAll(true);
|
||||
$gruende=array();
|
||||
$gruende = array();
|
||||
foreach($statusgrund->result as $row)
|
||||
{
|
||||
$gruende[$row->status_kurzbz][] = array(
|
||||
@@ -144,6 +148,7 @@ else
|
||||
'bezeichnung'=>$row->bezeichnung_mehrsprachig[DEFAULT_LANGUAGE],
|
||||
'beschreibung'=>$row->beschreibung[DEFAULT_LANGUAGE]
|
||||
);
|
||||
usort($gruende[$row->status_kurzbz], "sortGruende");
|
||||
}
|
||||
|
||||
printStatuswechselMenuitem($gruende, 'Abbrecher', 'student-toolbar-abbrecher', 'Abbrecher', "StudentAddRolle('Abbrecher','0',undefined,'STATUSGRUNDID')");
|
||||
|
||||
@@ -650,7 +650,7 @@ class benutzerberechtigung extends basis_db
|
||||
|
||||
foreach ($this->berechtigungen as $b)
|
||||
{
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
|
||||
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
|
||||
{
|
||||
if($b->negativ)
|
||||
@@ -671,7 +671,9 @@ class benutzerberechtigung extends basis_db
|
||||
{
|
||||
$childoes = $oe->getChilds($b->oe_kurzbz);
|
||||
foreach($childoes as $row)
|
||||
{
|
||||
$in .= "'".$this->db_escape($row)."',";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -728,7 +730,7 @@ class benutzerberechtigung extends basis_db
|
||||
|
||||
foreach ($this->berechtigungen as $b)
|
||||
{
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
|
||||
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
|
||||
{
|
||||
if($b->negativ)
|
||||
@@ -801,7 +803,7 @@ class benutzerberechtigung extends basis_db
|
||||
$oe = new organisationseinheit();
|
||||
foreach ($this->berechtigungen as $b)
|
||||
{
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
|
||||
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
|
||||
{
|
||||
if($b->negativ)
|
||||
@@ -828,9 +830,9 @@ class benutzerberechtigung extends basis_db
|
||||
{
|
||||
if(!is_null($b->oe_kurzbz))
|
||||
{
|
||||
$childoes = $oe->getChilds($b->oe_kurzbz);
|
||||
foreach($childoes as $row)
|
||||
$oe_kurzbz[] = $row;
|
||||
$childoes = $oe->getChilds($b->oe_kurzbz);
|
||||
foreach($childoes as $row)
|
||||
$oe_kurzbz[] = $row;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -874,7 +876,7 @@ class benutzerberechtigung extends basis_db
|
||||
if(!mb_strstr($b->berechtigung_kurzbz,'wawi/'))
|
||||
continue;
|
||||
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz)
|
||||
if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || (mb_strpos($berechtigung_kurzbz,':')!==false && mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz))
|
||||
&& (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null)))
|
||||
{
|
||||
if($b->negativ)
|
||||
@@ -1065,6 +1067,7 @@ class benutzerberechtigung extends basis_db
|
||||
*
|
||||
* @param string $berechtigung_kurzbz Kurzbezeichnung der Berechtigung, deren Rollen geladen werden sollen
|
||||
* @param boolean $inklusiveRollen Default TRUE. Wenn true, wird ein UNION SELECT mit der tbl_rolleberechtigung ausgefuehrt
|
||||
* @param string $oe_kurzbz Organisationseinheit
|
||||
* @return boolean true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true, $oe_kurzbz = null)
|
||||
@@ -1073,6 +1076,7 @@ class benutzerberechtigung extends basis_db
|
||||
benutzerberechtigung_id,
|
||||
rolle_kurzbz,
|
||||
funktion_kurzbz,
|
||||
oe_kurzbz,
|
||||
uid,
|
||||
art,
|
||||
berechtigung_kurzbz,
|
||||
@@ -1095,6 +1099,7 @@ class benutzerberechtigung extends basis_db
|
||||
rolle_kurzbz,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
art,
|
||||
berechtigung_kurzbz,
|
||||
NULL,
|
||||
@@ -1118,6 +1123,7 @@ class benutzerberechtigung extends basis_db
|
||||
$obj->uid = $row->uid;
|
||||
$obj->funktion_kurzbz = $row->funktion_kurzbz;
|
||||
$obj->art = $row->art;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
|
||||
|
||||
+1458
-1445
File diff suppressed because it is too large
Load Diff
@@ -1279,7 +1279,7 @@ class content extends basis_db
|
||||
public function search($searchItems, $limit=null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, 1 AS sort
|
||||
distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, template_kurzbz, 1 AS sort
|
||||
FROM
|
||||
campus.tbl_contentsprache
|
||||
JOIN campus.tbl_content USING(content_id)
|
||||
@@ -1298,7 +1298,7 @@ class content extends basis_db
|
||||
";
|
||||
}
|
||||
$qry .= " UNION SELECT
|
||||
distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, 2 AS sort
|
||||
distinct on(content_id,sprache,version) content_id, content::text, titel, sprache, version, template_kurzbz, 2 AS sort
|
||||
FROM
|
||||
campus.tbl_contentsprache
|
||||
JOIN campus.tbl_content USING(content_id)
|
||||
@@ -1333,6 +1333,7 @@ class content extends basis_db
|
||||
$obj->titel = $row->titel;
|
||||
$obj->sprache = $row->sprache;
|
||||
$obj->version = $row->version;
|
||||
$obj->template_kurzbz = $row->template_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
+195
-119
@@ -46,7 +46,10 @@ class dms extends basis_db
|
||||
public $updateamum;
|
||||
public $updatevon;
|
||||
public $kategorie_kurzbz_old;
|
||||
|
||||
public $cis_suche = false;
|
||||
public $schlagworte;
|
||||
public $kategorie_oe_kurzbz;
|
||||
public $berechtigung_kurzbz;
|
||||
public $bezeichnung;
|
||||
|
||||
/**
|
||||
@@ -92,6 +95,8 @@ class dms extends basis_db
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$this->schlagworte = $row->schlagworte;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -143,7 +148,7 @@ class dms extends basis_db
|
||||
|
||||
$qry.="INSERT INTO campus.tbl_dms_version(dms_id, version,
|
||||
filename, mimetype, name, beschreibung, letzterzugriff, insertamum, insertvon,
|
||||
updateamum, updatevon) VALUES(".
|
||||
updateamum, updatevon, cis_suche, schlagworte) VALUES(".
|
||||
$dms_id.','.
|
||||
$this->db_add_param($this->version, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->filename).','.
|
||||
@@ -154,7 +159,9 @@ class dms extends basis_db
|
||||
$this->db_add_param($this->insertamum).','.
|
||||
$this->db_add_param($this->insertvon).','.
|
||||
$this->db_add_param($this->updateamum).','.
|
||||
$this->db_add_param($this->updatevon).');';
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->cis_suche, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->schlagworte).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -170,7 +177,9 @@ class dms extends basis_db
|
||||
" beschreibung=".$this->db_add_param($this->beschreibung).",".
|
||||
" letzterzugriff=".$this->db_add_param($this->letzterzugriff).",".
|
||||
" updateamum=".$this->db_add_param($this->updateamum).",".
|
||||
" updatevon=".$this->db_add_param($this->updatevon).
|
||||
" updatevon=".$this->db_add_param($this->updatevon).",".
|
||||
" cis_suche=".$this->db_add_param($this->cis_suche, FHC_BOOLEAN).",".
|
||||
" schlagworte=".$this->db_add_param($this->schlagworte).
|
||||
" WHERE dms_id=".$this->db_add_param($this->dms_id,FHC_INTEGER)." AND version=".$this->db_add_param($this->version, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
@@ -214,96 +223,98 @@ class dms extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht einen DMS Eintrag mit übergebener ID und Version
|
||||
* Wird die letzte Version eines Eintrages gelöscht, wird automatisch der Eintrag mitgelöscht
|
||||
* @param $dms_id
|
||||
* @param $version
|
||||
*/
|
||||
public function deleteVersion($dms_id, $version)
|
||||
{
|
||||
$dms = new dms();
|
||||
$dms->load($dms_id, $version);
|
||||
|
||||
$qry ="DELETE FROM campus.tbl_dms_version WHERE dms_id = ".$this->db_add_param($dms_id, FHC_INTEGER)." and version =".$this->db_add_param($version, FHC_INTEGER).';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$qry_anzahl ="SELECT 1 FROM campus.tbl_dms_version WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER).';';
|
||||
if($result = $this->db_query($qry_anzahl))
|
||||
{
|
||||
// File der Version im Filesystem löschen
|
||||
if(is_file(DMS_PATH.$dms->filename) && !unlink(DMS_PATH.$dms->filename))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
// Wenn letzte Version gelöscht wurde -> lösche gesamten Eintrag
|
||||
if($this->db_num_rows($result) == 0 )
|
||||
{
|
||||
if(!$this->deleteDms($dms_id))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Löschen aufgetreten";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg="Fehler beim Löschen der Version aufgetreten";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Löscht einen DMS Eintrag mit übergebener ID und Version
|
||||
* Wird die letzte Version eines Eintrages gelöscht, wird automatisch der Eintrag mitgelöscht
|
||||
*
|
||||
* @param $dms_id
|
||||
* @param $version
|
||||
*/
|
||||
public function deleteVersion($dms_id, $version)
|
||||
{
|
||||
$dms = new dms();
|
||||
$dms->load($dms_id, $version);
|
||||
|
||||
$qry = "DELETE FROM campus.tbl_dms_version WHERE dms_id = " . $this->db_add_param($dms_id, FHC_INTEGER) . " and version =" . $this->db_add_param($version, FHC_INTEGER) . ';';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
$qry_anzahl = "SELECT 1 FROM campus.tbl_dms_version WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . ';';
|
||||
if ($result = $this->db_query($qry_anzahl))
|
||||
{
|
||||
// File der Version im Filesystem löschen
|
||||
if (is_file(DMS_PATH . $dms->filename) && ! unlink(DMS_PATH . $dms->filename))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
// Wenn letzte Version gelöscht wurde -> lösche gesamten Eintrag
|
||||
if ($this->db_num_rows($result) == 0)
|
||||
{
|
||||
if (! $this->deleteDms($dms_id))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Löschen aufgetreten";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Löschen der Version aufgetreten";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht einen gesamten DMS Eintrag inklusive aller Versionen und Projekteinträge
|
||||
*
|
||||
* @param $dms_id
|
||||
*/
|
||||
public function deleteDms($dms_id)
|
||||
{
|
||||
$this->load($dms_id);
|
||||
$this->getAllVersions($dms_id);
|
||||
$error = false;
|
||||
|
||||
// lösche Versionen
|
||||
$qry = "BEGIN;DELETE FROM campus.tbl_dms_version WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . "; ";
|
||||
$qry .= "DELETE FROM fue.tbl_projekt_dokument WHERE dms_id=" . $this->db_add_param($dms_id, FHC_INTEGER) . "; ";
|
||||
$qry .= "DELETE FROM campus.tbl_dms WHERE dms_id =" . $this->db_add_param($dms_id, FHC_INTEGER) . ";";
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
$this->db_query('COMMIT;');
|
||||
|
||||
// Alle Versionen der Datei im Filesystem löschen
|
||||
foreach ($this->result as $obj)
|
||||
{
|
||||
if (is_file(DMS_PATH . $obj->filename) && ! unlink(DMS_PATH . $obj->filename))
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if ($error)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->errormsg = "Fehler beim Löschen des Eintrages aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht einen gesamten DMS Eintrag inklusive aller Versionen und Projekteinträge
|
||||
* @param $dms_id
|
||||
*/
|
||||
public function deleteDms($dms_id)
|
||||
{
|
||||
$this->load($dms_id);
|
||||
$this->getAllVersions($dms_id);
|
||||
$error = false;
|
||||
|
||||
// lösche Versionen
|
||||
$qry ="BEGIN;DELETE FROM campus.tbl_dms_version WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER)."; ";
|
||||
$qry.="DELETE FROM fue.tbl_projekt_dokument WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER)."; ";
|
||||
$qry.="DELETE FROM campus.tbl_dms WHERE dms_id =".$this->db_add_param($dms_id, FHC_INTEGER).";";
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$this->db_query('COMMIT;');
|
||||
|
||||
// Alle Versionen der Datei im Filesystem löschen
|
||||
foreach($this->result as $obj)
|
||||
{
|
||||
if(is_file(DMS_PATH.$obj->filename) && !unlink(DMS_PATH.$obj->filename))
|
||||
$error = true;
|
||||
}
|
||||
|
||||
if($error)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Löschen des Dokuments aufgetreten";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->errormsg = "Fehler beim Löschen des Eintrages aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Setzt die Zeit des letzten Zugriffs auf die Datei
|
||||
*
|
||||
* @param $dms_id
|
||||
@@ -339,16 +350,16 @@ class dms extends basis_db
|
||||
if($this->db_num_rows($result) == 0 )
|
||||
{
|
||||
$qry ="BEGIN; DELETE FROM campus.tbl_dms_kategorie_gruppe where kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).";
|
||||
DELETE FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).';';
|
||||
DELETE FROM campus.tbl_dms_kategorie WHERE kategorie_kurzbz =".$this->db_add_param($kategorie_kurzbz, FHC_STRING).';';
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$this->db_query('COMMIT;');
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen der Daten'."\n";
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->db_query('ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -489,11 +500,13 @@ class dms extends basis_db
|
||||
if($new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
$qry='INSERT INTO campus.tbl_dms_kategorie (kategorie_kurzbz, bezeichnung, beschreibung, parent_kategorie_kurzbz) VALUES('.
|
||||
$this->db_add_param($this->kategorie_kurzbz).', '.
|
||||
$this->db_add_param($this->bezeichnung).', '.
|
||||
$this->db_add_param($this->beschreibung).', '.
|
||||
$this->db_add_param($this->parent_kategorie_kurzbz).');';
|
||||
$qry='INSERT INTO campus.tbl_dms_kategorie (kategorie_kurzbz, bezeichnung, beschreibung, parent_kategorie_kurzbz, oe_kurzbz, berechtigung_kurzbz) VALUES('.
|
||||
$this->db_add_param($this->kategorie_kurzbz).', '.
|
||||
$this->db_add_param($this->bezeichnung).', '.
|
||||
$this->db_add_param($this->beschreibung).', '.
|
||||
$this->db_add_param($this->parent_kategorie_kurzbz).', '.
|
||||
$this->db_add_param($this->kategorie_oe_kurzbz).', '.
|
||||
$this->db_add_param($this->berechtigung_kurzbz).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -503,7 +516,9 @@ class dms extends basis_db
|
||||
' kategorie_kurzbz='.$this->db_add_param($this->kategorie_kurzbz).', '.
|
||||
' bezeichnung='.$this->db_add_param($this->bezeichnung).', '.
|
||||
' beschreibung='.$this->db_add_param($this->beschreibung).', '.
|
||||
' parent_kategorie_kurzbz='.$this->db_add_param($this->parent_kategorie_kurzbz).' '.
|
||||
' parent_kategorie_kurzbz='.$this->db_add_param($this->parent_kategorie_kurzbz).', '.
|
||||
' oe_kurzbz='.$this->db_add_param($this->kategorie_oe_kurzbz).', '.
|
||||
' berechtigung_kurzbz='.$this->db_add_param($this->berechtigung_kurzbz).' '.
|
||||
'WHERE kategorie_kurzbz='.$this->db_add_param($this->kategorie_kurzbz_old).';';
|
||||
}
|
||||
|
||||
@@ -537,6 +552,8 @@ class dms extends basis_db
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz;
|
||||
$this->kategorie_kurzbz_old = $row->kategorie_kurzbz;
|
||||
$this->kategorie_oe_kurzbz = $row->oe_kurzbz;
|
||||
$this->berechtigung_kurzbz = $row->berechtigung_kurzbz;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -567,6 +584,8 @@ class dms extends basis_db
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz;
|
||||
$obj->kategorie_oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
|
||||
|
||||
$this->result[]= $obj;
|
||||
}
|
||||
@@ -577,8 +596,7 @@ class dms extends basis_db
|
||||
|
||||
/**
|
||||
* Laedt die Kategorien
|
||||
* @param $parent_kategorie_kurzbz Wenn die Parent Kategorie übergeben wird, werden nur die direkten
|
||||
* Unterkategorien geladen
|
||||
* @param string $parent_kategorie_kurzbz Wenn die Parent Kategorie übergeben wird, werden nur die direkten Unterkategorien geladen
|
||||
* @return boolean
|
||||
*/
|
||||
public function getKategorie($parent_kategorie_kurzbz='')
|
||||
@@ -600,6 +618,8 @@ class dms extends basis_db
|
||||
$obj->kategorie_kurzbz = $row->kategorie_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->kategorie_oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -663,6 +683,8 @@ class dms extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -675,10 +697,35 @@ class dms extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht nach Dokumenten
|
||||
* Zählt die Anzahl an Dokumenten in einer Kategorie
|
||||
*
|
||||
* @param $kategorie_kurzbz
|
||||
*/
|
||||
public function countDocumentsKategorie($kategorie_kurzbz)
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM campus.tbl_dms WHERE kategorie_kurzbz=".$this->db_add_param($kategorie_kurzbz).";";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->anzahl;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht nach Dokumenten
|
||||
*
|
||||
* @param string $suchstring String nach dem gesucht werden soll
|
||||
*/
|
||||
public function search($suchstring, $dpp=NULL, $page=NULL)
|
||||
{
|
||||
if (!is_null($dpp) && !is_null($page))
|
||||
@@ -695,12 +742,23 @@ class dms extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
|
||||
WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%')
|
||||
OR lower(beschreibung) like lower('%".$this->db_escape($suchstring)."%')
|
||||
$qry = "SELECT tbl_dms.*, tbl_dms_version.*, tbl_dms_kategorie.berechtigung_kurzbz FROM campus.tbl_dms
|
||||
JOIN campus.tbl_dms_version USING(dms_id)
|
||||
JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz)";
|
||||
// Wenn erstes Zeichen # ist, dieses wegkürzen und checken ob der Rest numerisch ist. Dann nach eindeutiger ID suchen
|
||||
if (substr($suchstring, 0, 1) == '#')
|
||||
{
|
||||
$suchstring = substr($suchstring, 1);
|
||||
if (is_numeric($suchstring))
|
||||
$qry .= " WHERE tbl_dms.dms_id = ".$this->db_add_param($suchstring, FHC_INTEGER);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry .= " WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%')
|
||||
OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%')
|
||||
";
|
||||
}
|
||||
|
||||
|
||||
if (is_numeric($suchstring))
|
||||
$qry.= " OR dms_id = ".$this->db_escape($suchstring)."";
|
||||
|
||||
@@ -728,6 +786,9 @@ class dms extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -740,19 +801,19 @@ class dms extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht nach Dokumenten (nur Spalte Beschreibung) mit der aktuellsten Version.
|
||||
* Sucht nach Dokumenten (Spalte schlagworte) mit der aktuellsten Version, bei denen cis_suche true ist
|
||||
* Optional kann die Anzahl an Suchergebnissen übergeben werden.
|
||||
*
|
||||
* @param suchstring
|
||||
* @param limit (optional)
|
||||
* @param string $suchstring
|
||||
* @param integer $limit (optional)
|
||||
*/
|
||||
public function searchLastVersion($suchstring, $limit=null)
|
||||
{
|
||||
$qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
|
||||
WHERE 1=1 ";
|
||||
$qry = "SELECT * FROM campus.tbl_dms JOIN campus.tbl_dms_version USING(dms_id)
|
||||
WHERE cis_suche=true ";
|
||||
foreach($suchstring as $value)
|
||||
$qry.=" AND (lower(beschreibung::text) like lower('%".$this->db_escape($value)."%')
|
||||
OR lower (beschreibung::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
|
||||
$qry.=" AND (lower(schlagworte::text) like lower('%".$this->db_escape($value)."%')
|
||||
OR lower (schlagworte::text) like lower ('%".$this->db_escape(htmlentities($value,ENT_NOQUOTES,'UTF-8'))."%'))";
|
||||
$qry.= "AND version=(SELECT MAX(version) FROM campus.tbl_dms_version where dms_id=tbl_dms.dms_id)";
|
||||
|
||||
if(!is_null($limit) && is_numeric($limit))
|
||||
@@ -777,6 +838,8 @@ class dms extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -791,7 +854,7 @@ class dms extends basis_db
|
||||
/**
|
||||
*
|
||||
* lädt alle Versionen zu einer übergebenen ID
|
||||
* @param $id der zu ladenden Dokumente
|
||||
* @param integer $id ID der zu ladenden Dokumente
|
||||
*/
|
||||
public function getAllVersions($dms_id)
|
||||
{
|
||||
@@ -823,6 +886,8 @@ class dms extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->version = $row->version;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -899,6 +964,8 @@ class dms extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -948,6 +1015,8 @@ class dms extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -998,6 +1067,8 @@ class dms extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -1346,6 +1417,8 @@ class dms extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->cis_suche = $this->db_parse_bool($row->cis_suche);
|
||||
$obj->schlagworte = $row->schlagworte;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -1366,8 +1439,8 @@ class dms extends basis_db
|
||||
$qry.= " AND parent_kategorie_kurzbz=".$this->db_add_param($parent_kategorie_kurzbz);
|
||||
else
|
||||
$qry.=" AND parent_kategorie_kurzbz is null";
|
||||
|
||||
$qry.=";";
|
||||
|
||||
$qry.=";";
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
@@ -1378,6 +1451,9 @@ class dms extends basis_db
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->parent_kategorie_kurzbz = $row->parent_kategorie_kurzbz;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
@@ -96,11 +96,45 @@ $(document).ready(
|
||||
$("#notizform").on("submit", function (e)
|
||||
{
|
||||
e.preventDefault();
|
||||
var personid = $("#hiddenpersonid").val();
|
||||
var personId = $("#hiddenpersonid").val();
|
||||
var notizId = $("#notizform :input[name='hiddenNotizId']").val();
|
||||
var data = $(this).serializeArray();
|
||||
saveNotiz(personid, data);
|
||||
|
||||
if (notizId !== '')
|
||||
{
|
||||
updateNotiz(notizId, personId, data);
|
||||
}
|
||||
else
|
||||
{
|
||||
saveNotiz(personId, data);
|
||||
}
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
//update notiz - autofill notizform
|
||||
$(document).on("click", "#notiztable tbody tr", function ()
|
||||
{
|
||||
var notizId = $(this).find("td:eq(3)").html();
|
||||
var notizTitle = $(this).find("td:eq(1)").text();
|
||||
var notizContent = this.title;
|
||||
|
||||
$("#notizform label:first").text("Notiz ändern").css("color", "red");
|
||||
$("#notizform :input[type='reset']").css("display", "inline-block");
|
||||
|
||||
$("#notizform :input[name='hiddenNotizId']").val(notizId);
|
||||
$("#notizform :input[name='notiztitel']").val(notizTitle);
|
||||
$("#notizform :input[name='notiz']").val(notizContent);
|
||||
}
|
||||
);
|
||||
|
||||
//update notiz - abbrechen-button: reset styles
|
||||
$("#notizform :input[type='reset']").click(function ()
|
||||
{
|
||||
resetNotizFields();
|
||||
}
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
@@ -220,6 +254,29 @@ function saveNotiz(personid, data)
|
||||
});
|
||||
}
|
||||
|
||||
function updateNotiz(notizId, personId, data)
|
||||
{
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
data: data,
|
||||
url: "../updateNotiz/" + notizId + "/" + personId,
|
||||
success: function (data, textStatus, jqXHR)
|
||||
{
|
||||
if (data)
|
||||
{
|
||||
refreshNotizen();
|
||||
refreshLog();
|
||||
resetNotizFields();
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown)
|
||||
{
|
||||
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// methods executed after ajax (refreshers)
|
||||
|
||||
@@ -252,7 +309,7 @@ function refreshNotizen()
|
||||
//readd tablesorter
|
||||
formatNotizTable()
|
||||
}
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
function formatNotizTable()
|
||||
@@ -261,3 +318,10 @@ function formatNotizTable()
|
||||
tablesortAddPager("notiztable", "notizpager", 10);
|
||||
$("#notiztable").addClass("table-condensed");
|
||||
}
|
||||
|
||||
function resetNotizFields()
|
||||
{
|
||||
$("#notizform :input[name='hiddenNotizId']").val("");
|
||||
$("#notizform label:first").text("Notiz hinzufügen").css("color", "black");
|
||||
$("#notizform :input[type='reset']").css("display", "none");
|
||||
}
|
||||
|
||||
+11
-11
@@ -49,7 +49,7 @@ class nation extends basis_db
|
||||
public function __construct($code=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
if($code != null)
|
||||
$this->load($code);
|
||||
}
|
||||
@@ -64,7 +64,7 @@ class nation extends basis_db
|
||||
{
|
||||
//Lesen der Daten aus der Datenbank
|
||||
$qry = "SELECT * FROM bis.tbl_nation WHERE nation_code=".$this->db_add_param($code).';';
|
||||
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
@@ -101,17 +101,17 @@ class nation extends basis_db
|
||||
{
|
||||
//Lesen der Daten aus der Datenbank
|
||||
$qry = "SELECT * FROM bis.tbl_nation";
|
||||
|
||||
|
||||
if ($ohnesperre)
|
||||
$qry .= " WHERE sperre is null";
|
||||
|
||||
$qry .= " WHERE sperre is null OR sperre is false";
|
||||
|
||||
if ($orderEnglish == false)
|
||||
$qry .= " ORDER BY kurztext";
|
||||
else
|
||||
else
|
||||
$qry .= " ORDER BY engltext";
|
||||
|
||||
|
||||
$qry .= ';';
|
||||
|
||||
|
||||
if (!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
@@ -134,10 +134,10 @@ class nation extends basis_db
|
||||
|
||||
$this->nation[] = $nation;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert die Personendaten in die Datenbank
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
@@ -169,4 +169,4 @@ class nation extends basis_db
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -575,7 +575,7 @@ class organisationseinheit extends basis_db
|
||||
OR (LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape($value).'%\'))';
|
||||
}
|
||||
$qry.= ' ORDER BY organisationseinheittyp_kurzbz, bezeichnung;';
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
|
||||
@@ -1105,6 +1105,7 @@ class prestudent extends person
|
||||
$this->studienplan_bezeichnung = $row->studienplan_bezeichnung;
|
||||
$this->rt_stufe = $row->rt_stufe;
|
||||
$this->statusgrund_id = $row->statusgrund_id;
|
||||
$this->anmerkung = $row->anmerkung;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -109,7 +109,7 @@ $menu=array
|
||||
'Benutzer'=>array
|
||||
(
|
||||
'name'=>'Benutzer','permissions'=>array('admin','lv-plan','support'),
|
||||
'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main'),
|
||||
'Funktionen'=>array('name'=>'Funktionen', 'link'=>'personen/funktion.php', 'target'=>'main', 'permissions'=>array('mitarbeiter')),
|
||||
'Berechtigungen'=>array('name'=>'Berechtigungen', 'link'=>'stammdaten/benutzerberechtigung_frameset.html', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Rollen'=>array('name'=>'Rollen', 'link'=>'stammdaten/berechtigungrolle.php', 'target'=>'main','permissions'=>array('basis/berechtigung')),
|
||||
'Variablen'=>array('name'=>'Variablen', 'link'=>'stammdaten/variablen_frameset.html', 'target'=>'main', 'target'=>'main','permissions'=>array('basis/variable')),
|
||||
@@ -176,7 +176,7 @@ $menu=array
|
||||
'Wartung'=> array
|
||||
(
|
||||
'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav',
|
||||
|
||||
'permissions'=>array('basis/studiengang','lehre/vorrueckung','student/vorrueckung','admin','basis/firma','student/stammdaten','assistenz','lv-plan'),
|
||||
'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')),
|
||||
'Vorrueckung'=> array
|
||||
(
|
||||
@@ -186,9 +186,9 @@ $menu=array
|
||||
),
|
||||
'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank','permissions'=>array('admin')),
|
||||
'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')),
|
||||
'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main'),
|
||||
'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main', 'permissions'=>array('student/stammdaten')),
|
||||
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')),
|
||||
'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('admin','lv-plan')),
|
||||
'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('lehre/lehrveranstaltung')),
|
||||
'akteupdate'=>array('name'=>'Akten überschreiben', 'link'=>'personen/akteupdate.php', 'target'=>'main','permissions'=>array('admin')),
|
||||
),
|
||||
'Auswertung'=> array
|
||||
|
||||
@@ -148,6 +148,39 @@ class zeitaufzeichnung extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
// ER - Checks
|
||||
if ($this->aktivitaet_kurzbz == 'Ersatzruhe')
|
||||
{
|
||||
$check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")";
|
||||
if ($this->zeitaufzeichnung_id)
|
||||
$check_qry .= " and zeitaufzeichnung_id != ".$this->db_add_param($this->zeitaufzeichnung_id);
|
||||
if($this->db_query($check_qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($row->count)
|
||||
{
|
||||
$this->errormsg = 'Ersatzruhe darf nicht Überlappen!';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($this->aktivitaet_kurzbz != 'Ersatzruhe')
|
||||
{
|
||||
$check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and aktivitaet_kurzbz = 'Ersatzruhe' and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")";
|
||||
if($this->db_query($check_qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($row->count)
|
||||
{
|
||||
$this->errormsg = 'Eintrag darf nicht mit Ersatzruhe Überlappen!';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
|
||||
@@ -18,11 +18,16 @@ $this->phrasen['mailverteiler/fehlerBeimLadenDerStudenten']='Fehler beim Laden d
|
||||
$this->phrasen['mailverteiler/mailverteiler']='Mailverteiler';
|
||||
$this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Öffnen eines Mailverteilers';
|
||||
$this->phrasen['mailverteiler/status']='Status';
|
||||
$this->phrasen['mailverteiler/geoeffnet']='Geöffnet';
|
||||
$this->phrasen['mailverteiler/geoeffnet']='Mailverteiler "%1$s" geöffnet.';
|
||||
$this->phrasen['mailverteiler/klickenZumSchicken']='Um ein Mail an den Verteiler zu senden klicken Sie bitte auf den angezeigten Link. Ihr Mailprogramm öffnet automatisch eine Vorlage für ein neues Mail, welche bereits die korrekte Adresse enthält.';
|
||||
$this->phrasen['mailverteiler/infoBenutzung']='Das Senden ist für den Zeitraum von <b>2 Stunden</b> bzw. für die <b>einmalige</b> Benutzung unter der Adresse <a href="mailto:%1$s">%1$s</a> möglich.';
|
||||
$this->phrasen['mailverteiler/bestaetigeOeffnen']='Bitte bestätigen Sie das Öffnen des Verteilers %1$s';
|
||||
$this->phrasen['mailverteiler/infoBenutzung']='Das Senden ist für den Zeitraum von <b>1 Stunde</b> möglich.<br>
|
||||
<div style="color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; border-radius: 4px; border: 1px solid transparent; padding: 6px 12px;">
|
||||
Falls Sie die generierte Mailadresse manuell in Ihr Mailprogramm kopieren, achten Sie bitte darauf, diese als <b>BCC</b> (Blind Copy) einzugeben!
|
||||
</div>';
|
||||
$this->phrasen['mailverteiler/bestaetigeOeffnen']='Um außerhalb des FHTW-Netzwerks eine E-Mail an einen gesperrten Verteiler schicken zu können,
|
||||
klicken Sie bitte auf "Verteiler generieren". <br>Der generierte Verteiler ist daraufhin für den Zeitraum von <b>einer Stunde</b> erreichbar';
|
||||
$this->phrasen['mailverteiler/bestaetige']='Bestätige';
|
||||
$this->phrasen['mailverteiler/personenImVerteiler']='Personen im Mailverteiler';
|
||||
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.<br>Bitte Informieren Sie den Administrator';
|
||||
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.<br>Bitte informieren Sie den Administrator';
|
||||
$this->phrasen['mailverteiler/verteilerGenerieren']='Verteiler für Gruppe <b>%1$s</b> generieren';
|
||||
?>
|
||||
|
||||
@@ -69,7 +69,7 @@ $this->phrasen['profil/infotextSperre']='Gesperrte Profilbilder werden nur für
|
||||
$this->phrasen['profil/profilfotoGesperrt']='Profilfoto gesperrt';
|
||||
$this->phrasen['profil/profilfotoUploadGesperrt']='Der Upload des Profilfotos ist nicht mehr möglich';
|
||||
$this->phrasen['profil/fhausweisStatus']='FH-Ausweis Status';
|
||||
$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='FH Ausweis wurde bereits ausgegeben oder liegt zur Abholung bereit';
|
||||
$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='Der FH Ausweis ist am %s ausgegeben worden.';
|
||||
$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='Laden Sie bitte ein gültiges Foto hoch';
|
||||
$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='Foto wurde noch nicht akzeptiert';
|
||||
$this->phrasen['profil/fhausweisGedrucktAm']='FH-Ausweis gedruckt am';
|
||||
|
||||
@@ -57,6 +57,8 @@ $this->phrasen['tools/ampelBitteBestaetigen']='Bitte bestätigen Sie diese jetzt
|
||||
$this->phrasen['tools/ampelAbgelaufenTitel']='Abgelaufene oder bereits bestätigte Ampeln';
|
||||
$this->phrasen['tools/ampelAbgelaufenTxt']='Sie können diese Ampeln weiterhin lesen, aber nicht mehr bestätigen.';
|
||||
$this->phrasen['tools/ampelBestaetigtAbgelaufen']='Bereits bestätigt oder abgelaufen';
|
||||
$this->phrasen['tools/ampelKeineAktuellen']='Keine aktuellen Ampeln';
|
||||
$this->phrasen['tools/ampelKeineAktuellenTxt']='Sie haben zur Zeit keine aktuellen Ampeln.';
|
||||
|
||||
//Software fuer Lehre -> Softgrid
|
||||
$this->phrasen['tools/applikationsliste']='Applikationsliste';
|
||||
@@ -80,6 +82,7 @@ $this->phrasen['tools/telefonklappe']='Telefonklappe';
|
||||
$this->phrasen['tools/reservieren']='Reservieren';
|
||||
$this->phrasen['tools/maxPersonen']='Max. Personen';
|
||||
$this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Es wurden keine Ergebnisse gefunden.';
|
||||
$this->phrasen['tools/suchbegriffe']='Suchbegriffe';
|
||||
|
||||
//Partnerhochschulen
|
||||
$this->phrasen['tools/partnerhochschulenUebersicht']='Übersicht der Partnerhochschulen';
|
||||
|
||||
@@ -16,13 +16,17 @@ $this->phrasen['mailverteiler/studentenverteiler']='Students mailing list';
|
||||
$this->phrasen['mailverteiler/keineVerteilerVorhanden']='No mailing list is existing';
|
||||
$this->phrasen['mailverteiler/fehlerBeimLadenDerStudenten']='Error: Loading Students';
|
||||
$this->phrasen['mailverteiler/mailverteiler']='Mailing list';
|
||||
$this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Unlock a Mailing list';
|
||||
$this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Unlock a mailing list';
|
||||
$this->phrasen['mailverteiler/status']='Status';
|
||||
$this->phrasen['mailverteiler/geoeffnet']='Unlocked';
|
||||
$this->phrasen['mailverteiler/klickenZumSchicken']='To send a Mail to this List click on the link above.';
|
||||
$this->phrasen['mailverteiler/infoBenutzung']='You can use the Mailinglist during a period of <b>2 hours</b> or a <b>single</b> Usage under the adress <a href="mailto:%1$s">%1$s</a>.';
|
||||
$this->phrasen['mailverteiler/bestaetigeOeffnen']='Please confirm to unlock the Mailing list %1$s';
|
||||
$this->phrasen['mailverteiler/geoeffnet']='Mailing list "%1$s" unlocked';
|
||||
$this->phrasen['mailverteiler/klickenZumSchicken']='To send an E-Mail to this list click on the link above.';
|
||||
$this->phrasen['mailverteiler/infoBenutzung']='You can use the mailing list during a period of <b>1 hour</b>.<br>
|
||||
<div style="color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; border-radius: 4px; border: 1px solid transparent; padding: 6px 12px;">
|
||||
If you copy the E-Mail adress manually to your mail client, please mind to set it as <b>BCC</b> (Blind Copy)!
|
||||
</div>';
|
||||
$this->phrasen['mailverteiler/bestaetigeOeffnen']='For sending an E-Mail from an external account, click the button. The mailing list will then be available for <b>1 hour</b>';
|
||||
$this->phrasen['mailverteiler/bestaetige']='Confirm';
|
||||
$this->phrasen['mailverteiler/personenImVerteiler']='People in this mailing list';
|
||||
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list. Please inform your administrator.';
|
||||
$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list.<br>Please inform your administrator.';
|
||||
$this->phrasen['mailverteiler/verteilerGenerieren']='Generate mailing list for <b>%1$s</b>';
|
||||
?>
|
||||
|
||||
@@ -6,5 +6,5 @@ $this->phrasen['notfallbestimmungen/ersthelferUndBrandschutzbeauftragte']='First
|
||||
$this->phrasen['notfallbestimmungen/ersthelfer']='First Aid Providers';
|
||||
$this->phrasen['notfallbestimmungen/ausbildungErfolgteDurchORK']='Training was conducted by the <font style="color:red;">Austrian Red Cross (ÖRK)</font>';
|
||||
$this->phrasen['notfallbestimmungen/folgendePersonenStehenZurVerfuegung']='The following persons are trained to provide first aid';
|
||||
$this->phrasen['notfallbestimmungen/sicherheitAnDerFHTW']='Security at the UASTW';
|
||||
$this->phrasen['notfallbestimmungen/sicherheitAnDerFHTW']='Safety at the UASTW';
|
||||
?>
|
||||
@@ -66,7 +66,7 @@ $this->phrasen['profil/infotextSperre']='Locked profile photos are only used for
|
||||
$this->phrasen['profil/profilfotoGesperrt']='Profile photo locked';
|
||||
$this->phrasen['profil/profilfotoUploadGesperrt']='It is no longer possible to upload a profile photo';
|
||||
$this->phrasen['profil/fhausweisStatus']='UAS ID card status';
|
||||
$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='UAS ID card has already been issued or is ready for pick-up';
|
||||
$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='UAS ID card has already been issued on %s.';
|
||||
$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='Please upload a valid photo';
|
||||
$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='Photo has not yet been accepted';
|
||||
$this->phrasen['profil/fhausweisGedrucktAm']='UAS ID card printed on';
|
||||
|
||||
@@ -59,6 +59,8 @@ $this->phrasen['tools/ampelBitteBestaetigen']='Please confirm now!';
|
||||
$this->phrasen['tools/ampelAbgelaufenTitel']='Notifications expired or confirmed';
|
||||
$this->phrasen['tools/ampelAbgelaufenTxt']='Notifications can still be read, but not confirmed anymore.';
|
||||
$this->phrasen['tools/ampelBestaetigtAbgelaufen']='Almost confirmed or expired';
|
||||
$this->phrasen['tools/ampelKeineAktuellen']='No current notifications.';
|
||||
$this->phrasen['tools/ampelKeineAktuellenTxt']='You currently do not have any notifications.';
|
||||
|
||||
//Software fuer Lehre -> Softgrid
|
||||
$this->phrasen['tools/applikationsliste']='List of Applications';
|
||||
@@ -82,6 +84,7 @@ $this->phrasen['tools/telefonklappe']='Extension';
|
||||
$this->phrasen['tools/reservieren']='Reserve room';
|
||||
$this->phrasen['tools/maxPersonen']='Max. # of people';
|
||||
$this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='Your search did not return any results.';
|
||||
$this->phrasen['tools/suchbegriffe']='Keywords';
|
||||
|
||||
//Partnerhochschulen
|
||||
$this->phrasen['tools/partnerhochschulenUebersicht']='Partner Universities';
|
||||
|
||||
+62
-62
@@ -1,62 +1,62 @@
|
||||
<?php
|
||||
$this->phrasen['profil/AccountInaktiv']='Attenzione: questo account non è più attivo';
|
||||
$this->phrasen['profil/adminstration']='Gestione notizie';
|
||||
$this->phrasen['profil/alias']='alias';
|
||||
$this->phrasen['profil/alleStudentenVon']='Tutti gli studenti di';
|
||||
$this->phrasen['profil/ausgegebenAm']='';
|
||||
$this->phrasen['profil/betriebsmittel']='';
|
||||
$this->phrasen['profil/Bild']='';
|
||||
$this->phrasen['profil/bildHochladen']='';
|
||||
$this->phrasen['profil/bildSpeichern']='';
|
||||
$this->phrasen['profil/Bildupload']='';
|
||||
$this->phrasen['profil/BilduploadInfotext']='';
|
||||
$this->phrasen['profil/buero']='';
|
||||
$this->phrasen['profil/derUserIstInFolgendenVerteilern ']='';
|
||||
$this->phrasen['profil/email']='Email';
|
||||
$this->phrasen['profil/entlehnteBetriebsmittel']='';
|
||||
$this->phrasen['profil/esWurdenKeineProfileGefunden']='Nessun profilo o più profili per l\'utente richiesto';
|
||||
$this->phrasen['profil/faxTw']='fax';
|
||||
$this->phrasen['profil/fhausweisAbholbereitAmEmpfangAb']='';
|
||||
$this->phrasen['profil/fhausweisGedrucktAm']='';
|
||||
$this->phrasen['profil/fhausweisStatus']='';
|
||||
$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='Tesserino consegnato o pronto per il ritiro';
|
||||
$this->phrasen['profil/fhausweisWurdeNochNichtGedruckt']='';
|
||||
$this->phrasen['profil/fotoAuswählen']='';
|
||||
$this->phrasen['profil/fotofreigeben']='';
|
||||
$this->phrasen['profil/fotosperren']='';
|
||||
$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='';
|
||||
$this->phrasen['profil/funktionen']='';
|
||||
$this->phrasen['profil/home']='';
|
||||
$this->phrasen['profil/homepage']='';
|
||||
$this->phrasen['profil/ihrFotoWurdeNochNichtGeprueft']='';
|
||||
$this->phrasen['profil/inaktivMitarbeiter']='';
|
||||
$this->phrasen['profil/inaktivSonstige']='';
|
||||
$this->phrasen['profil/inaktivStudent']='';
|
||||
$this->phrasen['profil/infotextSperre']='';
|
||||
$this->phrasen['profil/intern']='E-mail di Ateneo';
|
||||
$this->phrasen['profil/kontaktPrivat']='Contatti Personali';
|
||||
$this->phrasen['profil/kurzbeschreibungFuerOeh']='';
|
||||
$this->phrasen['profil/kurzzeichen']='ID breve';
|
||||
$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='';
|
||||
$this->phrasen['profil/leistungsbeurteilung']='';
|
||||
$this->phrasen['profil/lvplanVon']='';
|
||||
$this->phrasen['profil/martrikelnummer']='Codice Persona';
|
||||
$this->phrasen['profil/meinCis']='';
|
||||
$this->phrasen['profil/mitarbeiter']='';
|
||||
$this->phrasen['profil/mobil']='Cellulare';
|
||||
$this->phrasen['profil/nummer']='';
|
||||
$this->phrasen['profil/nurJPGBilder']='';
|
||||
$this->phrasen['profil/profil']='';
|
||||
$this->phrasen['profil/profilfotoGesperrt']='';
|
||||
$this->phrasen['profil/profilfotoUploadGesperrt']='';
|
||||
$this->phrasen['profil/sieSindMitgliedInFolgendenVerteilern']='';
|
||||
$this->phrasen['profil/solltenDatenNichtStimmen']='La preghiamo di rivolgersi alla segreteria nel caso i dati non risultino essere corretti.';
|
||||
$this->phrasen['profil/student']='Studente';
|
||||
$this->phrasen['profil/telefon']='';
|
||||
$this->phrasen['profil/telefonTw']='';
|
||||
$this->phrasen['profil/wendenSieSichAn']='';
|
||||
$this->phrasen['profil/zeitsperrenVon']='';
|
||||
$this->phrasen['profil/zeitwuensche']='';
|
||||
$this->phrasen['profil/zustaendigeAssistenz']='';
|
||||
|
||||
?>
|
||||
<?php
|
||||
$this->phrasen['profil/AccountInaktiv']='Attenzione: questo account non è più attivo';
|
||||
$this->phrasen['profil/adminstration']='Gestione notizie';
|
||||
$this->phrasen['profil/alias']='alias';
|
||||
$this->phrasen['profil/alleStudentenVon']='Tutti gli studenti di';
|
||||
$this->phrasen['profil/ausgegebenAm']='';
|
||||
$this->phrasen['profil/betriebsmittel']='';
|
||||
$this->phrasen['profil/Bild']='';
|
||||
$this->phrasen['profil/bildHochladen']='';
|
||||
$this->phrasen['profil/bildSpeichern']='';
|
||||
$this->phrasen['profil/Bildupload']='';
|
||||
$this->phrasen['profil/BilduploadInfotext']='';
|
||||
$this->phrasen['profil/buero']='';
|
||||
$this->phrasen['profil/derUserIstInFolgendenVerteilern ']='';
|
||||
$this->phrasen['profil/email']='Email';
|
||||
$this->phrasen['profil/entlehnteBetriebsmittel']='';
|
||||
$this->phrasen['profil/esWurdenKeineProfileGefunden']='Nessun profilo o più profili per l\'utente richiesto';
|
||||
$this->phrasen['profil/faxTw']='fax';
|
||||
$this->phrasen['profil/fhausweisAbholbereitAmEmpfangAb']='';
|
||||
$this->phrasen['profil/fhausweisGedrucktAm']='';
|
||||
$this->phrasen['profil/fhausweisStatus']='';
|
||||
$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='Tesserino consegnato il %s.';
|
||||
$this->phrasen['profil/fhausweisWurdeNochNichtGedruckt']='';
|
||||
$this->phrasen['profil/fotoAuswählen']='';
|
||||
$this->phrasen['profil/fotofreigeben']='';
|
||||
$this->phrasen['profil/fotosperren']='';
|
||||
$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']='';
|
||||
$this->phrasen['profil/funktionen']='';
|
||||
$this->phrasen['profil/home']='';
|
||||
$this->phrasen['profil/homepage']='';
|
||||
$this->phrasen['profil/ihrFotoWurdeNochNichtGeprueft']='';
|
||||
$this->phrasen['profil/inaktivMitarbeiter']='';
|
||||
$this->phrasen['profil/inaktivSonstige']='';
|
||||
$this->phrasen['profil/inaktivStudent']='';
|
||||
$this->phrasen['profil/infotextSperre']='';
|
||||
$this->phrasen['profil/intern']='E-mail di Ateneo';
|
||||
$this->phrasen['profil/kontaktPrivat']='Contatti Personali';
|
||||
$this->phrasen['profil/kurzbeschreibungFuerOeh']='';
|
||||
$this->phrasen['profil/kurzzeichen']='ID breve';
|
||||
$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']='';
|
||||
$this->phrasen['profil/leistungsbeurteilung']='';
|
||||
$this->phrasen['profil/lvplanVon']='';
|
||||
$this->phrasen['profil/martrikelnummer']='Codice Persona';
|
||||
$this->phrasen['profil/meinCis']='';
|
||||
$this->phrasen['profil/mitarbeiter']='';
|
||||
$this->phrasen['profil/mobil']='Cellulare';
|
||||
$this->phrasen['profil/nummer']='';
|
||||
$this->phrasen['profil/nurJPGBilder']='';
|
||||
$this->phrasen['profil/profil']='';
|
||||
$this->phrasen['profil/profilfotoGesperrt']='';
|
||||
$this->phrasen['profil/profilfotoUploadGesperrt']='';
|
||||
$this->phrasen['profil/sieSindMitgliedInFolgendenVerteilern']='';
|
||||
$this->phrasen['profil/solltenDatenNichtStimmen']='La preghiamo di rivolgersi alla segreteria nel caso i dati non risultino essere corretti.';
|
||||
$this->phrasen['profil/student']='Studente';
|
||||
$this->phrasen['profil/telefon']='';
|
||||
$this->phrasen['profil/telefonTw']='';
|
||||
$this->phrasen['profil/wendenSieSichAn']='';
|
||||
$this->phrasen['profil/zeitsperrenVon']='';
|
||||
$this->phrasen['profil/zeitwuensche']='';
|
||||
$this->phrasen['profil/zustaendigeAssistenz']='';
|
||||
|
||||
?>
|
||||
|
||||
@@ -100,7 +100,7 @@ foreach ($dok->result as $row)
|
||||
<RDF:li>
|
||||
<RDF:Description id="'.$row->dokument_kurzbz.'/'.$a->akte_id.'" about="'.$rdf_url.'/'.$row->dokument_kurzbz.'/'.$a->akte_id.'" >
|
||||
<DOKUMENT:dokument_kurzbz><![CDATA['.$row->dokument_kurzbz.']]></DOKUMENT:dokument_kurzbz>
|
||||
<DOKUMENT:bezeichnung><![CDATA['.($row->dokument_kurzbz=='Sonst' && $a->titel_intern!==''?$row->bezeichnung.' ('.$a->titel_intern.')':$row->bezeichnung).']]></DOKUMENT:bezeichnung>
|
||||
<DOKUMENT:bezeichnung><![CDATA['.($a->titel_intern!=''?$row->bezeichnung.' ('.$a->titel_intern.')':$row->bezeichnung).']]></DOKUMENT:bezeichnung>
|
||||
<DOKUMENT:datum><![CDATA['.$datum.']]></DOKUMENT:datum>
|
||||
<DOKUMENT:datumhochgeladen>'.$datumhochgeladen.'</DOKUMENT:datumhochgeladen>
|
||||
<DOKUMENT:nachgereicht><![CDATA['.$nachgereicht.']]></DOKUMENT:nachgereicht>
|
||||
|
||||
+35
-1
@@ -8,7 +8,7 @@
|
||||
}
|
||||
|
||||
/*change of panel colors (grey) */
|
||||
.panel-primary > .panel-heading{
|
||||
.panel-primary > .panel-heading, .panel-primary > .panel-collapse > .panel-footer, .panel-primary > .panel-footer{
|
||||
color: black;
|
||||
background-color: #dfdfdf;
|
||||
border-color: #dfdfdf;
|
||||
@@ -16,4 +16,38 @@
|
||||
|
||||
.panel-primary{
|
||||
border-color: #dfdfdf;
|
||||
}
|
||||
|
||||
.panel-primary > .panel-heading + .panel-collapse > .panel-body{
|
||||
border-top-color: #ddd;
|
||||
}
|
||||
|
||||
/*arrow toggle for panels*/
|
||||
.panel-heading .accordion-toggle:before{
|
||||
/* symbol for "opening" panels */
|
||||
font-family: 'Glyphicons Halflings'; /* essential for enabling glyphicon */
|
||||
content: "\e114"; /* adjust as needed, taken from bootstrap.css */
|
||||
/*float: right; */ /* adjust as needed */
|
||||
margin: 15px;
|
||||
color: grey; /* adjust as needed */
|
||||
|
||||
}
|
||||
|
||||
.panel-heading .accordion-toggle.collapsed:before{
|
||||
/* symbol for "collapsed" panels */
|
||||
content: "\e080"; /* adjust as needed, taken from bootstrap.css */
|
||||
}
|
||||
|
||||
.panel-heading .accordion-toggle:hover, .panel-heading .accordion-toggle:active,
|
||||
.panel-heading .accordion-toggle:focus{
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
/*required asterisk for labels for required fields*/
|
||||
.label-required:after
|
||||
{
|
||||
content:"\00a0*";
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
@@ -862,6 +862,10 @@ option.inactive
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
.suchergebnis
|
||||
{
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
.suchicon
|
||||
{
|
||||
margin:0px;
|
||||
|
||||
+528
-526
File diff suppressed because it is too large
Load Diff
@@ -81,12 +81,16 @@ $berechtigungen = array(
|
||||
array('basis/cms_sperrfreigabe','Berechtigung zum Freigeben von gesperrtem Content'),
|
||||
array('basis/cronjob','Cronjobverwaltung'),
|
||||
array('basis/dms','DMS Download'),
|
||||
array('basis/dmsAdmin','DMS-Kategorien editieren'),
|
||||
array('basis/fas','FAS Zugriff'),
|
||||
array('basis/ferien','Verwaltung der Ferien und Feiertage im System'),
|
||||
array('basis/fhausweis','Verwaltungstools für FH Ausweis – Kartentausch, Bildpruefung, Druck'),
|
||||
array('basis/firma','Firmenverwaltung'),
|
||||
array('basis/firma:begrenzt','Firmenverwaltung'),
|
||||
array('basis/geschaeftsjahr','Geschäftsjahr'),
|
||||
array('basis/infoscreen','Infoscreenverwaltung'),
|
||||
array('basis/konto','Kontenverwaltung'),
|
||||
array('basis/kostenstelle','Kostenstellenverwaltung'),
|
||||
array('basis/message','Nachrichten'),
|
||||
array('basis/moodle','basis/moodle'),
|
||||
array('basis/news','Newsverwaltung'),
|
||||
@@ -109,6 +113,8 @@ $berechtigungen = array(
|
||||
array('inout/incoming','Incomingverwaltung'),
|
||||
array('inout/outgoing','Outgoingverwaltung'),
|
||||
array('inout/uebersicht','Verbandsanzeige fuer Incoming/Outgoing im FAS'),
|
||||
array('extension/budget_genehmigung','Genehmigen und Ablehnen von Budgetanträgen'),
|
||||
array('extension/budget_verwaltung','Verwaltung von Budgetanträgen'),
|
||||
array('lehre','Berechtigung fuer CIS-Seite'),
|
||||
array('lehre/abgabetool','Projektabgabetool, Studentenansicht'),
|
||||
array('lehre/abgabetool:download','Download von Projektarbeitsabgaben'),
|
||||
|
||||
Regular → Executable
+308
-138
@@ -723,6 +723,20 @@ if(!@$db->db_query("SELECT ausstellungsdetails FROM public.tbl_dokument LIMIT 1"
|
||||
echo '<br>Spalte ausstellungsdetails in public.tbl_dokument hinzugefügt';
|
||||
}
|
||||
|
||||
// ADD COLUMN geschaeftsjahrvon and geschaeftsjahrbis in wawi.tbl_kostenstelle
|
||||
if(!$result = @$db->db_query("SELECT geschaeftsjahrvon FROM wawi.tbl_kostenstelle LIMIT 1;"))
|
||||
{
|
||||
$qry = "ALTER TABLE wawi.tbl_kostenstelle ADD COLUMN geschaeftsjahrvon varchar(32);
|
||||
ALTER TABLE wawi.tbl_kostenstelle ADD COLUMN geschaeftsjahrbis varchar(32);
|
||||
ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT fk_tbl_geschaeftsjahr_geschaeftsjahrvon FOREIGN KEY (geschaeftsjahrvon) REFERENCES public.tbl_geschaeftsjahr (geschaeftsjahr_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
ALTER TABLE wawi.tbl_kostenstelle ADD CONSTRAINT fk_tbl_geschaeftsjahr_geschaeftsjahrbis FOREIGN KEY (geschaeftsjahrbis) REFERENCES public.tbl_geschaeftsjahr (geschaeftsjahr_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>wawi.tbl_kostenstelle: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>wawi.tbl_kostenstelle: Spalten geschaeftsjahrvon, geschaeftsjahrbis hinzugefuegt!<br>';
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
// Start extensions
|
||||
@@ -860,6 +874,7 @@ if ($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berech
|
||||
// End extensions
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Tabellen fuer Person Log
|
||||
if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_log LIMIT 1"))
|
||||
{
|
||||
$qry = "CREATE TABLE system.tbl_log
|
||||
@@ -910,6 +925,20 @@ if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_log LIMIT 1"))
|
||||
echo ' system.tbl_log hinzugefügt<br>';
|
||||
}
|
||||
|
||||
// Add index to system.tbl_log
|
||||
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_log_person_id'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "CREATE INDEX idx_tbl_log_person_id ON system.tbl_log USING btree (person_id)";
|
||||
|
||||
if (! $db->db_query($qry))
|
||||
echo '<strong>Indizes: ' . $db->db_last_error() . '</strong><br>';
|
||||
else
|
||||
echo 'Index fuer system.tbl_log hinzugefuegt';
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
// Start filters
|
||||
|
||||
@@ -1060,6 +1089,20 @@ if (!@$db->db_query("SELECT 0 FROM system.tbl_filters WHERE 0 = 1"))
|
||||
echo '<br>Altered sequence system.tbl_filters_id_seq';
|
||||
}
|
||||
|
||||
// Add missing primary Key to system.tbl_filters.filter_id
|
||||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'pk_filters_filter_id'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "ALTER TABLE system.tbl_filters ADD CONSTRAINT pk_filters_filter_id PRIMARY KEY (filter_id);";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>system.tbl_filters '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>system.tbl_filters: added primary key on column filter_id';
|
||||
}
|
||||
}
|
||||
|
||||
// UNIQUE INDEX uidx_filters_app_dataset_name_filter_kurzbz
|
||||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_filters_app_dataset_name_filter_kurzbz'"))
|
||||
{
|
||||
@@ -1176,20 +1219,6 @@ if (!$result = @$db->db_query("SELECT taetigkeit_kurzbz FROM system.tbl_log"))
|
||||
echo '<br>Added Column taetigkeit_kurzbz to system.tbl_log';
|
||||
}
|
||||
|
||||
// Add missing primary Key to system.tbl_filters.filter_id
|
||||
if ($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'pk_filters_filter_id'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "ALTER TABLE system.tbl_filters ADD CONSTRAINT pk_filters_filter_id PRIMARY KEY (filter_id);";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>system.tbl_filters '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>system.tbl_filters: added primary key on column filter_id';
|
||||
}
|
||||
}
|
||||
|
||||
// Add index to tbl_akte
|
||||
if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_akte_dokument_kurzbz'"))
|
||||
{
|
||||
@@ -1250,6 +1279,7 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='infocenter'"
|
||||
echo '<br>Neue App infocenter in system.tbl_app hinzugefügt';
|
||||
}
|
||||
}
|
||||
|
||||
// App 'bewerbung' hinzufügen
|
||||
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='bewerbung'"))
|
||||
{
|
||||
@@ -1279,7 +1309,6 @@ if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Remove NOT NULL constraint on verfallszeit on public.tbl_ampel
|
||||
if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_ampel' AND COLUMN_NAME = 'verfallszeit' AND is_nullable = 'NO'"))
|
||||
{
|
||||
@@ -1768,84 +1797,9 @@ if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzb
|
||||
}
|
||||
}
|
||||
|
||||
/** Budget **/
|
||||
if (!$result = @$db->db_query("SELECT 1 FROM wawi.tbl_budgetantrag LIMIT 1"))
|
||||
if (!$result = @$db->db_query("SELECT projekt_id FROM fue.tbl_projekt LIMIT 1"))
|
||||
{
|
||||
$qry = "CREATE TABLE wawi.tbl_budgetantrag
|
||||
(
|
||||
budgetantrag_id integer NOT NULL,
|
||||
kostenstelle_id integer NOT NULL,
|
||||
geschaeftsjahr_kurzbz varchar(32) NOT NULL,
|
||||
bezeichnung varchar(256),
|
||||
insertamum timestamp DEFAULT now(),
|
||||
insertvon varchar(32),
|
||||
updateamum timestamp,
|
||||
updatevon varchar(32)
|
||||
);
|
||||
COMMENT ON TABLE wawi.tbl_budgetantrag IS 'Budget Requests';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT pk_tbl_budgetantrag PRIMARY KEY (budgetantrag_id);
|
||||
|
||||
CREATE SEQUENCE wawi.tbl_budgetantrag_budgetantrag_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
ALTER TABLE wawi.tbl_budgetantrag ALTER COLUMN budgetantrag_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_budgetantrag_id_seq');
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
|
||||
GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_budgetantrag_id_seq TO vilesci;
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_kostenstelle_id FOREIGN KEY (kostenstelle_id) REFERENCES wawi.tbl_kostenstelle(kostenstelle_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_geschaeftsjahr_kurzbz FOREIGN KEY (geschaeftsjahr_kurzbz) REFERENCES public.tbl_geschaeftsjahr(geschaeftsjahr_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
CREATE TABLE wawi.tbl_budgetstatus
|
||||
(
|
||||
budgetstatus_kurzbz varchar(32) NOT NULL,
|
||||
bezeichnung varchar(128)
|
||||
);
|
||||
COMMENT ON TABLE wawi.tbl_budgetstatus IS 'Key Table of Budget Request Statuses';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetstatus ADD CONSTRAINT pk_tbl_budgetstatus PRIMARY KEY (budgetstatus_kurzbz);
|
||||
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('new','Neu');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('sent','Abgeschickt');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('approved','Freigegeben');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('accepted','Akzeptiert');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('rejected','Abgelehnt');
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
|
||||
|
||||
CREATE TABLE wawi.tbl_budgetantrag_status
|
||||
(
|
||||
budgetantrag_status_id integer NOT NULL,
|
||||
budgetantrag_id integer NOT NULL,
|
||||
budgetstatus_kurzbz varchar(32) NOT NULL,
|
||||
datum timestamp NOT NULL,
|
||||
uid varchar(32),
|
||||
oe_kurzbz varchar(32),
|
||||
insertamum timestamp DEFAULT now(),
|
||||
insertvon varchar(32)
|
||||
);
|
||||
COMMENT ON TABLE wawi.tbl_budgetantrag_status IS 'Statuses of Budget Requests';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT pk_tbl_budgetantrag_status PRIMARY KEY (budgetantrag_status_id);
|
||||
|
||||
CREATE SEQUENCE wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ALTER COLUMN budgetantrag_status_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq');
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_budgetstatus_kurzbz FOREIGN KEY (budgetstatus_kurzbz) REFERENCES wawi.tbl_budgetstatus(budgetstatus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
|
||||
GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq TO vilesci;
|
||||
|
||||
CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq
|
||||
$qry = "CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
@@ -1853,47 +1807,268 @@ if (!$result = @$db->db_query("SELECT 1 FROM wawi.tbl_budgetantrag LIMIT 1"))
|
||||
GRANT SELECT, UPDATE ON fue.tbl_projekt_projekt_id_seq TO vilesci;
|
||||
ALTER TABLE fue.tbl_projekt ADD COLUMN projekt_id integer NOT NULL DEFAULT nextval('fue.tbl_projekt_projekt_id_seq');
|
||||
ALTER TABLE fue.tbl_projekt ADD CONSTRAINT uk_tbl_projekt_projekt_id UNIQUE (projekt_id);
|
||||
|
||||
CREATE TABLE wawi.tbl_budgetposition
|
||||
(
|
||||
budgetposition_id integer NOT NULL,
|
||||
budgetantrag_id integer NOT NULL,
|
||||
budgetposten varchar(512),
|
||||
konto_id integer,
|
||||
betrag numeric(12,4),
|
||||
kommentar text,
|
||||
projekt_id integer,
|
||||
insertamum timestamp,
|
||||
insertvon varchar(32),
|
||||
updateamum timestamp,
|
||||
updatevon varchar(32)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE wawi.tbl_budgetposition IS 'Budget position';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT pk_tbl_budgetposition PRIMARY KEY (budgetposition_id);
|
||||
|
||||
CREATE SEQUENCE wawi.tbl_budgetposition_budgetposition_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
ALTER TABLE wawi.tbl_budgetposition ALTER COLUMN budgetposition_id SET DEFAULT nextval(' wawi.tbl_budgetposition_budgetposition_id_seq');
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_budgetantrag_id FOREIGN KEY (budgetantrag_id) REFERENCES wawi.tbl_budgetantrag(budgetantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_konto_id FOREIGN KEY (konto_id) REFERENCES wawi.tbl_konto(konto_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_projekt_id FOREIGN KEY (projekt_id) REFERENCES fue.tbl_projekt(projekt_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetposition TO vilesci;
|
||||
GRANT SELECT, UPDATE ON wawi.tbl_budgetposition_budgetposition_id_seq TO vilesci;
|
||||
";
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Budget: '.$db->db_last_error().'</strong><br>';
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>Projekt: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Neue Tabellen fuer Budgetantrag in Schema wawi hinzugefuegt';
|
||||
echo '<br>Neue Spalte projekt_id für fue.tbl_projekt hinzugefügt';
|
||||
|
||||
}
|
||||
|
||||
// Extension Schema
|
||||
if ($result = $db->db_query("SELECT schema_name FROM information_schema.schemata WHERE schema_name='extension'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = "CREATE SCHEMA extension;
|
||||
COMMENT ON SCHEMA extension is 'Extension Tables';";
|
||||
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>Extension: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Neues Schema extension hinzugefuegt';
|
||||
}
|
||||
}
|
||||
|
||||
// Berechtigungen fuer web-user erteilen Log in public.tbl_log zu schreiben
|
||||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_log' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
|
||||
$qry = "GRANT SELECT, INSERT ON public.tbl_log TO web;
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Log Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Web User Insert fuer public.tbl_log berechtigt';
|
||||
}
|
||||
}
|
||||
|
||||
// ADD COLUMN oe_kurzbz AND berechtigung_kurzbz to campus.tbl_dms_kategorie
|
||||
if(!@$db->db_query("SELECT oe_kurzbz FROM campus.tbl_dms_kategorie LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE campus.tbl_dms_kategorie ADD COLUMN oe_kurzbz varchar(32);
|
||||
ALTER TABLE campus.tbl_dms_kategorie ADD COLUMN berechtigung_kurzbz varchar(32);
|
||||
|
||||
ALTER TABLE campus.tbl_dms_kategorie ADD CONSTRAINT fk_dms_kategorie_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE campus.tbl_dms_kategorie ADD CONSTRAINT fk_dms_kategorie_berechtigung_kurzbz FOREIGN KEY (berechtigung_kurzbz) REFERENCES system.tbl_berechtigung(berechtigung_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>campus.tbl_dms_kategorie '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Spalte oe_kurzbz und berechtigung_kurzbz in campus.tbl_dms_kategorie hinzugefügt';
|
||||
}
|
||||
|
||||
// ADD COLUMN cis_suche (boolean) AND schlagworte to campus.tbl_dms_version
|
||||
if(!@$db->db_query("SELECT cis_suche FROM campus.tbl_dms_version LIMIT 1"))
|
||||
{
|
||||
$qry = "ALTER TABLE campus.tbl_dms_version ADD COLUMN cis_suche boolean NOT NULL DEFAULT false;
|
||||
ALTER TABLE campus.tbl_dms_version ADD COLUMN schlagworte text;
|
||||
|
||||
COMMENT ON COLUMN campus.tbl_dms_version.schlagworte IS 'Semicolon-separated string with keywords for CIS-search';
|
||||
UPDATE campus.tbl_dms_version SET cis_suche=true WHERE beschreibung != '';
|
||||
UPDATE campus.tbl_dms_version SET schlagworte=beschreibung WHERE beschreibung != '';
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>campus.tbl_dms_version '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo ' <br>Spalte cis_suche und schlagworte in campus.tbl_dms_version hinzugefügt.
|
||||
<br><b>Alle DMS-Einträge mit befülltem Beschreibungstext wurden auf cis_suche=true gesetzt</b>
|
||||
<br><b>Bei allen DMS-Einträge mit befülltem Beschreibungstext, wurde dieser in die Spalte schlagworte übernommen</b>';
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------------------------------------------
|
||||
// Start changes to Phrases
|
||||
|
||||
// ADD COLUMN category to system.tbl_phrase
|
||||
if (!$result = @$db->db_query("SELECT category FROM system.tbl_phrase LIMIT 1"))
|
||||
{
|
||||
$qry = 'ALTER TABLE system.tbl_phrase ADD COLUMN category character varying(64);';
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>system.tbl_phrase: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Added column category to table system.tbl_phrase';
|
||||
|
||||
// COMMENT ON TABLE system.tbl_phrase
|
||||
$qry = 'COMMENT ON COLUMN system.tbl_phrase.category IS \'To divide the phrases into categories\';';
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>Adding comment to system.tbl_phrase.category: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Added comment to system.tbl_phrase.category';
|
||||
}
|
||||
|
||||
// UNIQUE INDEX uidx_phrase_category_phrase
|
||||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_phrase_category_phrase'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = 'CREATE UNIQUE INDEX uidx_phrase_category_phrase ON system.tbl_phrase USING btree (category, phrase);';
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>uidx_phrase_category_phrase '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Created unique uidx_phrase_category_phrase';
|
||||
}
|
||||
}
|
||||
|
||||
// UNIQUE INDEX uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz
|
||||
if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz'"))
|
||||
{
|
||||
if ($db->db_num_rows($result) == 0)
|
||||
{
|
||||
$qry = 'CREATE UNIQUE INDEX uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz ON system.tbl_phrasentext USING btree (phrase_id, sprache, orgeinheit_kurzbz, orgform_kurzbz);';
|
||||
if (!$db->db_query($qry))
|
||||
echo '<strong>uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Created unique uidx_phrasestext_phrase_id_sprache_orgeinheit_kurzbz_orgform_kurzbz';
|
||||
}
|
||||
}
|
||||
|
||||
// End changes to Phrases
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Remove NOT NULL constraint on matrikelnr on public.tbl_student
|
||||
if($result = @$db->db_query("SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_student' AND COLUMN_NAME = 'matrikelnr' AND is_nullable = 'NO'"))
|
||||
{
|
||||
if($db->db_num_rows($result) > 0)
|
||||
{
|
||||
$qry = "ALTER TABLE public.tbl_student ALTER COLUMN matrikelnr DROP NOT NULL;";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_student '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Removed NOT NULL constraint on "matrikelnr" from public.tbl_student<br>';
|
||||
}
|
||||
}
|
||||
|
||||
// public.vw_prestudentstatus Datum zur Reihungstestanmeldung aus tbl_rt_person
|
||||
if($result = $db->db_query("SELECT view_definition FROM information_schema.views WHERE table_schema='public' AND table_name='vw_prestudentstatus'"))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if(!mb_stristr($row->view_definition, 'tbl_rt_person'))
|
||||
{
|
||||
$qry = "
|
||||
CREATE OR REPLACE VIEW public.vw_prestudentstatus AS
|
||||
SELECT tbl_prestudent.prestudent_id,
|
||||
tbl_person.person_id,
|
||||
tbl_person.staatsbuergerschaft,
|
||||
tbl_person.geburtsnation,
|
||||
tbl_person.sprache,
|
||||
tbl_person.anrede,
|
||||
tbl_person.titelpost,
|
||||
tbl_person.titelpre,
|
||||
tbl_person.nachname,
|
||||
tbl_person.vorname,
|
||||
tbl_person.vornamen,
|
||||
tbl_person.gebdatum,
|
||||
tbl_person.gebort,
|
||||
tbl_person.gebzeit,
|
||||
tbl_person.foto,
|
||||
tbl_person.homepage,
|
||||
tbl_person.svnr,
|
||||
tbl_person.ersatzkennzeichen,
|
||||
tbl_person.familienstand,
|
||||
tbl_person.geschlecht,
|
||||
tbl_person.anzahlkinder,
|
||||
tbl_person.aktiv,
|
||||
tbl_person.bundesland_code,
|
||||
tbl_person.kompetenzen,
|
||||
tbl_person.kurzbeschreibung,
|
||||
tbl_person.zugangscode,
|
||||
tbl_person.foto_sperre,
|
||||
tbl_person.matr_nr,
|
||||
tbl_prestudent.aufmerksamdurch_kurzbz,
|
||||
tbl_prestudent.studiengang_kz,
|
||||
tbl_prestudent.berufstaetigkeit_code,
|
||||
tbl_prestudent.ausbildungcode,
|
||||
tbl_prestudent.zgv_code,
|
||||
tbl_prestudent.zgvort,
|
||||
tbl_prestudent.zgvdatum,
|
||||
tbl_prestudent.zgvmas_code,
|
||||
tbl_prestudent.zgvmaort,
|
||||
tbl_prestudent.zgvmadatum,
|
||||
tbl_prestudent.aufnahmeschluessel,
|
||||
tbl_prestudent.facheinschlberuf,
|
||||
tbl_prestudent.reihungstest_id,
|
||||
(SELECT
|
||||
COALESCE(anmeldedatum, tbl_rt_person.insertamum::date)
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN public.tbl_reihungstest ON(rt_id=reihungstest_id)
|
||||
JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE
|
||||
person_id=tbl_prestudent.person_id
|
||||
AND tbl_reihungstest.studiensemester_kurzbz=prestudentstatus.studiensemester_kurzbz
|
||||
AND tbl_studienordnung.studiengang_kz=tbl_prestudent.studiengang_kz
|
||||
ORDER BY anmeldedatum DESC, tbl_rt_person.insertamum DESC limit 1
|
||||
) as anmeldungreihungstest,
|
||||
tbl_prestudent.reihungstestangetreten,
|
||||
tbl_prestudent.rt_gesamtpunkte,
|
||||
tbl_prestudent.bismelden,
|
||||
tbl_prestudent.anmerkung,
|
||||
tbl_prestudent.dual,
|
||||
tbl_prestudent.rt_punkte1,
|
||||
tbl_prestudent.rt_punkte2,
|
||||
tbl_prestudent.ausstellungsstaat,
|
||||
tbl_prestudent.rt_punkte3,
|
||||
tbl_prestudent.zgvdoktor_code,
|
||||
tbl_prestudent.zgvdoktorort,
|
||||
tbl_prestudent.zgvdoktordatum,
|
||||
tbl_prestudent.mentor,
|
||||
prestudentstatus.status_kurzbz,
|
||||
prestudentstatus.studiensemester_kurzbz,
|
||||
prestudentstatus.ausbildungssemester,
|
||||
prestudentstatus.datum,
|
||||
prestudentstatus.insertamum,
|
||||
prestudentstatus.insertvon,
|
||||
prestudentstatus.updateamum,
|
||||
prestudentstatus.updatevon,
|
||||
COALESCE(prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) AS orgform_kurzbz,
|
||||
prestudentstatus.studienplan_id,
|
||||
prestudentstatus.bestaetigtam,
|
||||
prestudentstatus.bestaetigtvon,
|
||||
prestudentstatus.fgm,
|
||||
prestudentstatus.faktiv,
|
||||
tbl_studiengang.kurzbz,
|
||||
tbl_studiengang.kurzbzlang,
|
||||
tbl_studiengang.typ,
|
||||
tbl_studiensemester.start,
|
||||
tbl_studiensemester.ende,
|
||||
tbl_studiensemester.studienjahr_kurzbz,
|
||||
substr(tbl_studiensemester.studiensemester_kurzbz::text, 3) || lower(substr(tbl_studiensemester.studiensemester_kurzbz::text, 1, 1)) AS studiensemester,
|
||||
CASE
|
||||
WHEN tbl_studiengang.typ = 'b'::bpchar AND tbl_prestudent.zgv_code IS NOT NULL OR tbl_studiengang.typ = 'm'::bpchar AND tbl_prestudent.zgvmas_code IS NOT NULL OR tbl_studiengang.typ = 'd'::bpchar AND tbl_prestudent.zgvdoktor_code IS NOT NULL THEN true
|
||||
ELSE false
|
||||
END AS zgv,
|
||||
CASE
|
||||
WHEN tbl_prestudentstatus.prestudent_id IS NULL THEN false
|
||||
ELSE true
|
||||
END AS student,
|
||||
date_part('week'::text, prestudentstatus.datum) AS kw
|
||||
FROM public.tbl_person
|
||||
JOIN public.tbl_prestudent USING (person_id)
|
||||
JOIN public.tbl_prestudentstatus prestudentstatus USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang USING (studiengang_kz)
|
||||
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
|
||||
LEFT JOIN public.tbl_prestudentstatus ON tbl_prestudentstatus.prestudent_id = prestudentstatus.prestudent_id AND tbl_prestudentstatus.studiensemester_kurzbz::text = prestudentstatus.studiensemester_kurzbz::text AND tbl_prestudentstatus.status_kurzbz::text = 'Student'::text;
|
||||
|
||||
GRANT SELECT ON public.vw_prestudentstatus TO vilesci;
|
||||
GRANT SELECT ON public.vw_prestudentstatus TO web;
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>public.vw_prestudentstatus:'.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>public.vw_prestudentstatus angepasst damit anmeldungzumreihungstest aus tbl_rt_person kommt';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -1946,9 +2121,9 @@ $tabellen=array(
|
||||
"campus.tbl_coodle_ressource_termin" => array("coodle_ressource_id","coodle_termin_id","insertamum","insertvon"),
|
||||
"campus.tbl_coodle_status" => array("coodle_status_kurzbz","bezeichnung"),
|
||||
"campus.tbl_dms" => array("dms_id","oe_kurzbz","dokument_kurzbz","kategorie_kurzbz"),
|
||||
"campus.tbl_dms_kategorie" => array("kategorie_kurzbz","bezeichnung","beschreibung","parent_kategorie_kurzbz"),
|
||||
"campus.tbl_dms_kategorie" => array("kategorie_kurzbz","bezeichnung","beschreibung","parent_kategorie_kurzbz","oe_kurzbz","berechtigung_kurzbz"),
|
||||
"campus.tbl_dms_kategorie_gruppe" => array("kategorie_kurzbz","gruppe_kurzbz","insertamum","insertvon"),
|
||||
"campus.tbl_dms_version" => array("dms_id","version","filename","mimetype","name","beschreibung","letzterzugriff","updateamum","updatevon","insertamum","insertvon"),
|
||||
"campus.tbl_dms_version" => array("dms_id","version","filename","mimetype","name","beschreibung","letzterzugriff","updateamum","updatevon","insertamum","insertvon","cis_suche","schlagworte"),
|
||||
"campus.tbl_erreichbarkeit" => array("erreichbarkeit_kurzbz","beschreibung","farbe"),
|
||||
"campus.tbl_feedback" => array("feedback_id","betreff","text","datum","uid","lehrveranstaltung_id","updateamum","updatevon","insertamum","insertvon"),
|
||||
"campus.tbl_freebusy" => array("freebusy_id","uid","freebusytyp_kurzbz","url","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
|
||||
@@ -2145,7 +2320,7 @@ $tabellen=array(
|
||||
"system.tbl_log" => array("log_id","person_id","zeitpunkt","app","oe_kurzbz","logtype_kurzbz","logdata","insertvon","taetigkeit_kurzbz"),
|
||||
"system.tbl_logtype" => array("logtype_kurzbz", "data_schema"),
|
||||
"system.tbl_filters" => array("filter_id","app","dataset_name","filter_kurzbz","person_id","description","sort","default_filter","filter","oe_kurzbz"),
|
||||
"system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon"),
|
||||
"system.tbl_phrase" => array("phrase_id","app","phrase","insertamum","insertvon","category"),
|
||||
"system.tbl_phrasentext" => array("phrasentext_id","phrase_id","sprache","orgeinheit_kurzbz","orgform_kurzbz","text","description","insertamum","insertvon"),
|
||||
"system.tbl_rolle" => array("rolle_kurzbz","beschreibung"),
|
||||
"system.tbl_rolleberechtigung" => array("berechtigung_kurzbz","rolle_kurzbz","art"),
|
||||
@@ -2161,15 +2336,10 @@ $tabellen=array(
|
||||
"wawi.tbl_betriebsmittel_betriebsmittelstatus" => array("betriebsmittelbetriebsmittelstatus_id","betriebsmittel_id","betriebsmittelstatus_kurzbz", "datum", "updateamum", "updatevon", "insertamum", "insertvon","anmerkung"),
|
||||
"wawi.tbl_betriebsmittelstatus" => array("betriebsmittelstatus_kurzbz","beschreibung"),
|
||||
"wawi.tbl_betriebsmitteltyp" => array("betriebsmitteltyp","beschreibung","anzahl","kaution","typ_code","mastershapename"),
|
||||
"wawi.tbl_budget" => array("geschaeftsjahr_kurzbz","kostenstelle_id","budget"),
|
||||
"wawi.tbl_budgetantrag" => array("budgetantrag_id","kostenstelle_id","geschaeftsjahr_kurzbz","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
|
||||
"wawi.tbl_budgetantrag_status" => array("budgetantrag_status_id","budgetantrag_id","budgetstatus_kurzbz","datum","uid","oe_kurzbz","insertamum","insertvon"),
|
||||
"wawi.tbl_budgetstatus" => array("budgetstatus_kurzbz","bezeichnung"),
|
||||
"wawi.tbl_budgetposition" => array("budgetposition_id","budgetantrag_id","budgetposten","konto_id","betrag","kommentar","projekt_id","insertamum","insertvon","updateamum","updatevon"),
|
||||
"wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"),
|
||||
"wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id","person_id"),
|
||||
"wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"),
|
||||
"wawi.tbl_kostenstelle" => array("kostenstelle_id","oe_kurzbz","bezeichnung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","kostenstelle_nr","deaktiviertvon","deaktiviertamum"),
|
||||
"wawi.tbl_kostenstelle" => array("kostenstelle_id","oe_kurzbz","bezeichnung","kurzbz","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","kostenstelle_nr","deaktiviertvon","deaktiviertamum", "geschaeftsjahrvon", "geschaeftsjahrbis"),
|
||||
"wawi.tbl_bestellungtag" => array("tag","bestellung_id","insertamum","insertvon"),
|
||||
"wawi.tbl_bestelldetailtag" => array("tag","bestelldetail_id","insertamum","insertvon"),
|
||||
"wawi.tbl_projekt_bestellung" => array("projekt_kurzbz","bestellung_id","anteil"),
|
||||
@@ -2206,7 +2376,7 @@ foreach ($tabellen AS $attribute)
|
||||
|
||||
echo '<H2>Gegenpruefung!</H2>';
|
||||
$error=false;
|
||||
$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports';";
|
||||
$sql_query="SELECT schemaname,tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema' AND schemaname != 'sync' AND schemaname != 'addon' AND schemaname != 'reports' AND schemaname != 'extension';";
|
||||
if (!$result=@$db->db_query($sql_query))
|
||||
echo '<BR><strong>'.$db->db_last_error().' </strong><BR>';
|
||||
else
|
||||
|
||||
@@ -703,8 +703,7 @@ echo '
|
||||
"False" : function(e, n, f, i, $r, c, data) { return /f/.test(e); }
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$(\'.resetsaved\').click(function()
|
||||
|
||||
@@ -20,22 +20,31 @@
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Changes: 23.10.2004: Anpassung an neues DB-Schema (WM)
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('mitarbeiter',null,'suid'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$sql_query="SELECT beschreibung,funktion_kurzbz FROM public.tbl_funktion ORDER BY funktion_kurzbz";
|
||||
$result_funktion=$db->db_query($sql_query);
|
||||
if(!$result_funktion)
|
||||
die("funktion not found!" .$db->db_last_error());
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Funktion</title>
|
||||
@@ -71,7 +80,7 @@ if ($result_funktion!=0)
|
||||
echo '<thead>
|
||||
<tr>';
|
||||
for ($i=0;$i<$num_fields; $i++)
|
||||
echo "<th class='table-sortable:default'>".$db->db_field_name($result_funktion,$i)."</th>";
|
||||
echo "<th class='table-sortable:default'>".$db->db_field_name($result_funktion,$i)."</th>";
|
||||
echo '<th></th>';
|
||||
echo '<th></th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
|
||||
@@ -121,7 +121,7 @@ echo '<html>
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('mitarbeiter/zeitsperre'))
|
||||
if(!$rechte->isBerechtigt('mitarbeiter/zeitsperre', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
//Formular zur Eingabe der UID
|
||||
|
||||
@@ -52,7 +52,7 @@ $uid_benutzer = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid_benutzer);
|
||||
if(!$rechte->isBerechtigt('mitarbeiter'))
|
||||
if(!$rechte->isBerechtigt('mitarbeiter', null, 'suid'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
@@ -1,230 +1,250 @@
|
||||
<?php
|
||||
/* Copyright (C) 2011 FH Technikum-Wien
|
||||
*
|
||||
* 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Seite zur Wartung der Ampeln
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/ampel.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/ampel'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$datum_obj = new datum();
|
||||
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Ampel - Details</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/jquery-ui-1.9.2.custom.min.css" type="text/css">
|
||||
<script type="text/javascript" src="../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$( ".datepicker_datum" ).datepicker({
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
$action = (isset($_GET['action'])?$_GET['action']:'new');
|
||||
$ampel_id = (isset($_REQUEST['ampel_id'])?$_REQUEST['ampel_id']:'');
|
||||
$ampel = new ampel();
|
||||
|
||||
if($action=='save')
|
||||
{
|
||||
$kurzbz = (isset($_POST['kurzbz'])?$_POST['kurzbz']:die('Kurzbz fehlt'));
|
||||
$beschreibung = '';
|
||||
$buttontext = '';
|
||||
foreach ($_POST as $key=>$value)
|
||||
{
|
||||
if(mb_strstr($key,'beschreibung'))
|
||||
{
|
||||
$idx = mb_substr($key, mb_strlen('beschreibung'));
|
||||
$beschreibung[$idx] = $value;
|
||||
}
|
||||
elseif(mb_strstr($key,'buttontext'))
|
||||
{
|
||||
$idx = mb_substr($key, mb_strlen('buttontext'));
|
||||
$buttontext[$idx] = $value;
|
||||
}
|
||||
}
|
||||
$benutzer_select = (isset($_POST['benutzer_select'])?$_POST['benutzer_select']:die('Benutzer_select fehlt'));
|
||||
$deadline = (isset($_POST['deadline'])?$_POST['deadline']:die('Deadline fehlt'));
|
||||
$vorlaufzeit = (isset($_POST['vorlaufzeit'])?$_POST['vorlaufzeit']:die('Vorlaufzeit fehlt'));
|
||||
$verfallszeit = (isset($_POST['verfallszeit'])?$_POST['verfallszeit']:die('verfallszeit fehlt'));
|
||||
$email = isset($_POST['email']);
|
||||
$verpflichtend = isset($_POST['verpflichtend']);
|
||||
$new = (isset($_POST['new'])?$_POST['new']:'true');
|
||||
if($new=='true')
|
||||
{
|
||||
$ampel->insertamum=date('Y-m-d H:i:s');
|
||||
$ampel->insertvon = $user;
|
||||
$ampel->new = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!$ampel->load($ampel_id))
|
||||
die($ampel->errormsg);
|
||||
|
||||
$ampel->new=false;
|
||||
}
|
||||
|
||||
$ampel->kurzbz=$kurzbz;
|
||||
$ampel->beschreibung = $beschreibung;
|
||||
$ampel->benutzer_select = $benutzer_select;
|
||||
$ampel->deadline = $datum_obj->formatDatum($deadline,'Y-m-d');
|
||||
$ampel->vorlaufzeit = $vorlaufzeit;
|
||||
$ampel->verfallszeit = $verfallszeit;
|
||||
$ampel->email = $email;
|
||||
$ampel->verpflichtend = $verpflichtend;
|
||||
$ampel->buttontext = $buttontext;
|
||||
$ampel->updateamum = date('Y-m-d H:i:s');
|
||||
$ampel->updatevon = $user;
|
||||
|
||||
if($ampel->save())
|
||||
{
|
||||
echo '<span class="ok">Daten erfolgreich gespeichert</span>';
|
||||
echo "<script type='text/javascript'>\n";
|
||||
echo " parent.uebersicht_ampel.location.href='ampel_uebersicht.php';";
|
||||
echo "</script>\n";
|
||||
$action='update';
|
||||
$ampel_id = $ampel->ampel_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$action='new';
|
||||
echo '<span class="error">'.$ampel->errormsg.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '<fieldset>';
|
||||
switch($action)
|
||||
{
|
||||
case 'new':
|
||||
echo '<legend>Neu</legend>';
|
||||
$new = 'true';
|
||||
break;
|
||||
case 'update':
|
||||
if(!$ampel->load($ampel_id))
|
||||
die($ampel->errormsg);
|
||||
echo "<legend>Bearbeiten von ID $ampel_id</legend>";
|
||||
$new = 'false';
|
||||
break;
|
||||
case 'copy':
|
||||
if(!$ampel->load($ampel_id))
|
||||
die($ampel->errormsg);
|
||||
echo "<legend>Kopieren von ID $ampel_id</legend>";
|
||||
$new = 'true';
|
||||
$ampel->ampel_id='';
|
||||
break;
|
||||
default:
|
||||
die('Invalid Action');
|
||||
break;
|
||||
}
|
||||
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=save" method="POST">
|
||||
<input type="hidden" name="new" value="'.htmlspecialchars($new).'">
|
||||
<input type="hidden" name="ampel_id" value="'.htmlspecialchars($ampel->ampel_id).'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Kurzbz (64)</td>
|
||||
<td><input type="text" name="kurzbz" size="60" maxlength="64" value="'.htmlspecialchars($ampel->kurzbz).'" required></td>
|
||||
<td></td>
|
||||
<td>Deadline</td>
|
||||
<td><input type="text" class="datepicker_datum" name="deadline" size="10" maxlength="10" value="'.htmlspecialchars($datum_obj->formatDatum($ampel->deadline,'d.m.Y')).'" required></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td rowspan="3">Benutzer Select</td>
|
||||
<td rowspan="3"><textarea name="benutzer_select" cols="60" rows="5" required>'.htmlspecialchars($ampel->benutzer_select).'</textarea></td>
|
||||
<td></td>
|
||||
<td valign="middle">Vorlaufzeit (in Tagen)</td>
|
||||
<td valign="middle"><input type="text" name="vorlaufzeit" size="4" maxlength="4" value="'.htmlspecialchars($ampel->vorlaufzeit).'"></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td></td>
|
||||
<td>Verfallszeit (in Tagen)</td>
|
||||
<td><input type="text" name="verfallszeit" size="4" maxlength="4" value="'.htmlspecialchars($ampel->verfallszeit).'"></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td></td>
|
||||
<td>Erinnerung per Email</td>
|
||||
<td><input type="checkbox" name="email" '.($db->db_parse_bool($ampel->email)?'checked':'').'></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>Verpflichtend</td>
|
||||
<td><input type="checkbox" name="verpflichtend" '.($db->db_parse_bool($ampel->verpflichtend)?'checked':'').'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Beschreibung</td>
|
||||
<td> </td>
|
||||
<td>Buttonbeschriftung (64)</td>
|
||||
<td> </td>
|
||||
</tr>';
|
||||
|
||||
|
||||
$sprache = new sprache();
|
||||
$sprache->getAll(null, 'index');
|
||||
foreach($sprache->result as $lang)
|
||||
{
|
||||
echo '
|
||||
<tr valign="top">
|
||||
<td>'.$lang->sprache.'</td>
|
||||
<td><textarea name="beschreibung'.$lang->sprache.'" cols="60" rows="5">'.htmlspecialchars((isset($ampel->beschreibung[$lang->sprache])?$ampel->beschreibung[$lang->sprache]:'')).'</textarea></td>
|
||||
<td></td>
|
||||
<td colspan="2"><input size="70" maxlength="64" name="buttontext'.$lang->sprache.'" value="'.htmlspecialchars((isset($ampel->buttontext[$lang->sprache])?$ampel->buttontext[$lang->sprache]:'')).'"></td>
|
||||
</tr>';
|
||||
}
|
||||
echo '
|
||||
<tr valign="bottom">
|
||||
<td colspan="5"><input type="submit" value="Speichern" name="save"></td>
|
||||
</tr>
|
||||
</table></form>';
|
||||
|
||||
echo '</fieldset>';
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
/* Copyright (C) 2011 FH Technikum-Wien
|
||||
*
|
||||
* 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Cristina Hainberger <hainberg@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Seite zur Wartung der Ampeln
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/ampel.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/ampel'))
|
||||
die($rechte->errormsg);
|
||||
|
||||
$datum_obj = new datum();
|
||||
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Ampel - Details</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../vendor/fortawesome/font-awesome/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="../../skin/jquery-ui-1.9.2.custom.min.css" type="text/css">
|
||||
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/twbs/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$( ".datepicker_datum" ).datepicker({
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
dateFormat: 'dd.mm.yy',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
/*remove input type="date" arrows*/
|
||||
input[type=date]::-webkit-inner-spin-button,
|
||||
input[type=date]::-webkit-outer-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php
|
||||
$action = (isset($_GET['action'])?$_GET['action']:'new');
|
||||
$ampel_id = (isset($_REQUEST['ampel_id'])?$_REQUEST['ampel_id']:'');
|
||||
$ampel = new ampel();
|
||||
|
||||
if($action=='save')
|
||||
{
|
||||
$kurzbz = (isset($_POST['kurzbz'])?$_POST['kurzbz']:die('Kurzbz fehlt'));
|
||||
$beschreibung = '';
|
||||
$buttontext = '';
|
||||
foreach ($_POST as $key=>$value)
|
||||
{
|
||||
if(mb_strstr($key,'beschreibung'))
|
||||
{
|
||||
$idx = mb_substr($key, mb_strlen('beschreibung'));
|
||||
$beschreibung[$idx] = $value;
|
||||
}
|
||||
elseif(mb_strstr($key,'buttontext'))
|
||||
{
|
||||
$idx = mb_substr($key, mb_strlen('buttontext'));
|
||||
$buttontext[$idx] = $value;
|
||||
}
|
||||
}
|
||||
$benutzer_select = (isset($_POST['benutzer_select'])?$_POST['benutzer_select']:die('Benutzer_select fehlt'));
|
||||
$deadline = (isset($_POST['deadline'])?$_POST['deadline']:die('Deadline fehlt'));
|
||||
$vorlaufzeit = (isset($_POST['vorlaufzeit'])?$_POST['vorlaufzeit']:die('Vorlaufzeit fehlt'));
|
||||
$verfallszeit = (isset($_POST['verfallszeit'])?$_POST['verfallszeit']:die('verfallszeit fehlt'));
|
||||
$email = isset($_POST['email']);
|
||||
$verpflichtend = isset($_POST['verpflichtend']);
|
||||
$new = (isset($_POST['new'])?$_POST['new']:'true');
|
||||
if($new=='true')
|
||||
{
|
||||
$ampel->insertamum=date('Y-m-d H:i:s');
|
||||
$ampel->insertvon = $user;
|
||||
$ampel->new = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!$ampel->load($ampel_id))
|
||||
die($ampel->errormsg);
|
||||
|
||||
$ampel->new=false;
|
||||
}
|
||||
|
||||
$ampel->kurzbz=$kurzbz;
|
||||
$ampel->beschreibung = $beschreibung;
|
||||
$ampel->benutzer_select = $benutzer_select;
|
||||
$ampel->deadline = $datum_obj->formatDatum($deadline,'Y-m-d');
|
||||
$ampel->vorlaufzeit = $vorlaufzeit;
|
||||
$ampel->verfallszeit = $verfallszeit;
|
||||
$ampel->email = $email;
|
||||
$ampel->verpflichtend = $verpflichtend;
|
||||
$ampel->buttontext = $buttontext;
|
||||
$ampel->updateamum = date('Y-m-d H:i:s');
|
||||
$ampel->updatevon = $user;
|
||||
|
||||
if($ampel->save())
|
||||
{
|
||||
echo '<span class="ok">Daten erfolgreich gespeichert</span>';
|
||||
echo "<script type='text/javascript'>\n";
|
||||
echo " parent.uebersicht_ampel.location.href='ampel_uebersicht.php';";
|
||||
echo "</script>\n";
|
||||
$action='update';
|
||||
$ampel_id = $ampel->ampel_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$action='new';
|
||||
echo '<span class="error">'.$ampel->errormsg.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '<fieldset>';
|
||||
switch($action)
|
||||
{
|
||||
case 'new':
|
||||
echo '<legend>Neu</legend>';
|
||||
$new = 'true';
|
||||
break;
|
||||
case 'update':
|
||||
if(!$ampel->load($ampel_id))
|
||||
die($ampel->errormsg);
|
||||
echo "<legend>Bearbeiten von ID $ampel_id</legend>";
|
||||
$new = 'false';
|
||||
break;
|
||||
case 'copy':
|
||||
if(!$ampel->load($ampel_id))
|
||||
die($ampel->errormsg);
|
||||
echo "<legend>Kopieren von ID $ampel_id</legend>";
|
||||
$new = 'true';
|
||||
$ampel->ampel_id='';
|
||||
break;
|
||||
default:
|
||||
die('Invalid Action');
|
||||
break;
|
||||
}
|
||||
|
||||
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=save" method="POST">
|
||||
<input type="hidden" name="new" value="'.htmlspecialchars($new).'">
|
||||
<input type="hidden" name="ampel_id" value="'.htmlspecialchars($ampel->ampel_id).'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Kurzbz (64)</td>
|
||||
<td><input type="text" name="kurzbz" size="60" maxlength="64" value="'.htmlspecialchars($ampel->kurzbz).'" required></td>
|
||||
<td></td>
|
||||
<td>Deadline 
|
||||
<i class="fa fa-info-circle fa-lg" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Die Deadline gibt den Tag an, ab dem die Ampel von gelb auf rot gesetzt wird."></i>
|
||||
</td>
|
||||
<td><input type="date" name="deadline" size="10" maxlength="10" value="'.htmlspecialchars($datum_obj->formatDatum($ampel->deadline,'Y-m-d')).'" required></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td rowspan="3">Benutzer Select</td>
|
||||
<td rowspan="3"><textarea name="benutzer_select" cols="60" rows="5" required>'.htmlspecialchars($ampel->benutzer_select).'</textarea></td>
|
||||
<td></td>
|
||||
<td valign="middle">Vorlaufzeit (in Tagen) 
|
||||
<i class="fa fa-info-circle fa-lg" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Anzahl der Tage VOR der Deadline, an denen die Ampel gezeigt werden soll.
Wenn keine Angabe, dann wird die Ampel gleich nach ihrer Erstellung angezeigt."></i>
|
||||
</td>
|
||||
<td valign="middle"><input type="text" name="vorlaufzeit" size="4" maxlength="4" value="'.htmlspecialchars($ampel->vorlaufzeit).'"></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td></td>
|
||||
<td>Verfallszeit (in Tagen) 
|
||||
<i class="fa fa-info-circle fa-lg" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Anzahl der Tage NACH der Deadline, an denen die Ampel gezeigt werden soll.
Wenn keine Angabe, dann wird die Ampel solange angezeigt, bis sie bestätigt wird."></i>
|
||||
</td>
|
||||
<td><input type="text" name="verfallszeit" size="4" maxlength="4" value="'.htmlspecialchars($ampel->verfallszeit).'"></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td></td>
|
||||
<td>Erinnerung per Email</td>
|
||||
<td><input type="checkbox" name="email" '.($db->db_parse_bool($ampel->email)?'checked':'').'></td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>Verpflichtend</td>
|
||||
<td><input type="checkbox" name="verpflichtend" '.($db->db_parse_bool($ampel->verpflichtend)?'checked':'').'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Beschreibung</td>
|
||||
<td> </td>
|
||||
<td>Buttonbeschriftung (64)</td>
|
||||
<td> </td>
|
||||
</tr>';
|
||||
|
||||
|
||||
$sprache = new sprache();
|
||||
$sprache->getAll(null, 'index');
|
||||
foreach($sprache->result as $lang)
|
||||
{
|
||||
//only show languages which are set true
|
||||
if ($lang->content == true)
|
||||
{
|
||||
echo '
|
||||
<tr valign="top">
|
||||
<td>'.$lang->sprache.'</td>
|
||||
<td><textarea name="beschreibung'.$lang->sprache.'" cols="60" rows="5">'.htmlspecialchars((isset($ampel->beschreibung[$lang->sprache])?$ampel->beschreibung[$lang->sprache]:'')).'</textarea></td>
|
||||
<td></td>
|
||||
<td colspan="2"><input size="70" maxlength="64" name="buttontext'.$lang->sprache.'" value="'.htmlspecialchars((isset($ampel->buttontext[$lang->sprache])?$ampel->buttontext[$lang->sprache]:'')).'"></td>
|
||||
</tr>';
|
||||
}
|
||||
}
|
||||
echo '
|
||||
<tr valign="bottom">
|
||||
<td colspan="5"><input type="submit" value="Speichern" name="save"></td>
|
||||
</tr>
|
||||
</table></form>';
|
||||
|
||||
echo '</fieldset>';
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -27,6 +27,8 @@ require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
require_once('../../include/berechtigung.class.php');
|
||||
require_once ('../../include/organisationseinheit.class.php');
|
||||
require_once ('../../include/benutzerfunktion.class.php');
|
||||
|
||||
echo '<html>
|
||||
<head>
|
||||
@@ -52,20 +54,34 @@ function checkLength()
|
||||
}
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#erweitertesuche").hide();
|
||||
if ($("#berechtigung_kurzbz").val() == "" && $("#rolle_kurzbz").val() == "")
|
||||
$("#erweitertesuche").hide();
|
||||
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {4:{sorter:false}}
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra"],
|
||||
headers: {4:{sorter:false}}
|
||||
});
|
||||
$("#t2").tablesorter(
|
||||
{
|
||||
sortList: [[1,0],[2,0],[3,0],[4,0]],
|
||||
widgets: ["zebra"],
|
||||
sortList: [[0,0],[1,0],[2,0],[3,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {8:{sorter:false}},
|
||||
emptyTo: "emptyMax"
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
6 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
},
|
||||
7 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
$("#t3").tablesorter(
|
||||
{
|
||||
@@ -74,9 +90,81 @@ $(document).ready(function()
|
||||
headers: {8:{sorter:false}},
|
||||
emptyTo: "emptyMax"
|
||||
});
|
||||
$("#t4").tablesorter(
|
||||
{
|
||||
sortList: [[0,0],[1,0],[2,0]],
|
||||
widgets: ["zebra", "filter", "stickyHeaders"],
|
||||
headers: {9:{sorter:false}},
|
||||
emptyTo: "emptyMax",
|
||||
widgetOptions : { filter_functions:
|
||||
{
|
||||
// Add select menu to this column
|
||||
7 : {
|
||||
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
|
||||
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
|
||||
},
|
||||
8 : {
|
||||
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
|
||||
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.buttonGreen
|
||||
{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #d1fab9;
|
||||
background-image: -webkit-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: -moz-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: -ms-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: -o-linear-gradient(top, #d1fab9, #00de00);
|
||||
background-image: linear-gradient(to bottom, #d1fab9, #00de00);
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.buttonYellow
|
||||
{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #faf7b9;
|
||||
background-image: -webkit-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: -moz-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: -ms-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: -o-linear-gradient(top, #faf7b9, #cfde00);
|
||||
background-image: linear-gradient(to bottom, #faf7b9, #cfde00);
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
}
|
||||
.buttonRed
|
||||
{
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #f79c9c;
|
||||
background-image: -webkit-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: -moz-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: -ms-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: -o-linear-gradient(top, #f79c9c, #cc0202);
|
||||
background-image: linear-gradient(to bottom, #f79c9c, #cc0202);
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
@@ -102,6 +190,7 @@ $benutzerart = (isset($_GET['benutzerart'])?$_GET['benutzerart']:'');
|
||||
$benutzeraktiv = (isset($_GET['aktiv'])?$_GET['aktiv']:'aktiv');
|
||||
$berechtigung_kurzbz = (isset($_GET['berechtigung_kurzbz'])?$_GET['berechtigung_kurzbz']:'');
|
||||
$rolle_kurzbz = (isset($_GET['rolle_kurzbz'])?$_GET['rolle_kurzbz']:'');
|
||||
$userOnly = (isset($_GET['userOnly']) ? true : false);
|
||||
|
||||
$htmlstr='
|
||||
<table width="100%">
|
||||
@@ -141,6 +230,7 @@ $htmlstr='
|
||||
$htmlstr .= '<option value="'.$berechtigung->berechtigung_kurzbz.'" title="'.$berechtigung->beschreibung.'" '.$selected.'>'.$berechtigung->berechtigung_kurzbz.'</option>';
|
||||
}
|
||||
$htmlstr .= '</select>
|
||||
<input type="checkbox" name="userOnly" ' . ($userOnly == true ? 'checked' : '') . '> Nur User
|
||||
<input type="submit" value="Suchen">
|
||||
</form><hr>
|
||||
<form accept-charset="UTF-8" name="searchrollen" method="GET">
|
||||
@@ -247,77 +337,186 @@ if(isset($_GET['searchstr']))
|
||||
if($berechtigung_kurzbz != '')
|
||||
{
|
||||
$berechtigungen = new benutzerberechtigung();
|
||||
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
|
||||
|
||||
if(isset($berechtigungen->result) && count($berechtigungen->result) != 0)
|
||||
{
|
||||
$htmlstr .= "<table id='t2' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= "<th>Berechtigung</th><th>Rolle</th><th>Funktion</th><th>Nachname</th><th>Vorname</th><th>UID</th><th>Art</th><th>Benutzer Aktiv</th><th>Status</th><th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach($berechtigungen->result as $row)
|
||||
|
||||
// Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten,
|
||||
// ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben
|
||||
if ($userOnly == false)
|
||||
{
|
||||
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
|
||||
|
||||
if(isset($berechtigungen->result) && count($berechtigungen->result) != 0)
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($row->uid);
|
||||
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
if ($row->ende!='' && strtotime($row->ende) < $heute)
|
||||
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
|
||||
$htmlstr .= "<table id='t2' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= "<th>Rolle</th><th>Funktion</th><th>Nachname</th><th>Vorname</th><th>UID</th><th>Art</th><th>Benutzer Aktiv</th><th>Status</th><th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach($berechtigungen->result as $row)
|
||||
{
|
||||
$color1 = '#f79c9c';
|
||||
$color2 = '#cc0202';
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($row->uid);
|
||||
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
if ($row->ende!='' && strtotime($row->ende) < $heute)
|
||||
{
|
||||
$status = '<div class="buttonRed"></div>';
|
||||
}
|
||||
elseif ($row->start!='' && strtotime($row->start) > $heute)
|
||||
{
|
||||
$status = '<div class="buttonYellow"></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$status = '<div class="buttonGreen"></div>';
|
||||
}
|
||||
|
||||
$htmlstr .= ' <tr>';
|
||||
$htmlstr .= ' <td>'.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->nachname != ''?$benutzer->nachname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->vorname != ''?$benutzer->vorname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->uid != ''?$row->uid:'').'</td>';
|
||||
$htmlstr .= ' <td>'.$row->art.'</td>';
|
||||
$htmlstr .= ' <td>'.(isset($row->uid)?$benutzer->bnaktiv?'Ja':'Nein':'').'</td>';
|
||||
$htmlstr .= ' <td align="center">'.$status.'</td>';
|
||||
if ($row->uid != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid='.$row->uid.'" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
|
||||
elseif ($row->funktion_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?funktion_kurzbz='.$row->funktion_kurzbz.'" target="vilesci_detail">Funktionsrechte bearbeiten</a></td>';
|
||||
elseif ($row->rolle_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="berechtigungrolle.php?rolle_kurzbz='.$row->rolle_kurzbz.'" target="vilesci_detail">Rollenrechte bearbeiten</a></td>';
|
||||
|
||||
$htmlstr .= ' </tr>';
|
||||
}
|
||||
elseif ($row->start!='' && strtotime($row->start) > $heute)
|
||||
{
|
||||
$color1 = '#faf7b9';
|
||||
$color2 = '#cfde00';
|
||||
}
|
||||
else
|
||||
{
|
||||
$color1 = '#d1fab9';
|
||||
$color2 = '#00de00';
|
||||
}
|
||||
$status='<div style="
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: '.$color1.';
|
||||
background-image: -webkit-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: -moz-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: -ms-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: -o-linear-gradient(top, '.$color1.', '.$color2.');
|
||||
background-image: linear-gradient(to bottom, '.$color1.', '.$color2.');
|
||||
-webkit-border-radius: 10;
|
||||
-moz-border-radius: 10;
|
||||
border-radius: 10px;
|
||||
|
||||
border: solid #999 1px;
|
||||
text-decoration: none;
|
||||
"></div>';
|
||||
|
||||
$htmlstr .= ' <tr>';
|
||||
$htmlstr .= ' <td>'.$row->berechtigung_kurzbz.'</td>';
|
||||
$htmlstr .= ' <td>'.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->nachname != ''?$benutzer->nachname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($benutzer->vorname != ''?$benutzer->vorname:'').'</td>';
|
||||
$htmlstr .= ' <td>'.($row->uid != ''?$row->uid:'').'</td>';
|
||||
$htmlstr .= ' <td>'.$row->art.'</td>';
|
||||
$htmlstr .= ' <td>'.(isset($row->uid)?$benutzer->bnaktiv?'Ja':'Nein':'').'</td>';
|
||||
$htmlstr .= ' <td align="center">'.$status.'</td>';
|
||||
if ($row->uid != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid='.$row->uid.'" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
|
||||
elseif ($row->funktion_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?funktion_kurzbz='.$row->funktion_kurzbz.'" target="vilesci_detail">Funktionsrechte bearbeiten</a></td>';
|
||||
elseif ($row->rolle_kurzbz != '')
|
||||
$htmlstr .= ' <td><a href="berechtigungrolle.php?rolle_kurzbz='.$row->rolle_kurzbz.'" target="vilesci_detail">Rollenrechte bearbeiten</a></td>';
|
||||
|
||||
$htmlstr .= ' </tr>';
|
||||
$htmlstr .= '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
|
||||
}
|
||||
$htmlstr .= '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
|
||||
else
|
||||
{
|
||||
$berechtigungen_array = array();
|
||||
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
|
||||
|
||||
if (isset($berechtigungen->result) && count($berechtigungen->result) != 0)
|
||||
{
|
||||
foreach ($berechtigungen->result as $row)
|
||||
{
|
||||
if ($row->uid != '')
|
||||
{
|
||||
$berechtigungen_array[] = array('uid' => $row->uid,
|
||||
'art' => $row->art,
|
||||
'start' => $row->start,
|
||||
'ende' => $row->ende,
|
||||
'oe_kurzbz' => $row->oe_kurzbz,
|
||||
'rolle_kurzbz' => '',
|
||||
'funktion_kurzbz' => '');
|
||||
}
|
||||
if ($row->rolle_kurzbz != '')
|
||||
{
|
||||
$user_rolleberechtigung = new benutzerberechtigung();
|
||||
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
|
||||
foreach ($user_rolleberechtigung->result as $row_rolle)
|
||||
{
|
||||
$berechtigungen_array[] = array('uid' => $row_rolle->uid,
|
||||
'art' => $row_rolle->art,
|
||||
'start' => $row_rolle->start,
|
||||
'ende' => $row_rolle->ende,
|
||||
'oe_kurzbz' => $row_rolle->oe_kurzbz,
|
||||
'rolle_kurzbz' => $row_rolle->rolle_kurzbz,
|
||||
'funktion_kurzbz' => $row->funktion_kurzbz);
|
||||
}
|
||||
}
|
||||
if ($row->funktion_kurzbz != '')
|
||||
{
|
||||
$user_funktion = new benutzerfunktion();
|
||||
$user_funktion->getBenutzerFunktionen($row->funktion_kurzbz);
|
||||
foreach ($user_funktion->result as $row_funktion)
|
||||
{
|
||||
$berechtigungen_array[] = array('uid' => $row_funktion->uid,
|
||||
'art' => $row->art,
|
||||
'start' => $row->start,
|
||||
'ende' => $row->ende,
|
||||
'oe_kurzbz' => $row_funktion->oe_kurzbz,
|
||||
'rolle_kurzbz' => '',
|
||||
'funktion_kurzbz' => $row->funktion_kurzbz);
|
||||
}
|
||||
}
|
||||
}
|
||||
// var_dump($berechtigungen_array);exit;
|
||||
// Benutzer der Rolle auflösen
|
||||
foreach ($berechtigungen->result as $row)
|
||||
{
|
||||
$user_rolleberechtigung = new benutzerberechtigung();
|
||||
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
|
||||
}
|
||||
|
||||
// Anzahl uniquer UIDs ermitteln
|
||||
$berechtigungen_array_uids = array_map(function ($each)
|
||||
{
|
||||
return $each['uid'];
|
||||
}, $berechtigungen_array);
|
||||
|
||||
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".count($berechtigungen_array)." Einträge</div>";
|
||||
$htmlstr .= "<div style='font-size: 9pt'>".count(array_unique($berechtigungen_array_uids))." UIDs</div>";
|
||||
$htmlstr .= "<table id='t4' class='tablesorter'><thead><tr>\n";
|
||||
$htmlstr .= " <th>Nachname</th>
|
||||
<th>Vorname</th>
|
||||
<th>UID</th>
|
||||
<th>Art</th>
|
||||
<th>OE_Kurzbz</th>
|
||||
<th>Rolle</th>
|
||||
<th>Funktion</th>
|
||||
<th>Benutzer Aktiv</th>
|
||||
<th>Status</th>
|
||||
<th>Aktion</th>";
|
||||
$htmlstr .= "</tr></thead><tbody>\n";
|
||||
|
||||
foreach ($berechtigungen_array as $key => $row)
|
||||
{
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($row['uid']);
|
||||
|
||||
$organisationseinheit = new organisationseinheit($row['oe_kurzbz']);
|
||||
|
||||
$heute = strtotime(date('Y-m-d'));
|
||||
|
||||
if ($row['ende'] != '' && strtotime($row['ende']) < $heute)
|
||||
{
|
||||
$status = '<div class="buttonRed"></div>';
|
||||
}
|
||||
elseif ($row['start'] != '' && strtotime($row['start']) > $heute)
|
||||
{
|
||||
$status = '<div class="buttonYellow"></div>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$status = '<div class="buttonGreen"></div>';
|
||||
}
|
||||
|
||||
$htmlstr .= ' <tr>';
|
||||
$htmlstr .= ' <td>' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '</td>';
|
||||
$htmlstr .= ' <td>' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '</td>';
|
||||
$htmlstr .= ' <td>' . ($row['uid'] != '' ? $row['uid'] : '') . '</td>';
|
||||
$htmlstr .= ' <td>' . $row['art'] . '</td>';
|
||||
$htmlstr .= ' <td>' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '</td>';
|
||||
$htmlstr .= ' <td>' . $row['rolle_kurzbz'] . '</td>';
|
||||
$htmlstr .= ' <td>' . $row['funktion_kurzbz'] . '</td>';
|
||||
$htmlstr .= ' <td>' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '</td>';
|
||||
$htmlstr .= ' <td align="center">' . $status . '</td>';
|
||||
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid=' . $row['uid'] . '" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
|
||||
$htmlstr .= ' </tr>';
|
||||
}
|
||||
$htmlstr .= '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -178,14 +178,22 @@ if(isset($_GET['excel']))
|
||||
$reihungstest = new reihungstest();
|
||||
if($reihungstest->load($_GET['reihungstest_id']))
|
||||
{
|
||||
$rt_studienplan_id = '';
|
||||
$studienplaene_arr = array();
|
||||
$studienplaene = new reihungstest();
|
||||
$studienplaene->getStudienplaeneReihungstest($reihungstest->reihungstest_id);
|
||||
foreach ($studienplaene->result AS $row)
|
||||
{
|
||||
$studienplan = new studienplan();
|
||||
$studienplan->loadStudienplan($row->studienplan_id);
|
||||
$studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung;
|
||||
if($studienplan->loadStudienplan($row->studienplan_id))
|
||||
{
|
||||
$studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung;
|
||||
$rt_studienplan_id = $row->studienplan_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Fehler beim Laden:'.$studienplan->errormsg);
|
||||
}
|
||||
}
|
||||
|
||||
$studienplaene_list = implode(',', array_keys($studienplaene_arr));
|
||||
@@ -249,12 +257,15 @@ if(isset($_GET['excel']))
|
||||
";
|
||||
|
||||
$gebietbezeichnungen = array();
|
||||
$qry_gebiete = "SELECT gebiet_id, reihung, bezeichnung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row->studienplan_id)." ORDER BY reihung";
|
||||
if($result_gebiete = $db->db_query($qry_gebiete))
|
||||
if ($rt_studienplan_id != '')
|
||||
{
|
||||
while($row_gebiete = $db->db_fetch_object($result_gebiete))
|
||||
$qry_gebiete = "SELECT gebiet_id, reihung, bezeichnung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($rt_studienplan_id)." ORDER BY reihung";
|
||||
if($result_gebiete = $db->db_query($qry_gebiete))
|
||||
{
|
||||
$gebietbezeichnungen[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung;
|
||||
while($row_gebiete = $db->db_fetch_object($result_gebiete))
|
||||
{
|
||||
$gebietbezeichnungen[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ $user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/statistik'))
|
||||
if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
|
||||
@@ -27,16 +27,16 @@ $user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/statistik'))
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Statistik</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
@@ -45,19 +45,19 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#myTable").tablesorter(
|
||||
{
|
||||
sortList: [[1,0]],
|
||||
widgets: [\'zebra\']
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
function confdel()
|
||||
{
|
||||
return confirm("Wollen Sie diesen Eintrag wirklich löschen?");
|
||||
@@ -73,10 +73,10 @@ if(isset($_GET['action']) && $_GET['action']=='delete')
|
||||
{
|
||||
if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
if(!isset($_GET['statistik_kurzbz']))
|
||||
die('Fehlender Parameter Statistik');
|
||||
|
||||
|
||||
$statistik = new statistik();
|
||||
if($statistik->delete($_GET['statistik_kurzbz']))
|
||||
echo '<span class="ok">Eintrag wurde erfolgreich gelöscht</span>';
|
||||
|
||||
@@ -23,18 +23,18 @@
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/filter.class.php');
|
||||
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/statistik'))
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite!');
|
||||
|
||||
|
||||
|
||||
|
||||
$reloadstr = ''; // neuladen der liste im oberen frame
|
||||
$htmlstr = '';
|
||||
$errorstr = ''; //fehler beim insert
|
||||
|
||||
@@ -30,7 +30,7 @@ $user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/statistik', null, 's'))
|
||||
if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
|
||||
die('Sie haben keine Berechtigung (basis/statistik) für diese Seite');
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user