version tags admin pane is working
This commit is contained in:
parent
2d6a822a00
commit
90d974d911
3 changed files with 116 additions and 32 deletions
|
|
@ -134,35 +134,6 @@ sub getTreePaginator {
|
|||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
=head2 getVersionTagTemplateVars
|
||||
|
||||
=cut
|
||||
|
||||
sub getVersionTagTemplateVars {
|
||||
my ( $self ) = @_;
|
||||
my $session = $self->session;
|
||||
my ( $user ) = $session->quick(qw( user ));
|
||||
my $vars = [];
|
||||
|
||||
my $working = WebGUI::VersionTag->getWorking( $session, "nocreate" );
|
||||
my $tags = WebGUI::VersionTag->getOpenTags($session);
|
||||
if ( @$tags ) {
|
||||
for my $tag ( @$tags ) {
|
||||
next unless $user->isInGroup( $tag->get("groupToUse") );
|
||||
push @$vars, {
|
||||
name => $tag->get("name"),
|
||||
isWorking => ( $working && $working->getId eq $tag->getId ) ? 1 : 0,
|
||||
joinUrl => $tag->getJoinUrl,
|
||||
editUrl => $tag->getEditUrl,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return $vars;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
=head2 www_getClipboard ( )
|
||||
|
|
@ -293,6 +264,44 @@ sub www_getTreeData {
|
|||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
=head2 www_getVersionTags
|
||||
|
||||
Get the current version tags a user can join
|
||||
|
||||
=cut
|
||||
|
||||
sub www_getVersionTags {
|
||||
my ( $self ) = @_;
|
||||
my $session = $self->session;
|
||||
my ( $user ) = $session->quick(qw( user ));
|
||||
my $vars = [];
|
||||
|
||||
my $current = WebGUI::VersionTag->getWorking( $session, "nocreate" );
|
||||
my $tags = WebGUI::VersionTag->getOpenTags($session);
|
||||
if ( @$tags ) {
|
||||
for my $tag ( @$tags ) {
|
||||
next unless $user->isInGroup( $tag->get("groupToUse") );
|
||||
my $isCurrent = ( $current && $current->getId eq $tag->getId ) ? 1 : 0;
|
||||
my $icon = $isCurrent
|
||||
? $session->url->extras( 'icon/tag_green.png' )
|
||||
: $session->url->extras( 'icon/tag_blue.png' )
|
||||
;
|
||||
push @$vars, {
|
||||
tagId => $tag->getId,
|
||||
name => $tag->get("name"),
|
||||
isCurrent => $isCurrent,
|
||||
joinUrl => $tag->getJoinUrl,
|
||||
editUrl => $tag->getEditUrl,
|
||||
icon => $icon,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return JSON->new->encode( $vars );
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
=head2 www_processAssetHelper ( )
|
||||
|
||||
Process the given asset helper with the given asset
|
||||
|
|
@ -329,7 +338,6 @@ sub www_view {
|
|||
|
||||
# Add vars for AdminBar
|
||||
$var->{adminPlugins} = $self->getAdminPluginTemplateVars;
|
||||
$var->{versionTags} = $self->getVersionTagTemplateVars;
|
||||
$var->{newContentTabs} = $self->getNewContentTemplateVars;
|
||||
|
||||
# Add vars for current user
|
||||
|
|
@ -393,6 +401,7 @@ __DATA__
|
|||
<!-- placeholder for version tags -->
|
||||
<dt id="versionTags" class="a-m-t">Version Tags (i18n)</dt>
|
||||
<dd class="a-m-d"><div class="bd">
|
||||
<div id="versionTagItems"></div>
|
||||
</div></dd>
|
||||
<!-- placeholder for clipboard -->
|
||||
<dt id="clipboard" class="a-m-t">Clipboard (i18n)</dt>
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ a:link {
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
#clipboardItems a {
|
||||
#clipboardItems a, #versionTagItems a {
|
||||
display: block;
|
||||
padding: 2px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ WebGUI.Admin.prototype.updateAdminBar
|
|||
|
||||
}
|
||||
else if ( id == "versionTags" ) {
|
||||
|
||||
admin.requestUpdateVersionTags.call( admin );
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -327,6 +327,81 @@ WebGUI.Admin.prototype.pasteAsset
|
|||
this.gotoAsset( url );
|
||||
};
|
||||
|
||||
/**
|
||||
* requestUpdateVersionTags( )
|
||||
* Request the new set of version tags from the server
|
||||
*/
|
||||
WebGUI.Admin.prototype.requestUpdateVersionTags
|
||||
= function ( ) {
|
||||
var callback = {
|
||||
success : function (o) {
|
||||
var versionTags = YAHOO.lang.JSON.parse( o.responseText );
|
||||
this.updateVersionTags( versionTags );
|
||||
},
|
||||
failure : function (o) {
|
||||
|
||||
},
|
||||
scope: this
|
||||
};
|
||||
|
||||
var ajax = YAHOO.util.Connect.asyncRequest( 'GET', '?op=admin;method=getVersionTags', callback );
|
||||
};
|
||||
|
||||
/**
|
||||
* updateVersionTags( tags )
|
||||
* Update the version tag list with the given tags
|
||||
*/
|
||||
WebGUI.Admin.prototype.updateVersionTags
|
||||
= function ( tags ) {
|
||||
// Clear out the old tags
|
||||
var div = document.getElementById( 'versionTagItems' );
|
||||
while ( div.childNodes.length > 0 ) {
|
||||
div.removeChild( div.childNodes[0] );
|
||||
}
|
||||
|
||||
for ( var i = 0; i < tags.length; i++ ) {
|
||||
var tag = tags[i];
|
||||
var a = document.createElement('a');
|
||||
var icon = document.createElement('img');
|
||||
icon.src = tag.icon;
|
||||
a.appendChild( icon );
|
||||
a.appendChild( document.createTextNode( tag.name ) );
|
||||
div.appendChild( a );
|
||||
this.addJoinTagHandler( a, tag.tagId );
|
||||
if ( tag.isCurrent ) {
|
||||
this.updateCurrentVersionTag( tag );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* addJoinTagHandler( elem, tagId )
|
||||
* Add an onclick handler to join a version tag
|
||||
*/
|
||||
WebGUI.Admin.prototype.addJoinTagHandler
|
||||
= function ( elem, tagId ) {
|
||||
var self = this;
|
||||
YAHOO.util.Event.on( elem, "click", function(){
|
||||
// Update version tags after join in case paste fails
|
||||
var updateAfterJoin = function(){
|
||||
this.requestUpdateVersionTags();
|
||||
this.afterNavigate.unsubscribe( updateAfterJoin );
|
||||
};
|
||||
self.afterNavigate.subscribe(updateAfterJoin, self );
|
||||
self.joinTag( tagId );
|
||||
}, self );
|
||||
};
|
||||
|
||||
/**
|
||||
* joinTag( id )
|
||||
* Join a new version tag
|
||||
*/
|
||||
WebGUI.Admin.prototype.joinTag
|
||||
= function ( id ) {
|
||||
var url = appendToUrl( this.currentAssetDef.url, 'op=setWorkingVersionTag;tagId=' + id );
|
||||
this.gotoAsset( url );
|
||||
};
|
||||
|
||||
/**
|
||||
* updateAssetHelpers( assetDef )
|
||||
* Update the asset helpers. assetDef must contain:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue