1<?php if(isset($update_error)): ?> 2<div id="updatemsg"> 3 <span class="bad"> {L('updatewrong')}</span> 4 <a href="?hideupdatemsg=yep">{L('hidemessage')}</a> 5</div> 6<?php endif; ?> 7 8<?php if(isset($updatemsg)): ?> 9<div id="updatemsg"> 10 <a href="http://flyspray.org/">{L('updatefs')}</a> {L('currentversion')} 11 <span class="bad">{$fs->version}</span> {L('latestversion')} <span class="good">{$_SESSION['latest_version']}</span>. 12 <a href="?hideupdatemsg=yep">{L('hidemessage')}</a> 13</div> 14<?php endif; ?> 15 16<?php if (!($user->isAnon() && count($fs->projects) == 0)): ?> 17<div id="search"> 18 <map id="projectsearchform" name="projectsearchform"> 19 <form action="{$baseurl}index.php" method="get"> 20 <div> 21 <button id="searchthisproject" type="submit">{L('searchthisproject')}</button> 22 <input class="text" id="searchtext" name="string" type="text" size="20" 23 maxlength="100" value="{Get::val('string')}" accesskey="q" /> 24 25 <input type="hidden" name="project" value="{Get::num('project', $proj->id)}" /> 26 <?php if (!$user->isAnon()): ?> 27 <span class="save_search"><label for="save_search" id="lblsaveas">{L('saveas')}</label> 28 <input class="text" type="text" value="{Get::val('search_name')}" id="save_search" name="search_name" size="15" /> 29 <button onclick="savesearch('{!Filters::escapeqs($_SERVER['QUERY_STRING'])}', '{#$baseurl}', '{L('saving')}')" type="button">{L('OK')}</button> 30 </span> 31 <?php endif; ?> 32 33 <span id="searchstate" style="cursor:pointer"> 34 <a onclick="toggleSearchBox('{#$this->themeUrl()}');return false;" href="{CreateUrl('project', $proj->id, null, array_merge($_GET, array('toggleadvanced' => 1)))}"><span id="advancedsearchstate" class="showstate"> 35 <img id="advancedsearchstateimg" src="<?php echo (Cookie::val('advancedsearch')) ? $this->get_image('edit_remove') : $this->get_image('edit_add'); ?>" 36 alt="<?php echo (Cookie::val('advancedsearch')) ? '-' : '+'; ?>" width="16" height="16" /> 37 </span>{L('advanced')}</a> 38 </span> 39 40 <div id="sc2" class="switchcontent" <?php if (!Cookie::val('advancedsearch')):?>style="display:none;"<?php endif; ?> > 41 <fieldset><legend>{L('miscellaneous')}</legend> 42 {!tpl_checkbox('search_in_comments', Get::has('search_in_comments'), 'sic')} 43 <label class="left" for="sic">{L('searchcomments')}</label> 44 45 {!tpl_checkbox('search_in_details', Get::has('search_in_details'), 'search_in_details')} 46 <label class="left" for="search_in_details">{L('searchindetails')}</label> 47 48 {!tpl_checkbox('search_for_all', Get::has('search_for_all'), 'sfa')} 49 <label class="left" for="sfa">{L('searchforall')}</label> 50 51 {!tpl_checkbox('only_watched', Get::has('only_watched'), 'only_watched')} 52 <label class="left" for="only_watched">{L('taskswatched')}</label> 53 54 {!tpl_checkbox('only_primary', Get::has('only_primary'), 'only_primary')} 55 <label class="left" for="only_primary">{L('onlyprimary')}</label> 56 57 {!tpl_checkbox('has_attachment', Get::has('has_attachment'), 'has_attachment')} 58 <label class="left" for="has_attachment">{L('hasattachment')}</label> 59 60 </fieldset> 61 62 <fieldset><legend>{L('taskproperties')}</legend> 63 64 <div class="search_select"> 65 <label class="default multisel" for="type">{L('tasktype')}</label> 66 <select name="type[]" id="type" multiple="multiple" size="5"> 67 {!tpl_options(array('' => L('alltasktypes')) + $proj->listTaskTypes(), Get::val('type', ''))} 68 </select> 69 </div> 70 71 <div class="search_select"> 72 <label class="default multisel" for="sev">{L('severity')}</label> 73 <select name="sev[]" id="sev" multiple="multiple" size="5"> 74 {!tpl_options(array('' => L('allseverities')) + $fs->severities, Get::val('sev', ''))} 75 </select> 76 </div> 77 78 <div class="search_select"> 79 <label class="default multisel" for="pri">{L('priority')}</label> 80 <select name="pri[]" id="pri" multiple="multiple" size="5"> 81 {!tpl_options(array('' => L('allpriorities')) + $fs->priorities, Get::val('pri', ''))} 82 </select> 83 </div> 84 85 <div class="search_select"> 86 <label class="default multisel" for="due">{L('dueversion')}</label> 87 <select name="due[]" id="due" multiple="multiple" size="5"> 88 {!tpl_options(array_merge(array('' => L('dueanyversion'), 0 => L('unassigned')), $proj->listVersions(false)), Get::val('due', ''))} 89 </select> 90 </div> 91 92 <div class="search_select"> 93 <label class="default multisel" for="reported">{L('reportedversion')}</label> 94 <select name="reported[]" id="reported" multiple="multiple" size="5"> 95 {!tpl_options(array('' => L('anyversion')) + $proj->listVersions(false), Get::val('reported', ''))} 96 </select> 97 </div> 98 99 <div class="search_select"> 100 <label class="default multisel" for="cat">{L('category')}</label> 101 <select name="cat[]" id="cat" multiple="multiple" size="5"> 102 {!tpl_options(array('' => L('allcategories')) + $proj->listCategories(), Get::val('cat', ''))} 103 </select> 104 </div> 105 106 <div class="search_select"> 107 <label class="default multisel" for="status">{L('status')}</label> 108 <select name="status[]" id="status" multiple="multiple" size="5"> 109 {!tpl_options(array('' => L('allstatuses')) + 110 array('open' => L('allopentasks')) + 111 array('closed' => L('allclosedtasks')) + 112 $proj->listTaskStatuses(), Get::val('status', 'open'))} 113 </select> 114 </div> 115 116 <div class="search_select"> 117 <label class="default multisel" for="percent">{L('percentcomplete')}</label> 118 <select name="percent[]" id="percent" multiple="multiple" size="5"> 119 <?php $percentages = array(); for ($i = 0; $i <= 100; $i += 10) $percentages[$i] = $i; ?> 120 {!tpl_options(array('' => L('anyprogress')) + $percentages, Get::val('percent', ''))} 121 </select> 122 </div> 123 <div class="clear"></div> 124 </fieldset> 125 126 <fieldset><legend>{L('users')}</legend> 127 <label class="default multisel" for="opened">{L('openedby')}</label> 128 {!tpl_userselect('opened', Get::val('opened'), 'opened')} 129 130 <label class="default multisel" for="dev">{L('assignedto')}</label> 131 {!tpl_userselect('dev', Get::val('dev'), 'dev')} 132 133 <label class="default multisel" for="closed">{L('closedby')}</label> 134 {!tpl_userselect('closed', Get::val('closed'), 'closed')} 135 136 </fieldset> 137 138 <fieldset><legend>{L('dates')}</legend> 139 <div class="dateselect"> 140 {!tpl_datepicker('duedatefrom', L('selectduedatefrom'))} 141 {!tpl_datepicker('duedateto', L('selectduedateto'))} 142 </div> 143 144 <div class="dateselect"> 145 {!tpl_datepicker('changedfrom', L('selectsincedatefrom'))} 146 {!tpl_datepicker('changedto', L('selectsincedateto'))} 147 </div> 148 149 <div class="dateselect"> 150 {!tpl_datepicker('openedfrom', L('selectopenedfrom'))} 151 {!tpl_datepicker('openedto', L('selectopenedto'))} 152 </div> 153 154 <div class="dateselect"> 155 {!tpl_datepicker('closedfrom', L('selectclosedfrom'))} 156 {!tpl_datepicker('closedto', L('selectclosedto'))} 157 </div> 158 </fieldset> 159 160 </div> 161 <input type="hidden" name="do" value="index" /> 162 </div> 163 </form> 164 </map> 165</div> 166<?php endif; ?> 167 168<div id="tasklist"> 169 <form action="{CreateURL('project', $proj->id, null, array('do' => 'index'))}" id="massops" method="post"> 170 <div> 171 <table id="tasklist_table"> 172 <thead> 173 <tr> 174 <th class="caret"> 175 </th> 176 <?php if (!$user->isAnon()): ?> 177 <th class="ttcolumn"> 178 <?php if (!$user->isAnon() && $total): ?> 179 <a href="javascript:ToggleSelected('massops')"> 180 <img alt="{L('toggleselected')}" title="{L('toggleselected')}" src="{$this->get_image('kaboodleloop')}" width="16" height="16" /> 181 </a> 182 <?php endif; ?> 183 </th> 184 <?php endif; ?> 185 <?php foreach ($visible as $col): ?> 186 {!tpl_list_heading($col, "<th%s>%s</th>")} 187 <?php endforeach; ?> 188 </tr> 189 </thead> 190 <tbody> 191 <?php foreach ($tasks as $task_details):?> 192 <tr id="task{!$task_details['task_id']}" class="severity{$task_details['task_severity']}"> 193 <td class="caret"> 194 </td> 195 <?php if (!$user->isAnon()): ?> 196 <td class="ttcolumn"> 197 <input class="ticktask" type="checkbox" name="ids[]" value="{$task_details['task_id']}" /> 198 </td> 199 <?php endif; ?> 200 <?php foreach ($visible as $col): ?> 201 {!tpl_draw_cell($task_details, $col)} 202 <?php endforeach; ?> 203 </tr> 204 <?php endforeach; ?> 205 </tbody> 206 </table> 207 <table id="pagenumbers"> 208 <tr> 209 <?php if ($total): ?> 210 <td id="taskrange"> 211 {!sprintf(L('taskrange'), $offset + 1, 212 ($offset + $perpage > $total ? $total : $offset + $perpage), $total)} 213 </td> 214 <td id="numbers"> 215 {!pagenums($pagenum, $perpage, $total)} 216 </td> 217 <?php else: ?> 218 <td id="taskrange"><strong>{L('noresults')}</strong></td> 219 <?php endif; ?> 220 </tr> 221 </table> 222 <?php if (!$user->isAnon() && $total): ?> 223 <div id="massopsactions"> 224 <select name="action"> 225 <option value="details.add_notification">{L('watchtasks')}</option> 226 <option value="remove_notification">{L('stopwatchingtasks')}</option> 227 <option value="takeownership">{L('assigntaskstome')}</option> 228 </select> 229 <input type="hidden" name="user_id" value="{$user->id}" /> 230 <button type="submit">{L('takeaction')}</button> 231 </div> 232 <?php endif ?> 233 </div> 234 </form> 235</div> 236