From: <sy...@us...> - 2010-01-11 23:00:59
|
Revision: 24267 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=24267&view=rev Author: sylvieg Date: 2010-01-11 23:00:52 +0000 (Mon, 11 Jan 2010) Log Message: ----------- [MOD]tracker: option for textarea to have value different from other value of the textarea + kill duplicated code for errors Modified Paths: -------------- trunk/lib/trackers/trackerlib.php trunk/lib/wiki-plugins/wikiplugin_tracker.php trunk/styles/layout/design.css trunk/templates/tiki-view_tracker.tpl trunk/templates/tiki-view_tracker_item.tpl trunk/tiki-view_tracker.php trunk/tiki-view_tracker_item.php Modified: trunk/lib/trackers/trackerlib.php =================================================================== --- trunk/lib/trackers/trackerlib.php 2010-01-11 21:47:24 UTC (rev 24266) +++ trunk/lib/trackers/trackerlib.php 2010-01-11 23:00:52 UTC (rev 24267) @@ -1960,7 +1960,7 @@ // check the validity of each field values of a tracker item // and the presence of mandatory fields - function check_field_values($ins_fields, $categorized_fields='') { + function check_field_values($ins_fields, $categorized_fields='', $trackerId='', $itemId='') { global $prefs; $mandatory_fields = array(); $erroneous_values = array(); @@ -2078,6 +2078,12 @@ $erroneous_values[] = $f; } } + if (isset($f['options_array'][6]) && $f['options_array'][6] == 'y') { + if (in_array($f['value'], $this->list_tracker_field_values($trackerId, $f['fieldId'], 'opc', 'y', '', $itemId))) { + $erroneous_values[] = $f; + } + } + break; } } } @@ -2723,7 +2729,7 @@ 'opt'=>true, 'help'=>tra('<dl> <dt>Function: Allows alphanumeric text input in a multi-line field of arbitrary size. - <dt>Usage: <strong>toolbars,width,height,max,listmax,wordmax</strong> + <dt>Usage: <strong>toolbars,width,height,max,listmax,wordmax,distinct</strong> <dt>Example: 0,80,5,30,200 <dt>Description: <dd><strong>[toolbars]</strong> enables toolbars if a 1 is specified; @@ -2732,6 +2738,7 @@ <dd><strong>[max]</strong> is the maximum number of characters that can be saved; <dd><strong>[listmax]</strong> is the maximum number of characters that are displayed in list mode; <dd><strong>[wordmax]</strong> will alert if word count exceeded with a positive number (1+) or display a word count with a negative number (-1); + <dd><strong>[distinct]</strong> is y or n. y = all values of the field must be different <dd>multiple options must appear in the order specified, separated by commas. </dl>')); $type['c'] = array( @@ -3161,7 +3168,7 @@ } /* list all the values of a field */ - function list_tracker_field_values($trackerId, $fieldId, $status='o', $distinct='y', $lang='') { + function list_tracker_field_values($trackerId, $fieldId, $status='o', $distinct='y', $lang='', $exceptItemId='') { $mid = ''; $bindvars[] = (int)$fieldId; if (!$this->getSqlStatus($status, $mid, $bindvars, $trackerId)) { @@ -3169,10 +3176,14 @@ } $sort_mode = "value_asc"; $distinct = $distinct == 'y'?'distinct': ''; - if ($lang) { + if (!empty($lang)) { $mid .= ' and `lang`=? '; $bindvars[] = $lang; } + if (!empty($exceptItemId)) { + $mid .= ' and ttif.`itemId` != ? '; + $bindvars[] = $exceptItemId; + } $query = "select $distinct(ttif.`value`) from `tiki_tracker_item_fields` ttif, `tiki_tracker_items` tti where tti.`itemId`= ttif.`itemId`and ttif.`fieldId`=? $mid order by ".$this->convertSortMode($sort_mode); $result = $this->query( $query, $bindvars); $ret = array(); Modified: trunk/lib/wiki-plugins/wikiplugin_tracker.php =================================================================== --- trunk/lib/wiki-plugins/wikiplugin_tracker.php 2010-01-11 21:47:24 UTC (rev 24266) +++ trunk/lib/wiki-plugins/wikiplugin_tracker.php 2010-01-11 23:00:52 UTC (rev 24267) @@ -137,7 +137,7 @@ 'required' => false, 'name' => tra('Autosavevalue'), 'description' => tra('Colon-separated values corresponding to autosavefields'), - 'filter' => 'digits', + 'filter' => 'text', 'separator' => ':' ), ), @@ -463,15 +463,16 @@ $categorized_fields = array(); while (list($postVar, $postVal) = each($_REQUEST)) { if(preg_match("/^ins_cat_([0-9]+)/", $postVar, $m)) { - foreach ($postVal as $v) + foreach ($postVal as $v) { $ins_categs[] = $v; - $categorized_fields[] = $m[1]; + $categorized_fields[] = $m[1]; + } } } /* ------------------------------------- End recup all values from REQUEST -------------- */ /* ------------------------------------- Check field values for each type and presence of mandatory ones ------------------- */ - $field_errors = $trklib->check_field_values($ins_fields, $categorized_fields); + $field_errors = $trklib->check_field_values($ins_fields, $categorized_fields, $trackerId, empty($itemId)?'':$itemId); if (empty($user) && $prefs['feature_antibot'] == 'y' && !$_SESSION['in_tracker']) { // in_tracker session var checking is for tiki-register.php @@ -660,34 +661,15 @@ } // Display warnings when needed + if(count($field_errors['err_mandatory']) > 0) { - $back.= '<div class="simplebox highlight"><img src="pics/icons/exclamation.png" alt=" '.tra('Error').'" style="vertical-align:middle" /> '; - $back.= tra('Following mandatory fields are missing').' :<br/>'; - $coma_cpt = count($field_errors['err_mandatory']); - foreach($field_errors['err_mandatory'] as $f) { - $back.= $f['name']; - $back.= --$coma_cpt > 0 ? ', ' : ''; - } - $back.= '</div><br />'; - $_REQUEST['error'] = 'y'; + $smarty->assign_by_ref('err_mandatory', $field_errors['err_mandatory']); } - if(count($field_errors['err_value']) > 0) { - $back.= '<div class="simplebox highlight">'; - $b = ''; - foreach($field_errors['err_value'] as $f) { - if (!empty($f['errorMsg'])) { - $back .= tra($f['errorMsg']).'<br>'; - } else { - if (!empty($b)) - $b .= ' : '; - $b .= $f['name']; - } - } - if (!empty($b)) { - $back.= tra('Following fields are incorrect').' :<br/>'.$b; - } - $back.= '</div><br />'; + $smarty->assign_by_ref('err_value', $field_errors['err_value']); + } + if(count($field_errors['err_mandatory']) > 0 || count($field_errors['err_value']) > 0) { + $back .= $smarty->fetch('tracker_error.tpl'); $_REQUEST['error'] = 'y'; } if (isset($field_errors['err_antibot'])) { @@ -861,7 +843,6 @@ } if (!empty($tpl) || !empty($wiki)) { $smarty->assign_by_ref('field_value', $f); - $smarty->assign('showmandatory', $showmandatory); if (isset($item)) { $smarty->assign_by_ref('item', $item); } Modified: trunk/styles/layout/design.css =================================================================== --- trunk/styles/layout/design.css 2010-01-11 21:47:24 UTC (rev 24266) +++ trunk/styles/layout/design.css 2010-01-11 23:00:52 UTC (rev 24267) @@ -1057,7 +1057,6 @@ } .mandatory_note { - display: block; font-style: italic; color: red; margin-top: 10px; Modified: trunk/templates/tiki-view_tracker.tpl =================================================================== --- trunk/templates/tiki-view_tracker.tpl 2010-01-11 21:47:24 UTC (rev 24266) +++ trunk/templates/tiki-view_tracker.tpl 2010-01-11 23:00:52 UTC (rev 24267) @@ -64,31 +64,8 @@ <div class="wikitext">{$mail_msg}</div> {/if} -{if count($err_mandatory) > 0} - {remarksbox type='Warning' title='{tr}Warning{/tr}'} - <div class="highlight"><em class='mandatory_note'>{tr}Following mandatory fields are missing{/tr} </em>: - <br/> - {section name=ix loop=$err_mandatory} - {$err_mandatory[ix].name} - {if !$smarty.section.ix.last}, {/if} - {/section} - </div> - {/remarksbox} - <br /> -{/if} +{include file='tracker_error.tpl'} -{if count($err_value) > 0} - {remarksbox type='Warning' title='{tr}Warning{/tr}'} - <div class="highlight"><em class='mandatory_note'> - {tr}Following fields are incorrect{/tr}</em> :<br/> - {section name=ix loop=$err_value} - {$err_value[ix].name}{if !$smarty.section.ix.last}, {/if} - {/section} - </div> - {/remarksbox} - <br /> -{/if} - {tabset name='tabs_view_tracker'} {if $tiki_p_view_trackers eq 'y' or (($tracker_info.writerCanModify eq 'y' or $tracker_info.writerGroupCanModify eq 'y') and $user)} Modified: trunk/templates/tiki-view_tracker_item.tpl =================================================================== --- trunk/templates/tiki-view_tracker_item.tpl 2010-01-11 21:47:24 UTC (rev 24266) +++ trunk/templates/tiki-view_tracker_item.tpl 2010-01-11 23:00:52 UTC (rev 24267) @@ -52,29 +52,11 @@ {/pagination_links} {/if} -{**** Display warnings about incorrect values and missing mandatory fields ***} -{if count($err_mandatory) > 0} -{remarksbox type='Warning' title='{tr}Warning{/tr}'} -<div class="highlight"><em class='mandatory_note'> -{tr}Following mandatory fields are missing{/tr}</em> :<br/> - {section name=ix loop=$err_mandatory} -{$err_mandatory[ix].name|escape}{if !$smarty.section.ix.last}, {/if} - {/section} -</div> {/remarksbox}<br /> -{/if} -{if count($err_value) > 0} -{remarksbox type='Warning' title='{tr}Warning{/tr}'} -<div class="highlight"><em class='mandatory_note'> -{tr}Following fields are incorrect{/tr}</em> :<br/> - {section name=ix loop=$err_value} -{$err_value[ix].name|escape}{if !$smarty.section.ix.last}, {/if} - {/section} -</div> {/remarksbox}<br /> -{/if} +{include file='tracker_error.tpl'} {tabset name='tabs_view_tracker_item'} -{tab name="{tr}View{/tr}"} +{tab name="{tr}Idea{/tr}"}{*accion*} {* --- tab with view ------------------------------------------------------------------------- *} {if empty($tracker_info.viewItemPretty)} <h2>{tr}View Item{/tr}</h2> Modified: trunk/tiki-view_tracker.php =================================================================== --- trunk/tiki-view_tracker.php 2010-01-11 21:47:24 UTC (rev 24266) +++ trunk/tiki-view_tracker.php 2010-01-11 23:00:52 UTC (rev 24267) @@ -513,7 +513,7 @@ $categorized_fields[] = $m[1]; } } - $field_errors = $trklib->check_field_values($ins_fields, $categorized_fields); + $field_errors = $trklib->check_field_values($ins_fields, $categorized_fields, $_REQUEST['trackerId'], empty($_REQUEST['itemId'])?'':$_REQUEST['itemId']); $smarty->assign('err_mandatory', $field_errors['err_mandatory']); $smarty->assign('err_value', $field_errors['err_value']); // values are OK, then lets add a new item Modified: trunk/tiki-view_tracker_item.php =================================================================== --- trunk/tiki-view_tracker_item.php 2010-01-11 21:47:24 UTC (rev 24266) +++ trunk/tiki-view_tracker_item.php 2010-01-11 23:00:52 UTC (rev 24267) @@ -603,7 +603,7 @@ $categorized_fields[] = $m[1]; } } - $field_errors = $trklib->check_field_values($ins_fields, $categorized_fields); + $field_errors = $trklib->check_field_values($ins_fields, $categorized_fields, $_REQUEST['trackerId'], empty($_REQUEST['itemId'])?'':$_REQUEST['itemId']); $smarty->assign('err_mandatory', $field_errors['err_mandatory']); $smarty->assign('err_value', $field_errors['err_value']); // values are OK, then lets save the item @@ -1149,6 +1149,7 @@ } // Display the template $smarty->assign('mid', 'tiki-view_tracker_item.tpl'); + if (isset($_REQUEST['print'])) { $smarty->display('tiki-print.tpl'); $smarty->assign('print', 'y'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |