added hide option to layout
fixed typo in events calendar added context menu stuff that i forgot to check in added richEditId option to the HTMLArea method in HTMLForm
This commit is contained in:
parent
c1303373f0
commit
10285b71cf
8 changed files with 202 additions and 8 deletions
|
|
@ -54,6 +54,8 @@
|
||||||
- Added "create shortcut" as a context menu option in the asset manager.
|
- Added "create shortcut" as a context menu option in the asset manager.
|
||||||
- Fixed generateContent.pl to work with the new asset tree.
|
- Fixed generateContent.pl to work with the new asset tree.
|
||||||
- Updated TinyMCE to version 1.44.
|
- Updated TinyMCE to version 1.44.
|
||||||
|
- Added an option to the layout to hide child assets from being displayed.
|
||||||
|
This allows you to use non-layout child assets as stand alone pages.
|
||||||
|
|
||||||
|
|
||||||
6.5.6
|
6.5.6
|
||||||
|
|
|
||||||
|
|
@ -75,4 +75,5 @@ alter table Collaboration drop column allowRichEdit;
|
||||||
alter table Collaboration add column richEditor varchar(22) not null default 'PBrichedit000000000002';
|
alter table Collaboration add column richEditor varchar(22) not null default 'PBrichedit000000000002';
|
||||||
delete from userProfileField where fieldName like 'richEditor%';
|
delete from userProfileField where fieldName like 'richEditor%';
|
||||||
delete from userProfileData where fieldName like 'richEditor%';
|
delete from userProfileData where fieldName like 'richEditor%';
|
||||||
|
alter table Layout add column assetsToHide text;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -465,7 +465,7 @@ sub view {
|
||||||
}
|
}
|
||||||
$var{'pagination.previousPage'} = '<form method="GET" style="inline;" action="'.
|
$var{'pagination.previousPage'} = '<form method="GET" style="inline;" action="'.
|
||||||
$self->getUrl.'?calMonthStart='.$calMonthStart.
|
$self->getUrl.'?calMonthStart='.$calMonthStart.
|
||||||
'&reload='.WebGUI::Id::Generate.'"><a href="'.$self->getUrl.
|
'&reload='.WebGUI::Id::generate().'"><a href="'.$self->getUrl.
|
||||||
'?calMonthStart='.$prevCalMonthStart.'&calMonthEnd='.$prevCalMonthEnd.'">'.
|
'?calMonthStart='.$prevCalMonthStart.'&calMonthEnd='.$prevCalMonthEnd.'">'.
|
||||||
WebGUI::International::get(558,"Asset_EventsCalendar")." ".$monthRangeLength." ".
|
WebGUI::International::get(558,"Asset_EventsCalendar")." ".$monthRangeLength." ".
|
||||||
$monthLabel.'</a>';
|
$monthLabel.'</a>';
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,10 @@ sub definition {
|
||||||
noFormPost=>1,
|
noFormPost=>1,
|
||||||
defaultValue=>undef,
|
defaultValue=>undef,
|
||||||
fieldType=>"hidden"
|
fieldType=>"hidden"
|
||||||
|
},
|
||||||
|
assetsToHide => {
|
||||||
|
defaultValue=>undef,
|
||||||
|
fieldType=>"checkList"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -101,6 +105,21 @@ sub getEditForm {
|
||||||
},
|
},
|
||||||
-value=>"view"
|
-value=>"view"
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
my @assetsToHide = split("\n",$self->getValue("assetsToHide"));
|
||||||
|
my $children = $self->getLineage(["children"],{"returnQuickReadObjects"=>1, excludeClasses=>["WebGUI::Asset::Wobject::Layout"]});
|
||||||
|
my %childIds;
|
||||||
|
foreach my $child (@{$children}) {
|
||||||
|
$childIds{$child->getId} = $child->getTitle;
|
||||||
|
}
|
||||||
|
$tabform->getTab("display")->checkList(
|
||||||
|
-name=>"assetsToHide",
|
||||||
|
-value=>\@assetsToHide,
|
||||||
|
-options=>\%childIds,
|
||||||
|
-label=>"Assets To Hide",
|
||||||
|
-vertical=>1,
|
||||||
|
-uiLevel=>9
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return $tabform;
|
return $tabform;
|
||||||
}
|
}
|
||||||
|
|
@ -147,6 +166,7 @@ sub view {
|
||||||
my %vars;
|
my %vars;
|
||||||
# I'm sure there's a more efficient way to do this. We'll figure it out someday.
|
# I'm sure there's a more efficient way to do this. We'll figure it out someday.
|
||||||
my @positions = split(/\./,$self->get("contentPositions"));
|
my @positions = split(/\./,$self->get("contentPositions"));
|
||||||
|
my @hidden = split("\n",$self->getValue("assetsToHide"));
|
||||||
my $i = 1;
|
my $i = 1;
|
||||||
my @found;
|
my @found;
|
||||||
foreach my $position (@positions) {
|
foreach my $position (@positions) {
|
||||||
|
|
@ -154,10 +174,12 @@ sub view {
|
||||||
foreach my $asset (@assets) {
|
foreach my $asset (@assets) {
|
||||||
foreach my $child (@{$children}) {
|
foreach my $child (@{$children}) {
|
||||||
if ($asset eq $child->getId) {
|
if ($asset eq $child->getId) {
|
||||||
push(@{$vars{"position".$i."_loop"}},{
|
unless (isIn($asset,@hidden)) {
|
||||||
id=>$child->getId,
|
push(@{$vars{"position".$i."_loop"}},{
|
||||||
content=>$child->view
|
id=>$child->getId,
|
||||||
}) if $child->canView;
|
content=>$child->view
|
||||||
|
}) if $child->canView;
|
||||||
|
}
|
||||||
push(@found, $child->getId);
|
push(@found, $child->getId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1454,13 +1454,17 @@ The UI level for this field. See the WebGUI developer's site for details. Defaul
|
||||||
|
|
||||||
If no value is specified, this will be used.
|
If no value is specified, this will be used.
|
||||||
|
|
||||||
|
=head3 richEditId
|
||||||
|
|
||||||
|
An asset Id of a rich editor config. Defaults to the default rich editor in the settings.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
sub HTMLArea {
|
sub HTMLArea {
|
||||||
my ($output);
|
my ($output);
|
||||||
my ($self, @p) = @_;
|
my ($self, @p) = @_;
|
||||||
my ($name, $label, $value, $subtext, $extras, $wrap, $rows, $columns, $uiLevel, $defaultValue) =
|
my ($name, $label, $value, $subtext, $extras, $wrap, $rows, $columns, $uiLevel, $defaultValue, $richEditId) =
|
||||||
rearrange([qw(name label value subtext extras wrap rows columns uiLevel defaultValue)], @p);
|
rearrange([qw(name label value subtext extras wrap rows columns uiLevel defaultValue richEditId)], @p);
|
||||||
if (_uiLevelChecksOut($uiLevel)) {
|
if (_uiLevelChecksOut($uiLevel)) {
|
||||||
$output = WebGUI::Form::HTMLArea({
|
$output = WebGUI::Form::HTMLArea({
|
||||||
"name"=>$name,
|
"name"=>$name,
|
||||||
|
|
@ -1469,7 +1473,8 @@ sub HTMLArea {
|
||||||
"columns"=>$columns,
|
"columns"=>$columns,
|
||||||
"rows"=>$rows,
|
"rows"=>$rows,
|
||||||
"extras"=>$extras,
|
"extras"=>$extras,
|
||||||
defaultValue=>$defaultValue
|
defaultValue=>$defaultValue,
|
||||||
|
richEditId=>$richEditId
|
||||||
});
|
});
|
||||||
$output .= _subtext($subtext);
|
$output .= _subtext($subtext);
|
||||||
$output = $self->_tableFormRow($label,$output);
|
$output = $self->_tableFormRow($label,$output);
|
||||||
|
|
|
||||||
BIN
www/extras/contextMenu/bg.jpg
Normal file
BIN
www/extras/contextMenu/bg.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 626 B |
31
www/extras/contextMenu/contextMenu.css
Normal file
31
www/extras/contextMenu/contextMenu.css
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
.contextMenu_skin {
|
||||||
|
position:absolute;
|
||||||
|
width:120px;
|
||||||
|
border:2px outset #eeeeee;
|
||||||
|
font-family: helvetica, arial, sans-serif;
|
||||||
|
line-height:18px;
|
||||||
|
cursor: default;
|
||||||
|
font-size:12px;
|
||||||
|
z-index:100;
|
||||||
|
visibility:hidden;
|
||||||
|
padding: 4px;
|
||||||
|
background-color: #eeeeee;
|
||||||
|
background-image: url(bg.jpg);
|
||||||
|
background-repeat: repeat-x;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
.contextMenu_skin A {
|
||||||
|
font-weight: normal;
|
||||||
|
width: 100%;
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
.contextMenu_skin A:hover {
|
||||||
|
font-weight: normal;
|
||||||
|
color: black;
|
||||||
|
margin: 0px;
|
||||||
|
background-color: #eeeeee;
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
133
www/extras/contextMenu/contextMenu.js
Executable file
133
www/extras/contextMenu/contextMenu.js
Executable file
|
|
@ -0,0 +1,133 @@
|
||||||
|
var ie5=document.all&&document.getElementById
|
||||||
|
var contextMenu_timer = null;
|
||||||
|
var contextMenu_items = new Array();
|
||||||
|
function contextMenu_renderLeftClickHold(menuId,e) {
|
||||||
|
contextMenu_hideAll(e)
|
||||||
|
contextMenu_timer = setTimeout("contextMenu_show('" + menuId + "', " + contextMenu_getXOffset(e,document.getElementById("menuId")) + "," + contextMenu_getYOffset(e,document.getElementById("menuId")) + ")",1000);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.onmousedown=contextMenu_hideAll;
|
||||||
|
|
||||||
|
function contextMenu_hideAll(e) {
|
||||||
|
e =ie5? event : e;
|
||||||
|
var firedobj = ie5?e.srcElement:e.target;
|
||||||
|
|
||||||
|
while (firedobj != null && firedobj.tagName != "HTML" && firedobj.tagName != "IMG") {
|
||||||
|
if (firedobj.id.indexOf("contextMenu") != -1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
firedobj = firedobj.offsetParent;
|
||||||
|
}
|
||||||
|
contextMenu_hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_renderRightClick(menuId,e) {
|
||||||
|
contextMenu_hideAll(e)
|
||||||
|
contextMenu_show(menuId,contextMenu_getXOffset(e,document.getElementById("menuId")),contextMenu_getYOffset(e,document.getElementById("menuId")));
|
||||||
|
e.cancelBubble=true;
|
||||||
|
e.returnValue=false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function contextMenu_getXOffset(e,menu) {
|
||||||
|
var firedobj = ie5?e.srcElement:e.target;
|
||||||
|
var tempX = 0;
|
||||||
|
foundDiv = false;
|
||||||
|
while (firedobj!=null && firedobj.tagName!="HTML"){
|
||||||
|
//this is a hack, need to revisit
|
||||||
|
if (firedobj.tagName == "DIV") foundDiv = true;
|
||||||
|
tempX+=firedobj.offsetLeft;
|
||||||
|
firedobj=firedobj.offsetParent;
|
||||||
|
}
|
||||||
|
if (foundDiv) {
|
||||||
|
return e.clientX - tempX;
|
||||||
|
}else {
|
||||||
|
return e.clientX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_getYOffset(e,menu) {
|
||||||
|
var firedobj = ie5?e.srcElement:e.target;
|
||||||
|
var tempY = 0;
|
||||||
|
foundDiv = false;
|
||||||
|
while (firedobj!=null && firedobj.tagName!="HTML"){
|
||||||
|
//this is a hack, need to revisit
|
||||||
|
if (firedobj.tagName == "DIV") foundDiv = true;
|
||||||
|
tempY+=firedobj.offsetTop;
|
||||||
|
firedobj=firedobj.offsetParent;
|
||||||
|
}
|
||||||
|
if (foundDiv) {
|
||||||
|
return e.clientY - tempY;
|
||||||
|
}else {
|
||||||
|
return e.clientY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_show(menuId,x,y){
|
||||||
|
var menuobj=document.getElementById(menuId)
|
||||||
|
//Find out how close the mouse is to the corner of the window
|
||||||
|
var rightedge=ie5? document.body.clientWidth-x : window.innerWidth-x
|
||||||
|
var bottomedge=ie5? document.body.clientHeight-y : window.innerHeight-y
|
||||||
|
|
||||||
|
//if the horizontal distance isn't enough to accomodate the width of the context menu
|
||||||
|
if (rightedge<menuobj.offsetWidth)
|
||||||
|
//move the horizontal position of the menu to the left by it's width
|
||||||
|
menuobj.style.left=ie5? document.body.scrollLeft+x-menuobj.offsetWidth : window.pageXOffset+x-menuobj.offsetWidth
|
||||||
|
else
|
||||||
|
//position the horizontal position of the menu where the mouse was clicked
|
||||||
|
menuobj.style.left=ie5? document.body.scrollLeft+x : window.pageXOffset+x
|
||||||
|
|
||||||
|
//same concept with the vertical position
|
||||||
|
if (bottomedge<menuobj.offsetHeight)
|
||||||
|
menuobj.style.top=ie5? document.body.scrollTop+y-menuobj.offsetHeight : window.pageYOffset+y-menuobj.offsetHeight
|
||||||
|
else
|
||||||
|
menuobj.style.top=ie5? document.body.scrollTop+y : window.pageYOffset+y
|
||||||
|
|
||||||
|
menuobj.style.visibility="visible"
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_hide(){
|
||||||
|
for (i=0;i<contextMenu_items.length;i++) {
|
||||||
|
document.getElementById("contextMenu_"+contextMenu_items[i]+"_menu").style.visibility="hidden"
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_killTimer(){
|
||||||
|
try {
|
||||||
|
clearTimeout(contextMenu_timer);
|
||||||
|
}catch (e) {
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_create(imagePath, id, name){
|
||||||
|
contextMenu_items.push(id);
|
||||||
|
this.id = id;
|
||||||
|
this.name = name;
|
||||||
|
this.imagePath=imagePath;
|
||||||
|
this.linkLabels = new Array();
|
||||||
|
this.linkUrls = new Array();
|
||||||
|
this.draw = contextMenu_draw;
|
||||||
|
this.addLink = contextMenu_addLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_draw(){
|
||||||
|
document.write('<div id="contextMenu_' + this.id + '_menu" class="contextMenu_skin">');
|
||||||
|
for (i=0;i<this.linkUrls.length;i++) {
|
||||||
|
document.write("<a href=\"" + this.linkUrls[i] + "\">" + this.linkLabels[i] + "</a><br />");
|
||||||
|
}
|
||||||
|
document.write('</div>');
|
||||||
|
document.write('<img src="' + this.imagePath + '" id="contextMenu_' + this.id + '" onmouseup="contextMenu_killTimer()" oncontextmenu="return contextMenu_renderRightClick(\'contextMenu_' + this.id + '_menu\',event)" onmousedown="contextMenu_renderLeftClickHold(\'contextMenu_' + this.id + '_menu\',event)" alt="' + this.name + '" title="' + this.name + '" align="absmiddle" />');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function contextMenu_addLink(linkUrl,linkLabel){
|
||||||
|
this.linkUrls.push(linkUrl);
|
||||||
|
this.linkLabels.push(linkLabel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue