* [Features](features)
Getting Started
+
* [Before you begin (concepts)](before_begin)
* [Install hardware](install_hardware)
* [Install Tvheadend](install_tvheadend)
- [Auto-recording (Autorecs)](class/dvrautorec)
- [Time-based Recording (Timers)](class/dvrtimerec)
-Configuration Guide
+* Configuration
-* General
+ - General
+ * [Base](class/config)
+ * [Image Cache](class/imagecache)
+ * [SAT>IP Server](class/satip_server)
- - [Base](class/config)
- - [Image Cache](class/imagecache)
- - [SAT>IP Server](class/satip_server)
+ - Users
-* Access Configuration (Users)
+ * [Access Entries](class/access)
+ * [Passwords](class/passwd)
+ * [IP Address Block List](class/ipblocking)
- - [Access Entries](class/access)
- - [Passwords](class/passwd)
- - [IP Address Block List](class/ipblocking)
+ - DVB Inputs
-* DVB Inputs
+ * [TV Adapters](tv_adapters)
+ * [Networks](class/mpegts_network)
+ * [Muxes](class/mpegts_mux)
+ * [Services](class/mpegts_service)
+ * [Mux Schedulers](class/mpegts_mux_sched)
- - [TV Adapters](tv_adapters)
- - [Networks](class/mpegts_network)
- - [Muxes](class/mpegts_mux)
- - [Services](class/mpegts_service)
- - [Mux Schedulers](class/mpegts_mux_sched)
+ - Channel / EPG
-* Channel / EPG
+ * [Channels](class/channel)
+ * [Channel Tags](class/channeltag)
+ * [Bouquets](class/bouquet)
+ * [EPG Grabber Channels](class/epggrab_channel)
+ * [EPG Grabber](class/epggrab)
+ * [EPG Grabber Modules](class/epggrab_mod)
+ - [OTA Module](class/epggrab_mod_ota)
+ - [Internal PyEPG](class/epggrab_mod_int_pyepg)
+ - [Internal XMLTV](class/epggrab_mod_int_xmltv)
+ - [External PyEPG](class/epggrab_mod_ext_pyepg)
+ - [External XMLTV](class/epggrab_mod_ext_xmltv)
- - [Channels](class/channel)
- - [Channel Tags](class/channeltag)
- - [Bouquets](class/bouquet)
- - [EPG Grabber Channels](class/epggrab_channel)
- - [EPG Grabber](class/epggrab)
- - [EPG Grabber Modules](class/epggrab_mod)
- - [OTA Module](class/epggrab_mod_ota)
- - [Internal PyEPG](class/epggrab_mod_int_pyepg)
- - [Internal XMLTV](class/epggrab_mod_int_xmltv)
- - [External PyEPG](class/epggrab_mod_ext_pyepg)
- - [External XMLTV](class/epggrab_mod_ext_xmltv)
+ - Stream
-* Stream
+ * Stream Profiles
- - Stream Profiles
- - [HTSP Profile](class/profile-htsp)
- - [MPEG-TS Pass-thru Profile](class/profile-mpegts)
- - [Matroska Profile](class/profile-matroska)
- - [MPEG-TS/libav Profile](class/profile-libav-mpegts)
- - [Matroska/libav Profile](class/profile-libav-matroska)
- - [MP4/libav Profile](class/profile-libav-mp4)
- - [Transcode Profile](class/profile-transcode)
- - [Video Stream Filters](class/esfilter_video)
- - [Audio Stream Filters](class/esfilter_audio)
- - [Teletext Stream Filters](class/esfilter_teletext)
- - [Subtitle Stream Filters](class/esfilter_subtit)
- - [CA Stream Filters](class/esfilter_ca)
- - [Other Stream Filters](class/esfilter_other)
+ - [HTSP Profile](class/profile-htsp)
+ - [MPEG-TS Pass-thru Profile](class/profile-mpegts)
+ - [Matroska Profile](class/profile-matroska)
+ - [MPEG-TS/libav Profile](class/profile-libav-mpegts)
+ - [Matroska/libav Profile](class/profile-libav-matroska)
+ - [MP4/libav Profile](class/profile-libav-mp4)
+ - [Transcode Profile](class/profile-transcode)
+ * [Video Stream Filters](class/esfilter_video)
+ * [Audio Stream Filters](class/esfilter_audio)
+ * [Teletext Stream Filters](class/esfilter_teletext)
+ * [Subtitle Stream Filters](class/esfilter_subtit)
+ * [CA Stream Filters](class/esfilter_ca)
+ * [Other Stream Filters](class/esfilter_other)
-* Recording
+ - Recording
- - [Digital Video Recorder Profiles](class/dvrconfig)
- - [Timeshift](class/timeshift)
+ * [Digital Video Recorder Profiles](class/dvrconfig)
+ * [Timeshift](class/timeshift)
-* Conditional Access (CA)
+ - Conditional Access (CA)
- - [CAPMT (Linux Network DVBAPI)](class/caclient_capmt)
- - [Code word client (newcamd)](class/caclient_cwc)
- - [DES constant code word client](class/caclient_ccw_des)
- - [AES constant code word client](class/caclient_ccw_aes)
+ * [CAPMT (Linux Network DVBAPI)](class/caclient_capmt)
+ * [Code word client (newcamd)](class/caclient_cwc)
+ * [DES constant code word client](class/caclient_ccw_des)
+ * [AES constant code word client](class/caclient_ccw_aes)
-* [Debugging](class/tvhlog_conf)
+ - [Debugging](class/tvhlog_conf)
-Web Status Tab
+ - Status
-* [Stream](status_stream)
-* [Subscriptions](status_subscriptions)
-* [Connections](status_connections)
-* [Server Mapper](status_service_mapper)
+ * [Stream](status_stream)
+ * [Subscriptions](status_subscriptions)
+ * [Connections](status_connections)
+ * [Server Mapper](status_service_mapper)
+
+ - [About](webui_about)
Appendices
- [Appendix 4 - Updating this documentation](doc_update)
- [Appendix 5 - Markdown Cribsheet](markdown_cribsheet)
-[About](about)
+[About](doc_about)
const idclass_t access_entry_class = {
.ic_class = "access",
- .ic_caption = N_("Access Configuration - Access Entries"),
+ .ic_caption = N_("Users - Access Entries"),
.ic_event = "access",
.ic_perm_def = ACCESS_ADMIN,
.ic_doc = tvh_doc_access_entry_class,
const idclass_t passwd_entry_class = {
.ic_class = "passwd",
- .ic_caption = N_("Access Configuration - Passwords"),
+ .ic_caption = N_("Users - Passwords"),
.ic_event = "passwd",
.ic_perm_def = ACCESS_ADMIN,
.ic_doc = tvh_doc_passwd_class,
const idclass_t ipblock_entry_class = {
.ic_class = "ipblocking",
- .ic_caption = N_("Access Configuration - IP Blocking"),
+ .ic_caption = N_("Users - IP Blocking"),
.ic_event = "ipblocking",
.ic_perm_def = ACCESS_ADMIN,
.ic_doc = tvh_doc_ipblocking_class,
var helpfailuremsg = function() {
Ext.MessageBox.show({
title:_('Error'),
- msg: _('There was a problem displaying the help page!') + '<br>' +
- _('This usually means there is no help available or the document couldn\'t be loaded.'),
+ msg: _('There was a problem displaying the Help!') + '<br>' +
+ _('Please check Tvheadend is running and try again.'),
buttons: Ext.Msg.OK,
icon: Ext.MessageBox.ERROR,
});
}
+
+ var helppagefail = function() {
+ title = _('Not Available');
+ msg = _('There is no documentation associated with the Help button pressed, or there was an problem loading the page.\n\n') +
+ _('Please take a look at the other Help pages (Table of Contents). If you still can\'t find what you\'re ') +
+ _('looking for please see the [Wiki](http://tvheadend.org/projects/tvheadend/wiki) ') +
+ _('or join the [IRC channel on freenode](https://kiwiirc.com/client/chat.freenode.net/?nick=tvhhelp|?#hts).');
+
+ // Fake the result.
+ result = [];
+ result['responseText'] = "## " + title + '\n\n' + msg;
+
+ // Load the TOC.
+ if (!tvheadend.docs_toc) {
+ Ext.Ajax.request({
+ url: 'markdown/toc',
+ success: function(result_toc) {
+ tvheadend.docs_toc = parse(result_toc.responseText);
+ fcn(result);
+ },
+ failure: helpfailuremsg,
+ });
+ }
+ fcn(result);
+ }
Ext.Ajax.request({
url: 'markdown/' + pagename,
fcn(result);
}
},
- failure: helpfailuremsg,
+ failure: helppagefail,
});
};