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 +='
' - str += ''; - str +=''; + str += ''; + str +=''; 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--; }