add clipboard

This commit is contained in:
Doug Bell 2010-07-15 15:11:04 -05:00
parent a13cc60b1e
commit f0b9408ab1
2 changed files with 74 additions and 16 deletions

View file

@ -88,20 +88,6 @@ sub getAdminPluginTemplateVars {
#----------------------------------------------------------------------
=head2 getClipboardTemplateVars
=cut
sub getClipboardTemplateVars {
my ( $self ) = @_;
my $session = $self->session;
my $vars = [];
my $clipboardItems = $session->asset->getAssetsInClipboard(1);
}
#----------------------------------------------------------------------
=head2 getNewContentTemplateVars
=cut
@ -178,6 +164,34 @@ sub getVersionTagTemplateVars {
#----------------------------------------------------------------------
=head2 www_getClipboard ( )
Get the assets currently on the user's clipboard
=cut
sub www_getClipboard {
my ( $self ) = @_;
my $session = $self->session;
my ( $user, $form ) = $session->quick(qw{ user form });
my $assets = WebGUI::Asset->getRoot( $session )->getAssetsInClipboard(1);
my @assetInfo = ();
for my $asset ( @{$assets} ) {
push @assetInfo, {
assetId => $asset->getId,
url => $asset->getUrl,
title => $asset->menuTitle,
revisionDate => $asset->revisionDate,
icon => $asset->getIcon("small"),
};
}
return JSON->new->encode( \@assetInfo );
}
#----------------------------------------------------------------------
=head2 www_getTreeData ( )
Get the Tree data for a given asset URL
@ -266,7 +280,6 @@ sub www_view {
# Add vars for AdminBar
$var->{adminPlugins} = $self->getAdminPluginTemplateVars;
$var->{versionTags} = $self->getVersionTagTemplateVars;
#$var->{clipboardAssets} = $self->getClipboardTemplateVars;
$var->{newContentTabs} = $self->getNewContentTemplateVars;
# Add vars for current user
@ -301,6 +314,7 @@ sub www_view {
$style->setScript( $url->extras( 'yui/build/paginator/paginator-min.js ' ) );
$style->setScript($url->extras('yui/build/animation/animation-min.js'));
$style->setScript( $url->extras( 'yui/build/datasource/datasource-min.js ' ) );
$style->setScript( $url->extras( 'yui/build/connection/connection-min.js ' ) );
$style->setScript( $url->extras( 'yui/build/datatable/datatable-min.js ' ) );
$style->setScript( $url->extras( 'yui/build/container/container-min.js' ) );
$style->setScript($url->extras('yui/build/tabview/tabview-min.js'));
@ -339,6 +353,7 @@ __DATA__
<!-- placeholder for clipboard -->
<dt id="clipboard" class="a-m-t">Clipboard (i18n)</dt>
<dd class="a-m-d"><div class="bd">
<div id="clipboardItems"></div>
</div></dd>
<!-- placeholder for asset helpers -->
<dt id="assetHelpers" class="a-m-t">Asset Helpers (i18n)</dt>

View file

@ -200,7 +200,7 @@ WebGUI.Admin.prototype.updateAdminBar
}
else if ( id == "clipboard" ) {
admin.requestUpdateClipboard.call( admin );
}
else if ( id == "newContent" ) {
@ -210,6 +210,49 @@ WebGUI.Admin.prototype.updateAdminBar
}
};
/**
* requestUpdateClipboard( )
* Request the new set of clipboard assets from the server
*/
WebGUI.Admin.prototype.requestUpdateClipboard
= function ( ) {
var callback = {
success : function (o) {
var clipboard = YAHOO.lang.JSON.parse( o.responseText );
this.updateClipboard( clipboard );
},
failure : function (o) {
},
scope: this
};
var ajax = YAHOO.util.Connect.asyncRequest( 'GET', '?op=admin;method=getClipboard', callback );
};
/**
* updateClipboard( assets )
* Update the clipboard list with the given assets
*/
WebGUI.Admin.prototype.updateClipboard
= function ( assets ) {
// Clear out the old clipboard
var div = document.getElementById( 'clipboardItems' );
while ( div.childNodes.length > 0 ) {
div.removeChild( div.childNodes[0] );
}
for ( var i = 0; i < assets.length; i++ ) {
var asset = assets[i];
var a = document.createElement('a');
var icon = document.createElement('img');
icon.src = asset.icon;
a.appendChild( icon );
a.appendChild( document.createTextNode( asset.title ) );
div.appendChild( a );
}
};
/****************************************************************************
* WebGUI.Admin.LocationBar
*/