Merge branch 'master' of https://github.com/FH-Complete/FHC-Core
@@ -1,7 +1,7 @@
|
||||
.htaccess
|
||||
/nbproject/
|
||||
/vendor/*
|
||||
!/vendor/easyui
|
||||
!/vendor/FHC-vendor
|
||||
/.idea/
|
||||
documents/
|
||||
.settings
|
||||
|
||||
@@ -837,6 +837,27 @@ echo "
|
||||
|
||||
$moodle24_course_bezeichnung[$obj->mdl_course_id]=$moodle24course->mdl_shortname;
|
||||
}
|
||||
|
||||
if(!isset($moodle24_course_gewicht[$obj->mdl_course_id]))
|
||||
{
|
||||
$mdl_obj = new moodle24_course();
|
||||
$mdl_lehreinheiten=$mdl_obj->getLeFromCourse($obj->mdl_course_id);
|
||||
|
||||
foreach($mdl_lehreinheiten as $row_mdl_lehreinheit)
|
||||
{
|
||||
if($row_mdl_lehreinheit!='')
|
||||
{
|
||||
$lehreinheit_gewicht_obj = new lehreinheit();
|
||||
$lehreinheit_gewicht_obj->load($row_mdl_lehreinheit);
|
||||
|
||||
if($lehreinheit_gewicht_obj->gewicht!='')
|
||||
{
|
||||
$moodle24_course_gewicht[$obj->mdl_course_id]=$lehreinheit_gewicht_obj->gewicht;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -870,6 +891,8 @@ echo "
|
||||
$note_les_str = '';
|
||||
$le_anz = 0;
|
||||
$note_le = 0;
|
||||
$note_le_gewichtet=0;
|
||||
$gewichtsumme=0;
|
||||
$note=0;
|
||||
if($grade_from_moodle)
|
||||
{
|
||||
@@ -916,7 +939,9 @@ echo "
|
||||
if (is_numeric($note))
|
||||
{
|
||||
$note_le += $note;
|
||||
$le_anz += 1;
|
||||
$note_le_gewichtet +=$note*$gewichtung;
|
||||
$gewichtsumme+=$gewichtung;
|
||||
$le_anz += 1;
|
||||
}
|
||||
if ($note == 5)
|
||||
$leneg = " style='color:red; font-weight:bold'";
|
||||
@@ -966,7 +991,15 @@ echo "
|
||||
{
|
||||
if($moodle24_noten->uid==$row_stud->uid)
|
||||
{
|
||||
$gewichtung=1;
|
||||
$note_le+=$moodle24_noten->note;
|
||||
if(isset($moodle24_course_gewicht[$moodle24_noten->mdl_course_id]))
|
||||
$gewichtung=$moodle24_course_gewicht[$moodle24_noten->mdl_course_id];
|
||||
|
||||
if($gewichtung=='')
|
||||
$gewichtung=1;
|
||||
$note_le_gewichtet+=$moodle24_noten->note*$gewichtung;
|
||||
$gewichtsumme+=$gewichtung;
|
||||
$le_anz+=1;
|
||||
//if ($moodle24_noten->note == 5)
|
||||
// $leneg = " style='color:red; font-weight:bold'";
|
||||
@@ -975,7 +1008,9 @@ echo "
|
||||
$title="Moodle KursID: ".$moodle24_noten->mdl_course_id.
|
||||
"\nKursbezeichnung: ".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].
|
||||
"\nUser: ".$moodle24_noten->uid.
|
||||
"\nNote: $moodle24_noten->note";
|
||||
"\nNote: ".$moodle24_noten->note;
|
||||
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
|
||||
$title.="\nGewichtung: ".$gewichtung;
|
||||
$note_les_str .= "<br><span".$leneg.">".$moodle24_noten->note."</span><span title='".$title."' style='font-size:10px'> (".$moodle24_course_bezeichnung[$moodle24_noten->mdl_course_id].")</span> ";
|
||||
|
||||
}
|
||||
@@ -998,12 +1033,23 @@ echo "
|
||||
else
|
||||
{
|
||||
$note_le += $legesamtnote->note;
|
||||
$le_anz += 1;
|
||||
|
||||
$gewicht = $l->gewicht;
|
||||
if($l->gewicht=='')
|
||||
$gewicht = 1;
|
||||
$note_le_gewichtet+=$legesamtnote->note*$gewicht;
|
||||
$gewichtsumme+=$gewicht;
|
||||
|
||||
$le_anz += 1;
|
||||
if ($legesamtnote->note == 5)
|
||||
$leneg = " style='color:red; font-weight:bold'";
|
||||
else
|
||||
$leneg = "";
|
||||
$note_les_str .= "<span".$leneg.">".$legesamtnote->note."</span> (".$l->lehreinheit_id.") ";
|
||||
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
|
||||
$title='Gewichtung: '.$l->gewicht;
|
||||
else
|
||||
$title='';
|
||||
$note_les_str .= '<span title="'.$title.'"><span'.$leneg.'>'.$legesamtnote->note.'</span> ('.$l->lehreinheit_id.') </span>';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1026,13 +1072,31 @@ echo "
|
||||
{
|
||||
if(CIS_GESAMTNOTE_PUNKTE)
|
||||
{
|
||||
$punkte_vorschlag = round($note_le/$le_anz,2);
|
||||
$notenschluessel = new notenschluessel();
|
||||
$note_vorschlag = $notenschluessel->getNote($punkte_vorschlag, $lvid, $stsem);
|
||||
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
|
||||
{
|
||||
// Lehreinheitsgewichtung
|
||||
$punkte_vorschlag = round($note_le_gewichtet/$gewichtsumme,2);
|
||||
$notenschluessel = new notenschluessel();
|
||||
$note_vorschlag = $notenschluessel->getNote($punkte_vorschlag, $lvid, $stsem);
|
||||
}
|
||||
else
|
||||
{
|
||||
$punkte_vorschlag = round($note_le/$le_anz,2);
|
||||
$notenschluessel = new notenschluessel();
|
||||
$note_vorschlag = $notenschluessel->getNote($punkte_vorschlag, $lvid, $stsem);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$note_vorschlag = round($note_le/$le_anz);
|
||||
if(defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)
|
||||
{
|
||||
$note_vorschlag = round($note_le_gewichtet/$gewichtsumme);
|
||||
}
|
||||
else
|
||||
{
|
||||
$note_vorschlag = round($note_le/$le_anz);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -33,7 +33,6 @@ $sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
$uid = get_uid();
|
||||
$uid = 'pam';
|
||||
|
||||
if (isset($_GET['id']))
|
||||
$id=$_GET['id'];
|
||||
|
||||
@@ -29,18 +29,15 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/ort.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
|
||||
|
||||
$uid=get_uid();
|
||||
?>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
@@ -54,7 +51,7 @@ $uid=get_uid();
|
||||
if (restore)
|
||||
selObj.selectedIndex=0;
|
||||
}
|
||||
|
||||
|
||||
function toggle_checkboxes(obj)
|
||||
{
|
||||
var f = obj.form;
|
||||
@@ -66,7 +63,7 @@ $uid=get_uid();
|
||||
e.checked = f.check_all.checked;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
$("select[name='studiengang_kz']").change(function() {
|
||||
var studiengang_kz = $("select[name='studiengang_kz']").val();
|
||||
@@ -77,7 +74,7 @@ $uid=get_uid();
|
||||
},
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
success: function(data)
|
||||
success: function(data)
|
||||
{
|
||||
$("select[name='semester']").empty();
|
||||
$("select[name='semester']").append('<option value="">*</option>');
|
||||
@@ -85,13 +82,13 @@ $uid=get_uid();
|
||||
$("select[name='semester']").append('<option value="'+data+'">'+data+'</option>');
|
||||
});
|
||||
},
|
||||
error: function(data)
|
||||
error: function(data)
|
||||
{
|
||||
alert("Fehler beim Laden der Daten");
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
$("select[name='semester']").change(function() {
|
||||
var studiengang_kz = $("select[name='studiengang_kz']").val();
|
||||
var semester = $("select[name='semester']").val();
|
||||
@@ -103,7 +100,7 @@ $uid=get_uid();
|
||||
},
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
success: function(data)
|
||||
success: function(data)
|
||||
{
|
||||
$("select[name='verband']").empty();
|
||||
$("select[name='verband']").append('<option value="">*</option>');
|
||||
@@ -111,13 +108,13 @@ $uid=get_uid();
|
||||
$("select[name='verband']").append('<option value="'+data+'">'+data+'</option>');
|
||||
});
|
||||
},
|
||||
error: function(data)
|
||||
error: function(data)
|
||||
{
|
||||
alert("Fehler beim Laden der Daten");
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
$("select[name='verband']").change(function() {
|
||||
var studiengang_kz = $("select[name='studiengang_kz']").val();
|
||||
var semester = $("select[name='semester']").val();
|
||||
@@ -131,7 +128,7 @@ $uid=get_uid();
|
||||
},
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
success: function(data)
|
||||
success: function(data)
|
||||
{
|
||||
$("select[name='gruppe']").empty();
|
||||
$("select[name='gruppe']").append('<option value="">*</option>');
|
||||
@@ -139,7 +136,7 @@ $uid=get_uid();
|
||||
$("select[name='gruppe']").append('<option value="'+data+'">'+data+'</option>');
|
||||
});
|
||||
},
|
||||
error: function(data)
|
||||
error: function(data)
|
||||
{
|
||||
alert("Fehler beim Laden der Daten");
|
||||
}
|
||||
@@ -152,7 +149,6 @@ $uid=get_uid();
|
||||
<link href="../../../skin/flexcrollstyles.css" rel="stylesheet" type="text/css" />
|
||||
<script src="../../../include/js/flexcroll.js" type="text/javascript" ></script>
|
||||
</HEAD>
|
||||
|
||||
<BODY id="inhalt">
|
||||
<div class="flexcroll" style="outline: none;">
|
||||
<h1><?php echo $p->t('lvplan/wochenplan');?></h1>
|
||||
@@ -298,14 +294,14 @@ if (!isset($pers_uid))
|
||||
if (isset($_POST['reserve']))
|
||||
$reserve=$_POST['reserve'];
|
||||
else if (isset($_GET['reserve']))
|
||||
$reserve=$_GET['reserve'];
|
||||
$reserve=$_GET['reserve'];
|
||||
// Reservieren
|
||||
if (isset($reserve) && $raumres)
|
||||
{
|
||||
$ort_obj = new ort();
|
||||
if(!$ort_obj->load($ort_kurzbz))
|
||||
die($p->t('lvplan/raumExistiertNicht'));
|
||||
|
||||
|
||||
if(!$erg_std=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde"))
|
||||
{
|
||||
die($db->db_last_error());
|
||||
@@ -319,13 +315,13 @@ if (isset($reserve) && $raumres)
|
||||
{
|
||||
$stunde=$db->db_result($erg_std,$j,'"stunde"');
|
||||
$var='reserve'.$t.'_'.$stunde;
|
||||
|
||||
|
||||
if (isset($_REQUEST[$var]))
|
||||
{
|
||||
$datum_res=$_REQUEST[$var];
|
||||
|
||||
$reservierung = new reservierung();
|
||||
|
||||
|
||||
if(!$reservierung->isReserviert($ort_kurzbz, $datum_res, $stunde))
|
||||
{
|
||||
if (empty($_REQUEST['titel']) && empty($_REQUEST['beschreibung']))
|
||||
@@ -335,7 +331,7 @@ if (isset($reserve) && $raumres)
|
||||
else if ( empty($_REQUEST['beschreibung']))
|
||||
echo "<br>".$p->t('lvplan/beschreibungFehlt')."! <br>";
|
||||
else
|
||||
{
|
||||
{
|
||||
$reservierung = new reservierung();
|
||||
$reservierung->datum = $datum_res;
|
||||
$reservierung->ort_kurzbz = $ort_kurzbz;
|
||||
@@ -344,7 +340,7 @@ if (isset($reserve) && $raumres)
|
||||
$reservierung->titel = $_REQUEST['titel'];
|
||||
$reservierung->insertamum=date('Y-m-d H:i:s');
|
||||
$reservierung->insertvon=$uid;
|
||||
|
||||
|
||||
if(isset($_REQUEST['studiengang_kz']))
|
||||
{
|
||||
$reservierung->studiengang_kz = $_REQUEST['studiengang_kz'];
|
||||
@@ -359,17 +355,17 @@ if (isset($reserve) && $raumres)
|
||||
$reservierung->studiengang_kz='0';
|
||||
$reservierung->uid = $uid;
|
||||
}
|
||||
|
||||
|
||||
if(!$reservierung->save(true))
|
||||
echo $reservierung->errormsg;
|
||||
else
|
||||
$count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<br>$ort_kurzbz ".$p->t('lvplan/bereitsReserviert').": $datum_res - Stunde $stunde <br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -895,7 +895,13 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
$l_arr = $lehre->getLehreForUser($user, $sem_akt);
|
||||
if ($l_arr["LehreAuftraege"]>0 || $l_arr["LehreIntern"] > 0 || $l_arr["LehreExtern"] > 0)
|
||||
{
|
||||
$l_extern_soll = $l_arr["LehreAuftraege"]-$lehre_inkludiert;
|
||||
if ($lehre_inkludiert == -1)
|
||||
{
|
||||
$l_extern_soll = 0;
|
||||
$lehre_inkludiert = $l_arr["LehreAuftraege"];
|
||||
}
|
||||
else
|
||||
$l_extern_soll = $l_arr["LehreAuftraege"]-$lehre_inkludiert;
|
||||
$l_extern_soll_norm = $l_extern_soll/4*3;
|
||||
$lehre_inkludiert_norm = $lehre_inkludiert/4*3;
|
||||
echo '<table style="border: 1px solid gray">';
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
"require": {
|
||||
"components/jquery": "2.1.4",
|
||||
"components/angular.js": "1.3.16",
|
||||
"components/bootstrap": "3.3.5"
|
||||
"components/bootstrap": "3.3.5",
|
||||
"michelf/php-markdown": "1.5.0"
|
||||
|
||||
},
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "6f613635b131d66244b30d0ee702a36b",
|
||||
"content-hash": "60c05e7e5b04118d51a1bc59c4877b8d",
|
||||
"hash": "ef5178581ef212d2de46334bd149f469",
|
||||
"content-hash": "6574a5f8f5995f3db237091bf4b70270",
|
||||
"packages": [
|
||||
{
|
||||
"name": "components/angular.js",
|
||||
@@ -420,6 +420,57 @@
|
||||
"description": "jQuery JavaScript Library",
|
||||
"homepage": "http://jquery.com",
|
||||
"time": "2015-05-08 05:04:47"
|
||||
},
|
||||
{
|
||||
"name": "michelf/php-markdown",
|
||||
"version": "1.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/michelf/php-markdown.git",
|
||||
"reference": "e1aabe18173231ebcefc90e615565742fc1c7fd9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/e1aabe18173231ebcefc90e615565742fc1c7fd9",
|
||||
"reference": "e1aabe18173231ebcefc90e615565742fc1c7fd9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-lib": "1.4.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Michelf": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "John Gruber",
|
||||
"homepage": "http://daringfireball.net/"
|
||||
},
|
||||
{
|
||||
"name": "Michel Fortin",
|
||||
"email": "michel.fortin@michelf.ca",
|
||||
"homepage": "https://michelf.ca/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "PHP Markdown",
|
||||
"homepage": "https://michelf.ca/projects/php-markdown/",
|
||||
"keywords": [
|
||||
"markdown"
|
||||
],
|
||||
"time": "2015-03-01 12:03:08"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
||||
@@ -56,6 +56,9 @@ define('CIS_GESAMTNOTE_PUNKTE',false);
|
||||
// Gibt an ob der Lektor erneut eine LVNote eintragen kann wenn bereits eine Zeugnisnote vorhanden ist (true | false) DEFAULT true
|
||||
define('CIS_GESAMTNOTE_UEBERSCHREIBEN',true);
|
||||
|
||||
// Gewichtung der Lehreinheiten bei Noteneintragung true|false
|
||||
define('CIS_GESAMTNOTE_GEWICHTUNG', true);
|
||||
|
||||
// Gibt an ob im FAS bei den Lehrveranstaltungsnoten ein zusaetzliches Formular angezeigt wird um
|
||||
// Vertraege fuer Pruefungshonorare anzulegen
|
||||
define('FAS_GESAMTNOTE_PRUEFUNGSHONORAR',false);
|
||||
@@ -195,8 +198,4 @@ define('BEWERBERTOOL_GTM', '');
|
||||
|
||||
// Array mit Usern die nicht Kollidieren
|
||||
define('KOLLISIONSFREIE_USER',serialize(array('_DummyLektor')));
|
||||
|
||||
// Soll der Lageplan am Infoterminal angezeigt werden (true|false)
|
||||
define('CIS_INFOSCREEN_LAGEPLAN_ANZEIGEN', true);
|
||||
|
||||
?>
|
||||
|
||||
@@ -1251,6 +1251,7 @@ if(!$error)
|
||||
$leDAO->lehrform_kurzbz=$_POST['lehrform'];
|
||||
$leDAO->stundenblockung=$_POST['stundenblockung'];
|
||||
$leDAO->wochenrythmus=$_POST['wochenrythmus'];
|
||||
$leDAO->gewicht = $_POST['gewicht'];
|
||||
|
||||
if (isset($_POST['start_kw']))
|
||||
$leDAO->start_kw=$_POST['start_kw'];
|
||||
|
||||
@@ -26,6 +26,7 @@ header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../config/global.config.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
@@ -118,6 +119,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<row>
|
||||
<label value="LV-ID" <?php echo ($rechte->isBerechtigt('lehre/lehrveranstaltung',null,'suid'))?'':'hidden="true"'; ?>/>
|
||||
<textbox id="lehrveranstaltung-detail-textbox-lehrveranstaltung" disabled="true" maxlength="20" <?php echo ($rechte->isBerechtigt('lehre/lehrveranstaltung',null,'suid'))?'':'hidden="true"'; ?>/>
|
||||
<label value="Gewicht" <?php echo (defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)?'':'hidden="true"'; ?>/>
|
||||
<textbox id="lehrveranstaltung-detail-textbox-gewicht" disabled="true" maxlength="4" <?php echo (defined('CIS_GESAMTNOTE_GEWICHTUNG') && CIS_GESAMTNOTE_GEWICHTUNG)?'':'hidden="true"'; ?>/>
|
||||
|
||||
</row>
|
||||
<row>
|
||||
<label value="Lehrfach" />
|
||||
|
||||
@@ -561,6 +561,7 @@ function LeDetailReset()
|
||||
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=getStudiensemester();
|
||||
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value='<?php echo DEFAULT_LEHREINHEIT_LEHRFORM; ?>';
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value='';
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-gewicht').value='1';
|
||||
|
||||
//mitarbeiterlehreinheit tree leeren
|
||||
lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
|
||||
@@ -611,6 +612,7 @@ function LeDetailDisableFields(val)
|
||||
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-unr').disabled=val;
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').disabled=val;
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-gewicht').disabled=val;
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -633,6 +635,7 @@ function LeDetailSave()
|
||||
raumtypalternativ = document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value;
|
||||
studiensemester = document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value;
|
||||
lehrform = document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value;
|
||||
gewicht = document.getElementById('lehrveranstaltung-detail-textbox-gewicht').value;
|
||||
|
||||
if(lehrveranstaltung=='')
|
||||
return false;
|
||||
@@ -685,6 +688,7 @@ function LeDetailSave()
|
||||
req.add('studiensemester_kurzbz', studiensemester);
|
||||
req.add('lehrform', lehrform);
|
||||
req.add('anmerkung', anmerkung);
|
||||
req.add('gewicht', gewicht);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
@@ -853,6 +857,7 @@ function LeAuswahl()
|
||||
studiensemester=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
|
||||
lehrform=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehrform_kurzbz" ));
|
||||
anzahl_studenten=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_studenten" ));
|
||||
gewicht=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gewicht" ));
|
||||
|
||||
//Lehrfach drop down setzen
|
||||
|
||||
@@ -909,6 +914,7 @@ function LeAuswahl()
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value=lehreinheit_id;
|
||||
document.getElementById('lehrveranstaltung-detail-groupbox-caption').label='Details - Anzahl TeilnehmerInnen: '+anzahl_studenten;
|
||||
|
||||
document.getElementById('lehrveranstaltung-detail-textbox-gewicht').value=gewicht;
|
||||
//Lehreinheitmitarbeiter tree setzen
|
||||
url='<?php echo APP_ROOT;?>rdf/lehreinheitmitarbeiter.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
|
||||
try
|
||||
|
||||
@@ -108,6 +108,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#onlinebewerbung" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="interessent-dokumente-tree-nichtabgegeben-pflicht" label="pflicht" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/dokument/rdf#pflicht" onclick="InteressentDokumenteNichtAbgegebenTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -126,6 +130,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#titel_intern" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#anmerkung_intern" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#onlinebewerbung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/dokument/rdf#pflicht" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
||||
@@ -2697,7 +2697,7 @@ if(!$error)
|
||||
$return = false;
|
||||
}
|
||||
|
||||
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true)
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note);
|
||||
}
|
||||
@@ -2812,7 +2812,7 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note);
|
||||
}
|
||||
@@ -2971,7 +2971,7 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note);
|
||||
}
|
||||
|
||||
@@ -5482,5 +5482,5 @@ function StudentCisNotenliste(event)
|
||||
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
|
||||
var uid = tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
window.open('<?php echo CIS_ROOT; ?>cis/private/lehre/notenliste.php?uid='+uid);
|
||||
window.open('<?php echo CIS_ROOT; ?>cis/private/lehre/notenliste.php?stsem=alle&uid='+uid);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* Klasse benutzerfunktion (FAS-Online)
|
||||
* @create 04-12-2006
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class benutzerfunktion extends basis_db
|
||||
{
|
||||
@@ -57,7 +57,7 @@ class benutzerfunktion extends basis_db
|
||||
public function __construct($benutzerfunktion_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
if($benutzerfunktion_id != null)
|
||||
$this->load($benutzerfunktion_id);
|
||||
}
|
||||
@@ -106,7 +106,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function benutzerfunktion_exists($uid, $benutzerfunktion)
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($benutzerfunktion);
|
||||
|
||||
if($row = $this->db_fetch_object($this->db_query($qry)))
|
||||
@@ -131,8 +131,8 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getBenutzerFunktion($uid, $funktion_kurzbz, $oe_kurzbz)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)."
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)."
|
||||
AND oe_kurzbz=".$this->db_add_param($oe_kurzbz);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
@@ -168,7 +168,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt mehrere BenutzerFunktionen
|
||||
* @param funktion_kurzbz, studiengang_kz, semester
|
||||
@@ -177,7 +177,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getBenutzerFunktionen($funktion_kurzbz, $oe_kurzbz='', $semester='', $uid='')
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)."
|
||||
AND (datum_bis >= now() OR datum_bis IS NULL)
|
||||
AND (datum_von <= now() OR datum_von IS NULL)";
|
||||
@@ -188,7 +188,7 @@ class benutzerfunktion extends basis_db
|
||||
$qry.=" AND semester=".$this->db_add_param($semester);
|
||||
if($uid!='')
|
||||
$qry.=" AND uid=".$this->db_add_param($uid);
|
||||
|
||||
|
||||
$qry.=" ORDER BY funktion_kurzbz, oe_kurzbz, semester";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
@@ -196,7 +196,7 @@ class benutzerfunktion extends basis_db
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new benutzerfunktion();
|
||||
|
||||
|
||||
$obj->benutzerfunktion_id = $row->benutzerfunktion_id;
|
||||
$obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
|
||||
$obj->uid = $row->uid;
|
||||
@@ -211,9 +211,9 @@ class benutzerfunktion extends basis_db
|
||||
$obj->datum_bis = $row->datum_bis;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->wochenstunden = $row->wochenstunden;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -283,7 +283,7 @@ class benutzerfunktion extends basis_db
|
||||
$this->errormsg='Benutzerfunktion_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$qry = "DELETE FROM public.tbl_benutzerfunktion WHERE benutzerfunktion_id=".$this->db_add_param($benutzerfunktion_id, FHC_INTEGER);
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
@@ -293,7 +293,7 @@ class benutzerfunktion extends basis_db
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
@@ -379,13 +379,13 @@ class benutzerfunktion extends basis_db
|
||||
$this->benutzerfunktion_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
@@ -399,7 +399,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Lädt alle Benutzerfunktionen zu einer UID
|
||||
* @param type $uid UID des Mitarbeiters
|
||||
@@ -410,7 +410,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getBenutzerFunktionByUid($uid, $funktion_kurzbz=null, $startZeitraum=null, $endeZeitraum=null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE uid=".$this->db_add_param($uid);
|
||||
if(!is_null($funktion_kurzbz))
|
||||
{
|
||||
@@ -458,7 +458,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt alle Benutzerfunktionen in einer Organisationseinheit
|
||||
* @param $oe_kurzbz
|
||||
@@ -470,7 +470,7 @@ class benutzerfunktion extends basis_db
|
||||
*/
|
||||
public function getOeFunktionen($oe_kurzbz, $funktionen_kurzbz=null, $startZeitraum=null, $endeZeitraum=null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
$qry = "SELECT * FROM public.tbl_benutzerfunktion
|
||||
WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz);
|
||||
|
||||
if(!is_null($funktionen_kurzbz))
|
||||
@@ -486,15 +486,15 @@ class benutzerfunktion extends basis_db
|
||||
{
|
||||
$qry .=' AND (datum_von IS NULL OR datum_von <='.$this->db_add_param($endeZeitraum).')';
|
||||
}
|
||||
|
||||
|
||||
$qry.=" ORDER BY bezeichnung, uid";
|
||||
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new benutzerfunktion();
|
||||
|
||||
|
||||
$obj->benutzerfunktion_id = $row->benutzerfunktion_id;
|
||||
$obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
|
||||
$obj->uid = $row->uid;
|
||||
@@ -509,9 +509,9 @@ class benutzerfunktion extends basis_db
|
||||
$obj->datum_bis = $row->datum_bis;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->wochenstunden = $row->wochenstunden;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -521,5 +521,7 @@ class benutzerfunktion extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -313,7 +313,7 @@ class betriebsmittelperson extends basis_db
|
||||
* @param $betriebsmitteltyp Typ auf den gefiltert werden soll
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getBetriebsmittelPerson($person_id, $betriebsmitteltyp=null)
|
||||
public function getBetriebsmittelPerson($person_id, $betriebsmitteltyp=null, $order=null)
|
||||
{
|
||||
$this->result=array();
|
||||
$this->errormsg = '';
|
||||
@@ -326,7 +326,11 @@ class betriebsmittelperson extends basis_db
|
||||
WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
|
||||
if(!is_null($betriebsmitteltyp))
|
||||
$qry.=" AND betriebsmitteltyp=".$this->db_add_param($betriebsmitteltyp);
|
||||
$qry.=" ORDER BY betriebsmitteltyp, nummer";
|
||||
|
||||
if(!is_null($order))
|
||||
$qry.=" ORDER BY ".$order;
|
||||
else
|
||||
$qry.=" ORDER BY betriebsmitteltyp, nummer";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -42,6 +42,9 @@ class dokument extends basis_db
|
||||
public $ext_id;
|
||||
public $onlinebewerbung;
|
||||
|
||||
public $bezeichnung_mehrsprachig;
|
||||
public $dokumentbeschreibung_mehrsprachig;
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional ein Dokument
|
||||
* @param $dokument_kurzbz
|
||||
@@ -216,15 +219,43 @@ class dokument extends basis_db
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO public.tbl_dokument(dokument_kurzbz, bezeichnung) VALUES('.
|
||||
$this->db_add_param($this->dokument_kurzbz).','.
|
||||
$this->db_add_param($this->bezeichnung).');';
|
||||
$qry = 'INSERT INTO public.tbl_dokument(dokument_kurzbz, ';
|
||||
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" bezeichnung_mehrsprachig[$idx],";
|
||||
}
|
||||
|
||||
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" dokumentbeschreibung_mehrsprachig[$idx],";
|
||||
}
|
||||
$qry.='bezeichnung) VALUES('.
|
||||
$this->db_add_param($this->dokument_kurzbz).',';
|
||||
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
|
||||
$qry.=$this->db_add_param($value).',';
|
||||
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
|
||||
$qry.=$this->db_add_param($value).',';
|
||||
$this->db_add_param($this->bezeichnung).');';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE public.tbl_dokument SET '.
|
||||
'bezeichnung = '.$this->db_add_param($this->bezeichnung).
|
||||
'WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz);
|
||||
'bezeichnung = '.$this->db_add_param($this->bezeichnung).',';
|
||||
foreach($this->bezeichnung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" bezeichnung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
|
||||
}
|
||||
foreach($this->dokumentbeschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" dokumentbeschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
|
||||
}
|
||||
$qry = mb_substr($qry,0,-1);
|
||||
$qry.='WHERE dokument_kurzbz = '.$this->db_add_param($this->dokument_kurzbz);
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -455,7 +486,8 @@ class dokument extends basis_db
|
||||
*/
|
||||
public function loadDokumentStudiengang($dokument_kurzbz, $studiengang_kz)
|
||||
{
|
||||
$qry="SELECT * FROM public.tbl_dokumentstudiengang
|
||||
$sprache = new sprache();
|
||||
$qry="SELECT *,".$sprache->getSprachQuery('beschreibung_mehrsprachig')." FROM public.tbl_dokumentstudiengang
|
||||
WHERE
|
||||
studiengang_kz=".$this->db_add_param($studiengang_kz)."
|
||||
AND dokument_kurzbz=".$this->db_add_param($dokument_kurzbz);
|
||||
@@ -468,6 +500,7 @@ class dokument extends basis_db
|
||||
$this->studiengang_kz = $row->studiengang_kz;
|
||||
$this->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
|
||||
$this->pflicht = $this->db_parse_bool($row->pflicht);
|
||||
$this->beschreibung_mehrsprachig = $sprache->parseSprachResult('beschreibung_mehrsprachig',$row);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -521,18 +554,35 @@ class dokument extends basis_db
|
||||
{
|
||||
if(!$this->existsDokumentStudiengang($this->dokument_kurzbz, $this->studiengang_kz))
|
||||
{
|
||||
$qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz, pflicht, onlinebewerbung)
|
||||
$qry='INSERT INTO public.tbl_dokumentstudiengang (dokument_kurzbz, studiengang_kz,';
|
||||
foreach($this->beschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" beschreibung_mehrsprachig[$idx],";
|
||||
}
|
||||
|
||||
$qry.=' pflicht, onlinebewerbung)
|
||||
VALUES ('.
|
||||
$this->db_add_param($this->dokument_kurzbz).','.
|
||||
$this->db_add_param($this->studiengang_kz,FHC_INTEGER).','.
|
||||
$this->db_add_param($this->pflicht,FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->studiengang_kz,FHC_INTEGER).',';
|
||||
|
||||
foreach($this->beschreibung_mehrsprachig as $key=>$value)
|
||||
$qry.=$this->db_add_param($value).',';
|
||||
|
||||
$qry.= $this->db_add_param($this->pflicht,FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->onlinebewerbung,FHC_BOOLEAN).')';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = 'UPDATE public.tbl_dokumentstudiengang SET
|
||||
onlinebewerbung='.$this->db_add_param($this->onlinebewerbung, FHC_BOOLEAN).',
|
||||
pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).'
|
||||
onlinebewerbung='.$this->db_add_param($this->onlinebewerbung, FHC_BOOLEAN).',';
|
||||
|
||||
foreach($this->beschreibung_mehrsprachig as $key=>$value)
|
||||
{
|
||||
$idx = sprache::$index_arr[$key];
|
||||
$qry.=" beschreibung_mehrsprachig[$idx]=".$this->db_add_param($value).",";
|
||||
}
|
||||
$qry.=' pflicht='.$this->db_add_param($this->pflicht, FHC_BOOLEAN).'
|
||||
WHERE
|
||||
dokument_kurzbz='.$this->db_add_param($this->dokument_kurzbz).'
|
||||
AND studiengang_kz='.$this->db_add_param($this->studiengang_kz);
|
||||
@@ -556,7 +606,11 @@ class dokument extends basis_db
|
||||
*/
|
||||
public function loadDokumenttyp($dokument_kurzbz)
|
||||
{
|
||||
$qry="SELECT * FROM public.tbl_dokument
|
||||
$sprache = new sprache();
|
||||
$bezeichnung_mehrsprachig = $sprache->getSprachQuery('bezeichnung_mehrsprachig');
|
||||
$dokumentbeschreibung_mehrsprachig = $sprache->getSprachQuery('dokumentbeschreibung_mehrsprachig');
|
||||
|
||||
$qry="SELECT *, ".$bezeichnung_mehrsprachig.",".$dokumentbeschreibung_mehrsprachig." FROM public.tbl_dokument
|
||||
WHERE dokument_kurzbz =".$this->db_add_param($dokument_kurzbz).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -565,6 +619,8 @@ class dokument extends basis_db
|
||||
{
|
||||
$this->dokument_kurzbz = $row->dokument_kurzbz;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
|
||||
$this->dokumentbeschreibung_mehrsprachig = $sprache->parseSprachResult('dokumentbeschreibung_mehrsprachig', $row);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -623,7 +679,7 @@ class dokument extends basis_db
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert die Beschreibungstexte des uebergebenen Dokuments und der uebergebenen Studiengaenge
|
||||
* @param array $studiengangs_kz Array mit den Studiengangskennzahlen
|
||||
@@ -634,16 +690,16 @@ class dokument extends basis_db
|
||||
$sprache = new sprache();
|
||||
$dokumentbeschreibung_mehrsprachig = $sprache->getSprachQuery('dokumentbeschreibung_mehrsprachig');
|
||||
$beschreibung_mehrsprachig = $sprache->getSprachQuery('beschreibung_mehrsprachig');
|
||||
|
||||
$qry = " SELECT DISTINCT dokument_kurzbz, studiengang_kz,
|
||||
$dokumentbeschreibung_mehrsprachig, $beschreibung_mehrsprachig
|
||||
FROM public.tbl_dokumentstudiengang
|
||||
JOIN public.tbl_dokument using (dokument_kurzbz)
|
||||
|
||||
$qry = " SELECT DISTINCT dokument_kurzbz, studiengang_kz,
|
||||
$dokumentbeschreibung_mehrsprachig, $beschreibung_mehrsprachig
|
||||
FROM public.tbl_dokumentstudiengang
|
||||
JOIN public.tbl_dokument using (dokument_kurzbz)
|
||||
WHERE dokument_kurzbz=".$this->db_add_param($dokument_kurzbz, FHC_STRING)."
|
||||
AND (dokumentbeschreibung_mehrsprachig IS NOT NULL OR beschreibung_mehrsprachig IS NOT NULL)
|
||||
AND studiengang_kz IN (".implode(",", $studiengangs_kz).")
|
||||
ORDER BY studiengang_kz";
|
||||
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
@@ -663,7 +719,7 @@ class dokument extends basis_db
|
||||
$this->errormsg="Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -700,7 +756,7 @@ class dokument extends basis_db
|
||||
$this->errormsg = 'Studiengang_kz ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
|
||||
@@ -1,393 +1,393 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/vorlage.class.php');
|
||||
require_once(dirname(__FILE__).'/addon.class.php');
|
||||
require_once(dirname(__FILE__).'/studiengang.class.php');
|
||||
|
||||
class dokument_export
|
||||
{
|
||||
private $content_xsl; // XSL Vorlage fuer content.xml
|
||||
private $styles_xsl; // XSL Vorlage fuer styles.xml
|
||||
private $xml_data; // XML Daten
|
||||
private $vorlage; // Vorlage Objekt
|
||||
private $vorlage_file; // Vorlage ODT/ODS in das hineingezippt wird
|
||||
private $outputformat; // Datentyp des Ausgabefiles
|
||||
private $filename; // Dateiname des Ausgabefiles
|
||||
private $temp_filename;
|
||||
private $temp_folder;
|
||||
private $images=array();
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
public function __construct($vorlage, $oe_kurzbz=0, $version=null)
|
||||
{
|
||||
//Vorlage aus der Datenbank holen
|
||||
$this->vorlage = new vorlage();
|
||||
if(!$this->vorlage->getAktuelleVorlage($oe_kurzbz, $vorlage, $version))
|
||||
die('Keine Dokumentenvorlage gefunden');
|
||||
|
||||
$this->content_xsl = new DOMDocument;
|
||||
if(!$this->content_xsl->loadXML($this->vorlage->text))
|
||||
die('unable to load xsl');
|
||||
|
||||
// Style Vorlage laden falls vorhanden
|
||||
if($this->vorlage->style!='')
|
||||
{
|
||||
$this->styles_xsl = new DOMDocument;
|
||||
if(!$this->styles_xsl->loadXML($vorlage->style))
|
||||
die('unable to load styles xsl');
|
||||
}
|
||||
|
||||
switch($this->vorlage->mimetype)
|
||||
{
|
||||
case 'application/vnd.oasis.opendocument.text':
|
||||
$this->outputformat = 'odt';
|
||||
$this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.odt';
|
||||
break;
|
||||
case 'application/vnd.oasis.opendocument.spreadsheet':
|
||||
$this->outputformat = 'ods';
|
||||
$this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.ods';
|
||||
break;
|
||||
default:
|
||||
$this->outputformat = 'pdf';
|
||||
$this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.odt';
|
||||
}
|
||||
|
||||
if($this->vorlage->bezeichnung!='')
|
||||
$this->filename = $this->vorlage->bezeichnung;
|
||||
else
|
||||
$this->filename = $this->vorlage->vorlage_kurzbz;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die XML Daten fuer die XSL Transformation anhand eines Arrays
|
||||
* @param $data Array mit Daten
|
||||
* @param $root Bezeichnung des Root Nodes
|
||||
* @return boolean true
|
||||
*/
|
||||
public function addDataArray($data, $root)
|
||||
{
|
||||
$this->xml_data = new DOMDocument;
|
||||
$this->xml_data->loadXML($this->ConvertArrayToXML($data,$root));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* XML Daten fuer die XSL Transformation
|
||||
* @param $xml
|
||||
* @return boolean true
|
||||
*/
|
||||
public function addDataXML($xml)
|
||||
{
|
||||
$this->xml_data = new DOMDocument;
|
||||
$this->xml_data->loadXML($xml);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* URL zu XML Datei die fuer XSLTransformation verwendet werden soll
|
||||
* @param $xml URL zu XML
|
||||
* @param $params GET Parameter die an XML URL uebergeben werden
|
||||
* @return boolean true
|
||||
*/
|
||||
public function addDataURL($xml, $params)
|
||||
{
|
||||
$xml_found = false;
|
||||
$addons = new addon();
|
||||
|
||||
foreach($addons->aktive_addons as $addon)
|
||||
{
|
||||
$xmlfile = DOC_ROOT.'addons/'.$addon.'/rdf/'.$xml;
|
||||
if(file_exists($xmlfile))
|
||||
{
|
||||
$xml_found = true;
|
||||
$xml_url = XML_ROOT.'../addons/'.$addon.'/rdf/'.$xml.'?'.$params;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$xml_found)
|
||||
$xml_url=XML_ROOT.$xml.'?'.$params;
|
||||
|
||||
|
||||
// Load the XML source
|
||||
$this->xml_data = new DOMDocument;
|
||||
|
||||
if(!$this->xml_data->load($xml_url))
|
||||
die('unable to load xml: '.$xml_url);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fuegt ein Bild zum Dokument hinzu
|
||||
* @param $path Pfad zum Bild im Filesystem
|
||||
* @param $name Name des Bildes das es im Dokument haben soll ohne Pfad (zB 1.png)
|
||||
* @param $contenttype Contenttype des Bilds (zB image/png)
|
||||
*/
|
||||
public function addImage($path, $name, $contenttype)
|
||||
{
|
||||
$this->images[]=array('path'=>$path,'name'=>$name,'contenttype'=>$contenttype);
|
||||
}
|
||||
|
||||
/**
|
||||
* Erstellt das ODT Dokument inklusive Bilder und konvertiert es ins gewuenschte Format
|
||||
* @param $outputformat ODT, PDF, DOC
|
||||
* @return true wenn ok
|
||||
*/
|
||||
public function create($outputformat=null)
|
||||
{
|
||||
if(!is_null($outputformat))
|
||||
$this->outputformat=$outputformat;
|
||||
|
||||
// content.xml erstellen
|
||||
$proc = new XSLTProcessor;
|
||||
$proc->importStyleSheet($this->content_xsl);
|
||||
|
||||
$contentbuffer = $proc->transformToXml($this->xml_data);
|
||||
|
||||
$this->temp_folder = '/tmp/fhcunoconv-'.uniqid();
|
||||
mkdir($this->temp_folder);
|
||||
chdir($this->temp_folder);
|
||||
file_put_contents('content.xml', $contentbuffer);
|
||||
|
||||
// styles.xml erstellen
|
||||
if(!is_null($this->styles_xsl))
|
||||
{
|
||||
$style_proc = new XSLTProcessor;
|
||||
$style_proc->importStyleSheet($this->styles_xsl);
|
||||
|
||||
$stylesbuffer = $style_proc->transformToXml($this->xml_data);
|
||||
|
||||
file_put_contents('styles.xml', $stylesbuffer);
|
||||
}
|
||||
|
||||
// Template holen
|
||||
$vorlage_found=false;
|
||||
$addons = new addon();
|
||||
|
||||
foreach($addons->aktive_addons as $addon)
|
||||
{
|
||||
$zipfile = DOC_ROOT.'addons/'.$addon.'/system/vorlage_zip/'.$this->vorlage_file;
|
||||
|
||||
if(file_exists($zipfile))
|
||||
{
|
||||
$vorlage_found=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$vorlage_found)
|
||||
$zipfile = DOC_ROOT.'system/vorlage_zip/'.$this->vorlage_file;
|
||||
|
||||
$tempname_zip = 'out.zip';
|
||||
if(!copy($zipfile, $tempname_zip))
|
||||
die('copy failed');
|
||||
|
||||
exec("zip $tempname_zip content.xml");
|
||||
if(!is_null($this->styles_xsl))
|
||||
exec("zip $tempname_zip styles.xml");
|
||||
|
||||
// bilder hinzufuegen
|
||||
if(count($this->images)>0)
|
||||
{
|
||||
// Unterordner fuer die Bilder erstellen
|
||||
mkdir('Pictures');
|
||||
|
||||
// Manifest Datei holen
|
||||
exec('unzip '.$tempname_zip.' META-INF/manifest.xml');
|
||||
|
||||
// Bild zur Manifest Datei hinzufuegen
|
||||
$manifest = file_get_contents('META-INF/manifest.xml');
|
||||
|
||||
$manifest_xml = new DOMDocument;
|
||||
if(!$manifest_xml->loadXML($manifest))
|
||||
die('Manifest File ungueltig');
|
||||
|
||||
//root-node holen
|
||||
$root = $manifest_xml->getElementsByTagName('manifest')->item(0);
|
||||
|
||||
foreach($this->images as $bild)
|
||||
{
|
||||
copy($bild['path'], 'Pictures/'.$bild['name']);
|
||||
|
||||
//Neues Element unterhalb des Root Nodes anlegen
|
||||
$node = $manifest_xml->createElement("manifest:file-entry");
|
||||
$node->setAttribute("manifest:full-path",'Pictures/'.$bild['name']);
|
||||
$node->setAttribute("manifest:media-type",$bild['contenttype']);
|
||||
$root->appendChild($node);
|
||||
}
|
||||
|
||||
$out = $manifest_xml->saveXML();
|
||||
|
||||
//geaenderte Manifest Datei speichern und wieder ins Zip packen
|
||||
file_put_contents('META-INF/manifest.xml', $out);
|
||||
exec('zip '.$tempname_zip.' META-INF/*');
|
||||
|
||||
// Bilder zum ZIP-File hinzufuegen
|
||||
exec("zip $tempname_zip Pictures/*");
|
||||
}
|
||||
|
||||
clearstatcache();
|
||||
|
||||
switch($this->outputformat)
|
||||
{
|
||||
case 'pdf':
|
||||
$this->temp_filename='out.pdf';
|
||||
exec("unoconv -e IsSkipEmptyPages=false --stdout -f pdf $tempname_zip > ".$this->temp_filename, $out, $ret);
|
||||
if($ret!=0)
|
||||
{
|
||||
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 'doc':
|
||||
$this->temp_filename='out.doc';
|
||||
exec("unoconv -e IsSkipEmptyPages=false --stdout -f doc $tempname_zip > ".$this->temp_filename, $out, $ret);
|
||||
if($ret!=0)
|
||||
{
|
||||
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 'odt':
|
||||
default:
|
||||
$this->temp_filename = $tempname_zip;
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Dokument mit den passenden Headern zum Download oder als ReturnValue
|
||||
* @param $download wenn true werden Header gesendet und das Dokument ausgeliefert
|
||||
* wenn false wird es als Returnwert zurueckgeliefert
|
||||
* @return boolean true oder Dokument
|
||||
*/
|
||||
public function output($download=true)
|
||||
{
|
||||
|
||||
$fsize = filesize($this->temp_filename);
|
||||
if(!$handle = fopen($this->temp_filename,'r'))
|
||||
die('load failed');
|
||||
|
||||
if($download)
|
||||
{
|
||||
switch($this->outputformat)
|
||||
{
|
||||
case 'pdf':
|
||||
header('Content-type: application/pdf');
|
||||
header('Content-Disposition: attachment; filename="'.$this->filename.'.pdf"');
|
||||
header('Content-Length: '.$fsize);
|
||||
break;
|
||||
|
||||
case 'doc':
|
||||
header('Content-type: application/vnd.ms-word');
|
||||
header('Content-Disposition: attachment; filename="'.$this->filename.'.doc"');
|
||||
header('Content-Length: '.$fsize);
|
||||
break;
|
||||
|
||||
case 'odt':
|
||||
header('Content-type: application/vnd.oasis.opendocument.text');
|
||||
header('Content-Disposition: attachment; filename="'.$this->filename.'.odt"');
|
||||
header('Content-Length: '.$fsize);
|
||||
break;
|
||||
}
|
||||
|
||||
while (!feof($handle))
|
||||
{
|
||||
echo fread($handle, 8192);
|
||||
}
|
||||
fclose($handle);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = fread($handle, filesize($file));
|
||||
fclose($handle);
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Temporaeren Dateien die angelegt wurden
|
||||
* @return boolean true
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
unlink('content.xml');
|
||||
if($this->styles_xsl!='')
|
||||
unlink('styles.xml');
|
||||
|
||||
unlink('out.zip');
|
||||
unlink($this->temp_filename);
|
||||
|
||||
if(count($this->images)>0)
|
||||
{
|
||||
unlink('META-INF/manifest.xml');
|
||||
|
||||
foreach($this->images as $bild)
|
||||
unlink('Pictures/'.$bild['name']);
|
||||
rmdir('Pictures');
|
||||
rmdir('META-INF');
|
||||
}
|
||||
|
||||
|
||||
rmdir($this->temp_folder);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Konvertiert das Array in ein XML
|
||||
* @param $data PHP Array mit den Daten
|
||||
* @param $rootElement Bezeichnung des XML Wurzelelements
|
||||
* @param $xml_data SimpleXMLElement fuer Rekursionsaufloesung
|
||||
* @return xml
|
||||
*/
|
||||
private function ConvertArrayToXML($data, $rootElement=null, $xml_data=null )
|
||||
{
|
||||
$_xml_data = $xml_data;
|
||||
if ($_xml_data === null)
|
||||
$_xml_data = new SimpleXMLElement($rootElement !== null ? '<'.$rootElement.' />' : '<root/>');
|
||||
|
||||
foreach( $data as $key => $value )
|
||||
{
|
||||
if( is_array($value) )
|
||||
{
|
||||
if( is_numeric($key) )
|
||||
{
|
||||
$key = 'item'.$key; //dealing with <0/>..<n/> issues
|
||||
$this->ConvertArrayToXML($value, null, $_xml_data);
|
||||
}
|
||||
else
|
||||
{
|
||||
$subnode = $_xml_data->addChild($key);
|
||||
$this->ConvertArrayToXML($value, null, $subnode);
|
||||
}
|
||||
}
|
||||
else
|
||||
$_xml_data->addChild("$key",htmlspecialchars("$value"));
|
||||
}
|
||||
return $_xml_data->asXML();
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/vorlage.class.php');
|
||||
require_once(dirname(__FILE__).'/addon.class.php');
|
||||
require_once(dirname(__FILE__).'/studiengang.class.php');
|
||||
|
||||
class dokument_export
|
||||
{
|
||||
private $content_xsl; // XSL Vorlage fuer content.xml
|
||||
private $styles_xsl; // XSL Vorlage fuer styles.xml
|
||||
private $xml_data; // XML Daten
|
||||
private $vorlage; // Vorlage Objekt
|
||||
private $vorlage_file; // Vorlage ODT/ODS in das hineingezippt wird
|
||||
private $outputformat; // Datentyp des Ausgabefiles
|
||||
private $filename; // Dateiname des Ausgabefiles
|
||||
private $temp_filename;
|
||||
private $temp_folder;
|
||||
private $images=array();
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
public function __construct($vorlage, $oe_kurzbz=0, $version=null)
|
||||
{
|
||||
//Vorlage aus der Datenbank holen
|
||||
$this->vorlage = new vorlage();
|
||||
if(!$this->vorlage->getAktuelleVorlage($oe_kurzbz, $vorlage, $version))
|
||||
die('Keine Dokumentenvorlage gefunden');
|
||||
|
||||
$this->content_xsl = new DOMDocument;
|
||||
if(!$this->content_xsl->loadXML($this->vorlage->text))
|
||||
die('unable to load xsl');
|
||||
|
||||
// Style Vorlage laden falls vorhanden
|
||||
if($this->vorlage->style!='')
|
||||
{
|
||||
$this->styles_xsl = new DOMDocument;
|
||||
if(!$this->styles_xsl->loadXML($this->vorlage->style))
|
||||
die('unable to load styles xsl');
|
||||
}
|
||||
|
||||
switch($this->vorlage->mimetype)
|
||||
{
|
||||
case 'application/vnd.oasis.opendocument.text':
|
||||
$this->outputformat = 'odt';
|
||||
$this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.odt';
|
||||
break;
|
||||
case 'application/vnd.oasis.opendocument.spreadsheet':
|
||||
$this->outputformat = 'ods';
|
||||
$this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.ods';
|
||||
break;
|
||||
default:
|
||||
$this->outputformat = 'pdf';
|
||||
$this->vorlage_file = $this->vorlage->vorlage_kurzbz.'.odt';
|
||||
}
|
||||
|
||||
if($this->vorlage->bezeichnung!='')
|
||||
$this->filename = $this->vorlage->bezeichnung;
|
||||
else
|
||||
$this->filename = $this->vorlage->vorlage_kurzbz;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die XML Daten fuer die XSL Transformation anhand eines Arrays
|
||||
* @param $data Array mit Daten
|
||||
* @param $root Bezeichnung des Root Nodes
|
||||
* @return boolean true
|
||||
*/
|
||||
public function addDataArray($data, $root)
|
||||
{
|
||||
$this->xml_data = new DOMDocument;
|
||||
$this->xml_data->loadXML($this->ConvertArrayToXML($data,$root));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* XML Daten fuer die XSL Transformation
|
||||
* @param $xml
|
||||
* @return boolean true
|
||||
*/
|
||||
public function addDataXML($xml)
|
||||
{
|
||||
$this->xml_data = new DOMDocument;
|
||||
$this->xml_data->loadXML($xml);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* URL zu XML Datei die fuer XSLTransformation verwendet werden soll
|
||||
* @param $xml URL zu XML
|
||||
* @param $params GET Parameter die an XML URL uebergeben werden
|
||||
* @return boolean true
|
||||
*/
|
||||
public function addDataURL($xml, $params)
|
||||
{
|
||||
$xml_found = false;
|
||||
$addons = new addon();
|
||||
|
||||
foreach($addons->aktive_addons as $addon)
|
||||
{
|
||||
$xmlfile = DOC_ROOT.'addons/'.$addon.'/rdf/'.$xml;
|
||||
if(file_exists($xmlfile))
|
||||
{
|
||||
$xml_found = true;
|
||||
$xml_url = XML_ROOT.'../addons/'.$addon.'/rdf/'.$xml.'?'.$params;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$xml_found)
|
||||
$xml_url=XML_ROOT.$xml.'?'.$params;
|
||||
|
||||
|
||||
// Load the XML source
|
||||
$this->xml_data = new DOMDocument;
|
||||
|
||||
if(!$this->xml_data->load($xml_url))
|
||||
die('unable to load xml: '.$xml_url);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fuegt ein Bild zum Dokument hinzu
|
||||
* @param $path Pfad zum Bild im Filesystem
|
||||
* @param $name Name des Bildes das es im Dokument haben soll ohne Pfad (zB 1.png)
|
||||
* @param $contenttype Contenttype des Bilds (zB image/png)
|
||||
*/
|
||||
public function addImage($path, $name, $contenttype)
|
||||
{
|
||||
$this->images[]=array('path'=>$path,'name'=>$name,'contenttype'=>$contenttype);
|
||||
}
|
||||
|
||||
/**
|
||||
* Erstellt das ODT Dokument inklusive Bilder und konvertiert es ins gewuenschte Format
|
||||
* @param $outputformat ODT, PDF, DOC
|
||||
* @return true wenn ok
|
||||
*/
|
||||
public function create($outputformat=null)
|
||||
{
|
||||
if(!is_null($outputformat))
|
||||
$this->outputformat=$outputformat;
|
||||
|
||||
// content.xml erstellen
|
||||
$proc = new XSLTProcessor;
|
||||
$proc->importStyleSheet($this->content_xsl);
|
||||
|
||||
$contentbuffer = $proc->transformToXml($this->xml_data);
|
||||
|
||||
$this->temp_folder = '/tmp/fhcunoconv-'.uniqid();
|
||||
mkdir($this->temp_folder);
|
||||
chdir($this->temp_folder);
|
||||
file_put_contents('content.xml', $contentbuffer);
|
||||
|
||||
// styles.xml erstellen
|
||||
if(!is_null($this->styles_xsl))
|
||||
{
|
||||
$style_proc = new XSLTProcessor;
|
||||
$style_proc->importStyleSheet($this->styles_xsl);
|
||||
|
||||
$stylesbuffer = $style_proc->transformToXml($this->xml_data);
|
||||
|
||||
file_put_contents('styles.xml', $stylesbuffer);
|
||||
}
|
||||
|
||||
// Template holen
|
||||
$vorlage_found=false;
|
||||
$addons = new addon();
|
||||
|
||||
foreach($addons->aktive_addons as $addon)
|
||||
{
|
||||
$zipfile = DOC_ROOT.'addons/'.$addon.'/system/vorlage_zip/'.$this->vorlage_file;
|
||||
|
||||
if(file_exists($zipfile))
|
||||
{
|
||||
$vorlage_found=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!$vorlage_found)
|
||||
$zipfile = DOC_ROOT.'system/vorlage_zip/'.$this->vorlage_file;
|
||||
|
||||
$tempname_zip = 'out.zip';
|
||||
if(!copy($zipfile, $tempname_zip))
|
||||
die('copy failed');
|
||||
|
||||
exec("zip $tempname_zip content.xml");
|
||||
if(!is_null($this->styles_xsl))
|
||||
exec("zip $tempname_zip styles.xml");
|
||||
|
||||
// bilder hinzufuegen
|
||||
if(count($this->images)>0)
|
||||
{
|
||||
// Unterordner fuer die Bilder erstellen
|
||||
mkdir('Pictures');
|
||||
|
||||
// Manifest Datei holen
|
||||
exec('unzip '.$tempname_zip.' META-INF/manifest.xml');
|
||||
|
||||
// Bild zur Manifest Datei hinzufuegen
|
||||
$manifest = file_get_contents('META-INF/manifest.xml');
|
||||
|
||||
$manifest_xml = new DOMDocument;
|
||||
if(!$manifest_xml->loadXML($manifest))
|
||||
die('Manifest File ungueltig');
|
||||
|
||||
//root-node holen
|
||||
$root = $manifest_xml->getElementsByTagName('manifest')->item(0);
|
||||
|
||||
foreach($this->images as $bild)
|
||||
{
|
||||
copy($bild['path'], 'Pictures/'.$bild['name']);
|
||||
|
||||
//Neues Element unterhalb des Root Nodes anlegen
|
||||
$node = $manifest_xml->createElement("manifest:file-entry");
|
||||
$node->setAttribute("manifest:full-path",'Pictures/'.$bild['name']);
|
||||
$node->setAttribute("manifest:media-type",$bild['contenttype']);
|
||||
$root->appendChild($node);
|
||||
}
|
||||
|
||||
$out = $manifest_xml->saveXML();
|
||||
|
||||
//geaenderte Manifest Datei speichern und wieder ins Zip packen
|
||||
file_put_contents('META-INF/manifest.xml', $out);
|
||||
exec('zip '.$tempname_zip.' META-INF/*');
|
||||
|
||||
// Bilder zum ZIP-File hinzufuegen
|
||||
exec("zip $tempname_zip Pictures/*");
|
||||
}
|
||||
|
||||
clearstatcache();
|
||||
|
||||
switch($this->outputformat)
|
||||
{
|
||||
case 'pdf':
|
||||
$this->temp_filename='out.pdf';
|
||||
exec("unoconv -e IsSkipEmptyPages=false --stdout -f pdf $tempname_zip > ".$this->temp_filename, $out, $ret);
|
||||
if($ret!=0)
|
||||
{
|
||||
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 'doc':
|
||||
$this->temp_filename='out.doc';
|
||||
exec("unoconv -e IsSkipEmptyPages=false --stdout -f doc $tempname_zip > ".$this->temp_filename, $out, $ret);
|
||||
if($ret!=0)
|
||||
{
|
||||
$this->errormsg = 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte informieren Sie den Administrator';
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case 'odt':
|
||||
default:
|
||||
$this->temp_filename = $tempname_zip;
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Dokument mit den passenden Headern zum Download oder als ReturnValue
|
||||
* @param $download wenn true werden Header gesendet und das Dokument ausgeliefert
|
||||
* wenn false wird es als Returnwert zurueckgeliefert
|
||||
* @return boolean true oder Dokument
|
||||
*/
|
||||
public function output($download=true)
|
||||
{
|
||||
|
||||
$fsize = filesize($this->temp_filename);
|
||||
if(!$handle = fopen($this->temp_filename,'r'))
|
||||
die('load failed');
|
||||
|
||||
if($download)
|
||||
{
|
||||
switch($this->outputformat)
|
||||
{
|
||||
case 'pdf':
|
||||
header('Content-type: application/pdf');
|
||||
header('Content-Disposition: attachment; filename="'.$this->filename.'.pdf"');
|
||||
header('Content-Length: '.$fsize);
|
||||
break;
|
||||
|
||||
case 'doc':
|
||||
header('Content-type: application/vnd.ms-word');
|
||||
header('Content-Disposition: attachment; filename="'.$this->filename.'.doc"');
|
||||
header('Content-Length: '.$fsize);
|
||||
break;
|
||||
|
||||
case 'odt':
|
||||
header('Content-type: application/vnd.oasis.opendocument.text');
|
||||
header('Content-Disposition: attachment; filename="'.$this->filename.'.odt"');
|
||||
header('Content-Length: '.$fsize);
|
||||
break;
|
||||
}
|
||||
|
||||
while (!feof($handle))
|
||||
{
|
||||
echo fread($handle, 8192);
|
||||
}
|
||||
fclose($handle);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = fread($handle, filesize($file));
|
||||
fclose($handle);
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Temporaeren Dateien die angelegt wurden
|
||||
* @return boolean true
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
unlink('content.xml');
|
||||
if($this->styles_xsl!='')
|
||||
unlink('styles.xml');
|
||||
|
||||
unlink('out.zip');
|
||||
unlink($this->temp_filename);
|
||||
|
||||
if(count($this->images)>0)
|
||||
{
|
||||
unlink('META-INF/manifest.xml');
|
||||
|
||||
foreach($this->images as $bild)
|
||||
unlink('Pictures/'.$bild['name']);
|
||||
rmdir('Pictures');
|
||||
rmdir('META-INF');
|
||||
}
|
||||
|
||||
|
||||
rmdir($this->temp_folder);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Konvertiert das Array in ein XML
|
||||
* @param $data PHP Array mit den Daten
|
||||
* @param $rootElement Bezeichnung des XML Wurzelelements
|
||||
* @param $xml_data SimpleXMLElement fuer Rekursionsaufloesung
|
||||
* @return xml
|
||||
*/
|
||||
private function ConvertArrayToXML($data, $rootElement=null, $xml_data=null )
|
||||
{
|
||||
$_xml_data = $xml_data;
|
||||
if ($_xml_data === null)
|
||||
$_xml_data = new SimpleXMLElement($rootElement !== null ? '<'.$rootElement.' />' : '<root/>');
|
||||
|
||||
foreach( $data as $key => $value )
|
||||
{
|
||||
if( is_array($value) )
|
||||
{
|
||||
if( is_numeric($key) )
|
||||
{
|
||||
$key = 'item'.$key; //dealing with <0/>..<n/> issues
|
||||
$this->ConvertArrayToXML($value, null, $_xml_data);
|
||||
}
|
||||
else
|
||||
{
|
||||
$subnode = $_xml_data->addChild($key);
|
||||
$this->ConvertArrayToXML($value, null, $subnode);
|
||||
}
|
||||
}
|
||||
else
|
||||
$_xml_data->addChild("$key",htmlspecialchars("$value"));
|
||||
}
|
||||
return $_xml_data->asXML();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -52,6 +52,7 @@ class lehreinheit extends basis_db
|
||||
public $updatevon; // varchar(16)
|
||||
public $sprache; // varchar(16)
|
||||
public $ext_id; // bigint
|
||||
public $gewicht=1; // smallint
|
||||
|
||||
public $anz=0; //Zahler fuer erweiterte Attribute
|
||||
public $mitarbeiter_uid=array();
|
||||
@@ -112,6 +113,7 @@ class lehreinheit extends basis_db
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->gewicht = $row->gewicht;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -242,6 +244,7 @@ class lehreinheit extends basis_db
|
||||
$le_obj->updateamum = $row->updateamum;
|
||||
$le_obj->updatevon = $row->updatevon;
|
||||
$le_obj->ext_id = $row->ext_id;
|
||||
$le_obj->gewicht = $row->gewicht;
|
||||
|
||||
$this->lehreinheiten[] = $le_obj;
|
||||
}
|
||||
@@ -354,6 +357,11 @@ class lehreinheit extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
if($this->gewicht!='' && !is_numeric($this->gewicht))
|
||||
{
|
||||
$this->errormsg = 'Gewicht muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -383,7 +391,7 @@ class lehreinheit extends basis_db
|
||||
//ToDo ID entfernen
|
||||
$qry = 'BEGIN; INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_id, studiensemester_kurzbz,
|
||||
lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus,
|
||||
start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, lvnr, insertamum, insertvon, updateamum, updatevon, sprache)
|
||||
start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, lvnr, insertamum, insertvon, updateamum, updatevon, sprache, gewicht)
|
||||
VALUES('.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->studiensemester_kurzbz).','.
|
||||
$this->db_add_param($this->lehrfach_id, FHC_INTEGER).','.
|
||||
@@ -401,7 +409,8 @@ class lehreinheit extends basis_db
|
||||
$this->db_add_param($this->insertvon).','.
|
||||
$this->db_add_param($this->updateamum).','.
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->sprache).');';
|
||||
$this->db_add_param($this->sprache).','.
|
||||
$this->db_add_param($this->gewicht, FHC_INTEGER).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -421,7 +430,8 @@ class lehreinheit extends basis_db
|
||||
' lvnr='.$this->db_add_param($this->lvnr, FHC_INTEGER).','.
|
||||
' updateamum='.$this->db_add_param($this->updateamum).','.
|
||||
' updatevon='.$this->db_add_param($this->updatevon).','.
|
||||
' sprache='.$this->db_add_param($this->sprache).' '.
|
||||
' sprache='.$this->db_add_param($this->sprache).', '.
|
||||
' gewicht='.$this->db_add_param($this->gewicht).' '.
|
||||
" WHERE lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
|
||||
@@ -489,4 +489,49 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Lektoren einer Lehrveranstlatung in einem Studiensemester
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @return array + true wenn ok / false im Fehlerfall
|
||||
*/
|
||||
public function getMitarbeiterLV($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
if(!is_numeric($lehrveranstaltung_id))
|
||||
{
|
||||
$this->errormsg = 'Lehreinheit_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT
|
||||
vw_mitarbeiter.uid, vorname, nachname, titelpre, titelpost
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN campus.vw_mitarbeiter ON(tbl_lehreinheitmitarbeiter.mitarbeiter_uid=vw_mitarbeiter.uid)
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
$qry .=" ORDER BY nachname, vorname;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->uid = $row->uid;
|
||||
$obj->titelpre = $row->titelpre;
|
||||
$obj->titelpost = $row->titelpost;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -73,15 +73,15 @@ class lehrstunde extends basis_db
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
$this->new=TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @brief Einen Datensatz aus optional angegebener Stundenplan-Tabelle laden
|
||||
* \param stundenplan_id ID in der Datenbank
|
||||
* \param stpl_table Name der Tabelle in der DB
|
||||
* \return Boolean, Fehlermeldung kommt in das Attribut errormsg
|
||||
* @param stundenplan_id ID in der Datenbank
|
||||
* @param stpl_table Name der Tabelle in der DB
|
||||
* @return Boolean, Fehlermeldung kommt in das Attribut errormsg
|
||||
*/
|
||||
public function load($stundenplan_id,$stpl_table='stundenplandev')
|
||||
{
|
||||
@@ -91,16 +91,16 @@ class lehrstunde extends basis_db
|
||||
$stpl_table='lehre.'.TABLE_BEGIN.$stpl_table;
|
||||
|
||||
$sql_query="SELECT * FROM $stpl_view WHERE $stpl_id=$stundenplan_id;";
|
||||
|
||||
|
||||
//Datenbankabfrage
|
||||
if (!$this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$this->anzahl = $this->db_num_rows();
|
||||
|
||||
|
||||
//Daten uebernehmen
|
||||
if ($this->anzahl!=1)
|
||||
{
|
||||
@@ -183,16 +183,16 @@ class lehrstunde extends basis_db
|
||||
{
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table='lehre.'.TABLE_BEGIN.$stpl_table;
|
||||
|
||||
|
||||
$sql_query='UPDATE '.$stpl_table;
|
||||
$sql_query.=" SET datum=".$this->db_add_param($this->datum).", stunde=".$this->db_add_param($this->stunde);
|
||||
$sql_query.=", ort_kurzbz=".$this->db_add_param($this->ort_kurzbz).", mitarbeiter_uid=".$this->db_add_param($this->lektor_uid);
|
||||
$sql_query.=", updateamum=".$this->db_add_param($this->updateamum).", updatevon=".$this->db_add_param($this->updatevon);
|
||||
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($this->stundenplan_id).";";
|
||||
|
||||
|
||||
return $sql_query;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Datensatz aus DB entfernen
|
||||
* @param id ID des Datensatzes in der Tabelle
|
||||
@@ -208,7 +208,7 @@ class lehrstunde extends basis_db
|
||||
// Delete SQL vorbereiten
|
||||
$sql_query='DELETE FROM '.$stpl_table;
|
||||
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($id);
|
||||
|
||||
|
||||
//Datenbankrequest
|
||||
if (!$this->db_query($sql_query))
|
||||
{
|
||||
@@ -221,7 +221,7 @@ class lehrstunde extends basis_db
|
||||
|
||||
/**
|
||||
* Laedt Lehrstunden
|
||||
*
|
||||
*
|
||||
* @param type (student, lektor, lehrverband, gruppe, ort, ....)
|
||||
* @param datum_von (inklusive) Startdatum der Abfrage
|
||||
* @param datum_bis (exklusive) Enddatum der Abfrage
|
||||
@@ -302,47 +302,68 @@ class lehrstunde extends basis_db
|
||||
// Personendaten
|
||||
if ($type=='student')
|
||||
{
|
||||
// Lehrverband ermitteln
|
||||
$sql_query="SELECT studiengang_kz, semester, verband, gruppe FROM public.tbl_student WHERE student_uid=".$this->db_add_param($uid);
|
||||
|
||||
if (!$this->db_query($sql_query) )
|
||||
// Bei Studierenden wird das passende Studiensemester ermittelt und das dazupassende
|
||||
// naechstliegende Dadurch wird sichergestellt, dass Einheiten aus den Vorsemestern
|
||||
// zB fuer Nachpruefungen oder Einheiten aus den Folgesemestern die vorgezogen werden
|
||||
// auch im Plan sichtbar sind.
|
||||
if (is_null($this->ss))
|
||||
{
|
||||
$studiensemester_obj = new studiensemester();
|
||||
$this->ss = $studiensemester_obj->getSemesterFromDatum($datum_von,true);
|
||||
$this->ssnext = $studiensemester_obj->getNearestTo($this->ss,$datum_von);
|
||||
}
|
||||
if(!isset($this->ssnext))
|
||||
$this->ssnext = $this->ss;
|
||||
|
||||
// Lehrverbandszuordnungen der betreffenden Studiensemester laden
|
||||
$sql_query="SELECT studiengang_kz, semester, verband, gruppe
|
||||
FROM public.tbl_studentlehrverband
|
||||
WHERE student_uid=".$this->db_add_param($uid)."
|
||||
AND studiensemester_kurzbz in(".$this->db_add_param($this->ss).",".$this->db_add_param($this->ssnext).")";
|
||||
|
||||
$verbaende=array();
|
||||
if($this->db_query($sql_query))
|
||||
{
|
||||
$num_rows=$this->db_num_rows();
|
||||
if ($num_rows>0)
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$verbaende[] = array('studiengang_kz'=>$row->studiengang_kz,
|
||||
'sem'=>$row->semester,
|
||||
'ver'=>$row->verband,
|
||||
'grp'=>$row->gruppe);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg=$this->db_last_error();
|
||||
return -2;
|
||||
}
|
||||
$num_rows=$this->db_num_rows();
|
||||
if ($num_rows>0)
|
||||
$row=$this->db_fetch_object();
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler: Student ('.$uid.') wurde nicht gefunden!';
|
||||
return -2;
|
||||
}
|
||||
$studiengang_kz=$row->studiengang_kz;
|
||||
$sem=$row->semester;
|
||||
$ver=$row->verband;
|
||||
$grp=$row->gruppe;
|
||||
|
||||
// Gruppen ermitteln
|
||||
if (is_null($this->ss))
|
||||
{
|
||||
$studiensemester_obj = new studiensemester();
|
||||
$this->ss=$studiensemester_obj->getNearest();
|
||||
}
|
||||
$sql_query="SELECT gruppe_kurzbz FROM public.tbl_benutzergruppe WHERE uid=".$this->db_add_param($uid)." AND (studiensemester_kurzbz=".$this->db_add_param($this->ss)." OR studiensemester_kurzbz IS NULL)";
|
||||
// Spezialgruppen ermitteln zu denen die Person zugeteilt ist
|
||||
$sql_query="SELECT
|
||||
gruppe_kurzbz
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
uid=".$this->db_add_param($uid)."
|
||||
AND (studiensemester_kurzbz=".$this->db_add_param($this->ss)."
|
||||
OR studiensemester_kurzbz=".$this->db_add_param($this->ssnext)."
|
||||
OR studiensemester_kurzbz IS NULL)";
|
||||
|
||||
if (!$result_einheit=$this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$this->db_last_error($this->conn);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
else
|
||||
$num_rows_einheit=$this->db_num_rows($result_einheit);
|
||||
}
|
||||
|
||||
// Stundenplandaten ermitteln
|
||||
// Abfrage generieren
|
||||
|
||||
|
||||
if ($type!='idList')
|
||||
{
|
||||
if($alle_unr_mitladen)
|
||||
@@ -363,24 +384,50 @@ class lehrstunde extends basis_db
|
||||
$sql_query.=" AND gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
|
||||
elseif($type=='fachbereich')
|
||||
$sql_query.=" AND fachbereich_kurzbz=".$this->db_add_param($fachbereich_kurzbz);
|
||||
elseif($type=='student')
|
||||
{
|
||||
$sql_query.=" AND (";
|
||||
if(is_array($verbaende) && count($verbaende)>0)
|
||||
{
|
||||
foreach($verbaende as $row_verbaende)
|
||||
{
|
||||
$studiengang_kz = $row_verbaende['studiengang_kz'];
|
||||
$ver = $row_verbaende['ver'];
|
||||
$sem = $row_verbaende['sem'];
|
||||
$grp = $row_verbaende['grp'];
|
||||
|
||||
$sql_query.=" (studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
if ($sem!=null && $sem>=0 && $sem!='')
|
||||
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL)";
|
||||
if ($ver!='0' && $ver!=null && $ver!='')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($ver)." OR verband IS NULL OR verband='0' OR verband='')";
|
||||
if ($grp!='0' && $grp!=null && $grp!='')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($grp)." OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
|
||||
$sql_query.=" AND gruppe_kurzbz is null";
|
||||
$sql_query.=") OR ";
|
||||
}
|
||||
}
|
||||
|
||||
$sql_query.=" 1!=1";
|
||||
for ($i=0;$i<$num_rows_einheit;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object($result_einheit,$i);
|
||||
$sql_query.=" OR gruppe_kurzbz=".$this->db_add_param($row->gruppe_kurzbz);
|
||||
}
|
||||
$sql_query.=')';
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql_query.=" AND ( (studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
if ($sem!=null && $sem>=0 && $sem!='')
|
||||
{
|
||||
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL";
|
||||
if ($type=='student' && $sem>0)
|
||||
$sql_query.=" OR semester=".$this->db_add_param(($sem+1));
|
||||
$sql_query.=')';
|
||||
}
|
||||
$sql_query.=" AND (semester=".$this->db_add_param($sem)." OR semester IS NULL)";
|
||||
if ($ver!='0' && $ver!=null && $ver!='')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($ver)." OR verband IS NULL OR verband='0' OR verband='')";
|
||||
if ($grp!='0' && $grp!=null && $grp!='')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($grp)." OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
|
||||
if ($type=='student')
|
||||
$sql_query.=' AND gruppe_kurzbz IS NULL';
|
||||
|
||||
$sql_query.=' )';
|
||||
|
||||
|
||||
for ($i=0;$i<$num_rows_einheit;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object($result_einheit,$i);
|
||||
@@ -390,7 +437,7 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
$sql_query_orderby=' ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid';
|
||||
$sql_query_stdplan.=$sql_query . $sql_query_lva . $sql_query_orderby;
|
||||
|
||||
|
||||
// Wenn aktiviert, werden alle Stunden mit der gleichen UNR geladen die zur selben Zeit stattfinden
|
||||
if($alle_unr_mitladen)
|
||||
{
|
||||
@@ -400,12 +447,12 @@ class lehrstunde extends basis_db
|
||||
$sql_query_stdplan
|
||||
)
|
||||
SELECT
|
||||
distinct $stpl_view_ohneschema.*
|
||||
FROM
|
||||
distinct $stpl_view_ohneschema.*
|
||||
FROM
|
||||
".$stpl_view.", lvplan
|
||||
WHERE
|
||||
$stpl_view_ohneschema.datum=lvplan.datum
|
||||
AND $stpl_view_ohneschema.stunde=lvplan.stunde
|
||||
$stpl_view_ohneschema.datum=lvplan.datum
|
||||
AND $stpl_view_ohneschema.stunde=lvplan.stunde
|
||||
AND $stpl_view_ohneschema.unr=lvplan.unr
|
||||
ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid
|
||||
";
|
||||
@@ -420,7 +467,7 @@ class lehrstunde extends basis_db
|
||||
$sql_query=mb_substr($sql_query,3);
|
||||
$sql_query_stdplan.=' WHERE'.$sql_query;
|
||||
}
|
||||
//die($sql_query_stdplan);
|
||||
//echo $sql_query_stdplan;
|
||||
//Datenbankabfrage
|
||||
if (!$this->db_query($sql_query_stdplan))
|
||||
{
|
||||
@@ -434,7 +481,7 @@ class lehrstunde extends basis_db
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object($stpl_tbl, $i);
|
||||
|
||||
|
||||
$stunde=new lehrstunde();
|
||||
$stunde->stundenplan_id=$row->{$stpl_id};
|
||||
$stunde->lehreinheit_id=$row->lehreinheit_id;
|
||||
@@ -489,7 +536,7 @@ class lehrstunde extends basis_db
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row = $this->db_fetch_object($stpl_tbl, $i);
|
||||
|
||||
|
||||
$stunde=new lehrstunde();
|
||||
$stunde->reservierung=true;
|
||||
$stunde->stundenplan_id=$row->reservierung_id;
|
||||
@@ -534,7 +581,7 @@ class lehrstunde extends basis_db
|
||||
$sql="SELECT * FROM ".$stpl_table." WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
if ($uid!=null && !is_null($uid))
|
||||
$sql.=" AND mitarbeiter_uid=".$this->db_add_param($uid);
|
||||
|
||||
|
||||
//Datenbankabfrage
|
||||
if (!$this->db_query($sql))
|
||||
{
|
||||
@@ -547,7 +594,7 @@ class lehrstunde extends basis_db
|
||||
for ($i=0;$i<$num_rows;$i++)
|
||||
{
|
||||
$row=$this->db_fetch_object(null, $i);
|
||||
|
||||
|
||||
$stunde=new lehrstunde();
|
||||
$stunde->stundenplan_id=$row->{$stpl_id};
|
||||
$stunde->lehreinheit_id=$row->lehreinheit_id;
|
||||
@@ -585,27 +632,27 @@ class lehrstunde extends basis_db
|
||||
{
|
||||
$variablen_obj = new variable();
|
||||
$variablen_obj->loadVariables(get_uid());
|
||||
|
||||
|
||||
$kollision_student = $variablen_obj->variable->kollision_student;
|
||||
$ignore_reservierung = $variablen_obj->variable->ignore_reservierung;
|
||||
$ignore_zeitsperre = $variablen_obj->variable->ignore_zeitsperre;
|
||||
|
||||
|
||||
//Kollisionspruefung auf Studentenebene
|
||||
if($kollision_student=='true' && $this->kollision_student($stpl_table))
|
||||
return true;
|
||||
|
||||
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle und des Keys
|
||||
$stpl_id=$stpl_table.TABLE_ID;
|
||||
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
|
||||
|
||||
|
||||
// Datenbank abfragen
|
||||
$sql_query="SELECT $stpl_id AS id, lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, gruppe_kurzbz, datum, stunde FROM $stpl_table
|
||||
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde)." AND (ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." ";
|
||||
if (!in_array($this->lektor_uid,unserialize(KOLLISIONSFREIE_USER)))
|
||||
$sql_query.=" OR (uid=".$this->db_add_param($this->lektor_uid)." AND uid not in (".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER))."))";
|
||||
|
||||
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
|
||||
|
||||
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
|
||||
if($kollision_student=='false')
|
||||
{
|
||||
$sql_query.=" OR (studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
|
||||
@@ -620,7 +667,7 @@ class lehrstunde extends basis_db
|
||||
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp)." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
|
||||
}
|
||||
|
||||
|
||||
$sql_query.=")";
|
||||
}
|
||||
$sql_query.=") AND unr!=".$this->db_add_param($this->unr);
|
||||
@@ -630,18 +677,18 @@ class lehrstunde extends basis_db
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$anz=$this->db_num_rows($erg_stpl);
|
||||
if ($anz==0)
|
||||
{
|
||||
// Zeitsperren pruefen
|
||||
if($ignore_zeitsperre=='false' && !in_array($this->lektor_uid,unserialize(KOLLISIONSFREIE_USER)) && $this->kollision_zeitsperre())
|
||||
return true;
|
||||
|
||||
|
||||
// Reservierungen pruefen
|
||||
if ($ignore_reservierung=='false' && $this->kollision_reservierung())
|
||||
return true;
|
||||
|
||||
|
||||
if($this->kollision_ressource())
|
||||
return true;
|
||||
return false;
|
||||
@@ -661,9 +708,9 @@ class lehrstunde extends basis_db
|
||||
*/
|
||||
public function kollision_ressource()
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
tbl_betriebsmittel.beschreibung, tbl_stundenplandev.ort_kurzbz
|
||||
FROM
|
||||
FROM
|
||||
lehre.tbl_stundenplan_betriebsmittel
|
||||
JOIN lehre.tbl_stundenplandev USING(stundenplandev_id)
|
||||
JOIN wawi.tbl_betriebsmittel USING(betriebsmittel_id)
|
||||
@@ -692,7 +739,7 @@ class lehrstunde extends basis_db
|
||||
*/
|
||||
public function kollision_zeitsperre()
|
||||
{
|
||||
$sql_query="SELECT
|
||||
$sql_query="SELECT
|
||||
zeitsperre_id,zeitsperretyp_kurzbz,mitarbeiter_uid AS lektor,vondatum,vonstunde,bisdatum,bisstunde
|
||||
FROM campus.tbl_zeitsperre
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($this->lektor_uid)."
|
||||
@@ -704,7 +751,7 @@ class lehrstunde extends basis_db
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$anz_zs=$this->db_num_rows($erg_zs);
|
||||
if ($anz_zs!=0)
|
||||
{
|
||||
@@ -714,7 +761,7 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft ob eine LV-Plan Kollision mit den Reservierungen besteht
|
||||
*
|
||||
@@ -722,18 +769,18 @@ class lehrstunde extends basis_db
|
||||
*/
|
||||
public function kollision_reservierung()
|
||||
{
|
||||
$sql_query="SELECT
|
||||
reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz,
|
||||
$sql_query="SELECT
|
||||
reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz,
|
||||
semester, verband, gruppe, gruppe_kurzbz, datum, stunde
|
||||
FROM lehre.vw_reservierung
|
||||
WHERE
|
||||
datum=".$this->db_add_param($this->datum)." AND
|
||||
stunde=".$this->db_add_param($this->stunde)." AND
|
||||
WHERE
|
||||
datum=".$this->db_add_param($this->datum)." AND
|
||||
stunde=".$this->db_add_param($this->stunde)." AND
|
||||
(ort_kurzbz=".$this->db_add_param($this->ort_kurzbz)." OR ";
|
||||
|
||||
|
||||
if (!in_array($this->lektor_uid, unserialize(KOLLISIONSFREIE_USER)))
|
||||
$sql_query.="(uid=".$this->db_add_param($this->lektor_uid)." AND uid not in(".$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER)).")) OR ";
|
||||
|
||||
|
||||
$sql_query.="(studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem);
|
||||
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($this->ver)." OR verband IS NULL OR verband='' OR verband=' ')";
|
||||
@@ -742,7 +789,7 @@ class lehrstunde extends basis_db
|
||||
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
|
||||
$sql_query.=" AND (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
|
||||
$sql_query.="))";
|
||||
|
||||
|
||||
if (!$erg_res = $this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
@@ -758,12 +805,12 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft eine Kollision auf Studentenebene
|
||||
* Es werden nur die Kollisionen der Studenten abgefragt
|
||||
* Raum, Lektor, Reservierung, Zeitsperren, etc werden hier nicht geprueft
|
||||
*
|
||||
*
|
||||
* @param $stpl_table
|
||||
* @return boolean true=kollision, false=keine kollision
|
||||
*/
|
||||
@@ -772,53 +819,53 @@ class lehrstunde extends basis_db
|
||||
// Parameter Checken
|
||||
// Bezeichnung der Stundenplan-Tabelle
|
||||
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
|
||||
|
||||
|
||||
$sql_query = "SELECT *
|
||||
FROM ".$stpl_table."_student_unr
|
||||
WHERE datum=".$this->db_add_param($this->datum)." AND stunde=".$this->db_add_param($this->stunde)." AND student_uid IN(
|
||||
SELECT uid FROM public.vw_gruppen WHERE
|
||||
|
||||
SELECT uid FROM public.vw_gruppen WHERE
|
||||
|
||||
";
|
||||
$sql_query.="(studiengang_kz=".$this->db_add_param($this->studiengang_kz)." AND semester=".$this->db_add_param($this->sem)."
|
||||
AND studiensemester_kurzbz=(
|
||||
SELECT tbl_studiensemester.studiensemester_kurzbz
|
||||
FROM
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
WHERE
|
||||
tbl_studiensemester.ende >= ".$this->db_add_param($this->datum)."
|
||||
AND tbl_studiensemester.start <=".$this->db_add_param($this->datum)." LIMIT 1)";
|
||||
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
|
||||
$sql_query.=" AND (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).")";
|
||||
else
|
||||
else
|
||||
{
|
||||
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
|
||||
$sql_query.=" AND (verband=".$this->db_add_param($this->ver).")";
|
||||
else
|
||||
else
|
||||
$sql_query.=" AND (verband IS NULL OR verband='' OR verband=' ')";
|
||||
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
|
||||
$sql_query.=" AND (gruppe=".$this->db_add_param($this->grp).")";
|
||||
else
|
||||
else
|
||||
$sql_query.=" AND (gruppe IS NULL OR gruppe='' OR gruppe=' ')";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$sql_query.=")) AND unr!=".$this->db_add_param($this->unr);
|
||||
|
||||
|
||||
if (!$erg_stpl=$this->db_query($sql_query))
|
||||
{
|
||||
$this->errormsg=$sql_query.$this->db_last_error();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
$anz=$this->db_num_rows($erg_stpl);
|
||||
|
||||
|
||||
if ($anz>0)
|
||||
{
|
||||
$row = $this->db_fetch_object($erg_stpl);
|
||||
$this->errormsg="Kollision Student ($stpl_table): $row->student_uid $row->datum/$row->stunde ";
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -842,10 +889,10 @@ class lehrstunde extends basis_db
|
||||
- gleiches Datum
|
||||
- gleiche Stunde
|
||||
- gleiche UNR
|
||||
*/
|
||||
*/
|
||||
foreach($result as $key=>$row_result)
|
||||
{
|
||||
if($row_result->unr==$row_lehrstunde->unr
|
||||
if($row_result->unr==$row_lehrstunde->unr
|
||||
&& $row_result->datum==$row_lehrstunde->datum
|
||||
&& $row_result->stunde==$row_lehrstunde->stunde)
|
||||
{
|
||||
@@ -896,15 +943,15 @@ class lehrstunde extends basis_db
|
||||
public function getStundenplanData($db_stpl_table, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null, $lehreinheit_id=null, $mitarbeiter_uid=null, $student_uid=null)
|
||||
{
|
||||
|
||||
$qry = "SELECT
|
||||
stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
|
||||
$qry = "SELECT
|
||||
stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
|
||||
stpl.lehreinheit_id, lehrfach.bezeichnung as lehrfach_bezeichnung,
|
||||
array_agg(
|
||||
CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
|
||||
CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
|
||||
ELSE (SELECT UPPER(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=stpl.studiengang_kz) || COALESCE(stpl.semester,'0') || COALESCE(stpl.verband,'') || COALESCE(stpl.gruppe,'')
|
||||
END) as gruppen, array_agg(mitarbeiter_uid) as lektoren,
|
||||
array_agg(ort_kurzbz) as orte
|
||||
FROM
|
||||
FROM
|
||||
lehre.tbl_".$db_stpl_table." as stpl
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||||
@@ -912,10 +959,10 @@ class lehrstunde extends basis_db
|
||||
|
||||
if($lehrveranstaltung_id!='')
|
||||
{
|
||||
$qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
|
||||
$qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
|
||||
|
||||
|
||||
}
|
||||
elseif($lehreinheit_id!='')
|
||||
{
|
||||
@@ -924,10 +971,10 @@ class lehrstunde extends basis_db
|
||||
elseif($mitarbeiter_uid!='')
|
||||
{
|
||||
$qry.=" mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND lehreinheit_id IN(
|
||||
SELECT
|
||||
lehreinheit_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
SELECT
|
||||
lehreinheit_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ class lehrveranstaltung extends basis_db
|
||||
|
||||
if(!is_null($lehrtyp))
|
||||
$qry .= " AND lehrtyp_kurzbz=".$this->db_add_param($lehrtyp);
|
||||
|
||||
|
||||
if(!is_null($orgform) && $orgform!='')
|
||||
$qry .= " AND orgform_kurzbz=".$this->db_add_param($orgform);
|
||||
|
||||
@@ -899,7 +899,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->incoming = $row->incoming;
|
||||
$lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis);
|
||||
$lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit);
|
||||
$lv_obj->zeugnis = $row->koordinator;
|
||||
$lv_obj->koordinator = $row->koordinator;
|
||||
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
|
||||
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz;
|
||||
@@ -1331,6 +1331,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->lehrveranstaltung_id = $lv->lehrveranstaltung_id;
|
||||
$obj->studiengang_kz = $lv->studiengang_kz;
|
||||
$obj->bezeichnung = $lv->bezeichnung;
|
||||
$obj->bezeichnung_english = $lv->bezeichnung_english;
|
||||
$obj->kurzbz = $lv->kurzbz;
|
||||
$obj->lehrform_kurzbz = $lv->lehrform_kurzbz;
|
||||
$obj->semester = $lv->semester;
|
||||
@@ -1343,6 +1344,16 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->stpllv_koordinator = $lv->stpllv_koordinator;
|
||||
$obj->lvnr = $lv->lvnr;
|
||||
$obj->stpllv_sort = $lv->stpllv_sort;
|
||||
$obj->oe_kurzbz = $lv->oe_kurzbz;
|
||||
$obj->sws = $lv->sws;
|
||||
$obj->alvs = $lv->alvs;
|
||||
$obj->lvs = $lv->lvs;
|
||||
$obj->lvps = $lv->lvps;
|
||||
$obj->las = $lv->las;
|
||||
$obj->semesterwochen = $lv->semesterwochen;
|
||||
$obj->orgform_kurzbz = $lv->orgform_kurzbz;
|
||||
$obj->incoming = $lv->incoming;
|
||||
$obj->sprache = $lv->sprache;
|
||||
|
||||
$obj->children = array();
|
||||
if(count($lv->childs) > 0)
|
||||
@@ -1629,6 +1640,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->lvnr = $row->lvnr;
|
||||
$lv_obj->semester_alternativ = $row->semester_alternativ;
|
||||
$lv_obj->farbe = $row->farbe;
|
||||
$lv_obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -2195,7 +2207,7 @@ class lehrveranstaltung extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist,
|
||||
* Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist,
|
||||
* wird der erstbeste Lektor geliefert
|
||||
* @param $lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param $studiensemester_kurzbz Studiensemester
|
||||
@@ -2203,10 +2215,10 @@ class lehrveranstaltung extends basis_db
|
||||
*/
|
||||
public function getLVLeitung($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid,
|
||||
CASE WHEN lehrfunktion_kurzbz='LV-Leitung' THEN 1 ELSE 2 END as sort
|
||||
FROM
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
WHERE
|
||||
@@ -2232,5 +2244,83 @@ class lehrveranstaltung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert den Koordinator einer Lehrveranstaltung
|
||||
* @param $lehrveranstaltung_id
|
||||
* @param $studiensemester_kurzbz
|
||||
*/
|
||||
public function getKoordinator($lehrveranstaltung_id, $studiensemester_kurzbz=null)
|
||||
{
|
||||
$qry = "
|
||||
SELECT a.uid, vorname, nachname, titelpre, titelpost
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
koordinator as uid
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
UNION
|
||||
SELECT
|
||||
uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach on(tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id)
|
||||
JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz)
|
||||
JOIN public.tbl_benutzerfunktion ON(tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz)
|
||||
WHERE
|
||||
tbl_benutzerfunktion.funktion_kurzbz='fbk'
|
||||
AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())
|
||||
AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
|
||||
AND tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_benutzerfunktion.oe_kurzbz=(
|
||||
SELECT
|
||||
tbl_studiengang.oe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
)
|
||||
AND EXISTS(
|
||||
SELECT
|
||||
lehrveranstaltung_id
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND koordinator is null
|
||||
)
|
||||
";
|
||||
if(!is_null($studiensemester_kurzbz))
|
||||
$qry.=" AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
$qry.="
|
||||
) as a
|
||||
JOIN campus.vw_mitarbeiter ON(a.uid=vw_mitarbeiter.uid)
|
||||
WHERE vw_mitarbeiter.aktiv";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->uid = $row->uid;
|
||||
$obj->vorname = $row->vorname;
|
||||
$obj->nachname = $row->nachname;
|
||||
$obj->titelpost = $row->titelpost;
|
||||
$obj->titelpre = $row->titelpre;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -17,19 +17,22 @@
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
//require_once('/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
|
||||
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
|
||||
|
||||
$dr = DOC_ROOT;
|
||||
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
|
||||
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/easyui/themes/icon.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/easyui/themes/gray/easyui.css">';
|
||||
|
||||
//Originaldateien des herstellers
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.APP_ROOT.'vendor/easyui/themes/icon.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.APP_ROOT.'vendor/easyui/themes/gray/easyui.css">';
|
||||
|
||||
echo '<script src="'.APP_ROOT.'vendor/easyui/jquery.min.js"></script>';
|
||||
echo '<script src="'.APP_ROOT.'vendor/easyui/jquery.easyui.min.js"></script>';
|
||||
echo '<script src="'.$dr.'vendor/FHC-vendor/easyui/jquery.min.js"></script>';
|
||||
echo '<script src="'.$dr.'vendor/FHC-vendor/easyui/jquery.easyui.min.js"></script>';
|
||||
|
||||
|
||||
//Anpassungen
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.APP_ROOT.'include/vendor_custom/easyui/easyui.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.APP_ROOT.'include/vendor_custom/easyui/icon.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/easyui/easyui.css">';
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/easyui/icon.css">';
|
||||
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
|
||||
|
||||
$dr = DOC_ROOT;
|
||||
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
|
||||
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'vendor/FHC-vendor/jquery-tablesorter/css/theme.default.css">';
|
||||
|
||||
echo '<script src="'.$dr.'vendor/FHC-vendor/jquery-tablesorter/js/jquery.tablesorter.js"></script>';
|
||||
|
||||
|
||||
//Anpassungen
|
||||
echo '<link rel="stylesheet" type="text/css" href="'.$dr.'include/vendor_custom/jquery-tablesorter/tablesort.css">';
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Moik <moik@technikum-wien.at>
|
||||
*/
|
||||
//require_once(dirname(__FILE__).'/config/vilesci.config.inc.php'); Muss vor dieser Datei eingebunden werden!
|
||||
|
||||
$dr = DOC_ROOT;
|
||||
$dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr);
|
||||
|
||||
//Originaldateien des Herstellers
|
||||
echo '<script src="'.$dr.'vendor/components/jquery/jquery.min.js"></script>';
|
||||
|
||||
|
||||
?>
|
||||
@@ -743,4 +743,22 @@ class moodle24_course extends basis_db
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt alle LE Ids der Übergebenen Moodle_Course_ID zurück
|
||||
*/
|
||||
public function getLeFromCourse($moodle_course_id)
|
||||
{
|
||||
$qry = "SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE moodle_version='2.4' AND mdl_course_id =".$this->db_add_param($moodle_course_id, FHC_INTEGER).';';
|
||||
$le = array();
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$le[] = $row->lehreinheit_id;
|
||||
}
|
||||
}
|
||||
return $le;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -447,5 +447,57 @@ class ort extends basis_db
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle verfuegbaren Orte
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getActive($aktiv=true, $lehre=true, $raumtyp_kurzbz=null)
|
||||
{
|
||||
$qry = 'SELECT * FROM public.tbl_ort WHERE aktiv='.$this->db_add_param($aktiv, FHC_BOOLEAN);
|
||||
|
||||
if(!is_null($raumtyp_kurzbz) && $raumtyp_kurzbz!='')
|
||||
{
|
||||
$qry .= ' AND raumtyp_kurzbz='.$this->db_add_param($raumtyp_kurzbz, FHC_STRING);
|
||||
}
|
||||
if(!is_null($lehre))
|
||||
{
|
||||
$qry .= ' AND lehre='.$this->db_add_param($lehre, FHC_BOOLEAN);
|
||||
}
|
||||
|
||||
$qry .= ' ORDER BY ort_kurzbz;';
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Datensaetze';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$ort_obj = new ort();
|
||||
|
||||
$ort_obj->ort_kurzbz = $row->ort_kurzbz;
|
||||
$ort_obj->bezeichnung = $row->bezeichnung;
|
||||
$ort_obj->planbezeichnung = $row->planbezeichnung;
|
||||
$ort_obj->max_person = $row->max_person;
|
||||
$ort_obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$ort_obj->lehre = $this->db_parse_bool($row->lehre);
|
||||
$ort_obj->lageplan = $row->lageplan;
|
||||
$ort_obj->dislozierung = $row->dislozierung;
|
||||
$ort_obj->kosten = $row->kosten;
|
||||
$ort_obj->reservieren = $this->db_parse_bool($row->reservieren);
|
||||
$ort_obj->ausstattung = $row->ausstattung;
|
||||
$ort_obj->stockwerk = $row->stockwerk;
|
||||
$ort_obj->standort_id = $row->standort_id;
|
||||
$ort_obj->telefonklappe = $row->telefonklappe;
|
||||
$ort_obj->content_id = $row->content_id;
|
||||
$ort_obj->m2 = $row->m2;
|
||||
$ort_obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$ort_obj->gebteil = $row->gebteil;
|
||||
$this->result[] = $ort_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -416,4 +416,17 @@ class reihungstest extends basis_db
|
||||
|
||||
return $obj->anzahl;
|
||||
}
|
||||
|
||||
public function delete($reihungstest_id)
|
||||
{
|
||||
$qry = "DELETE from public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($reihungstest_id);
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen der Daten';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ class sprache extends basis_db
|
||||
*/
|
||||
public function load($sprache)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache, FHC_STRING, false).";";
|
||||
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache, FHC_STRING, false).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -66,6 +66,7 @@ class sprache extends basis_db
|
||||
$this->locale = $row->locale;
|
||||
$this->index = $row->index;
|
||||
$this->content = $this->db_parse_bool($row->content);
|
||||
$this->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -373,7 +373,7 @@ class studienordnung extends basis_db
|
||||
}
|
||||
|
||||
//loeschen des Datensatzes
|
||||
$qry="DELETE FROM public.tbl_studienordnung WHERE studienordnung_id=".$this->db_add_param($studienordnung_id, FHC_INTEGER, false).";";
|
||||
$qry="DELETE FROM lehre.tbl_studienordnung WHERE studienordnung_id=".$this->db_add_param($studienordnung_id, FHC_INTEGER, false).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -345,7 +345,7 @@ class studienplan extends basis_db
|
||||
}
|
||||
|
||||
//loeschen des Datensatzes
|
||||
$qry="DELETE FROM public.tbl_studienplan WHERE studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER, false).";";
|
||||
$qry="DELETE FROM lehre.tbl_studienplan WHERE studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER, false).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -37,20 +37,20 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional ein StSem
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz StSem das geladen werden soll (default=null)
|
||||
*/
|
||||
public function __construct($studiensemester_kurzbz=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
if($studiensemester_kurzbz != null)
|
||||
$this->load($studiensemester_kurzbz);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt das Studiensemester mit der uebergebenen Kurzbz
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz Stsem das geladen werden soll
|
||||
*/
|
||||
public function load($studiensemester_kurzbz)
|
||||
@@ -84,9 +84,9 @@ class studiensemester extends basis_db
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
*
|
||||
*
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
*/
|
||||
private function validate()
|
||||
{
|
||||
if(mb_strlen($this->studiensemester_kurzbz)>16)
|
||||
@@ -111,7 +111,7 @@ class studiensemester extends basis_db
|
||||
* Speichert das Studiensemester in die Datenbank
|
||||
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
|
||||
* angelegt, ansonsten der Datensatz upgedated
|
||||
*
|
||||
*
|
||||
* @return true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function save()
|
||||
@@ -149,7 +149,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das aktuelle Studiensemester
|
||||
*
|
||||
*
|
||||
* @return aktuelles Studiensemester oder false wenn es keines gibt
|
||||
*/
|
||||
public function getakt()
|
||||
@@ -177,17 +177,17 @@ class studiensemester extends basis_db
|
||||
/**
|
||||
* Liefert ein Studiensemester mit Startdatum vom naechstgelegenen Studiensemester und
|
||||
* dem Startdatum vom folgenden Studiensemester als Endedatum
|
||||
*
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getNearestTillNext()
|
||||
{
|
||||
if(!$this->getNearest())
|
||||
return false;
|
||||
|
||||
|
||||
$start=$this->start;
|
||||
$studiensemester_kurzbz=$this->studiensemester_kurzbz;
|
||||
|
||||
|
||||
if (!$this->getNextFrom($this->studiensemester_kurzbz))
|
||||
return false;
|
||||
$ende=$this->start;
|
||||
@@ -201,7 +201,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Aktuelle Studiensemester oder das darauffolgende
|
||||
*
|
||||
*
|
||||
* @param $semester wenn das semester uebergeben wird, dann werden nur die studiensemester
|
||||
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
|
||||
* @return Studiensemester oder false wenn es keines gibt
|
||||
@@ -213,7 +213,7 @@ class studiensemester extends basis_db
|
||||
else
|
||||
{
|
||||
$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE true";
|
||||
|
||||
|
||||
if($semester!='')
|
||||
{
|
||||
if($semester%2==0)
|
||||
@@ -245,7 +245,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das naechstgelegenste Studiensemester
|
||||
*
|
||||
*
|
||||
* @param semester wenn das semester uebergeben wird, dann werden nur die studiensemester
|
||||
* geliefert die in dieses semester fallen (Bei geradem semester nur SS sonst WS)
|
||||
* @return Studiensemester oder false wenn es keines gibt
|
||||
@@ -292,7 +292,7 @@ class studiensemester extends basis_db
|
||||
public function getAll($order = null)
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester ORDER BY ende";
|
||||
|
||||
|
||||
if($order == "desc")
|
||||
$qry .= " DESC";
|
||||
|
||||
@@ -322,7 +322,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das naechste Studiensemester
|
||||
*
|
||||
*
|
||||
* @param $art Wenn art=WS dann wird das naechste Wintersemester geliefert
|
||||
* Wenn art=SS dann wird das naechste Sommersemester geliefert
|
||||
* @return true wenn ok, false wenn kein entsprechendes vorhanden ist
|
||||
@@ -356,10 +356,10 @@ class studiensemester extends basis_db
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert die naechsten Studiensemester bis zum eingestellten Limit
|
||||
*
|
||||
*
|
||||
* @param $art Wenn art=WS dann wird das naechste Wintersemester geliefert
|
||||
* Wenn art=SS dann wird das naechste Sommersemester geliefert
|
||||
* $limit Wie viele kommende Studiensemester sollen geliefert werden?
|
||||
@@ -374,10 +374,10 @@ class studiensemester extends basis_db
|
||||
$qry.= " AND substring(studiensemester_kurzbz from 1 for 2)=".$this->db_add_param($art);
|
||||
|
||||
$qry.=" ORDER BY start";
|
||||
|
||||
|
||||
if(!is_null($limit) && is_numeric($limit))
|
||||
$qry.=" LIMIT ".$limit;
|
||||
else
|
||||
else
|
||||
$qry.=" LIMIT 1";
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -385,17 +385,17 @@ class studiensemester extends basis_db
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
|
||||
|
||||
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$stsem_obj->start = $row->start;
|
||||
$stsem_obj->ende = $row->ende;
|
||||
$stsem_obj->bezeichnung = $row->bezeichnung;
|
||||
|
||||
|
||||
$this->studiensemester[] = $stsem_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
|
||||
return false;
|
||||
@@ -404,7 +404,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das vorige Studiensemester
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getPrevious()
|
||||
@@ -429,10 +429,10 @@ class studiensemester extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert das vorvorige Studiensemester
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getBeforePrevious()
|
||||
@@ -468,7 +468,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester vor $studiensemester_kurzbz
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
@@ -500,7 +500,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester nach $studiensemester_kurzbz
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
@@ -535,7 +535,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester das aktuell am naehesten zu $studiensemester_kurzbz liegt
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
@@ -569,7 +569,7 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Springt von Studiensemester $studiensemester_kurzbz um $wert Studiensemester vor/zurueck
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $wert
|
||||
* @return studiensemester_kurzbz
|
||||
@@ -616,13 +616,13 @@ class studiensemester extends basis_db
|
||||
else
|
||||
return $studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die vergangenen Studiensemester und das aktuelle
|
||||
*
|
||||
@@ -655,12 +655,12 @@ class studiensemester extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* zurueck, danach das aktuelle.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getLastOrAktSemester($days=60)
|
||||
@@ -685,12 +685,12 @@ class studiensemester extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* Liefert $days (Default 60) Tage nach dem start des neuen Semesters noch das vorherige Studiensemester
|
||||
* zurueck, danach das aktuelle.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* @return studiensemester_kurzbz oder false wenn keines vorhanden
|
||||
*/
|
||||
public function getNextOrAktSemester($days=60)
|
||||
@@ -717,7 +717,7 @@ class studiensemester extends basis_db
|
||||
}
|
||||
/**
|
||||
* Liefert den UNIX Timestamp (Beginn,Ende) eines Studiensemesters
|
||||
*
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return Beginn und Ende eines Studiensemesters als Timestamp
|
||||
*/
|
||||
@@ -729,7 +729,7 @@ class studiensemester extends basis_db
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
{
|
||||
if(!isset($this->begin))
|
||||
$this->begin=new stdclass();
|
||||
$this->begin->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4));
|
||||
@@ -749,42 +749,45 @@ class studiensemester extends basis_db
|
||||
$this->errormsg = 'Fehler beim Ermitteln des Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* untersucht das uebergebene datum in welchem semester es sich befindet
|
||||
* @param type $datum
|
||||
* @return boolean
|
||||
* @return boolean
|
||||
*/
|
||||
public function getSemesterFromDatum($datum)
|
||||
public function getSemesterFromDatum($datum, $next=null)
|
||||
{
|
||||
if($datum == '')
|
||||
{
|
||||
$this->errormsg = "Ungueltiges Datum uebergeben";
|
||||
return false;
|
||||
$this->errormsg = "Ungueltiges Datum uebergeben";
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." AND ende >= ".$this->db_add_param($datum).';';
|
||||
|
||||
if(is_null($next))
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." AND ende >= ".$this->db_add_param($datum).';';
|
||||
else
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE start <=".$this->db_add_param($datum, FHC_STRING)." ORDER BY start desc limit 1;";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
return $row->studiensemester_kurzbz;
|
||||
return $row->studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Es wurde kein passendes Studiensemester gefunden";
|
||||
return false;
|
||||
$this->errormsg = "Es wurde kein passendes Studiensemester gefunden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten.";
|
||||
return false;
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert das dazupassende Studiensemester im Studienjahr
|
||||
* Liefert das dazupassende Studiensemester im Studienjahr
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return $studiensemester_kurzbz
|
||||
*/
|
||||
@@ -798,39 +801,39 @@ class studiensemester extends basis_db
|
||||
|
||||
/**
|
||||
* Laedt die Studiensemester die fuer die Onlinebewerbung aktiviert sind
|
||||
*
|
||||
*
|
||||
* @return true wenn ok, sonst false
|
||||
*/
|
||||
public function getStudiensemesterOnlinebewerbung()
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester WHERE onlinebewerbung=true
|
||||
ORDER BY start";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
|
||||
|
||||
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$stsem_obj->start = $row->start;
|
||||
$stsem_obj->ende = $row->ende;
|
||||
$stsem_obj->bezeichnung = $row->bezeichnung;
|
||||
|
||||
|
||||
$this->studiensemester[] = $stsem_obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen des Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert ausgehend von heutigen Datum $plus studiensemester in die Zukunft und $minus Studiensemester in die Vergangenheit
|
||||
*
|
||||
*
|
||||
* @param integer $plus Wieviele Studiensemester in die Zukunft sollen ausgegeben werden.
|
||||
* @param integer $minus Wieviele Studiensemester in die Vergangenheit sollen ausgegeben werden.
|
||||
*
|
||||
@@ -840,30 +843,30 @@ class studiensemester extends basis_db
|
||||
{
|
||||
if((is_null($plus) || !is_numeric($plus)) || (is_null($minus) || !is_numeric($minus)))
|
||||
return false;
|
||||
|
||||
|
||||
$qry = "SELECT DISTINCT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz IN
|
||||
(
|
||||
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start >= now()
|
||||
ORDER BY ende ASC LIMIT $plus)
|
||||
ORDER BY ende ASC LIMIT $plus)
|
||||
UNION
|
||||
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start <= now()
|
||||
ORDER BY start DESC LIMIT $minus)
|
||||
)
|
||||
ORDER BY ende DESC";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$stsem_obj = new studiensemester();
|
||||
|
||||
|
||||
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$stsem_obj->start = $row->start;
|
||||
$stsem_obj->ende = $row->ende;
|
||||
$stsem_obj->bezeichnung = $row->bezeichnung;
|
||||
$stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz;
|
||||
$stsem_obj->beschreibung = $row->beschreibung;
|
||||
|
||||
|
||||
$this->studiensemester[] = $stsem_obj;
|
||||
}
|
||||
return true;
|
||||
@@ -875,5 +878,55 @@ class studiensemester extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert das Studiensemester das am naehesten zu einem Datum in einem
|
||||
* Studiensemester liegt
|
||||
*
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $datum
|
||||
* @return $studiensemester_kurzbz oder false wenn Fehler
|
||||
*/
|
||||
public function getNearestTo($studiensemester_kurzbz, $datum)
|
||||
{
|
||||
$qry = "SELECT * FROM
|
||||
(
|
||||
SELECT tbl_studiensemester.studiensemester_kurzbz,
|
||||
tbl_studiensemester.start,
|
||||
tbl_studiensemester.ende,
|
||||
tbl_studiensemester.ext_id,
|
||||
@ (tbl_studiensemester.start - ".$this->db_add_param($datum)."::date) AS delta
|
||||
FROM tbl_studiensemester
|
||||
UNION
|
||||
SELECT tbl_studiensemester.studiensemester_kurzbz,
|
||||
tbl_studiensemester.start,
|
||||
tbl_studiensemester.ende,
|
||||
tbl_studiensemester.ext_id,
|
||||
@ (".$this->db_add_param($datum)."::date - tbl_studiensemester.ende) AS delta
|
||||
FROM tbl_studiensemester
|
||||
) a
|
||||
WHERE a.studiensemester_kurzbz!=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
ORDER BY delta LIMIT 1";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$this->start = $row->start;
|
||||
$this->ende = $row->ende;
|
||||
return $row->studiensemester_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es wurde kein folgendes Studiensemester gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln des folgenden Studiensemesters';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
/* tables */
|
||||
table.tablesorter {
|
||||
font-family:arial;
|
||||
/*background-color: white;*/
|
||||
margin:10px 0pt 15px;
|
||||
font-size: 8pt;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
table.tablesorter thead tr th, table.tablesorter tfoot tr th {
|
||||
background:#DCE4EF;
|
||||
border: 1px solid #FFF;
|
||||
font-size: 8pt;
|
||||
padding: 4px;
|
||||
}
|
||||
table.tablesorter thead tr .header {
|
||||
background-image: url(../../../skin/images/bg_sort.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: center left;
|
||||
padding-left: 20px;
|
||||
cursor: pointer;
|
||||
}
|
||||
table.tablesorter tbody td {
|
||||
padding: 4px;
|
||||
background-color: #EEEEEE;
|
||||
vertical-align: top;
|
||||
}
|
||||
table.tablesorter tbody tr.odd td {
|
||||
background-color:lightgray;
|
||||
}
|
||||
table.tablesorter thead tr .headerSortUp {
|
||||
background-image: url(../../../skin/images/asc.gif);
|
||||
}
|
||||
table.tablesorter thead tr .headerSortDown {
|
||||
background-image: url(../../../skin/images/desc.gif);
|
||||
}
|
||||
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
|
||||
background-color: #8dbdd8;
|
||||
}
|
||||
|
||||
TD,TH
|
||||
{
|
||||
font-size: 9pt;
|
||||
}
|
||||
@@ -638,7 +638,14 @@ class wochenplan extends basis_db
|
||||
|
||||
// Formularbeginn wenn Lektor
|
||||
if ($raumres && $this->type=='ort')
|
||||
echo '<form name="reserve" method="post" action="stpl_week.php">'.$this->crlf;
|
||||
{
|
||||
$ort = new ort();
|
||||
$ort->load($this->ort_kurzbz);
|
||||
if($ort->reservieren)
|
||||
echo '<form name="reserve" method="post" action="stpl_week.php">'.$this->crlf;
|
||||
else
|
||||
$raumres=false;
|
||||
}
|
||||
|
||||
//Tabelle zeichnen
|
||||
echo ' <table class="stdplan" width="100%" border="0" cellpadding="1" cellspacing="1" name="Stundenplantabelle" align="center">'.$this->crlf;
|
||||
|
||||
@@ -83,6 +83,7 @@ foreach ($dok->result as $row)
|
||||
// Schleife für alle Akten -> wenn akte draufhängt id in rdf -> akte_id anhängen
|
||||
|
||||
$onlinebewerbung = ($row->onlinebewerbung)?'ja':'nein';
|
||||
$pflicht = ($row->pflicht)?'ja':'nein';
|
||||
// Wenn Akten vorhanden anzeigen
|
||||
if(count($akte->result) != 0)
|
||||
{
|
||||
@@ -93,7 +94,7 @@ foreach ($dok->result as $row)
|
||||
$datumhochgeladen=(isset($a->insertamum))?$date->formatDatum($a->insertamum, 'd.m.Y'):'';
|
||||
$nachgereicht = (isset($a->nachgereicht) && $a->nachgereicht)?'ja':'';
|
||||
$info = (isset($a->anmerkung))?$akte->result[0]->anmerkung:'';
|
||||
$vorhanden = (isset($a->dms_id) || $a->inhalt_vorhanden)?'ja':'nein';
|
||||
$vorhanden = (isset($a->dms_id) || $a->inhalt_vorhanden)?'ja':((isset($a->nachgereicht) && $a->nachgereicht)?'nachgereicht':'nein');
|
||||
|
||||
echo '
|
||||
<RDF:li>
|
||||
@@ -109,6 +110,7 @@ foreach ($dok->result as $row)
|
||||
<DOKUMENT:titel_intern><![CDATA['.$a->titel_intern.']]></DOKUMENT:titel_intern>
|
||||
<DOKUMENT:anmerkung_intern><![CDATA['.$a->anmerkung_intern.']]></DOKUMENT:anmerkung_intern>
|
||||
<DOKUMENT:onlinebewerbung><![CDATA['.$onlinebewerbung.']]></DOKUMENT:onlinebewerbung>
|
||||
<DOKUMENT:pflicht><![CDATA['.$pflicht.']]></DOKUMENT:pflicht>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
';
|
||||
@@ -130,6 +132,7 @@ foreach ($dok->result as $row)
|
||||
<DOKUMENT:titel_intern></DOKUMENT:titel_intern>
|
||||
<DOKUMENT:anmerkung_intern></DOKUMENT:anmerkung_intern>
|
||||
<DOKUMENT:onlinebewerbung><![CDATA['.$onlinebewerbung.']]></DOKUMENT:onlinebewerbung>
|
||||
<DOKUMENT:pflicht><![CDATA['.$pflicht.']]></DOKUMENT:pflicht>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
';
|
||||
|
||||
@@ -78,11 +78,11 @@ if(isset($_GET['optional']) && $_GET['optional']=='true')
|
||||
}
|
||||
|
||||
if($lehreinheit_id!='')
|
||||
{
|
||||
{
|
||||
$lehreinheit->load($lehreinheit_id);
|
||||
draw_row($lehreinheit);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if($lehrveranstaltung_id!='')
|
||||
{
|
||||
@@ -90,7 +90,7 @@ else
|
||||
foreach ($lehreinheit->lehreinheiten as $row)
|
||||
draw_row($row);
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Fehlerhafte Parameteruebergabe');
|
||||
}
|
||||
|
||||
@@ -98,41 +98,41 @@ else
|
||||
function draw_row($row)
|
||||
{
|
||||
global $rdf_url;
|
||||
|
||||
|
||||
$legrp = new lehreinheitgruppe();
|
||||
$legrp->getLehreinheitgruppe($row->lehreinheit_id);
|
||||
|
||||
|
||||
$grp='';
|
||||
foreach ($legrp->lehreinheitgruppe as $leg_row)
|
||||
{
|
||||
if($leg_row->gruppe_kurzbz!='')
|
||||
$grp .=" ".$leg_row->gruppe_kurzbz;
|
||||
else
|
||||
else
|
||||
$grp .=" ".$leg_row->semester.$leg_row->verband.$leg_row->gruppe;
|
||||
}
|
||||
|
||||
$qry = "SELECT kurzbz FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE
|
||||
|
||||
$qry = "SELECT kurzbz FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE
|
||||
lehreinheit_id='$row->lehreinheit_id'";
|
||||
|
||||
$mitarbeiter='';
|
||||
$db = new basis_db();
|
||||
|
||||
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
while($row_ma = $db->db_fetch_object())
|
||||
$mitarbeiter .=' '.$row_ma->kurzbz;
|
||||
}
|
||||
$mitarbeiter = '('.$mitarbeiter.')';
|
||||
|
||||
$anzahl_studenten=0;
|
||||
|
||||
$anzahl_studenten=0;
|
||||
$qry = "SELECT count(*) as anz FROM campus.vw_student_lehrveranstaltung WHERE lehreinheit_id='".addslashes($row->lehreinheit_id)."'";
|
||||
if($db->db_query($qry))
|
||||
if($row_std = $db->db_fetch_object())
|
||||
$anzahl_studenten = $row_std->anz;
|
||||
|
||||
|
||||
$lehrfach = new lehrveranstaltung();
|
||||
$lehrfach->load($row->lehrfach_id);
|
||||
|
||||
|
||||
echo '
|
||||
<RDF:li>
|
||||
<RDF:Description id="'.$row->lehreinheit_id.'" about="'.$rdf_url.'/'.$row->lehreinheit_id.'" >
|
||||
@@ -153,10 +153,11 @@ function draw_row($row)
|
||||
<LEHREINHEIT:lvnr><![CDATA['.$row->lvnr.']]></LEHREINHEIT:lvnr>
|
||||
<LEHREINHEIT:bezeichnung><![CDATA['.$lehrfach->kurzbz.'-'.$row->lehrform_kurzbz.' '.$lehrfach->bezeichnung.' '.$grp.' '.$mitarbeiter.']]></LEHREINHEIT:bezeichnung>
|
||||
<LEHREINHEIT:anzahl_studenten><![CDATA['.$anzahl_studenten.']]></LEHREINHEIT:anzahl_studenten>
|
||||
<LEHREINHEIT:gewicht><![CDATA['.$row->gewicht.']]></LEHREINHEIT:gewicht>
|
||||
</RDF:Description>
|
||||
</RDF:li>
|
||||
';
|
||||
}
|
||||
}
|
||||
?>
|
||||
</RDF:Seq>
|
||||
</RDF:RDF>
|
||||
@@ -63,10 +63,10 @@ $db = new basis_db();
|
||||
$lvaDAO=new lehrveranstaltung();
|
||||
if($uid!='' && $stg_kz!=-1) // Alle LVs eines Mitarbeiters
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
distinct on(lehrveranstaltung_id) * ,'' as studienplan_id, '' as studienplan_bezeichnung
|
||||
FROM
|
||||
campus.vw_lehreinheit
|
||||
campus.vw_lehreinheit
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
|
||||
AND mitarbeiter_uid=".$db->db_add_param($uid);
|
||||
@@ -88,11 +88,11 @@ elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches
|
||||
tbl_lehrveranstaltung.planlektoren as lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten as lv_planpersonalkosten,
|
||||
tbl_lehrveranstaltung.plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz as lv_orgform_kurzbz,
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english,
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.semesterstunden,
|
||||
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
|
||||
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
|
||||
tbl_studienplan.studienplan_id::text, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_lehrveranstaltung.lehrtyp_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
@@ -108,17 +108,17 @@ elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches
|
||||
}
|
||||
else
|
||||
$qry='';
|
||||
$qry .= "
|
||||
SELECT
|
||||
distinct on(lehrveranstaltung_id)
|
||||
$qry .= "
|
||||
SELECT
|
||||
distinct on(lehrveranstaltung_id)
|
||||
lv_studiengang_kz, lv_semester, lv_kurzbz, lv_bezeichnung, lv_ects,
|
||||
lv_lehreverzeichnis, lv_planfaktor, lv_planlektoren, lv_planpersonalkosten,
|
||||
lv_plankostenprolektor, lv_orgform_kurzbz, lehrveranstaltung_id,
|
||||
lehrform_kurzbz, lv_lehrform_kurzbz, lv_bezeichnung_english, studiengang_kz, semester, anmerkung, sprache, semesterstunden,
|
||||
lehre, aktiv,
|
||||
'' as studienplan_id, '' as studienplan_bezeichnung,
|
||||
'' as studienplan_id, '' as studienplan_bezeichnung,
|
||||
(SELECT lehrtyp_kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=vw_lehreinheit.lehrveranstaltung_id) as lehrtyp_kurzbz
|
||||
FROM
|
||||
FROM
|
||||
campus.vw_lehreinheit
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)."
|
||||
@@ -151,11 +151,11 @@ elseif($oe_kurzbz!='') // Alle LVs einer Organisationseinheit
|
||||
tbl_lehrveranstaltung.planlektoren as lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten as lv_planpersonalkosten,
|
||||
tbl_lehrveranstaltung.plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz as lv_orgform_kurzbz,
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english,
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.semesterstunden,
|
||||
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
|
||||
tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv,
|
||||
'' as studienplan_id, '' as studienplan_bezeichnung, tbl_lehrveranstaltung.lehrtyp_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
@@ -195,14 +195,14 @@ else
|
||||
if(count($stp_ids)>0)
|
||||
{
|
||||
// Alle Lehrveranstaltungen die lt Studienplan zugeordnet sind
|
||||
$qry.= "SELECT lehrveranstaltung_id, kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz,
|
||||
$qry.= "SELECT lehrveranstaltung_id, kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, bezeichnung_english as lv_bezeichnung_english, studiengang_kz,
|
||||
tbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache,
|
||||
ects as lv_ects, semesterstunden, anmerkung, lehre, lehreverzeichnis as lv_lehreverzeichnis, tbl_lehrveranstaltung.aktiv,
|
||||
planfaktor as lv_planfaktor, planlektoren as lv_planlektoren, planpersonalkosten as lv_planpersonalkosten,
|
||||
plankostenprolektor as lv_plankostenprolektor, lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.orgform_kurzbz,
|
||||
tbl_studienplan_lehrveranstaltung.studienplan_id::text as studienplan_id, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent::text,
|
||||
tbl_lehrveranstaltung.lehrtyp_kurzbz
|
||||
FROM
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||||
@@ -253,7 +253,7 @@ $oRdf->sendHeader();
|
||||
//Fachbereichskoordinatoren laden
|
||||
$qry_fbk = "SELECT kurzbz FROM public.tbl_mitarbeiter LEFT JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE tbl_benutzer.aktiv AND mitarbeiter_uid =
|
||||
(
|
||||
SELECT
|
||||
SELECT
|
||||
COALESCE(tbl_lehrveranstaltung.koordinator, uid) as koordinator
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzerfunktion, public.tbl_studiensemester, public.tbl_studiengang, public.tbl_fachbereich
|
||||
@@ -263,16 +263,16 @@ $oRdf->sendHeader();
|
||||
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND
|
||||
lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz AND
|
||||
tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz AND
|
||||
tbl_benutzerfunktion.funktion_kurzbz='fbk' AND
|
||||
tbl_benutzerfunktion.funktion_kurzbz='fbk' AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=tbl_studiensemester.studiensemester_kurzbz AND
|
||||
tbl_benutzerfunktion.oe_kurzbz=tbl_studiengang.oe_kurzbz AND
|
||||
(tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND
|
||||
(tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND
|
||||
tbl_studiengang.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz ORDER BY tbl_studiensemester.ende DESC LIMIT 1 ) ";
|
||||
|
||||
|
||||
if(!$result_fbk = $db->db_query($qry_fbk))
|
||||
die('Fehlerhafte Abfrage');
|
||||
|
||||
|
||||
$fbk='';
|
||||
while($row_fbk = $db->db_fetch_object($result_fbk))
|
||||
{
|
||||
@@ -411,6 +411,7 @@ $oRdf->sendHeader();
|
||||
$oRdf->obj[$i]->setAttribut('gruppen',$grp);
|
||||
$oRdf->obj[$i]->setAttribut('lektoren',$lkt);
|
||||
$oRdf->obj[$i]->setAttribut('fachbereich',$fachbereich);
|
||||
$oRdf->obj[$i]->setAttribut('gewicht',$row_le->gewicht);
|
||||
|
||||
$oRdf->addSequence($row_lva->lehrveranstaltung_id.'/'.$row_le->lehreinheit_id,$row_lva->lehrveranstaltung_id);
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 896 B |
@@ -3237,7 +3237,7 @@ if($result = @$db->db_query("SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "
|
||||
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,WAHR,FALSE,FALSE);
|
||||
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,TRUE,FALSE,FALSE);
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
|
||||
@@ -3237,7 +3237,7 @@ if($result = @$db->db_query("SELECT 1 FROM public.tbl_gruppe WHERE gruppe_kurzbz
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "
|
||||
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,WAHR,FALSE,FALSE);
|
||||
INSERT INTO public.tbl_gruppe(gruppe_kurzbz,studiengang_kz,semester,bezeichnung,beschreibung,sichtbar,lehre,aktiv,sort,mailgrp,generiert,insertamum,insertvon,orgform_kurzbz,content_visible,gesperrt,zutrittssystem) VALUES('CMS_LOCK',0,NULL,'CMS_LOCK','Sperrgruppe CMS',FALSE,TRUE,TRUE,NULL,FALSE,FALSE,now(),'checksystem',NULL,TRUE,FALSE,FALSE);
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
* Dieses Skript prueft die Datenbank auf aktualitaet, dabei werden fehlende Attribute angelegt.
|
||||
*/
|
||||
|
||||
echo "keine Updates vorhanden!";
|
||||
|
||||
// Neue Spalte beschreibung_mehrsprachig bei tbl_dokument
|
||||
if(!@$db->db_query("SELECT dokumentbeschreibung_mehrsprachig FROM public.tbl_dokument LIMIT 1"))
|
||||
{
|
||||
@@ -68,6 +66,19 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
|
||||
}
|
||||
}
|
||||
|
||||
// Neue Spalte Gewicht bei tbl_lehreinheit
|
||||
if(!@$db->db_query("SELECT gewicht FROM lehre.tbl_lehreinheit LIMIT 1"))
|
||||
{
|
||||
$qry = "
|
||||
ALTER TABLE lehre.tbl_lehreinheit ADD COLUMN gewicht smallint DEFAULT 1;;
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>lehre.tbl_lehreinheit '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Spalte gewicht in lehre.tbl_lehreinheit hinzugefügt';
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -172,7 +183,7 @@ $tabellen=array(
|
||||
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
|
||||
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung"),
|
||||
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
|
||||
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old"),
|
||||
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"),
|
||||
"lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
"lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id","vertrag_id"),
|
||||
"lehre.tbl_lehrfach" => array("lehrfach_id","studiengang_kz","fachbereich_kurzbz","kurzbz","bezeichnung","farbe","aktiv","semester","sprache","updateamum","updatevon","insertamum","insertvon","ext_id"),
|
||||
|
||||
@@ -1,491 +1,491 @@
|
||||
Version 1.4.4
|
||||
-------------
|
||||
* Bug
|
||||
* filebox: The 'clear' and 'reset' methods do not work properly in IE9. fixed.
|
||||
* messager: After calling $.messager.progress() with no arguments, the $.messager.progress('close') does not work properly. fixed.
|
||||
* timespinner: The value does not display properly in IE8 while clicking the spin buttons. fixed.
|
||||
* window: The window does not display when calling 'options' method in 'onMove' event. fixed.
|
||||
* treegrid: The 'getLevel' method does not accept the parameter value of 0. fixed.
|
||||
* Improvement
|
||||
* layout: The 'collapsedContent','expandMode' and 'hideExpandTool' properties are supported in region panel.
|
||||
* layout: The 'hideCollapsedContent' property can be set to display the vertical title bar on collapsed panel.
|
||||
* layout: Add 'onCollapse','onExpand','onAdd','onRemove' events.
|
||||
* datagrid: Display the 'up-down' icon on the sortable columns.
|
||||
* datagrid: Add 'gotoPage' method.
|
||||
* propertygrid: Add 'groups' method that allows to get all the data groups.
|
||||
* messager: Auto scroll feature is supported when displaying long messages.
|
||||
* tabs: The 'disabled' property is supported when defining a disabled tab panel.
|
||||
* tabs: The percentange size is supported now.
|
||||
|
||||
Version 1.4.3
|
||||
-------------
|
||||
* Bug
|
||||
* textbox: The 'setText' method does not accept value 0. fixed.
|
||||
* timespinner: When running in IE11, the error occurs when clicking on the empty textbox. fixed.
|
||||
* tabs: The 'update' method can not update only the panel body. fixed.
|
||||
* Improvement
|
||||
* combobox: Improve the performance of displaying the drop-down panel.
|
||||
* combogrid: Remember the displaying text when the drop-down datagrid go to other pages.
|
||||
* combogrid: The 'setValue' and 'setValues' methods accept a key-value object.
|
||||
* window: The inline window's mask can auto-stretch its size to fill parent container.
|
||||
* tabs: The 'showTool' and 'hideTool' methods are available for users to show or hide the tools.
|
||||
* layout: Allow the user to override the 'cls','headerCls' and 'bodyCls' property values.
|
||||
* New Plugins
|
||||
* switchbutton: The switch button with two states:'on' and 'off'.
|
||||
|
||||
Version 1.4.2
|
||||
-------------
|
||||
* Bug
|
||||
* treegrid: The column will restore its size to original size after recreating the treegrid. fixed.
|
||||
* Improvement
|
||||
* draggable: Add 'delay' property that allows the user to delay the drag operation.
|
||||
* tree: Add 'filter' property and 'doFilter' method.
|
||||
* tabs: The 'add' method allows the user to insert a tab panel at a specified index.
|
||||
* tabs: The user can determine what tab panel can be selected.
|
||||
* tabs: Add 'justified' and 'narrow' properties.
|
||||
* layout: Add 'unsplit' and 'split' methods.
|
||||
* messager: Keyboard navigation features are supported now.
|
||||
* form: Add 'onChange' event.
|
||||
* combobox: Add 'queryParams' property.
|
||||
* slider: Add 'range' property.
|
||||
* menu: Add 'itemHeight','inline','noline' properties.
|
||||
* panel: The 'header' property allows the user to customize the panel header.
|
||||
* menubutton: Add 'hasDownArrow' property.
|
||||
* New Plugins
|
||||
* datalist: The plugin to render items in a list.
|
||||
* navpanel: The root component for the mobile page.
|
||||
* mobile: The plugin to provide the mobile page stack management and navigation.
|
||||
|
||||
Version 1.4.1
|
||||
-------------
|
||||
* Bug
|
||||
* combogrid: The combogrid has different height than other combo components. fixed.
|
||||
* datagrid: The row element loses some class style value after calling 'updateRow' method. fixed.
|
||||
* menubutton: Calling 'enable' method on a disabled button can not work well. fixed.
|
||||
* form: The filebox components in the form do not work correctly after calling 'clear' method. fixed.
|
||||
* Improvement
|
||||
* tabs: The 'update' method accepts 'type' option that allows the user to update the header,body,or both.
|
||||
* panel: Add 'openAnimation','openDuration','closeAnimation' and 'closeDuration' properties to set the animation for opening or closing a panel.
|
||||
* panel: Add 'footer' property that allows the user to add a footer bar to the bottom of panel.
|
||||
* datagrid: Calling 'endEdit' method will accept the editing value correctly.
|
||||
* datagrid: Add 'onBeforeSelect','onBeforeCheck','onBeforeUnselect','onBeforeUncheck' events.
|
||||
* propertygrid: The user can edit a row by calling 'beginEdit' method.
|
||||
* datebox: Add 'cloneFrom' method to create the datebox component quickly.
|
||||
* datetimebox: Add 'cloneFrom' method to create the datetimebox component quickly.
|
||||
|
||||
Version 1.4
|
||||
-------------
|
||||
* Bug
|
||||
* menu: The menu should not has a correct height when removed a menu item. fixed.
|
||||
* datagrid: The 'fitColumns' method does not work normally when the datarid width is too small. fixed.
|
||||
* Improvement
|
||||
* The fluid/percentange size is supported now for all easyui components.
|
||||
* menu: Add 'showItem', 'hideItem' and 'resize' methods.
|
||||
* menu: Auto resize the height upon the window size.
|
||||
* menu: Add 'duration' property that allows the user to define duration time in milliseconds to hide menu.
|
||||
* validatebox: Add 'onBeforeValidate' and 'onValidate' events.
|
||||
* combo: Extended from textbox now.
|
||||
* combo: Add 'panelMinWidth','panelMaxWidth','panelMinHeight' and 'panelMaxHeight' properties.
|
||||
* searchbox: Extended from textbox now.
|
||||
* tree: The 'getRoot' method will return the top parent node of a specified node if pass a 'nodeEl' parameter.
|
||||
* tree: Add 'queryParams' property.
|
||||
* datetimebox: Add 'spinnerWidth' property.
|
||||
* panel: Add 'doLayout' method to cause the panel to lay out its components.
|
||||
* panel: Add 'clear' method to clear the panel's content.
|
||||
* datagrid: The user is allowed to assign percent width to columns.
|
||||
* form: Add 'ajax','novalidate' and 'queryParams' properties.
|
||||
* linkbutton: Add 'resize' method.
|
||||
* New Plugins
|
||||
* textbox: A enhanced input field that allows users build their form easily.
|
||||
* datetimespinner: A date and time spinner that allows to pick a specific day.
|
||||
* filebox: The filebox component represents a file field of the forms.
|
||||
|
||||
Version 1.3.6
|
||||
-------------
|
||||
* Bug
|
||||
* treegrid: The 'getChecked' method can not return correct checked rows. fixed.
|
||||
* tree: The checkbox does not display properly on async tree when 'onlyLeafCheck' property is true. fixed.
|
||||
* Improvement
|
||||
* treegrid: All the selecting and checking methods are extended from datagrid component.
|
||||
* linkbutton: The icon alignment is fully supported, possible values are: 'top','bottom','left','right'.
|
||||
* linkbutton: Add 'size' property, possible values are: 'small','large'.
|
||||
* linkbutton: Add 'onClick' event.
|
||||
* menubutton: Add 'menuAlign' property that allows the user set top level menu alignment.
|
||||
* combo: Add 'panelAlign' property, possible values are: 'left','right'.
|
||||
* calendar: The 'formatter','styler' and 'validator' options are available to custom the calendar dates.
|
||||
* calendar: Add 'onChange' event.
|
||||
* panel: Add 'method','queryParams' and 'loader' options.
|
||||
* panel: Add 'onLoadError' event.
|
||||
* datagrid: Add 'onBeginEdit' event that fires when a row goes into edit mode.
|
||||
* datagrid: Add 'onEndEdit' event that fires when finishing editing but before destroying editors.
|
||||
* datagrid: Add 'sort' method and 'onBeforeSortColumn' event.
|
||||
* datagrid: The 'combogrid' editor has been integrated into datagrid.
|
||||
* datagrid: Add 'ctrlSelect' property that only allows multi-selection when ctrl+click is used.
|
||||
* slider: Add 'converter' option that allows users determine how to convert a value to the slider position or the slider position to the value.
|
||||
* searchbox: Add 'disabled' property.
|
||||
* searchbox: Add 'disable','enable','clear','reset' methods.
|
||||
* spinner: Add 'readonly' property, 'readonly' method and 'onChange' event.
|
||||
|
||||
Version 1.3.5
|
||||
-------------
|
||||
* Bug
|
||||
* searchbox: The 'searcher' function can not offer 'name' parameter value correctly. fixed.
|
||||
* combo: The 'isValid' method can not return boolean value. fixed.
|
||||
* combo: Clicking combo will trigger the 'onHidePanel' event of other combo components that have hidden drop-down panels. fixed.
|
||||
* combogrid: Some methods can not inherit from combo. fixed.
|
||||
* Improvement
|
||||
* datagrid: Improve performance on checking rows.
|
||||
* menu: Allows to append a menu separator.
|
||||
* menu: Add 'hideOnUnhover' property to indicate if the menu should be hidden when mouse exits it.
|
||||
* slider: Add 'clear' and 'reset' methods.
|
||||
* tabs: Add 'unselect' method that will trigger 'onUnselect' event.
|
||||
* tabs: Add 'selected' property to specify what tab panel will be opened.
|
||||
* tabs: The 'collapsible' property of tab panel is supported to determine if the tab panel can be collapsed.
|
||||
* tabs: Add 'showHeader' property, 'showHeader' and 'hideHeader' methods.
|
||||
* combobox: The 'disabled' property can be used to disable some items.
|
||||
* tree: Improve loading performance.
|
||||
* pagination: The 'layout' property can be used to customize the pagination layout.
|
||||
* accordion: Add 'unselect' method that will trigger 'onUnselect' event.
|
||||
* accordion: Add 'selected' and 'multiple' properties.
|
||||
* accordion: Add 'getSelections' method.
|
||||
* datebox: Add 'sharedCalendar' property that allows multiple datebox components share one calendar component.
|
||||
|
||||
Version 1.3.4
|
||||
-------------
|
||||
* Bug
|
||||
* combobox: The onLoadSuccess event fires when parsing empty local data. fixed.
|
||||
* form: Calling 'reset' method can not reset datebox field. fixed.
|
||||
* Improvement
|
||||
* mobile: The context menu and double click features are supported on mobile devices.
|
||||
* combobox: The 'groupField' and 'groupFormatter' options are available to display items in groups.
|
||||
* tree: When append or insert nodes, the 'data' parameter accepts one or more nodes data.
|
||||
* tree: The 'getChecked' method accepts a single 'state' or an array of 'state'.
|
||||
* tree: Add 'scrollTo' method.
|
||||
* datagrid: The 'multiSort' property is added to support multiple column sorting.
|
||||
* datagrid: The 'rowStyler' and column 'styler' can return CSS class name or inline styles.
|
||||
* treegrid: Add 'load' method to load data and navigate to the first page.
|
||||
* tabs: Add 'tabWidth' and 'tabHeight' properties.
|
||||
* validatebox: The 'novalidate' property is available to indicate whether to perform the validation.
|
||||
* validatebox: Add 'enableValidation' and 'disableValidation' methods.
|
||||
* form: Add 'enableValidation' and 'disableValidation' methods.
|
||||
* slider: Add 'onComplete' event.
|
||||
* pagination: The 'buttons' property accepts the existing element.
|
||||
|
||||
Version 1.3.3
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: Some style features are not supported by column styler function. fixed.
|
||||
* datagrid: IE 31 stylesheet limit. fixed.
|
||||
* treegrid: Some style features are not supported by column styler function. fixed.
|
||||
* menu: The auto width of menu item displays incorrect in ie6. fixed.
|
||||
* combo: The 'onHidePanel' event can not fire when clicked outside the combo area. fixed.
|
||||
* Improvement
|
||||
* datagrid: Add 'scrollTo' and 'highlightRow' methods.
|
||||
* treegrid: Enable treegrid to parse data from <tbody> element.
|
||||
* combo: Add 'selectOnNavigation' and 'readonly' options.
|
||||
* combobox: Add 'loadFilter' option to allow users to change data format before loading into combobox.
|
||||
* tree: Add 'onBeforeDrop' callback event.
|
||||
* validatebox: Dependent on tooltip plugin now, add 'deltaX' property.
|
||||
* numberbox: The 'filter' options can be used to determine if the key pressed was accepted.
|
||||
* linkbutton: The group button is available.
|
||||
* layout: The 'minWidth','maxWidth','minHeight','maxHeight' and 'collapsible' properties are available for region panel.
|
||||
* New Plugins
|
||||
* tooltip: Display a popup message when moving mouse over an element.
|
||||
|
||||
Version 1.3.2
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: The loading message window can not be centered when changing the width of datagrid. fixed.
|
||||
* treegrid: The 'mergeCells' method can not work normally. fixed.
|
||||
* propertygrid: Calling 'endEdit' method to stop editing a row will cause errors. fixed.
|
||||
* tree: Can not load empty data when 'lines' property set to true. fixed.
|
||||
* Improvement
|
||||
* RTL feature is supported now.
|
||||
* tabs: Add 'scrollBy' method to scroll the tab header by the specified amount of pixels
|
||||
* tabs: Add 'toolPosition' property to set tab tools to left or right.
|
||||
* tabs: Add 'tabPosition' property to define the tab position, possible values are: 'top','bottom','left','right'.
|
||||
* datagrid: Add a column level property 'order' that allows users to define different default sort order per column.
|
||||
* datagrid: Add a column level property 'halign' that allows users to define how to align the column header.
|
||||
* datagrid: Add 'resizeHandle' property to define the resizing column position, by grabbing the left or right edge of the column.
|
||||
* datagrid: Add 'freezeRow' method to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.
|
||||
* datagrid: Add 'clearChecked' method to clear all checked records.
|
||||
* datagrid: Add 'data' property to initialize the datagrid data.
|
||||
* linkbutton: Add 'iconAlgin' property to define the icon position, supported values are: 'left','right'.
|
||||
* menu: Add 'minWidth' property.
|
||||
* menu: The menu width can be automatically calculated.
|
||||
* tree: New events are available including 'onBeforeDrag','onStartDrag','onDragEnter','onDragOver','onDragLeave',etc.
|
||||
* combo: Add 'height' property to allow users to define the height of combo.
|
||||
* combo: Add 'reset' method.
|
||||
* numberbox: Add 'reset' method.
|
||||
* spinner: Add 'reset' method.
|
||||
* spinner: Add 'height' property to allow users to define the height of spinner.
|
||||
* searchbox: Add 'height' property to allow users to define the height of searchbox.
|
||||
* form: Add 'reset' method.
|
||||
* validatebox: Add 'delay' property to delay validating from the last inputting value.
|
||||
* validatebox: Add 'tipPosition' property to define the tip position, supported values are: 'left','right'.
|
||||
* validatebox: Multiple validate rules on a field is supported now.
|
||||
* slider: Add 'reversed' property to determine if the min value and max value will switch their positions.
|
||||
* progressbar: Add 'height' property to allow users to define the height of progressbar.
|
||||
|
||||
Version 1.3.1
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: Setting the 'pageNumber' property is not valid. fixed.
|
||||
* datagrid: The id attribute of rows isn't adjusted properly while calling 'insertRow' or 'deleteRow' method.
|
||||
* dialog: When load content from 'href', the script will run twice. fixed.
|
||||
* propertygrid: The editors that extended from combo can not accept its changed value. fixed.
|
||||
* Improvement
|
||||
* droppable: Add 'disabled' property.
|
||||
* droppable: Add 'options','enable' and 'disable' methods.
|
||||
* tabs: The tab panel tools can be changed by calling 'update' method.
|
||||
* messager: When show a message window, the user can define the window position by applying 'style' property.
|
||||
* window: Prevent script on window body from running twice.
|
||||
* window: Add 'hcenter','vcenter' and 'center' methods.
|
||||
* tree: Add 'onBeforeCheck' callback event.
|
||||
* tree: Extend the 'getChecked' method to allow users to get 'checked','unchecked' or 'indeterminate' nodes.
|
||||
* treegrid: Add 'update' method to update a specified node.
|
||||
* treegrid: Add 'insert' method to insert a new node.
|
||||
* treegrid: Add 'pop' method to remove a node and get the removed node data.
|
||||
|
||||
Version 1.3
|
||||
-----------
|
||||
* Bug
|
||||
* combogrid: When set to 'remote' query mode, the 'queryParams' parameters can't be sent to server. fixed.
|
||||
* combotree: The tree nodes on drop-down panel can not be unchecked while calling 'clear' method. fixed.
|
||||
* datetimebox: Setting 'showSeconds' property to false cannot hide seconds info. fixed.
|
||||
* datagrid: Calling 'mergeCells' method can't auto resize the merged cell while header is hidden. fixed.
|
||||
* dialog: Set cache to false and load data via ajax, the content cannot be refreshed. fixed.
|
||||
* Improvement
|
||||
* The HTML5 'data-options' attribute is available for components to declare all custom options, including properties and events.
|
||||
* More detailed documentation is available.
|
||||
* panel: Prevent script on panel body from running twice.
|
||||
* accordion: Add 'getPanelIndex' method.
|
||||
* accordion: The tools can be added on panel header.
|
||||
* datetimebox: Add 'timeSeparator' option that allows users to define the time separator.
|
||||
* pagination: Add 'refresh' and 'select' methods.
|
||||
* datagrid: Auto resize the column width to fit the contents when the column width is not defined.
|
||||
* datagrid: Double click on the right border of columns to auto resize the columns to the contents in the columns.
|
||||
* datagrid: Add 'autoSizeColumn' method that allows users to adjust the column width to fit the contents.
|
||||
* datagrid: Add 'getChecked' method to get all rows where the checkbox has been checked.
|
||||
* datagrid: Add 'selectOnCheck' and 'checkOnSelect' properties and some checking methods to enhance the row selections.
|
||||
* datagrid: Add 'pagePosition' property to allow users to display pager bar at either top,bottom or both places of the grid.
|
||||
* datagrid: The buffer view and virtual scroll view are supported to display large amounts of records without pagination.
|
||||
* tabs: Add 'disableTab' and 'enableTab' methods to allow users to disable or enable a tab panel.
|
||||
|
||||
Version 1.2.6
|
||||
-------------
|
||||
* Bug
|
||||
* tabs: Call 'add' method with 'selected:false' option, the added tab panel is always selected. fixed.
|
||||
* treegrid: The 'onSelect' and 'onUnselect' events can't be triggered. fixed.
|
||||
* treegrid: Cannot display zero value field. fixed.
|
||||
* Improvement
|
||||
* propertygrid: Add 'expandGroup' and 'collapseGroup' methods.
|
||||
* layout: Allow users to create collapsed layout panels by assigning 'collapsed' property to true.
|
||||
* layout: Add 'add' and 'remove' methods that allow users to dynamically add or remove region panel.
|
||||
* layout: Additional tool icons can be added on region panel header.
|
||||
* calendar: Add 'firstDay' option that allow users to set first day of week. Sunday is 0, Monday is 1, ...
|
||||
* tree: Add 'lines' option, true to display tree lines.
|
||||
* tree: Add 'loadFilter' option that allow users to change data format before loading into the tree.
|
||||
* tree: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* treegrid: Add 'onClickCell' and 'onDblClickCell' callback function options.
|
||||
* datagrid: Add 'autoRowHeight' property that allow users to determine if set the row height based on the contents of that row.
|
||||
* datagrid: Improve performance to load large data set.
|
||||
* datagrid: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* treegrid: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* combobox: Add 'onBeforeLoad' callback event function.
|
||||
* combobox: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* Add support for other loading mode such as dwr,xml,etc.
|
||||
* New Plugins
|
||||
* slider: Allows the user to choose a numeric value from a finite range.
|
||||
|
||||
Version 1.2.5
|
||||
-------------
|
||||
* Bug
|
||||
* tabs: When add a new tab panel with href property, the content page is loaded twice. fixed.
|
||||
* form: Failed to call 'load' method to load form input with complex name. fixed.
|
||||
* draggable: End drag in ie9, the cursor cannot be restored. fixed.
|
||||
* Improvement
|
||||
* panel: The tools can be defined via html markup.
|
||||
* tabs: Call 'close' method to close specified tab panel, users can pass tab title or index of tab panel. Other methods such 'select','getTab' and 'exists' are similar to 'close' method.
|
||||
* tabs: Add 'getTabIndex' method.
|
||||
* tabs: Users can define mini tools on tabs.
|
||||
* tree: The mouse must move a specified distance to begin drag and drop operation.
|
||||
* resizable: Add 'options','enable' and 'disable' methods.
|
||||
* numberbox: Allow users to change number format.
|
||||
* datagrid: The subgrid is supported now.
|
||||
* searchbox: Add 'selectName' method to select searching type name.
|
||||
|
||||
Version 1.2.4
|
||||
-------------
|
||||
* Bug
|
||||
* menu: The menu position is wrong when scroll bar appears. fixed.
|
||||
* accordion: Cannot display the default selected panel in jQuery 1.6.2. fixed.
|
||||
* tabs: Cannot display the default selected tab panel in jQuery 1.6.2. fixed.
|
||||
* Improvement
|
||||
* menu: Allow users to disable or enable menu item.
|
||||
* combo: Add 'delay' property to set the delay time to do searching from the last key input event.
|
||||
* treegrid: The 'getEditors' and 'getEditor' methods are supported now.
|
||||
* treegrid: The 'loadFilter' option is supported now.
|
||||
* messager: Add 'progress' method to display a message box with a progress bar.
|
||||
* panel: Add 'extractor' option to allow users to extract panel content from ajax response.
|
||||
* New Plugins
|
||||
* searchbox: Allow users to type words into box and do searching operation.
|
||||
* progressbar: To display the progress of a task.
|
||||
|
||||
Version 1.2.3
|
||||
-------------
|
||||
* Bug
|
||||
* window: Cannot resize the window with iframe content. fixed.
|
||||
* tree: The node will be removed when dragging to its child. fixed.
|
||||
* combogrid: The onChange event fires multiple times. fixed.
|
||||
* accordion: Cannot add batch new panels when animate property is set to true. fixed.
|
||||
* Improvement
|
||||
* treegrid: The footer row and row styler features are supported now.
|
||||
* treegrid: Add 'getLevel','reloadFooter','getFooterRows' methods.
|
||||
* treegrid: Support root nodes pagination and editable features.
|
||||
* datagrid: Add 'getFooterRows','reloadFooter','insertRow' methods and improve editing performance.
|
||||
* datagrid: Add 'loadFilter' option that allow users to change original source data to standard data format.
|
||||
* draggable: Add 'onBeforeDrag' callback event function.
|
||||
* validatebox: Add 'remote' validation type.
|
||||
* combobox: Add 'method' option.
|
||||
* New Plugins
|
||||
* propertygrid: Allow users to edit property value in datagrid.
|
||||
|
||||
Version 1.2.2
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: Apply fitColumns cannot work fine while set checkbox column. fixed.
|
||||
* datagrid: The validateRow method cannot return boolean type value. fixed.
|
||||
* numberbox: Cannot fix value in chrome when min or max property isn't defined. fixed.
|
||||
* Improvement
|
||||
* menu: Add some crud methods.
|
||||
* combo: Add hasDownArrow property to determine whether to display the down arrow button.
|
||||
* tree: Supports inline editing.
|
||||
* calendar: Add some useful methods such as 'resize', 'moveTo' etc.
|
||||
* timespinner: Add some useful methods.
|
||||
* datebox: Refactoring based on combo and calendar plugin now.
|
||||
* datagrid: Allow users to change row style in some conditions.
|
||||
* datagrid: Users can use the footer row to display summary information.
|
||||
* New Plugins
|
||||
* datetimebox: Combines datebox with timespinner component.
|
||||
|
||||
Version 1.2.1
|
||||
-------------
|
||||
* Bug
|
||||
* easyloader: Some dependencies cannot be loaded by their order. fixed.
|
||||
* tree: The checkbox is setted incorrectly when removing a node. fixed.
|
||||
* dialog: The dialog layout incorrectly when 'closed' property is setted to true. fixed.
|
||||
* Improvement
|
||||
* parser: Add onComplete callback function that can indicate whether the parse action is complete.
|
||||
* menu: Add onClick callback function and some other methods.
|
||||
* tree: Add some useful methods.
|
||||
* tree: Drag and Drop feature is supported now.
|
||||
* tree: Add onContextMenu callback function.
|
||||
* tabs: Add onContextMenu callback function.
|
||||
* tabs: Add 'tools' property that can create buttons on right bar.
|
||||
* datagrid: Add onHeaderContextMenu and onRowContextMenu callback functions.
|
||||
* datagrid: Custom view is supported.
|
||||
* treegrid: Add onContextMenu callback function and append,remove methods.
|
||||
|
||||
Version 1.2
|
||||
-------------
|
||||
* Improvement
|
||||
* tree: Add cascadeCheck,onlyLeafCheck properties and select event.
|
||||
* combobox: Enable multiple selection.
|
||||
* combotree: Enable multiple selection.
|
||||
* tabs: Remember the trace of selection, when current tab panel is closed, the previous selected tab will be selected.
|
||||
* datagrid: Extend from panel, so many properties defined in panel can be used for datagrid.
|
||||
* New Plugins
|
||||
* treegrid: Represent tabular data in hierarchical view, combines tree view and datagrid.
|
||||
* combo: The basic component that allow user to extend their combo component such as combobox,combotree,etc.
|
||||
* combogrid: Combines combobox with drop-down datagrid component.
|
||||
* spinner: The basic plugin to create numberspinner,timespinner,etc.
|
||||
* numberspinner: The numberbox that allow user to change value by clicking up and down spin buttons.
|
||||
* timespinner: The time selector that allow user to quickly inc/dec a time.
|
||||
|
||||
Version 1.1.2
|
||||
-------------
|
||||
* Bug
|
||||
* messager: When call show method in layout, the message window will be blocked. fixed.
|
||||
* Improvement
|
||||
* datagrid: Add validateRow method, remember the current editing row status when do editing action.
|
||||
* datagrid: Add the ability to create merged cells.
|
||||
* form: Add callback functions when loading data.
|
||||
* panel,window,dialog: Add maximize,minimize,restore,collapse,expand methods.
|
||||
* panel,tabs,accordion: The lazy loading feature is supported.
|
||||
* tabs: Add getSelected,update,getTab methods.
|
||||
* accordion: Add crud methods.
|
||||
* linkbutton: Accept an id option to set the id attribute.
|
||||
* tree: Enhance tree node operation.
|
||||
|
||||
Version 1.1.1
|
||||
-------------
|
||||
* Bug
|
||||
* form: Cannot clear the value of combobox and combotree component. fixed.
|
||||
* Improvement
|
||||
* tree: Add some useful methods such as 'getRoot','getChildren','update',etc.
|
||||
* datagrid: Add editable feature, improve performance while loading data.
|
||||
* datebox: Add destroy method.
|
||||
* combobox: Add destroy and clear method.
|
||||
* combotree: Add destroy and clear method.
|
||||
|
||||
Version 1.1
|
||||
-------------
|
||||
* Bug
|
||||
* messager: When call show method with timeout property setted, an error occurs while clicking the close button. fixed.
|
||||
* combobox: The editable property of combobox plugin is invalid. fixed.
|
||||
* window: The proxy box will not be removed when dragging or resizing exceed browser border in ie. fixed.
|
||||
* Improvement
|
||||
* menu: The menu item can use <a> markup to display a different page.
|
||||
* tree: The tree node can use <a> markup to act as a tree menu.
|
||||
* pagination: Add some event on refresh button and page list.
|
||||
* datagrid: Add a 'param' parameter for reload method, with which users can pass query parameter when reload data.
|
||||
* numberbox: Add required validation support, the usage is same as validatebox plugin.
|
||||
* combobox: Add required validation support.
|
||||
* combotree: Add required validation support.
|
||||
* layout: Add some method that can get a region panel and attach event handlers.
|
||||
* New Plugins
|
||||
* droppable: A droppable plugin that supports drag drop operation.
|
||||
* calendar: A calendar plugin that can either be embedded within a page or popup.
|
||||
* datebox: Combines a textbox with a calendar that let users to select date.
|
||||
* easyloader: A JavaScript loader that allows you to load plugin and their dependencies into your page.
|
||||
|
||||
Version 1.0.5
|
||||
* Bug
|
||||
* panel: The fit property of panel performs incorrectly. fixed.
|
||||
* Improvement
|
||||
* menu: Add a href attribute for menu item, with which user can display a different page in the current browser window.
|
||||
* form: Add a validate method to do validation for validatebox component.
|
||||
* dialog: The dialog can read collapsible,minimizable,maximizable and resizable attribute from markup.
|
||||
* New Plugins
|
||||
* validatebox: A validation plugin that checks to make sure the user's input value is valid.
|
||||
|
||||
Version 1.0.4
|
||||
-------------
|
||||
* Bug
|
||||
* panel: When panel is invisible, it is abnormal when resized. fixed.
|
||||
* panel: Memory leak in method 'destroy'. fixed.
|
||||
* messager: Memory leak when messager box is closed. fixed.
|
||||
* dialog: No onLoad event occurs when loading remote data. fixed.
|
||||
* Improvement
|
||||
* panel: Add method 'setTitle'.
|
||||
* window: Add method 'setTitle'.
|
||||
* dialog: Add method 'setTitle'.
|
||||
* combotree: Add method 'getValue'.
|
||||
* combobox: Add method 'getValue'.
|
||||
* form: The 'load' method can load data and fill combobox and combotree field correctly.
|
||||
|
||||
Version 1.0.3
|
||||
-------------
|
||||
* Bug
|
||||
* menu: When menu is show in a DIV container, it will be cropped. fixed.
|
||||
* layout: If you collpase a region panel and then expand it immediately, the region panel will not show normally. fixed.
|
||||
* accordion: If no panel selected then the first one will become selected and the first panel's body height will not set correctly. fixed.
|
||||
* Improvement
|
||||
* tree: Add some methods to support CRUD operation.
|
||||
* datagrid: Toolbar can accept a new property named 'disabled' to disable the specified tool button.
|
||||
* New Plugins
|
||||
* combobox: Combines a textbox with a list of options that users are able to choose from.
|
||||
* combotree: Combines combobox with drop-down tree component.
|
||||
* numberbox: Make input element can only enter number char.
|
||||
* dialog: rewrite the dialog plugin, dialog can contains toolbar and buttons.
|
||||
Version 1.4.4
|
||||
-------------
|
||||
* Bug
|
||||
* filebox: The 'clear' and 'reset' methods do not work properly in IE9. fixed.
|
||||
* messager: After calling $.messager.progress() with no arguments, the $.messager.progress('close') does not work properly. fixed.
|
||||
* timespinner: The value does not display properly in IE8 while clicking the spin buttons. fixed.
|
||||
* window: The window does not display when calling 'options' method in 'onMove' event. fixed.
|
||||
* treegrid: The 'getLevel' method does not accept the parameter value of 0. fixed.
|
||||
* Improvement
|
||||
* layout: The 'collapsedContent','expandMode' and 'hideExpandTool' properties are supported in region panel.
|
||||
* layout: The 'hideCollapsedContent' property can be set to display the vertical title bar on collapsed panel.
|
||||
* layout: Add 'onCollapse','onExpand','onAdd','onRemove' events.
|
||||
* datagrid: Display the 'up-down' icon on the sortable columns.
|
||||
* datagrid: Add 'gotoPage' method.
|
||||
* propertygrid: Add 'groups' method that allows to get all the data groups.
|
||||
* messager: Auto scroll feature is supported when displaying long messages.
|
||||
* tabs: The 'disabled' property is supported when defining a disabled tab panel.
|
||||
* tabs: The percentange size is supported now.
|
||||
|
||||
Version 1.4.3
|
||||
-------------
|
||||
* Bug
|
||||
* textbox: The 'setText' method does not accept value 0. fixed.
|
||||
* timespinner: When running in IE11, the error occurs when clicking on the empty textbox. fixed.
|
||||
* tabs: The 'update' method can not update only the panel body. fixed.
|
||||
* Improvement
|
||||
* combobox: Improve the performance of displaying the drop-down panel.
|
||||
* combogrid: Remember the displaying text when the drop-down datagrid go to other pages.
|
||||
* combogrid: The 'setValue' and 'setValues' methods accept a key-value object.
|
||||
* window: The inline window's mask can auto-stretch its size to fill parent container.
|
||||
* tabs: The 'showTool' and 'hideTool' methods are available for users to show or hide the tools.
|
||||
* layout: Allow the user to override the 'cls','headerCls' and 'bodyCls' property values.
|
||||
* New Plugins
|
||||
* switchbutton: The switch button with two states:'on' and 'off'.
|
||||
|
||||
Version 1.4.2
|
||||
-------------
|
||||
* Bug
|
||||
* treegrid: The column will restore its size to original size after recreating the treegrid. fixed.
|
||||
* Improvement
|
||||
* draggable: Add 'delay' property that allows the user to delay the drag operation.
|
||||
* tree: Add 'filter' property and 'doFilter' method.
|
||||
* tabs: The 'add' method allows the user to insert a tab panel at a specified index.
|
||||
* tabs: The user can determine what tab panel can be selected.
|
||||
* tabs: Add 'justified' and 'narrow' properties.
|
||||
* layout: Add 'unsplit' and 'split' methods.
|
||||
* messager: Keyboard navigation features are supported now.
|
||||
* form: Add 'onChange' event.
|
||||
* combobox: Add 'queryParams' property.
|
||||
* slider: Add 'range' property.
|
||||
* menu: Add 'itemHeight','inline','noline' properties.
|
||||
* panel: The 'header' property allows the user to customize the panel header.
|
||||
* menubutton: Add 'hasDownArrow' property.
|
||||
* New Plugins
|
||||
* datalist: The plugin to render items in a list.
|
||||
* navpanel: The root component for the mobile page.
|
||||
* mobile: The plugin to provide the mobile page stack management and navigation.
|
||||
|
||||
Version 1.4.1
|
||||
-------------
|
||||
* Bug
|
||||
* combogrid: The combogrid has different height than other combo components. fixed.
|
||||
* datagrid: The row element loses some class style value after calling 'updateRow' method. fixed.
|
||||
* menubutton: Calling 'enable' method on a disabled button can not work well. fixed.
|
||||
* form: The filebox components in the form do not work correctly after calling 'clear' method. fixed.
|
||||
* Improvement
|
||||
* tabs: The 'update' method accepts 'type' option that allows the user to update the header,body,or both.
|
||||
* panel: Add 'openAnimation','openDuration','closeAnimation' and 'closeDuration' properties to set the animation for opening or closing a panel.
|
||||
* panel: Add 'footer' property that allows the user to add a footer bar to the bottom of panel.
|
||||
* datagrid: Calling 'endEdit' method will accept the editing value correctly.
|
||||
* datagrid: Add 'onBeforeSelect','onBeforeCheck','onBeforeUnselect','onBeforeUncheck' events.
|
||||
* propertygrid: The user can edit a row by calling 'beginEdit' method.
|
||||
* datebox: Add 'cloneFrom' method to create the datebox component quickly.
|
||||
* datetimebox: Add 'cloneFrom' method to create the datetimebox component quickly.
|
||||
|
||||
Version 1.4
|
||||
-------------
|
||||
* Bug
|
||||
* menu: The menu should not has a correct height when removed a menu item. fixed.
|
||||
* datagrid: The 'fitColumns' method does not work normally when the datarid width is too small. fixed.
|
||||
* Improvement
|
||||
* The fluid/percentange size is supported now for all easyui components.
|
||||
* menu: Add 'showItem', 'hideItem' and 'resize' methods.
|
||||
* menu: Auto resize the height upon the window size.
|
||||
* menu: Add 'duration' property that allows the user to define duration time in milliseconds to hide menu.
|
||||
* validatebox: Add 'onBeforeValidate' and 'onValidate' events.
|
||||
* combo: Extended from textbox now.
|
||||
* combo: Add 'panelMinWidth','panelMaxWidth','panelMinHeight' and 'panelMaxHeight' properties.
|
||||
* searchbox: Extended from textbox now.
|
||||
* tree: The 'getRoot' method will return the top parent node of a specified node if pass a 'nodeEl' parameter.
|
||||
* tree: Add 'queryParams' property.
|
||||
* datetimebox: Add 'spinnerWidth' property.
|
||||
* panel: Add 'doLayout' method to cause the panel to lay out its components.
|
||||
* panel: Add 'clear' method to clear the panel's content.
|
||||
* datagrid: The user is allowed to assign percent width to columns.
|
||||
* form: Add 'ajax','novalidate' and 'queryParams' properties.
|
||||
* linkbutton: Add 'resize' method.
|
||||
* New Plugins
|
||||
* textbox: A enhanced input field that allows users build their form easily.
|
||||
* datetimespinner: A date and time spinner that allows to pick a specific day.
|
||||
* filebox: The filebox component represents a file field of the forms.
|
||||
|
||||
Version 1.3.6
|
||||
-------------
|
||||
* Bug
|
||||
* treegrid: The 'getChecked' method can not return correct checked rows. fixed.
|
||||
* tree: The checkbox does not display properly on async tree when 'onlyLeafCheck' property is true. fixed.
|
||||
* Improvement
|
||||
* treegrid: All the selecting and checking methods are extended from datagrid component.
|
||||
* linkbutton: The icon alignment is fully supported, possible values are: 'top','bottom','left','right'.
|
||||
* linkbutton: Add 'size' property, possible values are: 'small','large'.
|
||||
* linkbutton: Add 'onClick' event.
|
||||
* menubutton: Add 'menuAlign' property that allows the user set top level menu alignment.
|
||||
* combo: Add 'panelAlign' property, possible values are: 'left','right'.
|
||||
* calendar: The 'formatter','styler' and 'validator' options are available to custom the calendar dates.
|
||||
* calendar: Add 'onChange' event.
|
||||
* panel: Add 'method','queryParams' and 'loader' options.
|
||||
* panel: Add 'onLoadError' event.
|
||||
* datagrid: Add 'onBeginEdit' event that fires when a row goes into edit mode.
|
||||
* datagrid: Add 'onEndEdit' event that fires when finishing editing but before destroying editors.
|
||||
* datagrid: Add 'sort' method and 'onBeforeSortColumn' event.
|
||||
* datagrid: The 'combogrid' editor has been integrated into datagrid.
|
||||
* datagrid: Add 'ctrlSelect' property that only allows multi-selection when ctrl+click is used.
|
||||
* slider: Add 'converter' option that allows users determine how to convert a value to the slider position or the slider position to the value.
|
||||
* searchbox: Add 'disabled' property.
|
||||
* searchbox: Add 'disable','enable','clear','reset' methods.
|
||||
* spinner: Add 'readonly' property, 'readonly' method and 'onChange' event.
|
||||
|
||||
Version 1.3.5
|
||||
-------------
|
||||
* Bug
|
||||
* searchbox: The 'searcher' function can not offer 'name' parameter value correctly. fixed.
|
||||
* combo: The 'isValid' method can not return boolean value. fixed.
|
||||
* combo: Clicking combo will trigger the 'onHidePanel' event of other combo components that have hidden drop-down panels. fixed.
|
||||
* combogrid: Some methods can not inherit from combo. fixed.
|
||||
* Improvement
|
||||
* datagrid: Improve performance on checking rows.
|
||||
* menu: Allows to append a menu separator.
|
||||
* menu: Add 'hideOnUnhover' property to indicate if the menu should be hidden when mouse exits it.
|
||||
* slider: Add 'clear' and 'reset' methods.
|
||||
* tabs: Add 'unselect' method that will trigger 'onUnselect' event.
|
||||
* tabs: Add 'selected' property to specify what tab panel will be opened.
|
||||
* tabs: The 'collapsible' property of tab panel is supported to determine if the tab panel can be collapsed.
|
||||
* tabs: Add 'showHeader' property, 'showHeader' and 'hideHeader' methods.
|
||||
* combobox: The 'disabled' property can be used to disable some items.
|
||||
* tree: Improve loading performance.
|
||||
* pagination: The 'layout' property can be used to customize the pagination layout.
|
||||
* accordion: Add 'unselect' method that will trigger 'onUnselect' event.
|
||||
* accordion: Add 'selected' and 'multiple' properties.
|
||||
* accordion: Add 'getSelections' method.
|
||||
* datebox: Add 'sharedCalendar' property that allows multiple datebox components share one calendar component.
|
||||
|
||||
Version 1.3.4
|
||||
-------------
|
||||
* Bug
|
||||
* combobox: The onLoadSuccess event fires when parsing empty local data. fixed.
|
||||
* form: Calling 'reset' method can not reset datebox field. fixed.
|
||||
* Improvement
|
||||
* mobile: The context menu and double click features are supported on mobile devices.
|
||||
* combobox: The 'groupField' and 'groupFormatter' options are available to display items in groups.
|
||||
* tree: When append or insert nodes, the 'data' parameter accepts one or more nodes data.
|
||||
* tree: The 'getChecked' method accepts a single 'state' or an array of 'state'.
|
||||
* tree: Add 'scrollTo' method.
|
||||
* datagrid: The 'multiSort' property is added to support multiple column sorting.
|
||||
* datagrid: The 'rowStyler' and column 'styler' can return CSS class name or inline styles.
|
||||
* treegrid: Add 'load' method to load data and navigate to the first page.
|
||||
* tabs: Add 'tabWidth' and 'tabHeight' properties.
|
||||
* validatebox: The 'novalidate' property is available to indicate whether to perform the validation.
|
||||
* validatebox: Add 'enableValidation' and 'disableValidation' methods.
|
||||
* form: Add 'enableValidation' and 'disableValidation' methods.
|
||||
* slider: Add 'onComplete' event.
|
||||
* pagination: The 'buttons' property accepts the existing element.
|
||||
|
||||
Version 1.3.3
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: Some style features are not supported by column styler function. fixed.
|
||||
* datagrid: IE 31 stylesheet limit. fixed.
|
||||
* treegrid: Some style features are not supported by column styler function. fixed.
|
||||
* menu: The auto width of menu item displays incorrect in ie6. fixed.
|
||||
* combo: The 'onHidePanel' event can not fire when clicked outside the combo area. fixed.
|
||||
* Improvement
|
||||
* datagrid: Add 'scrollTo' and 'highlightRow' methods.
|
||||
* treegrid: Enable treegrid to parse data from <tbody> element.
|
||||
* combo: Add 'selectOnNavigation' and 'readonly' options.
|
||||
* combobox: Add 'loadFilter' option to allow users to change data format before loading into combobox.
|
||||
* tree: Add 'onBeforeDrop' callback event.
|
||||
* validatebox: Dependent on tooltip plugin now, add 'deltaX' property.
|
||||
* numberbox: The 'filter' options can be used to determine if the key pressed was accepted.
|
||||
* linkbutton: The group button is available.
|
||||
* layout: The 'minWidth','maxWidth','minHeight','maxHeight' and 'collapsible' properties are available for region panel.
|
||||
* New Plugins
|
||||
* tooltip: Display a popup message when moving mouse over an element.
|
||||
|
||||
Version 1.3.2
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: The loading message window can not be centered when changing the width of datagrid. fixed.
|
||||
* treegrid: The 'mergeCells' method can not work normally. fixed.
|
||||
* propertygrid: Calling 'endEdit' method to stop editing a row will cause errors. fixed.
|
||||
* tree: Can not load empty data when 'lines' property set to true. fixed.
|
||||
* Improvement
|
||||
* RTL feature is supported now.
|
||||
* tabs: Add 'scrollBy' method to scroll the tab header by the specified amount of pixels
|
||||
* tabs: Add 'toolPosition' property to set tab tools to left or right.
|
||||
* tabs: Add 'tabPosition' property to define the tab position, possible values are: 'top','bottom','left','right'.
|
||||
* datagrid: Add a column level property 'order' that allows users to define different default sort order per column.
|
||||
* datagrid: Add a column level property 'halign' that allows users to define how to align the column header.
|
||||
* datagrid: Add 'resizeHandle' property to define the resizing column position, by grabbing the left or right edge of the column.
|
||||
* datagrid: Add 'freezeRow' method to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.
|
||||
* datagrid: Add 'clearChecked' method to clear all checked records.
|
||||
* datagrid: Add 'data' property to initialize the datagrid data.
|
||||
* linkbutton: Add 'iconAlgin' property to define the icon position, supported values are: 'left','right'.
|
||||
* menu: Add 'minWidth' property.
|
||||
* menu: The menu width can be automatically calculated.
|
||||
* tree: New events are available including 'onBeforeDrag','onStartDrag','onDragEnter','onDragOver','onDragLeave',etc.
|
||||
* combo: Add 'height' property to allow users to define the height of combo.
|
||||
* combo: Add 'reset' method.
|
||||
* numberbox: Add 'reset' method.
|
||||
* spinner: Add 'reset' method.
|
||||
* spinner: Add 'height' property to allow users to define the height of spinner.
|
||||
* searchbox: Add 'height' property to allow users to define the height of searchbox.
|
||||
* form: Add 'reset' method.
|
||||
* validatebox: Add 'delay' property to delay validating from the last inputting value.
|
||||
* validatebox: Add 'tipPosition' property to define the tip position, supported values are: 'left','right'.
|
||||
* validatebox: Multiple validate rules on a field is supported now.
|
||||
* slider: Add 'reversed' property to determine if the min value and max value will switch their positions.
|
||||
* progressbar: Add 'height' property to allow users to define the height of progressbar.
|
||||
|
||||
Version 1.3.1
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: Setting the 'pageNumber' property is not valid. fixed.
|
||||
* datagrid: The id attribute of rows isn't adjusted properly while calling 'insertRow' or 'deleteRow' method.
|
||||
* dialog: When load content from 'href', the script will run twice. fixed.
|
||||
* propertygrid: The editors that extended from combo can not accept its changed value. fixed.
|
||||
* Improvement
|
||||
* droppable: Add 'disabled' property.
|
||||
* droppable: Add 'options','enable' and 'disable' methods.
|
||||
* tabs: The tab panel tools can be changed by calling 'update' method.
|
||||
* messager: When show a message window, the user can define the window position by applying 'style' property.
|
||||
* window: Prevent script on window body from running twice.
|
||||
* window: Add 'hcenter','vcenter' and 'center' methods.
|
||||
* tree: Add 'onBeforeCheck' callback event.
|
||||
* tree: Extend the 'getChecked' method to allow users to get 'checked','unchecked' or 'indeterminate' nodes.
|
||||
* treegrid: Add 'update' method to update a specified node.
|
||||
* treegrid: Add 'insert' method to insert a new node.
|
||||
* treegrid: Add 'pop' method to remove a node and get the removed node data.
|
||||
|
||||
Version 1.3
|
||||
-----------
|
||||
* Bug
|
||||
* combogrid: When set to 'remote' query mode, the 'queryParams' parameters can't be sent to server. fixed.
|
||||
* combotree: The tree nodes on drop-down panel can not be unchecked while calling 'clear' method. fixed.
|
||||
* datetimebox: Setting 'showSeconds' property to false cannot hide seconds info. fixed.
|
||||
* datagrid: Calling 'mergeCells' method can't auto resize the merged cell while header is hidden. fixed.
|
||||
* dialog: Set cache to false and load data via ajax, the content cannot be refreshed. fixed.
|
||||
* Improvement
|
||||
* The HTML5 'data-options' attribute is available for components to declare all custom options, including properties and events.
|
||||
* More detailed documentation is available.
|
||||
* panel: Prevent script on panel body from running twice.
|
||||
* accordion: Add 'getPanelIndex' method.
|
||||
* accordion: The tools can be added on panel header.
|
||||
* datetimebox: Add 'timeSeparator' option that allows users to define the time separator.
|
||||
* pagination: Add 'refresh' and 'select' methods.
|
||||
* datagrid: Auto resize the column width to fit the contents when the column width is not defined.
|
||||
* datagrid: Double click on the right border of columns to auto resize the columns to the contents in the columns.
|
||||
* datagrid: Add 'autoSizeColumn' method that allows users to adjust the column width to fit the contents.
|
||||
* datagrid: Add 'getChecked' method to get all rows where the checkbox has been checked.
|
||||
* datagrid: Add 'selectOnCheck' and 'checkOnSelect' properties and some checking methods to enhance the row selections.
|
||||
* datagrid: Add 'pagePosition' property to allow users to display pager bar at either top,bottom or both places of the grid.
|
||||
* datagrid: The buffer view and virtual scroll view are supported to display large amounts of records without pagination.
|
||||
* tabs: Add 'disableTab' and 'enableTab' methods to allow users to disable or enable a tab panel.
|
||||
|
||||
Version 1.2.6
|
||||
-------------
|
||||
* Bug
|
||||
* tabs: Call 'add' method with 'selected:false' option, the added tab panel is always selected. fixed.
|
||||
* treegrid: The 'onSelect' and 'onUnselect' events can't be triggered. fixed.
|
||||
* treegrid: Cannot display zero value field. fixed.
|
||||
* Improvement
|
||||
* propertygrid: Add 'expandGroup' and 'collapseGroup' methods.
|
||||
* layout: Allow users to create collapsed layout panels by assigning 'collapsed' property to true.
|
||||
* layout: Add 'add' and 'remove' methods that allow users to dynamically add or remove region panel.
|
||||
* layout: Additional tool icons can be added on region panel header.
|
||||
* calendar: Add 'firstDay' option that allow users to set first day of week. Sunday is 0, Monday is 1, ...
|
||||
* tree: Add 'lines' option, true to display tree lines.
|
||||
* tree: Add 'loadFilter' option that allow users to change data format before loading into the tree.
|
||||
* tree: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* treegrid: Add 'onClickCell' and 'onDblClickCell' callback function options.
|
||||
* datagrid: Add 'autoRowHeight' property that allow users to determine if set the row height based on the contents of that row.
|
||||
* datagrid: Improve performance to load large data set.
|
||||
* datagrid: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* treegrid: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* combobox: Add 'onBeforeLoad' callback event function.
|
||||
* combobox: Add 'loader' option that allow users to define how to load data from remote server.
|
||||
* Add support for other loading mode such as dwr,xml,etc.
|
||||
* New Plugins
|
||||
* slider: Allows the user to choose a numeric value from a finite range.
|
||||
|
||||
Version 1.2.5
|
||||
-------------
|
||||
* Bug
|
||||
* tabs: When add a new tab panel with href property, the content page is loaded twice. fixed.
|
||||
* form: Failed to call 'load' method to load form input with complex name. fixed.
|
||||
* draggable: End drag in ie9, the cursor cannot be restored. fixed.
|
||||
* Improvement
|
||||
* panel: The tools can be defined via html markup.
|
||||
* tabs: Call 'close' method to close specified tab panel, users can pass tab title or index of tab panel. Other methods such 'select','getTab' and 'exists' are similar to 'close' method.
|
||||
* tabs: Add 'getTabIndex' method.
|
||||
* tabs: Users can define mini tools on tabs.
|
||||
* tree: The mouse must move a specified distance to begin drag and drop operation.
|
||||
* resizable: Add 'options','enable' and 'disable' methods.
|
||||
* numberbox: Allow users to change number format.
|
||||
* datagrid: The subgrid is supported now.
|
||||
* searchbox: Add 'selectName' method to select searching type name.
|
||||
|
||||
Version 1.2.4
|
||||
-------------
|
||||
* Bug
|
||||
* menu: The menu position is wrong when scroll bar appears. fixed.
|
||||
* accordion: Cannot display the default selected panel in jQuery 1.6.2. fixed.
|
||||
* tabs: Cannot display the default selected tab panel in jQuery 1.6.2. fixed.
|
||||
* Improvement
|
||||
* menu: Allow users to disable or enable menu item.
|
||||
* combo: Add 'delay' property to set the delay time to do searching from the last key input event.
|
||||
* treegrid: The 'getEditors' and 'getEditor' methods are supported now.
|
||||
* treegrid: The 'loadFilter' option is supported now.
|
||||
* messager: Add 'progress' method to display a message box with a progress bar.
|
||||
* panel: Add 'extractor' option to allow users to extract panel content from ajax response.
|
||||
* New Plugins
|
||||
* searchbox: Allow users to type words into box and do searching operation.
|
||||
* progressbar: To display the progress of a task.
|
||||
|
||||
Version 1.2.3
|
||||
-------------
|
||||
* Bug
|
||||
* window: Cannot resize the window with iframe content. fixed.
|
||||
* tree: The node will be removed when dragging to its child. fixed.
|
||||
* combogrid: The onChange event fires multiple times. fixed.
|
||||
* accordion: Cannot add batch new panels when animate property is set to true. fixed.
|
||||
* Improvement
|
||||
* treegrid: The footer row and row styler features are supported now.
|
||||
* treegrid: Add 'getLevel','reloadFooter','getFooterRows' methods.
|
||||
* treegrid: Support root nodes pagination and editable features.
|
||||
* datagrid: Add 'getFooterRows','reloadFooter','insertRow' methods and improve editing performance.
|
||||
* datagrid: Add 'loadFilter' option that allow users to change original source data to standard data format.
|
||||
* draggable: Add 'onBeforeDrag' callback event function.
|
||||
* validatebox: Add 'remote' validation type.
|
||||
* combobox: Add 'method' option.
|
||||
* New Plugins
|
||||
* propertygrid: Allow users to edit property value in datagrid.
|
||||
|
||||
Version 1.2.2
|
||||
-------------
|
||||
* Bug
|
||||
* datagrid: Apply fitColumns cannot work fine while set checkbox column. fixed.
|
||||
* datagrid: The validateRow method cannot return boolean type value. fixed.
|
||||
* numberbox: Cannot fix value in chrome when min or max property isn't defined. fixed.
|
||||
* Improvement
|
||||
* menu: Add some crud methods.
|
||||
* combo: Add hasDownArrow property to determine whether to display the down arrow button.
|
||||
* tree: Supports inline editing.
|
||||
* calendar: Add some useful methods such as 'resize', 'moveTo' etc.
|
||||
* timespinner: Add some useful methods.
|
||||
* datebox: Refactoring based on combo and calendar plugin now.
|
||||
* datagrid: Allow users to change row style in some conditions.
|
||||
* datagrid: Users can use the footer row to display summary information.
|
||||
* New Plugins
|
||||
* datetimebox: Combines datebox with timespinner component.
|
||||
|
||||
Version 1.2.1
|
||||
-------------
|
||||
* Bug
|
||||
* easyloader: Some dependencies cannot be loaded by their order. fixed.
|
||||
* tree: The checkbox is setted incorrectly when removing a node. fixed.
|
||||
* dialog: The dialog layout incorrectly when 'closed' property is setted to true. fixed.
|
||||
* Improvement
|
||||
* parser: Add onComplete callback function that can indicate whether the parse action is complete.
|
||||
* menu: Add onClick callback function and some other methods.
|
||||
* tree: Add some useful methods.
|
||||
* tree: Drag and Drop feature is supported now.
|
||||
* tree: Add onContextMenu callback function.
|
||||
* tabs: Add onContextMenu callback function.
|
||||
* tabs: Add 'tools' property that can create buttons on right bar.
|
||||
* datagrid: Add onHeaderContextMenu and onRowContextMenu callback functions.
|
||||
* datagrid: Custom view is supported.
|
||||
* treegrid: Add onContextMenu callback function and append,remove methods.
|
||||
|
||||
Version 1.2
|
||||
-------------
|
||||
* Improvement
|
||||
* tree: Add cascadeCheck,onlyLeafCheck properties and select event.
|
||||
* combobox: Enable multiple selection.
|
||||
* combotree: Enable multiple selection.
|
||||
* tabs: Remember the trace of selection, when current tab panel is closed, the previous selected tab will be selected.
|
||||
* datagrid: Extend from panel, so many properties defined in panel can be used for datagrid.
|
||||
* New Plugins
|
||||
* treegrid: Represent tabular data in hierarchical view, combines tree view and datagrid.
|
||||
* combo: The basic component that allow user to extend their combo component such as combobox,combotree,etc.
|
||||
* combogrid: Combines combobox with drop-down datagrid component.
|
||||
* spinner: The basic plugin to create numberspinner,timespinner,etc.
|
||||
* numberspinner: The numberbox that allow user to change value by clicking up and down spin buttons.
|
||||
* timespinner: The time selector that allow user to quickly inc/dec a time.
|
||||
|
||||
Version 1.1.2
|
||||
-------------
|
||||
* Bug
|
||||
* messager: When call show method in layout, the message window will be blocked. fixed.
|
||||
* Improvement
|
||||
* datagrid: Add validateRow method, remember the current editing row status when do editing action.
|
||||
* datagrid: Add the ability to create merged cells.
|
||||
* form: Add callback functions when loading data.
|
||||
* panel,window,dialog: Add maximize,minimize,restore,collapse,expand methods.
|
||||
* panel,tabs,accordion: The lazy loading feature is supported.
|
||||
* tabs: Add getSelected,update,getTab methods.
|
||||
* accordion: Add crud methods.
|
||||
* linkbutton: Accept an id option to set the id attribute.
|
||||
* tree: Enhance tree node operation.
|
||||
|
||||
Version 1.1.1
|
||||
-------------
|
||||
* Bug
|
||||
* form: Cannot clear the value of combobox and combotree component. fixed.
|
||||
* Improvement
|
||||
* tree: Add some useful methods such as 'getRoot','getChildren','update',etc.
|
||||
* datagrid: Add editable feature, improve performance while loading data.
|
||||
* datebox: Add destroy method.
|
||||
* combobox: Add destroy and clear method.
|
||||
* combotree: Add destroy and clear method.
|
||||
|
||||
Version 1.1
|
||||
-------------
|
||||
* Bug
|
||||
* messager: When call show method with timeout property setted, an error occurs while clicking the close button. fixed.
|
||||
* combobox: The editable property of combobox plugin is invalid. fixed.
|
||||
* window: The proxy box will not be removed when dragging or resizing exceed browser border in ie. fixed.
|
||||
* Improvement
|
||||
* menu: The menu item can use <a> markup to display a different page.
|
||||
* tree: The tree node can use <a> markup to act as a tree menu.
|
||||
* pagination: Add some event on refresh button and page list.
|
||||
* datagrid: Add a 'param' parameter for reload method, with which users can pass query parameter when reload data.
|
||||
* numberbox: Add required validation support, the usage is same as validatebox plugin.
|
||||
* combobox: Add required validation support.
|
||||
* combotree: Add required validation support.
|
||||
* layout: Add some method that can get a region panel and attach event handlers.
|
||||
* New Plugins
|
||||
* droppable: A droppable plugin that supports drag drop operation.
|
||||
* calendar: A calendar plugin that can either be embedded within a page or popup.
|
||||
* datebox: Combines a textbox with a calendar that let users to select date.
|
||||
* easyloader: A JavaScript loader that allows you to load plugin and their dependencies into your page.
|
||||
|
||||
Version 1.0.5
|
||||
* Bug
|
||||
* panel: The fit property of panel performs incorrectly. fixed.
|
||||
* Improvement
|
||||
* menu: Add a href attribute for menu item, with which user can display a different page in the current browser window.
|
||||
* form: Add a validate method to do validation for validatebox component.
|
||||
* dialog: The dialog can read collapsible,minimizable,maximizable and resizable attribute from markup.
|
||||
* New Plugins
|
||||
* validatebox: A validation plugin that checks to make sure the user's input value is valid.
|
||||
|
||||
Version 1.0.4
|
||||
-------------
|
||||
* Bug
|
||||
* panel: When panel is invisible, it is abnormal when resized. fixed.
|
||||
* panel: Memory leak in method 'destroy'. fixed.
|
||||
* messager: Memory leak when messager box is closed. fixed.
|
||||
* dialog: No onLoad event occurs when loading remote data. fixed.
|
||||
* Improvement
|
||||
* panel: Add method 'setTitle'.
|
||||
* window: Add method 'setTitle'.
|
||||
* dialog: Add method 'setTitle'.
|
||||
* combotree: Add method 'getValue'.
|
||||
* combobox: Add method 'getValue'.
|
||||
* form: The 'load' method can load data and fill combobox and combotree field correctly.
|
||||
|
||||
Version 1.0.3
|
||||
-------------
|
||||
* Bug
|
||||
* menu: When menu is show in a DIV container, it will be cropped. fixed.
|
||||
* layout: If you collpase a region panel and then expand it immediately, the region panel will not show normally. fixed.
|
||||
* accordion: If no panel selected then the first one will become selected and the first panel's body height will not set correctly. fixed.
|
||||
* Improvement
|
||||
* tree: Add some methods to support CRUD operation.
|
||||
* datagrid: Toolbar can accept a new property named 'disabled' to disable the specified tool button.
|
||||
* New Plugins
|
||||
* combobox: Combines a textbox with a list of options that users are able to choose from.
|
||||
* combotree: Combines combobox with drop-down tree component.
|
||||
* numberbox: Make input element can only enter number char.
|
||||
* dialog: rewrite the dialog plugin, dialog can contains toolbar and buttons.
|
||||
@@ -1,18 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>AJAX Content</title>
|
||||
</head>
|
||||
<body>
|
||||
<p style="font-size:14px">Here is the content loaded via AJAX.</p>
|
||||
<ul>
|
||||
<li>easyui is a collection of user-interface plugin based on jQuery.</li>
|
||||
<li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
|
||||
<li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
|
||||
<li>complete framework for HTML5 web page.</li>
|
||||
<li>easyui save your time and scales while developing your products.</li>
|
||||
<li>easyui is very easy but powerful.</li>
|
||||
</ul>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>AJAX Content</title>
|
||||
</head>
|
||||
<body>
|
||||
<p style="font-size:14px">Here is the content loaded via AJAX.</p>
|
||||
<ul>
|
||||
<li>easyui is a collection of user-interface plugin based on jQuery.</li>
|
||||
<li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
|
||||
<li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
|
||||
<li>complete framework for HTML5 web page.</li>
|
||||
<li>easyui save your time and scales while developing your products.</li>
|
||||
<li>easyui is very easy but powerful.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,104 +1,104 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Row Editing DataGrid - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<table id="dg" data-options="
|
||||
header:'#hh',
|
||||
iconCls: 'icon-edit',
|
||||
singleSelect: true,
|
||||
fit:true,
|
||||
fitColumns:true,
|
||||
border: false,
|
||||
scrollbarSize: 0,
|
||||
data: data,
|
||||
onClickRow: onClickRow
|
||||
">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-options="field:'itemid',width:80">Item ID</th>
|
||||
<th data-options="field:'productid',width:100,editor:'textbox'">Product</th>
|
||||
<th data-options="field:'listprice',width:80,align:'right',editor:{type:'numberbox',options:{precision:1}}">List Price</th>
|
||||
<th data-options="field:'unitcost',width:80,align:'right',editor:'numberbox'">Unit Cost</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div id="hh">
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Row Editing</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" onclick="removeit()"></a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-save',plain:true" onclick="accept()"></a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-undo',plain:true" onclick="reject()"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var data = [
|
||||
{"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
|
||||
{"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
|
||||
{"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
|
||||
{"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
|
||||
];
|
||||
$(function(){
|
||||
$('#dg').datagrid({
|
||||
data: data
|
||||
});
|
||||
});
|
||||
|
||||
var editIndex = undefined;
|
||||
function endEditing(){
|
||||
if (editIndex == undefined){return true}
|
||||
if ($('#dg').datagrid('validateRow', editIndex)){
|
||||
$('#dg').datagrid('endEdit', editIndex);
|
||||
editIndex = undefined;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function onClickRow(index){
|
||||
if (editIndex != index){
|
||||
if (endEditing()){
|
||||
$('#dg').datagrid('selectRow', index)
|
||||
.datagrid('beginEdit', index);
|
||||
editIndex = index;
|
||||
} else {
|
||||
$('#dg').datagrid('selectRow', editIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
function removeit(){
|
||||
if (editIndex == undefined){return}
|
||||
$('#dg').datagrid('cancelEdit', editIndex)
|
||||
.datagrid('deleteRow', editIndex);
|
||||
editIndex = undefined;
|
||||
}
|
||||
function accept(){
|
||||
if (endEditing()){
|
||||
$('#dg').datagrid('acceptChanges');
|
||||
}
|
||||
}
|
||||
function reject(){
|
||||
$('#dg').datagrid('rejectChanges');
|
||||
editIndex = undefined;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Row Editing DataGrid - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<table id="dg" data-options="
|
||||
header:'#hh',
|
||||
iconCls: 'icon-edit',
|
||||
singleSelect: true,
|
||||
fit:true,
|
||||
fitColumns:true,
|
||||
border: false,
|
||||
scrollbarSize: 0,
|
||||
data: data,
|
||||
onClickRow: onClickRow
|
||||
">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-options="field:'itemid',width:80">Item ID</th>
|
||||
<th data-options="field:'productid',width:100,editor:'textbox'">Product</th>
|
||||
<th data-options="field:'listprice',width:80,align:'right',editor:{type:'numberbox',options:{precision:1}}">List Price</th>
|
||||
<th data-options="field:'unitcost',width:80,align:'right',editor:'numberbox'">Unit Cost</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<div id="hh">
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Row Editing</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" onclick="removeit()"></a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-save',plain:true" onclick="accept()"></a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-undo',plain:true" onclick="reject()"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var data = [
|
||||
{"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
|
||||
{"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
|
||||
{"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
|
||||
{"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
|
||||
];
|
||||
$(function(){
|
||||
$('#dg').datagrid({
|
||||
data: data
|
||||
});
|
||||
});
|
||||
|
||||
var editIndex = undefined;
|
||||
function endEditing(){
|
||||
if (editIndex == undefined){return true}
|
||||
if ($('#dg').datagrid('validateRow', editIndex)){
|
||||
$('#dg').datagrid('endEdit', editIndex);
|
||||
editIndex = undefined;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function onClickRow(index){
|
||||
if (editIndex != index){
|
||||
if (endEditing()){
|
||||
$('#dg').datagrid('selectRow', index)
|
||||
.datagrid('beginEdit', index);
|
||||
editIndex = index;
|
||||
} else {
|
||||
$('#dg').datagrid('selectRow', editIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
function removeit(){
|
||||
if (editIndex == undefined){return}
|
||||
$('#dg').datagrid('cancelEdit', editIndex)
|
||||
.datagrid('deleteRow', editIndex);
|
||||
editIndex = undefined;
|
||||
}
|
||||
function accept(){
|
||||
if (endEditing()){
|
||||
$('#dg').datagrid('acceptChanges');
|
||||
}
|
||||
}
|
||||
function reject(){
|
||||
$('#dg').datagrid('rejectChanges');
|
||||
editIndex = undefined;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,46 +1,46 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Dialog - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="position:relative">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Dialog</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer>
|
||||
<div class="m-buttongroup m-buttongroup-justified" style="width:100%">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',size:'large',iconAlign:'top',plain:true">Picture</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-clipart',size:'large',iconAlign:'top',plain:true">Clip Art</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',size:'large',iconAlign:'top',plain:true">Shapes</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-smartart',size:'large',iconAlign:'top',plain:true">SmartArt</a>
|
||||
</div>
|
||||
</footer>
|
||||
<div style="text-align:center;margin:50px 30px">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:80px;height:30px" onclick="$('#dlg1').dialog('open').dialog('center')">Login</a>
|
||||
</div>
|
||||
|
||||
<div id="dlg1" class="easyui-dialog" style="padding:20px 6px;width:80%;" data-options="inline:true,modal:true,closed:true,title:'Login'">
|
||||
<div style="margin-bottom:10px">
|
||||
<input class="easyui-textbox" prompt="Username" style="width:100%;height:30px">
|
||||
</div>
|
||||
<div>
|
||||
<input class="easyui-textbox" type="password" prompt="Password" style="width:100%;height:30px">
|
||||
</div>
|
||||
<div class="dialog-button">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100%;height:35px" onclick="$('#dlg1').dialog('close')">Sign in</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Dialog - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="position:relative">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Dialog</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer>
|
||||
<div class="m-buttongroup m-buttongroup-justified" style="width:100%">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',size:'large',iconAlign:'top',plain:true">Picture</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-clipart',size:'large',iconAlign:'top',plain:true">Clip Art</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',size:'large',iconAlign:'top',plain:true">Shapes</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-smartart',size:'large',iconAlign:'top',plain:true">SmartArt</a>
|
||||
</div>
|
||||
</footer>
|
||||
<div style="text-align:center;margin:50px 30px">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:80px;height:30px" onclick="$('#dlg1').dialog('open').dialog('center')">Login</a>
|
||||
</div>
|
||||
|
||||
<div id="dlg1" class="easyui-dialog" style="padding:20px 6px;width:80%;" data-options="inline:true,modal:true,closed:true,title:'Login'">
|
||||
<div style="margin-bottom:10px">
|
||||
<input class="easyui-textbox" prompt="Username" style="width:100%;height:30px">
|
||||
</div>
|
||||
<div>
|
||||
<input class="easyui-textbox" type="password" prompt="Password" style="width:100%;height:30px">
|
||||
</div>
|
||||
<div class="dialog-button">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100%;height:35px" onclick="$('#dlg1').dialog('close')">Sign in</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,41 +1,41 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Message Dialog - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="position:relative">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Message Dialog</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer>
|
||||
<div class="m-buttongroup m-buttongroup-justified" style="width:100%;">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',size:'large',iconAlign:'top',plain:true">Picture</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-clipart',size:'large',iconAlign:'top',plain:true">Clip Art</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',size:'large',iconAlign:'top',plain:true">Shapes</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-smartart',size:'large',iconAlign:'top',plain:true">SmartArt</a>
|
||||
</div>
|
||||
</footer>
|
||||
<div style="text-align:center;margin:50px 30px">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:80px;height:30px" onclick="$('#dlg1').dialog('open').dialog('center')">Click me</a>
|
||||
</div>
|
||||
|
||||
<div id="dlg1" class="easyui-dialog" style="padding:20px 6px;width:80%;" data-options="inline:true,modal:true,closed:true,title:'Information'">
|
||||
<p>This is a message dialog.</p>
|
||||
<div class="dialog-button">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100%;height:35px" onclick="$('#dlg1').dialog('close')">OK</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Message Dialog - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="position:relative">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Message Dialog</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer>
|
||||
<div class="m-buttongroup m-buttongroup-justified" style="width:100%;">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',size:'large',iconAlign:'top',plain:true">Picture</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-clipart',size:'large',iconAlign:'top',plain:true">Clip Art</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',size:'large',iconAlign:'top',plain:true">Shapes</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-smartart',size:'large',iconAlign:'top',plain:true">SmartArt</a>
|
||||
</div>
|
||||
</footer>
|
||||
<div style="text-align:center;margin:50px 30px">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:80px;height:30px" onclick="$('#dlg1').dialog('open').dialog('center')">Click me</a>
|
||||
</div>
|
||||
|
||||
<div id="dlg1" class="easyui-dialog" style="padding:20px 6px;width:80%;" data-options="inline:true,modal:true,closed:true,title:'Information'">
|
||||
<p>This is a message dialog.</p>
|
||||
<div class="dialog-button">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100%;height:35px" onclick="$('#dlg1').dialog('close')">OK</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,54 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Form - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="position:relative;padding:20px">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Form</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="$('#ff').form('reset')" style="width:60px">Reset</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<form id="ff">
|
||||
<div>
|
||||
<label>Full name</label>
|
||||
<input class="easyui-textbox" prompt="Full name" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Birthday</label>
|
||||
<input class="easyui-datebox" prompt="Birthday" data-options="editable:false,panelWidth:220,panelHeight:240,iconWidth:30" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Password</label>
|
||||
<input class="easyui-textbox" type="password" prompt="Password" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Number</label>
|
||||
<input class="easyui-numberbox" prompt="Number" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Volumn</label>
|
||||
<input class="easyui-slider" value="10" style="width:100%">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<style scoped>
|
||||
form label{
|
||||
display: block;
|
||||
margin: 10px 0 5px 0;
|
||||
}
|
||||
</style>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Form - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="position:relative;padding:20px">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Form</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="$('#ff').form('reset')" style="width:60px">Reset</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<form id="ff">
|
||||
<div>
|
||||
<label>Full name</label>
|
||||
<input class="easyui-textbox" prompt="Full name" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Birthday</label>
|
||||
<input class="easyui-datebox" prompt="Birthday" data-options="editable:false,panelWidth:220,panelHeight:240,iconWidth:30" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Password</label>
|
||||
<input class="easyui-textbox" type="password" prompt="Password" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Number</label>
|
||||
<input class="easyui-numberbox" prompt="Number" style="width:100%">
|
||||
</div>
|
||||
<div>
|
||||
<label>Volumn</label>
|
||||
<input class="easyui-slider" value="10" style="width:100%">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<style scoped>
|
||||
form label{
|
||||
display: block;
|
||||
margin: 10px 0 5px 0;
|
||||
}
|
||||
</style>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 110 B After Width: | Height: | Size: 110 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@@ -1,32 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Layout - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Layout</div>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true">Back</a>
|
||||
</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" plain="true" outline="true">Search</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer style="padding:2px 3px">
|
||||
<input class="easyui-textbox" style="width:100%;height:32px;" data-options="prompt:'Type something here',buttonText:'<span style=\'padding:0 15px\'>Send</span>'">
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Layout - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Layout</div>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true">Back</a>
|
||||
</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" plain="true" outline="true">Search</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer style="padding:2px 3px">
|
||||
<input class="easyui-textbox" style="width:100%;height:32px;" data-options="prompt:'Type something here',buttonText:'<span style=\'padding:0 15px\'>Send</span>'">
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,39 +1,39 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Menu - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Menu</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true"></a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="iconCls:'icon-more',menu:'#mm',menuAlign:'right',hasDownArrow:false"></a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div id="mm" class="easyui-menu" style="width:150px;">
|
||||
<div data-options="iconCls:'icon-undo'">Undo</div>
|
||||
<div data-options="iconCls:'icon-redo'">Redo</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Cut</div>
|
||||
<div>Copy</div>
|
||||
<div>Paste</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Toolbar</div>
|
||||
<div data-options="iconCls:'icon-remove'">Delete</div>
|
||||
<div>Select All</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Menu - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Menu</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true"></a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="iconCls:'icon-more',menu:'#mm',menuAlign:'right',hasDownArrow:false"></a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div id="mm" class="easyui-menu" style="width:150px;">
|
||||
<div data-options="iconCls:'icon-undo'">Undo</div>
|
||||
<div data-options="iconCls:'icon-redo'">Redo</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Cut</div>
|
||||
<div>Copy</div>
|
||||
<div>Paste</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Toolbar</div>
|
||||
<div data-options="iconCls:'icon-remove'">Delete</div>
|
||||
<div>Select All</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,45 +1,45 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Menubar - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:70px">Home</a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="menu:'#mm1',iconCls:'icon-edit',outline:true" style="width:70px">Edit</a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="menu:'#mm2',iconCls:'icon-help',outline:true" style="width:75px">Help</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:70px">About</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div id="mm1" class="easyui-menu" style="width:150px;">
|
||||
<div data-options="iconCls:'icon-undo'">Undo</div>
|
||||
<div data-options="iconCls:'icon-redo'">Redo</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Cut</div>
|
||||
<div>Copy</div>
|
||||
<div>Paste</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Toolbar</div>
|
||||
<div data-options="iconCls:'icon-remove'">Delete</div>
|
||||
<div>Select All</div>
|
||||
</div>
|
||||
<div id="mm2" style="width:100px;">
|
||||
<div>Help</div>
|
||||
<div>Update</div>
|
||||
<div>About</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Menubar - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:70px">Home</a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="menu:'#mm1',iconCls:'icon-edit',outline:true" style="width:70px">Edit</a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="menu:'#mm2',iconCls:'icon-help',outline:true" style="width:75px">Help</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="plain:true,outline:true" style="width:70px">About</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
</div>
|
||||
<div id="mm1" class="easyui-menu" style="width:150px;">
|
||||
<div data-options="iconCls:'icon-undo'">Undo</div>
|
||||
<div data-options="iconCls:'icon-redo'">Redo</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Cut</div>
|
||||
<div>Copy</div>
|
||||
<div>Paste</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Toolbar</div>
|
||||
<div data-options="iconCls:'icon-remove'">Delete</div>
|
||||
<div>Select All</div>
|
||||
</div>
|
||||
<div id="mm2" style="width:100px;">
|
||||
<div>Help</div>
|
||||
<div>Update</div>
|
||||
<div>About</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,18 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>AJAX Content</title>
|
||||
</head>
|
||||
<body>
|
||||
<p style="font-size:14px">Here is the content loaded via AJAX.</p>
|
||||
<ul>
|
||||
<li>easyui is a collection of user-interface plugin based on jQuery.</li>
|
||||
<li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
|
||||
<li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
|
||||
<li>complete framework for HTML5 web page.</li>
|
||||
<li>easyui save your time and scales while developing your products.</li>
|
||||
<li>easyui is very easy but powerful.</li>
|
||||
</ul>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>AJAX Content</title>
|
||||
</head>
|
||||
<body>
|
||||
<p style="font-size:14px">Here is the content loaded via AJAX.</p>
|
||||
<ul>
|
||||
<li>easyui is a collection of user-interface plugin based on jQuery.</li>
|
||||
<li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
|
||||
<li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
|
||||
<li>complete framework for HTML5 web page.</li>
|
||||
<li>easyui save your time and scales while developing your products.</li>
|
||||
<li>easyui is very easy but powerful.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,39 +1,39 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Navigation Panel - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Navigation</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100px;height:30px" onclick="$.mobile.go('#p2')">Goto Panel2</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="p2" class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Panel2</div>
|
||||
<div class="m-left">
|
||||
<a href="#" class="easyui-linkbutton m-back" data-options="plain:true,outline:true,back:true">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="$.mobile.back()">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Navigation Panel - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Navigation</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100px;height:30px" onclick="$.mobile.go('#p2')">Goto Panel2</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="p2" class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Panel2</div>
|
||||
<div class="m-left">
|
||||
<a href="#" class="easyui-linkbutton m-back" data-options="plain:true,outline:true,back:true">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="$.mobile.back()">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,63 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Toolbar - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Toolbar</div>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true">Back</a>
|
||||
</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-next" plain="true" outline="true">Next</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<ul class="easyui-datalist" data-options="
|
||||
fit: true,
|
||||
lines: true,
|
||||
border: false,
|
||||
textFormatter: function(value){
|
||||
return '<a href\'javascript:void(0)\' class=\'datalist-link\'>' + value + '</a>';
|
||||
},
|
||||
onClickRow: function(index,row){
|
||||
$('#p2-title').html(row.text);
|
||||
$.mobile.go('#p2');
|
||||
}
|
||||
">
|
||||
<li>Large</li>
|
||||
<li>Spotted Adult Female</li>
|
||||
<li>Venomless</li>
|
||||
<li>Rattleless</li>
|
||||
<li>Green Adult</li>
|
||||
<li>Tailless</li>
|
||||
<li>With tail</li>
|
||||
<li>Adult Female</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="p2" class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<span id="p2-title" class="m-title">Detail</span>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true" style="width:50px" onclick="$.mobile.back()">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100px;height:30px" onclick="$.mobile.back()">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Toolbar - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Toolbar</div>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true">Back</a>
|
||||
</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-next" plain="true" outline="true">Next</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<ul class="easyui-datalist" data-options="
|
||||
fit: true,
|
||||
lines: true,
|
||||
border: false,
|
||||
textFormatter: function(value){
|
||||
return '<a href\'javascript:void(0)\' class=\'datalist-link\'>' + value + '</a>';
|
||||
},
|
||||
onClickRow: function(index,row){
|
||||
$('#p2-title').html(row.text);
|
||||
$.mobile.go('#p2');
|
||||
}
|
||||
">
|
||||
<li>Large</li>
|
||||
<li>Spotted Adult Female</li>
|
||||
<li>Venomless</li>
|
||||
<li>Rattleless</li>
|
||||
<li>Green Adult</li>
|
||||
<li>Tailless</li>
|
||||
<li>With tail</li>
|
||||
<li>Adult Female</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="p2" class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<span id="p2-title" class="m-title">Detail</span>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true" style="width:50px" onclick="$.mobile.back()">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100px;height:30px" onclick="$.mobile.back()">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,45 +1,45 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Toolbar Button - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Toolbar Button</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer>
|
||||
<div class="m-buttongroup m-buttongroup-justified" style="width:100%">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',size:'large',iconAlign:'top',plain:true">Picture</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-clipart',size:'large',iconAlign:'top',plain:true">Clip Art</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',size:'large',iconAlign:'top',plain:true">Shapes</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-smartart',size:'large',iconAlign:'top',plain:true">SmartArt</a>
|
||||
</div>
|
||||
</footer>
|
||||
<ul class="easyui-datalist" data-options="
|
||||
fit: true,
|
||||
lines: true,
|
||||
border: false
|
||||
">
|
||||
<li>Large</li>
|
||||
<li>Spotted Adult Female</li>
|
||||
<li>Venomless</li>
|
||||
<li>Rattleless</li>
|
||||
<li>Green Adult</li>
|
||||
<li>Tailless</li>
|
||||
<li>With tail</li>
|
||||
<li>Adult Female</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Toolbar Button - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Toolbar Button</div>
|
||||
</div>
|
||||
</header>
|
||||
<footer>
|
||||
<div class="m-buttongroup m-buttongroup-justified" style="width:100%">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-picture',size:'large',iconAlign:'top',plain:true">Picture</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-clipart',size:'large',iconAlign:'top',plain:true">Clip Art</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-shapes',size:'large',iconAlign:'top',plain:true">Shapes</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-large-smartart',size:'large',iconAlign:'top',plain:true">SmartArt</a>
|
||||
</div>
|
||||
</footer>
|
||||
<ul class="easyui-datalist" data-options="
|
||||
fit: true,
|
||||
lines: true,
|
||||
border: false
|
||||
">
|
||||
<li>Large</li>
|
||||
<li>Spotted Adult Female</li>
|
||||
<li>Venomless</li>
|
||||
<li>Rattleless</li>
|
||||
<li>Green Adult</li>
|
||||
<li>Tailless</li>
|
||||
<li>With tail</li>
|
||||
<li>Adult Female</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,76 +1,76 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Menu on Toolbar - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Menu on Toolbar</div>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-man',plain:true"></a>
|
||||
</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true"></a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="iconCls:'icon-more',plain:true,hasDownArrow:false,menu:'#mm',menuAlign:'right'"></a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div id="mm" class="easyui-menu" style="width:150px;" data-options="itemHeight:30,noline:true">
|
||||
<div data-options="iconCls:'icon-undo'">Undo</div>
|
||||
<div data-options="iconCls:'icon-redo'">Redo</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Cut</div>
|
||||
<div>Copy</div>
|
||||
<div>Paste</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Toolbar</div>
|
||||
<div data-options="iconCls:'icon-remove'">Delete</div>
|
||||
<div>Select All</div>
|
||||
</div>
|
||||
<ul class="easyui-datalist" data-options="
|
||||
fit: true,
|
||||
lines: true,
|
||||
border: false,
|
||||
textFormatter: function(value){
|
||||
return '<a href\'javascript:void(0)\' class=\'datalist-link\'>' + value + '</a>';
|
||||
},
|
||||
onClickRow: function(index,row){
|
||||
$('#p2-title').html(row.text);
|
||||
$.mobile.go('#p2');
|
||||
}
|
||||
">
|
||||
<li>Large</li>
|
||||
<li>Spotted Adult Female</li>
|
||||
<li>Venomless</li>
|
||||
<li>Rattleless</li>
|
||||
<li>Green Adult</li>
|
||||
<li>Tailless</li>
|
||||
<li>With tail</li>
|
||||
<li>Adult Female</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="p2" class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<span id="p2-title" class="m-title">Detail</span>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true" style="width:50px" onclick="$.mobile.back()">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100px;height:30px" onclick="$.mobile.back()">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Menu on Toolbar - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Menu on Toolbar</div>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-man',plain:true"></a>
|
||||
</div>
|
||||
<div class="m-right">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true"></a>
|
||||
<a href="javascript:void(0)" class="easyui-menubutton" data-options="iconCls:'icon-more',plain:true,hasDownArrow:false,menu:'#mm',menuAlign:'right'"></a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div id="mm" class="easyui-menu" style="width:150px;" data-options="itemHeight:30,noline:true">
|
||||
<div data-options="iconCls:'icon-undo'">Undo</div>
|
||||
<div data-options="iconCls:'icon-redo'">Redo</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Cut</div>
|
||||
<div>Copy</div>
|
||||
<div>Paste</div>
|
||||
<div class="menu-sep"></div>
|
||||
<div>Toolbar</div>
|
||||
<div data-options="iconCls:'icon-remove'">Delete</div>
|
||||
<div>Select All</div>
|
||||
</div>
|
||||
<ul class="easyui-datalist" data-options="
|
||||
fit: true,
|
||||
lines: true,
|
||||
border: false,
|
||||
textFormatter: function(value){
|
||||
return '<a href\'javascript:void(0)\' class=\'datalist-link\'>' + value + '</a>';
|
||||
},
|
||||
onClickRow: function(index,row){
|
||||
$('#p2-title').html(row.text);
|
||||
$.mobile.go('#p2');
|
||||
}
|
||||
">
|
||||
<li>Large</li>
|
||||
<li>Spotted Adult Female</li>
|
||||
<li>Venomless</li>
|
||||
<li>Rattleless</li>
|
||||
<li>Green Adult</li>
|
||||
<li>Tailless</li>
|
||||
<li>With tail</li>
|
||||
<li>Adult Female</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="p2" class="easyui-navpanel">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<span id="p2-title" class="m-title">Detail</span>
|
||||
<div class="m-left">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton m-back" plain="true" outline="true" style="width:50px" onclick="$.mobile.back()">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div style="margin:50px 0 0;text-align:center">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100px;height:30px" onclick="$.mobile.back()">Go Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,56 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Tree - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="padding:10px">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Tree</div>
|
||||
</div>
|
||||
</header>
|
||||
<ul class="easyui-tree" data-options="animate:true">
|
||||
<li>
|
||||
<span>My Documents</span>
|
||||
<ul>
|
||||
<li data-options="state:'closed'">
|
||||
<span>Photos</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span>Friend</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Wife</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Company</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span>Program Files</span>
|
||||
<ul>
|
||||
<li>Intel</li>
|
||||
<li>Java</li>
|
||||
<li>Microsoft Office</li>
|
||||
<li>Games</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>index.html</li>
|
||||
<li>about.html</li>
|
||||
<li>welcome.html</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Basic Tree - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="padding:10px">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Basic Tree</div>
|
||||
</div>
|
||||
</header>
|
||||
<ul class="easyui-tree" data-options="animate:true">
|
||||
<li>
|
||||
<span>My Documents</span>
|
||||
<ul>
|
||||
<li data-options="state:'closed'">
|
||||
<span>Photos</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span>Friend</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Wife</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Company</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span>Program Files</span>
|
||||
<ul>
|
||||
<li>Intel</li>
|
||||
<li>Java</li>
|
||||
<li>Microsoft Office</li>
|
||||
<li>Games</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>index.html</li>
|
||||
<li>about.html</li>
|
||||
<li>welcome.html</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,56 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Drag Drop Tree Nodes - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="padding:10px">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Drag Drop Tree Nodes</div>
|
||||
</div>
|
||||
</header>
|
||||
<ul class="easyui-tree" data-options="animate:true,dnd:true">
|
||||
<li>
|
||||
<span>My Documents</span>
|
||||
<ul>
|
||||
<li data-options="state:'closed'">
|
||||
<span>Photos</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span>Friend</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Wife</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Company</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span>Program Files</span>
|
||||
<ul>
|
||||
<li>Intel</li>
|
||||
<li>Java</li>
|
||||
<li>Microsoft Office</li>
|
||||
<li>Games</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>index.html</li>
|
||||
<li>about.html</li>
|
||||
<li>welcome.html</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>Drag Drop Tree Nodes - jQuery EasyUI Mobile Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/metro/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/mobile.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.mobile.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="easyui-navpanel" style="padding:10px">
|
||||
<header>
|
||||
<div class="m-toolbar">
|
||||
<div class="m-title">Drag Drop Tree Nodes</div>
|
||||
</div>
|
||||
</header>
|
||||
<ul class="easyui-tree" data-options="animate:true,dnd:true">
|
||||
<li>
|
||||
<span>My Documents</span>
|
||||
<ul>
|
||||
<li data-options="state:'closed'">
|
||||
<span>Photos</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span>Friend</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Wife</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>Company</span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span>Program Files</span>
|
||||
<ul>
|
||||
<li>Intel</li>
|
||||
<li>Java</li>
|
||||
<li>Microsoft Office</li>
|
||||
<li>Games</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>index.html</li>
|
||||
<li>about.html</li>
|
||||
<li>welcome.html</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,18 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>AJAX Content</title>
|
||||
</head>
|
||||
<body>
|
||||
<p style="font-size:14px">Here is the content loaded via AJAX.</p>
|
||||
<ul>
|
||||
<li>easyui is a collection of user-interface plugin based on jQuery.</li>
|
||||
<li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
|
||||
<li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
|
||||
<li>complete framework for HTML5 web page.</li>
|
||||
<li>easyui save your time and scales while developing your products.</li>
|
||||
<li>easyui is very easy but powerful.</li>
|
||||
</ul>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>AJAX Content</title>
|
||||
</head>
|
||||
<body>
|
||||
<p style="font-size:14px">Here is the content loaded via AJAX.</p>
|
||||
<ul>
|
||||
<li>easyui is a collection of user-interface plugin based on jQuery.</li>
|
||||
<li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
|
||||
<li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
|
||||
<li>complete framework for HTML5 web page.</li>
|
||||
<li>easyui save your time and scales while developing your products.</li>
|
||||
<li>easyui is very easy but powerful.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,51 +1,51 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Accordion Actions - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Accordion Actions</h2>
|
||||
<p>Click the buttons below to add or remove accordion items.</p>
|
||||
<div style="margin:20px 0 10px 0;">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="selectPanel()">Select</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="addPanel()">Add</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="removePanel()">Remove</a>
|
||||
</div>
|
||||
<div id="aa" class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="About" data-options="iconCls:'icon-ok'" style="overflow:auto;padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
function selectPanel(){
|
||||
$.messager.prompt('Prompt','Please enter the panel title:',function(s){
|
||||
if (s){
|
||||
$('#aa').accordion('select',s);
|
||||
}
|
||||
});
|
||||
}
|
||||
var idx = 1;
|
||||
function addPanel(){
|
||||
$('#aa').accordion('add',{
|
||||
title:'Title'+idx,
|
||||
content:'<div style="padding:10px">Content'+idx+'</div>'
|
||||
});
|
||||
idx++;
|
||||
}
|
||||
function removePanel(){
|
||||
var pp = $('#aa').accordion('getSelected');
|
||||
if (pp){
|
||||
var index = $('#aa').accordion('getPanelIndex',pp);
|
||||
$('#aa').accordion('remove',index);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Accordion Actions - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Accordion Actions</h2>
|
||||
<p>Click the buttons below to add or remove accordion items.</p>
|
||||
<div style="margin:20px 0 10px 0;">
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="selectPanel()">Select</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="addPanel()">Add</a>
|
||||
<a href="javascript:void(0)" class="easyui-linkbutton" onclick="removePanel()">Remove</a>
|
||||
</div>
|
||||
<div id="aa" class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="About" data-options="iconCls:'icon-ok'" style="overflow:auto;padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
function selectPanel(){
|
||||
$.messager.prompt('Prompt','Please enter the panel title:',function(s){
|
||||
if (s){
|
||||
$('#aa').accordion('select',s);
|
||||
}
|
||||
});
|
||||
}
|
||||
var idx = 1;
|
||||
function addPanel(){
|
||||
$('#aa').accordion('add',{
|
||||
title:'Title'+idx,
|
||||
content:'<div style="padding:10px">Content'+idx+'</div>'
|
||||
});
|
||||
idx++;
|
||||
}
|
||||
function removePanel(){
|
||||
var pp = $('#aa').accordion('getSelected');
|
||||
if (pp){
|
||||
var index = $('#aa').accordion('getPanelIndex',pp);
|
||||
$('#aa').accordion('remove',index);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,28 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Loading Accordion Content with AJAX - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Loading Accordion Content with AJAX</h2>
|
||||
<p>Click AJAX panel header to load content via AJAX.</p>
|
||||
<div style="margin:20px 0 10px 0;"></div>
|
||||
<div class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="About" data-options="iconCls:'icon-ok'" style="overflow:auto;padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
<div title="Help" data-options="iconCls:'icon-help'" style="padding:10px;">
|
||||
<p>The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.</p>
|
||||
</div>
|
||||
<div title="Ajax" data-options="href:'_content.html'" style="padding:10px">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Loading Accordion Content with AJAX - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Loading Accordion Content with AJAX</h2>
|
||||
<p>Click AJAX panel header to load content via AJAX.</p>
|
||||
<div style="margin:20px 0 10px 0;"></div>
|
||||
<div class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="About" data-options="iconCls:'icon-ok'" style="overflow:auto;padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
<div title="Help" data-options="iconCls:'icon-help'" style="padding:10px;">
|
||||
<p>The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.</p>
|
||||
</div>
|
||||
<div title="Ajax" data-options="href:'_content.html'" style="padding:10px">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,52 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Basic Accordion - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Basic Accordion</h2>
|
||||
<p>Click on panel header to show its content.</p>
|
||||
<div style="margin:20px 0 10px 0;"></div>
|
||||
<div class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="About" data-options="iconCls:'icon-ok'" style="overflow:auto;padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
<div title="Help" data-options="iconCls:'icon-help'" style="padding:10px;">
|
||||
<p>The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.</p>
|
||||
</div>
|
||||
<div title="TreeMenu" data-options="iconCls:'icon-search'" style="padding:10px;">
|
||||
<ul class="easyui-tree">
|
||||
<li>
|
||||
<span>Foods</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span>Fruits</span>
|
||||
<ul>
|
||||
<li>apple</li>
|
||||
<li>orange</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span>Vegetables</span>
|
||||
<ul>
|
||||
<li>tomato</li>
|
||||
<li>carrot</li>
|
||||
<li>cabbage</li>
|
||||
<li>potato</li>
|
||||
<li>lettuce</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Basic Accordion - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Basic Accordion</h2>
|
||||
<p>Click on panel header to show its content.</p>
|
||||
<div style="margin:20px 0 10px 0;"></div>
|
||||
<div class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="About" data-options="iconCls:'icon-ok'" style="overflow:auto;padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
<div title="Help" data-options="iconCls:'icon-help'" style="padding:10px;">
|
||||
<p>The accordion allows you to provide multiple panels and display one or more at a time. Each panel has built-in support for expanding and collapsing. Clicking on a panel header to expand or collapse that panel body. The panel content can be loaded via ajax by specifying a 'href' property. Users can define a panel to be selected. If it is not specified, then the first panel is taken by default.</p>
|
||||
</div>
|
||||
<div title="TreeMenu" data-options="iconCls:'icon-search'" style="padding:10px;">
|
||||
<ul class="easyui-tree">
|
||||
<li>
|
||||
<span>Foods</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span>Fruits</span>
|
||||
<ul>
|
||||
<li>apple</li>
|
||||
<li>orange</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<span>Vegetables</span>
|
||||
<ul>
|
||||
<li>tomato</li>
|
||||
<li>carrot</li>
|
||||
<li>cabbage</li>
|
||||
<li>potato</li>
|
||||
<li>lettuce</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,12 +1,12 @@
|
||||
{"total":28,"rows":[
|
||||
{"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
|
||||
{"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
|
||||
{"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
|
||||
{"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
|
||||
]}
|
||||
{"total":28,"rows":[
|
||||
{"productid":"FI-SW-01","productname":"Koi","unitcost":10.00,"status":"P","listprice":36.50,"attr1":"Large","itemid":"EST-1"},
|
||||
{"productid":"K9-DL-01","productname":"Dalmation","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-10"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":38.50,"attr1":"Venomless","itemid":"EST-11"},
|
||||
{"productid":"RP-SN-01","productname":"Rattlesnake","unitcost":12.00,"status":"P","listprice":26.50,"attr1":"Rattleless","itemid":"EST-12"},
|
||||
{"productid":"RP-LI-02","productname":"Iguana","unitcost":12.00,"status":"P","listprice":35.50,"attr1":"Green Adult","itemid":"EST-13"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":158.50,"attr1":"Tailless","itemid":"EST-14"},
|
||||
{"productid":"FL-DSH-01","productname":"Manx","unitcost":12.00,"status":"P","listprice":83.50,"attr1":"With tail","itemid":"EST-15"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"Adult Female","itemid":"EST-16"},
|
||||
{"productid":"FL-DLH-02","productname":"Persian","unitcost":12.00,"status":"P","listprice":89.50,"attr1":"Adult Male","itemid":"EST-17"},
|
||||
{"productid":"AV-CB-01","productname":"Amazon Parrot","unitcost":92.00,"status":"P","listprice":63.50,"attr1":"Adult Male","itemid":"EST-18"}
|
||||
]}
|
||||
@@ -1,33 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Keep Expandable Panel in Accordion - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Keep Expandable Panel in Accordion</h2>
|
||||
<p>Keep a expandable panel and prevent it from collapsing.</p>
|
||||
<div style="margin:20px 0 10px 0;"></div>
|
||||
<div class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="Top Panel" data-options="iconCls:'icon-search',collapsed:false,collapsible:false" style="padding:10px;">
|
||||
<input class="easyui-searchbox" prompt="Enter something here" style="width:300px;height:25px;">
|
||||
</div>
|
||||
<div title="About" data-options="selected:true" style="padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
<div title="Title1" style="padding:10px">
|
||||
<p>Content1</p>
|
||||
</div>
|
||||
<div title="Title2" style="padding:10px">
|
||||
<p>Content2</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Keep Expandable Panel in Accordion - jQuery EasyUI Demo</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
||||
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="../demo.css">
|
||||
<script type="text/javascript" src="../../jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h2>Keep Expandable Panel in Accordion</h2>
|
||||
<p>Keep a expandable panel and prevent it from collapsing.</p>
|
||||
<div style="margin:20px 0 10px 0;"></div>
|
||||
<div class="easyui-accordion" style="width:500px;height:300px;">
|
||||
<div title="Top Panel" data-options="iconCls:'icon-search',collapsed:false,collapsible:false" style="padding:10px;">
|
||||
<input class="easyui-searchbox" prompt="Enter something here" style="width:300px;height:25px;">
|
||||
</div>
|
||||
<div title="About" data-options="selected:true" style="padding:10px;">
|
||||
<h3 style="color:#0099FF;">Accordion for jQuery</h3>
|
||||
<p>Accordion is a part of easyui framework for jQuery. It lets you define your accordion component on web page more easily.</p>
|
||||
</div>
|
||||
<div title="Title1" style="padding:10px">
|
||||
<p>Content1</p>
|
||||
</div>
|
||||
<div title="Title2" style="padding:10px">
|
||||
<p>Content2</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||