Major changes from LibrePlan upstream: Migration to Java 21 / Tomcat 9: - ZK Framework 9.x → 8.6.0.1 (built-in databinding) - Removed stub classes blocking real ZK databinder - BCrypt password fix (matches() vs equals()) - Spring Security firewall for double-slash URLs - I18nHelper _() → tr() (Java 9+ reserved keyword) - Hibernate TypeContributor for Jadira types - Fixed ConfigurationModel Currency locale handling Rebrand to TASKPM: - Maven project names updated - web.xml display-name → taskpm-webapp - CSS files: libreplan.css → taskpm.css - i18n .po files updated (all locales) - ZUL page titles updated - Documentation rebranded New Features: - PERT Chart prototype using vis.js (/planner/pert/) - New doc chapters: 22-taskpm.rst (PERT focus) - Deploy automation scripts (migrate/) - Help docs deployed to webapp Removed: - Original .forgejo and .github CI workflows (will be replaced) TASKPM is a personal-oriented planning package integrating taskwarrior/timewarrior with PERT/CPM Monte Carlo scheduling. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
110 lines
4.4 KiB
Text
110 lines
4.4 KiB
Text
<!--
|
|
This file is part of LibrePlan
|
|
|
|
Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
|
|
Desenvolvemento Tecnolóxico de Galicia
|
|
Copyright (C) 2010-2011 Igalia, S.L.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Affero General Public License as published by
|
|
the Free Software Foundation, either version 3 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 Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<?xel-method prefix="ganttzk_i18n" name="_" class="org.zkoss.ganttz.i18n.I18nHelper"
|
|
signature="java.lang.String tr(java.lang.String name)" ?>
|
|
|
|
<zk>
|
|
<zscript>
|
|
<![CDATA[
|
|
resourcesLoadPanel = self;
|
|
]]>
|
|
</zscript>
|
|
|
|
<borderlayout id="resourcesloadlayout" sclass="resourcesloadlayout" width="auto" height="100%">
|
|
<north height="30px" border="0" sclass="toolbar-box">
|
|
<hbox align="center" id="toolbar" >
|
|
|
|
<separator height="30px"/>
|
|
|
|
<label>${ganttzk_i18n:_('Zoom')}:</label>
|
|
|
|
<listbox id="listZoomLevels" mold="select" rows="1"
|
|
model="${resourcesLoadPanel.zoomLevels}"
|
|
onSelect="resourcesLoadPanel.setZoomLevel(self.selectedItem.value);" />
|
|
|
|
<separator/>
|
|
|
|
<hbox id="additionalFilterInsertionPoint1" />
|
|
|
|
<separator/>
|
|
|
|
<label id="filterByNameLabel">${ganttzk_i18n:_('Page')}:</label>
|
|
|
|
<combobox id="filterByNameCombo" width="62px" onChange="resourcesLoadPanel.onSelectFilterByName(self)" />
|
|
|
|
<separator/>
|
|
|
|
${ganttzk_i18n:_('Group by')}:
|
|
|
|
<listbox id="listFilters" mold="select" rows="1" width="150px"
|
|
model="${resourcesLoadPanel.filters}"
|
|
selectedIndex="0"
|
|
onSelect="resourcesLoadPanel.setFilter(self.selectedItem.value);">
|
|
</listbox>
|
|
<separator/>
|
|
<hbox id="additionalFilterInsertionPoint2" />
|
|
</hbox>
|
|
</north>
|
|
|
|
<center border="0">
|
|
<borderlayout sclass="resources-load">
|
|
<west size="250px" vflex="1" hflex="min" collapsible="true"
|
|
splittable="true" autoscroll="false" border="0">
|
|
<borderlayout>
|
|
<north border="0" height="35px" hflex="true" collapsible="true">
|
|
<vbox pack="top" align="center">
|
|
<tree fixedLayout="true" hflex="true" sclass="resourceload-details-container">
|
|
<treecols>
|
|
<treecol label="${ganttzk_i18n:_('Name')}" height="29px"/>
|
|
</treecols>
|
|
</tree>
|
|
</vbox>
|
|
</north>
|
|
<center border="0" style="overflow-x:scroll">
|
|
<div sclass="leftpanelgap" id="insertionPointLeftPanel"/>
|
|
</center>
|
|
</borderlayout>
|
|
</west>
|
|
|
|
<center sclass="taskspanel">
|
|
<borderlayout>
|
|
<north border="0">
|
|
<div sclass="timetrackergap" height="30px" id="insertionPointTimetracker"/>
|
|
</north>
|
|
|
|
<center autoscroll="true" border="0" sclass="rightpanel-layout">
|
|
<div id="insertionPointRightPanel" sclass="taskspanel-gap"/>
|
|
</center>
|
|
</borderlayout>
|
|
|
|
</center>
|
|
</borderlayout>
|
|
</center>
|
|
|
|
<south height="200px" collapsible="true" title="${ganttzk_i18n:_('Graphics')}"
|
|
sclass="scheduling-graphics" id="graphics"
|
|
onOpen="resourcesLoadPanel.changeChartVisibility(event.open);">
|
|
|
|
<div id="insertionPointChart" />
|
|
</south>
|
|
</borderlayout>
|
|
</zk>
|