From: Mark Clarkstone Date: Thu, 3 Nov 2016 17:24:45 +0000 (+0000) Subject: mdhelp: clean up the toc (again) mdhelp: add help doc for the about tab (webui_about... X-Git-Tag: v4.2.1~225 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3456fd1972b3bcfd050b7acbfc74802d2beda86f;p=thirdparty%2Ftvheadend.git mdhelp: clean up the toc (again) mdhelp: add help doc for the about tab (webui_about) and rename the old about page to doc_about mdhelp: replace "Access Configuration" text with "Users" in the docs and class captions so that it matches with the interface mdhelp: when there is no doc associated with a Help button rather than displaying a dialog (that the user has to dismiss) show the Help window instead, only display the dialog when the toc fails to load mdhelp: remove old dvr file --- diff --git a/docs/markdown/about.md b/docs/markdown/doc_about.md similarity index 100% rename from docs/markdown/about.md rename to docs/markdown/doc_about.md diff --git a/docs/markdown/dvr.md b/docs/markdown/dvr.md deleted file mode 100644 index 4a0b5ac61..000000000 --- a/docs/markdown/dvr.md +++ /dev/null @@ -1,5 +0,0 @@ -##Digital Video Recorder - -inc/dvr - -dvrentry diff --git a/docs/markdown/toc.md b/docs/markdown/toc.md index d08984408..ad979caf3 100644 --- a/docs/markdown/toc.md +++ b/docs/markdown/toc.md @@ -6,6 +6,7 @@ * [Features](features) Getting Started + * [Before you begin (concepts)](before_begin) * [Install hardware](install_hardware) * [Install Tvheadend](install_tvheadend) @@ -26,79 +27,81 @@ Web Interface Guide - [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 @@ -108,4 +111,4 @@ Appendices - [Appendix 4 - Updating this documentation](doc_update) - [Appendix 5 - Markdown Cribsheet](markdown_cribsheet) -[About](about) +[About](doc_about) diff --git a/docs/markdown/webui_about.md b/docs/markdown/webui_about.md new file mode 100644 index 000000000..79a62083b --- /dev/null +++ b/docs/markdown/webui_about.md @@ -0,0 +1,8 @@ +##About + +This page displays general information about the current Tvheadend +version. + +The build arguments/options used during compilation can be seen by +clicking the _Toggle details_ link (only visible to users with admin +rights). diff --git a/src/access.c b/src/access.c index ae89e0192..e59af8563 100644 --- a/src/access.c +++ b/src/access.c @@ -1372,7 +1372,7 @@ PROP_DOC(streaming_profile) 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, @@ -1816,7 +1816,7 @@ CLASS_DOC(passwd) 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, @@ -1969,7 +1969,7 @@ CLASS_DOC(ipblocking) 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, diff --git a/src/webui/static/app/tvheadend.js b/src/webui/static/app/tvheadend.js index 6b352a6ab..73e4510a2 100644 --- a/src/webui/static/app/tvheadend.js +++ b/src/webui/static/app/tvheadend.js @@ -236,12 +236,37 @@ tvheadend.mdhelp = function(pagename) { var helpfailuremsg = function() { Ext.MessageBox.show({ title:_('Error'), - msg: _('There was a problem displaying the help page!') + '
' + - _('This usually means there is no help available or the document couldn\'t be loaded.'), + msg: _('There was a problem displaying the Help!') + '
' + + _('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, @@ -259,7 +284,7 @@ tvheadend.mdhelp = function(pagename) { fcn(result); } }, - failure: helpfailuremsg, + failure: helppagefail, }); };