removed SQL Form from the distro

This commit is contained in:
JT Smith 2008-05-28 21:43:22 +00:00
parent 6cb58eb73e
commit 7bdf22e412
13 changed files with 35 additions and 6647 deletions

View file

@ -1,5 +1,8 @@
7.5.11
- rfe: Not being limited to single-worded Tags
- SQL Form no longer ships with WebGUI. Use Thingy instead. However, out of
respect for those using it, we only uninstall it if you have no sites using
it.
- AssetProxy macro can now use asset id as a parameter like so:
^AssetProxy(abcdefghijklmnopqrstuv,assetId);
- Exposed keywords API to all assets through edit screen. Now keywords are

View file

@ -16,6 +16,12 @@ save you many hours of grief.
Image::ExifTool
List::MoreUtils
* SQL Form is no longer part of the official distribution of WebGUI,
but is still being actively maintained by third-parties. However, if you
don't want to use SQL Form any longer, make sure you delete all SQL Forms
from your site prior to the upgrade *and* purge them from your trash. Then
the upgrade will automatically uninstall the SQL Form from your site.
* WebGUI versions since 7.3.0 (when the new Calendar was added)
have allowed users to post Events to Calendars, but the owner of
the Event has been saved as Admin (user ID 3). Also, anyone who

View file

@ -64,10 +64,36 @@ migrateSubscriptions( $session );
updateUsersOfCommerceMacros($session);
addDBLinkAccessToSQLMacro($session);
addAssetManager( $session );
removeSqlForm($session);
migratePaymentPlugins( $session );
finish($session); # this line required
#----------------------------------------------------------------------------
sub removeSqlForm {
my $session = shift;
print "\tOptionally removing SQL Form...\n" unless $quiet;
my $db = $session->db;
unless ($db->quickScalar("select count(*) from asset where className='WebGUI::Asset::Wobject::SQLForm'")) {
print "\t\tNot using it, so we're uninstalling it.\n" unless $quiet;
$session->config->deleteFromArray("assets","WebGUI::Asset::Wobject::SQLForm");
my @ids = $db->buildArray("select distinct assetId from template where namespace like 'SQLForm%'");
push @ids, qw(GnrXtoFFeXia3vDQuSHojw k8vxD4fuKKf5cGwNTw0sLw);
foreach my $id (@ids) {
my $asset = WebGUI::Asset->newByDynamicClass($session, $id);
if (defined $asset) {
$asset->purge;
}
}
foreach my $table (qw(SQLForm_fieldDefinitions SQLForm SQLForm_fieldTypes SQLForm_regexes)) {
$db->write("drop table $table");
}
}
else {
print "\t\tThis site uses SQL Form, so we won't uninstall it.\n" unless $quiet;
}
}
#----------------------------------------------------------------------------
sub changeRealtimeWorkflows {
my $session = shift;

View file

@ -237,7 +237,6 @@
"WebGUI::Asset::File::ZipArchive",
"WebGUI::Asset::Wobject::WSClient",
"WebGUI::Asset::Wobject::Shelf",
"WebGUI::Asset::Wobject::SQLForm",
"WebGUI::Asset::Wobject::Thingy"
],

File diff suppressed because it is too large Load diff

View file

@ -1,234 +0,0 @@
package WebGUI::Help::Asset_SQLForm;
use strict;
our $HELP = {
'search record template' => {
title => 'search template help title',
body => '',
isa => [
{ namespace => "Asset_SQLForm",
tag => "sql form asset template variables"
},
{ namespace => "Asset_Template",
tag => "template variables"
},
{ namespace => "Asset",
tag => "asset template"
},
],
variables => [
{ 'name' => 'showFieldsDefined' },
{ 'name' => 'searchForm' },
{ 'name' => 'searchFormHeader' },
{ 'name' => 'searchFormTrash.label' },
{ 'name' => 'searchFormTrash.form' },
{ 'name' => 'searchFormMode.label' },
{ 'name' => 'searchFormMode.form' },
{ 'name' => 'searchFormQuery.label' },
{ 'name' => 'searchFormSearchIn.label' },
{ 'name' => 'searchFormSearchIn.form' },
{ 'name' => 'searchFormType.label' },
{ 'name' => 'searchFormType.form' },
{ 'name' => 'searchFormFooter' },
{ 'name' => 'searchFormSubmit' },
{ 'name' => 'searchFormJavascript' },
{ 'name' => 'searchForm.field_loop',
'variables' => [
{ 'name' => 'field.label', },
{ 'name' => 'field.conditionalForm' },
{ 'name' => 'field.conditional' },
{ 'name' => 'field.searchForm1' },
{ 'name' => 'field.searchForm2' },
{ 'name' => 'field.formValue1' },
{ 'name' => 'field.formValue2' },
{ 'name' => 'field.__FIELDNAME__.id' }
]
},
{ 'name' => 'headerLoop',
'variables' => [
{ 'name' => 'header.title' },
{ 'name' => 'header.sort.url' },
{ 'name' => 'header.sort.onThis' },
{ 'name' => 'header.sort.ascending' }
]
},
{ 'name' => 'searchResults.header' },
{ 'name' => 'searchResults.footer' },
{ 'name' => 'searchResults.actionButtons' },
{ 'name' => 'searchResults.recordLoop',
'variables' => [
{ 'name' => 'record.id', },
{ 'name' => 'record.controls', },
{ 'name' => 'record.deletionDate' },
{ 'name' => 'record.deletedBy' },
{ 'name' => 'record.updateDate' },
{ 'name' => 'record.updatedBy' },
{ 'name' => 'record.valueLoop',
'variables' => [
{ 'name' => 'record.value' },
{ 'name' => 'record.value.isFile' },
{ 'name' => 'record.value.isImage' },
{ 'name' => 'record.value.downloadUrl' }
]
}
]
},
{ 'name' => 'superSearch.url' },
{ 'name' => 'superSearch.label' },
{ 'name' => 'normalSearch.url' },
{ 'name' => 'normalSearch.label' },
{ 'name' => 'showMetaData' },
{ 'name' => 'managementLinks', },
{ 'name' => 'errorOccurred', },
{ 'name' => 'errorLoop',
'variables' => [ { 'name' => 'error.message', } ],
}
],
related => [],
},
'advanced search record template' => {
title => 'advanced search template help title',
body => '',
isa => [
{ namespace => "Asset_SQLForm",
tag => "sql form asset template variables"
},
{ namespace => "Asset_Template",
tag => "template variables"
},
{ namespace => "Asset",
tag => "asset template"
},
],
variables => [
{ 'name' => 'headerLoop',
'variables' => [
{ 'name' => 'header.title' },
{ 'name' => 'header.sort.url' },
{ 'name' => 'header.sort.onThis' },
{ 'name' => 'header.sort.ascending' }
]
},
{ 'name' => 'searchResults.recordLoop',
'variables' => [
{ 'name' => 'record.id', },
{ 'name' => 'record.controls', },
{ 'name' => 'record.deletionDate' },
{ 'name' => 'record.deletedBy' },
{ 'name' => 'record.updateDate' },
{ 'name' => 'record.updatedBy' },
{ 'name' => 'record.valueLoop',
'variables' => [
{ 'name' => 'record.value' },
{ 'name' => 'record.value.isFile' },
{ 'name' => 'record.value.isImage' },
{ 'name' => 'record.value.downloadUrl' }
]
}
]
},
{ 'name' => 'superSearch.url' },
{ 'name' => 'superSearch.label' },
{ 'name' => 'normalSearch.url' },
{ 'name' => 'normalSearch.label' },
{ 'name' => 'showFieldsDefined' },
{ 'name' => 'searchResults.header' },
{ 'name' => 'searchResults.footer' },
{ 'name' => 'searchResults.actionButtons' },
{ 'name' => 'showMetaData' },
{ 'name' => 'managementLinks', },
{ 'name' => 'searchFormTrash.label' },
{ 'name' => 'searchFormTrash.form' },
{ 'name' => 'searchFormType.label' },
{ 'name' => 'searchFormType.form' },
{ 'name' => 'searchFormHeader' },
{ 'name' => 'searchFormFooter' },
{ 'name' => 'searchFormSubmit' },
{ 'name' => 'searchFormJavascript' },
{ 'name' => 'searchForm.field_loop',
'variables' => [
{ 'name' => 'field.label', },
{ 'name' => 'field.conditionalForm' },
{ 'name' => 'field.conditional' },
{ 'name' => 'field.searchForm1' },
{ 'name' => 'field.searchForm2' },
{ 'name' => 'field.formValue1' },
{ 'name' => 'field.formValue2' },
{ 'name' => 'field.__FIELDNAME__.id' }
]
},
{ 'name' => 'searchForm' },
],
related => [],
},
'edit record template' => {
title => 'edit template help title',
body => '',
isa => [
{ namespace => "Asset_SQLForm",
tag => "sql form asset template variables"
},
{ namespace => "Asset_Template",
tag => "template variables"
},
{ namespace => "Asset",
tag => "asset template"
},
],
variables => [
{ 'name' => 'completeForm' },
{ 'name' => 'formLoop',
'variables' => [
{ 'name' => 'field.label' }, { 'name' => 'field.formElement' }, { 'name' => 'field.value' }
]
},
{ 'name' => 'field.__FIELDNAME__.formElement' },
{ 'name' => 'field.__FIELDNAME__.label' },
{ 'name' => 'field.__FIELDNAME__.value' },
{ 'name' => 'formHeader' },
{ 'name' => 'formFooter' },
{ 'name' => 'errorOccurred' },
{ 'name' => 'errorLoop',
'variables' => [ { 'name' => 'error.message' } ]
},
{ 'name' => 'isNew' },
{ 'name' => 'viewHistory.url' },
{ 'name' => 'viewHistory.label' },
{ 'name' => 'managementLinks' },
{ 'name' => 'record.controls' }
],
related => [],
},
'sql form asset template variables' => {
private => 1,
title => 'sql form asset template variables title',
body => '',
isa => [
{ namespace => "Asset_Wobject",
tag => "wobject template variables"
},
],
fields => [],
variables => [
{ 'name' => 'formId' },
{ 'name' => 'tableName' },
{ 'name' => 'maxFileSize' },
{ 'name' => 'sendMailTo' },
{ 'name' => 'showMetaData' },
{ 'name' => 'searchTemplateId' },
{ 'name' => 'editTemplateId' },
{ 'name' => 'submitGroupId' },
{ 'name' => 'alterGroupId' },
{ 'name' => 'databaseLinkId' },
{ 'name' => 'defaultView' },
],
related => []
},
};
1;

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,94 +0,0 @@
function updateFormFields() {
//alert(fieldCombo);
var fieldTypeList = document.getElementById('SQLFormFieldType');
if (fieldTypeList.selectedIndex < 0) {
fieldTypeList.selectedIndex = 0;
}
var re = fieldTypeList.options[fieldTypeList.selectedIndex].text.match(/^[^\/]+\/([^\/]+)$/);
var fieldType = RegExp.$1;
var fieldProperties = fieldTypes[fieldType];
// Hanlde sign field
if (fieldProperties['hasSign'] == 1) {
enableField('SQLFormSigned');
} else {
disableField('SQLFormSigned');
}
// Handle autoincrement field
if (fieldProperties['canAutoIncrement'] == 1) {
enableField('SQLFormAutoIncrement');
} else {
disableField('SQLFormAutoIncrement');
}
// Handle regex field
if (
(fieldProperties['canAutoIncrement'] && document.getElementById('autoIncrementField')) ||
(document.getElementById('SQLFormReadOnly') == 1)
) {
disableField('SQLFormRegex');
} else {
enableField('SQLFormRegex');
}
// Handle Field constraints section
if (document.getElementById('SQLFormFieldConstraintType').value > 0) {
enableField('SQLFormFieldConstraintTarget');
if (
(document.getElementById('SQLFormFieldConstraintTarget').value == 'value') ||
(document.getElementById('SQLFormFieldConstraintTarget').value == '' && document.getElementById('SQLFormFieldConstraintValue').value != '')
) {
enableField('SQLFormFieldConstraintValue');
} else {
disableField('SQLFormFieldConstraintValue');
}
} else {
disableField('SQLFormFieldConstraintTarget');
disableField('SQLFormFieldConstraintValue');
}
}
function enableField(id) {
var e = document.getElementById(id);
if (e) {
e.disabled = false;
e.style.display = '';
}
// also hide row if applicable
var tr = document.getElementsByTagName("tr");
if (tr == null) return;
for (i=0; i < tr.length; i++) {
if(tr[i].className == id+'Row') {
tr[i].style.display = '';
}
}
// document.getElementById(id+'row').style.display = '';
}
function disableField(id) {
var e = document.getElementById(id);
if (e) {
e.disabled = true;
e.style.display = 'none';
}
var tr = document.getElementsByTagName("tr");
if (tr == null) return;
for (i=0; i < tr.length; i++) {
if(tr[i].className == id+'Row') {
tr[i].style.display = 'none';
}
}
// document.getElementById(id+'row').style.display = 'none';
}

