fixing bugs resulting from new form package

This commit is contained in:
JT Smith 2005-07-28 20:18:37 +00:00
parent 6ae2995591
commit 9c3a4eb309
5 changed files with 37 additions and 78 deletions

View file

@ -74,29 +74,29 @@ sub edit {
$tabform->getTab("properties")->yesNo(
-name=>"isHidden",
-value=>1,
-label=>WebGUI::International::get(886,"FilePile"),
-hoverHelp=>WebGUI::International::get('886 description',"FilePile"),
-label=>WebGUI::International::get(886,"Asset_FilePile"),
-hoverHelp=>WebGUI::International::get('886 description',"Asset_FilePile"),
-uiLevel=>6
);
$tabform->getTab("properties")->yesNo(
-name=>"newWindow",
-value=>0,
-label=>WebGUI::International::get(940,"FilePile"),
-hoverHelp=>WebGUI::International::get('940 description',"FilePile"),
-label=>WebGUI::International::get(940,"Asset_FilePile"),
-hoverHelp=>WebGUI::International::get('940 description',"Asset_FilePile"),
-uiLevel=>6
);
$tabform->addTab("security",WebGUI::International::get(107,"Asset"),6);
$tabform->getTab("security")->dateTime(
-name=>"startDate",
-label=>WebGUI::International::get(497,"FilePile"),
-hoverHelp=>WebGUI::International::get('497 description',"FilePile"),
-label=>WebGUI::International::get(497,"Asset_FilePile"),
-hoverHelp=>WebGUI::International::get('497 description',"Asset_FilePile"),
-value=>$self->get("startDate"),
-uiLevel=>6
);
$tabform->getTab("security")->dateTime(
-name=>"endDate",
-label=>WebGUI::International::get(498,"FilePile"),
-hoverHelp=>WebGUI::International::get('498 description',"FilePile"),
-label=>WebGUI::International::get(498,"Asset_FilePile"),
-hoverHelp=>WebGUI::International::get('498 description',"Asset_FilePile"),
-value=>$self->get("endDate"),
-uiLevel=>6
);
@ -118,33 +118,33 @@ sub edit {
$tabform->getTab("security")->selectList(
-name=>"ownerUserId",
-options=>$users,
-label=>WebGUI::International::get(108,"FilePile"),
-hoverHelp=>WebGUI::International::get('108 description',"FilePile"),
-label=>WebGUI::International::get(108,"Asset_FilePile"),
-hoverHelp=>WebGUI::International::get('108 description',"Asset_FilePile"),
-value=>[$self->get("ownerUserId")],
-subtext=>$subtext,
-uiLevel=>6
);
$tabform->getTab("security")->group(
-name=>"groupIdView",
-label=>WebGUI::International::get(872,"FilePile"),
-hoverHelp=>WebGUI::International::get('872 description',"FilePile"),
-label=>WebGUI::International::get(872,"Asset_FilePile"),
-hoverHelp=>WebGUI::International::get('872 description',"Asset_FilePile"),
-value=>[$self->get("groupIdView")],
-uiLevel=>6
);
$tabform->getTab("security")->group(
-name=>"groupIdEdit",
-label=>WebGUI::International::get(871,"FilePile"),
-hoverHelp=>WebGUI::International::get('871 description',"FilePile"),
-label=>WebGUI::International::get(871,"Asset_FilePile"),
-hoverHelp=>WebGUI::International::get('871 description',"Asset_FilePile"),
-value=>[$self->get("groupIdEdit")],
-excludeGroups=>[1,7],
-uiLevel=>6
);
$tabform->getTab("properties")->readOnly(
$tabform->getTab("properties")->file(
-label=>WebGUI::International::get("upload files", "Asset_FilePile"),
-hoverHelp=>WebGUI::International::get("upload files", "Asset_FilePile"),
-value=>$self->getUploadControl
-maxAttachments=>100
);
$self->getAdminConsole->setHelp("file pile add/edit","FilePile");
$self->getAdminConsole->setHelp("file pile add/edit","Asset_FilePile");
return $self->getAdminConsole->render($tabform->print,WebGUI::International::get("add pile", "Asset_FilePile"));
}
@ -208,30 +208,6 @@ sub getName {
return WebGUI::International::get('file pile',"Asset_FilePile");
}
#-------------------------------------------------------------------
sub getUploadControl {
my $self = shift;
WebGUI::Style::setScript($session{config}{extrasURL}.'/FileUploadControl.js',{type=>"text/javascript"});
my $uploadControl = '<div id="fileUploadControl"> </div>
<script>
var fileLimit = 100;
var images = new Array();
';
opendir(DIR,$session{config}{extrasPath}.'/fileIcons');
my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files) {
unless ($file eq "." || $file eq "..") {
my $ext = $file;
$ext =~ s/(.*?)\.gif/$1/;
$uploadControl .= 'images["'.$ext.'"] = "'.$session{config}{extrasURL}.'/fileIcons/'.$file.'";'."\n";
}
}
$uploadControl .= 'var uploader = new FileUploadControl("fileUploadControl", images, "'.WebGUI::International::get('removeLabel','WebGUI').'");
uploader.addRow();
</script>';
return $uploadControl;
}
#-------------------------------------------------------------------

View file

@ -465,25 +465,9 @@ sub getUploadControl {
}
return $uploadControl unless ($i < $maxAttachments);
}
WebGUI::Style::setScript($session{config}{extrasURL}.'/FileUploadControl.js',{type=>"text/javascript"});
$uploadControl .= '<div id="fileUploadControl"> </div>
<script>
var images = new Array();
var fileLimit = '.$maxAttachments.';
';
opendir(DIR,$session{config}{extrasPath}.'/fileIcons');
my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files) {
unless ($file eq "." || $file eq "..") {
my $ext = $file;
$ext =~ s/(.*?)\.gif/$1/;
$uploadControl .= 'images["'.$ext.'"] = "'.$session{config}{extrasURL}.'/fileIcons/'.$file.'";'."\n";
}
}
$uploadControl .= 'var uploader = new FileUploadControl("fileUploadControl", images, "'.WebGUI::International::get('removeLabel','WebGUI').'");
uploader.addRow();
</script>';
$uploadControl .= WebGUI::Form::file(
maxAttachments=>$maxAttachments
);
return $uploadControl;
}

View file

@ -302,9 +302,7 @@ sub new {
%raw = @_;
}
my %params;
# Ensure that overrides overwrite the previously defined definition of a field
my @reversedDefinitions = reverse @{$class->definition};
foreach my $definition (@reversedDefinitions) {
foreach my $definition (reverse @{$class->definition}) {
foreach my $fieldName (keys %{$definition}) {
my $value = $raw{$fieldName};
# if we have no value, try the tagged name

View file

@ -65,7 +65,7 @@ sub definition {
push(@{$definition}, {
name=>{
defaultValue=>"file"
}
},
maxAttachments=>{
defaultValue=>1
}
@ -100,7 +100,7 @@ sub getValueFromPost {
my $self = shift;
my $storage = WebGUI::Storage->create;
$storage->addFileFromFormPost($self->{name});
@files = $storage->getFiles;
my @files = $storage->getFiles;
if (scalar(@files) < 1) {
$storage->delete;
return undef;
@ -130,7 +130,7 @@ sub toHtml {
unless ($file eq "." || $file eq "..") {
my $ext = $file;
$ext =~ s/(.*?)\.gif/$1/;
$uploadControl .= 'images["'.$ext.'"] = "'.$session{config}{extrasURL}.'/fileIcons/'.$file.'";'."\n";
$uploadControl .= 'fileIcons["'.$ext.'"] = "'.$session{config}{extrasURL}.'/fileIcons/'.$file.'";'."\n";
}
}
$uploadControl .= 'var uploader = new FileUploadControl("'.$self->{name}.'", fileIcons, "'.WebGUI::International::get('removeLabel','WebGUI').'","'.$self->{maxAttachments}.'");

View file

@ -2,14 +2,17 @@
//input. Each file upload input is named "file" the control must be rendered in a form. The
//Workspace id is the id of the div in the html page to render the control in.
function FileUploadControl(workspaceId, imageArray, removeLabel) {
function FileUploadControl(fieldName, imageArray, removeLabel, fileLimit) {
this.images = images;
this.images = imageArray;
this.fileLimit = fileLimit;
this.fileCount = 1;
this.fieldName = fieldName;
workspaceId = fieldName+"_fileUploadControl";
this.workspaceId = workspaceId;
this.dom=document.getElementById&&!document.all;
this.topLevelElement=this.dom? "HTML" : "BODY"
document.write('<div id="'+workspaceId+'"> </div>');
var workspace = document.getElementById(workspaceId);
var str = '<table border="0"><tbody id="' + workspaceId + '.fileUpload.body">';
@ -17,8 +20,8 @@ function FileUploadControl(workspaceId, imageArray, removeLabel) {
str +='<table style="display: none;">'
str += '<tr id="' + workspaceId + '.template" class="fileUploadRow"><td><img src="' + images["unknown"] + '" style="visibility: hidden"></td>';
str +='<td><input type="file" name="file" size="40" onchange="FileUploadControl_valueChange(event)"></td><td><input type="button" value="' + removeLabel + '" onclick="FileUploadControl_removeButtonClick(event)"></td></tr>';
str += '<tr id="' + workspaceId + '.template" class="fileUploadRow"><td><img src="' + imageArray["unknown"] + '" style="visibility: hidden"></td>';
str +='<td><input type="file" name="'+fieldName+'" size="40" onchange="FileUploadControl_valueChange(event)"></td><td><input type="button" value="' + removeLabel + '" onclick="FileUploadControl_removeButtonClick(event)"></td></tr>';
str += '</table>';
@ -80,11 +83,6 @@ function FileUploadControl_swapImage(firedobj) {
//removes a row from the control
function FileUploadControl_removeRow(firedobj) {
if (this.tbody.childNodes[this.tbody.childNodes.length -1] == this.getRow(firedobj)) {
window.status="cant remove last; return true";
return;
}
var row = this.getRow(firedobj);
this.tbody.removeChild(row);
}
@ -104,9 +102,12 @@ function FileUploadControl_removeButtonClick(e) {
var firedobj =dom? e.target : e.srcElement
var control = FileUploadControl_getControl(firedobj);
if (control.tbody.childNodes[control.tbody.childNodes.length -1] == control.getRow(firedobj)) {
control.addRow();
} else {
control.fileCount--;
}
control.removeRow(firedobj);
control.fileCount--;
}