From: <sy...@us...> - 2008-06-13 17:14:19
|
Revision: 13239 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=13239&view=rev Author: sylvieg Date: 2008-06-13 10:14:26 -0700 (Fri, 13 Jun 2008) Log Message: ----------- [MOD]tracker: 2 new characteristic to a field -> visible only by some groups+admin, editable by soem groups+admin -> to do: not only test the default group but all the groups Modified Paths: -------------- branches/1.10/db/tiki.sql branches/1.10/db/tiki_1.9to1.10.sql branches/1.10/lib/trackers/trackerlib.php branches/1.10/lib/wiki-plugins/wikiplugin_trackerlist.php branches/1.10/templates/tiki-admin_tracker_fields.tpl branches/1.10/templates/tiki-plugin_trackerlist.tpl branches/1.10/templates/tiki-view_tracker.tpl branches/1.10/templates/tiki-view_tracker_item.tpl branches/1.10/templates/tracker_item_field_input.tpl branches/1.10/templates/tracker_item_field_value.tpl branches/1.10/tiki-admin_tracker_fields.php Modified: branches/1.10/db/tiki.sql =================================================================== --- branches/1.10/db/tiki.sql 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/db/tiki.sql 2008-06-13 17:14:26 UTC (rev 13239) @@ -3440,6 +3440,8 @@ description text, itemChoices text, errorMsg text, + visibleBy text, + editableBy text, PRIMARY KEY (fieldId) ) ENGINE=MyISAM AUTO_INCREMENT=1 ; # -------------------------------------------------------- Modified: branches/1.10/db/tiki_1.9to1.10.sql =================================================================== --- branches/1.10/db/tiki_1.9to1.10.sql 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/db/tiki_1.9to1.10.sql 2008-06-13 17:14:26 UTC (rev 13239) @@ -1821,4 +1821,8 @@ #2008-06-12 sylvieg update users_objectpermissions set permName='tiki_p_assign_perm_image_gallery' where permName='tiki_p_assign_perm_image_galler'; update users_grouppermissions set permName='tiki_p_assign_perm_image_gallery' where permName='tiki_p_assign_perm_image_galler'; -delete from users_permissions where permName='tiki_p_assign_perm_image_galler'; \ No newline at end of file +delete from users_permissions where permName='tiki_p_assign_perm_image_galler'; + +#2008-06-13 sylvieg +alter table tiki_tracker_fields add visibleBy text after errorMsg; +alter table tiki_tracker_fields add editableBy text after visibleBy; \ No newline at end of file Modified: branches/1.10/lib/trackers/trackerlib.php =================================================================== --- branches/1.10/lib/trackers/trackerlib.php 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/lib/trackers/trackerlib.php 2008-06-13 17:14:26 UTC (rev 13239) @@ -741,7 +741,7 @@ return $retval; } function get_item_fields($trackerId, $itemId, $listfields, &$itemUser) { - global $prefs; + global $prefs, $user; $fields = array(); $fil = array(); $kx = ''; @@ -1788,6 +1788,8 @@ while ($res = $result->fetchRow()) { $res['options_array'] = preg_split('/\s*,\s*/', trim($res['options'])); $res['itemChoices'] = ( $res['itemChoices'] != '' ) ? unserialize($res['itemChoices']) : array(); + $res['visibleBy'] = ($res['visibleBy'] != '') ? unserialize($res['visibleBy']) : array(); + $res['editableBy'] = ($res['editableBy'] != '') ? unserialize($res['editableBy']) : array(); if ($tra_name && $prefs['feature_multilingual'] == 'y' && $prefs['language'] != 'en') $res['name'] = tra($res['name']); if ($res['type'] == 'd' || $res['type'] == 'D' || $res['type'] == 'R') { // drop down @@ -1883,14 +1885,20 @@ } - function replace_tracker_field($trackerId, $fieldId, $name, $type, $isMain, $isSearchable, $isTblVisible, $isPublic, $isHidden, $isMandatory, $position, $options, $description='',$isMultilingual='', $itemChoices=null, $errorMsg='') { - + function replace_tracker_field($trackerId, $fieldId, $name, $type, $isMain, $isSearchable, $isTblVisible, $isPublic, $isHidden, $isMandatory, $position, $options, $description='',$isMultilingual='', $itemChoices=null, $errorMsg='', $visibleBy=null, $editableBy=null) { // Serialize choosed items array (items of the tracker field to be displayed in the list proposed to the user) - if ( is_array($itemChoices) && count($itemChoices) > 0 ) { + if ( is_array($itemChoices) && count($itemChoices) > 0 && !empty($itemChoices[0]) ) { $itemChoices = serialize($itemChoices); } else { $itemChoices = ''; } + if (is_array($visibleBy) && count($visibleBy) > 0 && !empty($visibleBy[0])) { + $visibleBy = serialize($visibleBy); + } + if (is_array($editableBy) && count($editableBy) > 0 && !empty($editableBy[0])) { + $editableBy = serialize($editableBy); + } + if ($fieldId) { // ------------------------------------- @@ -1901,21 +1909,21 @@ $this->remove_field_images( $fieldId ); } $query = "update `tiki_tracker_fields` set `name`=? ,`type`=?,`isMain`=?,`isSearchable`=?, - `isTblVisible`=?,`isPublic`=?,`isHidden`=?,`isMandatory`=?,`position`=?,`options`=?,`isMultilingual`=?, `description`=?, `itemChoices`=?, `errorMsg`=? where `fieldId`=?"; - $bindvars=array($name,$type,$isMain,$isSearchable,$isTblVisible,$isPublic,$isHidden,$isMandatory,(int)$position,$options,$isMultilingual,$description, $itemChoices, $errorMsg, (int) $fieldId); + `isTblVisible`=?,`isPublic`=?,`isHidden`=?,`isMandatory`=?,`position`=?,`options`=?,`isMultilingual`=?, `description`=?, `itemChoices`=?, `errorMsg`=?, visibleBy=?, editableBy=? where `fieldId`=?"; + $bindvars=array($name,$type,$isMain,$isSearchable,$isTblVisible,$isPublic,$isHidden,$isMandatory,(int)$position,$options,$isMultilingual,$description, $itemChoices, $errorMsg, $visibleBy, $editableBy, (int) $fieldId); } else { $query = "insert into `tiki_tracker_fields` (`trackerId`,`name`,`type`,`isMain`,`isSearchable`, - `isTblVisible`,`isPublic`,`isHidden`,`isMandatory`,`position`,`options`,`fieldId`,`isMultilingual`, `description`, `itemChoices`, `errorMsg`) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; - $bindvars=array((int) $trackerId,$name,$type,$isMain,$isSearchable,$isTblVisible,$isPublic,$isHidden,$isMandatory,(int)$position,$options,(int) $fieldId,$isMultilingual, $description, $itemChoices, $errorMsg); + `isTblVisible`, `isPublic`, `isHidden`, `isMandatory`, `position`, `options`, `fieldId`, `isMultilingual`, `description`, `itemChoices`, `errorMsg`, `visibleBy`, `editableBy`) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"; + $bindvars=array((int) $trackerId,$name,$type,$isMain,$isSearchable,$isTblVisible,$isPublic,$isHidden,$isMandatory,(int)$position,$options,(int) $fieldId,$isMultilingual, $description, $itemChoices, $errorMsg, $visibleBy, $editableBy); } $result = $this->query($query, $bindvars); } else { $this->getOne("delete from `tiki_tracker_fields` where `trackerId`=? and `name`=?", array((int) $trackerId,$name),false); - $query = "insert into `tiki_tracker_fields`(`trackerId`,`name`,`type`,`isMain`,`isSearchable`,`isTblVisible`,`isPublic`,`isHidden`,`isMandatory`,`position`,`options`,`description`,`isMultilingual`, `itemChoices`, `errorMsg`) - values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + $query = "insert into `tiki_tracker_fields`(`trackerId`,`name`,`type`,`isMain`,`isSearchable`,`isTblVisible`,`isPublic`,`isHidden`,`isMandatory`,`position`,`options`,`description`,`isMultilingual`, `itemChoices`, `errorMsg`, `visibleBy`, `editableBy`) + values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - $result = $this->query($query,array((int) $trackerId,$name,$type,$isMain,$isSearchable,$isTblVisible,$isPublic,$isHidden,$isMandatory,$position,$options,$description,$isMultilingual, $itemChoices, $errorMsg)); + $result = $this->query($query,array((int) $trackerId,$name,$type,$isMain,$isSearchable,$isTblVisible,$isPublic,$isHidden,$isMandatory,$position,$options,$description,$isMultilingual, $itemChoices, $errorMsg, $visibleBy, $editableBy)); $fieldId = $this->getOne("select max(`fieldId`) from `tiki_tracker_fields` where `trackerId`=? and `name`=?",array((int) $trackerId,$name)); // Now add the field to all the existing items $query = "select `itemId` from `tiki_tracker_items` where `trackerId`=?"; @@ -2061,6 +2069,8 @@ $res = $result->fetchRow(); $res['options_array'] = split(',', $res['options']); $res['itemChoices'] = ( $res['itemChoices'] != '' ) ? unserialize($res['itemChoices']) : array(); + $res['visibleBy'] = ($res['visibleBy'] != '') ? unserialize($res['visibleBy']) : array(); + $res['editableBy'] = ($res['editableBy'] != '') ? unserialize($res['editableBy']) : array(); return $res; } Modified: branches/1.10/lib/wiki-plugins/wikiplugin_trackerlist.php =================================================================== --- branches/1.10/lib/wiki-plugins/wikiplugin_trackerlist.php 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/lib/wiki-plugins/wikiplugin_trackerlist.php 2008-06-13 17:14:26 UTC (rev 13239) @@ -1,10 +1,5 @@ <?php // $Id: /cvsroot/tikiwiki/tiki/lib/wiki-plugins/wikiplugin_trackerlist.php,v 1.40.2.12 2008-03-22 12:13:54 sylvieg Exp $ -// -// TODO : -// ---------- -// - filtrage avec expression exacte -// function wikiplugin_trackerlist_help() { $help = tra("Displays the output of a tracker content, fields are indicated with numeric ids.").":\n"; @@ -314,6 +309,7 @@ $smarty->assign_by_ref('listfields', $listfields); $smarty->assign_by_ref('popupfields', $popupfields); + if (count($passfields)) { $items = $trklib->list_items($trackerId, $tr_offset, $max, $tr_sort_mode, $passfields, $filterfield, $filtervalue, $tr_status, $tr_initial, $exactvalue, $filter); Modified: branches/1.10/templates/tiki-admin_tracker_fields.tpl =================================================================== --- branches/1.10/templates/tiki-admin_tracker_fields.tpl 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/templates/tiki-admin_tracker_fields.tpl 2008-06-13 17:14:26 UTC (rev 13239) @@ -62,6 +62,7 @@ {foreach key=fk item=fi from=$field_types name=foreachname} {if isset($fi.itemChoicesList)} <select name="itemChoices[]" id='{$fk}itemChoices' {if $type eq $fk or (($type eq 'o' or $type eq '') and $smarty.foreach.foreachname.first)}style="display:block;"{else}style="display:none;"{/if} size="{math equation="min(10,x)" x=$fi.itemChoicesList|@count}" multiple="multiple"> +<option value=""> </option> {sortlinks} {foreach key=choice_k item=choice_i from=$fi.itemChoicesList} {$choice_k} @@ -84,7 +85,21 @@ <option value="y"{if $isHidden eq 'y'} selected="selected"{/if}>{tr}visible to admin only{/tr}</option> <option value="p"{if $isHidden eq 'p'} selected="selected"{/if}>{tr}editable by admin only{/tr}</option> <option value="c"{if $isHidden eq 'c'} selected="selected"{/if}>{tr}visible by creator & admin only{/tr}</option> -</select><br /><i>{tr}The option creator needs a field of type user selector and option 1{/tr}</i> +</select><br /><i>{tr}The option creator needs a field of type user selector and option 1{/tr}</i><br /> +{tr}Visible by:{/tr} +<select name="visibleBy[]" size="3" multiple> +<option value=""> </option> +{foreach item=group from=$allGroups} +<option value="{$group|escape}"{if in_array($group, $visibleBy)} selected="selected"{/if}>{$group|escape}</option> +{/foreach} +</select><br /> +{tr}Editable by:{/tr} +<select name="editableBy[]" size="3" multiple> +<option value=""> </option> +{foreach item=group from=$allGroups} +<option value="{$group|escape}"{if in_array($group, $editableBy)} selected="selected"{/if}>{$group|escape}</option> +{/foreach} +</select> </td></tr> <tr class="formcolor"><td>{tr}Field is mandatory?{/tr}</td><td><input type="checkbox" name="isMandatory" {if $isMandatory eq 'y'}checked="checked"{/if} /></td></tr> <tr class="formcolor"><td>{tr}Order{/tr}:</td><td><input type="text" size="5" name="position" value="{$position}" /></td></tr> @@ -161,7 +176,10 @@ <td>{$channels[user].isTblVisible}</td> <td>{$channels[user].isSearchable}</td> <td>{$channels[user].isPublic}</td> -<td>{$channels[user].isHidden}</td> +<td>{$channels[user].isHidden} +{if !empty($channels[user].visibleBy)}<br />{icon _id=magnifier}{foreach from=$channels[user].visibleBy item=g}{$g|escape} {/foreach}{/if} +{if !empty($channels[user].editableBy)}<br />{icon _id=page_edit}{foreach from=$channels[user].editableBy item=g}{$g|escape} {/foreach}{/if} +</td> <td>{$channels[user].isMandatory}</td> <td>{$channels[user].description|truncate:14:"..."}</td> <td>{if $tracker_info.useRatings ne 'y' or $channels[user].name ne "Rating"} Modified: branches/1.10/templates/tiki-plugin_trackerlist.tpl =================================================================== --- branches/1.10/templates/tiki-plugin_trackerlist.tpl 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/templates/tiki-plugin_trackerlist.tpl 2008-06-13 17:14:26 UTC (rev 13239) @@ -30,7 +30,7 @@ {/if} {foreach key=jx item=ix from=$fields} -{if $ix.isPublic eq 'y' and ($ix.isHidden eq 'n' or $ix.isHidden eq 'c' or $ix.isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and $ix.type ne 'x' and $ix.type ne 'h' and in_array($ix.fieldId, $listfields) and ($ix.type ne 'p' or $ix.options_array[0] ne 'password')} +{if $ix.isPublic eq 'y' and ($ix.isHidden eq 'n' or $ix.isHidden eq 'c' or $ix.isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and $ix.type ne 'x' and $ix.type ne 'h' and in_array($ix.fieldId, $listfields) and ($ix.type ne 'p' or $ix.options_array[0] ne 'password') and (empty($ix.visibleBy) or in_array($default_group, $ix.visibleBy) or $tiki_p_admin_trackers eq 'y')} {if $ix.type eq 'l'} <td class="heading auto field{$ix.fieldId}">{$ix.name|default:" "}</td> {elseif $ix.type eq 's' and $ix.name eq "Rating"} @@ -96,7 +96,7 @@ {* ------------------------------------ *} {section name=ix loop=$items[user].field_values} -{if $items[user].field_values[ix].isPublic eq 'y' and ($items[user].field_values[ix].isHidden eq 'n' or $items[user].field_values[ix].isHidden eq 'c' or $items[user].field_values[ix].isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and $items[user].field_values[ix].type ne 'x' and $items[user].field_values[ix].type ne 'h' and in_array($items[user].field_values[ix].fieldId, $listfields) and ($items[user].field_values[ix].type ne 'p' or $items[user].field_values[ix].options_array[0] ne 'password')} +{if $items[user].field_values[ix].isPublic eq 'y' and ($items[user].field_values[ix].isHidden eq 'n' or $items[user].field_values[ix].isHidden eq 'c' or $items[user].field_values[ix].isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and $items[user].field_values[ix].type ne 'x' and $items[user].field_values[ix].type ne 'h' and in_array($items[user].field_values[ix].fieldId, $listfields) and ($items[user].field_values[ix].type ne 'p' or $items[user].field_values[ix].options_array[0] ne 'password') and (empty($items[user].field_values[ix].visibleBy) or in_array($default_group, $items[user].field_values[ix].visibleBy) or $tiki_p_admin_trackers eq 'y')} <td class="auto"> {if $items[user].field_values[ix].isHidden eq 'c' and $items[user].itemUser ne $user and $tiki_p_admin_trackers ne 'y'} {elseif isset($perms)} @@ -129,7 +129,7 @@ {else} {* a pretty tpl *} {* ------------------------------------ *} {section name=ix loop=$items[user].field_values} -{if $items[user].field_values[ix].isPublic eq 'y' and ($items[user].field_values[ix].isHidden eq 'n' or ($items[user].field_values[ix].isHidden eq 'c' and $items[user].itemUser eq $user) or $items[user].field_values[ix].isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and $items[user].field_values[ix].type ne 'x' and $items[user].field_values[ix].type ne 'h' and in_array($items[user].field_values[ix].fieldId, $listfields) and ($items[user].field_values[ix].type ne 'p' or $items[user].field_values[ix].options_array[0] ne 'password')} +{if $items[user].field_values[ix].isPublic eq 'y' and ($items[user].field_values[ix].isHidden eq 'n' or ($items[user].field_values[ix].isHidden eq 'c' and $items[user].itemUser eq $user) or $items[user].field_values[ix].isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and $items[user].field_values[ix].type ne 'x' and $items[user].field_values[ix].type ne 'h' and in_array($items[user].field_values[ix].fieldId, $listfields) and ($items[user].field_values[ix].type ne 'p' or $items[user].field_values[ix].options_array[0] ne 'password') and (empty($items[user].field_values[ix].visibleBy) or in_array($default_group, $items[user].field_values[ix].visibleBy) or $tiki_p_admin_trackers eq 'y')} {capture name=value} {if isset($perms)} {include file="tracker_item_field_value.tpl" item=$items[user] field_value=$items[user].field_values[ix] list_mode="y" Modified: branches/1.10/templates/tiki-view_tracker.tpl =================================================================== --- branches/1.10/templates/tiki-view_tracker.tpl 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/templates/tiki-view_tracker.tpl 2008-06-13 17:14:26 UTC (rev 13239) @@ -107,7 +107,7 @@ {/if} {foreach from=$fields key=ix item=field_value} -{if ( $field_value.type eq 's' and ($field_value.name eq "Rating" or $field_value.name eq tra("Rating")) and $field_value.isTblVisible eq 'y' ) || ( $field_value.isTblVisible eq 'y' and $field_value.type ne 'x' and $field_value.type ne 'h' and ($field_value.isHidden eq 'n' or $field_value.isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') ) and ($field_value.type ne 'p' or $field_value.options_array[0] ne 'password') } +{if ( $field_value.type eq 's' and ($field_value.name eq "Rating" or $field_value.name eq tra("Rating")) and $field_value.isTblVisible eq 'y' ) || ( $field_value.isTblVisible eq 'y' and $field_value.type ne 'x' and $field_value.type ne 'h' and ($field_value.isHidden eq 'n' or $field_value.isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') ) and ($field_value.type ne 'p' or $field_value.options_array[0] ne 'password') and (empty($field_value.visibleBy) or in_array($default_group, $field_value.visibleBy) or $tiki_p_admin_trackers eq 'y') } <td class="heading auto"> {self_link _class='tableheading' _sort_arg='sort_mode' _sort_field='f_'|cat:$field_value.fieldId}{$field_value.name|truncate:255:"..."|default:" "}{/self_link} </td> @@ -154,7 +154,7 @@ {* ------- list values --- *} {foreach from=$items[user].field_values key=ix item=field_value} -{if $field_value.isTblVisible eq 'y' and $field_value.type ne 'x' and $field_value.type ne 'h' and ($field_value.isHidden eq 'n' or $field_value.isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and ($field_value.type ne 'p' or $field_value.options_array[0] ne 'password')} +{if $field_value.isTblVisible eq 'y' and $field_value.type ne 'x' and $field_value.type ne 'h' and ($field_value.isHidden eq 'n' or $field_value.isHidden eq 'p' or $tiki_p_admin_trackers eq 'y') and ($field_value.type ne 'p' or $field_value.options_array[0] ne 'password') and (empty($field_value.visibleBy) or in_array($default_group, $field_value.visibleBy) or $tiki_p_admin_trackers eq 'y')} <td class="auto"> {if $field_value.isMain eq 'y' and ($tiki_p_view_trackers eq 'y' or $tiki_p_modify_tracker_items eq 'y' or $tiki_p_comment_tracker_items eq 'y' or ($tracker_info.writerCanModify eq 'y' and $user and $my eq $user) or ($tracker_info.writerCanModify eq 'y' and $group and $ours eq $group))} @@ -256,7 +256,7 @@ {* -------------------- header and others -------------------- *} {if $field_value.isHidden eq 'n' or $field_value.isHidden eq 'c' or $tiki_p_admin_trackers eq 'y'} -{if $field_value.type ne 'x' and $field_value.type ne 'l' and $field_value.type ne 'q' and (($field_value.type ne 'u' and $field_value.type ne 'g' and $field_value.type ne 'I') or !$field_value.options_array[0] or $tiki_p_admin_trackers eq 'y')} +{if $field_value.type ne 'x' and $field_value.type ne 'l' and $field_value.type ne 'q' and (($field_value.type ne 'u' and $field_value.type ne 'g' and $field_value.type ne 'I') or !$field_value.options_array[0] or $tiki_p_admin_trackers eq 'y') and (empty($field_value.visibleBy) or in_array($default_group, $field_value.visibleBy) or $tiki_p_admin_trackers eq 'y')and (empty($field_value.editableBy) or in_array($default_group, $field_value.editableBy) or $tiki_p_admin_trackers eq 'y')} {if $field_value.type eq 'h'} </table> <h2>{$field_value.name}</h2> @@ -293,7 +293,7 @@ {* -------------------- user selector -------------------- *} {if $field_value.type eq 'u'} -{if !$field_value.options_array[0] or $tiki_p_admin_trackers eq 'y'} +{if !$field_value.options_array[0] or empty($field_value.options_array[0]) or $tiki_p_admin_trackers eq 'y'} <select name="{$field_value.ins_id}" {if $listfields.$fid.http_request}onchange="selectValues('trackerIdList={$listfields.$fid.http_request[0]}&fieldlist={$listfields.$fid.http_request[3]}&filterfield={$listfields.$fid.http_request[1]}&status={$listfields.$fid.http_request[4]}&mandatory={$listfields.$fid.http_request[6]}&filtervalue='+escape(this.value),'{$listfields.$fid.http_request[5]}')"{/if}> <option value="">{tr}None{/tr}</option> {foreach key=id item=one from=$users} Modified: branches/1.10/templates/tiki-view_tracker_item.tpl =================================================================== --- branches/1.10/templates/tiki-view_tracker_item.tpl 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/templates/tiki-view_tracker_item.tpl 2008-06-13 17:14:26 UTC (rev 13239) @@ -97,7 +97,7 @@ {assign var=stick value="n"} {foreach from=$ins_fields key=ix item=cur_field} - {if ($cur_field.isHidden ne 'y' or $tiki_p_admin_trackers eq 'y') and !($tracker_info.doNotShowEmptyField eq 'y' and empty($cur_field.value) and empty($cur_field.cat) and $cur_field.type ne 's' and $cur_field.type ne 'h') and ($cur_field.type ne 'p' or $cur_field.options_array[0] ne 'password')} + {if ($cur_field.isHidden ne 'y' or $tiki_p_admin_trackers eq 'y') and !($tracker_info.doNotShowEmptyField eq 'y' and empty($cur_field.value) and empty($cur_field.cat) and $cur_field.type ne 's' and $cur_field.type ne 'h') and ($cur_field.type ne 'p' or $cur_field.options_array[0] ne 'password') and (empty($cur_field.visibleBy) or in_array($default_group, $cur_field.visibleBy) or $tiki_p_admin_trackers eq 'y')} {if $cur_field.type eq 'h'} </table> <h2>{$cur_field.name}</h2> @@ -217,9 +217,9 @@ {/if} {foreach from=$ins_fields key=ix item=cur_field} -{if $cur_field.isHidden eq 'n' or $tiki_p_admin_trackers eq 'y' or $cur_field.isHidden eq 'c'} +{if ($cur_field.isHidden eq 'n' or $tiki_p_admin_trackers eq 'y' or $cur_field.isHidden eq 'c') and (empty($cur_field.visibleBy) or in_array($default_group, $cur_field.visibleBy) or $tiki_p_admin_trackers eq 'y') } -{if $cur_field.type eq 's' and ($cur_field.name eq "Rating" or $cur_field.name eq tra("Rating")) and ($tiki_p_tracker_view_ratings eq 'y' || $tiki_p_tracker_vote_ratings eq 'y')} +{if $cur_field.type eq 's' and ($cur_field.name eq "Rating" or $cur_field.name eq tra("Rating")) and ($tiki_p_tracker_view_ratings eq 'y' || $tiki_p_tracker_vote_ratings eq 'y') and (empty($cur_field.visibleBy) or in_array($default_group, $cur_field.visibleBy) or $tiki_p_admin_trackers eq 'y')} <tr class="formcolor"> <td> {$cur_field.name} @@ -265,7 +265,9 @@ {/if} {/if} -{if $cur_field.type eq 'p'} +{if !empty($cur_field.editableBy) and !in_array($default_group, $cur_field.editableBy) and $tiki_p_admin_trackers ne 'y'} + {include file='tracker_item_field_value.tpl' field_value=$cur_field} +{elseif $cur_field.type eq 'p'} {if $user ne $itemUser} {include file='tracker_item_field_value.tpl' field_value=$cur_field} {else} Modified: branches/1.10/templates/tracker_item_field_input.tpl =================================================================== --- branches/1.10/templates/tracker_item_field_input.tpl 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/templates/tracker_item_field_input.tpl 2008-06-13 17:14:26 UTC (rev 13239) @@ -11,6 +11,13 @@ {elseif $field_value.isHidden eq 'p' and $tiki_p_admin_trackers ne 'y'} {if $field_value.value}{$field_value.value|escape}{/if} +{* -- visible for some groups -- *} +{elseif !empty($field_value.visibleBy) and !in_array($default_group, $field_value.visibleBy) and $tiki_p_admin_trackers ne 'y'} + +{* -- editable for some groups -- *} +{elseif !empty($field_value.editableBy) and !in_array($default_group, $field_value.editableBy) and $tiki_p_admin_trackers ne 'y'} + + {* -------------------- system -------------------- *} {elseif $field_value.type eq 's' and ($field_value.name eq "Rating" or $field_value.name eq tra("Rating")) and $tiki_p_tracker_vote_ratings eq 'y'} {section name=i loop=$field_value.options_array} @@ -19,7 +26,7 @@ {* -------------------- user selector -------------------- *} {elseif $field_value.type eq 'u'} - {if $field_value.options_array[0] eq 0 or $tiki_p_admin_trackers eq 'y'} + {if $field_value.options_array[0] eq 0 or empty($field_value.options_array) or $tiki_p_admin_trackers eq 'y'} <select name="{$field_value.ins_id}" {if $field_value.http_request}onchange="selectValues('trackerIdList={$field_value.http_request[0]}&fieldlist={$field_value.http_request[3]}&filterfield={$field_value.http_request[1]}&status={$field_value.http_request[4]}&mandatory={$field_value.http_request[6]}&filtervalue='+escape(this.value),'{$listfields.$fid.http_request[5]}')"{/if}> <option value="">{tr}None{/tr}</option> {foreach key=id item=one from=$field_value.list} Modified: branches/1.10/templates/tracker_item_field_value.tpl =================================================================== --- branches/1.10/templates/tracker_item_field_value.tpl 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/templates/tracker_item_field_value.tpl 2008-06-13 17:14:26 UTC (rev 13239) @@ -10,9 +10,9 @@ and ($tiki_p_view_trackers eq 'y' or $tiki_p_modify_tracker_items eq 'y' or $tiki_p_comment_tracker_items eq 'y' or ($tracker_info.writerCanModify eq 'y' and $user and $my eq $user) or ($tracker_info.writerCanModify eq 'y' and $group and $ours eq $group))} {if empty($url)} - {assign var=url value="tiki-view_tracker_item.php"} + {assign var=url value="tiki-view_tracker_item.php?itemId=`$item.itemId`&trackerId=`$item.trackerId`&show=view"} {/if} - <a class="tablename" href="{$url}?itemId={$item.itemId}&trackerId={$item.trackerId}&show=view{if $offset}&offset={$offset}{/if}{if isset($reloff)}&reloff={$reloff}{/if}{if $item_count}&cant={$item_count}{/if}{foreach key=urlkey item=urlval from=$urlquery}{if $urlval}&{$urlkey}={$urlval|escape:"url"}{/if}{/foreach}"{if $showpopup eq 'y'} {popup text=$smarty.capture.popup|escape:"javascript"|escape:"html" fullhtml="1" hauto=true vauto=true sticky=$stickypopup}{/if}> + <a class="tablename" href="{$url}{if $offset}&offset={$offset}{/if}{if isset($reloff)}&reloff={$reloff}{/if}{if $item_count}&cant={$item_count}{/if}{foreach key=urlkey item=urlval from=$urlquery}{if $urlval}&{$urlkey}={$urlval|escape:"url"}{/if}{/foreach}"{if $showpopup eq 'y'} {popup text=$smarty.capture.popup|escape:"javascript"|escape:"html" fullhtml="1" hauto=true vauto=true sticky=$stickypopup}{/if}> {assign var='is_link' value='y'} {else} {assign var='is_link' value='n'} Modified: branches/1.10/tiki-admin_tracker_fields.php =================================================================== --- branches/1.10/tiki-admin_tracker_fields.php 2008-06-13 16:34:08 UTC (rev 13238) +++ branches/1.10/tiki-admin_tracker_fields.php 2008-06-13 17:14:26 UTC (rev 13239) @@ -72,6 +72,8 @@ $info['description'] = ''; $info['errorMsg'] = ''; $info['itemChoices'] = array(); + $info['visibleBy'] = array(); + $info['editableBy'] = array(); } if (isset($_REQUEST['up']) && $_REQUEST['fieldId']) { @@ -95,6 +97,8 @@ $smarty->assign('description', $info["description"]); $smarty->assign('errorMsg', $info['errorMsg']); $smarty->assign_by_ref('itemChoices', $info['itemChoices']); +$smarty->assign_by_ref('visibleBy', $info['visibleBy']); +$smarty->assign_by_ref('editableBy', $info['editableBy']); if (isset($_REQUEST["remove"]) and ($tracker_info['useRatings'] != 'y' or $info['name'] != 'Rating')) { @@ -184,7 +188,7 @@ //$_REQUEST["name"] = str_replace(' ', '_', $_REQUEST["name"]); $trklib->replace_tracker_field($_REQUEST["trackerId"], $_REQUEST["fieldId"], $_REQUEST["name"], $_REQUEST["type"], $isMain, $isSearchable, $isTblVisible, $isPublic, $isHidden, $isMandatory, $_REQUEST["position"], $_REQUEST["options"], $_REQUEST['description'], - $isMultilingual, $_REQUEST["itemChoices"], $_REQUEST['errorMsg']); + $isMultilingual, $_REQUEST["itemChoices"], $_REQUEST['errorMsg'], $_REQUEST['visibleBy'], $_REQUEST['editableBy']); $logslib->add_log('admintrackerfields','changed or created tracker field '.$_REQUEST["name"].' in tracker '.$tracker_info['name']); $smarty->assign('fieldId', 0); $smarty->assign('name', ''); @@ -200,6 +204,8 @@ $smarty->assign('description', ''); $smarty->assign('errorMsg', ''); $smarty->assign('itemChoices', ''); + $smarty->assign('visibleBy', array()); + $smarty->assign('editableBy', array()); $smarty->assign('position', $trklib->get_last_position($_REQUEST["trackerId"])+1); } @@ -274,6 +280,8 @@ $quicktags = $quicktagslib->list_quicktags(0,-1,'taglabel_desc','','trackers'); $smarty->assign_by_ref('quicktags', $quicktags["data"]); +$allGroups = $userlib->list_all_groups(); +$smarty->assign_by_ref('allGroups', $allGroups); $smarty->assign_by_ref('channels', $channels["data"]); ask_ticket('admin-tracker-fields'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |