diff options
-rw-r--r-- | Zotlabs/Module/Admin.php | 6 | ||||
-rw-r--r-- | include/nav.php | 20 | ||||
-rwxr-xr-x | include/plugin.php | 16 | ||||
-rw-r--r-- | view/theme/redbasic/css/style.css | 66 | ||||
-rw-r--r-- | view/theme/redbasic/js/redbasic.js | 47 | ||||
-rwxr-xr-x | view/tpl/admin_site.tpl | 1 | ||||
-rwxr-xr-x | view/tpl/nav.tpl | 22 | ||||
-rw-r--r-- | view/tpl/nav_header.tpl | 49 |
8 files changed, 125 insertions, 102 deletions
diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php index 8cc08fd13..1ff9065cd 100644 --- a/Zotlabs/Module/Admin.php +++ b/Zotlabs/Module/Admin.php @@ -264,6 +264,7 @@ class Admin extends \Zotlabs\Web\Controller { $force_publish = ((x($_POST,'publish_all')) ? True : False); $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True); $login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False); + $enable_context_help = ((x($_POST,'enable_context_help')) ? True : False); $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : ''); $no_community_page = !((x($_POST,'no_community_page')) ? True : False); $default_expire_days = ((array_key_exists('default_expire_days',$_POST)) ? intval($_POST['default_expire_days']) : 0); @@ -288,6 +289,7 @@ class Admin extends \Zotlabs\Web\Controller { set_config('system', 'mirror_frontpage', $mirror_frontpage); set_config('system', 'sitename', $sitename); set_config('system', 'login_on_homepage', $login_on_homepage); + set_config('system', 'enable_context_help', $enable_context_help); set_config('system', 'verify_email', $verify_email); set_config('system', 'default_expire_days', $default_expire_days); @@ -453,6 +455,7 @@ class Admin extends \Zotlabs\Web\Controller { $homelogin = get_config('system','login_on_homepage'); + $enable_context_help = get_config('system','enable_context_help'); $t = get_markup_template("admin_site.tpl"); return replace_macros($t, array( @@ -488,7 +491,8 @@ class Admin extends \Zotlabs\Web\Controller { '$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")), '$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")), '$disable_discover_tab' => array('disable_discover_tab', t('Import Public Streams'), $discover_tab, t('Import and allow access to public content pulled from other sites. Warning: this content is unmoderated.')), - '$login_on_homepage' => array('login_on_homepage', t("login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")), + '$login_on_homepage' => array('login_on_homepage', t("Login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")), + '$enable_context_help' => array('enable_context_help', t("Enable context help"),((intval($enable_context_help) === 1 || $enable_context_help === false) ? 1 : 0) , t("Display contextual help for the current page when the help button is pressed.")), '$directory_server' => (($dir_choices) ? array('directory_server', t("Directory Server URL"), get_config('system','directory_server'), t("Default directory server"), $dir_choices) : null), diff --git a/include/nav.php b/include/nav.php index 027ce4a6c..c59aaae37 100644 --- a/include/nav.php +++ b/include/nav.php @@ -150,9 +150,15 @@ EOT; $help_url = z_root() . '/help?f=&cmd=' . App::$cmd; if(! get_config('system','hide_help')) { - require_once('include/help.php'); - $context_help = load_context_help(); - $nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'),'help_nav_btn',$context_help); + $context_help = ''; + $enable_context_help = ((intval(get_config('system','enable_context_help')) === 1 || get_config('system','enable_context_help') === false) ? true : false); + if($enable_context_help === true) { + require_once('include/help.php'); + $context_help = load_context_help(); + //direct directly to /help if $context_help is empty - this can be removed once we have context help for all modules + $enable_context_help = (($context_help) ? true : false); + } + $nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'), 'help_nav_btn', $context_help, $enable_context_help); } if(! UNO) @@ -234,6 +240,12 @@ $powered_by = ''; // $powered_by = '<strong>red<img class="smiley" src="' . z_root() . '/images/rm-16.png" alt="r#" />matrix</strong>'; + $tpl = get_markup_template('nav_header.tpl'); + + App::$page['htmlhead'] .= replace_macros($tpl, array( + '$enable_context_help' => $enable_context_help + )); + $tpl = get_markup_template('nav.tpl'); App::$page['nav'] .= replace_macros($tpl, array( @@ -248,7 +260,7 @@ $powered_by = ''; '$powered_by' => $powered_by, '$help' => t('@name, #tag, ?doc, content'), '$pleasewait' => t('Please wait...') - )); + )); call_hooks('page_header', App::$page['nav']); } diff --git a/include/plugin.php b/include/plugin.php index 29f987e78..80e3ae20e 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -535,8 +535,11 @@ function format_css_if_exists($source) { else $path = theme_include($source[0]); - if($path) - return '<link rel="stylesheet" href="' . script_path() . '/' . $path . '" type="text/css" media="' . $source[1] . '">' . "\r\n"; + if($path) { + $path = script_path() . '/' . $path; + $qstring = ((parse_url($path, PHP_URL_QUERY)) ? '&' : '?') . 'v=' . STD_VERSION; + return '<link rel="stylesheet" href="' . $path . $qstring . '" type="text/css" media="' . $source[1] . '">' . "\r\n"; + } } /* @@ -612,8 +615,11 @@ function format_js_if_exists($source) { $path = $source; else $path = theme_include($source); - if($path) - return '<script src="' . script_path() . '/' . $path . '" ></script>' . "\r\n" ; + if($path) { + $path = script_path() . '/' . $path; + $qstring = ((parse_url($path, PHP_URL_QUERY)) ? '&' : '?') . 'v=' . STD_VERSION; + return '<script src="' . $path . $qstring . '" ></script>' . "\r\n" ; + } } @@ -678,4 +684,4 @@ function folder_exists($folder) // If it exist, check if it's a directory return (($path !== false) && is_dir($path)) ? $path : false; -}
\ No newline at end of file +} diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index 038bffb2f..5b8729111 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -200,6 +200,34 @@ header #banner #logo-text { font-size: 22px; } +/* contextual help */ +.help-content { + background: $comment_item_colour; + color: $font_colour; + position: fixed; + top: -50%; + left: 0px; + width: 100%; + max-height: 50%; + padding: 20px; + /*transition: top 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);*/ + border-bottom: #CCC 1px solid; + overflow: auto; +} + +.help-content-open { + top: 51px; + -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); + -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); + box-shadow: 0px 3px 3px rgba(0,0,0,0.2); + /*transition: top 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);*/ +} + +.help-content dd { + margin-bottom: 1em; +} +/* contextual help end */ + /* footer */ footer { @@ -1675,9 +1703,10 @@ nav .badge.mail-update:hover { #expand-aside, #expand-tabs, -#help-btn { +#help_nav_btn_collapsed { color: $nav_active_icon_colour; padding: 7px 10px; + text-decoration: none; } .nav-tabs.nav-justified { @@ -1895,38 +1924,3 @@ nav .badge.mail-update:hover { .help-searchlist a { font-size: 130%; } - -/* contextual help */ -.help-content { - background: $bgcolour; - color: $font_colour; - position: fixed; - top: -1000px; - left: 0%; - right: 100%; - width: 100%; - height: auto; - padding: 20px; - transition: top 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94); - box-sizing: border-box; - border-bottom: #CCC thin solid; - overflow: auto; -} - -.help-content-open { - top: 50px; - -moz-box-shadow: 0px 3px 3px #ccc; - -webkit-box-shadow: 0px 3px 3px #ccc; - box-shadow: 0px 3px 3px #ccc; -} -main { - top: auto; -} -main.help-content-open { - top: 200px; -} - -.help-content dd { - margin-bottom: 1em; -} -/* contextual help end */ diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js index ccc24d2b3..877bcd840 100644 --- a/view/theme/redbasic/js/redbasic.js +++ b/view/theme/redbasic/js/redbasic.js @@ -67,50 +67,3 @@ function makeFullScreen(full) { $('main').css({'transition': ''}); } } - -/* contextual help */ -$('.help-content').css('top', '-' + $('#help-content').height() + 'px') -$(document).mouseup(function (e) -{ - e.preventDefault; - - var container = $("#help-content"); - - if ((!container.is(e.target) // if the target of the click isn't the container... - && container.has(e.target).length === 0 // ... nor a descendant of the container - && container.hasClass('help-content-open')) - || - ( - ($('#help_nav_btn').is(e.target) || $('#help_nav_btn').has(e.target).length !== 0) - && container.hasClass('help-content-open') - )) { - container.removeClass('help-content-open'); - $('main').removeClass('help-content-open'); - $('main').css('top', 'auto') - } - else if (($('#help_nav_btn').is(e.target) || $('#help_nav_btn').has(e.target).length !== 0) - && !container.hasClass('help-content-open')) { - $('#help-content').addClass('help-content-open'); - $('main').removeClass('help-content-open'); - var mainTop = $('#navbar-collapse-1').height(); - if ($('#navbar-collapse-1').height() < $('#help-content').height()) { - mainTop = $('#help-content').height(); - } - - $('main').css('top', +mainTop + +50 + 'px'); - } - -}); - -var contextualHelpFocus = function (target, openSidePanel) { - if (openSidePanel) { - $("main").addClass('region_1-on'); // Open the side panel to highlight element - } else { - $("main").removeClass('region_1-on'); - } - // Animate the page scroll to the element and then pulse the element to direct attention - $('html,body').animate({scrollTop: $(target).offset().top - $('#navbar-collapse-1').height() - $('#help-content').height() - 50}, 'slow'); - for (i = 0; i < 3; i++) { - $(target).fadeTo('slow', 0.1).fadeTo('slow', 1.0); - } -}
\ No newline at end of file diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl index 54f625e0b..6b8729ee6 100755 --- a/view/tpl/admin_site.tpl +++ b/view/tpl/admin_site.tpl @@ -49,6 +49,7 @@ {{include file="field_input.tpl" field=$frontpage}} {{include file="field_checkbox.tpl" field=$mirror_frontpage}} {{include file="field_checkbox.tpl" field=$login_on_homepage}} + {{include file="field_checkbox.tpl" field=$enable_context_help}} {{if $directory_server}} {{include file="field_select.tpl" field=$directory_server}} {{/if}} diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl index 90d741e96..1c7f8f5b2 100755 --- a/view/tpl/nav.tpl +++ b/view/tpl/nav.tpl @@ -1,4 +1,4 @@ -<div class="container-fluid"> + <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1"> <span class="icon-bar"></span> @@ -11,6 +11,9 @@ <button id="expand-aside" type="button" class="navbar-toggle" data-toggle="offcanvas" data-target="#region_1"> <i class="icon-circle-arrow-right" id="expand-aside-icon"></i> </button> + <a class="navbar-toggle" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}_collapsed"{{if $nav.help.6}} onclick="return false;"{{/if}}> + {{if $nav.help.6}}<i class="icon-caret-down"></i> {{/if}}<i class="icon-question"></i> + </a> {{if $userinfo}} <img class="dropdown-toggle fakelink" data-toggle="dropdown" id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"><span class="caret" id="usermenu-caret"></span> {{if $localuser}} @@ -188,15 +191,16 @@ {{/if}} {{if $nav.help}} - <li class="{{$sel.help}}"> - <a class="{{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="return false;"><i class="icon-question"></i></a> - </li> - - <div id="help-content" class="help-content"> - {{$nav.help.5}} - <p class="pull-right"><a href="{{$nav.help.0}}">Click here for more documentation...</a></p> - </div> + <li class="{{$sel.help}} hidden-xs"> + <a class="{{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}"{{if $nav.help.6}} onclick="return false;"{{/if}}>{{if $nav.help.6}}<i class="icon-caret-down"></i> {{/if}}<i class="icon-question"></i></a> + </li> {{/if}} </ul> </div> </div> + {{if $nav.help.6}} + <div id="help-content" class="help-content"> + {{$nav.help.5}} + <p class="pull-right"><a href="{{$nav.help.0}}">Click here for more documentation...</a></p> + </div> + {{/if}} diff --git a/view/tpl/nav_header.tpl b/view/tpl/nav_header.tpl new file mode 100644 index 000000000..27713b55b --- /dev/null +++ b/view/tpl/nav_header.tpl @@ -0,0 +1,49 @@ +<script> + /* contextual help */ + {{if $enable_context_help}} + $('.help-content').css('top', '-' + $('#help-content').height() + 'px') + $(document).mouseup(function (e) + { + e.preventDefault; + + var container = $("#help-content"); + + if ((!container.is(e.target) // if the target of the click isn't the container... + && container.has(e.target).length === 0 // ... nor a descendant of the container + && container.hasClass('help-content-open')) + || + ( + ($('#help_nav_btn, #help_nav_btn_collapsed').is(e.target) || $('#help_nav_btn, #help_nav_btn_collapsed').has(e.target).length !== 0) + && container.hasClass('help-content-open') + )) { + container.removeClass('help-content-open'); + $('main').removeClass('help-content-open'); + $('main').css('top', '') + } + else if (($('#help_nav_btn, #help_nav_btn_collapsed').is(e.target) || $('#help_nav_btn, #help_nav_btn_collapsed').has(e.target).length !== 0) + && !container.hasClass('help-content-open')) { + $('#help-content').addClass('help-content-open'); + $('main').removeClass('help-content-open'); + var mainTop = $('#navbar-collapse-1').height(); + if ($('#navbar-collapse-1').outerHeight(true) < $('#help-content').height()) { + mainTop = $('#help-content').outerHeight(true); + } + + $('main').css('top', mainTop + 'px'); + } + + }); + {{/if}} + var contextualHelpFocus = function (target, openSidePanel) { + if (openSidePanel) { + $("main").addClass('region_1-on'); // Open the side panel to highlight element + } else { + $("main").removeClass('region_1-on'); + } + // Animate the page scroll to the element and then pulse the element to direct attention + $('html,body').animate({scrollTop: $(target).offset().top - $('#navbar-collapse-1').height() - $('#help-content').height() - 50}, 'slow'); + for (i = 0; i < 3; i++) { + $(target).fadeTo('slow', 0.1).fadeTo('slow', 1.0); + } + } +</script> |