htmlArea Collateral Image Manager
This commit is contained in:
parent
1cf73bc1b3
commit
68e302222c
2 changed files with 586 additions and 175 deletions
|
|
@ -38,7 +38,8 @@ our @ISA = qw(Exporter);
|
|||
our @EXPORT = qw(&www_editCollateral &www_editCollateralSave &www_deleteCollateral
|
||||
&www_deleteCollateralConfirm &www_listCollateral
|
||||
&www_deleteCollateralFile &www_editCollateralFolder &www_editCollateralFolderSave &www_deleteCollateralFolder
|
||||
&www_deleteCollateralFolderConfirm);
|
||||
&www_deleteCollateralFolderConfirm &www_htmlArealistCollateral &www_htmlAreaviewCollateral &www_htmlAreaUpload
|
||||
&www_htmlAreaDelete &www_htmlAreaCreateFolder);
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _submenu {
|
||||
|
|
@ -465,5 +466,182 @@ sub www_listCollateral {
|
|||
return _submenu($output);
|
||||
}
|
||||
|
||||
1;
|
||||
#-------------------------------------------------------------------
|
||||
sub _htmlAreaCreateTree {
|
||||
my ($output);
|
||||
my ($name, $description, $url, $image, $indent, $target, $delete) = @_;
|
||||
if($delete) {
|
||||
$delete = qq/<a href="javascript:deleteCollateral('$delete')" title="delete $name">/;
|
||||
$delete .= '<img align="bottom" border="0" src="'.$session{config}{extrasURL}.
|
||||
'/toolbar/default/delete.gif" width="16" heigth="17"></a>';
|
||||
}
|
||||
$target = ' target="'.$target.'" ' if ($target);
|
||||
$output .= '<tr><td align="left" valign="bottom" width="100%">';
|
||||
$output .= ('<img src="'.$session{config}{extrasURL}.'/htmlArea/images/indent.gif" width="17" heigth="17">') x$indent;
|
||||
$output .= '<img src="'.$session{config}{extrasURL}.'/htmlArea/images/'.$image.'" align="bottom" alt="'.$name.'">';
|
||||
$output .= '<a title="'.$description.'" href="'.$url.'" '.$target.'><b>'.$name.'</b></a></td>';
|
||||
$output .= '<td class="delete" align="right" valign="bottom">'.$delete.'</td></tr>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_htmlArealistCollateral {
|
||||
my (@parents, $output, $sth, $data, $folderId, $parent, $indent);
|
||||
$session{form}{makePrintable}=1; $session{form}{style}=-10; # Special style for this output
|
||||
return "<b>Only Content Managers are allowed to use WebGUI Collateral</b>" unless (WebGUI::Privilege::isInGroup(4));
|
||||
|
||||
$output .= '<table border="0" cellspacing="0" cellpadding="0" width="100%">';
|
||||
$folderId = $session{form}{fid} || 0;
|
||||
my $parent = $folderId;
|
||||
# push parent folders in array so it can be reversed
|
||||
unshift(@parents, $parent);
|
||||
until($parent == 0) {
|
||||
($parent) = WebGUI::SQL->quickArray("select parentId from collateralFolder where collateralFolderId=$parent");
|
||||
unshift(@parents, $parent);
|
||||
}
|
||||
# Build tree for opened parent folders
|
||||
foreach $parent (@parents) {
|
||||
my ($name, $description) = WebGUI::SQL->quickArray("select name, description from
|
||||
collateralFolder where collateralFolderId=$parent");
|
||||
my ($itemsInFolder) = WebGUI::SQL->quickArray("select count(*) from collateral where collateralFolderId = $parent");
|
||||
my ($foldersInFolder)=WebGUI::SQL->quickArray("select count(*) from collateralFolder where parentId=$parent");
|
||||
my $delete = "fid=$parent" unless ($itemsInFolder + $foldersInFolder);
|
||||
$output .= _htmlAreaCreateTree($name, $description,
|
||||
WebGUI::URL::page('op=htmlArealistCollateral&fid='.$parent), "opened.gif",
|
||||
$indent++,"" ,$delete);
|
||||
}
|
||||
# Extend tree with closed folders in current folder
|
||||
$sth = WebGUI::SQL->read("select collateralFolderId, name, description from collateralFolder
|
||||
where parentId=$folderId and collateralFolderId<>0 order by name");
|
||||
while ($data = $sth->hashRef) {
|
||||
my ($itemsInFolder) = WebGUI::SQL->quickArray("select count(*) from collateral where
|
||||
collateralFolderId = ".$data->{collateralFolderId});
|
||||
my $delete = 'fid='.$data->{collateralFolderId} unless $itemsInFolder;
|
||||
$output .= _htmlAreaCreateTree($data->{name}, $data->{description},
|
||||
WebGUI::URL::page('op=htmlArealistCollateral&fid='.$data->{collateralFolderId}),
|
||||
"closed.gif", $indent, "", $delete);
|
||||
}
|
||||
# Extend tree with images in current folder
|
||||
$sth = WebGUI::SQL->read('select collateralId, name, filename from collateral where collateralType = "image" '.
|
||||
"and collateralFolderId = $folderId");
|
||||
while ($data = $sth->hashRef) {
|
||||
$data->{filename} =~ /\.([^\.]+)$/; # Get extension
|
||||
my $fileType = $1.'.gif';
|
||||
$output .= _htmlAreaCreateTree($data->{filename}, $data->{name},
|
||||
WebGUI::URL::page('op=htmlAreaviewCollateral&cid='.$data->{collateralId}),
|
||||
$fileType, $indent, "viewer", 'cid='.$data->{collateralId}.'&fid='.$folderId);
|
||||
}
|
||||
$output .= '</table>';
|
||||
$output .= '<script language="javascript">'."\n".'actionComplete("","'.$folderId.'","","");';
|
||||
$output .= "\n</script>\n";
|
||||
$sth->finish;
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_htmlAreaviewCollateral {
|
||||
my($output, $collateral, $file, $x, $y, $image, $error);
|
||||
$session{form}{makePrintable}=1; $session{form}{style}=-10; # Special style for this output
|
||||
$output .= '<table align="center" border="0" cellspacing="0" cellpadding="2" width="100%" height="100%">';
|
||||
if($session{form}{cid} == 0 || ! WebGUI::Privilege::isInGroup(4)) {
|
||||
$output .= '<tr><td align="center" valign="middle" width="100%" height="100%">';
|
||||
$output .= '<p align="center"><br><img src="'.$session{config}{extrasURL}.'/styles/webgui/icon.gif"
|
||||
border="0"></p>';
|
||||
$output .= '<P align=center><STRONG>WebGUI Image Manager<BR>for htmlArea</STRONG></P>';
|
||||
$output .= '</td></tr></table>';
|
||||
} else {
|
||||
my $c = WebGUI::Collateral->new($session{form}{cid});
|
||||
$collateral = $c->get;
|
||||
$file = WebGUI::Attachment->new($collateral->{filename},"images",$collateral->{collateralId});
|
||||
$output .= '<tr><td class="label" align="center" valign="middle" width="100%">';
|
||||
$output .= '<b>'.$file->getFilename.'</b><br>';
|
||||
if ($hasImageMagick) {
|
||||
$image = Image::Magick->new;
|
||||
$error = $image->Read($file->getPath);
|
||||
($x, $y) = $image->Get('width','height');
|
||||
$output .= $error ? "Error reading image: $error" : "<i>($x × $y)</i>";
|
||||
}
|
||||
$output .= '</td></tr><tr><td align="center" valign="middle" width="100%" height="100%">';
|
||||
$output .= '<img src="'.$file->getThumbnail.'" border="0">';
|
||||
$output .= '</td></tr></table>';
|
||||
$output .= '<script language="javascript">';
|
||||
$output .= "\nvar src = '".$file->getURL."';\n";
|
||||
$output .= "if(src.length > 0) {
|
||||
var manager = findAncestor(window.frameElement, 'manager', 'TABLE');
|
||||
if(manager)
|
||||
manager.all.txtFileName.value = src;
|
||||
}
|
||||
</script>\n";
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_htmlAreaUpload {
|
||||
$session{form}{makePrintable}=1; $session{form}{style}=-10; # Special style for this output
|
||||
return "<b>Only Content Managers are allowed to use WebGUI Collateral</b>" unless (WebGUI::Privilege::isInGroup(4));
|
||||
return www_htmlArealistCollateral() if ($session{form}{image} eq "");
|
||||
my($test, $file);
|
||||
$session{form}{fid} = $session{form}{collateralFolderId} = $session{form}{path};
|
||||
my $collateral = WebGUI::Collateral->new("new");
|
||||
$session{form}{thumbnailSize} ||= $session{setting}{thumbnailSize};
|
||||
$session{form}{cid} = $collateral->get("collateralId");
|
||||
$collateral->save("image", $session{form}{thumbnailSize});
|
||||
$session{form}{name} = "untitled" if ($session{form}{name} eq "");
|
||||
while (($test) = WebGUI::SQL->quickArray("select name from collateral
|
||||
where name=".quote($session{form}{name})." and collateralId<>".$collateral->get("collateralId"))) {
|
||||
if ($session{form}{name} =~ /(.*)(\d+$)/) {
|
||||
$session{form}{name} = $1.($2+1);
|
||||
} elsif ($test ne "") {
|
||||
$session{form}{name} .= "2";
|
||||
}
|
||||
}
|
||||
$collateral->set($session{form});
|
||||
$session{form}{collateralType} = "";
|
||||
return www_htmlArealistCollateral();
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_htmlAreaDelete {
|
||||
$session{form}{makePrintable}=1; $session{form}{style}=-10; # Special style for this output
|
||||
return "<b>Only Content Managers are allowed to use WebGUI Collateral</b>" unless (WebGUI::Privilege::isInGroup(4));
|
||||
if($session{form}{cid}) { # Delete Image
|
||||
my $collateral = WebGUI::Collateral->new($session{form}{cid});
|
||||
$collateral->delete;
|
||||
} elsif($session{form}{fid} and not($session{form}{cid})) {
|
||||
return WebGUI::Privilege::vitalComponent() unless ($session{form}{fid} > 999);
|
||||
my ($parent) = WebGUI::SQL->quickArray("select parentId from collateralFolder
|
||||
where collateralFolderId=".$session{form}{fid});
|
||||
WebGUI::SQL->write("delete from collateralFolder where collateralFolderId=".$session{form}{fid});
|
||||
$session{form}{fid}=$parent;
|
||||
}
|
||||
return www_htmlArealistCollateral();
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_htmlAreaCreateFolder {
|
||||
$session{form}{makePrintable}=1; $session{form}{style}=-10; # Special style for this output
|
||||
return "<b>Only Content Managers are allowed to use WebGUI Collateral</b>" unless (WebGUI::Privilege::isInGroup(4));
|
||||
$session{form}{fid} = getNextId("collateralFolderId");
|
||||
WebGUI::Session::setScratch("collateralFolderId",$session{form}{fid});
|
||||
WebGUI::SQL->write("insert into collateralFolder (collateralFolderId) values ($session{form}{fid})");
|
||||
my $folderId = $session{scratch}{collateralFolderId} || 0;
|
||||
$session{form}{name} = $session{form}{folder};
|
||||
$session{form}{name} = "untitled" if ($session{form}{name} eq "");
|
||||
while (my ($test) = WebGUI::SQL->quickArray("select name from collateralFolder
|
||||
where name=".quote($session{form}{name})." and collateralFolderId<>$folderId")) {
|
||||
if ($session{form}{name} =~ /(.*)(\d+$)/) {
|
||||
$session{form}{name} = $1.($2+1);
|
||||
} elsif ($test ne "") {
|
||||
$session{form}{name} .= "2";
|
||||
}
|
||||
}
|
||||
WebGUI::SQL->write("update collateralFolder set parentId=$session{form}{path}, name=".quote($session{form}{name})
|
||||
.", description=".quote($session{form}{description})
|
||||
." where collateralFolderId=$folderId");
|
||||
$session{form}{fid} = $session{form}{path};
|
||||
return www_htmlArealistCollateral();
|
||||
}
|
||||
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -1,206 +1,439 @@
|
|||
<!-- based on insimage.dlg -->
|
||||
<html style="font: 9 pt 'MS Shell Dlg', Helvetica, sans-serif; width: 470px; height: 520px; "> <!-- ALL features enabled -->
|
||||
<!--<html style="font: 9 pt 'MS Shell Dlg', Helvetica, sans-serif; width: 470px; height: 497px; "> <!-- ALL features enabled -->
|
||||
<!-- <html style="font: 9 pt 'MS Shell Dlg', Helvetica, sans-serif; width: 470px; height: 454px; "> <!-- CREATE disabled -->
|
||||
<!-- <html style="font: 9 pt 'MS Shell Dlg', Helvetica, sans-serif; width: 470px; height: 410px; "> <!-- UPLOAD disabled -->
|
||||
<!-- <html style="font: 9 pt 'MS Shell Dlg', Helvetica, sans-serif; width: 470px; height: 368px; "> <!-- CREATE & UPLOAD disabled -->
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML 3.2//EN">
|
||||
<HTML id=dlgImage STYLE="width: 432px; height: 194px; ">
|
||||
<HEAD>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta http-equiv="MSThemeCompatible" content="Yes">
|
||||
<TITLE>Insert Image</TITLE>
|
||||
<style>
|
||||
html, body, button, div, input, select, fieldset { font-family: MS Shell Dlg; font-size: 8pt; position: absolute; };
|
||||
<head>
|
||||
<title>WebGUI Collateral -- Insert Image</title>
|
||||
<style type="text/css">
|
||||
BODY { background: threedface; color: windowtext; font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; }
|
||||
|
||||
<!-- frame styles -->
|
||||
IFRAME.lister { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 18em; height:13em; }
|
||||
IFRAME.viewer { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 18em; height:13em; }
|
||||
|
||||
<!-- input styles -->
|
||||
INPUT.folder { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 30em; }
|
||||
INPUT.image { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 30em; }
|
||||
INPUT.name { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 30em; }
|
||||
INPUT.number { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 4em; }
|
||||
INPUT.thumbnail { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 4em; }
|
||||
INPUT.txtAltText { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 31em; }
|
||||
INPUT.txtBorder { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 3.5em; }
|
||||
INPUT.txtHorizontal { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 3.5em; }
|
||||
INPUT.txtFileName { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 31em; }
|
||||
INPUT.txtVertical { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 3.5em; }
|
||||
INPUT.description { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 25.5em; }
|
||||
<!-- button styles -->
|
||||
INPUT.btnCancel { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 6em; }
|
||||
INPUT.btnOK { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 6em; }
|
||||
INPUT.create { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 4.5em; }
|
||||
INPUT.upload { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 4.5em; }
|
||||
|
||||
<!-- drop-down styles -->
|
||||
SELECT.selAlignment { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 6em; }
|
||||
|
||||
<!-- table styles -->
|
||||
TABLE.dialog { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 36em; }
|
||||
|
||||
<!-- cell styles -->
|
||||
TD.aspect { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 15em; }
|
||||
TD.create { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 37em; }
|
||||
TD.fldLayout { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 13em; }
|
||||
TD.fldSpacing { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 10em; }
|
||||
TD.image { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 40em; }
|
||||
TD.label { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 5em; }
|
||||
TD.manager { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 37em; }
|
||||
TD.resize { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 30em; }
|
||||
TD.thumbnail { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 30em; }
|
||||
TD.upload { font: 9pt 'MS Shell Dlg', Helvetica, sans-serif; width: 37em; }
|
||||
</style>
|
||||
<SCRIPT defer>
|
||||
|
||||
<!-- script copied from original "insert_image.html" -->
|
||||
<script defer>
|
||||
function _CloseOnEsc() {
|
||||
if (event.keyCode == 27) { window.close(); return; }
|
||||
if(event.keyCode == 27) {
|
||||
window.close();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function _getTextRange(elm) {
|
||||
var r = elm.parentTextEdit.createTextRange();
|
||||
r.moveToElementText(elm);
|
||||
return r;
|
||||
var r = elm.parentTextEdit.createTextRange();
|
||||
|
||||
r.moveToElementText(elm);
|
||||
return r;
|
||||
}
|
||||
|
||||
window.onerror = HandleError
|
||||
|
||||
function HandleError(message, url, line) {
|
||||
var str = "An error has occurred in this dialog." + "\n\n"
|
||||
+ "Error: " + line + "\n" + message;
|
||||
alert(str);
|
||||
window.close();
|
||||
return true;
|
||||
var str = "An error has occurred in this dialog." + "\n\n"
|
||||
+ "Error: " + line + "\n" + message;
|
||||
|
||||
alert(str);
|
||||
window.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
function Init() {
|
||||
var elmSelectedImage;
|
||||
var htmlSelectionControl = "Control";
|
||||
var globalDoc = window.dialogArguments;
|
||||
var grngMaster = globalDoc.selection.createRange();
|
||||
|
||||
// event handlers
|
||||
document.body.onkeypress = _CloseOnEsc;
|
||||
btnOK.onclick = new Function("btnOKClick()");
|
||||
var elmSelectedImage;
|
||||
var htmlSelectionControl = "Control";
|
||||
var globalDoc = window.dialogArguments;
|
||||
var grngMaster = globalDoc.selection.createRange();
|
||||
var dpi = 96;
|
||||
|
||||
txtFileName.fImageLoaded = false;
|
||||
txtFileName.intImageWidth = 0;
|
||||
txtFileName.intImageHeight = 0;
|
||||
|
||||
if (globalDoc.selection.type == htmlSelectionControl) {
|
||||
if (grngMaster.length == 1) {
|
||||
elmSelectedImage = grngMaster.item(0);
|
||||
if (elmSelectedImage.tagName == "IMG") {
|
||||
txtFileName.fImageLoaded = true;
|
||||
if (elmSelectedImage.src) {
|
||||
txtFileName.value = elmSelectedImage.src.replace(/^[^*]*(\*\*\*)/, "$1"); // fix placeholder src values that editor converted to abs paths
|
||||
txtFileName.intImageHeight = elmSelectedImage.height;
|
||||
txtFileName.intImageWidth = elmSelectedImage.width;
|
||||
txtVertical.value = elmSelectedImage.vspace;
|
||||
txtHorizontal.value = elmSelectedImage.hspace;
|
||||
txtBorder.value = elmSelectedImage.border;
|
||||
txtAltText.value = elmSelectedImage.alt;
|
||||
selAlignment.value = elmSelectedImage.align;
|
||||
}
|
||||
}
|
||||
if(document.all.dpicheck) {
|
||||
dpi = document.all.dpicheck.width;
|
||||
}
|
||||
}
|
||||
txtFileName.value = txtFileName.value || "http://";
|
||||
txtFileName.focus();
|
||||
document.all.lister.contentWindow.navigate('/?op=htmlArealistCollateral&DPI=' + dpi);
|
||||
document.all.viewer.contentWindow.navigate('/?op=htmlAreaviewCollateral&DPI=' + dpi);
|
||||
document.all.actions.DPI.value = dpi;
|
||||
if(dpi != 96) {
|
||||
var xfactor = ((dpi < 96) ? (dpi / 95) : (dpi / 97.5));
|
||||
var yfactor = ((dpi < 96) ? (dpi / 95) : (dpi / 99.5));
|
||||
var width = dialogWidth.substr(0, dialogWidth.search(/\D/));
|
||||
var height = dialogHeight.substr(0, dialogHeight.search(/\D/));
|
||||
|
||||
window.dialogWidth = Math.floor((width * xfactor)) + 'px';
|
||||
window.dialogHeight = Math.floor((height * yfactor)) + 'px';
|
||||
}
|
||||
|
||||
// event handlers
|
||||
document.body.onkeypress = _CloseOnEsc;
|
||||
btnOK.onclick = new Function("OKClick()");
|
||||
|
||||
txtFileName.fImageLoaded = false;
|
||||
txtFileName.intImageWidth = 0;
|
||||
txtFileName.intImageHeight = 0;
|
||||
|
||||
if(globalDoc.selection.type == htmlSelectionControl) {
|
||||
if(grngMaster.length == 1) {
|
||||
elmSelectedImage = grngMaster.item(0);
|
||||
if(elmSelectedImage.tagName == "IMG") {
|
||||
txtFileName.fImageLoaded = true;
|
||||
if(elmSelectedImage.src) {
|
||||
txtFileName.value = elmSelectedImage.src.replace(/^[^*]*(\*\*\*)/, "$1"); // fix placeholder src values that editor converted to abs paths
|
||||
txtFileName.intImageHeight = elmSelectedImage.height;
|
||||
txtFileName.intImageWidth = elmSelectedImage.width;
|
||||
txtVertical.value = elmSelectedImage.vspace;
|
||||
txtHorizontal.value = elmSelectedImage.hspace;
|
||||
txtBorder.value = elmSelectedImage.border;
|
||||
txtAltText.value = elmSelectedImage.alt;
|
||||
selAlignment.value = elmSelectedImage.align;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
txtFileName.value = txtFileName.value || "http://";
|
||||
txtFileName.focus();
|
||||
}
|
||||
|
||||
function _isValidNumber(txtBox) {
|
||||
var val = parseInt(txtBox);
|
||||
if (isNaN(val) || val < 0 || val > 999) { return false; }
|
||||
return true;
|
||||
}
|
||||
var val = parseInt(txtBox);
|
||||
|
||||
function btnOKClick() {
|
||||
var elmImage;
|
||||
var intAlignment;
|
||||
var htmlSelectionControl = "Control";
|
||||
var globalDoc = window.dialogArguments;
|
||||
var grngMaster = globalDoc.selection.createRange();
|
||||
|
||||
// error checking
|
||||
|
||||
if (!txtFileName.value || txtFileName.value == "http://") {
|
||||
alert("Image URL must be specified.");
|
||||
txtFileName.focus();
|
||||
return;
|
||||
}
|
||||
if (txtHorizontal.value && !_isValidNumber(txtHorizontal.value)) {
|
||||
alert("Horizontal spacing must be a number between 0 and 999.");
|
||||
txtHorizontal.focus();
|
||||
return;
|
||||
}
|
||||
if (txtBorder.value && !_isValidNumber(txtBorder.value)) {
|
||||
alert("Border thickness must be a number between 0 and 999.");
|
||||
txtBorder.focus();
|
||||
return;
|
||||
}
|
||||
if (txtVertical.value && !_isValidNumber(txtVertical.value)) {
|
||||
alert("Vertical spacing must be a number between 0 and 999.");
|
||||
txtVertical.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
// delete selected content and replace with image
|
||||
if (globalDoc.selection.type == htmlSelectionControl && !txtFileName.fImageLoaded) {
|
||||
grngMaster.execCommand('Delete');
|
||||
grngMaster = globalDoc.selection.createRange();
|
||||
}
|
||||
|
||||
idstr = "\" id=\"556e697175657e537472696e67"; // new image creation ID
|
||||
if (!txtFileName.fImageLoaded) {
|
||||
grngMaster.execCommand("InsertImage", false, idstr);
|
||||
elmImage = globalDoc.all['556e697175657e537472696e67'];
|
||||
elmImage.removeAttribute("id");
|
||||
elmImage.removeAttribute("src");
|
||||
grngMaster.moveStart("character", -1);
|
||||
} else {
|
||||
elmImage = grngMaster.item(0);
|
||||
if (elmImage.src != txtFileName.value) {
|
||||
grngMaster.execCommand('Delete');
|
||||
grngMaster = globalDoc.selection.createRange();
|
||||
grngMaster.execCommand("InsertImage", false, idstr);
|
||||
elmImage = globalDoc.all['556e697175657e537472696e67'];
|
||||
elmImage.removeAttribute("id");
|
||||
elmImage.removeAttribute("src");
|
||||
grngMaster.moveStart("character", -1);
|
||||
txtFileName.fImageLoaded = false;
|
||||
if(isNaN(val) || val < 0 || val > 999) {
|
||||
return false;
|
||||
}
|
||||
grngMaster = _getTextRange(elmImage);
|
||||
}
|
||||
|
||||
if (txtFileName.fImageLoaded) {
|
||||
elmImage.style.width = txtFileName.intImageWidth;
|
||||
elmImage.style.height = txtFileName.intImageHeight;
|
||||
}
|
||||
|
||||
if (txtFileName.value.length > 2040) {
|
||||
txtFileName.value = txtFileName.value.substring(0,2040);
|
||||
}
|
||||
|
||||
elmImage.src = txtFileName.value;
|
||||
|
||||
if (txtHorizontal.value != "") { elmImage.hspace = parseInt(txtHorizontal.value); }
|
||||
else { elmImage.hspace = 0; }
|
||||
|
||||
if (txtVertical.value != "") { elmImage.vspace = parseInt(txtVertical.value); }
|
||||
else { elmImage.vspace = 0; }
|
||||
|
||||
elmImage.alt = txtAltText.value;
|
||||
|
||||
if (txtBorder.value != "") { elmImage.border = parseInt(txtBorder.value); }
|
||||
else { elmImage.border = 0; }
|
||||
|
||||
elmImage.align = selAlignment.value;
|
||||
grngMaster.collapse(false);
|
||||
grngMaster.select();
|
||||
window.close();
|
||||
return true;
|
||||
}
|
||||
</SCRIPT>
|
||||
</HEAD>
|
||||
<BODY id=bdy onload="Init()" style="background: threedface; color: windowtext;" scroll=no>
|
||||
|
||||
<DIV id=divFileName style="left: 0.98em; top: 1.2168em; width: 7em; height: 1.2168em; ">Image URL:</DIV>
|
||||
<INPUT ID=txtFileName type=text style="left: 8.54em; top: 1.0647em; width: 21.5em;height: 2.1294em; " tabIndex=10 onfocus="select()">
|
||||
function OKClick() {
|
||||
var elmImage;
|
||||
var intAlignment;
|
||||
var htmlSelectionControl = "Control";
|
||||
var globalDoc = window.dialogArguments;
|
||||
var grngMaster = globalDoc.selection.createRange();
|
||||
|
||||
<DIV id=divAltText style="left: 0.98em; top: 4.1067em; width: 6.58em; height: 1.2168em; ">Alternate Text:</DIV>
|
||||
<INPUT type=text ID=txtAltText tabIndex=15 style="left: 8.54em; top: 3.8025em; width: 21.5em; height: 2.1294em; " onfocus="select()">
|
||||
// error checking
|
||||
if(!txtFileName.value || txtFileName.value == "http://") {
|
||||
alert("Image URL must be specified.");
|
||||
txtFileName.focus();
|
||||
return;
|
||||
}
|
||||
if(txtHorizontal.value && !_isValidNumber(txtHorizontal.value)) {
|
||||
alert("Horizontal spacing must be a number between 0 and 999.");
|
||||
txtHorizontal.focus();
|
||||
return;
|
||||
}
|
||||
if(txtBorder.value && !_isValidNumber(txtBorder.value)) {
|
||||
alert("Border thickness must be a number between 0 and 999.");
|
||||
txtBorder.focus();
|
||||
return;
|
||||
}
|
||||
if(txtVertical.value && !_isValidNumber(txtVertical.value)) {
|
||||
alert("Vertical spacing must be a number between 0 and 999.");
|
||||
txtVertical.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
<FIELDSET id=fldLayout style="left: .9em; top: 7.1em; width: 17.08em; height: 7.6em;">
|
||||
<LEGEND id=lgdLayout>Layout</LEGEND>
|
||||
</FIELDSET>
|
||||
// delete selected content and replace with image
|
||||
if(globalDoc.selection.type == htmlSelectionControl && !txtFileName.fImageLoaded) {
|
||||
grngMaster.execCommand('Delete');
|
||||
grngMaster = globalDoc.selection.createRange();
|
||||
}
|
||||
|
||||
<FIELDSET id=fldSpacing style="left: 18.9em; top: 7.1em; width: 11em; height: 7.6em;">
|
||||
<LEGEND id=lgdSpacing>Spacing</LEGEND>
|
||||
</FIELDSET>
|
||||
idstr = "\" id=\"556e697175657e537472696e67"; // new image creation ID
|
||||
if(!txtFileName.fImageLoaded) {
|
||||
grngMaster.execCommand("InsertImage", false, idstr);
|
||||
elmImage = globalDoc.all['556e697175657e537472696e67'];
|
||||
elmImage.removeAttribute("id");
|
||||
elmImage.removeAttribute("src");
|
||||
grngMaster.moveStart("character", -1);
|
||||
}
|
||||
else {
|
||||
elmImage = grngMaster.item(0);
|
||||
if(elmImage.src != txtFileName.value) {
|
||||
grngMaster.execCommand('Delete');
|
||||
grngMaster = globalDoc.selection.createRange();
|
||||
grngMaster.execCommand("InsertImage", false, idstr);
|
||||
elmImage = globalDoc.all['556e697175657e537472696e67'];
|
||||
elmImage.removeAttribute("id");
|
||||
elmImage.removeAttribute("src");
|
||||
grngMaster.moveStart("character", -1);
|
||||
txtFileName.fImageLoaded = false;
|
||||
}
|
||||
grngMaster = _getTextRange(elmImage);
|
||||
}
|
||||
|
||||
<DIV id=divAlign style="left: 1.82em; top: 9.126em; width: 4.76em; height: 1.2168em; ">Alignment:</DIV>
|
||||
<SELECT size=1 ID=selAlignment tabIndex=20 style="left: 10.36em; top: 8.8218em; width: 6.72em; height: 1.2168em; ">
|
||||
<OPTION id=optNotSet value=""> Not set </OPTION>
|
||||
<OPTION id=optLeft value=left> Left </OPTION>
|
||||
<OPTION id=optRight value=right> Right </OPTION>
|
||||
<OPTION id=optTexttop value=textTop> Texttop </OPTION>
|
||||
<OPTION id=optAbsMiddle value=absMiddle> Absmiddle </OPTION>
|
||||
<OPTION id=optBaseline value=baseline SELECTED> Baseline </OPTION>
|
||||
<OPTION id=optAbsBottom value=absBottom> Absbottom </OPTION>
|
||||
<OPTION id=optBottom value=bottom> Bottom </OPTION>
|
||||
<OPTION id=optMiddle value=middle> Middle </OPTION>
|
||||
<OPTION id=optTop value=top> Top </OPTION>
|
||||
</SELECT>
|
||||
if(txtFileName.fImageLoaded) {
|
||||
elmImage.style.width = txtFileName.intImageWidth;
|
||||
elmImage.style.height = txtFileName.intImageHeight;
|
||||
}
|
||||
|
||||
<DIV id=divHoriz style="left: 19.88em; top: 9.126em; width: 4.76em; height: 1.2168em; ">Horizontal:</DIV>
|
||||
<INPUT ID=txtHorizontal style="left: 24.92em; top: 8.8218em; width: 4.2em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=25 onfocus="select()">
|
||||
if(txtFileName.value.length > 2040) {
|
||||
txtFileName.value = txtFileName.value.substring(0,2040);
|
||||
}
|
||||
|
||||
<DIV id=divBorder style="left: 1.82em; top: 12.0159em; width: 8.12em; height: 1.2168em; ">Border Thickness:</DIV>
|
||||
<INPUT ID=txtBorder style="left: 10.36em; top: 11.5596em; width: 6.72em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=21 onfocus="select()">
|
||||
elmImage.src = txtFileName.value;
|
||||
|
||||
<DIV id=divVert style="left: 19.88em; top: 12.0159em; width: 3.64em; height: 1.2168em; ">Vertical:</DIV>
|
||||
<INPUT ID=txtVertical style="left: 24.92em; top: 11.5596em; width: 4.2em; height: 2.1294em; ime-mode: disabled;" type=text size=3 maxlength=3 value="" tabIndex=30 onfocus="select()">
|
||||
if(txtHorizontal.value != "") {
|
||||
elmImage.hspace = parseInt(txtHorizontal.value);
|
||||
}
|
||||
else {
|
||||
elmImage.hspace = 0;
|
||||
}
|
||||
|
||||
<BUTTON ID=btnOK style="left: 31.36em; top: 1.0647em; width: 7em; height: 2.2em; " type=submit tabIndex=40>OK</BUTTON>
|
||||
<BUTTON ID=btnCancel style="left: 31.36em; top: 3.6504em; width: 7em; height: 2.2em; " type=reset tabIndex=45 onClick="window.close();">Cancel</BUTTON>
|
||||
if(txtVertical.value != "") {
|
||||
elmImage.vspace = parseInt(txtVertical.value);
|
||||
}
|
||||
else {
|
||||
elmImage.vspace = 0;
|
||||
}
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
elmImage.alt = txtAltText.value;
|
||||
|
||||
if(txtBorder.value != "") {
|
||||
elmImage.border = parseInt(txtBorder.value);
|
||||
}
|
||||
else {
|
||||
elmImage.border = 0;
|
||||
}
|
||||
|
||||
elmImage.align = selAlignment.value;
|
||||
grngMaster.collapse(false);
|
||||
grngMaster.select();
|
||||
window.close();
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body onload="Init()">
|
||||
<img id="dpicheck" style="position: absolute; left: 1; top: 1; width: 1in; height: 1; visibility: hidden;" src="dpi.gif">
|
||||
<table class="dialog" border="0" cellpadding="0" cellspacing="5">
|
||||
<tr>
|
||||
<td>
|
||||
<table name="manager" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="manager" colspan="3" align="center" valign="middle">
|
||||
<fieldset>
|
||||
<legend align="left">WebGUI Collateral Image Manager</legend>
|
||||
<table name="wrapper" border="0" cellpadding="2" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
<iframe class="lister" name="lister" marginwidth="0" marginheight="0"></iframe>
|
||||
</td>
|
||||
<td>
|
||||
<iframe class="viewer" name="viewer" marginwidth="0" marginheight="0"></iframe>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<form name="actions" method="POST" action="/" enctype="multipart/form-data" target="lister">
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="upload" colspan="2">
|
||||
<fieldset>
|
||||
<legend align="left">Upload New Image</legend>
|
||||
<table border="0" cellpadding="1" cellspacing="0">
|
||||
<tr>
|
||||
<td class="label" align="left" valign="middle">
|
||||
<input class="upload" type="submit" value="Upload" onclick="this.form.op.value='htmlAreaUpload'">
|
||||
</td>
|
||||
<td colspan="2">
|
||||
<input class="image" type="file" name="image">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label" align="left" valign="middle">
|
||||
Name as:
|
||||
</td>
|
||||
<td colspan="2">
|
||||
<input class="name" type="input" name="name">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label" align="left" valign="middle">
|
||||
Thumbnail:
|
||||
</td>
|
||||
<td class="thumbnail" align="left" valign="middle">
|
||||
<input class="thumbnail" type="input" name="thumbnailSize">
|
||||
<i>
|
||||
(size in pixels)
|
||||
</i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END 'UPLOAD' HTML -->
|
||||
<!-- BEGIN 'CREATE' HTML (delete the '>' at the end of this comment to disable the 'CREATE' feature) -->
|
||||
<tr>
|
||||
<td class="create" colspan="2">
|
||||
<fieldset>
|
||||
<legend align="left">Create New Folder</legend>
|
||||
<table border="0" cellpadding="1" cellspacing="0">
|
||||
<tr>
|
||||
<td class="label" align="left" valign="middle">
|
||||
Name:
|
||||
</td>
|
||||
<td colspan="2">
|
||||
<input class="folder" type="input" name="folder">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label" align="left" valign="middle">
|
||||
Description:
|
||||
</td>
|
||||
<td>
|
||||
<input class="description" type="input" name="description">
|
||||
</td>
|
||||
<td class="label" align="left" valign="top">
|
||||
<input class="create" type="submit" value="Create" onclick="this.form.op.value='htmlAreaCreateFolder'">
|
||||
</td>
|
||||
|
||||
|
||||
</table>
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- END 'UPLOAD' HTML -->
|
||||
</table>
|
||||
<input type="hidden" name="DPI" value="">
|
||||
<input type="hidden" name="action" value="">
|
||||
<input type="hidden" name="path" value="">
|
||||
<input type="hidden" name="op" value="">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="image" colspan="3" valign="middle">
|
||||
<fieldset>
|
||||
<legend align="left">Selected Image</legend>
|
||||
<table border="0" cellpadding="1" cellspacing="0">
|
||||
<tr>
|
||||
<td class="label" valign="middle">Image URL:</td>
|
||||
<td valign="middle">
|
||||
<input class="txtFileName" type="text" name="txtFileName" onfocus="select()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label" valign="middle">Alt Text:</td>
|
||||
<td valign="middle">
|
||||
<input class="txtAltText" type="text" name="txtAltText" onfocus="select()">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fldLayout">
|
||||
<fieldset name="fldLayout">
|
||||
<legend align="left">Layout</legend>
|
||||
<table border="0" cellpadding="1" cellspacing="0">
|
||||
<tr>
|
||||
<td class="label" valign="middle">Alignment:</td>
|
||||
<td valign="middle">
|
||||
<select class="selAlignment" size="1" name="selAlignment">
|
||||
<OPTION id="optNotSet" value="">(none)</OPTION>
|
||||
<OPTION id="optAbsBottom" value="absbottom">absbottom</OPTION>
|
||||
<OPTION id="optAbsMiddle" value="absmiddle">absmiddle</OPTION>
|
||||
<OPTION id="optBaseline" value="baseline" selected>baseline</OPTION>
|
||||
<OPTION id="optBottom" value="bottom">bottom</OPTION>
|
||||
<OPTION id="optLeft" value="left">left</OPTION>
|
||||
<OPTION id="optMiddle" value="middle">middle</OPTION>
|
||||
<OPTION id="optRight" value="right">right</OPTION>
|
||||
<OPTION id="optTexttop" value="texttop">texttop</OPTION>
|
||||
<OPTION id="optTop" value="top">top</OPTION>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label" valign="middle">Border:</td>
|
||||
<td valign="middle">
|
||||
<input class="txtBorder" type="text" name="txtBorder" size="3" maxlength="3" onfocus="select()">
|
||||
</td>
|
||||
</tr>
|
||||
</table
|
||||
</fieldset>
|
||||
</td>
|
||||
<td class="fldSpacing">
|
||||
<fieldset name="fldSpacing">
|
||||
<legend align="left">Spacing</legend>
|
||||
<table border="0" cellpadding="1" cellspacing="0">
|
||||
<tr>
|
||||
<td class="label" valign="middle">Horizontal:</td>
|
||||
<td valign="middle">
|
||||
<input class="txtHorizontal" type="text" name="txtHorizontal" size="3" maxlength="3" onfocus="select()">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label" valign="middle">Vertical:</td>
|
||||
<td valign="middle">
|
||||
<input class="txtVertical" type="text" name="txtVertical" size="3" maxlength="3" onfocus="select()">
|
||||
</td>
|
||||
</tr>
|
||||
</table
|
||||
</fieldset>
|
||||
</td>
|
||||
<td valign="bottom">
|
||||
<table align="right" border="0" cellpadding="2" cellspacing="0">
|
||||
<tr>
|
||||
<td valign="middle">
|
||||
<input class="btnOK" type="submit" value="OK" name="btnOK">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="middle">
|
||||
<input class="btnCancel" type="reset" value="Cancel" name="btnCancel" onClick="window.close();">
|
||||
</td>
|
||||
</tr>
|
||||
</table
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue