[gen] Pod field: bugfix (send by email).
This commit is contained in:
parent
40e3612682
commit
f38792a5b9
|
@ -61,17 +61,17 @@ class Pod(Field):
|
||||||
'"%s" (%s).'
|
'"%s" (%s).'
|
||||||
FREEZE_FATAL_ERROR = 'Server error. Please contact the administrator.'
|
FREEZE_FATAL_ERROR = 'Server error. Please contact the administrator.'
|
||||||
|
|
||||||
# Icon allowing to generate a given template in a given format.
|
# Icon allowing to generate a given template in a given format
|
||||||
pxIcon = Px('''
|
pxIcon = Px('''
|
||||||
<img var="iconSuffix=frozen and 'Frozen' or '';
|
<img var="iconSuffix=frozen and 'Frozen' or ''"
|
||||||
gc=field.getChecked and q(field.getChecked) or 'null'"
|
|
||||||
src=":url(fmt + iconSuffix)" class="clickable"
|
src=":url(fmt + iconSuffix)" class="clickable"
|
||||||
title=":field.getIconTitle(obj, fmt, frozen)"
|
title=":field.getIconTitle(obj, fmt, frozen)"
|
||||||
onclick=":'generatePod(%s,%s,%s,%s,%s,null,%s)' % (q(uid), q(name), \
|
onclick=":'generatePod(%s,%s,%s,%s,%s,null,%s)' % (q(uid), q(name), \
|
||||||
q(info.template), q(fmt), q(ztool.getQueryInfo()), gc)"/>''')
|
q(info.template), q(fmt), q(ztool.getQueryInfo()), gc)"/>''')
|
||||||
|
|
||||||
pxView = pxCell = Px('''
|
pxView = pxCell = Px('''
|
||||||
<x var="uid=obj.uid"
|
<x var="uid=obj.uid;
|
||||||
|
gc=field.getChecked and q(field.getChecked) or 'null'"
|
||||||
for="info in field.getVisibleTemplates(obj)"
|
for="info in field.getVisibleTemplates(obj)"
|
||||||
var2="mailings=field.getVisibleMailings(obj, info.template);
|
var2="mailings=field.getVisibleMailings(obj, info.template);
|
||||||
lineBreak=((loop.info.nb + 1) % field.maxPerRow) == 0">
|
lineBreak=((loop.info.nb + 1) % field.maxPerRow) == 0">
|
||||||
|
@ -84,7 +84,7 @@ class Pod(Field):
|
||||||
<!-- A clickable icon if no freeze action is allowed and no mailing is
|
<!-- A clickable icon if no freeze action is allowed and no mailing is
|
||||||
available for this format -->
|
available for this format -->
|
||||||
<x if="not dropdownEnabled">:field.pxIcon</x>
|
<x if="not dropdownEnabled">:field.pxIcon</x>
|
||||||
<!-- A clickable icon and a dropdown menu else. -->
|
<!-- A clickable icon and a dropdown menu else -->
|
||||||
<span if="dropdownEnabled" class="dropdownMenu"
|
<span if="dropdownEnabled" class="dropdownMenu"
|
||||||
var2="dropdownId='%s_%s' % (uid, \
|
var2="dropdownId='%s_%s' % (uid, \
|
||||||
field.getFreezeName(info.template, fmt, sep='_'))"
|
field.getFreezeName(info.template, fmt, sep='_'))"
|
||||||
|
@ -125,9 +125,9 @@ class Pod(Field):
|
||||||
<tr for="mailing in mailings[fmt]" valign="top"
|
<tr for="mailing in mailings[fmt]" valign="top"
|
||||||
var2="mailingName=field.getMailingName(obj, mailing)">
|
var2="mailingName=field.getMailingName(obj, mailing)">
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
<a var="js='generatePod(%s,%s,%s,%s,%s,null,null,%s)' % \
|
<a var="js='generatePod(%s,%s,%s,%s,%s,null,%s,%s)' % \
|
||||||
(q(uid), q(name), q(info.template), q(fmt), \
|
(q(uid), q(name), q(info.template), q(fmt), \
|
||||||
q(ztool.getQueryInfo()), q(mailing))"
|
q(ztool.getQueryInfo()), gc, q(mailing))"
|
||||||
onclick=":'askConfirm(%s,%s)' % (q('script'), q(js, False))"
|
onclick=":'askConfirm(%s,%s)' % (q('script'), q(js, False))"
|
||||||
title=":sendLabel">
|
title=":sendLabel">
|
||||||
<img src=":url('email')" align="left" style="margin-right: 2px"/>
|
<img src=":url('email')" align="left" style="margin-right: 2px"/>
|
||||||
|
|
|
@ -495,13 +495,13 @@ function toggleDropdown(dropdownId, forcedValue){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function that sets a value for showing/hiding sub-titles.
|
// Function that sets a value for showing/hiding sub-titles
|
||||||
function setSubTitles(value, tag) {
|
function setSubTitles(value, tag) {
|
||||||
createCookie('showSubTitles', value);
|
createCookie('showSubTitles', value);
|
||||||
// Get the sub-titles
|
// Get the sub-titles
|
||||||
var subTitles = getElementsHavingName(tag, 'subTitle');
|
var subTitles = getElementsHavingName(tag, 'subTitle');
|
||||||
if (subTitles.length == 0) return;
|
if (subTitles.length == 0) return;
|
||||||
// Define the display style depending on p_tag.
|
// Define the display style depending on p_tag
|
||||||
var displayStyle = 'inline';
|
var displayStyle = 'inline';
|
||||||
if (tag == 'tr') displayStyle = 'table-row';
|
if (tag == 'tr') displayStyle = 'table-row';
|
||||||
for (var i=0; i < subTitles.length; i++) {
|
for (var i=0; i < subTitles.length; i++) {
|
||||||
|
@ -510,7 +510,7 @@ function setSubTitles(value, tag) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function that toggles the value for showing/hiding sub-titles.
|
// Function that toggles the value for showing/hiding sub-titles
|
||||||
function toggleSubTitles(tag) {
|
function toggleSubTitles(tag) {
|
||||||
// Get the current value
|
// Get the current value
|
||||||
var value = readCookie('showSubTitles');
|
var value = readCookie('showSubTitles');
|
||||||
|
@ -524,13 +524,13 @@ function toggleSubTitles(tag) {
|
||||||
|
|
||||||
// Functions used for master/slave relationships between widgets
|
// Functions used for master/slave relationships between widgets
|
||||||
function getSlaveInfo(slave, infoType) {
|
function getSlaveInfo(slave, infoType) {
|
||||||
// Returns the appropriate info about slavery, depending on p_infoType.
|
// Returns the appropriate info about slavery, depending on p_infoType
|
||||||
var cssClasses = slave.className.split(' ');
|
var cssClasses = slave.className.split(' ');
|
||||||
var masterInfo = null;
|
var masterInfo = null;
|
||||||
// Find the CSS class containing master-related info.
|
// Find the CSS class containing master-related info
|
||||||
for (var j=0; j < cssClasses.length; j++) {
|
for (var j=0; j < cssClasses.length; j++) {
|
||||||
if (cssClasses[j].indexOf('slave*') == 0) {
|
if (cssClasses[j].indexOf('slave*') == 0) {
|
||||||
// Extract, from this CSS class, master name or master values.
|
// Extract, from this CSS class, master name or master values
|
||||||
masterInfo = cssClasses[j].split('*');
|
masterInfo = cssClasses[j].split('*');
|
||||||
if (infoType == 'masterName') return masterInfo[1];
|
if (infoType == 'masterName') return masterInfo[1];
|
||||||
else return masterInfo.slice(2);
|
else return masterInfo.slice(2);
|
||||||
|
@ -539,7 +539,7 @@ function getSlaveInfo(slave, infoType) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMasterValues(master) {
|
function getMasterValues(master) {
|
||||||
// Returns the list of values that p_master currently has.
|
// Returns the list of values that p_master currently has
|
||||||
var res = null;
|
var res = null;
|
||||||
if ((master.tagName == 'INPUT') && (master.type != 'checkbox')) {
|
if ((master.tagName == 'INPUT') && (master.type != 'checkbox')) {
|
||||||
res = master.value;
|
res = master.value;
|
||||||
|
@ -570,11 +570,11 @@ function getMasterValues(master) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSlaves(master) {
|
function getSlaves(master) {
|
||||||
// Gets all the slaves of master.
|
// Gets all the slaves of master
|
||||||
allSlaves = getElementsHavingName('table', 'slave');
|
allSlaves = getElementsHavingName('table', 'slave');
|
||||||
res = [];
|
res = [];
|
||||||
masterName = master.attributes['name'].value;
|
masterName = master.attributes['name'].value;
|
||||||
// Remove leading 'w_' if the master is in a search screen.
|
// Remove leading 'w_' if the master is in a search screen
|
||||||
if (masterName.indexOf('w_') == 0) masterName = masterName.slice(2);
|
if (masterName.indexOf('w_') == 0) masterName = masterName.slice(2);
|
||||||
if (master.type == 'checkbox') {
|
if (master.type == 'checkbox') {
|
||||||
masterName = masterName.substr(0, masterName.length-8);
|
masterName = masterName.substr(0, masterName.length-8);
|
||||||
|
@ -604,7 +604,7 @@ function updateSlaves(master, slave, objectUrl, layoutType, requestValues,
|
||||||
for (var i=0; i < slaves.length; i++) {
|
for (var i=0; i < slaves.length; i++) {
|
||||||
slaveryValues = getSlaveInfo(slaves[i], 'masterValues');
|
slaveryValues = getSlaveInfo(slaves[i], 'masterValues');
|
||||||
if (slaveryValues[0] != '+') {
|
if (slaveryValues[0] != '+') {
|
||||||
// Update slaves visibility depending on master values.
|
// Update slaves visibility depending on master values
|
||||||
var showSlave = false;
|
var showSlave = false;
|
||||||
for (var j=0; j < slaveryValues.length; j++) {
|
for (var j=0; j < slaveryValues.length; j++) {
|
||||||
for (var k=0; k< masterValues.length; k++) {
|
for (var k=0; k< masterValues.length; k++) {
|
||||||
|
@ -615,7 +615,7 @@ function updateSlaves(master, slave, objectUrl, layoutType, requestValues,
|
||||||
else slaves[i].style.display = 'none';
|
else slaves[i].style.display = 'none';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Update slaves' values depending on master values.
|
// Update slaves' values depending on master values
|
||||||
var slaveId = slaves[i].id;
|
var slaveId = slaves[i].id;
|
||||||
var slaveName = slaveId.split('_')[1];
|
var slaveName = slaveId.split('_')[1];
|
||||||
var reqValue = null;
|
var reqValue = null;
|
||||||
|
@ -703,7 +703,7 @@ function onLink(action, sourceUid, fieldName, targetUid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function stringFromDictKeys(d){
|
function stringFromDictKeys(d){
|
||||||
// Gets a string containing comma-separated keys from dict p_d.
|
// Gets a string containing comma-separated keys from dict p_d
|
||||||
var res = [];
|
var res = [];
|
||||||
for (var key in d) res.push(key);
|
for (var key in d) res.push(key);
|
||||||
return res.join();
|
return res.join();
|
||||||
|
@ -711,14 +711,14 @@ function stringFromDictKeys(d){
|
||||||
|
|
||||||
function onLinkMany(action, id) {
|
function onLinkMany(action, id) {
|
||||||
var elems = _rsplit(id, '_', 3);
|
var elems = _rsplit(id, '_', 3);
|
||||||
// Get the DOM node corresponding to the Ref field.
|
// Get the DOM node corresponding to the Ref field
|
||||||
var node = document.getElementById(elems[0] + '_' + elems[1]);
|
var node = document.getElementById(elems[0] + '_' + elems[1]);
|
||||||
// Get the uids of (un-)checked objects.
|
// Get the uids of (un-)checked objects.
|
||||||
var statuses = node['_appy_' + elems[2] + '_cbs'];
|
var statuses = node['_appy_' + elems[2] + '_cbs'];
|
||||||
var uids = stringFromDictKeys(statuses);
|
var uids = stringFromDictKeys(statuses);
|
||||||
// Get the array semantics
|
// Get the array semantics
|
||||||
var semantics = node['_appy_' + elems[2] + '_sem'];
|
var semantics = node['_appy_' + elems[2] + '_sem'];
|
||||||
// Show an error message if no element is selected.
|
// Show an error message if no element is selected
|
||||||
if ((semantics == 'checked') && (len(statuses) == 0)) {
|
if ((semantics == 'checked') && (len(statuses) == 0)) {
|
||||||
openPopup('alertPopup', no_elem_selected);
|
openPopup('alertPopup', no_elem_selected);
|
||||||
return;
|
return;
|
||||||
|
@ -789,7 +789,7 @@ function toggleCookie(cookieId, display, defaultValue) {
|
||||||
createCookie(cookieId, newState);
|
createCookie(cookieId, newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function that allows to generate a document from a pod template.
|
// Function that allows to generate a document from a pod template
|
||||||
function generatePod(uid, fieldName, template, podFormat, queryData,
|
function generatePod(uid, fieldName, template, podFormat, queryData,
|
||||||
customParams, getChecked, mailing) {
|
customParams, getChecked, mailing) {
|
||||||
var f = document.getElementById('podForm');
|
var f = document.getElementById('podForm');
|
||||||
|
@ -807,7 +807,7 @@ function generatePod(uid, fieldName, template, podFormat, queryData,
|
||||||
f.checkedUids.value = '';
|
f.checkedUids.value = '';
|
||||||
f.checkedSem.value = '';
|
f.checkedSem.value = '';
|
||||||
if (getChecked) {
|
if (getChecked) {
|
||||||
// We must collect selected objects from a Ref field.
|
// We must collect selected objects from a Ref field
|
||||||
var node = document.getElementById(uid + '_' + getChecked);
|
var node = document.getElementById(uid + '_' + getChecked);
|
||||||
if (node && node.hasOwnProperty('_appy_objs_cbs')) {
|
if (node && node.hasOwnProperty('_appy_objs_cbs')) {
|
||||||
f.checkedUids.value = stringFromDictKeys(node['_appy_objs_cbs']);
|
f.checkedUids.value = stringFromDictKeys(node['_appy_objs_cbs']);
|
||||||
|
@ -817,7 +817,7 @@ function generatePod(uid, fieldName, template, podFormat, queryData,
|
||||||
f.submit();
|
f.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function that allows to (un-)freeze a document from a pod template.
|
// Function that allows to (un-)freeze a document from a pod template
|
||||||
function freezePod(uid, fieldName, template, podFormat, action) {
|
function freezePod(uid, fieldName, template, podFormat, action) {
|
||||||
var f = document.getElementById('podForm');
|
var f = document.getElementById('podForm');
|
||||||
f.objectUid.value = uid;
|
f.objectUid.value = uid;
|
||||||
|
@ -828,7 +828,7 @@ function freezePod(uid, fieldName, template, podFormat, action) {
|
||||||
askConfirm('form', 'podForm', action_confirm);
|
askConfirm('form', 'podForm', action_confirm);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function that allows to upload a file for freezing it in a pod field.
|
// Function that allows to upload a file for freezing it in a pod field
|
||||||
function uploadPod(uid, fieldName, template, podFormat) {
|
function uploadPod(uid, fieldName, template, podFormat) {
|
||||||
var f = document.getElementById('uploadForm');
|
var f = document.getElementById('uploadForm');
|
||||||
f.objectUid.value = uid;
|
f.objectUid.value = uid;
|
||||||
|
|
Loading…
Reference in a new issue