From: <lph...@us...> - 2009-01-06 19:33:33
|
Revision: 16189 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=16189&view=rev Author: lphuberdeau Date: 2009-01-06 19:33:32 +0000 (Tue, 06 Jan 2009) Log Message: ----------- [MOD]?\194?\160Include group watches in the admin list Modified Paths: -------------- trunk/lib/core/lib/TikiFilter.php trunk/lib/tikilib.php trunk/templates/tiki-admin_notifications.tpl trunk/tiki-admin_notifications.php Modified: trunk/lib/core/lib/TikiFilter.php =================================================================== --- trunk/lib/core/lib/TikiFilter.php 2009-01-06 18:00:44 UTC (rev 16188) +++ trunk/lib/core/lib/TikiFilter.php 2009-01-06 19:33:32 UTC (rev 16189) @@ -45,6 +45,7 @@ case 'wikicontent': require_once 'TikiFilter/RawUnsafe.php'; return new TikiFilter_RawUnsafe; + case 'email': case 'url': case 'lang': // TODO Modified: trunk/lib/tikilib.php =================================================================== --- trunk/lib/tikilib.php 2009-01-06 18:00:44 UTC (rev 16188) +++ trunk/lib/tikilib.php 2009-01-06 19:33:32 UTC (rev 16189) @@ -202,9 +202,16 @@ $bindvars = array(); if ($find) { $mid = ' where `event` like ? or `email` like ?'; - $bindvars = array('%'.$find.'%', '%'.$find.'%'); + $mid2 = ' where `event` like ? or `email` like ?'; + $bindvars = array('%'.$find.'%', '%'.$find.'%', '%'.$find.'%'); } - $query = 'select * from `tiki_user_watches`'.$mid.' order by '.$this->convert_sortmode($sort_mode); + $query = "select 'user' as watchtype, watchId, `user`, event, object, title, type, url, email from `tiki_user_watches` $mid + UNION ALL + ( + select 'group' as watchtype, watchId, `group`, event, object, title, type, url, '' as email + from tiki_group_watches $mid2 + ) + order by ".$this->convert_sortmode($sort_mode); $query_cant = 'select count(*) from `tiki_user_watches`'.$mid; $result = $this->query($query,$bindvars,$maxRecords,$offset); $cant = $this->getOne($query_cant,$bindvars); @@ -240,6 +247,11 @@ $this->query($query,array($id)); } + function remove_group_watch_by_id($id) { + $query = "delete from `tiki_group_watches` where `watchId`=?"; + $this->query($query,array($id)); + } + /*shared*/ function remove_user_watch($user, $event, $object) { $query = "delete from `tiki_user_watches` where ".$this->convert_binary()." `user`=? and `event`=? and `object`=?"; Modified: trunk/templates/tiki-admin_notifications.tpl =================================================================== --- trunk/templates/tiki-admin_notifications.tpl 2009-01-06 18:00:44 UTC (rev 16188) +++ trunk/templates/tiki-admin_notifications.tpl 2009-01-06 19:33:32 UTC (rev 16189) @@ -71,18 +71,25 @@ <th>{self_link _sort_arg="sort_mode" _sort_field="event"}{tr}Event{/tr}{/self_link}</th> <th>{self_link _sort_arg="sort_mode" _sort_field="object"}{tr}Object{/tr}{/self_link}</th> <th>{self_link _sort_arg="sort_mode" _sort_field="email"}{tr}eMail{/tr}{/self_link}</th> - <th>{self_link _sort_arg="sort_mode" _sort_field="user"}{tr}User{/tr}{/self_link}</th> + <th>{self_link _sort_arg="sort_mode" _sort_field="user"}{tr}User / Group{/tr}{/self_link}</th> <th>{tr}Action{/tr}</th> </tr> {cycle print=false values="even,odd"} {section name=user loop=$channels} <tr class="{cycle}"> - <td><input type="checkbox" name="checked[]" value="{$channels[user].watchId|escape}" {if $smarty.request.checked and in_array($channels[user].watchId,$smarty.request.checked)}checked="checked"{/if} /></td> + <td><input type="checkbox" name="checked[]" value="{$channels[user].watchtype}{$channels[user].watchId|escape}" {if $smarty.request.checked and in_array($channels[user].watchId,$smarty.request.checked)}checked="checked"{/if} /></td> <td>{$channels[user].event}</td> <td>{if $channels[user].url}<a href="{$channels[user].url}" title="{$channels[user].title|escape}">{$channels[user].object|escape}</a>{else}{$channels[user].object|escape}{/if}</td> - <td>{$channels[user].email}</td> - <td>{$channels[user].user}</td> - <td><a class="link" href="{$smarty.server.PHP_SELF}?{query removeevent=$channels[user].watchId}">{icon _id='cross' alt='{tr}Remove{/tr}'}</a></td> + <td>{if $channels[user].watchtype eq 'user'}{$channels[user].email}{else}<em>{tr}Multiple{/tr}</em>{/if}</td> + <td> + {if $channels[user].watchtype eq 'group'} + {icon _id='group'} + {else} + {icon _id='user'} + {/if} + {$channels[user].user} + </td> + <td><a class="link" href="{$smarty.server.PHP_SELF}?{query removeevent=$channels[user].watchId removetype=$channels[user].watchtype}">{icon _id='cross' alt='{tr}Remove{/tr}'}</a></td> </tr> {sectionelse} <tr class="odd"><td colspan="6"><b>{tr}No records found.{/tr}</b></td></tr> Modified: trunk/tiki-admin_notifications.php =================================================================== --- trunk/tiki-admin_notifications.php 2009-01-06 18:00:44 UTC (rev 16188) +++ trunk/tiki-admin_notifications.php 2009-01-06 19:33:32 UTC (rev 16189) @@ -6,6 +6,25 @@ // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. +$inputConfiguration = array( + 'staticKeyFilters' => array( + 'offset' => 'digits', + 'maxRecords' => 'digits', + 'sort_mode' => 'word', + 'find' => 'striptags', + 'login' => 'username', + 'email' => 'email', + 'event' => 'word', + + 'add' => 'alpha', + 'delsel_x' => 'alpha', + ), + 'staticKeyFiltersForArrays' => array( + 'checked' => 'alnum', + ), + 'catchAllUnset' => null, +); + // Initialization require_once ('tiki-setup.php'); include_once ('lib/notifications/notificationlib.php'); @@ -92,11 +111,15 @@ if (!empty($tikifeedback)) { $smarty->assign_by_ref('tikifeedback', $tikifeedback); } -if (isset($_REQUEST["removeevent"])) { +if (isset($_REQUEST["removeevent"]) && isset($_REQUEST['removetype'])) { $area = 'delnotif'; if ($prefs['feature_ticketlib2'] != 'y' or (isset($_POST['daconfirm']) and isset($_SESSION["ticket_$area"]))) { key_check($area); - $tikilib->remove_user_watch_by_id($_REQUEST["removeevent"]); + if( $_REQUEST['removetype'] == 'user' ) { + $tikilib->remove_user_watch_by_id($_REQUEST["removeevent"]); + } else { + $tikilib->remove_group_watch_by_id($_REQUEST["removeevent"]); + } } else { key_get($area); } @@ -104,7 +127,10 @@ if (isset($_REQUEST['delsel_x']) && isset($_REQUEST['checked'])) { check_ticket('admin-notif'); foreach($_REQUEST['checked'] as $id) { - $tikilib->remove_user_watch_by_id($id); + if( strpos( $id, 'user' ) === 0 ) + $tikilib->remove_user_watch_by_id(substr($id, 4)); + else + $tikilib->remove_group_watch_by_id(substr($id, 5)); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |