Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Levin Zimmermann
slapos
Commits
5e1d8ed3
Commit
5e1d8ed3
authored
Apr 06, 2023
by
Jérome Perrin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
stack/erp5: backport a fix for portal_skins Find tab in ZMI
parent
17969dc3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
770 additions
and
1 deletion
+770
-1
component/egg-patch/Products.CMFCore/portal_skins_ZMI_find.patch
...nt/egg-patch/Products.CMFCore/portal_skins_ZMI_find.patch
+767
-0
stack/erp5/buildout.cfg
stack/erp5/buildout.cfg
+3
-1
No files found.
component/egg-patch/Products.CMFCore/portal_skins_ZMI_find.patch
0 → 100644
View file @
5e1d8ed3
From c2b800e61e10d401fcbdc57dd150270da5b550e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <perrinjerome@gmail.com>
Date: Thu, 16 Mar 2023 14:44:52 +0900
Subject: [PATCH] SkinsTool: fix Find form with Zope4 ZMI (#127)
SkinsTool: fix Find form with Zope4 ZMI
SkinsTool has a custom "Find" tab that got broken when FindSupport API changed for Zope4, this repairs all this.
Co-authored-by: Maurits van Rees <maurits@vanrees.org>
---
src/Products/CMFCore/SkinsTool.py | 7 +-
src/Products/CMFCore/dtml/findForm.dtml | 394 +++++++++++++++-------
src/Products/CMFCore/dtml/findResult.dtml | 313 -----------------
4 files changed, 280 insertions(+), 437 deletions(-)
delete mode 100644 src/Products/CMFCore/dtml/findResult.dtml
diff --git a/src/Products/CMFCore/SkinsTool.py b/src/Products/CMFCore/SkinsTool.py
index c7df7000..acfd6c8f 100644
--- a/src/Products/CMFCore/SkinsTool.py
+++ b/src/Products/CMFCore/SkinsTool.py
@@ -100,13 +100,8 @@
def _getSelections(self):
'manage_propertiesForm')
manage_propertiesForm = DTMLFile('dtml/skinProps', globals())
- # the following two methods override those in FindSupport, to
+ # the following method override the one in FindSupport, to
# support marking of objects used in specific skins
- security.declareProtected(ManagePortal, # NOQA: flake8: D001
- 'manage_findResult')
- manage_findResult = DTMLFile('findResult', _dtmldir,
- management_view='Find')
-
security.declareProtected(ManagePortal, # NOQA: flake8: D001
'manage_findForm')
manage_findForm = DTMLFile('findForm', _dtmldir,
diff --git a/src/Products/CMFCore/dtml/findForm.dtml b/src/Products/CMFCore/dtml/findForm.dtml
index 0fcb7102..7d935e16 100644
--- a/src/Products/CMFCore/dtml/findForm.dtml
+++ b/src/Products/CMFCore/dtml/findForm.dtml
@@ -1,131 +1,289 @@
<dtml-var manage_page_header>
+
<dtml-var manage_tabs>
<main class="container-fluid">
-<p class="form-help">
-Find allows you to locate Zope objects based on different
-criteria. For more find choices choose the <EM>Advanced</EM>
-find option.
-</p>
-
-<FORM ACTION="manage_findResult" METHOD="GET">
-<INPUT TYPE = "hidden" NAME="searchtype" VALUE="simple">
-<TABLE class="action">
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- Find objects of type:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_metatypes:list" SIZE="8" MULTIPLE>
- <OPTION VALUE="all" SELECTED> All types
-<dtml-let sorted_meta_types="[]">
- <dtml-in all_meta_types mapping>
- <dtml-call "sorted_meta_types.append(name)">
- </dtml-in>
- <dtml-call "sorted_meta_types.sort()">
- <dtml-in sorted_meta_types>
- <OPTION VALUE="&dtml-sequence-item;">&dtml-sequence-item;
- </dtml-in>
-</dtml-let>
- </SELECT>
- </div>
- </TD>
-</TR>
+<!-- BO findResults.dtml -->
+<dtml-in "('obj_ids', 'obj_searchterm', 'obj_expr', 'obj_mtime', 'obj_mspec', 'obj_permission', 'obj_roles', 'search_sub','searchtype')"
+ ><dtml-else "_.hasattr(REQUEST, _['sequence-item'])"
+ ><dtml-call "REQUEST.set(_['sequence-item'], None)"
+ ></dtml-else
+></dtml-in>
+<dtml-call "REQUEST.set('obj_metatypes',
+ [x for x in (REQUEST.get('obj_metatypes', []) or [])])">
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- with ids:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <INPUT TYPE="TEXT" NAME="obj_ids:tokens" SIZE="30">
- </TD>
-</TR>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- containing:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <INPUT TYPE="TEXT" NAME="obj_searchterm" SIZE="30">
- </TD>
-</TR>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- modified:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_mspec">
- <OPTION VALUE="<"> before
- <OPTION VALUE=">"> after
- </SELECT>
- </div>
- <INPUT TYPE="TEXT" NAME="obj_mtime" SIZE="22">
- </TD>
-</TR>
+<dtml-if btn_submit>
+<dtml-with "_.namespace(
+ results=ZopeFind(this(),
+ obj_ids=obj_ids,
+ obj_metatypes=obj_metatypes,
+ obj_searchterm=obj_searchterm,
+ obj_expr=obj_expr,
+ obj_mtime=obj_mtime,
+ obj_mspec=obj_mspec,
+ obj_permission=obj_permission,
+ obj_roles=obj_roles,
+ search_sub=search_sub,
+ REQUEST=REQUEST)
+ )">
+<form action="manage_compareResults">
+<dtml-unless batch_size><dtml-call "REQUEST.set('batch_size',20)"></dtml-unless>
+<dtml-if results>
+ <div class="alert alert-success">
+ Displaying items
+ <dtml-in name="results" size=batch_size start=query_start
+ ><dtml-if sequence-start>&dtml-sequence-number;</dtml-if
+ ><dtml-if sequence-end>-&dtml-sequence-number; of
+ <dtml-var "_.len(results)"
+ ></dtml-if
+ ></dtml-in>
+ items matching your query. You can <a href="#zmi-search-form">revise</a>
+ your search terms below.
+ </div>
+<dtml-else>
+ <div class="alert alert-danger">
+ No items were found matching your query. You can
+ <a href="#zmi-search-form">revise</a> your search terms below.
+ </div>
+</dtml-if>
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- mark the object used in skin:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_skinspec">
- <dtml-in getSkinSelections>
- <OPTION value="&dtml-sequence-item;"
- <dtml-if "_['sequence-item'] == getDefaultSkin()">selected</dtml-if>>
- <dtml-var sequence-item>
- </OPTION>
- </dtml-in>
- </SELECT>
- </div>
- </TD>
-</TR>
-
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-text">
- <INPUT TYPE="RADIO" NAME="search_sub:int" VALUE="0">
- Search only in this folder
- <BR>
- <INPUT TYPE="RADIO" NAME="search_sub:int" VALUE="1" CHECKED>
- Search all subfolders
+<dtml-unless searchtype><dtml-call "REQUEST.set('searchtype', 'simple')"></dtml-unless>
+<dtml-unless skey><dtml-call "REQUEST.set('skey', 'id')"></dtml-unless>
+<dtml-unless rkey><dtml-call "REQUEST.set('rkey', '')"></dtml-unless>
+<dtml-if "rkey == 'reverse'"><dtml-call "REQUEST.set('rkey', skey)"></dtml-if>
+
+
+<dtml-if "_.len(results) > int(batch_size)">
+ <nav class="zmi-find-results nav row mb-2">
+ <div class="col-6">
+ <dtml-in name="results" previous size=batch_size start=query_start>
+ <a class="btn btn-primary float-left"
+ href="<dtml-var "REQUEST.URL" html_quote>&dtml-sequence-query;query_start=&dtml-previous-sequence-start-number;">
+ <i class="fa fa-caret-left"></i> Previous
+ </a>
+ </dtml-in>
+ </div>
+ <div class="col-6 text-right">
+ <dtml-in name="results" next size=batch_size start=query_start>
+ <a class="btn btn-primary"
+ href="<dtml-var "REQUEST.URL" html_quote>&dtml-sequence-query;query_start=&dtml-next-sequence-start-number;">
+ Next <i class="fa fa-caret-right"></i>
+ </a>
+ </dtml-in>
+ </div>
+ </nav>
+</dtml-if>
+
+
+<ul class="zmi-find-results list-group mb-5">
+<dtml-in results size="batch_size" start="query_start" sort_expr="skey"
+ reverse_expr="rkey">
+ <li class="list-group-item">
+ <div class="form-check">
+ <input class="form-check-input col-0" type="checkbox" value="&dtml.url_quote-sequence-key;" name="item_paths:list"/>
+ <a href="&dtml.url_quote-sequence-key;/manage_workspace"
+ class="col-2
+ <dtml-if "isFirstInSkin(_['sequence-key'], obj_skinspec)">font-weight-bold"</dtml-if>
+ ">
+ <i title="&dtml-meta_type;"
+ class="&dtml-zmi_icon;"> </i>
+ &dtml-sequence-key; <dtml-if title>(&dtml-title;)</dtml-if>
+ </a>
</div>
- </TD>
-</TR>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <INPUT class="form-element" TYPE="SUBMIT" NAME="btn_submit" VALUE="Find">
- <span class="form-text">
- <a href="manage_findAdv">Advanced...<a>
- </span>
+ </li>
+</dtml-in>
+</ul>
+
+</dtml-with> <!-- /namespace -->
+ <div class="zmi-controls">
+ <input class="btn btn-primary" type="submit" name="btn_submit" value="Compare" />
</div>
- </TD>
-</TR>
-</TABLE>
-</FORM>
+</form>
+</dtml-if> <!-- /button submit -->
+<!-- EO findResults.dtml -->
+
+<form id="zmi-search-form" action="manage_findForm" method="get" class="zmi-find">
+<table class="table table-borderless">
+<tr class="simple-search">
+ <td style="width:10rem">
+ <label for="type" class="form-label">Find objects of type:</label>
+ </td>
+ <td style="width:*">
+ <div class="form-element">
+ <select id="type" class="form-control" name="obj_metatypes:list" size="8" multiple="multiple">
+ <option value="all"
+ <dtml-if "not obj_metatypes">
+ selected="selected"
+ <dtml-else>
+ <dtml-var "('all' in obj_metatypes) and 'selected=\042selected\042' or ''">
+ </dtml-if>
+ >All types</option>
+ <dtml-let sorted_meta_types="[]"
+ ><dtml-in all_meta_types mapping
+ ><dtml-call "sorted_meta_types.append(name)"
+ ></dtml-in><dtml-call "sorted_meta_types.sort()"
+ ><dtml-in sorted_meta_types
+ ><option value="&dtml-sequence-item;"
+ <dtml-if "not obj_metatypes">
+ <dtml-else>
+ <dtml-var "(_['sequence-item'] in obj_metatypes) and 'selected=\042selected\042' or ''">
+ </dtml-if>
+ >&dtml-sequence-item;</option>
+ </dtml-in
+ ></dtml-let>
+ </select>
+ </div>
+ </td>
+</tr>
+
+<tr class="simple-search">
+ <td>
+ <label for="ids" class="form-label">With ids:</label>
+ </td>
+ <td>
+ <input id="ids" class="form-control" type="text" name="obj_ids:tokens" value="<dtml-var "' '.join(obj_ids or [])" html_quote>" />
+ </td>
+</tr>
+
+<tr class="simple-search">
+ <td>
+ <label for="contain" class="form-label">Containing:</label>
+ </td>
+ <td>
+ <input id="contain" class="form-control" type="text" name="obj_searchterm"
+ value="<dtml-var "obj_searchterm and obj_searchterm or ''" html_quote>" />
+ </td>
+</tr>
+
+<tr class="advanced-search-only" <dtml-if "searchtype!='advanced'">style="display:none;"</dtml-if>>
+ <td>
+ <label for="expr" class="form-label">Expr:</label>
+ </td>
+ <td>
+ <textarea id="expr" class="form-control" name="obj_expr" rows="4" cols="30"
+ ><dtml-var "obj_expr and obj_expr or ''"></textarea>
+ </td>
+</tr>
+
+<tr class="advanced-search-only" <dtml-if "searchtype!='advanced'">style="display:none;"</dtml-if>>
+ <td>
+ <label for="roles" class="form-label">Where the roles:</label>
+ </td>
+ <td>
+ <div class="form-element">
+ <select id="roles" class="form-control" name="obj_roles:list" size="3" multiple="multiple">
+ <dtml-in valid_roles>
+ <dtml-if obj_roles>
+ <option value="&dtml-sequence-item;"<dtml-if "_['sequence-item'] in obj_roles"> selected="selected"</dtml-if>>&dtml-sequence-item;</option>
+ <dtml-else>
+ <option value="&dtml-sequence-item;">&dtml-sequence-item;</option>
+ </dtml-if>
+ </dtml-in>
+ </select>
+ </div>
+ </td>
+</tr>
+
+<tr class="advanced-search-only" <dtml-if "searchtype!='advanced'">style="display:none;"</dtml-if>>
+ <td>
+ <label for="perm" class="form-label">Have permission:</label>
+ </td>
+ <td>
+ <div class="form-element">
+ <select id="perm" class="form-control" name="obj_permission">
+ <dtml-in permission_settings mapping>
+ <option value="&dtml-name;"> &dtml-name;</option>
+ </dtml-in>
+ </select>
+ </div>
+ </td>
+</tr>
+
+<tr class="advanced-search-only" <dtml-if "searchtype!='advanced'">style="display:none;"</dtml-if>>
+ <td>
+ <label for="skey" class="form-label">Sort results by:</label>
+ </td>
+ <td>
+ <div class="form-group">
+ <select name="skey" id="skey" class="form-control">
+ <option value="meta_type">Type</option>
+ <option value="id">Id</option>
+ </select>
+ <div class="form-check px-4 mt-2">
+ <input id="rkey" class="form-check-input" type="checkbox" name="rkey" value="reverse" />
+ <label for="rkey" class="form-check-label">Reverse?</label>
+ </div>
+ </div>
+ </td>
+</tr>
+
+<tr class="simple-search">
+ <td>
+ <label for="mod" class="form-label">Modified:</label>
+ </td>
+ <td>
+ <div class="form-inline">
+ <div class="input-group px-0 col-12">
+ <select id="mod" name="obj_mspec" class="input-group-prepend form-control col-4 col-md-3">
+ <option value="<"> before</option>
+ <option value=">"> after</option>
+ </select>
+ <input class="form-control col-8 col-md-9 px-0" type="text" name="obj_mtime" />
+ </div>
+ </div>
+ </td>
+</tr>
+
+<tr class="simple-search">
+ <td>
+ <label for="skinspec" class="form-label">Mark the object used in skin:</label>
+ </td>
+ <td>
+ <div class="form-inline">
+ <select id="skinspec" name="obj_skinspec" class="form-control">
+ <dtml-in getSkinSelections>
+ <option value="&dtml-sequence-item;"
+ <dtml-if "_['sequence-item'] == getDefaultSkin()">selected</dtml-if>>
+ <dtml-var sequence-item>
+ </option>
+ </dtml-in>
+ </select>
+ </div>
+ </div>
+ </td>
+</tr>
+
+<tr class="simple-search">
+ <td> </td>
+ <td>
+ <div class="form-check">
+ <input id="thisfolder" class="form-check-input" type="radio" name="search_sub:int" value="0" />
+ <label for="thisfolder" class="form-check-label">Search only in this folder</label>
+ </div>
+ <div class="form-check">
+ <input id="subfolder" class="form-check-input" type="radio" name="search_sub:int" value="1" checked="checked" />
+ <label for="subfolder" class="form-check-label">Search all subfolders</label>
+ </div>
+ </td>
+</tr>
-</main>
+<tr class="simple-search">
+ <td> </td>
+ <td>
+ <div class="zmi-controls">
+ <input class="btn btn-primary" type="submit" name="btn_submit" value="Find" />
+ <div class="btn ml-3" >
+ <input id="searchtype"
+ onclick="$('.advanced-search-only').toggle()"
+ class="form-check-input" type="checkbox" name="searchtype" value="advanced" <dtml-if "searchtype=='advanced'"> checked="checked"</dtml-if> />
+ <label for="searchtype" class="form-check-label">Advanced Search</label>
+ </div>
+ </div>
+ </td>
+</tr>
+</table>
+</form>
<dtml-var manage_page_footer>
diff --git a/src/Products/CMFCore/dtml/findResult.dtml b/src/Products/CMFCore/dtml/findResult.dtml
deleted file mode 100644
index 6e0ca36a..00000000
--- a/src/Products/CMFCore/dtml/findResult.dtml
+++ /dev/null
@@ -1,313 +0,0 @@
-<dtml-var manage_page_header>
-<dtml-var manage_tabs>
-
-<main class="container-fluid">
-
-<dtml-in expr="('obj_ids', 'obj_metatypes', 'obj_searchterm', 'obj_expr', 'obj_mtime', 'obj_mspec', 'obj_permission', 'obj_roles', 'search_sub')">
-<dtml-else expr="_.hasattr(REQUEST, _['sequence-item'])">
-<dtml-call expr="REQUEST.set(_['sequence-item'], _.None)">
-</dtml-else>
-</dtml-in>
-
-<dtml-if btn_submit>
-<dtml-with "_.namespace(
- results=PrincipiaFind(this(),
- obj_ids=obj_ids,
- obj_metatypes=obj_metatypes,
- obj_searchterm=obj_searchterm,
- obj_expr=obj_expr,
- obj_mtime=obj_mtime,
- obj_mspec=obj_mspec,
- obj_permission=obj_permission,
- obj_roles=obj_roles,
- search_sub=search_sub,
- REQUEST=REQUEST))">
-
-<dtml-unless batch_size>
-<dtml-call "REQUEST.set('batch_size',20)">
-</dtml-unless>
-
-<dtml-if results>
-<p class="std-text">
-Displaying items
-<dtml-in name="results" size=batch_size start=query_start>
-<dtml-if sequence-start>&dtml-sequence-number;</dtml-if><dtml-if
- sequence-end>-&dtml-sequence-number; of <dtml-var
- "_.len(results)"></dtml-if></dtml-in> items matching your query. You can
-<a href="#form">revise</a> your search terms below.
-</p>
-<dtml-else>
-<p class="std-text">
-No items were found matching your query. You can <a href="#form">revise</a>
-your search terms below.
-</p>
-</dtml-if>
-
-<dtml-unless searchtype>
-<dtml-call expr="REQUEST.set('searchtype', 'simple')">
-</dtml-unless>
-<dtml-unless skey>
-<dtml-call expr="REQUEST.set('skey', 'id')">
-</dtml-unless>
-<dtml-unless rkey>
-<dtml-call expr="REQUEST.set('rkey', '')">
-</dtml-unless>
-<dtml-if "rkey == 'reverse'">
-<dtml-call "REQUEST.set('rkey', skey)">
-</dtml-if>
-
-<TABLE width="100%" CELLSPACING="0" CELLPADDING="2" border="0">
-<dtml-if expr="_.len(results) > batch_size">
-<tr class="list-header">
-<td width="50%">
- <div class="list-item">
- <dtml-in name="results" previous size="batch_size" start="query_start">
- <strong> <a href="&dtml-URL;&dtml-sequence-query;query_start=&dtml-previous-sequence-start-number;">< Previous</a></strong>
- <dtml-else> </dtml-in></div>
-</td>
-<td align="right" width="50%">
- <div class="list-item">
- <dtml-in name="results" next size=batch_size start=query_start>
- <strong><a href="&dtml-URL;&dtml-sequence-query;query_start=&dtml-next-sequence-start-number;">Next ></a></strong>
- <dtml-else> </dtml-in></div>
-</td>
-</tr>
-</dtml-if>
-</table>
-
-<FORM ACTION="manage_compareResults" METHOD="GET">
-<TABLE width="100%" CELLSPACING="0" CELLPADDING="2" border="0">
-<dtml-in results size="batch_size" start="query_start" sort_expr="skey" reverse_expr="rkey">
-<dtml-if sequence-odd>
-<TR class="row-normal">
-<dtml-else>
-<TR class="row-hilite">
-</dtml-if>
- <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40">
- <input type="checkbox" value="&dtml.url_quote-sequence-key;" name="item_paths:list"/>
- <A HREF="&dtml.url_quote-sequence-key;/manage_workspace">
- <IMG SRC="&dtml-BASEPATH1;/&dtml-icon;"
- ALT="[&dtml-meta_type;]" BORDER="0"></A>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="list-item">
- <A HREF="&dtml.url_quote-sequence-key;/manage_workspace">
- <dtml-if "isFirstInSkin(_['sequence-key'], obj_skinspec)">
- <span style="color: red">*</span>
- </dtml-if>
- &dtml-sequence-key;
- <dtml-if title>
- (&dtml-title;)
- </dtml-if>
- </A>
- </div>
-</TD>
-</TR>
-</dtml-in>
-</TABLE>
-<INPUT TYPE="SUBMIT" NAME="btn_submit" VALUE="Compare">
-</FORM>
-</dtml-with>
-
-</dtml-if>
-
-<a name="form">
-<FORM ACTION="manage_findResult" METHOD="GET">
-<TABLE class="action">
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- Find objects of type:</a>
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_metatypes:list" SIZE="4" MULTIPLE>
- <OPTION VALUE="all" <dtml-in obj_metatypes><dtml-if "_['sequence-item'] == 'all'">SELECTED</dtml-if></dtml-in>> All types
-<dtml-in all_meta_types mapping>
- <OPTION VALUE="&dtml-name;" <dtml-in obj_metatypes><dtml-if "_['sequence-item'] == _['name']">SELECTED</dtml-if></dtml-in>>&dtml-name;
-</dtml-in>
- </SELECT>
- </div>
- </TD>
-</TR>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- with ids:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <INPUT TYPE="TEXT" NAME="obj_ids:tokens" SIZE="30" VALUE="<dtml-unless "REQUEST.obj_ids == []">
-<dtml-in expr="REQUEST.obj_ids">
-&dtml-sequence-item;
-
-</dtml-in>
-</dtml-unless>">
- </TD>
-</TR>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- containing:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <INPUT TYPE="TEXT" NAME="obj_searchterm" SIZE="30" VALUE="<dtml-var "REQUEST.obj_searchterm" html_quote>">
- </TD>
-</TR>
-
-<dtml-if "searchtype == 'advanced'">
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- expr:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <TEXTAREA NAME="obj_expr" ROWS="4" COLS="30">&dtml-obj_expr;</TEXTAREA>
- </TD>
-</TR>
-</dtml-if>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- modified:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_mspec">
-
- <OPTION VALUE="<" <dtml-if "REQUEST.obj_mspec == '<'">SELECTED</dtml-if>> before
- <OPTION VALUE=">" <dtml-if "REQUEST.obj_mspec == '>'">SELECTED</dtml-if>> after
- </SELECT>
- </div>
- <INPUT TYPE="TEXT" NAME="obj_mtime" SIZE="22" VALUE="&dtml-obj_mtime;">
- </TD>
-</TR>
-
-
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- mark the object used in skin:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_skinspec">
- <dtml-in getSkinSelections>
- <OPTION value="&dtml-sequence-item;"
- <dtml-if "_['sequence-item'] == obj_skinspec">selected</dtml-if>>
- <dtml-var sequence-item>
- </OPTION>
- </dtml-in>
- </SELECT>
- </div>
- </TD>
-</TR>
-
-<dtml-if "searchtype == 'advanced'">
-<INPUT TYPE = "hidden" NAME="searchtype" VALUE="advanced">
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- where the roles:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_roles:list" SIZE="3" MULTIPLE>
-<dtml-in valid_roles>
-<dtml-if obj_roles>
- <OPTION VALUE="&dtml-sequence-item;"<dtml-if "_['sequence-item'] in obj_roles">SELECTED</dtml-if>>&dtml-sequence-item;
-<dtml-else>
- <OPTION VALUE="&dtml-sequence-item;">&dtml-sequence-item;
-</dtml-if>
-
-</dtml-in>
- </SELECT>
- </div>
- </TD>
-</TR>
-
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- have permission:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="obj_permission">
-<dtml-in permission_settings mapping>
- <OPTION VALUE="&dtml-name;"<dtml-in obj_metatypes><dtml-if "_['sequence-item'] == _['name']">SELECTED</dtml-if></dtml-in>> &dtml-name;
-</dtml-in>
- </SELECT>
- </div>
- </TD>
-</TR>
-
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-label">
- Sort results by:
- </div>
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <SELECT NAME="skey">
- <OPTION VALUE="id">Id
- <OPTION VALUE="meta_type">Type
- </SELECT>
- <span class="form-label">
- <INPUT TYPE="checkbox" NAME="rkey" VALUE="reverse"> Reverse?
- </span>
- </div>
- </TD>
-</TR>
-</dtml-if>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-text">
- <INPUT TYPE="RADIO" NAME="search_sub:int" VALUE="0" <dtml-if "REQUEST.search_sub == 0">CHECKED</dtml-if>>
- Search only in this folder
- <BR>
- <INPUT TYPE="RADIO" NAME="search_sub:int" VALUE="1" <dtml-if "REQUEST.search_sub == 1">CHECKED</dtml-if>>
- Search all subfolders
- </div>
- </TD>
-</TR>
-
-<TR>
- <TD ALIGN="LEFT" VALIGN="TOP">
- </TD>
- <TD ALIGN="LEFT" VALIGN="TOP">
- <div class="form-element">
- <INPUT TYPE="SUBMIT" NAME="btn_submit" VALUE="Find">
- <span class="form-text">
- <dtml-if "searchtype == 'advanced'">
- <a href="manage_findForm">Simple...<a>
- <dtml-else>
- <a href="manage_findAdv">Advanced...<a>
- </dtml-if>
- </span>
- </div>
- </TD>
-</TR>
-</TABLE>
-</FORM>
-
-</main>
-
-<dtml-var manage_page_footer>
stack/erp5/buildout.cfg
View file @
5e1d8ed3
...
...
@@ -692,6 +692,8 @@ Acquisition-patches = ${:_profile_base_location_}/../../component/egg-patch/Acqu
Acquisition-patch-options = -p1
Products.DCWorkflow-patches = ${:_profile_base_location_}/../../component/egg-patch/Products.DCWorkflow/workflow_method-2.4.1.patch#ec7bb56a9f1d37fcbf960cd1e96e6e6d
Products.DCWorkflow-patch-options = -p1
Products.CMFCore-patches = ${:_profile_base_location_}/../../component/egg-patch/Products.CMFCore/portal_skins_ZMI_find.patch#19ec05c0477c50927ee1df6eb75d1e7f
Products.CMFCore-patch-options = -p1
PyPDF2-patches = ${:_profile_base_location_}/../../component/egg-patch/PyPDF2/0001-Custom-implementation-of-warnings.formatwarning-remo.patch#d25bb0f5dde7f3337a0a50c2f986f5c8
PyPDF2-patch-options = -p1
python-magic-patches = ${:_profile_base_location_}/../../component/egg-patch/python_magic/magic.patch#de0839bffac17801e39b60873a6c2068
...
...
@@ -799,7 +801,7 @@ parso = 0.5.1
Pillow = 6.2.2
polib = 1.0.8
pprofile = 2.0.4
Products.CMFCore = 2.7.0
Products.CMFCore = 2.7.0
+SlapOSPatched001
Products.ExternalMethod = 4.7
Products.GenericSetup = 2.3.0
Products.MailHost = 4.13
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment