diff --git a/lib/WebGUI/Asset/FilePile.pm b/lib/WebGUI/Asset/FilePile.pm
index 760ec1e9d..f13d7f50e 100644
--- a/lib/WebGUI/Asset/FilePile.pm
+++ b/lib/WebGUI/Asset/FilePile.pm
@@ -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 = '
- ';
- return $uploadControl;
-}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm
index 418a41c97..cc1f84544 100644
--- a/lib/WebGUI/Asset/Post.pm
+++ b/lib/WebGUI/Asset/Post.pm
@@ -465,25 +465,9 @@ sub getUploadControl {
}
return $uploadControl unless ($i < $maxAttachments);
}
- WebGUI::Style::setScript($session{config}{extrasURL}.'/FileUploadControl.js',{type=>"text/javascript"});
- $uploadControl .= '
- ';
+ $uploadControl .= WebGUI::Form::file(
+ maxAttachments=>$maxAttachments
+ );
return $uploadControl;
}
diff --git a/lib/WebGUI/Form/Control.pm b/lib/WebGUI/Form/Control.pm
index 5ee3a6c22..78b5aa24d 100644
--- a/lib/WebGUI/Form/Control.pm
+++ b/lib/WebGUI/Form/Control.pm
@@ -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
diff --git a/lib/WebGUI/Form/file.pm b/lib/WebGUI/Form/file.pm
index cb192787a..3aa141b7d 100644
--- a/lib/WebGUI/Form/file.pm
+++ b/lib/WebGUI/Form/file.pm
@@ -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}.'");
diff --git a/www/extras/FileUploadControl.js b/www/extras/FileUploadControl.js
index ce43e2c2f..f4bf2a3b9 100755
--- a/www/extras/FileUploadControl.js
+++ b/www/extras/FileUploadControl.js
@@ -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('
');
var workspace = document.getElementById(workspaceId);
var str = '';
@@ -17,8 +20,8 @@ function FileUploadControl(workspaceId, imageArray, removeLabel) {
str +='';
@@ -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--;
}