diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt
index 97bb412f3..e3424f3e5 100644
--- a/docs/changelog/7.x.x.txt
+++ b/docs/changelog/7.x.x.txt
@@ -1,5 +1,6 @@
7.8.3
- fixed #11074: Links to CS posts not working
+ - fixed #11152: Image edits do not autocommit version tags
7.8.2
- Added scheduled vendor payout workflow activity. (Special thanks to Martin @ Oqapi)
diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm
index 8cbe945e9..f0f62444c 100644
--- a/lib/WebGUI/Asset/File/Image.pm
+++ b/lib/WebGUI/Asset/File/Image.pm
@@ -278,23 +278,27 @@ Also adds the Image template form variable.
=cut
sub www_edit {
- my $self = shift;
- return $self->session->privilege->insufficient() unless $self->canEdit;
- return $self->session->privilege->locked() unless $self->canEditIfLocked;
- my $i18n = WebGUI::International->new($self->session, 'Asset_Image');
- $self->getAdminConsole->addSubmenuItem($self->getUrl('func=resize'),$i18n->get("resize image")) if ($self->get("filename"));
- $self->getAdminConsole->addSubmenuItem($self->getUrl('func=rotate'),$i18n->get("rotate image")) if ($self->get("filename"));
- $self->getAdminConsole->addSubmenuItem($self->getUrl('func=crop'),$i18n->get("crop image")) if ($self->get("filename"));
- $self->getAdminConsole->addSubmenuItem($self->getUrl('func=annotate'),$i18n->get("annotate image")) if ($self->get("filename"));
- $self->getAdminConsole->addSubmenuItem($self->getUrl('func=undo'),$i18n->get("undo image")) if ($self->get("filename"));
- my $tabform = $self->getEditForm;
- $tabform->getTab("display")->template(
- -value=>$self->get("templateId"),
- -namespace=>"ImageAsset",
- -hoverHelp=>$i18n->get('image template description'),
- -defaultValue=>"PBtmpl0000000000000088"
- );
- return $self->getAdminConsole->render($tabform->print,$i18n->get("edit image"));
+ my $self = shift;
+ my $session = $self->session;
+ return $session->privilege->insufficient() unless $self->canEdit;
+ return $session->privilege->locked() unless $self->canEditIfLocked;
+ my $i18n = WebGUI::International->new($session, 'Asset_Image');
+ if ($self->get('filename')) {
+ my $ac = $self->getAdminConsole;
+ $ac->addSubmenuItem($self->getUrl('func=resize'), $i18n->get("resize image"));
+ $ac->addSubmenuItem($self->getUrl('func=rotate'), $i18n->get("rotate image"));
+ $ac->addSubmenuItem($self->getUrl('func=crop'), $i18n->get("crop image"));
+ $ac->addSubmenuItem($self->getUrl('func=annotate'), $i18n->get("annotate image"));
+ $ac->addSubmenuItem($self->getUrl('func=undo'), $i18n->get("undo image"));
+ }
+ my $tabform = $self->getEditForm;
+ $tabform->getTab("display")->template(
+ -value => $self->get("templateId"),
+ -namespace => "ImageAsset",
+ -hoverHelp => $i18n->get('image template description'),
+ -defaultValue => "PBtmpl0000000000000088",
+ );
+ return $self->getAdminConsole->render($tabform->print,$i18n->get("edit image"));
}
#-------------------------------------------------------------------
@@ -309,18 +313,8 @@ have been done to it.
sub www_undo {
my $self = shift;
my $previous = (@{$self->getRevisions()})[1];
- # instantiate assetId
if ($previous) {
- # my $session = $self->session;
-
- # my $cache = WebGUI::Cache->new($self->session, ["asset",$self->getId,$self->getRevisionDate]);
- # $cache->flush;
- # my $cache = WebGUI::Cache->new($previous->session, ["asset",$previous->getId,$previous->getRevisionDate]);
- # $cache->flush;
-
- $self = $self->purgeRevision();
- # $self = undef;
- # $self = WebGUI::Asset->new($previous->session, $previous->getId, ref $previous, $previous->getRevisionDate);
+ $self->purgeRevision();
$self = $previous;
$self->generateThumbnail;
}
@@ -342,20 +336,21 @@ Allow the user to place some text on their image. This is done via JS and toolt
=cut
sub www_annotate {
- my $self = shift;
- return $self->session->privilege->insufficient() unless $self->canEdit;
- return $self->session->privilege->locked() unless $self->canEditIfLocked;
+ my $self = shift;
+ my $session = $self->session;
+ return $session->privilege->insufficient() unless $self->canEdit;
+ return $session->privilege->locked() unless $self->canEditIfLocked;
if (1) {
my $newSelf = $self->addRevision();
delete $newSelf->{_storageLocation};
- $newSelf->getStorageLocation->annotate($newSelf->get("filename"),$newSelf,$newSelf->session->form);
+ $newSelf->getStorageLocation->annotate($newSelf->get("filename"),$newSelf,$session->form);
$newSelf->setSize($newSelf->getStorageLocation->getFileSize($newSelf->get("filename")));
$self = $newSelf;
$self->generateThumbnail;
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($session, { allowComments => 0 });
}
- my ($style, $url) = $self->session->quick(qw(style url));
- # $style->setLink($url->extras('annotate/imageMap.css'), {rel=>'stylesheet', type=>'text/css'});
+ my ($style, $url) = $session->quick(qw(style url));
$style->setLink($url->extras('yui/build/resize/assets/skins/sam/resize.css'), {rel=>'stylesheet', type=>'text/css'});
$style->setLink($url->extras('yui/build/fonts/fonts-min.css'), {rel=>'stylesheet', type=>'text/css'});
@@ -367,10 +362,7 @@ sub www_annotate {
$style->setScript($url->extras('yui/build/resize/resize-min.js'), {type=>'text/javascript'});
$style->setScript($url->extras('yui/build/imagecropper/imagecropper-min.js'), {type=>'text/javascript'});
- # my $imageAsset = $self->session->db->getRow("ImageAsset","assetId",$self->getId);
-
my @pieces = split(/\n/, $self->get('annotations'));
- # my ($top_left, $width_height, $note) = split(/\n/, $imageAsset->{annotations});
my ($img_null, $tooltip_block, $tooltip_none) = ('', '', '');
for (my $i = 0; $i < $#pieces; $i += 3) {
@@ -378,7 +370,6 @@ sub www_annotate {
$tooltip_block .= "YAHOO.util.Dom.setStyle('tooltip$i', 'display', 'block');\n";
$tooltip_none .= "YAHOO.util.Dom.setStyle('tooltip$i', 'display', 'none');\n";
my $j = $i + 2;
- # warn("i: $i: ", $self->session->form->process("delAnnotate$i"));
}
my $image = '

';
@@ -386,8 +377,8 @@ sub www_annotate {
my ($width, $height) = $self->getStorageLocation->getSize($self->get("filename"));
my @checkboxes = ();
- my $i18n = WebGUI::International->new($self->session,"Asset_Image");
- my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl);
+ my $i18n = WebGUI::International->new($session,"Asset_Image");
+ my $f = WebGUI::HTMLForm->new($session);
$self->getAdminConsole->addSubmenuItem($self->getUrl('func=edit'),$i18n->get("edit image"));
$f->hidden(
@@ -564,49 +555,51 @@ Returns the user to the roate form.
=cut
sub www_rotate {
- my $self = shift;
- return $self->session->privilege->insufficient() unless $self->canEdit;
- return $self->session->privilege->locked() unless $self->canEditIfLocked;
- if (defined $self->session->form->process("Rotate")) {
+ my $self = shift;
+ my $session = $self->session;
+ return $session->privilege->insufficient() unless $self->canEdit;
+ return $session->privilege->locked() unless $self->canEditIfLocked;
+ if (defined $session->form->process("Rotate")) {
my $newSelf = $self->addRevision();
delete $newSelf->{_storageLocation};
- $newSelf->getStorageLocation->rotate($newSelf->get("filename"),$newSelf->session->form->process("Rotate"));
+ $newSelf->getStorageLocation->rotate($newSelf->get("filename"),$session->form->process("Rotate"));
$newSelf->setSize($newSelf->getStorageLocation->getFileSize($newSelf->get("filename")));
$self = $newSelf;
$self->generateThumbnail;
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($session, { allowComments => 0 });
}
my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename"));
##YUI specific datatable CSS
- my ($style, $url) = $self->session->quick(qw(style url));
+ my ($style, $url) = $session->quick(qw(style url));
my $img_name = $self->getStorageLocation->getUrl($self->get("filename"));
my $img_file = $self->get("filename");
my $image = '
';
- my $i18n = WebGUI::International->new($self->session,"Asset_Image");
+ my $i18n = WebGUI::International->new($session,"Asset_Image");
$self->getAdminConsole->addSubmenuItem($self->getUrl('func=edit'),$i18n->get("edit image"));
- my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl);
+ my $f = WebGUI::HTMLForm->new($session);
$f->hidden(
-name=>"func",
-value=>"rotate"
- );
+ );
$f->button(
-value=>"Left",
-extras=>qq(onclick="var deg = document.getElementById('Rotate_formId').value; deg = parseInt(deg) + 90; document.getElementById('Rotate_formId').value = deg;"),
- );
+ );
$f->button(
-value=>"Right",
-extras=>qq(onclick="var deg = document.getElementById('Rotate_formId').value; deg = parseInt(deg) - 90; document.getElementById('Rotate_formId').value = deg;"),
- );
+ );
$f->integer(
-label=>$i18n->get('degree'),
-name=>"Rotate",
-value=>0,
- );
+ );
$f->submit;
- return $self->getAdminConsole->render($f->print.$image,$i18n->get("rotate image"));
+ return $self->getAdminConsole->render($f->print.$image,$i18n->get("rotate image"));
}
#-------------------------------------------------------------------
@@ -621,22 +614,24 @@ Returns the user to the resize form.
=cut
sub www_resize {
- my $self = shift;
- return $self->session->privilege->insufficient() unless $self->canEdit;
- return $self->session->privilege->locked() unless $self->canEditIfLocked;
- if ($self->session->form->process("newWidth") || $self->session->form->process("newHeight")) {
- my $newSelf = $self->addRevision();
- delete $newSelf->{_storageLocation};
- $newSelf->getStorageLocation->resize($newSelf->get("filename"),$newSelf->session->form->process("newWidth"),$newSelf->session->form->process("newHeight"));
- $newSelf->setSize($newSelf->getStorageLocation->getFileSize($newSelf->get("filename")));
- $self = $newSelf;
- $self->generateThumbnail;
- }
+ my $self = shift;
+ my $session = $self->session;
+ return $session->privilege->insufficient() unless $self->canEdit;
+ return $session->privilege->locked() unless $self->canEditIfLocked;
+ if ($session->form->process("newWidth") || $session->form->process("newHeight")) {
+ my $newSelf = $self->addRevision();
+ delete $newSelf->{_storageLocation};
+ $newSelf->getStorageLocation->resize($newSelf->get("filename"),$session->form->process("newWidth"),$session->form->process("newHeight"));
+ $newSelf->setSize($newSelf->getStorageLocation->getFileSize($newSelf->get("filename")));
+ $self = $newSelf;
+ $self->generateThumbnail;
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($session, { allowComments => 0 });
+ }
my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->get("filename"));
##YUI specific datatable CSS
- my ($style, $url) = $self->session->quick(qw(style url));
+ my ($style, $url) = $session->quick(qw(style url));
$style->setLink($url->extras('yui/build/fonts/fonts-min.css'), {rel=>'stylesheet', type=>'text/css'});
$style->setLink($url->extras('yui/build/resize/assets/skins/sam/resize.css'), {rel=>'stylesheet', type=>'text/css'});
@@ -683,33 +678,33 @@ sub www_resize {
);
- my $i18n = WebGUI::International->new($self->session,"Asset_Image");
- $self->getAdminConsole->addSubmenuItem($self->getUrl('func=edit'),$i18n->get("edit image"));
- my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl);
- $f->hidden(
- -name=>"func",
- -value=>"resize"
- );
- $f->readOnly(
- -label=>$i18n->get('image size'),
- -hoverHelp=>$i18n->get('image size description'),
- -value=>$x.' x '.$y,
- );
- $f->integer(
- -label=>$i18n->get('new width'),
- -hoverHelp=>$i18n->get('new width description'),
- -name=>"newWidth",
- -value=>$x,
- );
- $f->integer(
- -label=>$i18n->get('new height'),
- -hoverHelp=>$i18n->get('new height description'),
- -name=>"newHeight",
- -value=>$y,
- );
- $f->submit;
- my $image = '
'.$resize_js;
- return $self->getAdminConsole->render($f->print.$image,$i18n->get("resize image"));
+ my $i18n = WebGUI::International->new($session,"Asset_Image");
+ $self->getAdminConsole->addSubmenuItem($self->getUrl('func=edit'),$i18n->get("edit image"));
+ my $f = WebGUI::HTMLForm->new($session);
+ $f->hidden(
+ -name=>"func",
+ -value=>"resize"
+ );
+ $f->readOnly(
+ -label=>$i18n->get('image size'),
+ -hoverHelp=>$i18n->get('image size description'),
+ -value=>$x.' x '.$y,
+ );
+ $f->integer(
+ -label=>$i18n->get('new width'),
+ -hoverHelp=>$i18n->get('new width description'),
+ -name=>"newWidth",
+ -value=>$x,
+ );
+ $f->integer(
+ -label=>$i18n->get('new height'),
+ -hoverHelp=>$i18n->get('new height description'),
+ -name=>"newHeight",
+ -value=>$y,
+ );
+ $f->submit;
+ my $image = '
'.$resize_js;
+ return $self->getAdminConsole->render($f->print.$image,$i18n->get("resize image"));
}
#-------------------------------------------------------------------
@@ -725,29 +720,31 @@ Returns the user to the cropping form.
=cut
sub www_crop {
- my $self = shift;
- return $self->session->privilege->insufficient() unless $self->canEdit;
- return $self->session->privilege->locked() unless $self->canEditIfLocked;
+ my $self = shift;
+ my $session = $self->session;
+ return $session->privilege->insufficient() unless $self->canEdit;
+ return $session->privilege->locked() unless $self->canEditIfLocked;
- if ($self->session->form->process("Width") || $self->session->form->process("Height")
- || $self->session->form->process("Top") || $self->session->form->process("Left")) {
+ if ($session->form->process("Width") || $session->form->process("Height")
+ || $session->form->process("Top") || $session->form->process("Left")) {
my $newSelf = $self->addRevision();
delete $newSelf->{_storageLocation};
$newSelf->getStorageLocation->crop(
$newSelf->get("filename"),
- $newSelf->session->form->process("Width"),
- $newSelf->session->form->process("Height"),
- $newSelf->session->form->process("Top"),
- $newSelf->session->form->process("Left")
+ $session->form->process("Width"),
+ $session->form->process("Height"),
+ $session->form->process("Top"),
+ $session->form->process("Left")
);
$self = $newSelf;
$self->generateThumbnail;
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($session, { allowComments => 0 });
}
my $filename = $self->get("filename");
##YUI specific datatable CSS
- my ($style, $url) = $self->session->quick(qw(style url));
+ my ($style, $url) = $session->quick(qw(style url));
my $crop_js = qq(