ability to change the permissions of multiple through the right click menu implemented

This commit is contained in:
Connor Turland 2014-03-02 15:05:03 -08:00
parent a36d1c8aec
commit 4fc60c13e7
3 changed files with 108 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

View file

@ -52,6 +52,14 @@ function selectEdgeOnRightClickHandler(adj, e) {
if (userid != null) menustring += '<li class="rc-delete">Delete</li>'; if (userid != null) menustring += '<li class="rc-delete">Delete</li>';
if (mapid && userid != null) menustring += '<li class="rc-remove">Remove from Map</li>'; if (mapid && userid != null) menustring += '<li class="rc-remove">Remove from Map</li>';
menustring += '<li class="rc-hide">Hide until refresh</li>'; menustring += '<li class="rc-hide">Hide until refresh</li>';
if (userid) {
var options = '<ul><li class="changeP toCommons">commons</li> \
<li class="changeP toPublic">public</li> \
<li class="changeP toPrivate">private</li> \
</ul>';
menustring += '<li class="rc-permission">Change permissions' + options + '</li>';
}
menustring += '</ul>'; menustring += '</ul>';
rightclickmenu.innerHTML = menustring; rightclickmenu.innerHTML = menustring;
@ -96,6 +104,13 @@ function selectEdgeOnRightClickHandler(adj, e) {
hideSelectedEdges(); hideSelectedEdges();
hideSelectedNodes(); hideSelectedNodes();
}); });
// change the permission of all the selected nodes and synapses that you were the originator of
$('.rc-permission li').click(function() {
$('.rightclickmenu').remove();
// $(this).text() will be 'commons' 'public' or 'private'
updateSelectedPermissions( $(this).text() );
});
} //selectEdgeOnRightClickHandler } //selectEdgeOnRightClickHandler
@ -236,6 +251,14 @@ function selectNodeOnClickHandler(node, e) {
if (!mapid) menustring += '<li class="rc-center">Center This Topic</li>'; if (!mapid) menustring += '<li class="rc-center">Center This Topic</li>';
menustring += '<li class="rc-popout">Open In New Tab</li>'; menustring += '<li class="rc-popout">Open In New Tab</li>';
if (userid) {
var options = '<ul><li class="changeP toCommons">commons</li> \
<li class="changeP toPublic">public</li> \
<li class="changeP toPrivate">private</li> \
</ul>';
menustring += '<li class="rc-permission">Change permissions' + options + '</li>';
}
menustring += '</ul>'; menustring += '</ul>';
rightclickmenu.innerHTML = menustring; rightclickmenu.innerHTML = menustring;
@ -293,6 +316,13 @@ function selectNodeOnClickHandler(node, e) {
var win=window.open('/topics/' + node.id, '_blank'); var win=window.open('/topics/' + node.id, '_blank');
win.focus(); win.focus();
}); });
// change the permission of all the selected nodes and synapses that you were the originator of
$('.rc-permission li').click(function() {
$('.rightclickmenu').remove();
// $(this).text() will be 'commons' 'public' or 'private'
updateSelectedPermissions( $(this).text() );
});
} //selectNodeOnRightClickHandler } //selectNodeOnRightClickHandler
@ -533,3 +563,45 @@ function touchPanZoomHandler(eventInfo, e) {
} }
} }
function updateSelectedPermissions(permission) {
if ( $('.notice.metamaps').length == 0 ) {
$('body').prepend('<div class="notice metamaps" />');
}
$('.notice.metamaps').hide().html('Working...').fadeIn('fast');
// variables to keep track of how many nodes and synapses you had the ability to change the permission of
var nCount = 0, sCount = 0;
// change the permission of the selected synapses, if logged in user is the original creator
var l = MetamapsModel.selectedEdges.length;
for (var i = l-1; i >= 0; i -= 1) {
var edge = MetamapsModel.selectedEdges[i];
if (edge.getData('userid') == userid) {
updateSynapsePermission(edge,permission);
sCount++;
}
}
// change the permission of the selected topics, if logged in user is the original creator
var l = MetamapsModel.selectedNodes.length;
for (var i = l-1; i >= 0; i -= 1) {
var node = MetamapsModel.selectedNodes[i];
if (node.getData('userid') == userid) {
updateTopicPermission(node,permission);
nCount++;
}
}
var nString = nCount == 1 ? (nCount.toString() + ' topic and ') : (nCount.toString() + ' topics and ');
var sString = sCount == 1 ? (sCount.toString() + ' synapse') : (sCount.toString() + ' synapses');
$('.notice.metamaps').html(nString + sString + ' you created updated to ' + permission)
setTimeout( function() {
$('.notice.metamaps').fadeOut('fast');
}, 8000);
}

View file

@ -1291,13 +1291,13 @@ left: 13px;
color: black; color: black;
} }
.rightclickmenu > ul { .rightclickmenu ul {
padding: 2px; padding: 2px;
} }
.rightclickmenu ul li { .rightclickmenu ul li {
list-style: none; list-style: none;
padding: 3px 45px 3px 30px; padding: 3px 10px 3px 30px;
font-family: arial, sans-serif; font-family: arial, sans-serif;
font-size: 17px; font-size: 17px;
line-height: 17px; line-height: 17px;
@ -1305,8 +1305,14 @@ background-repeat: no-repeat;
background-size: 20px 20px; background-size: 20px 20px;
background-position: 5px 2px; background-position: 5px 2px;
} }
.rightclickmenu ul li:nth-child(odd){
background-color: #FFF;
}
.rightclickmenu ul li:nth-child(even){
background-color: #EEE;
}
.rightclickmenu ul li:hover { .rightclickmenu ul li:hover {
background-color: #e4e4e4; background-color: #BBB;
background-position: 7px 2px; background-position: 7px 2px;
cursor:pointer; cursor:pointer;
} }
@ -1322,6 +1328,33 @@ background-position: 5px 2px;
.rightclickmenu .rc-popout { .rightclickmenu .rc-popout {
background-image: url(MMCCicon_pop-out_black.png); background-image: url(MMCCicon_pop-out_black.png);
} }
.rightclickmenu .rc-permission {
background-image: url(MMCCicon_edit_permission_black.png);
position:relative;
}
.rightclickmenu .rc-permission ul {
display:none;
background:white;
top: 0;
left:100%;
position:absolute;
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
border-top-right-radius: 2px;
}
.rightclickmenu .rc-permission:hover ul {
display:block;
}
.rightclickmenu .rc-permission .toCommons {
background-image: url(MMCCicon_commons.png);
}
.rightclickmenu .rc-permission .toPublic {
background-image: url(MMCCicon_public.png);
}
.rightclickmenu .rc-permission .toPrivate {
background-image: url(MMCCicon_private.png);
}
.rightclickmenu p { .rightclickmenu p {
padding:7px; padding:7px;