projekte show simple tree view

This commit is contained in:
OpenXE 2025-01-27 12:58:09 +01:00
parent b4e429d00a
commit 806e1ed7a2
2 changed files with 55 additions and 18 deletions

View File

@ -31,15 +31,18 @@
<input type="text" size="30" name="abkuerzung" id="abkuerzung" value="[ABKUERZUNG]"> <input type="text" size="30" name="abkuerzung" id="abkuerzung" value="[ABKUERZUNG]">
</td> </td>
</tr> </tr>
<tr>
<td>Status:</td>
<td>
<select id="status" name="status"><option [STATUSGEPLANT]>geplant</option><option [STATUSGESTARTET]>gestartet</option><option [STATUSABGESCHLOSSEN]>abgeschlossen</option></select>
</td>
</tr>
<tr class="gruppebestehend"> <tr class="gruppebestehend">
<td>Kunde:</td> <td>Kunde:</td>
<td> <td>
<input type="text" size="30" name="kunde" id="kunde" value="[KUNDE]"> <input type="text" size="30" name="kunde" id="kunde" value="[KUNDE]">
</td> </td>
</tr> </tr>
<tr class="gruppeneu"> <tr class="gruppeneu">
<td>Verantwortlicher:</td> <td>Verantwortlicher:</td>
<td> <td>
@ -52,20 +55,17 @@
<input type="text" name="uebergeordnetes_projekt" id="uebergeordnetes_projekt" size="30" value="[UEBERGEORDNETES_PROJEKT]"><i>Für Nummernkreise</i> <input type="text" name="uebergeordnetes_projekt" id="uebergeordnetes_projekt" size="30" value="[UEBERGEORDNETES_PROJEKT]"><i>Für Nummernkreise</i>
</td> </td>
</tr> </tr>
<tr> <tr [PROJEKTBAUMHIDDEN]>
<td>Status:</td> <td>Struktur:</td>
<td> <td>
<select id="status" name="status"><option [STATUSGEPLANT]>geplant</option><option [STATUSGESTARTET]>gestartet</option><option [STATUSABGESCHLOSSEN]>abgeschlossen</option></select> <pre>[PROJEKTBAUM]</pre>
</td> </td>
</tr> </tr>
[FREIFELDER] [FREIFELDER]
</table> </table>
</fieldset> </fieldset>
</div> </div>
</div> </div>
<div class="col-xs-12 col-md-8 col-md-height"> <div class="col-xs-12 col-md-8 col-md-height">
<div class="inside inside-full-height"> <div class="inside inside-full-height">
<fieldset> <fieldset>
@ -84,15 +84,11 @@
<textarea name="sonstiges" id="sonstiges">[SONSTIGES]</textarea> <textarea name="sonstiges" id="sonstiges">[SONSTIGES]</textarea>
</td> </td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
</div> </div>
</div> </div>
</div>
</div>
</div> </div>
<table width="100%"><tr><td align="right"><input type="submit" value="Speichern" name="speichern"></td></tr></table> <table width="100%"><tr><td align="right"><input type="submit" value="Speichern" name="speichern"></td></tr></table>
</form> </form>

View File

@ -1884,7 +1884,6 @@ class Projekt extends GenProjekt {
$id = (int)$this->app->Secure->GetGET('id'); $id = (int)$this->app->Secure->GetGET('id');
$this->ProjektMenu(); $this->ProjektMenu();
$speichern = $this->app->Secure->GetPOST('speichern'); $speichern = $this->app->Secure->GetPOST('speichern');
if($speichern!='') if($speichern!='')
{ {
@ -1935,7 +1934,7 @@ class Projekt extends GenProjekt {
} }
$this->app->FormHandler->FormGetVars("projekt",$id); $this->app->FormHandler->FormGetVars("projekt",$id);
$data = $this->app->DB->SelectArr("SELECT CONCAT(a.kundennummer,' ',a.name) as kunde, CONCAT(a2.id,' ',a2.name) as mitarbeiter, status, uebergeordnetes_projekt FROM projekt p $data = $this->app->DB->SelectArr("SELECT CONCAT(a.kundennummer,' ',a.name) as kunde, CONCAT(a2.id,' ',a2.name) as mitarbeiter, status, uebergeordnetes_projekt, abkuerzung FROM projekt p
LEFT JOIN adresse a ON a.id=p.kunde LEFT JOIN adresse a2 ON a2.id=p.verantwortlicher WHERE p.id='$id' LIMIT 1"); LEFT JOIN adresse a ON a.id=p.kunde LEFT JOIN adresse a2 ON a2.id=p.verantwortlicher WHERE p.id='$id' LIMIT 1");
if(isset($data[0])) if(isset($data[0]))
{ {
@ -2044,6 +2043,48 @@ class Projekt extends GenProjekt {
$this->app->Tpl->Set("FREIFELDER",$output); $this->app->Tpl->Set("FREIFELDER",$output);
// Build simple tree view
$projekte = $this->app->DB->SelectArr("SELECT id, abkuerzung, name, uebergeordnetes_projekt FROM projekt");
function buildTree(array $elements, $parentId = 0, $limit = 10) {
$limit--;
if ($limit < 1) {
return;
}
$branch = array();
foreach ($elements as $element) {
if ($element['uebergeordnetes_projekt'] == $parentId) {
$children = buildTree($elements, $element['id'], $limit);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
$projektbaum = buildTree($projekte, $id);
if (!empty($projektbaum)) {
$root = array();
$root['abkuerzung'] = $data[0]['abkuerzung'];
$root['children'] = $projektbaum;
function printleaf($leaf, $level, $first = false) {
if (!$first) {
$s = $level;
}
$s .= "- ".$leaf['abkuerzung']."\n";
if ($leaf['children']) {
foreach ($leaf['children'] as $childleaf) {
$s .= printleaf($childleaf, $level.$level);
}
}
return($s);
}
$baum .= printleaf($root," ", true);
$this->app->Tpl->Set("PROJEKTBAUM",$baum);
} else {
$this->app->Tpl->Set("PROJEKTBAUMHIDDEN",'hidden');
}
// $this->app->YUI->AutoComplete("abkuerzung","projektname",1); // $this->app->YUI->AutoComplete("abkuerzung","projektname",1);
$this->app->YUI->AutoComplete("kunde","kunde"); $this->app->YUI->AutoComplete("kunde","kunde");
$this->app->YUI->AutoComplete("verantwortlicher","adresse"); $this->app->YUI->AutoComplete("verantwortlicher","adresse");