### Mapping Services to Channels
- There are a number of methods to mapping available services,
- mapping uses the following dialog.
+There are a number of methods to mapping available services, mapping
+uses the following dialog.
- 
+
#### Mapping All

The [Map services to channels](class/service_mapper) will now be displayed with **all** services
-checked - feel free to make changes. Once you're happy with the selection press the "Map services" button, you will
+checked - feel free to make changes. Once you're happy with the
+selection, press the "Map services" button, you will
then be taken to the [Service Mapper](status_service_mapper) tab which
will begin mapping the selected services to channels.
The [Map services to channels](class/service_mapper) dialog will
now be displayed with the **selected** services checked - feel free to make
-changes. Once you're happy with the selection press the
+changes. Once you're happy with the selection, press the
"Map services" button, you will then be taken to the
[Service Mapper](status_service_mapper) tab which will begin mapping
the selected services to channels.
**Tip**: By default Tvheadend will only show a small selection of
-available services - you can increase this by using the paging
-selector at the bottom right of the page.
+available services - you can increase this by using the
+[paging toolbar](webui_general) at the bottom right of the page.
#### Mapping/Removing a Service to/from an Existing Channel
You can map/remove a service to/from an existing channel by doing the following:
-**1)** Find the desired service from within the services grid.
-
-If you have a lot of services you may want to use filtering to limit the
+**1.** Find the desired service from within the services grid. If you
+have a lot of services you may want to use [filtering](webui_general) to limit the
number of grid entries.
-
-
-**Tip**: Remember to remove the filter when you're finished (untick the
+**Tip**: Remember to remove the filter when you're finished (uncheck the
check box next to the "Filters" option).
-**2)** Double click on the channel field, a drop down listing of all defined
+**2.** Double click on the channel field, a drop down listing of all defined
channels will appear, check/uncheck the check box next to the channel
you'd like to associate/disassociate the service with.

-**3)** Press the *[Save]* button from the menu bar, and you're done!
+**3.** Press the *[Save]* button from the menu bar, and you're done!
---
The interface is made up of nested tabs, so similar functions are grouped
together (e.g. all configuration items at the top level, then all configuration
-items for a particular topic are below that). However, be aware that not all tabs are
-shown by default, some tabs are hidden depending on the current [view level](#view-level).
+items for a particular topic are below that).
+
+
+
+However, be aware that not all tabs are
+shown by default, some are hidden depending on the current [view level](#view-level).
Each tab is then typically laid out with a menu bar that provides access
to Add/Save/Edit-type functions, and a grid like a spreadsheet below that.
The *View level* drop-down/button - next to the Help button,
displays/hides the more advanced features. By default it is set to Basic.
+Depending on [configuration](class/config), the view-level drop-down is
+not always visible.
+
+
View level | Description
----------------------|-------------------------------------------------
**Advanced** | Display the more advanced tabs/items.
**Expert** | Show all tabs/items.
-Depending on configuration, the view-level drop-down is not always visible.
+#### Paging Toolbar
+
+The paging toolbar - at the bottom of most grids - offers many useful
+tools.
+
+
+
+* General paging functions ```|< < > >|``` allow you to quickly move
+between data sets.
+
+* Lists the number of current and maximum (per page) rows displayed, followed by
+the total number of items available.
+
+* The *Per page* drop-down allows you to control how many rows are
+displayed within the grid. By default, this is set to 50. Note that
+increasing the number of rows displayed can affect performance.
+
+* The refresh icon allows you to refresh the currently-displayed rows.
+
+* The *Auto refresh* check-box allows the interface to automatically
+refresh the rows for you, every 30 seconds.
### Displaying and Manipulating Columns
* **Re-size** the columns by dragging the very edges of the column header as
required.
-* A cookie is used to remember your column/filtering preferences. Clearing
- your cookies will reset the interface to default.
+Note, a cookie is used to remember your column/filtering preferences. Clearing
+your cookies will reset the interface to default.
+
+
### Adding, Editing and More
* Rows (in the grid) are multi-selectable, so you can carry out certain actions on
--- /dev/null
+Note, you may have to disable this option for certain languages/charsets - Hebrew, etc.
--- /dev/null
+Note, you may have to disable this option for certain languages/charsets - Hebrew, etc.
--- /dev/null
+Note, you may have to disable this option for certain languages/charsets - Hebrew, etc.
PROP_DOC(pathname)
PROP_DOC(cache_scheme)
PROP_DOC(runningstate)
+PROP_DOC(dvrconfig_whitespace)
+PROP_DOC(dvrconfig_unsafe)
+PROP_DOC(dvrconfig_windows)
const idclass_t dvr_config_class = {
.ic_class = "dvrconfig",
.desc = N_("All characters that could possibly "
"cause problems for filenaming will be replaced "
"with an underscore. See Help for details."),
+ .doc = prop_doc_dvrconfig_unsafe,
.off = offsetof(dvr_config_t, dvr_clean_title),
.opts = PO_EXPERT,
.group = 6,
.id = "whitespace-in-title",
.name = N_("Replace whitespace in title with '-'"),
.desc = N_("Replaces all whitespace in the title with '-'."),
+ .doc = prop_doc_dvrconfig_whitespace,
.off = offsetof(dvr_config_t, dvr_whitespace_in_title),
.opts = PO_EXPERT,
.group = 6,
.desc = N_("Characters not supported in Windows filenames "
"(e.g. for an SMB/CIFS share) will be stripped out "
"or converted."),
+ .doc = prop_doc_dvrconfig_windows,
.off = offsetof(dvr_config_t, dvr_windows_compatible_filenames),
.opts = PO_ADVANCED,
.group = 6,