View file

@ -1,375 +0,0 @@
// databaseMap is use to store the available db's
var databaseMap = new Object;
// tableMap is used to cache array of table options. This could lessen the
// number of requests to the server.
var tableMap = new Object;
// columnMap will hold the columnnames (including db and tablename) for each
// joinselector
var columnMap = new Object;
var resultList1, resultList2 = null
function initDatabaseMap(databases) {
databaseMap = databases;
}
function setResultFields(field1, field2) {
resultList1 = field1;
resultList2 = field2;
}
//-----------------------------------------------------------------------------
function setAvailableDatabaseOptions(zup) {
zup.options[zup.options.length] = new Option('Please select a database', '');
for (var i = 0; i < databaseMap.length; i++) {
zup.options[zup.options.length] = new Option(databaseMap[i].key, databaseMap[i].value);
}
}
// Processes <Option><Key>Key</Key><Value>Value</Value></Option> XML
//-----------------------------------------------------------------------------
function processAjaxXml(req, selectList, cache, prepend) {
var options = req.responseXML.getElementsByTagName("Option");
if (!prepend) {
prepend = '';
}
for (var i = 0; i < options.length; i++) {
var optionKey = prepend + options[i].getElementsByTagName("Key")[0].firstChild.nodeValue;
var optionValue = prepend + options[i].getElementsByTagName("Value")[0].firstChild.nodeValue;
if (cache) {
cache[cache.length] = {
key : optionKey,
value : optionValue
};
}
if (selectList) {
selectList.options[selectList.options.length] = new Option(optionKey, optionValue); //currentOption;
}
}
}
//-----------------------------------------------------------------------------
function addJoinButtonRow(tableId, rowNumber) {
table = document.getElementById(tableId);
//rowNumber = table.rows.length - 1;
// Create join button
tr = table.insertRow(table.rows.length);
tr.id = 'joinButtonRow';
td = tr.insertCell(tr.cells.length);
td.innerHTML = '<input type="button" id="joinButton'+rowNumber+'" value="Join with another table" />';
td.colSpan = 7;
document.getElementById('joinButton'+rowNumber).onclick = function() {
hideElement('joinButton'+rowNumber);
table.deleteRow(table.rows.length - 1); // Delete row with button
addSelectorRow(tableId);
}
hideElement('joinButton'+rowNumber);
}
//-----------------------------------------------------------------------------
function deleteRows(tableId, stopAtRow) {
table = document.getElementById(tableId);
for (var i = table.rows.length; i > stopAtRow; i--) {
table.deleteRow(table.rows.length - 1);
}
addJoinButtonRow(tableId, stopAtRow);
}
//-----------------------------------------------------------------------------
function hideElement(elementId) {
element = document.getElementById(elementId);
if (element) {
element.style.display = 'none';
element.disabled = true;
}
}
//-----------------------------------------------------------------------------
function unhideElement(elementId) {
element = document.getElementById(elementId);
if (element) {
element.style.display = '';
element.disabled = false;
}
}
//-----------------------------------------------------------------------------
function hideJoinConstraints(rowNumber) {
hideElement('on'+rowNumber);
hideElement('joinFunction'+rowNumber);
hideElement('joinOnA'+rowNumber);
hideElement('joinOnB'+rowNumber);
}
//-----------------------------------------------------------------------------
function unhideJoinConstraints(rowNumber) {
unhideElement('on'+rowNumber);
unhideElement('joinFunction'+rowNumber);
unhideElement('joinOnA'+rowNumber);
unhideElement('joinOnB'+rowNumber);
}
//-----------------------------------------------------------------------------
function addSelectorRow(tableId, formDatabase, formTable, formJoinOnA, formJoinOnB, formJoinFunction) {
var table = document.getElementById(tableId);
var tr, selectName, tds = '';
if (!table) {
alert('Fatal error: tableId does not exist.');
}
var rowNumber = table.rows.length + 1;
// Insert a row
tr = table.insertRow(table.rows.length);
// Table label
tr.insertCell(tr.cells.length).innerHTML = '<b>table'+rowNumber+'</b>';
// Create database selector
selectName = 'database'+rowNumber;
td = tr.insertCell(tr.cells.length);
td.innerHTML = '<select id="'+selectName+'" name="'+selectName+'"></select>';
s = document.getElementById(selectName);
setAvailableDatabaseOptions(s);
s.onchange = function() {
setTablesInSelectList(rowNumber, s.value);
deleteRows(tableId, rowNumber);
hideJoinConstraints(rowNumber);
unhideElement('table'+rowNumber);
toggleJoinButton(rowNumber);
};
if (formDatabase) {
s.value = formDatabase;
}
// Create table selector
selectName = 'table'+rowNumber;
td = tr.insertCell(tr.cells.length);
td.innerHTML = '<select id="'+selectName+'" name="'+selectName+'"></select>';
document.getElementById(selectName).onchange = function() {
setJoinOnA(rowNumber);
setJoinOnB(rowNumber);
updateFields(rowNumber);
deleteRows(tableId, rowNumber);
if (rowNumber > 1) {
unhideJoinConstraints(rowNumber);
}
toggleJoinButton(rowNumber);
}
if (formDatabase) {
setTablesInSelectList(rowNumber, formDatabase);
document.getElementById(selectName).value = formTable;
} else {
hideElement(selectName);
}
// Create on word
td = tr.insertCell(tr.cells.length);
td.innerHTML = ' on ';
td.id = 'on'+rowNumber;
// Create first join selector
selectName = 'joinOnA'+rowNumber;
td = tr.insertCell(tr.cells.length);
td.innerHTML = '<select id="'+selectName+'" name="'+selectName+'"></select>';
document.getElementById(selectName).onchange = function() {
toggleJoinButton(rowNumber);
}
// Create joinFunction thingy
selectName = 'joinFunction'+rowNumber;
td = tr.insertCell(tr.cells.length);
td.innerHTML = '<select id="'+selectName+'" name="'+selectName+'"></select>';
document.getElementById(selectName).options[0] = new Option('Intersect on', 'intersection');
document.getElementById(selectName).options[1] = new Option('Difference on', 'difference');
// Create second join selector
selectName = 'joinOnB'+rowNumber;
td = tr.insertCell(tr.cells.length);
td.innerHTML = '<select id="'+selectName+'" name="'+selectName+'"></select>';
document.getElementById(selectName).onchange = function() {
toggleJoinButton(rowNumber);
}
if (formDatabase && formTable) {
setJoinOnA(rowNumber, formJoinOnA, formDatabase, formTable);
setJoinOnB(rowNumber);
document.getElementById('joinOnA'+rowNumber).value = formJoinOnA;
document.getElementById('joinOnB'+rowNumber).value = formJoinOnB;
document.getElementById('joinFunction'+rowNumber).value = formJoinFunction;
} else {
// Hide the join constraint controls
hideJoinConstraints(rowNumber);
}
if (rowNumber == 1) {
hideJoinConstraints(rowNumber);
}
// Finally add a row containing a hidden 'join with' button
if (!(formDatabase || formTable || formJoinOnA || formJoinOnB)) {
addJoinButtonRow(tableId, rowNumber);
}
}
//-----------------------------------------------------------------------------
function setJoinOnA(rowNumber) {
var databaseName = document.getElementById('database'+rowNumber).value;
var tableName = document.getElementById('table'+rowNumber).value;
var prepend = 'table' + rowNumber + '.';
var s = document.getElementById('joinOnA'+rowNumber);
s.length = 0;
s.options[s.options.length] = new Option('Please select a column', '');
columnMap[rowNumber] = [ ];
// Do AJAX request
var r = new AjaxRequest;
var params = {
'parameters' : {
'func' : 'processAjaxRequest',
'dbName' : databaseName,
'tName' : tableName
},
'async' : false,
'onSuccess' : function(req) { processAjaxXml(req, s, columnMap[rowNumber], prepend); }
};
r.method = 'POST';
r.handleArguments(params);
r.process();
r.onCompleteInternal();
}
//-----------------------------------------------------------------------------
function setJoinOnB(rowNumber) {
if (rowNumber > 1) {
var s = document.getElementById('joinOnB'+rowNumber);
s.length = 0;
s.options[s.options.length] = new Option('Please select a column', '');
for (var currentRow = 1; currentRow < rowNumber; currentRow++) {
if (currentRow == 1 || document.getElementById('joinFunction'+currentRow).value != 'difference') {
for (var i = 0; i < columnMap[currentRow].length; i++) {
s.options[s.options.length] = new Option(columnMap[currentRow][i].key, columnMap[currentRow][i].value);
}
}
}
}
}
//-----------------------------------------------------------------------------
function updateFields(rowNumber,value1,value2, ccValue, fcValue) {
var s1 = document.getElementById(resultList1);
s1.length = 0;
s1.options[s1.options.length] = new Option('Please select a column', '');
var s2 = document.getElementById(resultList2);
s2.length = 0;
s2.options[s2.options.length] = new Option('Please select a column', '');
var cc = document.getElementById('joinConstraintColumn');
cc.length = 0;
cc.options[cc.options.length] = new Option('Please select a column', '');
var fc = document.getElementById('SQLFormFieldConstraintTarget');
fc.length = 0;
fc.options[fc.options.length] = new Option('Custom value', 'value');
for (var currentRow = 1; currentRow <= rowNumber; currentRow++) {
if (columnMap[currentRow] && (currentRow == 1 || document.getElementById('joinFunction'+currentRow).value != 'difference')) {
for (var i = 0; i < columnMap[currentRow].length; i++) {
s1.options[s1.options.length] = new Option(columnMap[currentRow][i].key, columnMap[currentRow][i].value);
s2.options[s2.options.length] = new Option(columnMap[currentRow][i].key, columnMap[currentRow][i].value);
cc.options[cc.options.length] = new Option(columnMap[currentRow][i].key, columnMap[currentRow][i].value);
fc.options[fc.options.length] = new Option(columnMap[currentRow][i].key, columnMap[currentRow][i].value);
}
}
}
if (value1) {
s1.value = value1;
}
if (value2) {
s2.value = value2;
}
if (ccValue) {
cc.value = ccValue;
}
if (fcValue) {
fc.value = fcValue;
}
}
//-----------------------------------------------------------------------------
function setTablesInSelectList(rowNumber, database) {
var s = document.getElementById('table'+rowNumber);
if (!s) {
alert('Fatal error: selectList (table'+rowNumber+') does not exist.');
}
// Empty select list.
s.length = 0;
s.options[s.options.length] = new Option('Please select a table', '');
// If the tables aren't cached in tableMap yet, fetch them using AJAX.
if (!tableMap[database]) {
tableMap[database] = [ ];
// Do AJAX request
var r = new AjaxRequest;
var params = {
'parameters' : {
'func' : 'processAjaxRequest',
'dbName' : database
},
'async' : false,
'onSuccess' : function(req) { processAjaxXml(req, s, tableMap[database]); }
};
r.method = 'POST';
r.handleArguments(params);
r.process();
// Must run this by hand because in sync-mode the internal event handlers are not called.
r.onCompleteInternal();
// If they are cached then put them in the select list.
} else {
for (var i = 0; i < tableMap[database].length; i++) {
s.options[s.options.length] = new Option(tableMap[database][i].key, tableMap[database][i].value);
}
}
}
//-----------------------------------------------------------------------------
function toggleJoinButton(rowNumber) {
if (document.getElementById('database'+rowNumber) && document.getElementById('table'+rowNumber)) {
if (
(document.getElementById('database'+rowNumber).selectedIndex > 0) &&
(document.getElementById('table'+rowNumber).selectedIndex > 0) &&
(
(rowNumber == 1) ||
(
(document.getElementById('joinOnA'+rowNumber).selectedIndex > 0) &&
(document.getElementById('joinOnB'+rowNumber).selectedIndex > 0)
)
)
) {
unhideElement('joinButton'+rowNumber);
} else {
hideElement('joinButton'+rowNumber);
}
}
}

