Please use the following info and demo's example to use Onpage Help in your own app.
It still may be confusing though, so if you need further help with that, just get in touch with me.
1. Overview
Onpage Help is a feature of Ace admin template that allows users
to select an element or a section of a page and see more info about it without leaving the page.
For an example of this you can refer to
Ace demo
and click the black button on right of page.
You can also use this feature in your app to provide help and instructions for users.
2. Usage
Help content can be retrieved from your own help files and it will be displayed inside a modal box in your
application.
To use onpage help you should build a custom Javascript file using JS builder tool and include
onpage help feature or you can directly include
assets/js/ace/elements.onpage-help.js file.
To initiate help you can call:
jQuery(function($) {
var help = new Onpage_Help({/* for available options, see below */});
$('#some-button').on('click', function() {
help.toggle();
//or help.enable()
//or help.disable()
})
})
Your application page should have special comments for special sections that have help material:
Some elements are here which will show a help dialog when clicked!
The help content is retrieved dynamically from a remote file that you specify.
That file should have similar comments like above:
Documentation and help content for "manage/user" are here inside some file.
There should also be an element with data-id="#manage/user" attribute
which is used to specify modal box's title.
If no such element exists, its possible parent is looked up and if available its title is used for the modal box!
If inside one documentation(help) page, there are several sections to be displayed in your application,
you should use "."(dot) character to separate them:
Manage user documentation is here
..
..
..
Delete user documentation is here
When user clicks on a help section to see its content, the name of section is passed
to "section_url" function in which you should return the url which contains relevant help material.
Please see next section for more info.
If you have files with HTML, CSS, etc code that you want to show inside the modal help dialog,
you can wrap the path inside a code tag with .open-file class
and data-open-file="css" attribute:
path/to/some/file.js
3. Options
There are several options when initiating help.
icon_1 Optional icon displayed inside a help section.
Default is 'fa fa-question'
icon_2 Optional icon displayed on top left of a help section.
Default is 'fa fa-lightbulb-o'
include_all
Include all elements between two comments
or just the first and last one(might be slightly faster in some cases).
Default is true (include all):
base Optional path to documentation folder which you can use later in following callbacks to return content url.
section_url Callback function which return a url to load the help content of a section.
For example when a help section which refers to "basics/sidebar.compact" is requested, you can use this
function to return the url to load which contains help content:
'section_url': function(section_name) {
//From Ace Demo's example
//according to a section_name such as `basics/navbar.toggle` return the file url which contains help content
section_name = section_name || '';
//for example convert section_name=`basic/navbar.layout.brand` to `basic/navbar`
//because in Ace's documentation files 'basic/navbar.layout.brand' section is inside `basic/navbar.html` file
var url = section_name.replace(/\..*$/g, '');
var parts = url.split('/');
if(parts.length == 1) {
//for example convert `changes` to `changes/index.html`
if(url.length == 0) url = 'intro';//or convert `empty string` to `intro/index.html`
url = url + '/index.html';
}
else if(parts.length > 1) {
//for example convert `basics/navbar.layout` to `basics/navbar.html`
url = url + '.html';
}
return this.settings.base + '/docs/sections/' + url;
}
file_url Similar to above callback. This function is used when a file (which contains code snippets) is to be loaded.
img_url Similar to above callbacks. When inserting images into DOM, the url may need to be updated.
code_highlight Used for syntax highlighting code snippets.
Currently if Rainbow.js or Prism.js libraries are available, they will be used for highlighting.
before_enable Optional callback to make some changes before help is enabled.
For example in Ace's demo, when help is enabled, we unfix navbar, sidebar, etc,
because when an element is fixed or is inside a fixed parent,
it will need a fixed help box above it and it becomes unnecessarily complex.
after_enable Optional callback to make some changes after help is enabled
before_disable Optional callback to make some changes before help is disabled
after_disable Optional callback to make some changes after help is disabled.
For example in Ace's demo, we restore fixed state of previously unfixed navbar, etc.
add_panels Separate & wrap help content inside panels like image below.
Default is true.
panel_content_selector Use this selector to find and separate contents and wrap them inside panels
panel_content_title Use this selector to find the title for each panel. Should come before relevant 'panel_content_selector'
4. Example
For an example of using Onpage Help in your application, you can see
Ace's demo pages
The code that initiates help is inside
assets/js/ace/ace.onpage-help.js
and has comments and explanations.
For Ace's demo there is also an extra style file which is
assets/css/ace.onpage-help.css.
It is used for styling the black help button and you don't need it.
Also, "Rainbow.js" files are include for syntax highlighting.
You don't need them if your help content doesn't make use of it.
The help content is retrieved from docs/sections folder.
Inside Ace's demo, help is initiated when "#help" is appended to url and
a black button on right side of page is shown which enables/disables help.
You should use your own approach.
Perhaps a button inside navbar or sidebar which enables or disables help.