TASKPM/ganttzk/src/main/resources/web/ganttz/zul/resourcesLoadLayout.zul
Ren Juan cd3274c509 TASKPM: Fork LibrePlan with Java 21 migration and rebrand
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>
2026-01-23 11:52:02 +00:00

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>