- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Alfresco Community 5.1.x。我想在 + 按钮动态添加文本字段时使用 kickstart 创建一个自定义工作流,其中一种形式是我有 + 按钮。这可能吗?怎么办?
最佳答案
我希望你能从这个控件中得到一些想法。
在共享配置上,
<field id="myco:userDetails" set="userDetails" label="User Details" >
<control template="/org/alfresco/components/form/controls/workflow/userdetails.ftl" />
</field>
用户详细信息.ftl
<style>
.yui-dt{
border: 1px solid #ccc;
font-weight: normal;
}
.yui-dt th {
margin: 0;
padding: 0;
border: none;
border-right: 1px solid #CBCBCB;
border-bottom: 1px solid #CBCBCB;
background: #D8D8DA url(sprite.png) repeat-x 0 0;
}
.yui-dt th {
margin: 0;
padding: 0;
border: none;
border-right: 1px solid #CBCBCB;
border-bottom: 1px solid #CBCBCB;
background: #D8D8DA url(sprite.png) repeat-x 0 0;
}
.yui-dt td {
border-top: 1px solid #ccc!important;
padding: 5px 10px!important;
}
.yui-dt td:last-of-type,.yui-dt th:last-of-type {
border-right: 0px solid #CBCBCB;
}
.yui-dt td:last-of-type {
border-top: 0px solid #CBCBCB;
}
.yui-dt-liner {
margin: 0;
padding: 0;
padding: 4px 10px 4px 10px!important;
}
.set-title {
font-size: 116%;
border-bottom: 1px solid #eeeeee;
padding-bottom: 0.1em;
margin-bottom: 0.6em;
margin-top: 0.2em;
}
.buttons{
background:#fff;
border:1px solid #ddd;
padding:4px;
cursor:pointer;
}
.buttons:hover{
background:#EAE8E8;
}
.hyperlink{
color: blue!important;
text-decoration: underline!important
padding:5px;
}
</style>
<@link href="${url.context}/res/components/workflow/workflow-form.css" group="workflow"/>
<#include "/org/alfresco/components/form/controls/common/utils.inc.ftl" />
<div class="form-field">
<#if form.mode == "view" || (form.mode == "edit" && field.disabled)>
<div class="viewmode-field">
<span class="viewmode-label">${field.label?html}:</span>
<span class="viewmode-value">
<div id="divUserList">
<label>User List:</label>
<table id="tblUserList" class="yui-dt " style="width:100%">
<tr>
<td>First Name </td>
<td>Last Name</td>
<td> Email-Id</td>
<td>Actions</td>
</tr>
<tr id="placeHolderRow">
<td colspan="4"><span>No user details are requested.</span></td>
</tr>
</table>
</div>
</span>
</div>
<#else>
<div id="divUserList">
<div id="divButtonContainer">
<label>First Name : <span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></label>
<input type="text" id="txtFirstName" style="margin-bottom:10px;">
<label>Last Name : <span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></label>
<input type="text" id="txtLastName" style="margin-bottom:10px;">
<label>Email-Id : <span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></label>
<input type="text" id="emailId" style="margin-bottom:20px;"> <br>
<input class="buttons" id="btnAdd" onclick="javascript:addRows();return false;" type="button" value="Add another user" />
<input class="buttons" style="background:#fff" id="btnClear" onclick="javascript:clearControls();return false;" type="button" value="Clear all users" />
</div>
<div class="set-title" style="margin-top:20px;"> User List:</div>
<table id="tblUserList" class="yui-dt " style="width:100%">
<tr>
<th style="background: #D8D8DA;padding-left: 10px;padding-right: 10px;padding-top: 5px;padding-bottom: 5px;" class="yui-dt-liner">First Name </th>
<th style="background: #D8D8DA;padding-left: 10px;padding-right: 10px;padding-top: 5px;padding-bottom: 5px;" class="yui-dt-liner">Last Name</th>
<th style="background: #D8D8DA;padding-left: 10px;padding-right: 10px;padding-top: 5px;padding-bottom: 5px;" class="yui-dt-liner"> Email-Id</th>
<th style="background: #D8D8DA;padding-left: 10px;padding-right: 10px;padding-top: 5px;padding-bottom: 5px;" class="yui-dt-liner">Actions</th>
</tr>
<tr id="placeHolderRow">
<td class="yui-dt-liner" colspan="4" style="border-right:none;">
<span>No user details are requested.</span>
</td>
</tr>
</table>
</div>
<#-- Keep the hidden control, to sent the values to the repo -->
<input type="hidden" id="${fieldHtmlId}" name="${field.name}" />
</#if>
</div>
<script>
updateControlMode();
function updateControlMode()
{
var readOnly = "${field.disabled?c}";
if (readOnly =="true")
{
document.getElementById("tblUserList").innerHTML = '${field.value}';
var table = document.getElementById("tblUserList");
for (var i = 0;i<table.rows.length; i++) {
var row = table.rows[i];
for (var j = 0;j<row.cells.length; j++) {
var col = row.cells[j];
if (j == 3)
{
col.parentNode.removeChild(col); //Removing the action column in readOnly mode
}
}
}
}
}
function clearControls()
{
document.getElementById("txtFirstName").value="";
document.getElementById("txtLastName").value="";
document.getElementById("emailId").value="";
}
function deleteRow(btn) {
var row = btn.parentNode.parentNode;
row.parentNode.removeChild(row);
var table = document.getElementById("tblUserList");
var rowLength = table.rows.length;
if (rowLength ==1 ) //Only Table header is present
{
var placeHolderRow = table.insertRow(rowLength);
var cell1 = placeHolderRow.insertCell(0);
cell1.colspan="4";
cell1.innerHTML="No user details are requested."
}
}
function addRows()
{
var placeHolderRow = document.getElementById("placeHolderRow");
if (placeHolderRow)
placeHolderRow.remove();
var firstName = document.getElementById("txtFirstName").value;
var lastName =document.getElementById("txtLastName").value;
var emailId = document.getElementById("emailId").value;
if (!(firstName || lastName || emailId || firstName.value.trim().length == 0 || lastName.value.trim().length || emailId.value.trim().length))
{
alert("Please enter all the values");
return false;
}
var table = document.getElementById("tblUserList");
var rowLength = table.rows.length;
// Create an empty <tr> element and add it to the 1st position of the table:
var row = table.insertRow(rowLength);
row.id = Alfresco.util.generateDomId();
// Insert new cells (<td> elements) at the 1st and 2nd position of the "new" <tr> element:
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
// Add some text to the new cells:
cell1.innerHTML = document.getElementById("txtFirstName").value;
cell1.style="color:red";
cell2.innerHTML = document.getElementById("txtLastName").value;
cell3.innerHTML = document.getElementById("emailId").value;
cell4.innerHTML ="<a class='hyperlink' style='margin-right:10px' href='#' onclick='javascript:editRow(this);return false;'> Edit </a> <a href='#' class='hyperlink' onclick='javascript:deleteRow(this);return false;'> Delete </a> ";
/* Set the content */
document.getElementById("${fieldHtmlId}").value = table.outerHTML.replace(/(\r\n|\n|\r)/gm,"");
clearControls();
}
function clear()
{
document.getElementById("txtFirstName").value="";
document.getElementById("txtLastName").value="";
document.getElementById("emailId").value="";
}
</script>
如果您希望此控件为只读,则在共享配置中添加 read-only="true"
。
<field id="myco:userDetails" set="userDetails" read-only="true" label="User Details" >
<control template="/org/alfresco/components/form/controls/workflow/userdetails.ftl" />
</field>
请注意:截至目前,这还没有准备好生产,我们也处于开发模式。我们想改进此控件,请分享您的想法/意见/反馈。
关于java - Alfresco 社区 5.1.x 工作流表单动态添加输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966639/
如何使用 Facebook API 查找 Facebook 网址是社区网址或个人资料网址 例如 http://www.facebook.com/adelphi.panthers http://www.
我正在寻找 Erlang 问答平台/社区进行讨论和澄清。我现在使用 StackOverflow 和 erlangforums.com。两个社区都很棒。有没有其他的问答平台? 我检查了以下维护 Erla
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 4 年前。 Improve this qu
我可以使用下面的代码来生成和绘制社区: wc <- walktrap.community(subgraph) modularity(wc) membership(wc) layout <-la
我对 Chef 有点陌生,并且已经完成了教程,但我开始认为我不是错的人: 我正在尝试在 CentOS 7.2 上安装 Java。它无法安装(显然) - 但将 tarball 提取到正确的位置,但添加了
我做了很多 XSLT 编程。我也做 Java、PL/SQL、JavaScript 和其他一些。我可以通过网络轻松找到 Java 和 JavaScript 程序员社区。 PL/SQL 稍微难一点,但介于
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 7 年前。 Improve this qu
我想了解带有实际信息的 python 资源 - 新闻、文章、论坛(英语/美国 - 讲)。我现在学习了python(我已经有很好的c/c++知识),我需要的不仅仅是官方文档/教程。我想了解Python编
我需要了解 Postgresql。我正在尝试分支一个依赖于 Oracle 的应用程序框架来使用 Postgresql。我可以通过网络轻松找到 Java 和 JavaScript 程序员社区。 Orac
我正在使用 AgGrid 社区版本和 React。我试图在标题中的每一列上显示一个复选框。选择时应突出显示所选列下的单元格。此外,我需要记录所选列的更改。 我的columnDefs是基于后端数据构建的
有点好奇实际上有多少人使用 C++/CLI?那么有多少人在使用它呢?人们是否只在托管环境下寻找程序员的特定工作?围绕 c++/cli 的社区有多大?从我目前看到的情况来看,有不少语法变化,作为 C++
我在 Odoov9 社区模块上有一个选择字段 但是,每次我点击它,选择一个记录时,它都会抛出这个错误: Error: No conversion for undefined http://localh
我在cashflow_report模型上有这个方法: class cashflow_report(models.Model): _name = 'cashflow.report' _d
我正在尝试通过模块将一个表中的字段添加到另一个表中。 具体来说,尝试从 product.product 继承一个字段,即 price 字段,将其添加到 stock.move 模型中。 所以,我在我正在
我继承了 res.partner 模型,现在,我想将 vat 字段设置为 required 和 unique . 我知道如何正常执行此操作,例如在新模型上,但我希望原始字段具有这些属性。 我怎样才能实
我需要做什么才能让 Idea 在未打开的文件中发现错误? 两个示例场景可以更好地了解我的想法: 使用现有源添加新模块。模块已加载,后台扫描任务已完成,所有文件看起来都很好。直到打开。 Idea 会将文
我注意到 Stack Overflow 上有一些类似的问题,但它们要么不是我想要做的,要么是过时的答案。 我是 Google Plus 社区的所有者,我希望将该社区嵌入我们的网站,类似于将 Twitt
所以我将我的 Steamworks SDK 导入到我的虚幻引擎项目中。它构建并运行时,我得到了 Steam 覆盖。太棒了! 但是,我现在正在尝试获取用户的好友列表,这需要 Steam Communit
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 1 年前。 Improve
我正在 Pycharm Community Edition 2017.2.3 中开发 Python 3.6 项目。 我的项目中有多个运行配置。每个不同的运行配置将打开不同的 'Run tool win
我是一名优秀的程序员,十分优秀!