diff options
author | Mike Macgirvin <mike@macgirvin.com> | 2010-09-29 22:11:26 -0700 |
---|---|---|
committer | Mike Macgirvin <mike@macgirvin.com> | 2010-09-29 22:11:26 -0700 |
commit | dda51954185ef5a1801ef2b9a2b99cb796399a91 (patch) | |
tree | 26bdfdf51afa10b7aaf830bf513b823f6b3f2aaf | |
parent | d2ecdd0668728b28254a062e107ae12acbd542ea (diff) | |
download | volse-hubzilla-dda51954185ef5a1801ef2b9a2b99cb796399a91.tar.gz volse-hubzilla-dda51954185ef5a1801ef2b9a2b99cb796399a91.tar.bz2 volse-hubzilla-dda51954185ef5a1801ef2b9a2b99cb796399a91.zip |
show members of locked conversations
-rw-r--r-- | include/main.js | 51 | ||||
-rw-r--r-- | include/nav.php | 2 | ||||
-rw-r--r-- | index.php | 3 | ||||
-rw-r--r-- | mod/display.php | 3 | ||||
-rw-r--r-- | mod/lockview.php | 67 | ||||
-rw-r--r-- | mod/network.php | 4 | ||||
-rw-r--r-- | mod/profile.php | 5 | ||||
-rw-r--r-- | view/theme/default/style.css | 13 |
8 files changed, 135 insertions, 13 deletions
diff --git a/include/main.js b/include/main.js index fcb6677d3..6d743c4f4 100644 --- a/include/main.js +++ b/include/main.js @@ -135,9 +135,9 @@ $(node).css('height',16); } - // Since ajax is asynchronous, we will give a few seconds for - // the first ajax call (setting like/dislike), then run the - // updater to pick up any changes and display on the page. + // Since our ajax calls are asynchronous, we will give a few + // seconds for the first ajax call (setting like/dislike), then + // run the updater to pick up any changes and display on the page. // The updater will turn any rotators off when it's done. // This function will have returned long before any of these // events have completed and therefore there won't be any @@ -151,3 +151,48 @@ if(timer) clearTimeout(timer); timer = setTimeout(NavUpdate,3000); } + + function getPosition(e) { + e = e || window.event; + var cursor = {x:0, y:0}; + if ( e.pageX > 0 || e.pageY > 0 ) { + cursor.x = e.pageX; + cursor.y = e.pageY; + } + else { + if( e.clientX > 0 || e.clientY > 0 ) { + cursor.x = e.clientX; + cursor.y = e.clientY; + } + else { + if( e.x > 0 || e.y > 0 ) { + cursor.x = e.x; + cursor.y = e.y; + } + } + } + return cursor; + } + + var lockvisible = false; + + function lockview(event,id) { + if(lockvisible) { + lockviewhide(); + } + else { + lockvisible = true; + $.get('lockview/' + id, function(data) { + cursor = getPosition(event); + $('#panel').html(data); + $('#panel').css({ 'left': cursor.x + 5 , 'top': cursor.y + 5}); + $('#panel').show(); + }); + } + } + + function lockviewhide() { + lockvisible = false; + $('#panel').hide(); + } + diff --git a/include/nav.php b/include/nav.php index 7f6aea17f..48b935aae 100644 --- a/include/nav.php +++ b/include/nav.php @@ -1,5 +1,7 @@ <?php +$a->page['nav'] .= '<div id="panel" style="display: none;"></div>' ; + if(x($_SESSION['uid'])) { $a->page['nav'] .= '<a id="nav-logout-link" class="nav-link" href="logout">' . t('Logout') . "</a>\r\n"; } @@ -86,7 +86,8 @@ if(x($_SESSION,'sysmsg')) { // Feel free to comment out this line on production sites. $a->page['content'] .= $debug_text; -$a->page['content'] .= '<div id="pause"></div>'; + +$a->page['content'] .= '<div id="pause"></div>'; // build page diff --git a/mod/display.php b/mod/display.php index d0bbf54bf..451b9d644 100644 --- a/mod/display.php +++ b/mod/display.php @@ -151,10 +151,9 @@ function display_content(&$a) { $lock = (($item['uid'] == get_uid()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])) - ? '<div class="wall-item-lock"><img src="images/lock_icon.gif" alt="Private Message" /></div>' + ? '<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="' . t('Private Message') . '" onclick="lockview(event,' . $item['id'] . ');" /></div>' : '<div class="wall-item-lock"></div>'); - if(can_write_wall($a,$a->profile['uid'])) { if($item['last-child']) { $comment = replace_macros($cmnt_tpl,array( diff --git a/mod/lockview.php b/mod/lockview.php new file mode 100644 index 000000000..b8f4318df --- /dev/null +++ b/mod/lockview.php @@ -0,0 +1,67 @@ +<?php + + +function lockview_content(&$a) { + + $item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0); + if(! $item_id) + killme(); + + $r = q("SELECT * FROM `item` WHERE `id` = %d LIMIT 1", + intval($item_id) + ); + if(! count($r)) + killme(); + $item = $r[0]; + if($item['uid'] != local_user()) + killme(); + + + $allowed_users = expand_acl($item['allow_cid']); + $allowed_groups = expand_acl($item['allow_gid']); + $deny_users = expand_acl($item['deny_cid']); + $deny_groups = expand_acl($item['deny_gid']); + + $o = t('Visible to:') . '<br />'; + $l = array(); + + if(count($allowed_groups)) { + $r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )", + dbesc(implode(', ', $allowed_groups)) + ); + if(count($r)) + foreach($r as $rr) + $l[] = '<b>' . $rr['name'] . '</b>'; + } + if(count($allowed_users)) { + $r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )", + dbesc(implode(', ',$allowed_users)) + ); + if(count($r)) + foreach($r as $rr) + $l[] = $rr['name']; + + } + + if(count($deny_groups)) { + $r = q("SELECT `name` FROM `group` WHERE `id` IN ( %s )", + dbesc(implode(', ', $deny_groups)) + ); + if(count($r)) + foreach($r as $rr) + $l[] = '<b><strike>' . $rr['name'] . '</strike></b>'; + } + if(count($deny_users)) { + $r = q("SELECT `name` FROM `contact` WHERE `id` IN ( %s )", + dbesc(implode(', ',$deny_users)) + ); + if(count($r)) + foreach($r as $rr) + $l[] = '<strike>' . $rr['name'] . '</strike>'; + + } + + echo $o . implode(', ', $l); + killme(); + +} diff --git a/mod/network.php b/mod/network.php index b0daecac4..ac5664b4f 100644 --- a/mod/network.php +++ b/mod/network.php @@ -173,13 +173,11 @@ function network_content(&$a, $update = 0) { if((($item['verb'] == ACTIVITY_LIKE) || ($item['verb'] == ACTIVITY_DISLIKE)) && ($item['id'] != $item['parent'])) continue; - $lock = (($item['uid'] == get_uid()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])) - ? '<div class="wall-item-lock"><img src="images/lock_icon.gif" alt="Private Message" /></div>' + ? '<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="' . t('Private Message') . '" onclick="lockview(event,' . $item['id'] . ');" /></div>' : '<div class="wall-item-lock"></div>'); - // Top-level wall post not written by the wall owner (wall-to-wall) // First figure out who owns it. diff --git a/mod/profile.php b/mod/profile.php index bf9c0f758..de0ae5745 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -309,12 +309,9 @@ function profile_content(&$a, $update = 0) { $lock = (($item['uid'] == get_uid()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid'])) - ? '<div class="wall-item-lock"><img src="images/lock_icon.gif" alt="Private Message" /></div>' + ? '<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="' . t('Private Message') . '" onclick="lockview(event,' . $item['id'] . ');" /></div>' : '<div class="wall-item-lock"></div>'); - - - if(can_write_wall($a,$a->profile['profile_uid'])) { if($item['id'] == $item['parent']) { $likebuttons = replace_macros($like_tpl,array('$id' => $item['id'])); diff --git a/view/theme/default/style.css b/view/theme/default/style.css index 90bd3f8c2..bd147131c 100644 --- a/view/theme/default/style.css +++ b/view/theme/default/style.css @@ -16,6 +16,9 @@ a:hover { margin-top: 15px; margin-bottom: 15px; } +.lockview { + cursor: pointer; +} .fakelink:hover { color: #0000FF; @@ -46,6 +49,16 @@ img { top: 12px; left: 42%; } + +#panel { + background-color: ivory; + position: absolute; + z-index: 2; + width: 30%; + padding: 25px; + border: 1px solid #444; +} + code { font-family: monospace; white-space: pre; |