mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 09:22:22 +00:00
Merge branch 'review/DigitaleLehrauftraege'
This commit is contained in:
@@ -52,7 +52,8 @@ class Lehrauftrag extends Auth_Controller
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre'
|
||||
'lehre',
|
||||
'table'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -8,180 +8,195 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
*/
|
||||
class LehrauftragAkzeptieren extends Auth_Controller
|
||||
{
|
||||
const APP = 'lehrauftrag';
|
||||
const LEHRAUFTRAG_URI = 'lehre/lehrauftrag/LehrauftragAkzeptieren'; // URL prefix for this controller
|
||||
const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
|
||||
const APP = 'lehrauftrag';
|
||||
const LEHRAUFTRAG_URI = 'lehre/lehrauftrag/LehrauftragAkzeptieren'; // URL prefix for this controller
|
||||
const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
|
||||
|
||||
private $_uid; // uid of the logged user
|
||||
private $_uid; // uid of the logged user
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/lehrauftrag_akzeptieren:r',
|
||||
'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw',
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/lehrauftrag_akzeptieren:r',
|
||||
'acceptLehrauftrag' => 'lehre/lehrauftrag_akzeptieren:rw',
|
||||
'checkInkludierteLehre' => 'lehre/lehrauftrag_akzeptieren:rw'
|
||||
)
|
||||
);
|
||||
)
|
||||
);
|
||||
|
||||
// Load models
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$this->load->model('accounting/Vertrag_model', 'VertragModel');
|
||||
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
|
||||
$this->load->model('codex/Bisverwendung_model', 'BisverwendungModel');
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
// Load models
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
$this->load->model('accounting/Vertrag_model', 'VertragModel');
|
||||
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
|
||||
$this->load->model('codex/Bisverwendung_model', 'BisverwendungModel');
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
|
||||
// Load libraries
|
||||
$this->load->library('WidgetLib');
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AuthLib');
|
||||
// Load libraries
|
||||
$this->load->library('WidgetLib');
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('array');
|
||||
$this->load->helper('url');
|
||||
// Load helpers
|
||||
$this->load->helper('array');
|
||||
$this->load->helper('url');
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre'
|
||||
)
|
||||
);
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre',
|
||||
'password',
|
||||
'dms',
|
||||
'table'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Main page of Lehrauftrag
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Set studiensemester selected for studiengang dropdown
|
||||
$studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester
|
||||
if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value
|
||||
{
|
||||
$studiensemester = $this->StudiensemesterModel->getAktOrNextSemester();
|
||||
if (hasData($studiensemester))
|
||||
{
|
||||
$studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz;
|
||||
}
|
||||
elseif (isError($studiensemester))
|
||||
{
|
||||
show_error(getError($studiensemester));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Main page of Lehrauftrag
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// Set studiensemester selected for studiengang dropdown
|
||||
$studiensemester_kurzbz = $this->input->get('studiensemester'); // if provided by selected studiensemester
|
||||
if (is_null($studiensemester_kurzbz)) // else set next studiensemester as default value
|
||||
{
|
||||
$studiensemester = $this->StudiensemesterModel->getAktOrNextSemester();
|
||||
if (hasData($studiensemester))
|
||||
{
|
||||
$studiensemester_kurzbz = $studiensemester->retval[0]->studiensemester_kurzbz;
|
||||
}
|
||||
elseif (isError($studiensemester))
|
||||
{
|
||||
show_error(getError($studiensemester));
|
||||
}
|
||||
}
|
||||
|
||||
$view_data = array(
|
||||
'studiensemester_selected' => $studiensemester_kurzbz
|
||||
);
|
||||
// Check if user is external lector
|
||||
$is_external_lector = false;
|
||||
|
||||
$this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data);
|
||||
}
|
||||
if ($result = getData($this->BisverwendungModel->getLast($this->_uid, false)))
|
||||
{
|
||||
if (is_null($result[0]->inkludierte_lehre) || $result[0]->inkludierte_lehre == 0)
|
||||
{
|
||||
$is_external_lector = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the contract status of Lehrauftrag to 'akzeptiert'.
|
||||
* Performed on ajax call.
|
||||
*/
|
||||
public function acceptLehrauftrag()
|
||||
{
|
||||
// Verify password
|
||||
$password = $this->input->post('password');
|
||||
if (!isEmptyString($password))
|
||||
{
|
||||
$result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
|
||||
if (isError($result))
|
||||
{
|
||||
return $this->outputJsonError('Passwort ist inkorrekt'); // exit if password is incorrect
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$view_data = array(
|
||||
'studiensemester_selected' => $studiensemester_kurzbz,
|
||||
'is_external_lector' => $is_external_lector
|
||||
);
|
||||
|
||||
$this->load->view('lehre/lehrauftrag/acceptLehrauftrag.php', $view_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the contract status of Lehrauftrag to 'akzeptiert'.
|
||||
* Performed on ajax call.
|
||||
*/
|
||||
public function acceptLehrauftrag()
|
||||
{
|
||||
// Verify password
|
||||
$password = $this->input->post('password');
|
||||
if (!isEmptyString($password))
|
||||
{
|
||||
$result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
|
||||
if (isError($result))
|
||||
{
|
||||
return $this->outputJsonError('Passwort ist inkorrekt'); // exit if password is incorrect
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Passwort fehlt');
|
||||
}
|
||||
}
|
||||
|
||||
// Loop through lehraufträge
|
||||
$lehrauftrag_arr = $this->input->post('selected_data');
|
||||
// Loop through lehraufträge
|
||||
$lehrauftrag_arr = $this->input->post('selected_data');
|
||||
|
||||
if(is_array($lehrauftrag_arr))
|
||||
{
|
||||
foreach($lehrauftrag_arr as $lehrauftrag)
|
||||
{
|
||||
$vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
|
||||
if(is_array($lehrauftrag_arr))
|
||||
{
|
||||
foreach($lehrauftrag_arr as $lehrauftrag)
|
||||
{
|
||||
$vertrag_id = (!is_null($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null;
|
||||
|
||||
// Check if user is entitled to accept this Lehrauftrag
|
||||
// * first retrieve person_id of the contract
|
||||
$this->VertragModel->addSelect('person_id');
|
||||
// Check if user is entitled to accept this Lehrauftrag
|
||||
// * first retrieve person_id of the contract
|
||||
$this->VertragModel->addSelect('person_id');
|
||||
|
||||
if ($result = getData($this->VertragModel->load($vertrag_id)))
|
||||
{
|
||||
// * then find the uid of that contracts person_id
|
||||
$this->BenutzerModel->addSelect('uid');
|
||||
if ($result = getData($this->VertragModel->load($vertrag_id)))
|
||||
{
|
||||
// * then find the uid of that contracts person_id
|
||||
$this->BenutzerModel->addSelect('uid');
|
||||
|
||||
if ($result = getData($this->BenutzerModel->getFromPersonId($result[0]->person_id)))
|
||||
{
|
||||
// * finally check uid of contract against the logged in user
|
||||
if ($result = getData($this->BenutzerModel->getFromPersonId($result[0]->person_id)))
|
||||
{
|
||||
// * finally check uid of contract against the logged in user
|
||||
$account_found = false;
|
||||
foreach($result as $row_accounts)
|
||||
foreach ($result as $row_accounts)
|
||||
{
|
||||
if($row_accounts->uid == $this->_uid)
|
||||
if ($row_accounts->uid == $this->_uid)
|
||||
{
|
||||
$account_found = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$account_found)
|
||||
{
|
||||
if (!$account_found)
|
||||
{
|
||||
return $this->outputJsonError('Sie haben keine Berechtigung für einen Vertrag');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Laden der Benutzerdaten');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Laden des Vertrags');
|
||||
}
|
||||
}
|
||||
|
||||
// Set status to accepted
|
||||
$result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $this->_uid, 'akzeptiert');
|
||||
// Set status to accepted
|
||||
$result = $this->VertragvertragsstatusModel->setStatus($vertrag_id, $this->_uid, 'akzeptiert');
|
||||
|
||||
if ($result->retval)
|
||||
{
|
||||
$json []= array(
|
||||
'row_index' => $lehrauftrag['row_index'],
|
||||
'akzeptiert' => date('Y-m-d')
|
||||
);
|
||||
}
|
||||
if ($result->retval)
|
||||
{
|
||||
$json []= array(
|
||||
'row_index' => $lehrauftrag['row_index'],
|
||||
'akzeptiert' => date('Y-m-d')
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError($result->retval);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Output json to ajax
|
||||
if (isset($json) && !isEmptyArray($json))
|
||||
{
|
||||
$this->outputJsonSuccess($json);
|
||||
}
|
||||
}
|
||||
// Output json to ajax
|
||||
if (isset($json) && !isEmptyArray($json))
|
||||
{
|
||||
$this->outputJsonSuccess($json);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError('Fehler beim Übertragen der Daten.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if lectors latest Verwendung has inkludierte Lehre
|
||||
@@ -189,7 +204,7 @@ class LehrauftragAkzeptieren extends Auth_Controller
|
||||
* - inkludierte_lehre -1: fix employed lector -> has inkludierte Lehre (all inclusive)
|
||||
* - inkludierte_lehre > 0: fix employed lector -> has inkludierte Lehre (value is amount of hours included)
|
||||
*/
|
||||
public function checkInkludierteLehre()
|
||||
public function checkInkludierteLehre()
|
||||
{
|
||||
$result = $this->BisverwendungModel->getLast($this->_uid, false);
|
||||
|
||||
@@ -203,17 +218,17 @@ class LehrauftragAkzeptieren extends Auth_Controller
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -50,7 +50,8 @@ class LehrauftragErteilen extends Auth_Controller
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'lehre'
|
||||
'lehre',
|
||||
'table'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
@@ -69,6 +69,8 @@ function generateCSSsInclude($CSSs)
|
||||
*/
|
||||
function generateJSDataStorageObject($indexPage, $calledPath, $calledMethod)
|
||||
{
|
||||
$user_language = getUserLanguage();
|
||||
|
||||
$toPrint = "\n";
|
||||
$toPrint .= '<script type="text/javascript">';
|
||||
$toPrint .= '
|
||||
|
||||
@@ -1,175 +1,202 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag annehmen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => false,
|
||||
'tabulator' => true,
|
||||
'momentjs' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeAnnehmen'),
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/lehre/lehrauftrag/acceptLehrauftrag.js')
|
||||
)
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag annehmen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => false,
|
||||
'tabulator' => true,
|
||||
'momentjs' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array(
|
||||
'lehrauftraegeAnnehmen',
|
||||
'dokumentePDF',
|
||||
'PDFLehrauftraegeFH',
|
||||
'PDFLehrauftraegeLehrgaenge'
|
||||
),
|
||||
'ui' => array(
|
||||
'anzeigen',
|
||||
'alleAnzeigen',
|
||||
'nurBestellteAnzeigen',
|
||||
'nurErteilteAnzeigen',
|
||||
'nurAngenommeneAnzeigen',
|
||||
'nurStornierteAnzeigen',
|
||||
'hilfeZuDieserSeite',
|
||||
'alleAuswaehlen',
|
||||
'alleAbwaehlen',
|
||||
'ausgewaehlteZeilen',
|
||||
'hilfe',
|
||||
'tabelleneinstellungen',
|
||||
'keineDatenVorhanden',
|
||||
'spaltenEinstellen',
|
||||
'bestelltVon',
|
||||
'erteiltVon',
|
||||
'angenommenVon',
|
||||
'storniertVon',
|
||||
'lehrauftragInBearbeitung',
|
||||
'wartetAufErteilung',
|
||||
'wartetAufErneuteErteilung',
|
||||
'letzterStatusBestellt',
|
||||
'letzterStatusErteilt',
|
||||
'letzterStatusAngenommen',
|
||||
'vertragWurdeStorniert',
|
||||
),
|
||||
'password' => array('password'),
|
||||
'dms' => array('informationsblattExterneLehrende'),
|
||||
'table' => array(
|
||||
'spaltenEinAusblenden',
|
||||
'spaltenEinAusblendenMitKlickOeffnen',
|
||||
'spaltenEinAusblendenAufEinstellungenKlicken',
|
||||
'spaltenEinAusblendenMitKlickAktivieren',
|
||||
'spaltenEinAusblendenMitKlickSchliessen',
|
||||
'spaltenbreiteVeraendern',
|
||||
'spaltenbreiteVeraendernText',
|
||||
'spaltenbreiteVeraendernInfotext',
|
||||
'zeilenAuswaehlen',
|
||||
'zeilenAuswaehlenEinzeln',
|
||||
'zeilenAuswaehlenBereich',
|
||||
'zeilenAuswaehlenAlle'
|
||||
),
|
||||
'lehre' => array(
|
||||
'lehrauftraegeAnnehmen',
|
||||
'lehrauftraegeAnnehmenText',
|
||||
'lehrauftraegeAnnehmenKlickStatusicon',
|
||||
'lehrauftraegeAnnehmenLehrauftraegeWaehlen',
|
||||
'lehrauftraegeAnnehmenMitKlickAnnehmen',
|
||||
'lehrauftraegeNichtAuswaehlbar',
|
||||
'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme',
|
||||
'filterAlleBeiAnnahme',
|
||||
'filterErteiltBeiAnnahme',
|
||||
'filterAngenommen'
|
||||
)
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/lehre/lehrauftrag/acceptLehrauftrag.js')
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- title & helper link -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?>
|
||||
</h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- helper collapse module -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
<h4>Wie nehme ich Lehraufträge an?</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen.
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur erteilte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'erteilt' können gewählt werden.<br>
|
||||
Angenommene Lehraufträge oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information angezeigt.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<div class="col-xs-12 col-md-8 col-lg-6">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind</td>
|
||||
<td><b>Angenommen</b><br>Nur von Ihnen angenommene Lehraufträge</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragHelp') ?>
|
||||
</div> <!--./well-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- dropdown widgets -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formLehrauftrag" class="form-inline" action="" method="get">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
|
||||
),
|
||||
array(
|
||||
'name' => 'studiensemester',
|
||||
'id' => 'studiensemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formLehrauftrag" class="form-inline" action="" method="get">
|
||||
<input type="hidden" id="uid" name="uid" value="<?php echo getAuthUID(); ?>">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
|
||||
),
|
||||
array(
|
||||
'name' => 'studiensemester',
|
||||
'id' => 'studiensemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tabulator data table 'Lehrauftraege annehmen'-->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<!-- filter buttons & password field & akzeptieren-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag active focus" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i>
|
||||
<!-- link for external lectors 'Informationsblatt fuer externe Lehrende'. Show only for external lecturers -->
|
||||
<?php if ($is_external_lector): ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<span class="pull-right"><?php echo $this->p->t('dms' , 'informationsblattExterneLehrende'); ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- filter buttons & PDF downloads & password field & akzeptieren-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-5 col-md-4">
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag active focus" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i>
|
||||
</button>
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen">
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>">
|
||||
</button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i>
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button id="show-cancelled" class="btn btn-default btn-lehrauftrag" type="button" style="margin-left: 20px;"
|
||||
data-toggle="collapse" data-placement="left" title="Stornierte anzeigen"
|
||||
data-toggle="collapse" data-placement="left" title="<?php echo $this->p->t('ui', 'nurStornierteAnzeigen'); ?>"
|
||||
data-target ="#collapseCancelledLehrauftraege" aria-expanded="false" aria-controls="collapseExample">
|
||||
</button><!-- png img set in javascript -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-offset-2 col-md-4 col-xs-6">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-xs-3 col-md-offset-2 col-md-2">
|
||||
<div class="btn-group dropup pull-right">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<?php echo $this->p->t('global', 'dokumentePDF'); ?> <i class="fa fa-arrow-down"></i> <span class="caret"></span>
|
||||
</button>
|
||||
<ul id="ul-download-pdf" class="dropdown-menu">
|
||||
<li value="etw"><a href="#"><?php echo $this->p->t('global', 'PDFLehrauftraegeFH'); ?></a></li>
|
||||
<li value="lehrgang"><a href="#"><?php echo $this->p->t('global', 'PDFLehrauftraegeLehrgaenge'); ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-4 col-md-offset-0 col-md-4">
|
||||
<div class="input-group">
|
||||
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-Passwort">
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
|
||||
<span class="input-group-btn">
|
||||
<button id="accept-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag annehmen</button>
|
||||
<button id="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
@@ -192,7 +219,7 @@ $this->load->view(
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end container -->
|
||||
</div><!-- end container -->
|
||||
</div><!-- end page-wrapper -->
|
||||
<br>
|
||||
</body>
|
||||
|
||||
@@ -9,19 +9,19 @@ $query = '
|
||||
SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
auftrag,
|
||||
stg_typ_kurzbz,
|
||||
gruppe,
|
||||
typ,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
stunden,
|
||||
betrag,
|
||||
vertrag_id,
|
||||
@@ -297,40 +297,39 @@ $filterWidgetArray = array(
|
||||
'tableUniqueId' => 'acceptLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
|
||||
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('lehre', 'gruppe')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehreinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
|
||||
'Semester',
|
||||
'OrgForm',
|
||||
ucfirst($this->p->t('lehre', 'organisationsform')),
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
ucfirst($this->p->t('ui', 'bestellt')),
|
||||
ucfirst($this->p->t('ui', 'erteilt')),
|
||||
ucfirst($this->p->t('ui', 'angenommen')),
|
||||
ucfirst($this->p->t('ui', 'bestelltVon')),
|
||||
ucfirst($this->p->t('ui', 'erteiltVon')),
|
||||
ucfirst($this->p->t('ui', 'angenommenVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 550,
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
height: func_height(this),
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
|
||||
headerFilterPlaceholder: " ",
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
selectable: true, // allow row selection
|
||||
@@ -339,13 +338,9 @@ $filterWidgetArray = array(
|
||||
selectableCheck: function(row){
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
footerElement: func_footerElement(),
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
@@ -357,40 +352,47 @@ $filterWidgetArray = array(
|
||||
},
|
||||
renderStarted:function(){
|
||||
func_renderStarted(this);
|
||||
}
|
||||
},
|
||||
tableWidgetFooter: {
|
||||
selectButtons: true
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
row_index: {visible:false}, // necessary for row indexing
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}, width: "7%"},
|
||||
lehrveranstaltung_id: {headerFilter:"input", width: "5%"},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {visible: false},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
auftrag: {
|
||||
headerFilter:"input", widthGrow: 3,
|
||||
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
|
||||
},
|
||||
stg_typ_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
typ: {headerFilter:"input"},
|
||||
lehreinheit_id: {visible: false, headerFilter:"input"},
|
||||
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
|
||||
projektarbeit_id: {visible: false, headerFilter:"input"},
|
||||
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
|
||||
studiengang_kz: {visible: false, headerFilter:"input"},
|
||||
semester: {headerFilter:"input"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input", width: "7%"},
|
||||
auftrag: {headerFilter:"input", width: "15%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input", width: "8%"},
|
||||
gruppe: {headerFilter:"input", width: "5%"},
|
||||
orgform_kurzbz: {visible: false, headerFilter:"input"},
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}, width: "5%"},
|
||||
betrag: {align:"right", width: "6%", formatter: form_formatNulltoStringNumber,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}
|
||||
},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
|
||||
width: "8%"},
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
|
||||
},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
mitarbeiter_uid: {visible: false, headerFilter:"input"},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt_von: {visible: false, headerFilter:"input"},
|
||||
erteilt_von: {visible: false, headerFilter:"input"},
|
||||
akzeptiert_von: {visible: false, headerFilter:"input"}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenText'); ?>
|
||||
<ol>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenKlickStatusicon'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenLehrauftraegeWaehlen'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeAnnehmenMitKlickAnnehmen'); ?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarTextBeiAnnahme'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<div class="col-xs-12 col-md-8 col-lg-6">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><?php echo $this->p->t('lehre', 'filterAlleBeiAnnahme'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterErteiltBeiAnnahme'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
@@ -16,7 +16,76 @@ $this->load->view(
|
||||
'tablewidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeErteilen'),
|
||||
'global' => array(
|
||||
'lehrauftraegeErteilen',
|
||||
'mehrHilfe',
|
||||
'weitereInformationenUnter'
|
||||
),
|
||||
'ui' => array(
|
||||
'anzeigen',
|
||||
'alleAnzeigen',
|
||||
'nurNeueAnzeigen',
|
||||
'nurBestellteAnzeigen',
|
||||
'nurErteilteAnzeigen',
|
||||
'nurAngenommeneAnzeigen',
|
||||
'nurGeaenderteAnzeigen',
|
||||
'nurDummiesAnzeigen',
|
||||
'hilfeZuDieserSeite',
|
||||
'alleAuswaehlen',
|
||||
'alleAbwaehlen',
|
||||
'ausgewaehlteZeilen',
|
||||
'hilfe',
|
||||
'tabelleneinstellungen',
|
||||
'keineDatenVorhanden',
|
||||
'spaltenEinstellen',
|
||||
'bestelltVon',
|
||||
'erteiltVon',
|
||||
'angenommenVon',
|
||||
'stundenStundensatzGeaendert',
|
||||
'neuerLehrauftragOhneLektorVerplant',
|
||||
'wartetAufBestellung',
|
||||
'wartetAufErneuteBestellung',
|
||||
'neuerLehrauftragWartetAufBestellung',
|
||||
'letzterStatusBestellt',
|
||||
'letzterStatusErteilt',
|
||||
'letzterStatusAngenommen',
|
||||
),
|
||||
'table' => array(
|
||||
'spaltenEinAusblenden',
|
||||
'spaltenEinAusblendenMitKlickOeffnen',
|
||||
'spaltenEinAusblendenAufEinstellungenKlicken',
|
||||
'spaltenEinAusblendenMitKlickAktivieren',
|
||||
'spaltenEinAusblendenMitKlickSchliessen',
|
||||
'spaltenbreiteVeraendern',
|
||||
'spaltenbreiteVeraendernText',
|
||||
'spaltenbreiteVeraendernInfotext',
|
||||
'zeilenAuswaehlen',
|
||||
'zeilenAuswaehlenEinzeln',
|
||||
'zeilenAuswaehlenBereich',
|
||||
'zeilenAuswaehlenAlle'
|
||||
),
|
||||
'lehre' => array(
|
||||
'lehrauftragStandardBestellprozess',
|
||||
'lehrauftragStandardBestellprozessBestellen',
|
||||
'lehrauftragStandardBestellprozessErteilen',
|
||||
'lehrauftragStandardBestellprozessAnnehmen',
|
||||
'lehrauftraegeErteilen',
|
||||
'lehrauftraegeErteilenText',
|
||||
'lehrauftraegeErteilenKlickStatusicon',
|
||||
'lehrauftraegeErteilenLehrauftraegeWaehlen',
|
||||
'lehrauftraegeErteilenMitKlickErteilen',
|
||||
'geaenderteLehrauftraege',
|
||||
'geaenderteLehrauftraegeTextBeiErteilung',
|
||||
'lehrauftraegeNichtAuswaehlbar',
|
||||
'lehrauftraegeNichtAuswaehlbarTextBeiErteilung',
|
||||
'filterAlle',
|
||||
'filterNeu',
|
||||
'filterBestellt',
|
||||
'filterErteilt',
|
||||
'filterAngenommen',
|
||||
'filterGeaendert',
|
||||
'filterDummies'
|
||||
)
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
@@ -24,7 +93,6 @@ $this->load->view(
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<body>
|
||||
@@ -36,7 +104,7 @@ $this->load->view(
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeErteilen')); ?>
|
||||
@@ -48,103 +116,7 @@ $this->load->view(
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
|
||||
<h4>Lehrauftrag Standard-Bestellprozess</h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="text-muted">BESTELLEN<br>(Studiengangsleitung)</td>
|
||||
<td></td>
|
||||
<td><b>ERTEILEN<br>(Department-/Kompetenzfeldleitung)</b></td>
|
||||
<td></td>
|
||||
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Lehraufträge erteilen</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald Lehraufträge bestellt wurden, können Sie diese hier erteilen.<br>
|
||||
Erteilte Lehraufträge können von den Lehrenden angenommen werden.<br>
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur bestellte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die zu erteilenden Lehraufträge selbst oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Klicken Sie auf Lehrauftrag erteilen.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Geänderte Lehraufträge</h4>
|
||||
<div class="panel panel-body">
|
||||
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
|
||||
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, müssen diese vom Studiengang erneut bestellt werden.<br>
|
||||
Bei bereits erteilten Lehraufträgen wird zusätzlich der Status 'erteilt' zurückgesetzt.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'bestellt' können gewählt werden.<br>
|
||||
Neue, Bestellte, Akzeptierte oder geänderte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
|
||||
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<?php $this->load->view('lehre/lehrauftrag/approveLehrauftragHelp') ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,7 +169,7 @@ $this->load->view(
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -213,20 +185,20 @@ $this->load->view(
|
||||
<!-- filter buttons & erteil-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<button id="approve-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag erteilen</button>
|
||||
<button id="approve-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeErteilen')); ?></button>
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurNeueAnzeigen'); ?>"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurBestellteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i></button>
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,20 +9,20 @@ SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
personalnummer,
|
||||
auftrag,
|
||||
stg_typ_kurzbz,
|
||||
gruppe,
|
||||
typ,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
lv_bezeichnung,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
lektor,
|
||||
stunden,
|
||||
betrag,
|
||||
@@ -305,46 +305,46 @@ $filterWidgetArray = array(
|
||||
'tableUniqueId' => 'approveLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_erteilen',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'Personalnummer',
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'LV',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
'Semester',
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Lektor',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
ucfirst($this->p->t('global', 'personalnummer')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
|
||||
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('lehre', 'gruppe')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehreinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
|
||||
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
|
||||
'Semester',
|
||||
ucfirst($this->p->t('lehre', 'organisationsform')),
|
||||
'Person-ID',
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lektor')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
|
||||
'UID',
|
||||
ucfirst($this->p->t('ui', 'bestellt')),
|
||||
ucfirst($this->p->t('ui', 'erteilt')),
|
||||
ucfirst($this->p->t('ui', 'angenommen')),
|
||||
ucfirst($this->p->t('ui', 'bestelltVon')),
|
||||
ucfirst($this->p->t('ui', 'erteiltVon')),
|
||||
ucfirst($this->p->t('ui', 'angenommenVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 700,
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
height: func_height(this),
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded
|
||||
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
@@ -357,13 +357,9 @@ $filterWidgetArray = array(
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
initialFilter: func_initialFilter(),
|
||||
footerElement: func_footerElement(),
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row)
|
||||
{
|
||||
func_rowFormatter(row);
|
||||
@@ -373,44 +369,49 @@ $filterWidgetArray = array(
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
}
|
||||
},
|
||||
tableWidgetFooter: {
|
||||
selectButtons: true
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
// column status is built dynamically in funcTableBuilt(),
|
||||
row_index: {visible:false}, // necessary for row indexing
|
||||
personalnummer: {visible: false},
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
|
||||
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();},},
|
||||
lehrveranstaltung_id: {headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
personalnummer: {visible: false, headerFilter:"input"},
|
||||
auftrag: {
|
||||
headerFilter:"input", widthGrow: 2,
|
||||
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
|
||||
},
|
||||
stg_typ_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
typ: {headerFilter:"input"},
|
||||
lehreinheit_id: {visible: false, headerFilter:"input"},
|
||||
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false, headerFilter:"input"},
|
||||
projektarbeit_id: {visible: false, headerFilter:"input"},
|
||||
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
|
||||
studiengang_kz: {visible: false, headerFilter:"input"},
|
||||
semester: {headerFilter:"input"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
auftrag: {headerFilter:"input", width:"20%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 3},
|
||||
orgform_kurzbz: {visible: false, headerFilter:"input"},
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 2},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false},
|
||||
mitarbeiter_uid: {visible: false, headerFilter:"input"},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt_von: {visible: false, headerFilter:"input"},
|
||||
erteilt_von: {visible: false, headerFilter:"input"},
|
||||
akzeptiert_von: {visible: false, headerFilter:"input"},
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozess'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></td>
|
||||
<td></td>
|
||||
<td><b><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?></b></td>
|
||||
<td></td>
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeErteilen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeErteilenText'); ?>
|
||||
<ol>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenKlickStatusicon'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenLehrauftraegeWaehlen'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeErteilenMitKlickErteilen'); ?></li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'geaenderteLehrauftraege'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'geaenderteLehrauftraegeTextBeiErteilung'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarTextBeiErteilung'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><?php echo $this->p->t('lehre', 'filterAlle'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterNeu'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterBestellt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterErteilt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterGeaendert'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterDummies'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('global', 'mehrHilfe'); ?></h4>
|
||||
<div class="panel panel-info panel-body">
|
||||
<?php echo $this->p->t('global', 'weitereInformationenUnter'); ?><a href="https://wiki.fhcomplete.org/doku.php?id=fhc:lehrauftraege" target="_blank">FH Complete WIKI</a>
|
||||
</div><br>
|
||||
@@ -53,20 +53,17 @@ $tableWidgetArray = array(
|
||||
'tableUniqueId' => 'cancelledLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status',
|
||||
'Studiensemester',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Storniert am'
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '. ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'storniertAm')),
|
||||
ucfirst($this->p->t('ui', 'storniertVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
@@ -78,22 +75,24 @@ $tableWidgetArray = array(
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
}
|
||||
},
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
vertrag_id: {visible: false},
|
||||
vertragsstunden_studiensemester_kurzbz: {visible: false},
|
||||
vertragstyp_kurzbz: {widthGrow: 2},
|
||||
bezeichnung: {widthGrow: 2},
|
||||
vertragsstunden_studiensemester_kurzbz: {visible: false, widthShrink:1},
|
||||
vertragstyp_kurzbz: {minWidth: 200},
|
||||
bezeichnung: {minWidth: 200},
|
||||
vertragsstunden: {
|
||||
align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1},
|
||||
minWidth: 200
|
||||
},
|
||||
betrag: {
|
||||
align:"right", formatter: form_formatNulltoStringNumber,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
|
||||
minWidth: 200
|
||||
},
|
||||
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip},
|
||||
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip, minWidth: 200},
|
||||
storniert_von: {visible: false},
|
||||
letzterStatus_vorStorniert: {visible: false}
|
||||
}', // col properties
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
// TODO: phrasen anpassen
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
@@ -17,7 +16,76 @@ $this->load->view(
|
||||
'tablewidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeBestellen'),
|
||||
'global' => array(
|
||||
'lehrauftraegeBestellen',
|
||||
'mehrHilfe',
|
||||
'weitereInformationenUnter'
|
||||
),
|
||||
'ui' => array(
|
||||
'anzeigen',
|
||||
'alleAnzeigen',
|
||||
'nurNeueAnzeigen',
|
||||
'nurBestellteAnzeigen',
|
||||
'nurErteilteAnzeigen',
|
||||
'nurAngenommeneAnzeigen',
|
||||
'nurGeaenderteAnzeigen',
|
||||
'nurDummiesAnzeigen',
|
||||
'hilfeZuDieserSeite',
|
||||
'alleAuswaehlen',
|
||||
'alleAbwaehlen',
|
||||
'ausgewaehlteZeilen',
|
||||
'hilfe',
|
||||
'tabelleneinstellungen',
|
||||
'keineDatenVorhanden',
|
||||
'spaltenEinstellen',
|
||||
'bestelltVon',
|
||||
'erteiltVon',
|
||||
'angenommenVon',
|
||||
'neuerLehrauftragOhneLektorVerplant',
|
||||
'neuerLehrauftragWartetAufBestellung',
|
||||
'letzterStatusBestellt',
|
||||
'letzterStatusErteilt',
|
||||
'letzterStatusAngenommen',
|
||||
'nachAenderungStundensatzStunden',
|
||||
'vorAenderungStundensatzStunden'
|
||||
),
|
||||
'table' => array(
|
||||
'spaltenEinAusblenden',
|
||||
'spaltenEinAusblendenMitKlickOeffnen',
|
||||
'spaltenEinAusblendenAufEinstellungenKlicken',
|
||||
'spaltenEinAusblendenMitKlickAktivieren',
|
||||
'spaltenEinAusblendenMitKlickSchliessen',
|
||||
'spaltenbreiteVeraendern',
|
||||
'spaltenbreiteVeraendernText',
|
||||
'spaltenbreiteVeraendernInfotext',
|
||||
'zeilenAuswaehlen',
|
||||
'zeilenAuswaehlenEinzeln',
|
||||
'zeilenAuswaehlenBereich',
|
||||
'zeilenAuswaehlenAlle'
|
||||
),
|
||||
'lehre' => array(
|
||||
'lehrauftragStandardBestellprozess',
|
||||
'lehrauftragStandardBestellprozessBestellen',
|
||||
'lehrauftragStandardBestellprozessErteilen',
|
||||
'lehrauftragStandardBestellprozessAnnehmen',
|
||||
'lehrauftraegeBestellen',
|
||||
'lehrauftraegeBestellenText',
|
||||
'lehrauftraegeBestellenKlickStatusicon',
|
||||
'lehrauftraegeBestellenLehrauftraegeWaehlen',
|
||||
'lehrauftraegeBestellenMitKlickBestellen',
|
||||
'lehrauftraegeBestellenVertragWirdAngelegt',
|
||||
'geaenderteLehrauftraege',
|
||||
'geaenderteLehrauftraegeText',
|
||||
'lehrauftraegeNichtAuswaehlbar',
|
||||
'lehrauftraegeNichtAuswaehlbarText',
|
||||
'filterAlle',
|
||||
'filterNeu',
|
||||
'filterBestellt',
|
||||
'filterErteilt',
|
||||
'filterAngenommen',
|
||||
'filterGeaendert',
|
||||
'filterDummies'
|
||||
)
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
@@ -35,8 +103,8 @@ $this->load->view(
|
||||
<!-- title & helper link -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseHelp">
|
||||
<?php echo $this->p->t('ui', 'hilfeZuDieserSeite'); ?>
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeBestellen')); ?>
|
||||
@@ -48,105 +116,7 @@ $this->load->view(
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
|
||||
<h4>Lehrauftrag Standard-Bestellprozess</h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>BESTELLEN<br>(Studiengangsleitung)</b></td>
|
||||
<td></td>
|
||||
<td class="text-muted">ERTEILEN<br>(Department-/Kompetenzfeldleitung)</td>
|
||||
<td></td>
|
||||
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Lehraufträge bestellen</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald im FAS ein Lehrauftrag/eine Projektbetreuung angelegt wurde, können Sie diese hier bestellen.<br>
|
||||
Bestellte Lehraufträge sind zur Erteilung freigegeben.<br>
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur neue anzeigen', 'Nur geänderte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die zu bestellenden Lehraufträge selbst oder über den Button 'Alle auswählen'.</li>
|
||||
<li>Klicken Sie auf Lehrauftrag bestellen.</li>
|
||||
</ol>
|
||||
Für jeden bestellten Lehrauftrag legt das System einen Vertrag an.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Geänderte Lehraufträge</h4>
|
||||
<div class="panel panel-body">
|
||||
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
|
||||
Diese müssen dann erneut bestellt werden.<br><br>
|
||||
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, werden diese in einem tooltip angezeigt.<br>
|
||||
Fahren Sie dazu mit der Maus über dem Status-Icon am Beginn der Zeile.<br>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'neu' und 'geändert' können bestellt werden.<br>
|
||||
Erteilte oder akzeptierte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
|
||||
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragHelp') ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -199,36 +169,31 @@ $this->load->view(
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group"><?php echo ucfirst($this->p->t('ui', 'anzeigen')); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tabulator data table -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
|
||||
|
||||
<!-- filter buttons & bestell-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<button id="order-lehrauftraege" class="btn btn-primary pull-right" data-toggle="tooltip" data-placement="left" title="">Lehrauftrag bestellen</button>
|
||||
<button id="order-lehrauftraege" class="btn btn-primary pull-right" data-toggle="tooltip" data-placement="left" title=""><?php echo ucfirst($this->p->t('global', 'lehrauftraegeBestellen')); ?></button>
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'alleAnzeigen'); ?>"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurNeueAnzeigen'); ?>"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurBestellteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurErteilteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurAngenommeneAnzeigen'); ?>"><i class='fa fa-handshake-o'></i></button>
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurGeaenderteAnzeigen'); ?>"></button><!-- png img set in javascript -->
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="<?php echo $this->p->t('ui', 'nurDummiesAnzeigen'); ?>"><i class='fa fa-user-secret'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -239,4 +204,4 @@ $this->load->view(
|
||||
<br>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -9,13 +9,16 @@ SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
personalnummer,
|
||||
auftrag,
|
||||
stg_typ_kurzbz,
|
||||
gruppe,
|
||||
typ,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
lv_bezeichnung,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
/* get valid STPL(s), to which the lehrveranstaltung is assigned to (can be more) */
|
||||
/* therefore join over lv, studiensemester and semester */
|
||||
@@ -49,10 +52,7 @@ SELECT
|
||||
) AS "studienplan_bezeichnung",
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
lektor,
|
||||
stunden,
|
||||
stundensatz,
|
||||
@@ -337,54 +337,53 @@ $filterWidgetArray = array(
|
||||
'tableUniqueId' => 'orderLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_bestellen',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'columnsAliases' => array(
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'Personalnummer',
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'LV',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
ucfirst($this->p->t('global', 'personalnummer')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '- / '.
|
||||
ucfirst($this->p->t('ui', 'projekt')). lcfirst($this->p->t('ui', 'bezeichnung')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('lehre', 'gruppe')),
|
||||
ucfirst($this->p->t('global', 'typ')),
|
||||
ucfirst($this->p->t('lehre', 'lehreinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'lehrveranstaltung')),
|
||||
ucfirst($this->p->t('ui', 'projektarbeit')). '-ID',
|
||||
ucfirst($this->p->t('lehre', 'studiensemester')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')). '-'. ucfirst($this->p->t('ui', 'kz')),
|
||||
'Semester',
|
||||
'Studienplan',
|
||||
'OrgForm',
|
||||
ucfirst($this->p->t('lehre', 'studienplan')),
|
||||
ucfirst($this->p->t('lehre', 'organisationsform')),
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Lektor',
|
||||
'Stunden',
|
||||
'Stundensatz',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('lehre', 'lektor')),
|
||||
ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'stundensatz')),
|
||||
ucfirst($this->p->t('ui', 'betrag')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-ID',
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'stunden')),
|
||||
ucfirst($this->p->t('ui', 'vertrag')). '-'. ucfirst($this->p->t('ui', 'betrag')),
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
ucfirst($this->p->t('ui', 'bestellt')),
|
||||
ucfirst($this->p->t('ui', 'erteilt')),
|
||||
ucfirst($this->p->t('ui', 'angenommen')),
|
||||
ucfirst($this->p->t('ui', 'bestelltVon')),
|
||||
ucfirst($this->p->t('ui', 'erteiltVon')),
|
||||
ucfirst($this->p->t('ui', 'angenommenVon'))
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 700,
|
||||
layout:"fitColumns", // fit columns to width of table
|
||||
responsiveLayout:"hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
footerElement: func_footerElement(),
|
||||
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
height: func_height(this),
|
||||
layout:"fitColumns", // fit columns to width of table
|
||||
layoutColumnsOnNewData: true, // ajust column widths to the data each time TableWidget is loaded
|
||||
autoResize: false, // prevent auto resizing of table (false to allow adapting table size when cols are (de-)activated
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
selectable: true, // allows row selection
|
||||
selectableRangeMode: "click", // allows range selection using shift end click on end of range
|
||||
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
|
||||
@@ -394,9 +393,6 @@ $filterWidgetArray = array(
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
@@ -409,46 +405,52 @@ $filterWidgetArray = array(
|
||||
dataLoaded: function(data){
|
||||
func_dataLoaded(data, this);
|
||||
},
|
||||
tableWidgetFooter: {
|
||||
selectButtons: true
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
// column status is built dynamically in funcTableBuilt()
|
||||
row_index: {visible: false},
|
||||
personalnummer: {visible: false},
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
|
||||
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}},
|
||||
lehrveranstaltung_id: {headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
personalnummer: {visible: false, headerFilter:"input"},
|
||||
auftrag: {
|
||||
headerFilter:"input", widthGrow: 2,
|
||||
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
|
||||
},
|
||||
stg_typ_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
typ: {headerFilter:"input"},
|
||||
lehreinheit_id: {visible: false, headerFilter:"input"},
|
||||
lehrveranstaltung_id: {visible: false, headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false, headerFilter:"input"},
|
||||
projektarbeit_id: {visible: false, headerFilter:"input"},
|
||||
studiensemester_kurzbz: {visible: false, headerFilter:"input"},
|
||||
studiengang_kz: {visible: false, headerFilter:"input"},
|
||||
semester: {headerFilter:"input"},
|
||||
studienplan_bezeichnung: {headerFilter:"input", width: "7%"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
auftrag: {headerFilter:"input", width:"15%"},
|
||||
studienplan_bezeichnung: {visible: false, headerFilter:"input"},
|
||||
orgform_kurzbz: {visible: false, headerFilter:"input", widthGrow: 2},
|
||||
person_id: {visible: false, headerFilter:"input"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 3},
|
||||
lektor: {headerFilter:"input", widthGrow: 2},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
stundensatz: {visible: false},
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
stundensatz: {visible: false, align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money",
|
||||
bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_id: {visible: false, headerFilter:"input"},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
mitarbeiter_uid: {visible: false, headerFilter:"input"},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt_von: {visible: false, headerFilter:"input"},
|
||||
erteilt_von: {visible: false, headerFilter:"input"},
|
||||
akzeptiert_von: {visible: false, headerFilter:"input"}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozess'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessBestellen'); ?></b></td>
|
||||
<td></td>
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessErteilen'); ?></td>
|
||||
<td></td>
|
||||
<td class="text-muted"><?php echo $this->p->t('lehre', 'lehrauftragStandardBestellprozessAnnehmen'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeBestellen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeBestellenText'); ?>
|
||||
<br>
|
||||
<ol>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenKlickStatusicon'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenLehrauftraegeWaehlen'); ?></li>
|
||||
<li><?php echo $this->p->t('lehre', 'lehrauftraegeBestellenMitKlickBestellen'); ?></li>
|
||||
</ol>
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeBestellenVertragWirdAngelegt'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'geaenderteLehrauftraege'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'geaenderteLehrauftraegeText'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbar'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<?php echo $this->p->t('lehre', 'lehrauftraegeNichtAuswaehlbarText'); ?>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><?php echo $this->p->t('lehre', 'filterAlle'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterNeu'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterBestellt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterErteilt'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterAngenommen'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterGeaendert'); ?></td>
|
||||
<td><?php echo $this->p->t('lehre', 'filterDummies'); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4><?php echo $this->p->t('global', 'mehrHilfe'); ?></h4>
|
||||
<div class="panel panel-info panel-body">
|
||||
<?php echo $this->p->t('global', 'weitereInformationenUnter'); ?>
|
||||
<a href="https://wiki.fhcomplete.org/doku.php?id=fhc:lehrauftraege" target="_blank">FH Complete WIKI</a>
|
||||
</div><br>
|
||||
@@ -1,17 +1,24 @@
|
||||
|
||||
<br>
|
||||
<div class="row" id="divTableWidgetDataset" tableUniqueId="<?php echo $tableUniqueId; ?>">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<!-- Table widget header -->
|
||||
<div id="tableWidgetHeader"></div>
|
||||
|
||||
<!-- TableWidget help site ( only rendered if widget is Tabulator )-->
|
||||
<?php $this->load->view('widgets/table/tableHelpsite') ?>
|
||||
|
||||
<!-- Table info top -->
|
||||
<div id="tableDatasetActionsTop"></div>
|
||||
|
||||
<!-- TableWidget table -->
|
||||
<div>
|
||||
<?php TableWidget::loadViewDataset(); ?>
|
||||
</div>
|
||||
<?php TableWidget::loadViewDataset(); ?>
|
||||
|
||||
<!-- Table info bottom -->
|
||||
<div id="tableDatasetActionsBottom"></div>
|
||||
|
||||
<!-- Table widget footer -->
|
||||
<div id="tableWidgetFooter"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<!--CollapseHTML 'Help'-->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="tabulatorHelp-<?php echo $tableUniqueId; ?>">
|
||||
<div class="well">
|
||||
|
||||
<h4><?php echo ucfirst($this->p->t('ui', 'tabelleneinstellungen')); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<b><?php echo $this->p->t('table', 'spaltenEinAusblenden'); ?></b>
|
||||
<p>
|
||||
<ul>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickOeffnen'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenAufEinstellungenKlicken'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickAktivieren'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'spaltenEinAusblendenMitKlickSchliessen'); ?></li>
|
||||
</ul>
|
||||
</p>
|
||||
<br>
|
||||
<b><?php echo $this->p->t('table', 'spaltenbreiteVeraendern'); ?></b>
|
||||
<p><?php echo $this->p->t('table', 'spaltenbreiteVeraendernText'); ?></p>
|
||||
<div class="alert alert-info">
|
||||
<strong>INFO: </strong>
|
||||
<?php echo $this->p->t('table', 'spaltenbreiteVeraendernInfotext'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br> <!--end panel-body-->
|
||||
|
||||
<h4><?php echo $this->p->t('table', 'zeilenAuswaehlen'); ?></h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenEinzeln'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenBereich'); ?></li>
|
||||
<li><?php echo $this->p->t('table', 'zeilenAuswaehlenAlle'); ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
<br> <!--end panel-body-->
|
||||
|
||||
</div><!--end well-->
|
||||
</div><!--end col collapse-->
|
||||
</div><!--end row-->
|
||||
@@ -37,6 +37,7 @@ require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/student.class.php');
|
||||
require_once('../../include/prestudent.class.php');
|
||||
require_once('../../include/dokument_export.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
@@ -135,6 +136,8 @@ if (isset($_GET['typ']))
|
||||
$params .= '&typ='.$_GET['typ'];
|
||||
if (isset($_GET['all']))
|
||||
$params .= '&all=1';
|
||||
if (isset($_GET['xsl_oe_kurzbz']))
|
||||
$params .= '&xsl_oe_kurzbz='. $_GET['xsl_oe_kurzbz'];
|
||||
|
||||
//OE fuer Output ermitteln
|
||||
|
||||
@@ -166,7 +169,7 @@ else
|
||||
|
||||
|
||||
$konto = new konto();
|
||||
if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
|
||||
if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$buchungstypen = array();
|
||||
if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN"))
|
||||
@@ -232,7 +235,9 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
|
||||
$filename .= '-'.$studienordnung->studiengangkurzbzlang;
|
||||
break;
|
||||
default:
|
||||
$filename = $xsl;
|
||||
$person = new Person();
|
||||
$person->getPersonFromBenutzer($user);
|
||||
$filename = $xsl. '_'. $person->nachname;
|
||||
}
|
||||
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
@@ -12,3 +12,26 @@
|
||||
.tabulator-page.active {
|
||||
color: #337ab7 !important;
|
||||
}
|
||||
|
||||
/* Avoid confusing color change when hovering over selected rows */
|
||||
.tabulator-row.tabulator-selected:hover {
|
||||
background-color: #769bcc !important;
|
||||
}
|
||||
|
||||
/* Frame the table */
|
||||
.tabulator {
|
||||
border: 1px solid lightgrey;
|
||||
border-bottom: none;
|
||||
border-top-left-radius: 0.5em;
|
||||
border-top-right-radius: 0.5em;
|
||||
}
|
||||
|
||||
/* Frame the header cells */
|
||||
.tabulator-col:not(:first-of-type) {
|
||||
border-left: 0.5px solid lightgrey;
|
||||
}
|
||||
|
||||
/* More space for header title (avoids triple points at the end) */
|
||||
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
|
||||
overflow: initial;
|
||||
}
|
||||
+287
-1
@@ -182,11 +182,105 @@ var FHC_TableWidget = {
|
||||
*/
|
||||
_turnOnEvents: function(tableWidgetDiv) {
|
||||
|
||||
var tableUniqueId = tableWidgetDiv.attr('tableUniqueId');
|
||||
|
||||
// If the choosen dataset representation is tablesorter
|
||||
if (FHC_TableWidget._datasetRepresentation == DATASET_REP_TABLESORTER)
|
||||
{
|
||||
FHC_TableWidget._enableTableSorter(tableWidgetDiv); // enable the tablesorter
|
||||
}
|
||||
|
||||
// If the choosen dataset representation is tabulator
|
||||
if (FHC_TableWidget._datasetRepresentation == DATASET_REP_TABULATOR)
|
||||
{
|
||||
// ---------------------------------------------------------------------------------------------------------
|
||||
// Add events to the elements
|
||||
// ---------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Click-Event to download csv
|
||||
tableWidgetDiv.find('#download-csv').on('click', function()
|
||||
{
|
||||
// BOM for correct UTF-8 char output
|
||||
tableWidgetDiv.find("#tableWidgetTabulator").tabulator("download", "csv", "data.csv", {bom:true});
|
||||
})
|
||||
|
||||
// Click-Event to toggle the collapsable help panel
|
||||
tableWidgetDiv.find('#help').on('click', function()
|
||||
{
|
||||
// Hide the collapsable settings panel, if it actually shown
|
||||
$('#tabulatorSettings-' + tableUniqueId).collapse('hide');
|
||||
|
||||
// Toggle the collapsable help panel
|
||||
$('#tabulatorHelp-' + tableUniqueId).collapse('toggle');
|
||||
})
|
||||
|
||||
// Click-Event to toggle the collapsable settings panel
|
||||
tableWidgetDiv.find('#settings').on('click', function()
|
||||
{
|
||||
// Hide the collapsable help panel, if it actually shown
|
||||
$('#tabulatorHelp-' + tableUniqueId).collapse('hide');
|
||||
|
||||
// Toggle the collapsable settings panel
|
||||
$('#tabulatorSettings-' + tableUniqueId).collapse('toggle');
|
||||
})
|
||||
|
||||
/* Beautify button group behaviour
|
||||
* Let buttons stay active even until they are clicked again to close the collapsable help- oder setting panels
|
||||
* Also remove the disturbing button focus behaviour
|
||||
*/
|
||||
$(".btn-group > .btn").click(function(){
|
||||
if ($(this).hasClass("active"))
|
||||
{
|
||||
$(this).removeClass('active').css('outline', 'none');
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).addClass("active").css('outline', 'none').siblings().removeClass("active");
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Click-Event to select all rows
|
||||
* Default is ALL rows. This can be modified via hook tableWidgetHook_selectAllButton.
|
||||
*/
|
||||
if (typeof tableWidgetHook_selectAllButton == 'function')
|
||||
{
|
||||
tableWidgetDiv.find('#select-all').on('click', function() {
|
||||
tableWidgetHook_selectAllButton(tableWidgetDiv);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
tableWidgetDiv.find('#select-all').on('click', function() {
|
||||
tableWidgetDiv.find("#tableWidgetTabulator").tabulator('selectRow', true);
|
||||
});
|
||||
}
|
||||
|
||||
// Click-Event to deselect all rows
|
||||
tableWidgetDiv.find('#deselect-all').on('click', function()
|
||||
{
|
||||
tableWidgetDiv.find("#tableWidgetTabulator").tabulator('deselectRow');
|
||||
})
|
||||
|
||||
// Click-Event to toggle column-picker columns
|
||||
tableWidgetDiv.find('.btn-select-col').on('click', function()
|
||||
{
|
||||
var selected = this.value;
|
||||
|
||||
tableWidgetDiv.find("#tableWidgetTabulator").tabulator('toggleColumn', selected);
|
||||
|
||||
$(this).toggleClass('active');
|
||||
|
||||
if(!$(this).hasClass('active'))
|
||||
{
|
||||
$(this).css('background-color', 'white');
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).css('background-color', '#e6e6e6');
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
_renderDataset: function(tableWidgetDiv, data) {
|
||||
@@ -443,11 +537,48 @@ var FHC_TableWidget = {
|
||||
|
||||
options.columns = arrayTabulatorColumns;
|
||||
options.data = data.dataset;
|
||||
|
||||
options.persistentLayout = true; // enables persistence (default store in localStorage if available, else in cookie)
|
||||
options.persistenceID = data.tableUniqueId; // TableWidget unique id to store persistence data seperately for multiple tables
|
||||
options.movableColumns = true; // allows changing column order
|
||||
options.tooltipsHeader = true; // set header tooltip with column title
|
||||
options.placeholder = _func_placeholder(); // display text when table is empty
|
||||
options.rowSelectionChanged = function(data, rows){
|
||||
_func_rowSelectionChanged(data, rows);
|
||||
};
|
||||
options.columnVisibilityChanged = function(column, visible) {
|
||||
_func_columnVisibilityChanged(column, visible);
|
||||
};
|
||||
|
||||
// Renders the tabulator
|
||||
tableWidgetDiv.find("#tableWidgetTabulator").tabulator(options);
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------
|
||||
// Render TableWidget Header and -Footer
|
||||
// -------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Render tableWidgetHeader
|
||||
var tabulatorHeaderHTML = _renderTabulatorHeaderHTML(tableWidgetDiv);
|
||||
tableWidgetDiv.find('#tableWidgetHeader').append(tabulatorHeaderHTML);
|
||||
|
||||
// Render the collapsable div triggered by button in tableWidgetHeader
|
||||
var tabulatorHeaderCollapseHTML = _renderTabulatorHeaderCollapseHTML(tableWidgetDiv);
|
||||
tableWidgetDiv.find('#tableWidgetHeader').after(tabulatorHeaderCollapseHTML);
|
||||
|
||||
/**
|
||||
* tableWidgetFooter is NOT rendered by default.
|
||||
* tableWidgetFooter is rendered, if tableWidgetFooter is set in tabulators datasetRepOptions.
|
||||
* Setup options like this:
|
||||
* tableWidgetFooter: {
|
||||
* selectButtons: true // tableWidgetFooter properties are checked in _renderTabulatorFooterHTML function
|
||||
* }
|
||||
*/
|
||||
if (options.tableWidgetFooter != 'undefined' && options.tableWidgetFooter != null)
|
||||
{
|
||||
var tabulatorFooterHTML = _renderTabulatorFooterHTML(options.tableWidgetFooter);
|
||||
tableWidgetDiv.find('#tableWidgetFooter').append(tabulatorFooterHTML);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -584,6 +715,161 @@ var FHC_TableWidget = {
|
||||
}
|
||||
};
|
||||
|
||||
//**********************************************************************************************************************
|
||||
// Render functions
|
||||
//**********************************************************************************************************************
|
||||
/*
|
||||
* Processed when row selection changed.
|
||||
* Displays number of selected rows on row selection change.
|
||||
*/
|
||||
function _func_rowSelectionChanged (data, rows){
|
||||
|
||||
$('#number-selected').html("Ausgewählte Zeilen: <strong>" + rows.length + "</strong>");
|
||||
}
|
||||
|
||||
/* Processed when columns visibility changed (e.g. using the column picker).
|
||||
* Redraws the table to expand columns to table width.
|
||||
*/
|
||||
function _func_columnVisibilityChanged(column, visible){
|
||||
|
||||
var table = column.getTable();
|
||||
|
||||
table.redraw();
|
||||
}
|
||||
|
||||
/*
|
||||
* Displays text when table is empty
|
||||
*/
|
||||
function _func_placeholder(){
|
||||
return '<h4>' + FHC_PhrasesLib.t('ui', 'keineDatenVorhanden') + '</h4>';
|
||||
}
|
||||
|
||||
// Returns TableWidget Header HTML (download-, setting button...)
|
||||
function _renderTabulatorHeaderHTML(tableWidgetDiv){
|
||||
|
||||
var tableUniqueId = tableWidgetDiv.attr('tableUniqueId');
|
||||
|
||||
var tabulatorHeaderHTML = '';
|
||||
tabulatorHeaderHTML += '<div class="btn-toolbar pull-right" role="toolbar">';
|
||||
tabulatorHeaderHTML += '<div class="btn-group" role="group">';
|
||||
tabulatorHeaderHTML += '' +
|
||||
'<button id="download-csv" class="btn btn-default" type="button" ' +
|
||||
'data-toggle="tooltip" data-placement="left" title="Download CSV">' +
|
||||
'<small>CSV </small><i class="fa fa-arrow-down"></i>' +
|
||||
'</button>';
|
||||
tabulatorHeaderHTML += '' +
|
||||
'<button id="help" class="btn btn-default" type="button" ' +
|
||||
'data-toggle="collapse tooltip" data-target="tabulatorHelp-'+ tableUniqueId + '" data-placement="left" ' +
|
||||
'title="' + FHC_PhrasesLib.t("ui", "hilfe") + '"><i class="fa fa-question"></i>' +
|
||||
'</button>';
|
||||
tabulatorHeaderHTML += '' +
|
||||
'<button id="settings" class="btn btn-default" type="button" ' +
|
||||
'data-toggle="collapse tooltip" data-target="tabulatorSettings-'+ tableUniqueId + '" data-placement="left" ' +
|
||||
'title="' + FHC_PhrasesLib.t("ui", "tabelleneinstellungen") + '" ' +
|
||||
'aria-expanded="false" aria-controls="tabulatorSettings-'+ tableUniqueId + '">' +
|
||||
'<i class="fa fa-cog"></i>' +
|
||||
'</button>';
|
||||
tabulatorHeaderHTML += '</div>';
|
||||
tabulatorHeaderHTML += '</div>';
|
||||
tabulatorHeaderHTML += '<br><br><br>';
|
||||
|
||||
return tabulatorHeaderHTML;
|
||||
}
|
||||
|
||||
// Returns collapsable HTML element for TableWidget header buttons
|
||||
function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){
|
||||
|
||||
var tableUniqueId = tableWidgetDiv.attr('tableUniqueId');
|
||||
|
||||
var tabulatorHeaderCollapseHTML = '';
|
||||
|
||||
// CollapseHTML 'Settings'
|
||||
tabulatorHeaderCollapseHTML += '<div class="row">';
|
||||
tabulatorHeaderCollapseHTML += '<div class="col-lg-12 collapse" id="tabulatorSettings-'+ tableUniqueId + '">';
|
||||
tabulatorHeaderCollapseHTML += '<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">';
|
||||
|
||||
tabulatorHeaderCollapseHTML += '<div class="panel panel-default">';
|
||||
tabulatorHeaderCollapseHTML += '<div class="panel-heading" role="tab" id="headingOne">';
|
||||
tabulatorHeaderCollapseHTML += '<h5 class="panel-title">';
|
||||
tabulatorHeaderCollapseHTML += '' +
|
||||
'<a role="button" data-toggle="collapse" data-parent="#accordion" ' +
|
||||
'href="#selectColumns-' + tableUniqueId + '" ' +
|
||||
'aria-expanded="false" aria-controls="selectColumns">' +
|
||||
FHC_PhrasesLib.t("ui", "spaltenEinstellen") +
|
||||
'</a>';
|
||||
tabulatorHeaderCollapseHTML += '</h5>';
|
||||
tabulatorHeaderCollapseHTML += '</div>'; // end panel-heading
|
||||
tabulatorHeaderCollapseHTML += '<div id="selectColumns-' + tableUniqueId + '" class="panel-collapse collapse" ' +
|
||||
'role="tabpanel" aria-labelledby="headingOne">';
|
||||
tabulatorHeaderCollapseHTML += '<div class="panel-body">';
|
||||
tabulatorHeaderCollapseHTML += '<div class="btn-group" role="group">';
|
||||
|
||||
// Create column picker (Spalten einstellen)
|
||||
tableWidgetDiv.find('#tableWidgetTabulator').tabulator('getColumns').forEach(function(column)
|
||||
{
|
||||
var field = column.getField();
|
||||
var title = column.getDefinition().title;
|
||||
var active_status = column.getVisibility() ? 'active' : '';
|
||||
|
||||
// If certain columns should be excluded from the column picker (define them in a blacklist array)
|
||||
if (typeof tableWidgetBlacklistArray_columnUnselectable != 'undefined' &&
|
||||
Array.isArray(tableWidgetBlacklistArray_columnUnselectable) &&
|
||||
tableWidgetBlacklistArray_columnUnselectable.length)
|
||||
{
|
||||
if ($.inArray(field, tableWidgetBlacklistArray_columnUnselectable) < 0)
|
||||
{
|
||||
tabulatorHeaderCollapseHTML += '<button type="button" class="btn btn-default btn-sm btn-select-col ' + active_status +'" aria-pressed="true" id="btn-' + field + '" value="' + field + '">' + title + '</button>';
|
||||
}
|
||||
}
|
||||
// Else provide all tabulator fields as pickable columns
|
||||
else
|
||||
{
|
||||
tabulatorHeaderCollapseHTML += '<button type="button" class="btn btn-default btn-sm btn-select-col ' + active_status +'" aria-pressed="true" id="btn-' + field + '" value="' + field + '">' + title + '</button>';
|
||||
}
|
||||
});
|
||||
|
||||
tabulatorHeaderCollapseHTML += '</div>'; // end btn-group
|
||||
tabulatorHeaderCollapseHTML += '</div>'; // end panel-body
|
||||
tabulatorHeaderCollapseHTML += '</div>'; // end panel-collapse
|
||||
tabulatorHeaderCollapseHTML += '</div>'; // end panel
|
||||
|
||||
tabulatorHeaderCollapseHTML += '</div>'; // end panel-group
|
||||
tabulatorHeaderCollapseHTML += ' </div>'; // end col
|
||||
tabulatorHeaderCollapseHTML += ' </div>'; // end row
|
||||
|
||||
return tabulatorHeaderCollapseHTML;
|
||||
}
|
||||
|
||||
// Returns TableWidget Footer HTML (de-/select buttons,...)
|
||||
function _renderTabulatorFooterHTML(tableWidgetFooterOptions){
|
||||
|
||||
var tabulatorFooterHTML = '';
|
||||
|
||||
// If property selectButtons is true, render 'Alle auswaehlen / Alle abwaehlen' buttons
|
||||
if (tableWidgetFooterOptions.selectButtons != 'undefined' && tableWidgetFooterOptions.selectButtons == true)
|
||||
{
|
||||
tabulatorFooterHTML += '<div class="btn-toolbar" role="toolbar">';
|
||||
tabulatorFooterHTML += '<div class="btn-group" role="group">';
|
||||
tabulatorFooterHTML += '' +
|
||||
'<button id="select-all" class="btn btn-default pull-left" type="button">'
|
||||
+ FHC_PhrasesLib.t("ui", "alleAuswaehlen") + '' +
|
||||
'</button>';
|
||||
tabulatorFooterHTML += '' +
|
||||
'<button id="deselect-all" class="btn btn-default pull-left" type="button">'
|
||||
+ FHC_PhrasesLib.t("ui", "alleAbwaehlen") + '' +
|
||||
'</button>';
|
||||
tabulatorFooterHTML += '' +
|
||||
'<span id="number-selected" style="margin-left: 20px; line-height: 2; font-weight: normal">'
|
||||
+ FHC_PhrasesLib.t("ui", "ausgewaehlteZeilen") + ': <strong>0</strong>' +
|
||||
'</span>';
|
||||
tabulatorFooterHTML += '</div>';
|
||||
tabulatorFooterHTML += '</div>';
|
||||
tabulatorFooterHTML += '</br></br>';
|
||||
}
|
||||
|
||||
return tabulatorFooterHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* When JQuery is up
|
||||
*/
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Global vars
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
const APP_ROOT = FHC_JS_DATA_STORAGE_OBJECT.app_root;
|
||||
|
||||
const COLOR_LIGHTGREY = "#f5f5f5";
|
||||
|
||||
@@ -19,6 +20,18 @@ const ICON_LEHRAUFTRAG_APPROVED = '<img src="../../../public/images/icons/fa-use
|
||||
const ICON_LEHRAUFTRAG_CHANGED = '<img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px; margin: -6px;">';
|
||||
const ICON_LEHRAUFTRAG_CANCELLED = '<img src="../../../public/images/icons/fa-user-times.png" style="height: 30px; width: 30px; margin: -6px;">';
|
||||
|
||||
// Fields that should not be provided in the column picker
|
||||
var tableWidgetBlacklistArray_columnUnselectable = [
|
||||
'status',
|
||||
'row_index',
|
||||
'betrag',
|
||||
'vertrag_id',
|
||||
'vertrag_stunden',
|
||||
'vertrag_betrag',
|
||||
'storniert_von', // fields from cancelledLehrauftragData
|
||||
'letzterStatus_vorStorniert' // fields from cancelledLehrauftragData
|
||||
];
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Mutators - setter methods to manipulate table data when entering the tabulator
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
@@ -81,10 +94,9 @@ function hf_filterStringnumberWithOperator(headerValue, rowValue, rowData){
|
||||
// Tabulator table format functions
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Displays text when table is empty
|
||||
function func_placeholder()
|
||||
{
|
||||
return "<h4>Keine Daten vorhanden.</h4>";
|
||||
// Returns relative height (depending on screen size)
|
||||
function func_height(table){
|
||||
return $(window).height() * 0.50;
|
||||
}
|
||||
|
||||
// Formats the rows
|
||||
@@ -254,65 +266,20 @@ function func_renderComplete(table){
|
||||
);
|
||||
}
|
||||
|
||||
// Tabulator footer element
|
||||
// TableWidget Footer element
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Adds a footer with buttons select all / deselect all / download
|
||||
function func_footerElement(){
|
||||
|
||||
var footer_html = '<div class="row">';
|
||||
footer_html += '<div class="col-lg-12" style="padding: 5px;">';
|
||||
|
||||
footer_html += '<div class="btn-toolbar pull-right" role="toolbar">';
|
||||
footer_html += '<div class="btn-group" role="group">';
|
||||
footer_html += '<button id="download-csv" class="btn btn-default" type="button" data-toggle="tooltip" data-placement="left" title="Download CSV" onclick="footer_downloadCSV()"><small>CSV </small><i class="fa fa-arrow-down"></i></button>';
|
||||
footer_html += '</div>';
|
||||
footer_html += '</div>';
|
||||
|
||||
footer_html += '<div class="btn-toolbar" role="toolbar">';
|
||||
footer_html += '<div class="btn-group" role="group">';
|
||||
footer_html += '<button id="select-all" class="btn btn-default pull-left" type="button" onclick="footer_selectAll()">Alle auswählen</button>';
|
||||
footer_html += '<button id="deselect-all" class="btn btn-default pull-left" type="button" onclick="footer_deselectAll()">Alle abwählen</button>';
|
||||
footer_html += '<span id="number-selected" style="margin-left: 20px; line-height: 2; font-weight: normal"></span>';
|
||||
footer_html += '</div>';
|
||||
footer_html += '</div>';
|
||||
|
||||
footer_html += '</div>';
|
||||
footer_html += '</div>';
|
||||
|
||||
return footer_html;
|
||||
}
|
||||
|
||||
// Performs download CSV
|
||||
function footer_downloadCSV(){
|
||||
$('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output
|
||||
}
|
||||
|
||||
/*
|
||||
* Performs select all
|
||||
* Hook to overwrite TableWigdgets select-all-button behaviour
|
||||
* Select all (filtered) rows and ignore rows that are bestellt and erteilt
|
||||
*/
|
||||
function footer_selectAll(){
|
||||
$('#tableWidgetTabulator').tabulator('getRows', true)
|
||||
.filter(function(row){ return row.getData().bestellt != null && // bestellt
|
||||
row.getData().erteilt != null && // AND erteilt
|
||||
row.getData().akzeptiert == null && // AND NOT akzeptiert
|
||||
row.getData().status != 'Geändert'
|
||||
;}) // AND NOT geändert
|
||||
.forEach((function(row){ return row.select();}));
|
||||
}
|
||||
|
||||
/*
|
||||
* Performs deselect all
|
||||
* Deselect all (filtered) rows
|
||||
*/
|
||||
function footer_deselectAll(){
|
||||
$('#tableWidgetTabulator').tabulator('deselectRow');
|
||||
}
|
||||
|
||||
// Displays number of selected rows on row selection change
|
||||
function func_rowSelectionChanged(data, rows){
|
||||
$('#number-selected').html("Für Annehmen ausgewählt: <strong>" + rows.length + "</strong>");
|
||||
function tableWidgetHook_selectAllButton(tableWidgetDiv){
|
||||
tableWidgetDiv.find("#tableWidgetTabulator").tabulator('getRows', true)
|
||||
.filter(row => row.getData().bestellt != null && // bestellt
|
||||
row.getData().erteilt != null && // AND erteilt
|
||||
row.getData().akzeptiert == null && // AND NOT akzeptiert
|
||||
row.getData().status != 'Geändert') // AND NOT geändert
|
||||
.forEach((row => row.select()));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
@@ -402,36 +369,35 @@ status_tooltip = function(cell){
|
||||
letzterStatus_vorStorniert = 'angenommen';
|
||||
}
|
||||
|
||||
var text = 'Lehrauftrag in Bearbeitung. ';
|
||||
var text = FHC_PhrasesLib.t("ui", "lehrauftragInBearbeitung");
|
||||
|
||||
if (bestellt != null && erteilt == null && akzeptiert == null
|
||||
&& (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when never erteilt before)
|
||||
{
|
||||
text += 'Wartet auf Erteilung.';
|
||||
text += FHC_PhrasesLib.t("ui", "wartetAufErteilung");;
|
||||
return text;
|
||||
}
|
||||
else if (bestellt != null && erteilt != null && akzeptiert == null
|
||||
&& (betrag != vertrag_betrag || stunden != vertrag_stunden)) // geaendert (when has been erteilt once)
|
||||
{
|
||||
text += 'Wartet auf erneute Erteilung.';
|
||||
text += FHC_PhrasesLib.t("ui", "wartetAufErneuteErteilung");
|
||||
return text;
|
||||
}
|
||||
else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt
|
||||
{
|
||||
return 'Letzter Status: Bestellt. Wartet auf Erteilung.';
|
||||
return FHC_PhrasesLib.t("ui", "letzterStatusBestellt");
|
||||
}
|
||||
else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt
|
||||
{
|
||||
return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.';
|
||||
return FHC_PhrasesLib.t("ui", "letzterStatusErteilt");
|
||||
}
|
||||
else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert
|
||||
{
|
||||
return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.';
|
||||
return FHC_PhrasesLib.t("ui", "letzterStatusAngenommen");
|
||||
}
|
||||
else if (is_storniert)
|
||||
else if (is_storniert) // storniert
|
||||
{
|
||||
return 'Dieser Vertrag wurde storniert. Letzter Status vor Stornierung war: '
|
||||
+ letzterStatus_vorStorniert; // storniert
|
||||
return FHC_PhrasesLib.t("ui", "vertragWurdeStorniert");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -439,33 +405,32 @@ status_tooltip = function(cell){
|
||||
bestellt_tooltip = function(cell){
|
||||
if (cell.getRow().getData().bestellt_von != null)
|
||||
{
|
||||
return 'Bestellt von: ' + cell.getRow().getData().bestellt_von;
|
||||
return FHC_PhrasesLib.t("ui", "bestelltVon") + cell.getRow().getData().bestellt_von;
|
||||
}
|
||||
}
|
||||
|
||||
// Generates erteilt tooltip
|
||||
erteilt_tooltip = function(cell){
|
||||
if (cell.getRow().getData().erteilt_von != null) {
|
||||
return 'Erteilt von: ' + cell.getRow().getData().erteilt_von;
|
||||
return FHC_PhrasesLib.t("ui", "erteiltVon") + cell.getRow().getData().erteilt_von;
|
||||
}
|
||||
}
|
||||
|
||||
// Generates akzeptiert tooltip
|
||||
akzeptiert_tooltip = function(cell){
|
||||
if (cell.getRow().getData().akzeptiert_von != null) {
|
||||
return 'Angenommen von: ' + cell.getRow().getData().akzeptiert_von;
|
||||
return FHC_PhrasesLib.t("ui", "angenommenVon") + cell.getRow().getData().akzeptiert_von;
|
||||
}
|
||||
}
|
||||
|
||||
// Generates storniert tooltip
|
||||
storniert_tooltip = function(cell){
|
||||
if (cell.getRow().getData().storniert_von != null) {
|
||||
return 'Storniert von: ' + cell.getRow().getData().storniert_von;
|
||||
return FHC_PhrasesLib.t("ui", "storniertVon") + cell.getRow().getData().storniert_von;
|
||||
}
|
||||
}
|
||||
|
||||
$(function() {
|
||||
|
||||
// Pruefen ob Promise unterstuetzt wird
|
||||
// Tabulator funktioniert nicht mit IE
|
||||
var canPromise = !! window.Promise;
|
||||
@@ -476,6 +441,12 @@ $(function() {
|
||||
return;
|
||||
}
|
||||
|
||||
// Redraw table on resize to fit tabulators height to windows height
|
||||
window.addEventListener('resize', function(){
|
||||
$('#tableWidgetTabulator').tabulator('setHeight', $(window).height() * 0.50);
|
||||
$('#tableWidgetTabulator').tabulator('redraw', true);
|
||||
});
|
||||
|
||||
// Show all rows
|
||||
$("#show-all").click(function(){
|
||||
$('#tableWidgetTabulator').tabulator('clearFilter');
|
||||
@@ -536,6 +507,29 @@ $(function() {
|
||||
$(this).addClass('focus').addClass('active');
|
||||
});
|
||||
|
||||
// Performs download PDF accepted Lehrauftraege
|
||||
$("#ul-download-pdf").on('click', 'li', function(){
|
||||
var uid = $("#uid").val();
|
||||
var studiensemester = $('#studiensemester').val();
|
||||
|
||||
if ($(this).attr('value') != null && $(this).attr('value') != '')
|
||||
{
|
||||
var selected = $(this).attr('value');
|
||||
|
||||
if (selected == 'etw' || selected == 'lehrgang')
|
||||
{
|
||||
window.open(APP_ROOT + 'cis/private/pdfExport.php' +
|
||||
'?xml=lehrauftrag_annehmen.xml.php' +
|
||||
'&xsl=Lehrauftrag' +
|
||||
'&xsl_oe_kurzbz=' + selected +
|
||||
'&stg_kz=' +
|
||||
'&uid=' + uid +
|
||||
'&ss=' + studiensemester, '_parent'
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Redraw table stornierte lehrauftraege on button click
|
||||
$('#collapseCancelledLehrauftraege').on('shown.bs.collapse', function () {
|
||||
$('[tableuniqueid = cancelledLehrauftrag] #tableWidgetTabulator').tabulator('redraw', true);
|
||||
|
||||
@@ -19,6 +19,17 @@ const ICON_LEHRAUFTRAG_ORDERED = '<img src="../../../public/images/icons/fa-user
|
||||
const ICON_LEHRAUFTRAG_APPROVED = '<img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px; margin: -6px;">';
|
||||
const ICON_LEHRAUFTRAG_CHANGED = '<img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px; margin: -6px;">';
|
||||
|
||||
// Fields that should not be provided in the column picker
|
||||
var tableWidgetBlacklistArray_columnUnselectable = [
|
||||
'status',
|
||||
'row_index',
|
||||
'personalnummer',
|
||||
'betrag',
|
||||
'vertrag_id',
|
||||
'vertrag_stunden',
|
||||
'vertrag_betrag'
|
||||
];
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Mutators - setter methods to manipulate table data when entering the tabulator
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
@@ -95,10 +106,9 @@ function func_initialFilter(){
|
||||
// Tabulator table format functions
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Displays text when table is empty
|
||||
function func_placeholder()
|
||||
{
|
||||
return "<h4>Keine Daten vorhanden.</h4>";
|
||||
// Returns relative height (depending on screen size)
|
||||
function func_height(table){
|
||||
return $(window).height() * 0.50;
|
||||
}
|
||||
|
||||
// Formats the group header
|
||||
@@ -301,65 +311,20 @@ function func_rowUpdated(row){
|
||||
row.getElement().style["pointerEvents"] = "none";
|
||||
}
|
||||
|
||||
|
||||
// Tabulator footer element
|
||||
// TableWidget Footer element
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Adds a footer with buttons select all / deselect all / download
|
||||
function func_footerElement(){
|
||||
|
||||
var footer_html = '<div class="row">';
|
||||
footer_html += '<div class="col-lg-12" style="padding: 5px;">';
|
||||
|
||||
footer_html += '<div class="btn-toolbar pull-right" role="toolbar">';
|
||||
footer_html += '<div class="btn-group" role="group">';
|
||||
footer_html += '<button id="download-csv" class="btn btn-default" type="button" data-toggle="tooltip" data-placement="left" title="Download CSV" onclick="footer_downloadCSV()"><small>CSV </small><i class="fa fa-arrow-down"></i></button>';
|
||||
footer_html += '</div>';
|
||||
footer_html += '</div>';
|
||||
|
||||
footer_html += '<div class="btn-toolbar" role="toolbar">';
|
||||
footer_html += '<div class="btn-group" role="group">';
|
||||
footer_html += '<button id="select-all" class="btn btn-default pull-left" type="button" onclick="footer_selectAll()">Alle auswählen</button>';
|
||||
footer_html += '<button id="deselect-all" class="btn btn-default pull-left" type="button" onclick="footer_deselectAll()">Alle abwählen</button>';
|
||||
footer_html += '<span id="number-selected" style="margin-left: 20px; line-height: 2; font-weight: normal"></span>';
|
||||
footer_html += '</div>';
|
||||
footer_html += '</div>';
|
||||
|
||||
footer_html += '</div>';
|
||||
footer_html += '</div>';
|
||||
|
||||
return footer_html;
|
||||
}
|
||||
|
||||
// Performs download CSV
|
||||
function footer_downloadCSV(){
|
||||
$('#tableWidgetTabulator').tabulator("download", "csv", "data.csv", {bom:true}); // BOM for correct UTF-8 char output
|
||||
}
|
||||
|
||||
/*
|
||||
* Performs select all
|
||||
* Hook to overwrite TableWigdgets select-all-button behaviour
|
||||
* Select all (filtered) rows that are bestellt
|
||||
*/
|
||||
function footer_selectAll(){
|
||||
$('#tableWidgetTabulator').tabulator('getRows', true)
|
||||
.filter(row => row.getData().personalnummer >= 0 && // NOT dummies
|
||||
row.getData().bestellt != null && // AND bestellt
|
||||
row.getData().erteilt == null && // AND NOT erteilt
|
||||
row.getData().status != 'Geändert') // AND NOT geaendert
|
||||
.forEach((row => row.select()));
|
||||
}
|
||||
|
||||
/*
|
||||
* Performs deselect all
|
||||
* Deselect all (filtered) rows
|
||||
*/
|
||||
function footer_deselectAll(){
|
||||
$('#tableWidgetTabulator').tabulator('deselectRow');
|
||||
}
|
||||
|
||||
// Displays number of selected rows on row selection change
|
||||
function func_rowSelectionChanged(data, rows){
|
||||
$('#number-selected').html("Für Erteilung ausgewählt: <strong>" + rows.length + "</strong>");
|
||||
function tableWidgetHook_selectAllButton(tableWidgetDiv){
|
||||
tableWidgetDiv.find("#tableWidgetTabulator").tabulator('getRows', true)
|
||||
.filter(row => row.getData().personalnummer >= 0 && // NOT dummies
|
||||
row.getData().bestellt != null && // AND bestellt
|
||||
row.getData().erteilt == null && // AND NOT erteilt
|
||||
row.getData().status != 'Geändert') // AND NOT geaendert
|
||||
.forEach((row => row.select()));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
@@ -468,38 +433,38 @@ status_tooltip = function(cell){
|
||||
vertrag_stunden = 0;
|
||||
}
|
||||
|
||||
var text = 'Lehrauftragstunden/-stundensatz geändert.';
|
||||
var text = FHC_PhrasesLib.t("ui", "stundenStundensatzGeaendert");
|
||||
text += "\n";
|
||||
|
||||
if (is_dummy) // dummy (no lector)
|
||||
{
|
||||
return 'Neuer Lehrauftrag. Ohne Lektor verplant.'
|
||||
return FHC_PhrasesLib.t("ui", "neuerLehrauftragOhneLektorVerplant");
|
||||
}
|
||||
else if ((bestellt != null && erteilt == null && betrag != vertrag_betrag) ||
|
||||
(bestellt != null && erteilt == null && stunden != vertrag_stunden)) // geaendert (when never erteilt before)
|
||||
{
|
||||
return text += 'Wartet auf Bestellung, danach Erteilen möglich.';
|
||||
return text += FHC_PhrasesLib.t("ui", "wartetAufBestellung");
|
||||
}
|
||||
else if ((bestellt != null && erteilt != null && betrag != vertrag_betrag) ||
|
||||
(bestellt != null && erteilt != null && stunden != vertrag_stunden)) // geaendert (when has been erteilt once)
|
||||
{
|
||||
return text += 'Wartet auf neuerliche Bestellung, danach erneut Erteilen möglich.';
|
||||
return text += FHC_PhrasesLib.t("ui", "wartetAufErneuteBestellung");
|
||||
}
|
||||
else if (bestellt == null) // neu
|
||||
{
|
||||
return 'Neuer Lehrauftrag. Wartet auf Bestellung.';
|
||||
return FHC_PhrasesLib.t("ui", "neuerLehrauftragWartetAufBestellung");
|
||||
}
|
||||
else if (bestellt != null && erteilt == null && akzeptiert == null) // bestellt
|
||||
{
|
||||
return 'Letzter Status: Bestellt. Wartet auf Erteilung.';
|
||||
return FHC_PhrasesLib.t("ui", "letzterStatusBestellt");
|
||||
}
|
||||
else if (bestellt != null && erteilt != null && akzeptiert == null) // erteilt
|
||||
{
|
||||
return 'Letzter Status: Erteilt. Wartet auf Annahme durch Lektor.';
|
||||
return FHC_PhrasesLib.t("ui", "letzterStatusErteilt");
|
||||
}
|
||||
else if (bestellt != null && erteilt != null && akzeptiert != null) // akzeptiert
|
||||
{
|
||||
return 'Letzter Status: Angenommen. Vertrag wurde beidseitig abgeschlossen.';
|
||||
return FHC_PhrasesLib.t("ui", "letzterStatusAngenommen");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -507,25 +472,31 @@ status_tooltip = function(cell){
|
||||
bestellt_tooltip = function(cell){
|
||||
if (cell.getRow().getData().bestellt_von != null)
|
||||
{
|
||||
return 'Bestellt von: ' + cell.getRow().getData().bestellt_von;
|
||||
return FHC_PhrasesLib.t("ui", "bestelltVon") + cell.getRow().getData().bestellt_von;
|
||||
}
|
||||
}
|
||||
|
||||
// Generates erteilt tooltip
|
||||
erteilt_tooltip = function(cell){
|
||||
if (cell.getRow().getData().erteilt_von != null) {
|
||||
return 'Erteilt von: ' + cell.getRow().getData().erteilt_von;
|
||||
return FHC_PhrasesLib.t("ui", "erteiltVon") + cell.getRow().getData().erteilt_von;
|
||||
}
|
||||
}
|
||||
|
||||
// Generates akzeptiert tooltip
|
||||
akzeptiert_tooltip = function(cell){
|
||||
if (cell.getRow().getData().akzeptiert_von != null) {
|
||||
return 'Angenommen von: ' + cell.getRow().getData().akzeptiert_von;
|
||||
return FHC_PhrasesLib.t("ui", "angenommenVon") + cell.getRow().getData().akzeptiert_von;
|
||||
}
|
||||
}
|
||||
$(function() {
|
||||
|
||||
// Redraw table on resize to fit tabulators height to windows height
|
||||
window.addEventListener('resize', function(){
|
||||
$('#tableWidgetTabulator').tabulator('setHeight', $(window).height() * 0.50);
|
||||
$('#tableWidgetTabulator').tabulator('redraw', true);
|
||||
});
|
||||
|
||||
// Show all rows
|
||||
$("#show-all").click(function(){
|
||||
$('#tableWidgetTabulator').tabulator('clearFilter');
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -275,7 +275,7 @@ function drawLehrauftrag($uid)
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($ss);
|
||||
|
||||
if ($studiengang_kz != '') //$studiengang_kz!='0' &&
|
||||
$qry .= "AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
|
||||
$qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
|
||||
$qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
|
||||
$lv = array();
|
||||
$anzahl_lvs = 0;
|
||||
|
||||
@@ -0,0 +1,510 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/* Erstellt einen Lehrauftrag im PDF Format
|
||||
*
|
||||
* Erstellt ein XML File fuer den Lehrauftrag
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/studiengang.class.php');
|
||||
require_once('../include/lehreinheit.class.php');
|
||||
require_once('../include/organisationseinheit.class.php');
|
||||
require_once('../include/mitarbeiter.class.php');
|
||||
require_once('../include/bisverwendung.class.php');
|
||||
require_once('../include/person.class.php');
|
||||
|
||||
if (isset($_SERVER['REMOTE_USER']))
|
||||
{
|
||||
// Wenn das Script direkt aufgerufen wird muss es ein Admin sein
|
||||
$user=get_uid();
|
||||
$berechtigung = new benutzerberechtigung();
|
||||
$berechtigung->getBerechtigungen($user);
|
||||
if (!$berechtigung->isBerechtigt('admin'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
}
|
||||
|
||||
// header für no cache
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
// content type setzen
|
||||
header("Content-type: application/xhtml+xml");
|
||||
|
||||
//Parameter holen
|
||||
if (isset($_GET['uid']))
|
||||
$uid = $_GET['uid'];
|
||||
else
|
||||
$uid = null;
|
||||
|
||||
if (isset($_GET['stg_kz']))
|
||||
$studiengang_kz = $_GET['stg_kz'];
|
||||
else
|
||||
die('Fehlerhafte Parameteruebergabe');
|
||||
if (isset($_GET['ss']))
|
||||
$ss = $_GET['ss'];
|
||||
else
|
||||
die('Fehlerhafte Parameteruebergabe');
|
||||
|
||||
$xsl_oe_kurzbz = isset($_GET['xsl_oe_kurzbz']) && !empty($_GET['xsl_oe_kurzbz']) ? $_GET['xsl_oe_kurzbz'] : '';
|
||||
|
||||
// GENERATE XML
|
||||
$xml = '<?xml version="1.0" encoding="UTF-8" ?><lehrauftraege>';
|
||||
$stg_arr = array();
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->getAll(null, false);
|
||||
|
||||
foreach ($studiengang->result as $row)
|
||||
$stg_arr[$row->studiengang_kz] = $row->kuerzel;
|
||||
|
||||
//Studiengang laden
|
||||
$studiengang = new studiengang($studiengang_kz);
|
||||
|
||||
//Organisationseinheiten laden
|
||||
$oe_arr = array();
|
||||
$organisationseinheit_obj = new organisationseinheit();
|
||||
$organisationseinheit_obj->getAll();
|
||||
foreach ($organisationseinheit_obj->result as $oe)
|
||||
{
|
||||
$oe_arr[$oe->oe_kurzbz] = $oe->bezeichnung;
|
||||
}
|
||||
|
||||
//Studiengangsleiter holen
|
||||
$stgl = '';
|
||||
$db = new basis_db();
|
||||
if ($studiengang_kz != '')
|
||||
{
|
||||
$studiengang_obj = new studiengang();
|
||||
$stgleiter = $studiengang_obj->getLeitung($studiengang_kz);
|
||||
|
||||
foreach ($stgleiter as $stgleiter_uid)
|
||||
{
|
||||
$row = new mitarbeiter($stgleiter_uid);
|
||||
$stgl .= trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost);
|
||||
}
|
||||
}
|
||||
|
||||
if ($uid == null)
|
||||
{
|
||||
$qry = "
|
||||
SELECT
|
||||
distinct mitarbeiter_uid
|
||||
FROM (
|
||||
SELECT
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)."
|
||||
UNION
|
||||
SELECT
|
||||
tbl_benutzer.uid as mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
|
||||
public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student, public.tbl_mitarbeiter
|
||||
WHERE
|
||||
tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND
|
||||
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
|
||||
student_uid=vw_student.uid AND
|
||||
tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND
|
||||
tbl_projektbetreuer.stunden!='0'
|
||||
) as mitarbeiter ORDER BY mitarbeiter_uid";
|
||||
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_object())
|
||||
{
|
||||
drawLehrauftrag($row->mitarbeiter_uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
drawLehrauftrag($uid);
|
||||
|
||||
function drawLehrauftrag($uid)
|
||||
{
|
||||
global $studiengang;
|
||||
global $studiengang_kz;
|
||||
global $xsl_oe_kurzbz;
|
||||
global $oe_arr;
|
||||
global $stg_arr;
|
||||
global $ss;
|
||||
global $xml;
|
||||
global $stgl;
|
||||
|
||||
$db = new basis_db();
|
||||
|
||||
$xml.='<lehrauftrag>
|
||||
<studiengang><![CDATA[FH-';
|
||||
//Studiengang
|
||||
$typ='';
|
||||
if ($studiengang->typ=='d')
|
||||
{
|
||||
$xml.= 'Diplom-';
|
||||
$typ = 'Diplom';
|
||||
}
|
||||
elseif ($studiengang->typ=='m')
|
||||
{
|
||||
$xml.= 'Master-';
|
||||
$typ = 'Master';
|
||||
}
|
||||
elseif ($studiengang->typ=='b')
|
||||
{
|
||||
$xml.= 'Bachelor-';
|
||||
$typ = 'Bachelor';
|
||||
}
|
||||
|
||||
$xml.= 'Studiengang '.$studiengang->bezeichnung.']]></studiengang>';
|
||||
$xml.= '<studiengang_bezeichnung><![CDATA['. $studiengang->bezeichnung. ']]></studiengang_bezeichnung>';
|
||||
$xml.= '<studiengang_bezeichnung_englisch><![CDATA['. $studiengang->english. ']]></studiengang_bezeichnung_englisch>';
|
||||
$xml.= '<studiengang_typ><![CDATA['. $typ. ']]></studiengang_typ>';
|
||||
|
||||
//Studiensemester
|
||||
if (substr($ss,0,2) == 'WS')
|
||||
$studiensemester = 'Wintersemester '.substr($ss,2);
|
||||
else
|
||||
$studiensemester = 'Sommersemester '.substr($ss,2);
|
||||
$xml .= '<studiensemester_kurzbz><![CDATA['. $ss. ']]></studiensemester_kurzbz>
|
||||
<studiensemester><![CDATA['. $studiensemester. ']]></studiensemester>';
|
||||
|
||||
//Lektor
|
||||
$qry = "
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
campus.vw_mitarbeiter
|
||||
LEFT JOIN public.tbl_adresse USING(person_id)
|
||||
WHERE
|
||||
uid=".$db->db_add_param($uid)."
|
||||
ORDER BY zustelladresse DESC, firma_id
|
||||
LIMIT 1";
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
if ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$firmenanschrift = false;
|
||||
if ($row->firma_id != '')
|
||||
{
|
||||
$qry ="
|
||||
SELECT
|
||||
tbl_firma.name, tbl_adresse.strasse, tbl_adresse.plz, tbl_adresse.ort
|
||||
FROM
|
||||
public.tbl_firma
|
||||
JOIN public.tbl_adresse USING(firma_id)
|
||||
WHERE
|
||||
tbl_firma.firma_id=".$db->db_add_param($row->firma_id)."
|
||||
AND person_id=".$db->db_add_param($row->person_id)."
|
||||
LIMIT 1";
|
||||
|
||||
if ($result_firma = $db->db_query($qry))
|
||||
{
|
||||
if ($row_firma = $db->db_fetch_object($result_firma))
|
||||
{
|
||||
$name_gesamt = $row_firma->name;
|
||||
$strasse = $row_firma->strasse;
|
||||
$plz = $row_firma->plz;
|
||||
$ort = $row_firma->ort;
|
||||
$zuhanden = "zu Handen ".trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost);
|
||||
$firmenanschrift = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$firmenanschrift)
|
||||
{
|
||||
$strasse = $row->strasse;
|
||||
$plz = $row->plz;
|
||||
$ort = $row->ort;
|
||||
$name_gesamt = trim($row->titelpre.' '.$row->vorname.' '.$row->nachname.' '.$row->titelpost);
|
||||
$zuhanden='';
|
||||
}
|
||||
// Lädt die letzte (aktuellste) Verwendungen eines Mitarbeiters um die inkludierte Lehre auslesen zu können
|
||||
$bis = new bisverwendung();
|
||||
$bis->getLastAktVerwendung($uid);
|
||||
|
||||
$xml .= '
|
||||
<mitarbeiter>
|
||||
<titelpre><![CDATA['.$row->titelpre.']]></titelpre>
|
||||
<vorname><![CDATA['.$row->vorname.']]></vorname>
|
||||
<familienname><![CDATA['.$row->nachname.']]></familienname>
|
||||
<titelpost><![CDATA['.$row->titelpost.']]></titelpost>
|
||||
<anschrift><![CDATA['.$strasse.']]></anschrift>
|
||||
<name_gesamt><![CDATA['.$name_gesamt.']]></name_gesamt>
|
||||
<zuhanden><![CDATA['.$zuhanden.']]></zuhanden>
|
||||
<plz><![CDATA['.$plz.']]></plz>
|
||||
<ort><![CDATA['.$ort.']]></ort>
|
||||
<svnr><![CDATA['.$row->svnr.']]></svnr>
|
||||
<personalnummer><![CDATA['.$row->personalnummer.']]></personalnummer>
|
||||
<inkludierte_lehre><![CDATA['.$bis->inkludierte_lehre.']]></inkludierte_lehre>
|
||||
</mitarbeiter>';
|
||||
}
|
||||
}
|
||||
|
||||
//Lehreinheiten
|
||||
$qry = "
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
campus.vw_lehreinheit
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid)
|
||||
JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$db->db_add_param($uid)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($ss). "
|
||||
AND lema.vertrag_id IS NOT NULL
|
||||
AND vertragsstatus_kurzbz = 'akzeptiert'";
|
||||
|
||||
if ($studiengang_kz != '') //$studiengang_kz!='0' &&
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
|
||||
}
|
||||
elseif (!empty($xsl_oe_kurzbz))
|
||||
{
|
||||
if ($xsl_oe_kurzbz == 'etw')
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz > 0";
|
||||
}
|
||||
|
||||
if ($xsl_oe_kurzbz == 'lehrgang')
|
||||
{
|
||||
$qry .= " AND lv_studiengang_kz <= 0";
|
||||
}
|
||||
}
|
||||
|
||||
$qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
|
||||
$lv = array();
|
||||
$anzahl_lvs = 0;
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
$last_le = '';
|
||||
$gesamtkosten = 0;
|
||||
$gesamtstunden = 0;
|
||||
$gruppen = array();
|
||||
$grp = '';
|
||||
$gruppen_getrennt = '';
|
||||
$einzelgruppe = '';
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if ($last_le != $row->lehreinheit_id && $last_le != '')
|
||||
{
|
||||
array_unique($gruppen);
|
||||
sort($gruppen);
|
||||
foreach ($gruppen as $gruppe)
|
||||
{
|
||||
$grp .= $gruppe.' ';
|
||||
$gruppen_getrennt .= '<einzelgruppe><![CDATA['.$gruppe.']]></einzelgruppe>';
|
||||
}
|
||||
$einzelgruppe = $gruppen_getrennt;
|
||||
$lv[$anzahl_lvs]['lehreinheit_id'] = $lehreinheit_id;
|
||||
$lv[$anzahl_lvs]['lehrveranstaltung'] = $lehrveranstaltung;
|
||||
$lv[$anzahl_lvs]['fachbereich'] = (isset($oe_arr[$lehrfach_oe_kurzbz])?$oe_arr[$lehrfach_oe_kurzbz]:'');
|
||||
$lv[$anzahl_lvs]['gruppe'] = ($grp != ''?trim($grp):' ');
|
||||
$lv[$anzahl_lvs]['stunden'] = ($stunden != ''?$stunden:' ');
|
||||
$lv[$anzahl_lvs]['satz'] = ($satz != ''?$satz:' ');
|
||||
$lv[$anzahl_lvs]['faktor'] = ($faktor != ''?$faktor:' ');
|
||||
$lv[$anzahl_lvs]['brutto'] = number_format($brutto,2,',','.');
|
||||
$lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt != ''?$gruppen_getrennt:' ');
|
||||
$anzahl_lvs++;
|
||||
|
||||
$gesamtkosten = $gesamtkosten + $brutto;
|
||||
$gesamtstunden = $gesamtstunden + $stunden;
|
||||
|
||||
$lehreinheit_id = '';
|
||||
$lehrveranstaltung = '';
|
||||
$lehrfach_oe_kurzbz = '';
|
||||
$gruppen = array();
|
||||
$stunden = '';
|
||||
$satz = '';
|
||||
$faktor = '';
|
||||
$brutto = '';
|
||||
$grp = '';
|
||||
$gruppen_getrennt = '';
|
||||
}
|
||||
|
||||
$lehreinheit_id = $row->lehreinheit_id;
|
||||
$lehrveranstaltung = CutString($row->lv_bezeichnung, 30, '...').' '.$row->lehrform_kurzbz.' '.$row->lv_semester.'. Semester';
|
||||
$lehrfach_oe_kurzbz = $row->lehrfach_oe_kurzbz;
|
||||
|
||||
if ($row->gruppe_kurzbz != '')
|
||||
$gruppen[] = $row->gruppe_kurzbz;
|
||||
else
|
||||
$gruppen[] = trim($stg_arr[$row->studiengang_kz].'-'.$row->semester.$row->verband.$row->gruppe).' ';
|
||||
|
||||
$stunden = $row->semesterstunden;
|
||||
$satz = $row->stundensatz;
|
||||
$faktor = $row->faktor;
|
||||
$brutto = $row->semesterstunden * $row->stundensatz;
|
||||
$last_le = $row->lehreinheit_id;
|
||||
}
|
||||
array_unique($gruppen);
|
||||
sort($gruppen);
|
||||
foreach ($gruppen as $gruppe)
|
||||
{
|
||||
$grp .= $gruppe.' ';
|
||||
$gruppen_getrennt .= '<einzelgruppe><![CDATA['.$gruppe.']]></einzelgruppe>';
|
||||
}
|
||||
if (isset($lehreinheit_id))
|
||||
{
|
||||
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($lehreinheit_id)?$lehreinheit_id:' ');
|
||||
$lv[$anzahl_lvs]['lehrveranstaltung'] = (isset($lehrveranstaltung)?$lehrveranstaltung:' ');
|
||||
$lv[$anzahl_lvs]['fachbereich'] = (isset($lehrfach_oe_kurzbz)?$oe_arr[$lehrfach_oe_kurzbz]:' ');
|
||||
$lv[$anzahl_lvs]['gruppe'] = ($grp!=''?trim($grp):' ');
|
||||
$lv[$anzahl_lvs]['stunden'] = (isset($stunden)?$stunden:' ');
|
||||
$lv[$anzahl_lvs]['satz'] = (isset($satz)?$satz:' ');
|
||||
$lv[$anzahl_lvs]['faktor'] = (isset($faktor)?$faktor:' ');
|
||||
$lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' ');
|
||||
$lv[$anzahl_lvs]['einzelgruppe'] = ($gruppen_getrennt!=''?$gruppen_getrennt:' ');
|
||||
$anzahl_lvs++;
|
||||
|
||||
if (isset($brutto))
|
||||
$gesamtkosten = $gesamtkosten + $brutto;
|
||||
if (isset($stunden))
|
||||
$gesamtstunden = $gesamtstunden + $stunden;
|
||||
}
|
||||
}
|
||||
$qry = 'SELECT
|
||||
pa.projektarbeit_id,
|
||||
pb.faktor,
|
||||
pb.stunden,
|
||||
pb.stundensatz,
|
||||
lv.semester,
|
||||
vorname,
|
||||
nachname,
|
||||
student.studiengang_kz,
|
||||
projekttyp_kurzbz,
|
||||
lv.oe_kurzbz,
|
||||
vertragsstatus_kurzbz
|
||||
FROM lehre.tbl_projektbetreuer pb
|
||||
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
|
||||
JOIN campus.vw_student student ON pa.student_uid = student.uid
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
|
||||
WHERE pb.vertrag_id IS NOT NULL
|
||||
AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND benutzer.uid = '.$db->db_add_param($uid).'
|
||||
AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
|
||||
|
||||
if ($studiengang_kz != '')
|
||||
{
|
||||
$qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
}
|
||||
elseif (!empty($xsl_oe_kurzbz))
|
||||
{
|
||||
if ($xsl_oe_kurzbz == 'etw')
|
||||
{
|
||||
$qry .= " AND lv.studiengang_kz > 0";
|
||||
}
|
||||
|
||||
if ($xsl_oe_kurzbz == 'lehrgang')
|
||||
{
|
||||
$qry .= " AND lv.studiengang_kz <= 0";
|
||||
}
|
||||
}
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
while ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$stg = new studiengang();
|
||||
$stg->load($row->studiengang_kz);
|
||||
$stg_kuerzel = $stg->kuerzel;
|
||||
|
||||
$brutto = $row->stunden * $row->stundensatz;
|
||||
if ($row->stunden != 0)
|
||||
{
|
||||
switch ($row->projekttyp_kurzbz)
|
||||
{
|
||||
case 'Bachelor': $kuerzel = 'BA'; break;
|
||||
case 'Diplom': $kuerzel = 'DA'; break;
|
||||
case 'Projekt': $kuerzel = 'PJ'; break;
|
||||
case 'Praktikum': $kuerzel = 'PX'; break;
|
||||
case 'Praxis': $kuerzel = 'PX'; break;
|
||||
default: $kuerzel = 'PA'; break;
|
||||
}
|
||||
|
||||
$lv[$anzahl_lvs]['lehreinheit_id'] = (isset($row->projektarbeit_id)?$kuerzel.$row->projektarbeit_id:' ');
|
||||
$lv[$anzahl_lvs]['lehrveranstaltung'] = 'Betreuung '.$row->vorname.' '.$row->nachname;
|
||||
$lv[$anzahl_lvs]['fachbereich'] = (isset($row->oe_kurzbz) && array_key_exists($row->oe_kurzbz, $oe_arr)?$oe_arr[$row->oe_kurzbz]:' ');
|
||||
$lv[$anzahl_lvs]['gruppe'] = ' ';
|
||||
$lv[$anzahl_lvs]['stunden'] = (isset($row->stunden)?number_format($row->stunden,2):' ');
|
||||
$lv[$anzahl_lvs]['satz'] = (isset($row->stundensatz)?$row->stundensatz:' ');
|
||||
$lv[$anzahl_lvs]['faktor'] = (isset($row->faktor)?$row->faktor:'');
|
||||
$lv[$anzahl_lvs]['brutto'] = (isset($brutto)?number_format($brutto,2,',','.'):' ');
|
||||
$lv[$anzahl_lvs]['einzelgruppe'] = '<einzelgruppe><![CDATA['.$stg_kuerzel.'-'.$row->semester.']]></einzelgruppe>';
|
||||
$anzahl_lvs++;
|
||||
|
||||
$gesamtkosten = $gesamtkosten + $brutto;
|
||||
$gesamtstunden = $gesamtstunden + $row->stunden;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
foreach ($lv as $lv_row)
|
||||
{
|
||||
$xml .= '
|
||||
<lehreinheit>
|
||||
<lehreinheit_id><![CDATA['.$lv_row['lehreinheit_id'].']]></lehreinheit_id>
|
||||
<lehrveranstaltung><![CDATA['.$lv_row['lehrveranstaltung'].']]></lehrveranstaltung>
|
||||
<fachbereich><![CDATA['.$lv_row['fachbereich'].']]></fachbereich>
|
||||
<gruppe><![CDATA['.$lv_row['gruppe'].']]></gruppe>
|
||||
<gruppen_getrennt>'. $lv_row['einzelgruppe']. '</gruppen_getrennt> <!-- Variable enthält CDATA tags-->
|
||||
<stunden><![CDATA['.$lv_row['stunden'].']]></stunden>
|
||||
<satz><![CDATA['.$lv_row['satz'].']]></satz>
|
||||
<faktor><![CDATA['.$lv_row['faktor'].']]></faktor>
|
||||
<brutto><![CDATA['.$lv_row['brutto'].']]></brutto>
|
||||
</lehreinheit>';
|
||||
};
|
||||
|
||||
// Gesamtstunden und Gesamtkosten
|
||||
$xml .= "
|
||||
<gesamtstunden><![CDATA[".number_format($gesamtstunden,2)."]]></gesamtstunden>
|
||||
<gesamtbetrag><![CDATA[".number_format($gesamtkosten,2,',','.')."]]></gesamtbetrag>";
|
||||
|
||||
|
||||
$xml .= "
|
||||
<studiengangsleiter><![CDATA[$stgl]]></studiengangsleiter>";
|
||||
|
||||
$xml .= '
|
||||
<datum><![CDATA['.date('d.m.Y').']]></datum>
|
||||
</lehrauftrag>
|
||||
';
|
||||
}
|
||||
|
||||
// END GENERATE XML
|
||||
echo $xml.'</lehrauftraege>';
|
||||
|
||||
?>
|
||||
+2276
-5
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user