<form id="group-edit" action="" method="post" |
<form id="group-edit" action="" method="post" |
py:attrs="{'class':'has-errors'} if errors else {}" |
py:attrs="{'class':'has-errors'} if errors else {}" |
xmlns:i18n="http://genshi.edgewall.org/i18n" |
xmlns:i18n="http://genshi.edgewall.org/i18n" |
xmlns:py="http://genshi.edgewall.org/" |
xmlns:py="http://genshi.edgewall.org/" |
xmlns:xi="http://www.w3.org/2001/XInclude"> |
xmlns:xi="http://www.w3.org/2001/XInclude"> |
|
|
<div class="error-explanation" py:if="error_summary"> |
<div class="error-explanation" py:if="error_summary"> |
<h2>Errors in form</h2> |
<h2>Errors in form</h2> |
<p>The form contains invalid entries:</p> |
<p>The form contains invalid entries:</p> |
<ul> |
<ul> |
<li py:for="key, error in error_summary.items()">${"%s: %s" % (key, error)}</li> |
<li py:for="key, error in error_summary.items()">${"%s: %s" % (key, error)}</li> |
</ul> |
</ul> |
</div> |
</div> |
|
|
<fieldset id="basic-information"> |
<fieldset id="basic-information"> |
<dl> |
<dl> |
<dt><label class="field_opt" for="name">Title</label></dt> |
<dt><label class="field_opt" for="name">The Title</label></dt> |
<dd><input class="js-title" id="title" name="title" type="text" value="${data.get('title', '')}"/></dd> |
<dd><input class="js-title" id="title" name="title" type="text" value="${data.get('title', '')}"/></dd> |
|
|
<dt><label class="field_opt" for="title">Url</label></dt> |
<dt><label class="field_opt" for="title">Url</label></dt> |
<dd class="name-field"> |
<dd class="name-field"> |
<span class="js-url-text url-text">${g.site_url+h.url_for(controller='group', action='index')+'/'}<span class="js-url-viewmode js-url-suffix"> </span><a style="display: none;" href="#" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span> |
<span class="js-url-text url-text">${g.site_url+h.url_for(controller='group', action='index')+'/'}<span class="js-url-viewmode js-url-suffix"> </span><a style="display: none;" href="#" class="url-edit js-url-editlink js-url-viewmode">(edit)</a></span> |
<input style="display: none;" id="name" maxlength="100" name="name" type="text" class="url-input js-url-editmode js-url-input" value="${data.get('name', '')}" /> |
<input style="display: none;" id="name" maxlength="100" name="name" type="text" class="url-input js-url-editmode js-url-input" value="${data.get('name', '')}" /> |
<p class="js-url-is-valid"> </p> |
<p class="js-url-is-valid"> </p> |
</dd> |
</dd> |
<dd style="display: none;" class="js-url-editmode instructions basic">2+ chars, lowercase, using only 'a-z0-9' and '-_'</dd> |
<dd style="display: none;" class="js-url-editmode instructions basic">2+ chars, lowercase, using only 'a-z0-9' and '-_'</dd> |
<dd class="field_error" py:if="errors.get('name', '')">${errors.get('name', '')}</dd> |
<dd class="field_error" py:if="errors.get('name', '')">${errors.get('name', '')}</dd> |
|
|
<dt class="description-label"><label class="field_opt" for="title">Description</label></dt> |
<dt class="description-label"><label class="field_opt" for="title">Description</label></dt> |
<dd class="description-field"><div class="markdown-editor"> |
<dd class="description-field"><div class="markdown-editor"> |
<ul class="button-row"> |
<ul class="button-row"> |
<li><button class="pretty-button js-markdown-edit depressed">Edit</button></li> |
<li><button class="pretty-button js-markdown-edit depressed">Edit</button></li> |
<li><button class="pretty-button js-markdown-preview">Preview</button></li> |
<li><button class="pretty-button js-markdown-preview">Preview</button></li> |
</ul> |
</ul> |
<textarea class="markdown-input" name="description" id="notes" placeholder="${_('Start with a summary sentence ...')}">${data.get('description','')}</textarea> |
<textarea class="markdown-input" name="description" id="notes" placeholder="${_('Start with a summary sentence ...')}">${data.get('description','')}</textarea> |
<div class="markdown-preview" style="display: none;"></div> |
<div class="markdown-preview" style="display: none;"></div> |
<span class="hints">You can use <a href="http://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown formatting</a> here.</span> |
<span class="hints">You can use <a href="http://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown formatting</a> here.</span> |
</div></dd> |
</div></dd> |
|
|
|
|
<dt class="state-label" py:if="c.is_sysadmin or c.auth_for_change_state"><label class="field_opt" for="state">State</label></dt> |
<dt class="state-label" py:if="c.is_sysadmin or c.auth_for_change_state"><label class="field_opt" for="state">State</label></dt> |
<dd class="state-field" py:if="c.is_sysadmin or c.auth_for_change_state"> |
<dd class="state-field" py:if="c.is_sysadmin or c.auth_for_change_state"> |
<select id="state" name="state" > |
<select id="state" name="state" > |
<option py:attrs="{'selected': 'selected' if data.get('state') == 'active' else None}" value="active">active</option> |
<option py:attrs="{'selected': 'selected' if data.get('state') == 'active' else None}" value="active">active</option> |
<option py:attrs="{'selected': 'selected' if data.get('state') == 'deleted' else None}" value="deleted">deleted</option> |
<option py:attrs="{'selected': 'selected' if data.get('state') == 'deleted' else None}" value="deleted">deleted</option> |
</select> |
</select> |
</dd> |
</dd> |
</dl> |
</dl> |
</fieldset> |
</fieldset> |
|
|
<fieldset id="extras"> |
<fieldset id="extras"> |
<h3>Extras</h3> |
<h3>Extras</h3> |
<dl> |
<dl> |
<py:with vars="extras = data.get('extras', [])"> |
<py:with vars="extras = data.get('extras', [])"> |
<py:for each="num, extra in enumerate(data.get('extras', []))"> |
<py:for each="num, extra in enumerate(data.get('extras', []))"> |
<dt><label for="extras__${num}__value">${extra.get('key')}</label></dt> |
<dt><label for="extras__${num}__value">${extra.get('key')}</label></dt> |
<dd> |
<dd> |
<input id="extras__${num}__key" name="extras__${num}__key" type="hidden" value="${extra.get('key')}" /> |
<input id="extras__${num}__key" name="extras__${num}__key" type="hidden" value="${extra.get('key')}" /> |
<input id="extras__${num}__value" name="extras__${num}__value" type="text" value="${extra.get('value')}" /> |
<input id="extras__${num}__value" name="extras__${num}__value" type="text" value="${extra.get('value')}" /> |
<input type="checkbox" name="extras__${num}__deleted" checked="${extra.get('deleted')}">Delete</input> |
<input type="checkbox" name="extras__${num}__deleted" checked="${extra.get('deleted')}">Delete</input> |
</dd> |
</dd> |
</py:for> |
</py:for> |
|
|
<py:for each="num in range(len(extras), len(extras) + 4)"> |
<py:for each="num in range(len(extras), len(extras) + 4)"> |
<dt><label for="extras__${num}__key">New key</label></dt> |
<dt><label for="extras__${num}__key">New key</label></dt> |
<dd> |
<dd> |
<input class="medium-width" id="extras__${num}__key" name="extras__${num}__key" type="text" /> |
<input class="medium-width" id="extras__${num}__key" name="extras__${num}__key" type="text" /> |
with value |
with value |
<input class="medium-width" id="extras__${num}__value" name="extras__${num}__value" type="text" /> |
<input class="medium-width" id="extras__${num}__value" name="extras__${num}__value" type="text" /> |
</dd> |
</dd> |
</py:for> |
</py:for> |
</py:with> |
</py:with> |
</dl> |
</dl> |
</fieldset> |
</fieldset> |
|
|
<fieldset id="datasets"> |
<fieldset id="datasets"> |
<h3>Datasets</h3> |
<h3>Datasets</h3> |
<dl py:if="data.get('packages')"> |
<dl py:if="data.get('packages')"> |
<py:for each="num, package in enumerate(data.get('packages'))"> |
<py:for each="num, package in enumerate(data.get('packages'))"> |
<dt><input checked="checked" id="datasets__${num}__name" name="packages__${num}__name" type="checkbox" value="${package['name']}"/></dt> |
<dt><input checked="checked" id="datasets__${num}__name" name="packages__${num}__name" type="checkbox" value="${package['name']}"/></dt> |
<dd> |
<dd> |
<label for="packages__${num}__name">${package['name']}</label> |
<label for="packages__${num}__name">${package['name']}</label> |
</dd> |
</dd> |
</py:for> |
</py:for> |
</dl> |
</dl> |
<p py:if="not data.get('packages')">There are no datasets currently in this group.</p> |
<p py:if="not data.get('packages')">There are no datasets currently in this group.</p> |
|
|
<h3>Add datasets</h3> |
<h3>Add datasets</h3> |
<dl> |
<dl> |
<dt><label class="field_opt" for="packages__${len(data.get('packages', []))}__name">Dataset</label></dt> |
<dt><label class="field_opt" for="packages__${len(data.get('packages', []))}__name">Dataset</label></dt> |
<dd><input class="autocomplete-dataset" id="datasets__${len(data.get('packages', []))}__name" name="packages__${len(data.get('packages', []))}__name" type="text" /></dd> |
<dd><input class="autocomplete-dataset" id="datasets__${len(data.get('packages', []))}__name" name="packages__${len(data.get('packages', []))}__name" type="text" /></dd> |
</dl> |
</dl> |
</fieldset> |
</fieldset> |
|
|
<div class="form-submit"> |
<div class="form-submit"> |
<input id="save" class="pretty-button primary" name="save" type="submit" value="${_('Save Changes')}" /> |
<input id="save" class="pretty-button primary" name="save" type="submit" value="${_('Save Changes')}" /> |
<py:if test="c.group"> |
<py:if test="c.group"> |
<input id="cancel" class="pretty-button href-action" name="cancel" type="reset" value="${_('Cancel')}" action="${h.url_for(controller='group', action='read', id=c.group.name)}" /> |
<input id="cancel" class="pretty-button href-action" name="cancel" type="reset" value="${_('Cancel')}" action="${h.url_for(controller='group', action='read', id=c.group.name)}" /> |
</py:if> |
</py:if> |
</div> |
</div> |
</form> |
</form> |
|
|