==========
Parameters
==========

After clicking on the **Parameters** button the Parameters Dialog will appear. 
It has two tabs **General** and **Interface**.

General tab
===========

.. image:: /admin/_images/parameters.png
	:align: center
	:alt: Project parameters dialog

On the General tab, you can specify general parameters of the project:

* **Production** - if this checkbox is checked, you will not be able to change the 
  project database in Application Builder.

* **Safe mode** - if safe mode is enabled, authentication  is needed for user to 
  work in the system (See 
  :doc:`Users </admin/users>`
  and 
  :doc:`Roles </admin/roles>`
  ). 
  
* **Debugging** - if this checkbox is checked, the Werkzeug library debugger will
  be invoked when an error on the server occurs.

* **Language** - use it to open Language Dialog. See 
  :doc:`Language support </admin/language_support>`

* **Persistent connection** - if this checkbox is checked the application creates 
  a connection pool otherwise a connection is created before executing the sql query.
  
* **Connection pool size** — the size of the server database connection pool. 

* **Compressed JS, CSS files** - If this button is checked the server returns 
  compressed *js* and *css* files when *index.html* page is loaded.

* **All JS modules in a single file** - If this checkbox is unchecked, the 
  application will generate a javascript file in the project *js* folder for 
  every item in the :doc:`task tree </programming/task_tree>`, that has code in
  its Client module, with the name *item_name.js*, where *item_name* is the name 
  of an item. 
  Otherwise, the application will generate a javascript file with the name 
  *task_name.js*, where *task_name* is the name of the project 
  :doc:`task </admin/task>` (for example *demo.js*), that will contain javascript
  code of all items, except items, whose **External js module** checkbox in the 
  :doc:`Item Editor Dialog </admin/items/item_editor_dialog>`
  is checked (separate files will be created for them). 
  
* **Dynamic JS modules loading** - If this checkbox is unchecked and the 
  application generates more than one javascript file, only file named 
  *task_name.js* will be loaded when application is run. All other files must be 
  loaded dynamically. See :doc:`Working with modules </programming/modules>`.
  
* **History item** - to specify item, that will store change history, see 
  :doc:`Saving audit trail/change history made by users </admin/saving_history>`

* **Session timeout (seconds)** - number of second of inactivity that is allowed 
  before the session expires.

* **Session ignore change ip** - if false, the session is only valid when 
  it is accessed from the same ip address that created the session.
  
* **Max content length (MB)** - use it to limit the total content length of the
  request to the server, in megabytes.
  
* **Import delay (seconds)** - if set the application will wait the number of 
  seconds set in the parameter before changing the project dataset while 
  :doc:`importing project metadata <metadata_file>`
  , 
  otherwise it waits for 5 minutes or until all previous request 
  to the server in the current process will be processed.
  
* **Delete reports after (hours)** - if a value is specified the generated 
  reports that are located in the static/reports folder will be deleted after
  specified number of hours have passed.
  
* **Upload file extensions** - is an :doc:`Accept string </admin/accept_string>`
  that defines the types of files that could be uploaded to the server by the
  task :doc:`upload </refs/client/task/m_upload>` method. Uploading files that 
  do not match these types is prohibited.
  
* **Version** — specify the version of the project here.

.. note::
   When **Connection pool size** or **Persistent connection** parameters are 
   changed, the server application must be restarted for changes to take effect.


Interface tab
=============

.. image:: /admin/_images/parameters_interface.png
	:align: center
	:alt: parameters_interface.png
	
On the Interface tab, you can specify interface parameters of the project:	

* **Theme** - use this parameter to select the theme of the project from one of
  predefined themes

* **Small font** - if this button is checked, the default font size will be 12px,
  otherwise it is 14px

* **Full width** - if this button is checked the project will fill the page width,
  without left and right margins

* **Display forms in tabs** - if this button is checked, the forms will be opened 
  tabs