View file

@ -1,69 +0,0 @@
function switchField(id, switchOn) {
e = document.getElementById(id);
if (!e) {
alert("Not a valid id: ["+id+"]");
}
if (switchOn) {
document.getElementById(id).disabled = false;
document.getElementById(id).style.display = '';
} else {
document.getElementById(id).disabled = true;
document.getElementById(id).style.display = 'none';
}
}
function switchListField(conditional, id) {
if (conditional == '') {
switchField(id+'-1', false);
switchField(id+'-2', false);
} else {
if (conditional == 100 || conditional == 101) {
switchField(id+'-1', true);
switchField(id+'-2', false);
} else {
switchField(id+'-1', false);
switchField(id+'-2', true);
}
}
}
function switchNumberField(conditional, id) {
if (conditional == '') {
switchField(id+'-1', false);
switchField(id+'-2', false);
} else {
if (conditional == 10) {
switchField(id+'-1', true);
switchField(id+'-2', true);
} else {
switchField(id+'-1', true);
switchField(id+'-2', false);
}
}
}
function switchTemporalField(conditional, id) {
if (conditional == '') {
switchField(id+'-1', false);
switchField(id+'-2', false);
} else {
if (conditional == 10) {
switchField(id+'-1', true);
switchField(id+'-2', true);
} else {
switchField(id+'-1', true);
switchField(id+'-2', false);
}
}
}
function switchTextField(conditional, id) {
if (conditional == '') {
switchField(id+'-1', false);
} else {
switchField(id+'-1', true);
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB