Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Port (most) old manual pages to DocBook.

git-svn-id: http://mantisbt.svn.sourceforge.net/svnroot/mantisbt/trunk@4947 f5dc347c-c33d-0410-90a0-b07cc1902cb9
  • Loading branch information...
commit 67509110598bacb0fb3440488d6db4e193f260b0 1 parent 01d8c47
@giallu giallu authored
View
103 docbook/adminguide/en/Makefile
@@ -0,0 +1,103 @@
+# Makefile for DocBoook compilation
+#
+# $Id: Makefile,v 1.5 2004/10/01 12:54:37 giallu Exp $
+#
+#
+# Some things to remember:
+# - The main DocBook name is $BOOK.sgml
+# - All other files should have .sgml extension
+# - Images should go into ./images directory
+# - Images should be in png format
+#
+
+
+# Book name: will be used to build the input filename ($BOOK.sgml)
+# and the output filename ($BOOK.html, $BOOK.pdf and so on)
+BOOK=administration_guide
+
+# Stylesheet name. Original file from:
+# /usr/share/sgml/docbook/utils-0.6.11/docbook-utils.dsl
+#
+STYLE=stylesheet.dsl
+
+FILES:=$(BOOK).sgml $(wildcard *.sgml) $(STYLE) builddate
+
+IMAGES:=$(wildcard images/*.png)
+EPSS:=$(IMAGES:.png=.eps)
+
+default: help
+
+all: html pdf
+#all: html html_onefile text pdf ps sgml.gz html.tar.gz
+
+html: $(BOOK)/$(BOOK).html
+
+html_onefile: $(BOOK).html
+
+pdf: $(BOOK).pdf
+
+ps: $(BOOK).ps
+
+rtf: $(BOOK).rtf
+
+text: $(BOOK).txt
+
+builddate:
+ echo -n $$(LANG="en_US";date "+%e %B %Y") > $@
+
+html.tar.gz: html
+ (for i in $(files); do \
+ tar -cf $$i.tar $$i; \
+ gzip -f $$i.tar; \
+ done; )
+
+$(BOOK)/$(BOOK).html: $(FILES) $(IMAGES)
+ jw -d $(STYLE)#html -f docbook -b html -o $(BOOK) $<
+ -cp -r images $(BOOK)/
+
+$(BOOK).pdf: $(FILES) $(IMAGES)
+ jw -d $(STYLE)#print -f docbook -b pdf $<
+
+$(BOOK).html: $(FILES) $(IMAGES)
+ jw -d $(STYLE)#html -f docbook -b html -u $<
+
+$(BOOK).ps: $(FILES) $(EPSS)
+ jw -d $(STYLE) -f docbook -b ps $<
+
+$(BOOK).rtf: $(FILES) $(IMAGES)
+ jw -d $(STYLE) -f docbook -b rtf $<
+
+$(BOOK).txt: $(FILES)
+ jw -f docbook -b txt $<
+
+# pattern rules to convert PNGs to EPS
+#
+%.eps : %.png
+ pngtopnm $< | pnmtops -noturn > $@
+
+
+.PHONY: valid clean dist help
+valid:
+ nsgmls -s $(BOOK).sgml
+
+clean:
+ -$(RM) *.log *.dvi *.aux *.tex *.out
+ -$(RM) $(GENERATED_IMG) builddate
+ -$(RM) -r $(BOOK)
+ -$(RM) $(BOOK).html $(BOOK).ps $(BOOK).pdf $(BOOK).rtf $(BOOK).txt
+
+# Rebuild everything
+dist: clean all
+
+help:
+ @echo "Usage: make <target>"
+ @echo "Available targets are:"
+ @echo " help Show this text"
+ @echo " html Convert to HTML (split pages)"
+ @echo " html_onefile Convert to HTML (single page)"
+ @echo " pdf Convert to PDF"
+ @echo " rtf Convert to RTF"
+ @echo " ps Convert to Postscript"
+ @echo " text Convert to plain text"
+ @echo " clean Remove output and temporary files"
+ @echo " valid Check book correctness with nsgmls"
View
300 docbook/adminguide/en/about.sgml
@@ -0,0 +1,300 @@
+<chapter>
+ <title>About Mantis</title>
+
+ <section>
+ <title>Download</title>
+
+ <para>Mantis is compressed in .tar.gz format which any reasonable
+ decompression program can handle (Unix tar/gunzip,
+ <ulink url="http://www.winzip.com/">Winzip</ulink>
+ ,
+ <ulink url="http://www.aladdinsys.com/">StuffIt</ulink>
+ ).<ulink url="http://sourceforge.net/project/showfiles.php?group_id=14963">Download
+ Mantis
+ </ulink>
+ </para>
+ <para>Mirroring</para>
+ <para>If you choose to mirror the software, then
+ please sign up on the announcements mailing list. You should also
+ place a link back to this site. Let the project administrators know
+ so they can be aware of where mirrors are located.
+ </para>
+
+ </section>
+ <section>
+ <title>History</title>
+
+ <para>Kenzaburo Ito and a friend originally created a bugtracker
+ as an internal tool for their pet project. A search for good, free
+ packages came up with nothing suitable so they wrote their own.
+ After a rewrite and cleanup it was made available to the public via
+ the GNU General Public License (GPL). The GPL was chosen partly
+ because of his belief that development tools should be cheap or
+ free.In 2002, Ken was joined by Jeroen Latour, Victor Boctor and
+ Julian Fitzell to be the administrators and the core development
+ team of Mantis. This marks a new era in Mantis lifetime where it is
+ now a team project.
+ </para>
+
+ </section>
+
+ <section>
+
+ <title>About Mantis</title>
+
+
+ <section>
+ <title>What is it?</title>
+ <para>Mantis is a web based bugtracking system. It is
+ currently in development and is considered a beta.It is written in
+ the
+ <ulink url="http://www.php.net/">PHP</ulink>
+ scripting language and requires a
+ <ulink url="http://www.mysql.com/">MySQL</ulink>
+ database and a webserver. Mantis has been installed on Windows,
+ MacOS, OS/2, and a variety of Unix operating systems. Any web
+ browser should be able to function as a client. It is released
+ under the terms of the
+ <ulink url="http://www.gnu.org/copyleft/gpl.html">GNU General
+ Public License (GPL)
+ </ulink>
+ .Mantis is free to use and
+ modify. It is free to redistribute as long as you abide by the
+ distribution terms of the
+ <ulink url="http://www.gnu.org/copyleft/gpl.html">GPL</ulink>
+ .
+ </para>
+
+ <section>
+ <title>Features and Benefits</title>
+ <itemizedlist>
+ <listitem>
+ <para>Free</para>
+ </listitem>
+ <listitem>
+ <para>Easy to install</para>
+ </listitem>
+ <listitem>
+ <para>Web based</para>
+ </listitem>
+ <listitem>
+ <para>Platform independent</para>
+ </listitem>
+ <listitem>
+ <para>Multiple projects</para>
+ </listitem>
+ <listitem>
+ <para>Multiple languages</para>
+ </listitem>
+ <listitem>
+ <para>Emailing</para>
+ </listitem>
+ <listitem>
+ <para>Simple Search</para>
+ </listitem>
+ <listitem>
+ <para>Viewing filters</para>
+ </listitem>
+ <listitem>
+ <para>PHP4</para>
+ </listitem>
+ </itemizedlist>
+
+ </section>
+
+ <section>
+ <title>Goals</title>
+
+ <para>The goals for this project are to produce and maintain a
+ lightweight, simple bugtracking system. Additions of
+ complexity/features are modular so that users can be shielded from
+ unwanted clutter. Thus, much of the package has a simple version of
+ a feature along with a more fully developed version.In the 'core'
+ package the goal is to have the most important, most used, most
+ time saving portions of a bugtracking system. The product is
+ designed to be easily modifiable, customizable, and upgradeable.
+ Anyone with intermediate PHP and MySQL experience should be able to
+ customize Mantis to suit their needs.GuidelinesHere are some of the
+ guidelines that are followed in Mantis:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>Quick access to "What I want to do"</para>
+ </listitem>
+ <listitem>
+ <para>Simple navigation</para>
+ </listitem>
+ <listitem>
+ <para>Layered complexity</para>
+ </listitem>
+ <listitem>
+ <para>Consistency</para>
+ </listitem>
+ <listitem>
+ <para>Scale to browser window size</para>
+ </listitem>
+ <listitem>
+ <para>Minimal clutter</para>
+ </listitem>
+ <listitem>
+ <para>Minimal graphics</para>
+ </listitem>
+ <listitem>
+ <para>No frames</para>
+ </listitem>
+ <listitem>
+ <para>No animations</para>
+ </listitem>
+ <listitem>
+ <para>No Javascript</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Versioning</title>
+ <para>The release numbering convention we use is
+ major.minor.micro (eg. 0.15.8).Major - Indicates a very large
+ change in the core package. Rewrites or major milestones.Minor -
+ Significant amount of feature addition/modification. Anything that
+ requries an ugprade script.Micro - Mostly bug fixes or minor
+ featuresWe will release a new version for a significant bugfix as
+ often as daily.Currently, Mantis is considered beta software.
+ Version 1.0.0 will be used when we consider Mantis to be production
+ quality. This means it should be feature full and stable enough for
+ full production use.
+ </para>
+ </section>
+ </section>
+
+ <section>
+
+ <title>Minimum Requirements</title>
+
+
+ <para>Mantis runs on Windows, MacOS, OS/2, Linux, Solaris, the
+ BSDs, and just about anything that supports the required server
+ software.Mantis has modest software and hardware requirements. You
+ need a computer to run the server software. All of the required
+ software is free for commercial or non-commercial use.The computer
+ can be a shared public web server or a dedicated co-loc box. It can
+ even run on an office machine. Any Pentium class computer should be
+ adequate for moderate usage. You'll just need enough diskspace for
+ the database to grow and enough memory to avoid virtual memory
+ thrashingDiskspaceMantis requires about 6MBs of diskspace for file
+ storage. MySQL will require additional diskspace to store the
+ issues. A typical installation with 2,000 issues and light file
+ upload usage should take up around 10-20MBs of disk space.
+ Attachments will inflate the size required according to their
+ size.
+ </para>
+ </section>
+
+ <section>
+ <title>Software</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="http://www.php.net/">PHP</ulink> 4.0.6 and
+ higher
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <ulink url="http://www.mysql.com/">MySQL</ulink> database
+ 3.23.2 and higher (alternate database support is planned for
+ 2.0)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Web server (<ulink url="http://www.apache.org/">Apache</ulink>, IIS, etc.)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Cost</title>
+
+ <para>Mantis is free. The net cost to use Mantis is the time to
+ download, install, and configure the software plus any potential
+ hardware costs. Continued maintenance should be minimal unless you
+ are tweaking the package.TimeIf you've done this sort of thing
+ before it will probably take about 5-60 minutes. If not, plan on
+ around 1-8 hours depending on the problems you run into. If you're
+ unlucky then plan on more, or just give up now *wink*.PHPYou don't
+ have to know a thing about PHP to use Mantis, unless something goes
+ wrong. Then it helps to be able to tinker with PHP scripts (when
+ there's a little bug or you want to tweak something).PHP is a
+ simple scripting language and syntacticaly resembles C. It is very
+ easy to pickup and learn. In fact, it makes normally difficult
+ tasks so ridiculously easy that you'll want to use it for lots of
+ simple tasks (like washing dishes).The
+ <ulink url="http://www.php.net/manual/en/">PHP Manual</ulink>
+ is phenomenal. If you ever have a question
+ about a PHP function then run to it. The user comments always shed
+ light into issues that others like you have experienced.There are
+ many sites that offer basic tutorials for learning PHP and/or MySQL
+ (
+ <ulink url="http://www.devshed.com/">DevShed</ulink>
+ |
+ <ulink url="http://www.webmonkey.com/">WebMonkey</ulink>
+ ).
+ </para>
+ </section>
+
+ <section>
+ <title>MySQL</title>
+ <para>Basic administration of MySQL is necessary. At a minimum you should be
+ able to:
+ <itemizedlist>
+ <listitem>
+ <para>Login</para>
+ </listitem>
+ <listitem>
+ <para>Create a new user</para>
+ </listitem>
+ <listitem>
+ <para>Give the user permissions</para>
+ </listitem>
+ </itemizedlist>
+ <ulink url="http://www.mysql.com/doc/">MySQL.com</ulink> has
+ excellent documentation. It is also highly recommended to use
+ <ulink url="http://www.phpmyadmin.net/">phpMyAdmin</ulink>
+ to administer your MySQL database. You can create a new database
+ and edit tables with this excellent package. All you need to do
+ beforehand is setup the database user(s).WebserverThe webserver
+ needs to be configured to handle PHP files. In Apache, this
+ monumental task requires all of one line in the configuration file.
+ There are also instructions for IIS, iPlanet/Netscape, Xitami, and
+ more. All listed at the
+ <ulink url="http://www.php.net/manual/en/">PHP Manual</ulink>
+ </para>
+ </section>
+ </section>
+
+ <section>
+
+ <title>About the Name</title>
+
+
+ <para>When initially seeking to name this project Ken ran into a
+ problem every programmer encounters. What is a good name?It has to
+ be descriptive, unique, and not too verbose. Additionally having
+ multiple meanings would be a nice touch or the perceptive.Quickly
+ ruled out were php*Something* names which, incidentally, although
+ popular, do not seem to be condoned by the PHP Group
+ developers.Drawing inspiration from Open Source projects like
+ Apache, Mozilla, Gnome, and so forth resulted in two eventual
+ choices: Dragonfly and Mantis. Dragonfly was already the name of a
+ webmail package. So the name became Mantis.Praying Mantis are
+ insects that feed primarily on other insects and bugs. They are
+ extremely desirable in agriculture as they devour insects that feed
+ on crops. They are also extremely elegant looking creatures.So, we
+ have a name that is fairly distinctive and descriptive in multiple
+ ways. And that is how the project was named.
+ </para>
+ </section>
+
+</chapter>
View
58 docbook/adminguide/en/administration_guide.sgml
@@ -0,0 +1,58 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
+<!ENTITY builddate SYSTEM "builddate">
+
+<!ENTITY % file-entities SYSTEM "file-entities.ent">
+%file-entities;
+
+]>
+
+<book lang="en" id="index">
+ <title>Mantis administration guide</title>
+ <bookinfo>
+
+ <!--revhistory>
+ <revision>
+ <revnumber>0.1</revnumber>
+ <date>11 August 2002</date>
+ <authorinitials>giallu</authorinitials>
+ <revremark>Work in progress for the Initial version</revremark>
+ </revision>
+ </revhistory-->
+
+ <copyright>
+ <year>2008</year>
+ <holder>The Mantis Team</holder>
+ </copyright>
+
+ <abstract>
+ <para>Reference manual for the Mantis issue tracker.</para>
+ <para>Build Date: &builddate;</para>
+ </abstract>
+
+ <legalnotice id="legal">
+ <para>TODO: disclaimer / license </para>
+
+ </legalnotice>
+ </bookinfo>
+
+ &about;
+ &installation;
+ &configuration;
+ &pagedescriptions;
+ &customizing;
+
+<colophon id="credits">
+ <title>Acknowledgements</title>
+
+ <para>We would like to thank all the past and present contributors to the
+ project:</para>
+
+ <itemizedlist>
+ <listitem><para>name</para></listitem>
+ <listitem><para>name</para></listitem>
+ <listitem><para>name</para></listitem>
+ <listitem><para>name</para></listitem>
+ </itemizedlist>
+
+</colophon>
+</book>
View
2,421 docbook/adminguide/en/configuration.sgml
2,421 additions, 0 deletions not shown
View
728 docbook/adminguide/en/customizing_mantis.sgml
@@ -0,0 +1,728 @@
+<chapter>
+ <title>Customizing Mantis</title>
+
+ <section>
+ <title>Custom Fields</title>
+
+
+ <para>There have been multiple requests to add certain fields to
+ Mantis bugs. These requests were not realised because of the
+ concern that they might over complicate the usage of Mantis while
+ not add value for most users.Hence, Mantis 0.18.0 introduces custom
+ fields to enable project managers to define extra fields for their
+ projects.Following are some facts about the implementation of
+ custom fields in Mantis:
+ <itemizedlist>
+ <listitem>
+ <para>Custom fields are defined system wide.</para>
+ </listitem>
+ <listitem>
+ <para>Custom fields can be linked to multiple
+ projects.
+ </para>
+ </listitem>
+ <listitem>
+ <para>The sequence of displaying custom fields can be different
+ per project.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Custom fields must be defined by users with access level
+ ADMINISTRATOR.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Custom fields can be linked to projects by users with
+ access level MANAGER or above (by default, this can be
+ configurable).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Number of custom fields is not restricted.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ The definition of a custom field includes the following logical
+ attributes:
+ <itemizedlist>
+ <listitem>
+ <para>Caption variable name (eg: This is the value that is
+ supplied to lang_get() API, or displayed as-is if not found in
+ language file).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Custom field type (string, numeric, float, enum,
+ email)
+ </para>
+ </listitem>
+ <listitem>
+ <para>Enumeration possible values (eg: RED|YELLOW|BLUE).
+ Use the pipe ('|') character to separate possible values for an
+ enumeration. One of the possible values can be an empty string.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Default value.</para>
+ </listitem>
+ <listitem>
+ <para>Minimum/maximum length for the custom field value (use 0
+ to disable).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Regular expression to use for validating user input (use
+ <ulink url="http://au.php.net/manual/en/function.ereg.php">ereg()</ulink>
+ syntax).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Advanced? no: Show in simple/advanced pages, yes: Show
+ only in advanced pages.
+ </para>
+ </listitem>
+ <listitem>
+ <para>All custom fields are currently saved to a field of type
+ VARCHAR(255) in the database. However, in future releases, it is
+ possible to support custom fields of different types (eg: memo,
+ date, datetime, file).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Read Access level: Minimum access level for users to be
+ able to see the value of the custom field.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Write Access level: Minimum access level for users to be
+ able to edit the value of the custom field.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ If the value of a custom field for a certain defect is not found,
+ the default value is assumed.
+ </para>
+
+ <formalpara>
+ <title>Adding/Editing Custom Fields Definitions</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>The logged in user needs manage_custom_fields_threshold
+ access level.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Select "Manage" from the main menu.</para>
+ </listitem>
+ <listitem>
+ <para>Select "Manage Custom Fields" from the management
+ menu.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Click on the name of an existing custom field to edit its
+ information.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Enter the name of the new custom field then click "New
+ Custom Field" to add a new field.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title>Linking/Unlinking/Ordering Existing Custom Fields in Projects</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>The logged in user needs to have access level that is
+ greater than or equal to $g_custom_field_link_threshold and
+ $g_manage_project_threshold.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Select "Manage" from the main menu.</para>
+ </listitem>
+ <listitem>
+ <para>Select "Manage Projects" in case you are
+ administrator.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Select the name of the project to manage.</para>
+ </listitem>
+ <listitem>
+ <para>Scroll down to the "Custom Fields" box.</para>
+ </listitem>
+ <listitem>
+ <para>Select the field to add from the list, then click "Add
+ This Existing Custom Field".
+ </para>
+ </listitem>
+ <listitem>
+ <para>To change the order of the custom fields, edit the
+ "Sequence" value and click update. Custom fields with smaller
+ values are displayed first.
+ </para>
+ </listitem>
+ <listitem>
+ <para>To unlink a custom field, click on "Remove" link next to
+ the field.
+ Unlinking a custom field will not delete the values that are
+ associated with the bugs for this field. These values are only
+ deleted if the custom field definition is removed (not unlinked!)
+ from the database. This is useful if you decide to re-link the
+ custom field. These values may also re-appear if bugs are moved to
+ another project which has this field linked.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title>Moving Bugs</title>
+ <para>
+ When a bug is moved from one project to another, custom
+ fields that are not defined for the new project are not deleted.
+ These fields will re-appear with their correct values if the bug is
+ moved back to the original project, or if these custom fields are
+ linked to the new project.
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title>Custom Severities, Priorites, Statuses, etc...</title>
+
+ <para>
+ This is a completely different issue. See
+ <ulink url="manual.customizing.mantis.enumerations.html">Enumerations</ulink>
+ for more details about this issue.
+ </para>
+ </formalpara>
+
+ <formalpara>
+ <title>Possible Future Enhancements</title>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>Make custom field searchable.</para>
+ </listitem>
+ <listitem>
+ <para>Ability to filter on values of custom fields.</para>
+ </listitem>
+ <listitem>
+ <para>Support more field types: date, datetime, memo,
+ file.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Support custom fields in resolve/close bugs
+ pages.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Control the visibility / mandatory state of custom fields
+ depending on the stage in which the bug is at (eg: reporting,
+ updating, resolving, closing).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Ability to export custom fields to csv, Excel,
+ Word.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Ability to make a custom field visible in View Bugs page
+ (this also applies for non-custom fields).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Ability to filter on custom fields in View Bugs page
+ (this also applies for non-custom fields that are not supported in
+ the filter.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Support populating custom fields from LDAP.</para>
+ </listitem>
+ <listitem>
+ <para>Support populating custom fields via a SELECT SQL query.
+ The query can use a set of variables like be a $sql_user_id,
+ $sql_project_id, $sql_xxx.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </formalpara>
+ <note><para>
+ If you are interested in any of the above enhancements and have the
+ time/skills required to implemented it, please contact the
+ development team to make sure that your work can be integrated into
+ Mantis future releases.
+ </para>
+ </note>
+
+ </section>
+ <section>
+ <title>Enumerations</title>
+
+
+ <para>Enumerations are used in Mantis to represent a set of
+ possible values for an attribute. Enumerations are used for access
+ levels, severities, priorities, project statuses, project view
+ state, reproducibility, resolution, ETA, and projection.Mantis
+ provides the administrator with the flexibility of altering the
+ values in these enumerations. The rest of this topic explains how
+ enumerations work, and then how they can be customised.
+ </para>
+
+ <formalpara>
+ <title>How enumerations work?</title>
+
+ <para>
+ <filename>core/constant_inc.php</filename> defines the
+ constants that correspond to those in the enumeration. These are
+ useful to refer to these enumerations in the configs and the code.
+ <programlisting>
+ define( 'VIEWER', 10 )
+ define( 'REPORTER', 25 )
+ define( 'UPDATER', 40 )
+ define( 'DEVELOPER', 55 )
+ define( 'MANAGER', 70 )
+ define( 'ADMINISTRATOR', 90 )
+ </programlisting>
+ </para>
+ </formalpara>
+
+ <para>
+ <filename>config_defaults_inc.php</filename> includes the defaults for the
+ enumerations. The configuration options that are defaulted here are
+ used in specifying which enumerations are active and should be used
+ in Mantis. However, the strings included in the enumerations here
+ are just for documentation purpose, they are not shown to the user
+ (due to the need for localisation). Hence, if an entry in this
+ enumeration is not found in the corresponding localised enumeration
+ (i.e. 70:manager), then it will be printed to the user as @70@.
+
+ <programlisting>
+ $g_access_levels_enum_string =
+ '10:viewer,25:reporter,40:updater,55:developer,70:manager,90:administrator';
+ </programlisting>
+ </para>
+ <para>
+ <filename>lang/strings_german.txt</filename> provide the
+ localised strings (in this case, in german) for enumerations. But again, the master list is
+ the enumeration in the configs, the ones in the language files are
+ just used for finding the localised equivalent for an entry. Hence,
+ if a user changes the config to have only two types of users
+ developers and administrators, then only those will be prompted to
+ the users even if the enumerations in the language files still
+ includes the full list.
+ <programlisting>
+
+ $s_access_levels_enum_string =
+ '10:Betrachter,25:Reporter,40:Updater,55:Entwickler,70:Manager,90:Administrator';
+ </programlisting>
+ </para>
+
+ <formalpara>
+ <title>How can they be customised?</title> <para>Let say we want to remove access level
+ "Updater" and add access level "Senior
+ Developer".
+ </para>
+ </formalpara>
+ <para>
+ The file <filename>custom_constant_inc.php</filename> is supported for the
+ exclusive purpose of allowing administrators to define their own
+ constants while maintaining a simple upgrade path for future
+ releases of Mantis. Note that this file is not distributed with
+ Mantis and you will need to create it if you need such
+ customisation. In our example, we need to define a constant for the
+ new access level.
+ <programlisting>
+ define ( 'SENIOR_DEVELOPER', 60 );
+ </programlisting>
+ </para>
+
+ <para>
+ In <filename>config_inc.php</filename>
+ <programlisting>
+ // Remove Updater and add Senior Developer
+ $g_access_levels_enum_string =
+ '10:viewer,25:reporter,55:developer,60:senior_developer,70:manager,90:administrator';
+ // Give access to Senior developers to create/delete custom field.
+ $g_manage_custom_fields_threshold = SENIOR_DEVELOPER;
+ </programlisting>
+ </para>
+
+ <para>
+ The file <filename>custom_strings_inc.php</filename> is introduced for a similar reason
+ to that of custom_constant_inc.php, which is to define custom
+ strings. The advantage of defining them here is to provide a simple
+ upgrade path, and avoid having to re-do the changes when upgrading
+ to the next Mantis release. Note that you will need to create this
+ file if you need such customisation. The file is automatically
+ detected and included by Mantis code (v0.18.0aX).
+ <programlisting>
+ # Note that we don't have to remove the Updater entry from the
+ localisation file if ( lang_get_current() === 'english' ) {
+ $s_access_levels_enum_string =
+ '10:Betrachter,25:Reporter,40:Updater,55:Entwickler,60:Senior
+ Developer,70:Manager,90:Administrator'; }
+ </programlisting>
+ </para>
+
+ <formalpara>
+ <title>Conclusion</title><para>We have covered how enumerations work in general, and how
+ to customise one of them. If you are interested in customising
+ other enumerations, a good starting point would be to go to "Mantis
+ Enum Strings" section inconfig_defaults_inc.php. This section
+ defines all enumerations that are used by Mantis.
+ For versions that are older than 0.18.0, custom_*_inc.php files are
+ not supported, and hence you will need to change in the actual
+ constants / language files directly.
+ </para>
+ </formalpara>
+
+ </section>
+
+
+ <section>
+ <title>Email Notifications</title>
+
+ <para>See
+ <ulink url="manual.configuration.email.html">Email</ulink>
+ in the
+ <ulink url="manual.configuration.html">Configuration</ulink>
+ section.
+ </para>
+
+ <para>Examples:
+ <itemizedlist>
+ <listitem>
+ <para>Notify only managers of new issues.
+ <programlisting>
+ $g_notify_flags['new']['threshold_min'] = MANAGER;
+ $g_notify_flags['new']['threshold_max'] = MANAGER;
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Notify Developers and managers of all project events,
+ except, exclude developers from the 'closed' events.
+ <programlisting>$g_default_notify_flags['threshold_min'] = DEVELOPER;
+ $g_default_notify_flags['threshold_max'] = MANAGER;
+ $g_notify_flags['closed']['threshold_max'] = MANAGER;
+ $g_notify_flags['closed']['threshold_max'] = MANAGER;
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Exclude those who contributed bug notes from getting
+ messages about other changes in the bug.
+ <programlisting>$g_default_notify_flags['bugnotes'] = OFF;</programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Exclude those monitoring bugs from seeing the 'closed'
+ message
+ <programlisting>$g_notify_flags['closed']['monitor'] = OFF;</programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Only notify developers when bugnotes are added.
+ <programlisting>$g_notify_flags['bugnote']['threshold_min'] = DEVELOPER;
+ $g_notify_flags['bugnote']['threshold_max'] = DEVELOPER;
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Notify managers of changes in sponsorship.
+ <programlisting>$g_notify_flags['sponsor']['threshold_max'] = MANAGER;
+ $g_notify_flags['sponsor']['threshold_max'] = MANAGER;
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Notify originator and managers of changes in ownership
+ ("Assigned To:").
+ <programlisting>$g_notify_flags['owner']['threshold_max'] = MANAGER;
+ $g_notify_flags['owner']['threshold_max'] = MANAGER;
+ $g_notify_flags['owner']['reporter'] = ON;
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>I'm paranoid about mail. Only send information on issues
+ to those involved in them. Don't send mail people already know
+ about. Also send new bug notifications to managers so they can
+ screen them.
+ <programlisting>$g_mail_receive_own = OFF;
+ $g_default_notify_flags =
+ array('reporter' =&gt; ON, 'handler' =&gt; ON, 'monitor' =&gt; ON,
+ 'bugnotes' =&gt; ON, 'threshold_min' =&gt; NOBODY, 'threshold_max'
+ =&gt; NOBODY);
+ $g_notify_flags['new']['threshold_min'] = MANAGER;
+ $g_notify_flags['new']['threshold_max'] = MANAGER;
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>How do I replace the $g_to_email configuration variable
+ to log all messages to an email logger.
+ </para>
+ <para>You will need to create a
+ dummy user with the appropriate access level for the notices you
+ want to log. Once this user is added to projects, they will receive
+ mail using the appropriate rules.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+
+
+ <section>
+ <title>Customizing Status Values</title>
+ <para>The default is no workflow, where all states
+ are accessible from any others. The following example can be
+ transferred to config_inc.php. The workflow needs to have a path
+ from the statuses greater than or equal to the resolved state back
+ to the feedback state. Otherwise, the re-open operation won't work.
+ <programlisting>$g_status_enum_workflow[NEW_]=
+ '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved';
+ $g_status_enum_workflow[FEEDBACK] =
+ '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved';
+ $g_status_enum_workflow[ACKNOWLEDGED] =
+ '20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved';
+ $g_status_enum_workflow[CONFIRMED] =
+ '20:feedback,40:confirmed,50:assigned,80:resolved';
+ $g_status_enum_workflow[ASSIGNED] =
+ '20:feedback,50:assigned,80:resolved,90:closed';
+ $g_status_enum_workflow[RESOLVED] =
+ '50:assigned,80:resolved,90:closed';
+ $g_status_enum_workflow[CLOSED] = '50:assigned';
+ </programlisting>
+
+ <para>To add a status:
+ <orderedlist>
+ <listitem>
+ <para>Define a constant to map the new status to.In a new file
+ custom_constant_inc.php in the main mantisbt directory:
+ <programlisting>&lt;?php define ( 'TEST', 60 ); ?&gt;</programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Define the language strings required. This may need to be
+ defined in several languages.In a new file custom_strings_inc.php
+ in the main mantisbt directory:
+ <programlisting>&lt;?php if ( lang_get_current() == 'german' ) {
+ $s_status_enum_string =
+ '10:neu,20:R&cedil;ckmeldung,30:anerkannt,40:best&permil;tigt,50:zugewiesen,
+ 60:zu testen,80:behoben,90:geschlossen'; } else {
+ $s_status_enum_string =
+ '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned, 60:to
+ be tested,80:resolved,90:closed'; $s_to_be_tested_bug_button =
+ "Issue Ready to Test"; $s_to_be_tested_bug_title = "Set Issue Ready
+ to Test"; $s_email_notification_title_for_status_bug_to_be_tested =
+ "The following issue is ready TO BE TESTED."; } ?&gt;
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Define any configurations required.In the existing file
+ config_inc.php in the main mantisbt directory:
+ <programlisting>$g_status_enum_string =
+ '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned, 60:to
+ be tested,80:resolved,90:closed'; # Status color additions
+ $g_status_colors['to be tested'] = '#ACE7AE';
+ </programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>Add the status to any workflow defined.In config_inc.php:
+ <programlisting>$g_status_enum_workflow[NEW_]=
+ '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,60:to
+ be tested'; $g_status_enum_workflow[FEEDBACK] =
+ '10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,60:to
+ be tested'; $g_status_enum_workflow[ACKNOWLEDGED] =
+ '20:feedback,30:acknowledged,40:confi rmed,50:assigned,60:to be
+ tested'; $g_status_enum_workflow[CONFIRMED] =
+ '20:feedback,40:confirmed,50:assigned,60:to be tested';
+ $g_status_enum_workflow[ASSIGNED] = '20:feedback,50:assigned,60:to
+ be tested,90:closed'; $g_status_enum_workflow[TEST] =
+ '10:new,20:feedback,50:assigned,60:to be
+ tested,80:resolved,90:closed'; $g_status_enum_workflow[RESOLVED] =
+ '50:assigned,60:to be tested,80:resolved,90:closed';
+ $g_status_enum_workflow[CLOSED] = '50:assigned,90:closed';
+ </programlisting>
+ </para>
+ </listitem>
+
+ </orderedlist>
+ </para>
+
+ </section>
+
+
+ <section>
+ <title>LDAP</title>
+ <para>Functionality is provided by using the php-ldap module
+ (/usr/lib/php4/ldap.so). An extra login method is defined within
+ core/user_API.php inside of function is_password_match $f_username,
+ $p_test_password, $p_password ).This has a simple, non encrypted
+ (yet) test of the LDAP directory for that user by asking for an
+ entry with uid=username and password=test_password, if this exists,
+ it is presumed that the user should be granted access.
+ <formalpara>
+ <title>Configuration basics</title>
+ <para>the LDIF format that was tested is as follows:
+ <programlisting>dn: uid=tests,
+ dc=test, dc=com, dc=au
+ department: testdep
+ organizationname: Testing Organization
+ cn: Test Smith
+ assignedgroup: users
+ givename: Test
+ sn: Smith
+ mail: tests@example.com.au
+ uid: testsuser
+ Password: password
+ objectclass: testPerson
+ </programlisting>
+
+ The password may be in clear, taken
+ from the /etc/passwd or /etc/shadow file, or simply encrypted and
+ added using current LDAP tools.There are some specialized software
+ for replicating passwd to LDAP and inversely (eg.
+ <ulink url="http://freshmeat.net/projects/cpu/">http://freshmeat.net/projects/cpu/</ulink>
+ ).
+ </para>
+ </formalpara>
+
+ <para>Also setup the LDAP parameters explained in the
+ <ulink url="manual.configuration.authentication.html">Authentication</ulink>
+ section. Don't forget to change your $g_login_method to
+ LDAP.
+ </para>
+
+ <formalpara>
+ <title>Creating new accounts</title><para>There is still a bit of problem when you
+ want to create a new user to Mantis using LDAP, you must create the
+ LDIF entry to LDAP, and also sign up for a new account, if both of
+ these line up correctly, authentication will proceed.Email
+ issuesEmail address is queried from the LDAP database if the
+ authentication is set to use LDAP instead of the user record in the
+ database
+ entry.</para>
+ </formalpara>
+
+ </section>
+
+
+ <section>
+ <title>Custom Functions</title>
+
+ <para>Custom functions are used to extend the functionality of
+ Mantis by integrating user writtenfunctions into the issue
+ processing at strategic places. This allows the system
+ administrator to changethe functionality without re-writing parts
+ of the internals of the code.
+ </para>
+ <para>User versions of these functions are
+ placed in a file called custom_functions_inc.php in the
+ root directory of Mantis. This is the same place that the
+ "config_inc.php" file modifying Mantisdefaults is placed. In normal
+ processing, Mantis will look for override functions and execute
+ theminstead of the provided default functions.
+ <para>Custom functions have
+ names like custom_function_override_descriptive_name where
+ descriptive namedescribed the particular function. The specific
+ functions are described below. The simplest way tocreate a custom
+ function is to copy the default function, named
+ custom_function_default_descriptive_namefrom the
+ core/custom_function_api.php file to your override file
+ (custom_functions_inc.php), andrename it. The specific
+ functionality you need can then be coded into the override
+ function.
+ </para>
+
+ <section>
+
+ <title>Defined Functions</title>
+
+
+ <para>custom_function_default_changelog_include_issue( $p_issue_id
+ ) returns true or false if the issue if to be included in the
+ Changelogcustom_function_default_changelog_print_issue( $p_issue_id
+ ) returns a formatted string to be included for the issue in the
+ Changelogcustom_function_default_checkin( $p_issue_id, $p_comment,
+ $p_file, $p_new_version ) registers a checkin in source control in
+ Mantiscustom_function_default_issue_update_validate( $p_issue_id,
+ $p_new_bug, $p_bug_note_text ) validate bug field settings before
+ an update occurs. It returns true or fails with an
+ error.custom_function_default_issue_update_notify( $p_issue_id )
+ notify after a bug has been
+ updatedcustom_function_default_issue_create_validate( $p_new_bug )
+ validate bug field settings before an issue is created. It returns
+ true or fails with an
+ error.custom_function_default_issue_create_notify( $p_issue_id )
+ notify after a bug has been
+ openedcustom_function_default_issue_delete_validate( $p_issue_id )
+ validate bug field settings before an issue can be deleted. It
+ returns true or fails with an
+ error.custom_function_default_issue_delete_notify( $p_issue_id )
+ notify after a bug has been deleted
+ </para>
+ </section>
+
+ <section>
+
+ <title>Example Custom Function</title>
+
+
+ <para>The following function is used to validate an issue before
+ it is resolved.
+ <programlisting width="102"><![CDATA[<?php
+# --------------------
+# Hook to validate Validate field settings before resolving
+# verify that the resolution is not set to OPEN
+# verify that the fixed in version is set (if versions of the product exist)
+
+function custom_function_override_issue_update_validate( $p_issue_id, $p_bug_data, $p_bugnote_text ) {
+if ( $p_bug_data->status == RESOLVED ) {
+if ( $p_bug_data->resolution == OPEN ) {
+error_parameters( 'the resolution cannot be open to resolve the issue' );
+trigger_error( ERROR_BUG_VALIDATE_FAILURE, ERROR );
+}
+$t_version_count = count( version_get_all_rows( $p_bug_data-&gt;project_id ) );
+if ( ( $t_version_count > 0 ) && ( $p_bug_data->fixed_in_version == '' ) ) {
+error_parameters( 'fixed in version must be set to resolve the issue' );
+trigger_error( ERROR_BUG_VALIDATE_FAILURE, ERROR );
+}
+}
+}
+?>]]>
+ </programlisting>
+ The errors will also need to be defined by adding the following to <filename>custom_constant_inc.php</filename>
+ <programlisting>
+ define ( 'ERROR_VALIDATE_FAILURE', 2000 );
+ To custom_strings_inc.php
+ $MANTIS_ERROR['ERROR_VALIDATE_FAILURE'] = 'This change cannot be made because %s';
+ </programlisting>
+ </para>
+ </section>
+ </section>
+ </chapter>
View
5 docbook/adminguide/en/file-entities.ent
@@ -0,0 +1,5 @@
+<!ENTITY about SYSTEM "about.sgml">
+<!ENTITY installation SYSTEM "installation.sgml">
+<!ENTITY configuration SYSTEM "configuration.sgml">
+<!ENTITY pagedescriptions SYSTEM "page_descriptions.sgml">
+<!ENTITY customizing SYSTEM "customizing_mantis.sgml">
View
416 docbook/adminguide/en/installation.sgml
@@ -0,0 +1,416 @@
+<chapter>
+ <title>Installation</title>
+
+
+ <para>Following are the steps for a new Mantis installation:</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <ulink url="manual.about.mantis.download.html">Download</ulink>
+ Mantis
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Go through Mantis <ulink url="manual.configuration.html">Configuration</ulink>
+ and set the database options + whatever options where you need to
+ override the default values.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Test your configuration through the admin
+ folder
+ </para>
+ </listitem>
+ <listitem>
+ <para>Create a new administrator account and remove the
+ standard user 'administrator'
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Following are the steps to upgrade a Mantis installation:See
+ <ulink url="manual.installation.upgrading.html">Upgrading</ulink>.The
+ following details the basic steps for installation on any system.
+ Theinstructions may seem unix-centric but should work fine on
+ Windows systems.Barring complications, it should take you about
+ 10-20 minutes to install,configure, and be using Mantis.
+ </para>
+
+ <section>
+ <title>Summary</title>
+
+ <orderedlist>
+ <listitem>
+ <para>Tranfer files</para>
+ </listitem>
+ <listitem>
+ <para>Uncompress files</para>
+ </listitem>
+ <listitem>
+ <para>Generate database tables</para>
+ </listitem>
+ <listitem>
+ <para>Edit configuration file, if needed</para>
+ </listitem>
+ <listitem>
+ <para>PHP File extensions</para>
+ </listitem>
+ <listitem>
+ <para>Login</para>
+ </listitem>
+ <listitem>
+ <para>Add projects and users</para>
+ </listitem>
+
+
+ <para>
+ Details for older versions of Mantis are <link linkend="older">here</link>.
+ </para>
+ </section>
+
+
+ <section>
+ <title>Details for New Installations of v1.0.0a2 or later</title>
+
+ <orderedlist>
+ <listitem>
+ <para>First, transfer the file to your webserver using whatever
+ method you likebest (ftp, scp, etc). You will need to telnet/ssh
+ into the server machine forthe next steps.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Next, untar/gunzip it to the directory that you want.The
+ usual command is (1 step):
+ tar zxvf &lt;filename.tar.gz&gt;
+ OR (2 steps):
+ gunzip &lt;filename.tar.gz&gt; tar xvf &lt;filename.tar&gt;
+ Winzip, Stuffit, and other programs should also be able to
+ handledecompression of the archive.At this point you may want to
+ rename the directory to something simpler like'mantis'. You will
+ use the mv command to rename a directory (Windows userssubstitute
+ the "ren" command or use explorer).
+ mv &lt;directoryname&gt; mantis
+ </para>
+ </listitem>
+ <listitem>
+ <para>Next we will create the necessary database tables and a
+ basic configurationfile.From your web server, access
+ http://yoursite/mantis/admin/install.phpThis page will walk through
+ the following steps:
+
+ <orderedlist>
+ <listitem>
+ <para>check basic parameters for the web server</para>
+ </listitem>
+ <listitem>
+ <para>prompt for the database type and location, and a database
+ user/passwordpair. For installiion, an administrative user/password
+ pair can also beprovided. The operating user requires SELECT,
+ INSERT, UPDATE, and DELETEprivileges. For installation, INDEX,
+ CREATE, ALTER, and DROP privileges arealso required.
+ </para>
+ </listitem>
+ <listitem>
+ <para>create the database and tables.
+ WARNING: A DEFAULT ADMINISTRATOR level account is created. The
+ account name and password are administrator / root.
+ Use this when you first login to Mantis. Immediately go to Manage
+ and create at least one administrator level account. Immediately
+ after that DISABLE or DELETE the administrator account. You can
+ recreate it but you should delete the account to prevent the
+ cookie_string from being used to trick the package. It would be
+ even better to rename the account or delete it permanently.
+ REMEMBER: After setting up the package, REMOVE the default
+ administrator account.
+ </para>
+ </listitem>
+ <listitem>
+ <para>write a basic "config_inc.php file to define the
+ database.
+ </para>
+ </listitem>
+ <listitem>
+ <para>perform some post installation checks on the
+ system.
+ </para>
+ </listitem>
+ </orderedlist>
+
+ </para>
+ </listitem>
+ <listitem>
+ <para>The next part involves configuring the installation to
+ work with yourspecific setup.Open the file in an editor and add
+ anyother values that are required. There aremany more that you can
+ use to customize your Mantis installation.
+ See<ulink url="manual.configuration.html">Configuration</ulink> for
+ in depth explanations.The file will overwrite the default values
+ with those necessary for setup.You can load up admin/check.php to
+ see if you set things up correctly.
+ NOTE: check.php sometimes reports the value of
+ register_globalsincorrectly.
+ Create a page with this line in it: &lt;? phpinfo() ?&gt;, save
+ itwith a .php extension and load it up in your web browser. It
+ will, among amultitude of other things, have the correct value of
+ register_globals that youare using.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Mantis now uses only .php files.If your webserver is
+ configured for other extensions (.PHP3, .PHTML) then youwill have
+ to have the administrator add support for .PHP files. This shouldbe
+ a trivial modification.Documentation can be found at:
+ http://www.php.net/manual/en/installation.php
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Login to your bugtracker and go to the manage section.
+ Click on theprojects link. You will need to ADD a new project. Then
+ EDIT the new projectand remember to ADD at least one category.
+ Otherwise you won't be able to addany bug reports.That should be
+ it. You're off and running.
+ </para>
+ </listitem>
+ </orderedlist>
+
+ </section>
+
+ <section id="older">
+ <title>Details for New Installations of v1.0.0a1 or earlier</title>
+
+ <orderedlist>
+ <listitem>
+ <para>First, transfer the file to your webserver using whatever
+ method you likebest (ftp, scp, etc). You will need to telnet/ssh
+ into the server machine forthe next steps.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Next, untar/gunzip it to the directory that you want.The
+ usual command is (1 step):
+ tar zxvf &lt;filename.tar.gz&gt;
+ OR (2 steps):
+ gunzip &lt;filename.tar.gz&gt; tar xvf &lt;filename.tar&gt;
+ Winzip, Stuffit, and other programs should also be able to
+ handledecompression of the archive.At this point you may want to
+ rename the directory to something simpler like'mantis'. You will
+ use the mv command to rename a directory (Windows userssubstitute
+ the "ren" command or use explorer).
+ mv &lt;directoryname&gt; mantis
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Next we will create the necessary database tables. Make
+ sure you havecreated the database ahead of time. You should know
+ your mysql username andpassword as well.Go into the sql directory
+ and run the following command:
+ mysql -u&lt;username&gt; -p&lt;password&gt; &lt;databasename&gt;
+ &lt; db_generate.sql
+ You could also cut and paste the sql statements from
+ db_generate.sql into apackage like phpMyAdmin or into your terminal
+ window.e.g. if your username is bob, password is mypass, database
+ name is bugtracker:
+ mysql -ubob -pmypass bugtracker &lt; db_generate.sql
+ You may require an additional host parameter if your SQL server is
+ on anothermachine. e.g. if your server is sqlserver
+ mysql -h sqlserver -ubob -pmypass bugtracker &lt; db_generate.sql
+ WARNING: A DEFAULT ADMINISTRATOR level account is created. The
+ account name and password are administrator / root. Use this when
+ you first login to Mantis. Immediately go to Manage and create at
+ least one administrator level account. Immediately after that
+ DELETE the administrator account. You can recreate it but you
+ should delete the account to prevent the cookie_string from being
+ used to trick the package. It would be even better to rename the
+ account or delete it permanently. REMEMBER: After setting up the
+ package, REMOVE the default administrator account.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>The next part involves configuring the installation to
+ work with yourspecific setup.In the installation directory, locate
+ config_inc.php.sample and copy it toconfig_inc.php.Open the file in
+ an editor and edit the values to match your settings. Thesample
+ file contains only essential settings. There are many more thatyou
+ can use to customize your Mantis installation. See the
+ customization.htmlfile for in depth explanations.The file will
+ overwrite the default values with those necessary for setup.You can
+ load up admin/check.php to see if you set things up correctly.
+ NOTE: check.php sometimes reports the value of
+ register_globalsincorrectly. Create a page with this line in it:
+ &lt;? phpinfo() ?&gt;, save itwith a .php extension and load it up
+ in your web browser. It will, among amultitude of other things,
+ have the correct value of register_globals that youare using.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Mantis now uses only .php files.If your webserver is
+ configured for other extensions (.PHP3, .PHTML) then youwill have
+ to have the administrator add support for .PHP files. This shouldbe
+ a trivial modification.Documentation can be found at:
+ http://www.php.net/manual/en/installation.php
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Login to your bugtracker and go to the manage section.
+ Click on theprojects link. You will need to ADD a new project. Then
+ EDIT the new projectand remember to ADD at least one category.
+ Otherwise you won't be able to addany bug reports.
+ </para>
+ </listitem>
+ </orderedlist>
+
+ <para>That should be it. You're off and running. For some help on custom
+ editingof the site please read the CUSTOMIZATION file.
+ </para>
+
+
+ </section>
+
+ <section>
+
+ <title>Requirements</title>
+
+
+ <para>The following versions are required for proper operation:</para>
+ <informaltable>
+ <tgroup cols="3"><tbody>
+ <row>
+ <entry>Package</entry>
+ <entry>Minimum Version</entry>
+ <entry>Tested with</entry>
+ </row>
+ <row>
+ <entry>MySQL</entry>
+ <entry>3.23.2</entry>
+ <entry>4.0 and 4.1.11</entry>
+ </row>
+ <row>
+ <entry>PostgreSQL (experimental)</entry>
+ <entry>7.0</entry>
+ <entry>8.0</entry>
+ </row>
+ <row>
+ <entry>PHP</entry>
+ <entry>4.0.6</entry>
+ <entry>4.3.11 and 5.0.4</entry>
+ </row>
+ <row>
+ <entry>Web Server</entry>
+ <entry></entry>
+ <entry>Apache 1.3, Apache 2.0.54, IIS 6.0</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ </section>
+
+ <section>
+
+ <title>Backups</title>
+
+
+ <para>It is recommended to backup your Mantis database on a
+ regular basis. This is easy to accomplish using the mysqldump
+ command:
+ mysqldump -u&lt;username&gt; -p&lt;password&gt; &lt;database
+ name&gt; &gt; &lt;output file&gt;
+ To restore a backup you will need to have a clean database. Then
+ run:
+ mysql -u&lt;username&gt; -p&lt;password&gt; &lt;database name&gt;
+ &lt; &lt;input file&gt;
+ You can also perform both of these tasks using
+ <ulink url="http://www.phpmyadmin.net/">phpMyAdmin</ulink>
+ A good idea is to make a backup script and run it regularly through
+ cron or a task scheduler (for Windows see
+ <ulink url="http://www.wincron.com/">WinCron</ulink>
+ ).
+ Using the current date in the filename can prevent overwriting and
+ make cataloguing easier.
+ !!! Backups should always be performed before an upgrade !!!
+ Make sure to backup Mantis code (which includes your configs +
+ possibly customization), bug attachments / project documents, and
+ database contents.
+ </para>
+
+ </section>
+
+ <section>
+
+ <title>CVS Integration</title>
+
+
+ <para>CVS integration allows Mantis to register commits to the CVS
+ source control system into corresponding bug notes in the issue
+ tracker.The setup requires that the mantis installation be
+ accessible on the computer running the CVS server. A copy of the
+ Mantis config_inc.php file must be present.Note that the mysql
+ database also needs to be accessible from the cvs machine. That is,
+ "localhost" for $g_hostname won't work unless CVS and Mantis are
+ hosted on the same machine.To activate the integration, the
+ following line to the cvs "commitinfo" file. (Instructions to edit
+ this file are in any number of CVS primers).
+ ALL /usr/bin/php /path_to_mantis/core/checkin.php
+ This will pass the commit message to checkin.php for all commits.
+ If the stringissue #nnnn is found in the commit message, the Mantis
+ corresponding to "nnnn" will have the CVS commit message added as a
+ bug note to the issue. Multiple issues can be listed.This feature
+ is configured through config_inc.php and through custom
+ functions.
+ </para>
+
+ <para>See also:
+ <ulink url="manual.configuration.source.control.integration.html">Source
+ Control Integration
+ </ulink>
+ for configuration, and
+ <ulink url="manual.customizing.mantis.custom.functions.html">Custom
+ Functions
+ </ulink>
+ </para>
+ </section>
+
+ <section>
+
+ <title>Uninstall</title>
+
+
+ <para>
+ It is recommended that you make an backup in case you wish to use
+ your data in the future. See the
+ <ulink url="manual.installation.backups.html">Backups</ulink>
+ page for details.
+ To uninstall Mantis:
+ <itemizedlist>
+ <listitem>
+ <para>Delete the Mantis directory and all files and
+ subdirectories.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Drop all Mantis tables from the database, these can be
+ identified by the configured prefix for the installation. The
+ default prefix is 'mantis'.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Remove any customizations or additions that you may have
+ made.
+ </para>
+ </listitem>
+ </itemizedlist>
+ If you have the permissions to create/drop databases and you have a
+ specific database for Mantis that does not contain any other data,
+ you can drop the whole database.
+ </para>
+
+ </section>
View
1,100 docbook/adminguide/en/page_descriptions.sgml
@@ -0,0 +1,1100 @@
+<chapter>
+ <title>Page descriptions</title>
+ <section>
+
+ <title>Login page</title>
+
+
+ <para>Just enter your username and password and hit the login
+ button. There is also a Save Login checkbox to have the package
+ remember that you are logged in between browser sessions. You will
+ have to have cookies enabled to login.If the account doesn't exist,
+ the account is disabled, or the password is incorrect then you will
+ remain at the login page. An error message will be displayed.The
+ administrator may allow users to sign up for their own accounts. If
+ so, a link to Signup for your own account will be available.The
+ administrator may also have annonymous login allowed. Annonymous
+ users will be logged in under a common account.You will be allowed
+ to select a project to work in after logging in. You can make a
+ project your default selection from the Select Project screen or
+ from your Account Options.SignupHere you can signup for a new
+ account. You must supply a valid email address and select a unique
+ username. Your randomly generated password will be emailed to your
+ email account. If Mantis is setup so that the email password is not
+ to be emailed, newly generated accounts will have an empty
+ password.
+ </para>
+
+ </section>
+
+ <section>
+ <title>Main page</title>
+
+ <para>This is the first page you see upon logging in. It shows you
+ the latest news updates for the bugtracker. This is a simple news
+ module (based off of work by Scott Roberts) and is to keep users
+ abreast of changes in the bugtracker or project. Some news postings
+ are specific to projects and others are global across the entire
+ bugtracker. This is set at the time of posting in the Edit News
+ section.The number of news posts is controlled by a global
+ variable. When the number of posts is more than the limit, a link
+ to show "older news" is displayed at the bottom. Similarly a "newer
+ news" is displayed when you have clicked on "older news".There is
+ an Archives option at the bottom of the page to view all
+ listings.ArchivesA title/date/poster listing of ALL past news
+ articles will be listed here. Clicking on the link will bring up
+ the specified article. This listing will also only display items
+ that are either global or specific to the selected project.
+ </para>
+ </section>
+
+
+ <section>
+ <title>View Bugs page</title>
+
+ <para>Here we can view the bug listings. The page has a set of
+ viewing filters at the top and the bugs are listed below.FiltersThe
+ filters control the behavior of the bug list. The filters are saved
+ between browsing sessions but do not currently save sort order or
+ direction.If the number of bugs exceeds the "Show" count in the
+ filter a set of navigation to go to "First", "Last", "Previous",
+ "Next" and specific page numbers are added.The Search field will
+ look for simple keyword matches in the summary, description, steps
+ to reproduce, additional information, bug id, or bug text id
+ fields. It does not search through bugnotes.Bug ListThe bugs are
+ listed in a table and the attributes are listed in the following
+ order: priority, id, number of bugnotes, category, severity,
+ status, last updated, and summary. Each (except for number of
+ bugnotes) can be clicked on to sort by that column. Clicking again
+ will reverse the direction of the sort. The default is to sort by
+ last modification time, where the last modified bug appears at the
+ top.The bug id is a link that leads to a more detailed report about
+ the bug. Depending on what you have set in your Account Preferences
+ you will be sent to the simple or advanced view. You can also add
+ bugnotes here.The number in the bugnote count column will be bold
+ if a bugnote has been added in the specified time frame. The
+ addition of a bugnote will make the bugnote link of the bug appear
+ in the unvisited state.The text in the "Severity" column will be
+ bold if the severity is major, crash, or block and the bug not
+ resolved.The text in the "Updated" column will be bold if the bug
+ has changed in the last "Changed(hrs)" field which is specified in
+ the viewing filters.Each table row is color coded according to the
+ bug status. The colors can be customised through Mantis
+ <ulink url="manual.configuration.html">Configuration</ulink>
+ .Severitiesblock
+ - prevents further work/progress from being madecrash - crashes the
+ application or OSmajor - major bugminor - minor bugtweak - needs
+ tweakingtext - error in the texttrivial - being nitpickyfeature -
+ requesting new featureStatusnew - new bugsfeedback - bug requires
+ more information, the original posters should pay
+ attentionacknowledged - bug has been looked at but not confirmed or
+ assignedconfirmed - confirmed and reproducible (typically set by an
+ Updater or other Developer)assigned - assigned to a
+ Developerresolved - bug should be fixed, waiting on confirmation of
+ fixclosed - bug is closedMoving the mouse over the status text will
+ show the resolution as a title. This is rendered by some browsers
+ as a bubble and in others as a status line text.
+ </para>
+
+ </section>
+
+ <section>
+
+ <title>Bug View Simple page</title>
+
+
+ <para>Here is the simple listing of the bug report. Most of the
+ fields are self-explanatory. "Assigned To" will contain the
+ developer assigned to handle the bug. Priority is fully functional
+ but currently does nothing of importance. Duplicate ID is used when
+ a bug is a duplicate of another. It links to the duplicate bug
+ which allows users to read up on the original bug report.Below the
+ bug report is a set of buttons that a user can select to work on
+ the issue.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>Update Issue - brings up a page to edit all aspects of
+ the issue
+ </para>
+ </listitem>
+ <listitem>
+ <para>Assign to - in conjunction with the dropdown list next
+ top the button, this is a shortcut to change the assignment of an
+ issue
+ </para>
+ </listitem>
+ <listitem>
+ <para>Change Status to - in conjunction with the dropdown list
+ next top the button, this is a shortcut to change the status of an
+ issue. Another page (Change Status) will be presented to allow the
+ user to add notes or change relevant information
+ </para>
+ </listitem>
+ <listitem>
+ <para>Monitor / Unmonitor Issue - allows the user to monitor
+ any additions to the issue by email
+ </para>
+ </listitem>
+ <listitem>
+ <para>Create Clone - create a copy of the current issue. This
+ presents the user with a new issue reporting form with all of the
+ information in the current issue filled in. Upon submission, a new
+ issue, related to the current issue, will be created.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Reopen Issue - Allows the user to re-open a resolved
+ issue
+ </para>
+ </listitem>
+ <listitem>
+ <para>Move Issue - allows the user to move the issue to another
+ project
+ </para>
+ </listitem>
+ <listitem>
+ <para>Delete Issue - Allows the user to delete the issue
+ permanently. It is recommended against deleting bugs unless the
+ entry is frivolous. Instead bugs should be set to resolved and an
+ appropriate resolution category chosen.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ A panel is provided to view and update the sponsorship of an
+ issue.Another panel is provided to view, delete and add
+ relationships for an issue. Issues can have a parent/child
+ relationship, where the user is warned about resolving a parent
+ issue before all of the children are resolved. A peer relationship
+ is also possible.Below this, there may be a form for uploading file
+ attachments. The Administrator needs to configure the bugtracker to
+ handle file uploads. If uploading to disk is selected, each project
+ needs to set its own upload path.Bugnotes are shown at the bottom
+ of the bug report. A panel to add bugnotes is also shown.
+ </para>
+
+ </section>
+
+
+ <section>
+ <title>Bug View Advanced page</title>
+
+ <para>The advanced view is much the same as the simple view with a
+ few additional fields. Here you can see Projection, ETA, Platform,
+ OS, OSBuild, Product Version, Product Build, and Steps to
+ Reproduce.
+ </para>
+ <para>See also:
+ <ulink url="manual.page.descriptions.bug.view.simple.page.html">Bug
+ View Simple page
+ </ulink>
+ </para>
+
+ </section>
+
+
+ <section>
+ <title>Bug Change Status page</title>
+
+
+ <para>This page is used to change the status of an issue. A user
+ can add a bugnote to describe the reason for change.In addition,
+ the following fields may be displayed for update:
+ <itemizedlist>
+ <listitem>
+ <para>Resolution and Duplicate ID - for issues being resolved
+ or closed
+ </para>
+ </listitem>
+ <listitem>
+ <para>Issue Handler (Assigned to)</para>
+ </listitem>
+ <listitem>
+ <para>any Custom Fields that are to be visible on update or
+ resolution
+ </para>
+ </listitem>
+ <listitem>
+ <para>Fixed in Version - for issues being resolved</para>
+ </listitem>
+ <listitem>
+ <para>Close Immediately - to immediately close a resolved
+ issue
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+
+
+ <section>
+
+ <title>Bug Update Simple page</title>
+
+ <para>The layout of this page resemples the Simple Issue View
+ page, but here you can update various bug fields. The Reporter,
+ Category, Severity, and Reproducibility fields are editable but
+ shouldn't be unless there is a gross mis-categorization.Also
+ modifiable are the Assigned To, Priority, Projection, ETA,
+ Resolution, and Duplicate ID fields.As per version 0.18.0, the user
+ can also add a bugnote as part of a bug update.
+ </para>
+
+ </section>
+
+
+ <section>
+ <title>Bug Update Advanced page</title>
+
+ <para>Similar to Bug Update Simple page but has the extra advanced
+ fields. The difference between the simple/advanced update pages
+ should be consistent with the difference between the
+ simple/advanced view pages.
+ </para>
+
+ </section>
+
+
+ <section>
+ <title>My Account Page</title>
+
+ <para>This page changes user alterable parameters for the system.
+ These selections are user specific.My AccountThis allows the user
+ to change their password, screen name, and email address. It also
+ reports the user's access levels on the current and other
+ projects.
+ </para>
+
+ <section>
+ <title>Preferences</title>
+ <para>
+ This sets the following information:
+ <itemizedlist>
+ <listitem>
+ <para>Default project</para>
+ </listitem>
+ <listitem>
+ <para>whether the pages used for reporting, viewing, and
+ updating are the simple or advanced views
+ </para>
+ </listitem>
+ <listitem>
+ <para>the delay in minutes between refreshes of the view all
+ bugs page
+ </para>
+ </listitem>
+ <listitem>
+ <para>the delay in seconds when redirecting from a confirmation
+ page to the display page
+ </para>
+ </listitem>
+ <listitem>
+ <para>the time order in which notes will be sorted</para>
+ </listitem>
+ <listitem>
+ <para>whether to filter email messages based on type of message
+ and severity
+ </para>
+ </listitem>
+ <listitem>
+ <para>the number of notes to append to notification
+ emails
+ </para>
+ </listitem>
+ <listitem>
+ <para>the default language for the system. The additional
+ setting of "auto" will use the browser's default language for the
+ system.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+ <section>
+ <title>Profiles</title>
+ <para>
+ Profiles are shortcuts to define the values for Platform,
+ OS, and version. This page allows you to define and edit personal
+ shortcuts.
+ </para>
+ </section>
+ </section>
+
+
+ <section>
+ <title>System Management Pages</title>
+
+
+ <para>A number of pages exist under the "Manage" link. These will
+ only be visible to those who have an appropriate access
+ level.
+ </para>
+
+ <section>
+ <title>Manage Users</title>
+
+
+ <para>This page allow an administrator to manage the users in the
+ system.It essentially supplies a list of users defined in the
+ system. The user names are linked to a page where you can change
+ the user's name, access level, and projects to which they are
+ assigned. You can also reset their passwords through this page.At
+ the top, there is also a list of new users (who have created an
+ account in the last week), and accounts where the user has yet to
+ log in.New users are created using the "Create User" link above the
+ list of existing users. Note that the username must be unique in
+ the system. Further, note that the user's real name (as displayed
+ on the screen) cannot match another user's user name.
+ </para>
+ </section>
+
+ <section>
+ <title>Manage Projects Page</title>
+
+
+ <para>This page allows the user to manage the projects listed in
+ the system.Each project is listed along with a link to manage that
+ specific project. The specific project pages allow the user to
+ change:
+ <itemizedlist>
+ <listitem>
+ <para>the project name</para>
+ </listitem>
+ <listitem>
+ <para>the project description</para>
+ </listitem>
+ <listitem>
+ <para>its status</para>
+ </listitem>
+ <listitem>
+ <para>whether the project is public or private. Private
+ projects are only visible to users who are assigned to it or users
+ who have the access level to automatically have access to private
+ projects (eg: administrators).
+ </para>
+ </listitem>
+ <listitem>
+ <para>afile directory used to store attachments for issues and
+ documents associated with the project. This folder is located on
+ the webserver, it can be absolute path or path relative to the main
+ Mantis folder. Note that this is only used if the files are stored
+ on disk or via FTP. In case of FTP, the cached version that is
+ saved on the webserver, is stored in the specified path.
+ </para>
+ </listitem>
+ <listitem>
+ <para>common subprojects. These are other projects who can be
+ considered a sub-project of this one. They can be shared amongst
+ multiple projects. For example, a "documentation" project may be
+ shared amongst several development projects.
+ </para>
+ </listitem>
+ <listitem>
+ <para>project categories. These are used to sub-divide the
+ issues stored in the system.
+ </para>
+ </listitem>
+ <listitem>
+ <para>project versions. These are used to create ChangeLog
+ reports and can be used to filter issues. They are used for both
+ the Found In and Fixed In versions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>Custom Fields linked to this project</para>
+ </listitem>
+ <listitem>
+ <para>Users linked to this project. Here is the place where a
+ user's access level may be upgraded or downgraded depending on
+ their particular role in the project.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section>
+ <title>Manage Custom Fields</title>
+
+ <para>This page is the base point for managing custom fields. It
+ lists the custom fields defined in the system. There is also a
+ place to enter a new field name to create a new field.The "Edit"
+ links take you to a page where you can define the details of a
+ custom field. These include it's name, type, value, and display
+ information. On the edit page, the following information is defined
+ to control the custom field:
+ <itemizedlist>
+ <listitem>
+ <para>name</para>
+ </listitem>
+ <listitem>
+ <para>type. Possible values are listed below.</para>
+ </listitem>
+ <listitem>
+ <para>Value constraints (Possible values, default value,
+ regular expression, minimum length, maximum length).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Access (who can read and write the field based on their
+ access level).
+ </para>
+ </listitem>
+ <listitem>
+ <para>Display control (where the field will show up and must be
+ filled in
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ All fields are compared in length to be greater than or equal to
+ the minimum length, and less than or equal to the manimum length,
+ unless these values are 0. If the values are 0, the check is
+ skipped. All fields are also compared against the regular
+ expression. If the value matches the expression, then the value is
+ stored. For example, the expression "/^-?([0-9])*$/" can be used to
+ constrain an integer.The table below describes the field types and
+ the value constraints.
+ </para>
+ <informaltable>
+ <tgroup cols="3"><tbody>
+ <row>
+ <entry>Type</entry>
+ <entry>Field Contents</entry>
+ <entry>Value Constraints</entry>
+ </row>
+ <row>
+ <entry>String</entry>
+ <entry>text string up to 255 characters</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>Numeric</entry>
+ <entry>an integer</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>Float</entry>
+ <entry>a floating point number</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>Enumeration</entry>
+ <entry>one of a list of text strings</entry>
+ <entry>Enter the list of text strings separated by "|" (pipe
+ character) in the Possible Values field. The Default value should
+ match one of these strings as well. This will be displayed as a
+ dropdown menu.
+ </entry>
+ </row>
+ <row>
+ <entry>Email</entry>
+ <entry>an email address string up to 255 characters</entry>
+ <entry>When displayed, the value will also be encapsulated in a
+ mailto: reference.
+ </entry>
+ </row>
+ <row>
+ <entry>Checkbox</entry>
+ <entry>zero or more of a list of text strings</entry>
+ <entry>Enter the list of text strings separated by "|" (pipe
+ character) in the Possible Values field. The Default value should
+ match one of these strings as well. This will be displayed as a
+ list of text strings with a checkbox beside them.
+ </entry>
+ </row>
+ <row>
+ <entry>List</entry>
+ <entry>one of a list of text strings</entry>
+ <entry>Enter the list of text strings separated by "|" (pipe
+ character) in the Possible Values field. The Default value should
+ match one of these strings as well. This will be displayed as a
+ multi-line dropdown menu.
+ </entry>
+ </row>
+ <row>
+ <entry>Multiselection List</entry>
+ <entry>zero or more of a list of text strings</entry>
+ <entry>Enter the list of text strings separated by "|" (pipe
+ character) in the Possible Values field. The Default value should
+ match one of these strings as well. This will be displayed as a
+ multi-line dropdown menu.
+ </entry>
+ </row>
+ <row>
+ <entry>Date</entry>
+ <entry>text string defining a date</entry>
+ <entry>This is displayed as a set of dropdown menus for day, month,
+ and year. Defaults should be defined in yyyy-mm-dd format.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ The display entries are used as follows:
+ <informaltable>
+ <tgroup cols="2"><tbody>
+ <row>
+ <entry>Entry</entry>
+ <entry>Meaning</entry>
+ </row>
+ <row>
+ <entry>Display Only On Advanced Page</entry>
+ <entry>If checked, the field will NOT be shown on the simple bug
+ displays
+ </entry>
+ </row>
+ <row>
+ <entry>Display When Reporting Issues</entry>
+ <entry>If checked, the field will be shown on the report issues
+ displays
+ </entry>
+ </row>
+ <row>
+ <entry>Display When Updating Issues</entry>
+ <entry>If checked, the field will NOT be shown on the update issue
+ and change status displays
+ </entry>
+ </row>
+ <row>
+ <entry>Display When Resolving Issues</entry>
+ <entry>If checked, the field will NOT be shown on the update issue
+ displays and change status displays, if the new status is
+ resolved.
+ </entry>
+ </row>
+ <row>
+ <entry>Display When Closing Issues</entry>
+ <entry>If checked, the field will NOT be shown on the update issue
+ displays and change status displays, if the new status is
+ closed.
+ </entry>
+ </row>
+ <row>
+ <entry>Required On Report</entry>
+ <entry>If checked, the field must be filled in on the issue
+ reports.
+ </entry>
+ </row>
+ <row>
+ <entry>Required On Update</entry>
+ <entry>If checked, the field must be filled in on the update issue
+ and change status displays.
+ </entry>
+ </row>
+ <row>
+ <entry>Required On Resolve</entry>
+ <entry>If checked, the field must be filled in on the update issue
+ and change status displays, if the new status is resolved.
+ </entry>
+ </row>
+ <row>
+ <entry>Required On Close</entry>
+ <entry>If checked, the field must be filled in on the update issue
+ and change status displays, if the new status is closed.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>Notes on Display
+ <itemizedlist>
+ <listitem>
+ <para>Be careful not to set both a required attribute and show
+ only on advanced display. It may be possible to trigger a
+ validation error that the user cannot recover from (i.e., field is
+ not filled in).
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+
+ <section>
+ <title>Manage Global Profiles</title>
+
+ <para>This page allows the definition of global profiles
+ accessible to all users of the system. It is similar to the user
+ definition of a profile consisting of Platform, OS and
+ Version.
+ </para>
+ </section>
+
+
+ <section>
+ <title>Manage Configuration</title>
+
+
+ <para>This set of pages control the configuration of the Mantis
+ system. Note that the configuration items displayed may be on a
+ project by project basis.These pages serve two purposes. First,
+ they will display the settings for the particular aspects of the
+ system. If authorized, they will allow a user to change the
+ parameters. They also have settings for what access level is
+ required to change these settings ON A PROJECT basis. In general,
+ this should be left alone, but administrators may want to delegate
+ some of these settings to managers.
+ </para>
+
+ <section>
+
+ <title>Workflow Thresholds</title>
+
+
+ <para>This page covers the adjustment of the settings for many of
+ the workflow related parameters. For most of these, the fields are
+ self explanatory and relate to a similarly named setting in the
+ configuration file. At the right of each row is a selector that
+ allows the administrator to lower the access level required to
+ change the particular parameter.The values changeable on this page
+ are:
+ </para>
+
+ <formalpara><title>Issues</title>
+ <para><informaltable>
+ <tgroup cols="3"><tbody>
+ <row>
+ <entry>Title</entry>
+ <entry>Variable</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Report an Issue</entry>
+ <entry>$g_report_bug_threshold</entry>
+ <entry>threshold to report an issue</entry>
+ </row>
+ <row>
+ <entry>Status to which a new issue is set</entry>
+ <entry>$g_bug_submit_status</entry>
+ <entry>status issue is set to when submitted</entry>
+ </row>
+ <row>
+ <entry>Update an Issue</entry>
+ <entry>$g_update_bug_threshold</entry>
+ <entry>threshold to update an issue</entry>
+ </row>
+ <row>
+ <entry>Allow Issue to be closed on Resolve</entry>
+ <entry>$g_allow_close_immediately</entry>
+ <entry>allow close immediately on resolve</entry>
+ </row>
+ <row>
+ <entry>Allow Reporter to close an issue</entry>
+ <entry>$g_allow_reporter_close</entry>
+ <entry>allow reporter to close issues they reported</entry>
+ </row>
+ <row>
+ <entry>Monitor an issue</entry>
+ <entry>$g_monitor_bug_threshold</entry>
+ <entry>threshold to monitor an issue</entry>
+ </row>
+ <row>
+ <entry>Handle Issue</entry>
+ <entry>$g_handle_bug_threshold</entry>
+ <entry>threshold to handle (be assigned) an issue</entry>
+ </row>
+ <row>
+ <entry>Assign Issue</entry>
+ <entry>$g_update_bug_assign_threshold</entry>
+ <entry>threshold to be in the assign to list</entry>
+ </row>
+ <row>
+ <entry>Move Issue</entry>
+ <entry>$g_move_bug_threshold</entry>
+ <entry>threshold to move an issue to another project. This setting
+ is for all projects.
+ </entry>
+ </row>
+ <row>
+ <entry>Delete Issue</entry>
+ <entry>$g_delete_bug_threshold</entry>
+ <entry>threshold to delete an issue</entry>
+ </row>
+ <row>
+ <entry>Reopen Issue</entry>
+ <entry>$g_reopen_bug_threshold</entry>
+ <entry>threshold to reopen an issue</entry>
+ </row>
+ <row>
+ <entry>Allow reporter to reopen Issue</entry>
+ <entry>$g_allow_reporter_reopen</entry>
+ <entry>allow reporter to reopen issues they reported</entry>
+ </row>
+ <row>
+ <entry>Status to which a reopened Issue is set</entry>
+ <entry>$g_bug_reopen_status</entry>
+ <entry>status issue is set to when reopened</entry>
+ </row>
+ <row>
+ <entry>Resolution to which a reopened Issue is set</entry>
+ <entry>$g_bug_reopen_resolution</entry>
+ <entry>resolution issue is set to when reopened</entry>
+ </row>
+ <row>
+ <entry>Status where an issue is considered resolved</entry>
+ <entry>$g_bug_resolved_status_threshold</entry>
+ <entry>status where bug is resolved</entry>
+ </row>
+ <row>
+ <entry>Status where an issue becomes read-only</entry>
+ <entry>$g_bug_readonly_status_threshold</entry>
+ <entry>status where bug is read-only (see
+ update_readonly_bug_threshold)
+ </entry>
+ </row>
+ <row>
+ <entry>Update readonly issue</entry>
+ <entry>$g_update_readonly_bug_threshold</entry>
+ <entry>threshold to update an issue marked as read-only</entry>
+ </row>
+ <row>
+ <entry>Update Issue Status</entry>
+ <entry>$g_update_bug_status_threshold</entry>
+ <entry>threshold to update an issue's status</entry>
+ </row>
+ <row>
+ <entry>View Private Issues</entry>
+ <entry>$g_private_bug_threshold</entry>
+ <entry>threshold to view a private issue</entry>
+ </row>
+ <row>
+ <entry>Set View Status</entry>
+ <entry>$g_set_view_status_threshold</entry>
+ <entry>threshold to set an issue to Private/Public</entry>
+ </row>
+ <row>
+ <entry>Update View Status</entry>
+ <entry>$g_change_view_status_threshold</entry>
+ <entry>threshold needed to update the view status while updating a
+ bug or a bug note
+ </entry>
+ </row>
+ <row>
+ <entry>Show list of users monitoring issue</entry>
+ <entry>$g_show_monitor_list_threshold</entry>
+ <entry>threshold to see who is monitoring an issue</entry>
+ </row>
+ <row>
+ <entry>Set status on assignment of handler</entry>
+ <entry>$g_auto_set_status_to_assigned</entry>
+ <entry>change status when an issue is assigned</entry>
+ </row>
+ <row>
+ <entry>Status to set auto-assigned issues to</entry>
+ <entry>$g_bug_assigned_status</entry>
+ <entry>status issue is set to when assigned</entry>
+ </row>
+ <row>
+ <entry>Limit reporter's access to their own issues</entry>
+ <entry>$g_limit_reporters</entry>
+ <entry>reporters can see only issues they reported. This setting is
+ for all projects.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable></para>
+ </formalpara>
+
+ <formalpara><title>Notes</title>
+ <para>
+ <informaltable>
+ <tgroup cols="3"><tbody>
+ <row>
+ <entry>Title</entry>
+ <entry>Variable</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Add Notes</entry>
+ <entry>$g_add_bugnote_threshold</entry>
+ <entry>threshold to add a bugnote</entry>
+ </row>
+ <row>
+ <entry>Update Notes</entry>
+ <entry>$g_update_bugnote_threshold</entry>
+ <entry>threshold to edit a bugnote</entry>
+ </row>
+ <row>
+ <entry>Allow users to edit their own bugnotes</entry>
+ <entry>$g_bugnote_allow_user_edit_delete</entry>
+ <entry>can a user edit/delete their own bugnotes</entry>
+ </row>
+ <row>
+ <entry>Delete Note</entry>
+ <entry>$g_delete_bugnote_threshold</entry>
+ <entry>threshold to delete a bugnote</entry>
+ </row>
+ <row>
+ <entry>View private notes</entry>
+ <entry>$g_private_bugnote_threshold</entry>
+ <entry>threshold to view a private bugnote</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable></para>
+ </formalpara>
+
+ <formalpara>
+ <title>Others</title>
+ <para>
+ <informaltable>
+ <tgroup cols="3"><tbody>
+ <row>
+ <entry>View Change Log</entry>
+ <entry>$g_view_changelog_threshold</entry>
+ <entry>threshold to view the changelog</entry>
+ </row>
+ <row>
+ <entry>View Assigned To</entry>
+ <entry>$g_view_handler_threshold</entry>
+ <entry>threshold to see who is handling an issue</entry>
+ </row>
+ <row>
+ <entry>View Issue History</entry>
+ <entry>$g_view_history_threshold</entry>
+ <entry>threshold to view the issue history</entry>
+ </row>
+ <row>
+ <entry>Send Reminders</entry>
+ <entry>$g_bug_reminder_threshold</entry>
+ <entry>threshold to send a reminder</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable></para>
+ </formalpara>
+
+ </section>
+
+ <section>
+ <title>Workflow Transitions</title>
+
+ <para>This page covers the status workflow. For most of these, the
+ fields are self explanatory and relate to a similarly named setting
+ in the configuration file. At the right of each row is a selector
+ that allows the administrator to lower the access level required to
+ change the particular parameter.The values changeable on this page
+ are:
+ </para>
+ <table>
+ <title>Issues</title>
+ <tgroup cols="3"><tbody>
+ <row>
+ <entry>Title</entry>
+ <entry>Variable</entry>
+ <entry>Description</entry>
+ </row>
+ <row>
+ <entry>Status to which a new issue is set</entry>
+ <entry>$g_bug_submit_status</entry>
+ <entry>status issue is set to when submitted</entry>
+ </row>
+ <row>
+ <entry>Status where an issue is considered resolved</entry>
+ <entry>$g_bug_resolved_status_threshold</entry>
+ <entry>status where bug is resolved</entry>
+ </row>
+ <row>
+ <entry>Status to which a reopened Issue is set</entry>
+ <entry>$g_bug_reopen_status</entry>
+ <entry>status issue is set to when reopened</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>
+ The matrix that follows has checkmarks where the transitions are
+ allowed from the status on the left edge to the status listed
+ across the top. This corresponds to the $g_enum_workflow array.At
+ the bottom, there is a list of access levels that are required to
+ change the status to the value listed across the top. This can be
+ used, for instance, to restrict those who can close an issue to a
+ specific level, say a manager. This corresponds to the
+ $g_set_status_threshold array and the $g_report_bug_threshold
+ setting.
+ </para>
+ </section>
+
+
+ <section>
+ <title>Email Notifications</title>
+
+ <para>This page sets the system defaults for sending emails on
+ issue related events.Mantis uses flags and a threshold system to
+ generate emails on events. For each new event, email is sent to:
+ <itemizedlist>
+ <listitem>
+ <para>the reporter</para>
+ </listitem>
+ <listitem>
+ <para>the handler (or Assigned to)</para>
+ </listitem>
+ <listitem>
+ <para>anyone monitoring the bug</para>
+ </listitem>
+ <listitem>
+ <para>anyone who has ever added a bugnote the bug</para>
+ </listitem>
+ <listitem>
+ <para>anyone assigned to the project whose access level matches
+ a range
+ </para>
+ </listitem>
+ </itemizedlist>
+ From this list, those recipients who meet the following criteria
+ are eliminated:
+ <itemizedlist>
+ <listitem>
+ <para>the originator of the change, if $g_email_receive_own is
+ OFF
+ </para>
+ </listitem>
+ <listitem>
+ <para>the recipient either no longer exists, or is
+ disabled
+ </para>
+ </listitem>
+ <listitem>
+ <para>the recipient has turned their email_on_&lt;new
+ status&gt; preference OFF
+ </para>
+ </listitem>
+ <listitem>
+ <para>the recipient has no email address extered</para>
+ </listitem>
+ </itemizedlist>
+ The matrix on this page selects who will receive messages for each
+ of the events listed down the left hand side. The first four
+ columns correspond to the first four points listed above. The next
+ columns correspond to the access levels defined. Note that because
+ a minimum and maximum threshold are used, a discontinuous selection
+ is not allowed.
+ </para>
+ </section>
+ </section>
+ </section>
+
+ <section>
+ <title>Monitor Bug</title>
+
+ <para>The monitor issues feature allows users to subscribe to
+ certain issues and hence get copied on all notification emails that
+ are sent for these issues.Depending on the configuration, sending a
+ reminder to a user about an issue can add this issue to the user's
+ list of monitored bugs.Users who reported the issue or are assigned
+ the issue typically don't need to monitor the issue to get the
+ notifications. This is because by default they get notified on
+ changes related to the issue anyway. However, administrators can
+ change the configuration to disable notifications to reporters or
+ handlers in specific scenarios.
+ </para>
+ </section>
+
+ <section>
+ <title>Reopen Bug</title>
+
+ <para>Re-open bug button is visible in the bug view pages if the
+ user has the appropriate access level and the bug is
+ resolved/closed. Re-opening a bug will allow users to enter a
+ bugnotes for the re-opening reason. The bug will automatically be
+ put into the Feedback status.
+ </para>
+ </section>
+
+