index : flyspray | |
Archlinux32 customized Flyspray installation | gitolite user |
summaryrefslogtreecommitdiff |
author | Andreas Baumann <mail@andreasbaumann.cc> | 2020-02-01 09:05:48 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2020-02-01 09:05:48 +0100 |
commit | 6854cb3f4d8219cf1829e32122eb2502a916eae9 (patch) | |
tree | 350feb504587d932e02837a1442b059759927646 /themes/CleanFS/templates/pm.prefs.tpl |
-rw-r--r-- | themes/CleanFS/templates/pm.prefs.tpl | 370 |
diff --git a/themes/CleanFS/templates/pm.prefs.tpl b/themes/CleanFS/templates/pm.prefs.tpl new file mode 100644 index 0000000..6af32fa --- /dev/null +++ b/themes/CleanFS/templates/pm.prefs.tpl @@ -0,0 +1,370 @@ +<div id="toolbox"> +<h3><?php echo Filters::noXSS($proj->prefs['project_title']); ?> : <?php echo Filters::noXSS(L('preferences')); ?></h3> +<?php echo tpl_form(CreateUrl('pm', 'prefs', $proj->id)); ?> + <ul id="submenu"> + <li><a href="#general"><?php echo Filters::noXSS(L('general')); ?></a></li> + <li><a href="#lookandfeel"><?php echo Filters::noXSS(L('lookandfeel')); ?></a></li> + <li><a href="#notifications"><?php echo Filters::noXSS(L('notifications')); ?></a></li> + <li><a href="#feeds"><?php echo Filters::noXSS(L('feeds')); ?></a></li> + <li><a href="#effort"><?php echo Filters::noXSS(L('efforttracking')); ?></a></li> + </ul> + + <div id="general" class="tab"> + <ul class="form_elements wide"> + <li> + <label for="projecttitle"><?php echo Filters::noXSS(L('projecttitle')); ?></label> + <input id="projecttitle" name="project_title" class="text" type="text" maxlength="100" + value="<?php echo Filters::noXSS(Post::val('project_title', $proj->prefs['project_title'])); ?>" /> + </li> + + <li> + <label for="defaultcatowner"><?php echo Filters::noXSS(L('defaultcatowner')); ?></label> + <?php echo tpl_userselect('default_cat_owner', Post::val('default_cat_owner', $proj->prefs['default_cat_owner']), 'defaultcatowner'); ?> + </li> + + <li> + <label for="langcode"><?php echo Filters::noXSS(L('language')); ?></label> + <select id="langcode" name="lang_code"> + <?php echo tpl_options(Flyspray::listLangs(), Post::val('lang_code', $proj->prefs['lang_code']), true); ?> + </select> + </li> + + <?php echo tpl_checkbox('disp_intro', Post::val('disp_intro', $proj->prefs['disp_intro']), 'disp_intro'); ?> + <label for="disp_intro"><?php echo Filters::noXSS(L('dispintro')); ?></label> + <li class="disp_introdep"> + <label class="labeltextarea" for="intromesg"><?php echo Filters::noXSS(L('intromessage')); ?></label> + <?php if (defined('FLYSPRAY_HAS_PREVIEW')): ?> + <div class="hide preview" id="preview"></div> + <button tabindex="9" type="button" onclick="showPreview('intromesg', '<?php echo Filters::noJsXSS($baseurl); ?>', 'preview')"><?php echo Filters::noXSS(L('preview')); ?></button> + <?php endif; ?> + <?php echo TextFormatter::textarea('intro_message', 8, 70, array('accesskey' => 'r', 'tabindex' => 8, 'id' => 'intromesg'), Post::val('intro_message', $proj->prefs['intro_message'])); ?> + + <label class="labeltextarea"><?php echo Filters::noXSS(L('pagesintromsg')); ?></label> + <?php + $pages = array( + 'index' => L('tasklist'), + 'toplevel' => L('toplevel'), + 'newmultitasks' => L('addmultipletasks'), + 'details' => L('details'), + 'roadmap' => L('roadmap'), + 'newtask' => L('newtask'), + 'reports' => L('reports'), + 'depends' => L('dependencygraph'), + 'pm' => L('manageproject')); + $selectedPages = explode(' ', $proj->prefs['pages_intro_msg']); + echo tpl_double_select('pages_intro_msg', $pages, $selectedPages, false, false); + ?> + </li> + + <li> + <label class="labeltextarea" for="default_task"><?php echo Filters::noXSS(L('defaulttask')); ?></label> + <?php if (defined('FLYSPRAY_HAS_PREVIEW')): ?> + <div class="hide preview" id="preview_taskdesc"></div> + <button tabindex="9" type="button" onclick="showPreview('default_task', '<?php echo Filters::noJsXSS($baseurl); ?>', 'preview_taskdesc')"><?php echo Filters::noXSS(L('preview')); ?></button> + <?php endif; ?> + <?php echo TextFormatter::textarea('default_task', 8, 70, array('accesskey' => 'r', 'tabindex' => 8, 'id' => 'default_task'), Post::val('default_task', $proj->prefs['default_task'])); ?> + </li> + + <li> + <label for="isactive"><?php echo Filters::noXSS(L('isactive')); ?></label> + <?php echo tpl_checkbox('project_is_active', Post::val('project_is_active', $proj->prefs['project_is_active']), 'isactive'); ?> + </li> + + <li> + <label><?php echo tpl_checkbox('delete_project', null); ?> <?php echo Filters::noXSS(L('deleteproject')); ?></label> + <select name="move_to"><?php echo tpl_options(array_merge(array(0 => L('none')), Flyspray::listProjects()), null, false, null, (string) $proj->id); ?></select> + </li> + + <li> + <label for="othersviewroadmap"><?php echo Filters::noXSS(L('othersviewroadmap')); ?></label> + <?php + # note for FS1.0: This setting is currently also used as anon/public permission for: show project name, activity, stats, milestone progress + # but not listing tasks per milestone + echo tpl_checkbox('others_viewroadmap', Post::val('others_viewroadmap', $proj->prefs['others_viewroadmap']), 'othersviewroadmap'); ?> + </li> + + <li> + <label for="othersview"><?php echo Filters::noXSS(L('othersview')); ?></label> + <?php + # note for FS1.0: This setting is current anon/public task view permission for: listing tasks (toplevel, tasklist, roadmap, RSS feed, ..) + echo tpl_checkbox('others_view', Post::val('others_view', $proj->prefs['others_view']), 'othersview'); ?> + </li> + + <li> + <label for="anon_open"><?php echo Filters::noXSS(L('allowanonopentask')); ?></label> + <?php echo tpl_checkbox('anon_open', Post::val('anon_open', $proj->prefs['anon_open']), 'anon_open'); ?> + </li> + + <li> + <label for="comment_closed"><?php echo Filters::noXSS(L('allowclosedcomments')); ?></label> + <?php echo tpl_checkbox('comment_closed', Post::val('comment_closed', $proj->prefs['comment_closed']), 'comment_closed'); ?> + </li> + + <li> + <label for="auto_assign"><?php echo Filters::noXSS(L('autoassign')); ?></label> + <?php echo tpl_checkbox('auto_assign', Post::val('auto_assign', $proj->prefs['auto_assign']), 'auto_assign'); ?> + </li> + + <li> + <label for="defaultdueversion"><?php echo Filters::noXSS(L('defaultdueinversion')); ?></label> + <select id="defaultdueversion" name="default_due_version"> + <option value="0"><?php echo Filters::noXSS(L('undecided')); ?></option> + <?php echo tpl_options($proj->listVersions(false, 3), Post::val('default_due_version', $proj->prefs['default_due_version']), true); ?> + </select> + </li> + + <li> + <label for="freetagging"><?php echo Filters::noXSS(L('freetagging')); ?></label> + <?php echo tpl_checkbox('freetagging', Post::val('freetagging', $proj->prefs['freetagging']), 'freetagging'); ?> + </li> + </ul> + </div> + + <div id="lookandfeel" class="tab"> + <ul class="form_elements wide"> + <li> + <label for="themestyle"><?php echo Filters::noXSS(L('themestyle')); ?></label> + <select id="themestyle" name="theme_style"> + <?php echo tpl_options(Flyspray::listThemes(), Post::val('theme_style', $proj->prefs['theme_style']), true); ?> + </select> + <label for="customstyle" style="width:auto"><?php echo Filters::noXSS(L('customstyle')); ?></label> + <select id="customstyle" name="custom_style"> + <?php + $customs[]=array('', L('no')); + $customstyles=glob_compat(BASEDIR ."/themes/".($proj->prefs['theme_style'])."/custom_*.css"); + foreach ($customstyles as $cs){ + $customs[]=array($cs,$cs); + } + echo tpl_options($customs, $proj->prefs['custom_style']); + ?> + </select> + </li> + + <li> + <label for="default_entry"><?php echo Filters::noXSS(L('defaultentry')); ?></label> + <select id="default_entry" name="default_entry"> + <?php echo tpl_options(array('index' => L('tasklist'), 'toplevel' => L('toplevel'), 'roadmap' => L('roadmap')), Post::val('default_entry', $proj->prefs['default_entry'])); ?> + </select> + </li> + + <?php // Set the selectable column names + // Do NOT use real database column name here and in the next list, + // but a term from translation table entries instead, because it's + // also used elsewhere to draw a localized version of the name. + // Look also at the end of function + // tpl_draw_cell in scripts/index.php for further explanation. + $columnnames = array( + 'id' => L('id'), + 'project' => L('project'), + 'parent' => L('parent'), + 'tasktype' => L('tasktype'), + 'category' => L('category'), + 'severity' => L('severity'), + 'priority' => L('priority'), + 'summary' => L('summary'), + 'dateopened' => L('dateopened'), + 'status' => L('status'), + 'openedby' => L('openedby'), + 'private' => L('private'), + 'assignedto' => L('assignedto'), + 'lastedit' => L('lastedit'), + 'editedby' => L('editedby'), + 'reportedin' => L('reportedin'), + 'dueversion' => L('dueversion'), + 'duedate' => L('duedate'), + 'comments' => L('comments'), + 'attachments' => L('attachments'), + 'progress' => L('progress'), + 'dateclosed' => L('dateclosed'), + 'closedby' => L('closedby'), + 'os' => L('os'), + 'votes' => L('votes'), + 'estimatedeffort' => L('estimatedeffort'), + 'effort' => L('effort')); + $selectedcolumns = explode(' ', Post::val('visible_columns', $proj->prefs['visible_columns'])); + ?> + + <li> + <label for="default_order_by"><?php echo Filters::noXSS(L('defaultorderby')); ?></label> + <select id="default_order_by" name="default_order_by"> + <?php echo tpl_options($columnnames, $proj->prefs['sorting'][0]['field'], false); ?> + </select> + <!-- <label><?php echo Filters::noXSS(L('defaultorderbydirection')); ?></label> --> + <select id="default_order_by_dir" name="default_order_by_dir"> + <?php echo tpl_options(array('asc' => L('ascending'), 'desc' => L('descending')), $proj->prefs['sorting'][0]['dir'], false); ?> + </select> + </li> + + <li> + <label for="default_order_by2"><?php echo Filters::noXSS(L('defaultorderby2')); ?></label> + <select id="default_order_by2" name="default_order_by2"> + <?php echo tpl_options($columnnames, $proj->prefs['sorting'][1]['field'], false); ?> + </select> + <select id="default_order_by_dir2" name="default_order_by_dir2"> + <?php echo tpl_options(array('asc' => L('ascending'), 'desc' => L('descending')), $proj->prefs['sorting'][1]['dir'], false); ?> + </select> + </li> + + <li> + <label><?php echo Filters::noXSS(L('visiblecolumns')); ?></label> + <?php echo tpl_double_select('visible_columns', $columnnames, $selectedcolumns, false); ?> + </li> + + <li> + <label><?php echo Filters::noXSS(L('visiblefields')); ?></label> + <?php // Set the selectable field names + $fieldnames = array( + 'parent' => L('parent'), + 'tasktype' => L('tasktype'), + 'category' => L('category'), + 'severity' => L('severity'), + 'priority' => L('priority'), + 'status' => L('status'), + 'private' => L('private'), + 'assignedto' => L('assignedto'), + 'reportedin' => L('reportedin'), + 'dueversion' => L('dueversion'), + 'duedate' => L('duedate'), + 'progress' => L('progress'), + 'os' => L('os'), + 'votes' => L('votes')); + $selectedfields = explode(' ', Post::val('visible_fields', $proj->prefs['visible_fields'])); + ?> + <?php echo tpl_double_select('visible_fields', $fieldnames, $selectedfields, false); ?> + </li> + </ul> + </div> + + <div id="notifications" class="tab"> + <ul class="form_elements"> + <li> + <label for="notify_subject"><?php echo Filters::noXSS(L('notifysubject')); ?></label> + <input id="notify_subject" class="text" name="notify_subject" type="text" value="<?php echo Filters::noXSS(Post::val('notify_subject', $proj->prefs['notify_subject'])); ?>" /> + <br /><span class="note"><?php echo Filters::noXSS(L('notifysubjectinfo')); ?></span> + </li> + + <li> + <label for="emailaddress"><?php echo Filters::noXSS(L('emailaddress')); ?></label> + <input id="emailaddress" name="notify_email" class="text" type="text" value="<?php echo Filters::noXSS(Post::val('notify_email', $proj->prefs['notify_email'])); ?>" /> + </li> + + <?php if (!empty($fs->prefs['jabber_server'])): ?> + <li> + <label for="jabberid"><?php echo Filters::noXSS(L('jabberid')); ?></label> + <input id="jabberid" class="text" name="notify_jabber" type="text" value="<?php echo Filters::noXSS(Post::val('notify_jabber', $proj->prefs['notify_jabber'])); ?>" /> + </li> + <?php endif ?> + + <li> + <label for="notify_reply"><?php echo Filters::noXSS(L('replyto')); ?></label> + <input id="notify_reply" name="notify_reply" class="text" type="text" value="<?php echo Filters::noXSS(Post::val('notify_reply', $proj->prefs['notify_reply'])); ?>" /> + </li> + + <li> + <label for="notify_types"><?php echo Filters::noXSS(L('notifytypes')); ?></label> + <select id="notify_types" size="17" multiple="multiple" name="notify_types[]"> + <?php echo tpl_options(array(0 => L('none'), + NOTIFY_TASK_OPENED => L('taskopened'), + NOTIFY_TASK_CHANGED => L('pm.taskchanged'), + NOTIFY_TASK_CLOSED => L('taskclosed'), + NOTIFY_TASK_REOPENED => L('pm.taskreopened'), + NOTIFY_DEP_ADDED => L('pm.depadded'), + NOTIFY_DEP_REMOVED => L('pm.depremoved'), + NOTIFY_COMMENT_ADDED => L('commentadded'), + NOTIFY_ATT_ADDED => L('attachmentadded'), + NOTIFY_REL_ADDED => L('relatedadded'), + NOTIFY_OWNERSHIP => L('ownershiptaken'), + NOTIFY_PM_REQUEST => L('pmrequest'), + NOTIFY_PM_DENY_REQUEST => L('pmrequestdenied'), + NOTIFY_NEW_ASSIGNEE => L('newassignee'), + NOTIFY_REV_DEP => L('revdepadded'), + NOTIFY_REV_DEP_REMOVED => L('revdepaddedremoved'), + NOTIFY_ADDED_ASSIGNEES => L('assigneeadded')), + Post::val('notify_types', Flyspray::int_explode(' ', $proj->prefs['notify_types']))); ?> + </select> + </li> + </ul> + </div> + + <div id="feeds" class="tab"> + <ul class="form_elements"> + <li> + <label for="feed_description"><?php echo Filters::noXSS(L('feeddescription')); ?></label> + <input id="feed_description" class="text" name="feed_description" type="text" value="<?php echo Filters::noXSS(Post::val('feed_description', $proj->prefs['feed_description'])); ?>" /> + </li> + + <li> + <label for="feed_img_url"><?php echo Filters::noXSS(L('feedimgurl')); ?></label> + <input id="feed_img_url" class="text" name="feed_img_url" type="text" value="<?php echo Filters::noXSS(Post::val('feed_img_url', $proj->prefs['feed_img_url'])); ?>" /> + </li> + </ul> + </div> + + <div id="effort" class="tab"> + <ul class="form_elements"> + <li> + <label for="useeffort"><?php echo Filters::noXSS(L('useeffort')); ?></label> + <?php echo tpl_checkbox('use_effort_tracking', Post::val('use_effort_tracking', $proj->prefs['use_effort_tracking']), 'useeffort'); ?> + </li> + <li> + <label for="hours_per_manday"><?php echo Filters::noXSS(L('hourspermanday')); ?></label> + <input id="hours_per_manday" class="text" name="hours_per_manday" type="text" + value="<?php + $seconds = Post::val('hours_per_manday', $proj->prefs['hours_per_manday']); + // Post::val is in HH:mm format, $proj->prefs in seconds. + if (!preg_match('/^\d+$/', $seconds)) { + $seconds = effort::EditStringToSeconds($seconds, $proj->prefs['hours_per_manday'], effort::FORMAT_HOURS_COLON_MINUTES); + } + + echo Filters::noXSS(effort::SecondsToEditString($seconds,$proj->prefs['hours_per_manday'], effort::FORMAT_HOURS_COLON_MINUTES)); + ?>" /> + </li> + <li> + <label for="estimated_effort_format"><?php echo Filters::noXSS(L('estimatedeffortformat')); ?></label> + <select id="estimated_effort_format" name="estimated_effort_format"> + <?php echo tpl_options(array( + effort::FORMAT_HOURS_COLON_MINUTES => L('hourplural') . ':' . L('minuteplural'), + effort::FORMAT_HOURS_SPACE_MINUTES => L('hourplural') . ' ' . L('minuteplural'), + effort::FORMAT_HOURS_PLAIN => L('hourplural'), + effort::FORMAT_HOURS_ONE_DECIMAL => L('hourplural') . ' (' . L('onedecimal') . ')', + effort::FORMAT_MINUTES => L('minuteplural'), + effort::FORMAT_DAYS_PLAIN => L('mandays'), + effort::FORMAT_DAYS_ONE_DECIMAL => L('mandays') . ' (' . L('onedecimal') . ')', + effort::FORMAT_DAYS_PLAIN_HOURS_PLAIN => L('mandays') . ' ' . L('hourplural'), + effort::FORMAT_DAYS_PLAIN_HOURS_ONE_DECIMAL => L('mandays') . ' ' . L('hourplural') . ' (' . L('onedecimal') . ')', + effort::FORMAT_DAYS_PLAIN_HOURS_COLON_MINUTES => L('mandays') . ' ' . L('hourplural') . ":" . L('minuteplural'), + effort::FORMAT_DAYS_PLAIN_HOURS_SPACE_MINUTES => L('mandays') . ' ' . L('hourplural') . " " . L('minuteplural'), + ), + Post::val('estimated_effort_format', $proj->prefs['estimated_effort_format'])); ?> + </select> + </li> + <li> + <label for="current_effort_done_format"><?php echo Filters::noXSS(L('currenteffortdoneformat')); ?></label> + <select id="current_effort_done_format" name="current_effort_done_format"> + <?php echo tpl_options(array( + effort::FORMAT_HOURS_COLON_MINUTES => L('hourplural') . ':' . L('minuteplural'), + effort::FORMAT_HOURS_SPACE_MINUTES => L('hourplural') . ' ' . L('minuteplural'), + effort::FORMAT_HOURS_PLAIN => L('hourplural'), + effort::FORMAT_HOURS_ONE_DECIMAL => L('hourplural') . ' (' . L('onedecimal') . ')', + effort::FORMAT_MINUTES => L('minuteplural'), + effort::FORMAT_DAYS_PLAIN => L('mandays'), + effort::FORMAT_DAYS_ONE_DECIMAL => L('mandays') . ' (' . L('onedecimal') . ')', + effort::FORMAT_DAYS_PLAIN_HOURS_PLAIN => L('mandays') . ' ' . L('hourplural'), + effort::FORMAT_DAYS_PLAIN_HOURS_ONE_DECIMAL => L('mandays') . ' ' . L('hourplural') . ' (' . L('onedecimal') . ')', + effort::FORMAT_DAYS_PLAIN_HOURS_COLON_MINUTES => L('mandays') . ' ' . L('hourplural') . ":" . L('minuteplural'), + effort::FORMAT_DAYS_PLAIN_HOURS_SPACE_MINUTES => L('mandays') . ' ' . L('hourplural') . " " . L('minuteplural'), + ), + Post::val('current_effort_done_format', $proj->prefs['current_effort_done_format'])); ?> + </select> + </li> + </ul> + </div> + + <div class="tbuttons"> + <input type="hidden" name="action" value="pm.updateproject" /> + <input type="hidden" name="project_id" value="<?php echo Filters::noXSS($proj->id); ?>" /> + <button type="submit" class="positive"><?php echo Filters::noXSS(L('saveoptions')); ?></button> + <button type="reset"><?php echo Filters::noXSS(L('resetoptions')); ?></button> + </div> +</form> +</div> |