ORB

Documentation

Thank you for purchasing ORB. We hope that the development of your new project based on our theme will bring you joy and happiness. We are also hope that you appreciate our work and will continue to purchase our products in future. Please do not forget to rate us in downloads section on Themeforest

This template — is the original author's vision of how the admin dashboard should look like. Nice combination of colors, unobtrusive transitions, responsive design, code culture and unique features — that is all our ORB. Please note that ORB made for professionals who engage in creation CRM and CMS back-ends and require programming skills and deep (medium) knowledge in JS, CSS3, HTML and PHP. If you a novice in web-development ORB could be great starting point to code diggin and copy-paste style studying.

  • Parent
    • AJAX — Contains Demo PHP Files for Widget AJAX Demo (Widget Page)
    • Fonts — Contains Icon Fonts used in ORB
    • CSS — Contains main CSS file and customization CSS styles
      • Vendors CSS — All Vendors CSS
    • Images — All Images
    • JS — Contains All JS Files
      • Vendors JS — All Vendors JS (Described Below)

This is a ORB page layout. Logically page bodyconsist from two horizontal blocks - top navigation and main content wrapper. Main wrapper consist from three vertical blocks – left main site navigation, central content and userbar, that is hidden by default, so called off-canvas block. Let have closer look under the hood.

Live Layout

1. Top Navigation

Top Navigation — contains. At left: logo block, menu trigger, notification, inbox dropdown. At right lock screen button, settings dropdown, fullscreen trigger and userbar trigger.

<!--Navigation-->
<nav class="main-header clearfix" role="navigation">
//Here comes the contents of top navbar//
</nav>
<!--/Navigation--> 

2. Main Wrapper

As we stated before Main Wrapper consist of three blocks. Here they are speaking HTML language. As you see — there is no any difficulties. Everything simple.

<!--MainWrapper-->
<div class="main-wrap">

<!-- /Offcanvas user menu--> 
<aside class="user-menu"> 
</aside>
<!-- /Offcanvas user menu--> 

<!--Main Menu-->
<div class="responsive-admin-menu">
</div>
<!--/MainMenu-->

<!--Content Wrapper-->
<div class="content-wrapper">
</div>
<!--/Content Wrapper -->

</div>
<!--/MainWrapper--> 
Layout
Attentive buyer possible note the strange div that wrap all body content <div class="smooth-overflow"> What is it? That div solve the problem of laggy scrolling on IOS devices.

3. Content Block

Content Block from top to bottom consist from horizontal dropdown block with dummy data - sparklines charts, breadcrumb, page header and content block itself.

<!--Content Wrapper-->
<div class="content-wrapper"> 
	<div class="row"> 
	<!--Main Row--> 
		<!--Horisontal Dropdown-->
		<nav class="cbp-hsmenu-wrapper" id="cbp-hsmenu-wrapper">
		//Contents of horizontal dropdown//
		</nav>

	    <!--Breadcrumb-->          
		<div class="breadcrumb clearfix">
		//Contents of breadcrumbs//
		</div>
		<!--/Breadcrumb-->
            
		<div class="page-header">
		<h1>Header<small>Example</small></h1>
		</div>
            
		<!-- Widget Row Start grid -->
		<div class="row" id="powerwidgets"> 
		<div class="col-md-12 bootstrap-grid"> 
		//Main Content - Widgets, Panels...
		</div>
		<!-- /Inner Row Col-md-12 -->       
		</div>
		<!-- /Widgets Row End Grid--> 
            
</div>
<!-- / Content Wrapper --> 

Shortlist of Cascading StyleSheets used in ORB Theme

CSS Purpose Required for
Styles style.css Main StyleSheet File Contains all styles for all pages
Entypo entypo.css Entypo Icon Font Displaying Entypo Icons
FontAwesome font-awesome.css FontAwesome Icon Font Displaying Font Awesome Icons
Bootstrap bootstrap.min.css Main Bootstrap CSS File Displaying BS Elements, Grid, etc.
Megamenu orbmm.css New in 1.1 ORB MegaMenu Displaying MegaMenu

Vendors CSS

Animate animate.css CSS3 Transitions and Animations Modal Animations, Popover Animations, any other animations you want
Datatables datatables.css Styles for Datatables Displaying Datatables
FullCalendar fullcalendar.css Fullcalendar CSS File Displaying Calendar
Steps Wizard jquery.steps.css Steps Form Wizard Steps Form Wizard
Summernote summernote.css and summernote-bs3.css Summernote Editor Summernote WYSIWYG Editor
X-Editable address.css, bootstrap-editable.css, demo-bs3.css, select2.css, select2.css, select2-bootstrap.css, typeahead.js-bootstrap.css Styles for correctly displaing styles using in X-Editable Form X-Editables Due to performance reasons we include these sryleshits only at admin-forms-plugins.html page

Predefined Colors

Blue styles-blue.css Styling in Blue Change visual style of ORB
Brown styles-brown.css Styling in Brown Change visual style of ORB
Cherry styles-cherry.css Styling in Cherry Change visual style of ORB
Green styles-green.css Styling in Green Change visual style of ORB
Khaki styles-khaki.css Styling in Khaki Change visual style of ORB
Purple styles-purple Styling in Purple Change visual style of ORB
To change default color style overwrite contents the default style with styles from color you want to apply

ORB Power Widgets is a heart of ORB. It is a powerwidgets.js and powerwidgets.min.js Widgets give user flexibility and full control over content organization. Generally, we have already take a look on ORB Widgets, their data-attributes and options. By now — take a look on advanced widget usage and options. Here is Javascript from scripts.js that covers all parametres of widget usage.

if ($('#powerwidgets').length) {
$('#powerwidgets').powerWidgets({
   grid: '.bootstrap-grid',
   widgets: '.powerwidget',
   localStorage: true,
   deleteSettingsKey: '#deletesettingskey-options',
   settingsKeyLabel: 'Reset settings?',
   deletePositionKey: '#deletepositionkey-options',
   positionKeyLabel: 'Reset position?',
   sortable: true,
   buttonsHidden: false,
   toggleButton: true,
   toggleClass: 'fa fa-chevron-circle-up | fa fa-chevron-circle-down',
   toggleSpeed: 200,
   onToggle: function () {},
   deleteButton: true,
   deleteClass: 'fa fa-times-circle',
   onDelete: function (widget) {
      $('#delete-widget').modal(); // shows the modal
      $(widget).addClass('deletethiswidget'); // ads an indicator class to find the widget
   },
   editButton: true,
   editPlaceholder: '.powerwidget-editbox',
   editClass: 'fa fa-cog | fa fa-cog',
   editSpeed: 200,
   onEdit: function () {},
   fullscreenButton: true,
   fullscreenClass: 'fa fa-arrows-alt | fa fa-arrows-alt',
   fullscreenDiff: 3,
   onFullscreen: function () {},
   buttonOrder: '%refresh% %delete% %edit% %fullscreen% %toggle%',
   opacity: 1.0,
   dragHandle: '> header',
   placeholderClass: 'powerwidget-placeholder',
   indicator: true,
   indicatorTime: 600,
   ajax: true,
   timestampPlaceholder: '.powerwidget-timestamp',
   timestampFormat: 'Last update: %m%/%d%/%y% %h%:%i%:%s%',
   refreshButton: true,
   refreshButtonClass: 'fa fa-refresh',
   labelError: 'Sorry but there was a error:',
   labelUpdated: 'Last Update:',
   labelRefresh: 'Refresh',
   labelDelete: 'Delete widget:',
   afterLoad: function () {},
   rtl: false,
   onChange: function () {},
   onSave: function () {}
});
      }

      // Custom way to delete widgets.
      $('#trigger-deletewidget').click(function (e) {
$('.deletethiswidget').remove(); // delete widget
$('#delete-widget').modal('hide'); // close the modal
      });
      $('#trigger-deletewidget-reset').click(function (e) {
$('body').find('.deletethiswidget').removeClass('deletethiswidget'); // cancel so remove indicator class
      });


      // Empty all local storage. (demo not needed)
      $('.empty-local-storage').click(function (e) {
var $m = $('#confirm_replacer');
if ($m.length && typeof $.fn.modal === 'function') {
   $('#bootconfirm_confirm', $m).off(clickEvent).on(clickEvent, function (e) {
      localStorage.clear();
      location.reload();
      $m.modal().hide();
   });
   $('.modal-title', $m).text("Clear all localStorage");
   $m.modal();
} else {
   var cls = confirm("Clear all localStorage?");
   if (cls && localStorage) {
      localStorage.clear();
      location.reload();
   }
}
e.preventDefault();
      });
          

Powerwidget plugin options

ORB Widgets give you full controls over widgets and portlets (on widgets basis). You can change buttons styles, dragHandle, icons, set toggle and edit speed, change buttons order and much more. See options below.

Plugin options Type Default Desctription
grid string section This is the class or element that are used for the sorting (if option sortable is set to true) of a widget. ORB uses .bootstrap-grid class.
widgets string .powerwidget Widgets class.
localStorage boolean true Everyting is saved in to the local storage, but you can turn this off.
deleteSettingsKey string You can delete the local storage settings key(if you are using local storage). The settings key is used to store things, style and title. This must be an unique(just for that page) Id or class for example: '#thelink'.
settingsKeyLabel string Reset settings? Set the text for the 'deleteSettingsKey' confirm dialog.
deletePositionKey string You can delete the local storage position key(if you are using local storage). The positions key is used to store the position of the widgets. This must be an unique(just for that page) Id or class for example: '#thelink'.
settingsKeyLabel string Reset positions? Set the text for the 'deletePositionKey' confirm dialog.
sortable boolean true You can allow widgets to be sortable.
buttonsHidden boolean false If you are using action button, you can set them to visible, or hidden. If you choose hidden(value true) the buttons will be showen if you hover over the widgets header.
toggleButton boolean true Show a toggle button.
toggleClass string fa fa-chevron-circle-up | fa fa-chevron-circle-down The button class, active and non-active state. The two classes must be seperated by a '|' in order to work.
toggleSpeed number(integer) 200 The speed of the collapsable effect.
onToggle function function(){} Callback function that runs if you toggle a widget.
deleteButton boolean true Show a delete button.
deleteClass string fa fa-times-circle The button class.
onDelete function function(){} Callback function that runs once the delete button has been clicked. We also add custom way to delete the widget.
editButton boolean true Show a edit button.
editPlaceholder string .powerwidget-editbox The class of the edit box wrapper, which contains the title input and styling setters(see the markup demo above for an example).
editClass string fa fa-cog | fa fa-cog The edit class, active and non-active state. The two classes must be seperated by a '|' in order to work.
editSpeed number(integer) 200 The speed of the edit effect.
onEdit function function(){} Callback function that runs once you close the edit box.
fullscreenButton boolean true Show a fullscreen button.
fullscreenClass string fa fa-arrows-alt | fa fa-arrows-alt The fullscreen class, active and non-active state. The two classes must be seperated by a '|' in order to work.
fullscreenDiff number(integer) 3 If you change the layout fo the widget, you can use this to make sure the that fullscreen is fullscreen(if needed).
onfullscreen function function(){} Callback function that runs once you go to fullscreen mode.
buttonOrder string %refresh% %delete% %edit% %fullscreen% %toggle% You can change the order of the buttons
opacity number(float) 1.0 The opacity of the widgets once you drag them.
dragHandle string > header Choose the element that you want to use as an drag handle. The widgets main class is the parents class.
placeholderClass string powerwidget-placeholder This is the class thats used for the placeholder.
indicator boolean true Shows a animated image if there has been made a change in the widget(AJAX, deleting, toggle...).
indicatorTime number(integer) 600 The speed of the indicator image(animated loader image). This is in milliseconds.
ajax boolean true Allow widgets to use ajax.
loadingLabel string loading... Placeholder text at the start of every page load.
timestampPlaceholder string .powerwidget-timestamp Show a timestamp form the last update. Only use classes.
timestampFormat string Last update: %m%/%d%/%y% %h%:%i%:%s% Choose the output format.
refreshButton boolean true Allow users to refresh the ajax content manually.
refreshClass string fa fa-refresh The class of the refresh button.
labelError string Sorry but there was a error: Label of the ajax error(label + error code(s)).
labelUpdated string Last Update: Label for the timestamp, which will be showen every time it has been updated.
labelRefresh string Refresh Label for the refresh button, this button will allow u to refresh the ajax content.
afterLoad function function(){} Callback function that runs if the widget loads any ajax content.
rtl boolean false Need rtl, use this. (Under constraction)
onChange function function(){} Callback function that runs if the position of the widgets get changed in the DOM.
onSave function onSave: function(){} Callback function that runs if the data gets saved into the localStorage(you can turn off the localStorage and it still works). You can use this function to store with AJAX your data in a database.

Update plugin and add new powerwidgets

Use the update method to transform newly added widgets into powerwidgets.

$('#id').powerWdigets('update');//will update all of the new widgets on the page
$('#id').powerWdigets('update', '#id');//will only update the new widgets inside this ID

Adding custom buttons to a widget

How to add custom buttons to the widgets. Add the code after the plugin call. You need to change the widgets id, the button class (someclass) and the icon class (bookmark). The second block is a basic click event with

// add button
$('#widgetsid').find('.powerwidget-ctrls').append('');

// run the custom action
$('body').on('click', '.someclass',function(){

    if($(this).children().hasClass('fa fa-bookmark')){
        $(this).children().removeClass('fa fa-bookmark').addClass('fa fa-folder');
        
        // your code goes here(start)
    }else{
        $(this).children().removeClass('fa fa-folder').addClass('fa fa-bookmark');
        
        // tour code goes here(end)
    }
    
    // code goes here(on every button click)
});

Globally And Per-Call Overridable Options

This plugin has per-call(as the example above shows) and globally overridable options. Globally options can be used to override the default options, this is best used if you want to override the plugin options by default, this will prevent any issues with the plugin, as you dont have to change any thing in the plugin core it self. Usage: $.fn.pluginName.key = 'value';

Generally, ORB is creating with neutral color palette, and if you wish you can use all variety of colors. Hovewer, we define some main colors that is compartible with ORB and looks great in every app used in ORB. Please note, that these colors are repeatable — if you want, you can change them globally using search/replace feature of your favorite code editor.

Pink

#f87aa0

Blue

#5bc0de

DarkBlue

#3b8dbd

Green

#82b964

GreenAlt

#58b868

Yellow

#f4cc13

Yellow Muted

#fffbdb

Purple

#a7609a

Grey

#888888

Cold Grey

#595f66

Red

#d24d33

Dark Red

#993838

Black

#000000

Marine

#00a9ae

GreenAcid

#ccd600

Orange

#f0ad4e

As you seen that palette will cover all your possible dreams. Using of colors helpers or shortcodes will make your work quicker, accurate and even fun. Combining background colors and text colors you may reach interesting results and effects. Please see example below to ensure how easily you can manipulate colors shortcodes to get unique look for your blocks and text.

W
orem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia fermentum metus at posuere. Vivamus purus dolor, vulputate sed nisi nec, sagittis sagittis ligula. Duis in lacus feugiat, malesuada quam eu, fringilla tortor. Nulla facilisi. Suspendisse dignissim euismod turpis, eget gravida sapien posuere id. Pellentesque auctor mi libero, sollicitudin faucibus augue feugiat sit amet. Aliquam sit amet metus orci. Donec a sodales turpis. Donec pharetra faucibus eleifend. Integer feugiat dapibus commodo. Nullam malesuada ac arcu nec rutrum. Wow! Purple Label!
A
orem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia fermentum metus at posuere. Vivamus purus dolor, vulputate sed nisi nec, sagittis sagittis ligula. Duis in lacus feugiat, malesuada quam eu, fringilla tortor. Nulla facilisi. Suspendisse dignissim euismod turpis, eget gravida sapien posuere id. Pellentesque auctor mi libero, sollicitudin faucibus augue feugiat sit amet. Aliquam sit amet metus orci. Donec a sodales turpis. Donec pharetra faucibus eleifend. Integer feugiat dapibus commodo. Nullam malesuada ac arcu nec rutrum. Wow! Purple Label!
<div class="bg-green padding-20px text-white">...</div>
<div class="dropcap bg-cold-grey text-white>...</div>
<span class="label bg-purple">...</span>

The exactly the same situation when you style widgets and portles. There are two ways of styling widget — change default widget handler header and change background color of whole widget — in that case you get styled portlet. For both cases we get predefined styles. Let have closer look. This is a default ORB Power Widget.

WidgetSo Grey and Boring

Sample Widget
<!-- New widget -->
<div class="powerwidget" id="chat" data-widget-editbutton="false">
<header>
<h2>Widget<small>So Grey and Boring</small></h2>
</header>
<div class="inner-spacer">Sample Widget</div>
</div>
<!-- End Widget -->

To get handle header styled just add color you wish. Find class="powerwidget" and add blue class. Yes! Let it be blue. You get now class="powerwidget blue". Full list of available colors see above. In main css file all styles for styling widget header in Colors Helpers Chapter, together with other color styles.

WidgetBlue and Nice

Sample Widget
<!-- New widget -->
<div class="powerwidget blue" id="chat" data-widget-editbutton="false">
<header>
<h2>Widget<small>Blue and Nice</small></h2>
</header>
<div class="inner-spacer">Sample Widget</div>
</div>
<!-- End Widget -->

To get widget looks like portlet (as shown on Portlets Page) we need to get styled not only header but powerwidget inner-spacer class. ORB has it shortcoded too. To get widget become blue portlet simple add .powerwidget-as-portlet-blue class to your widget. Full list of available colors see above. In main css file all styles for styling widget header in Colors Helpers Chapter, together with other color styles.

WidgetBlue and Nice

Sample Widget As a Portlet Blue
<!-- New widget -->
<div class="powerwidget powerwidget-as-portlet-blue" id="chat" data-widget-editbutton="false">
<header>
<h2>Widget<small>Blue and Nice</small></h2>
</header>
<div class="inner-spacer">Sample Widget</div>
</div>
<!-- End Widget -->
You need to know one more thing about styling portlets. When creating new portlet keep mind about proper padding and spacing inside portlet. It is pure aesthetic question we get rid from top padding from .inner-spacer class, see .powerwidget-as-portlet .inner-spacer { padding-top: 0 } in portlets section in main CSS file. If we have only one component inside portlet — it will be good to remove padding at all with .powerwidget-as-portlet .inner-spacer.nopadding class.
For a full information about styling and handling widgets go to Powerwidgets page of the theme.

All scripts initialization settings from all scripts engaged in ORB stored in mainscripts.js file. This file also contains scripts and settings for all applications used on all page in theme. Like HTML and CSS ORB JavaScript is also hardly commented. So, you easily find code you need without any difficulties. Please note — we include only minified versions of apps in ORB archive. To get full versions please visit app homepage. Here is table of all scripts and apps used in ORB Theme.

Folder/Script Purpose HomePage Scripts.js pages affected
Animation animation.js This scripts overrides BS 3 core Modal Class and add animation possibility to BS popovers. Script allows to add smooth animations from animate.css to BS Modals and popovers via data-attributes. Animate.css no admin-animation.html
Bootstrap-progress-bar bootstrap-progressbar.min Bootstrap-progressbar is a jQuery plugin which extends the basic twitter-bootstrap progressbar. It provides the ability to animate the progressbar by adding Javascript in combination with the preexisting css transitions. Additionally you can display the current progress information in the bar or get the value via callback. BS ProgressBar yes admin-components.html
Bootstrap-Hover-dropdown New in 1.1 A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience. BS Hover Dropdown no admin-megamenu.html
jQuery gNap New in 1.1 gMap is a lightweight jQuery plugin that helps you embed Google Maps into your website. With less than 2 KB in size (minified and gzipped) it is very flexible and highly customizable. jQuery gNap yes Everywhere there Google Maps are used
Chartjs chart.min.js Easy, object oriented client side graphs for designers and geeks. ChartJS yes admin-portlets.html, index.html, admin-chart-others.html
Classie classie.js A library agnostic extensible DOM utility. Nothing else. Classie no All Pages

Datatables

       
Datatables jquery.dataTables.min.js DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, and will add advanced interaction controls to any HTML table. DataTables yes admin-datatables.html
Datatables ColVis colvis.extras.js and dataTables.colVis.js

ColVis adds a button to the toolbars around DataTables which gives the end user of the table the ability to dynamically change the visibility of the columns in the table - dynamically show and hide columns in a table, ability to exclude columns from being either hidden or shown. We use that plugin in #table3 Example

ColVis Plugin yes admin-datatables.html
Datatables Bootstrap jquery.dataTables-bootstrap.js To have DataTables styled by Bootstrap, we need do, as well as including the DataTables core Javascript file on our page, is include the DataTables / Bootstrap CSS and Javascript integration files. These files simply alter the DataTables defaults, such as class names to use the names used by Bootstrap, and add styling information specific to DataTables. Datatables BS Styling no admin-datatables.html
Easing jquery.easing.1.3.min.js JQuery Easing Plugin. The only one reason we use that old good because it's required for EasyPie Chart to operate JQuery Easing no index.html
Easypie jquery.easypiechart.min.js Lightweight plugin to render simple, animated and retina optimized pie charts EasyPie yes index.html
Fitvids jquery.fitvids.js A lightweight, really the smallest one, easy-to-use jQuery plugin for fluid width video embeds. FitVids yes admin-portlets.html
Flotchart jquery.flot.min.js (including pluginsjquery.flot.axislabels.js, jquery.flot.categories.min.js, jquery.flot.pie.min.js, jquery.flot.resize.min.js, jquery.flot.selection.min.js, jquery.flot.stack.min.js, jquery.flot.time.min.js, jquery.flot-tooltip.min.js) Flot is a powerfull (may be even the most powerfull) pure JavaScript plotting library for jQuery, with a focus on simple usage, attractive looks and many many interactive features. Generally Flots is a standard for creating Dashboards. (There is no need to give description to every plugin. The name of plugin speaks itself.) FlotCharts yes admin-chart.html
justGaugejustgage.1.0.1.min New in 1.1.3 JustGage is a handy JavaScript plugin for generating and animating nice & clean gauges. It is based on Raphaël library for vector drawing JustGauge noInline Used admin-index-2.html

Forms

     
Jquery Form jquery.form.min.js

The jQuery Form Plugin used for ORB Forms allows to easily and unobtrusively upgrade HTML forms to use AJAX. The main methods, ajaxForm and ajaxSubmit, gather information from the form element to determine how to manage the submit process. Both of these methods support numerous options which allows you to have full control over how the data is submitted.

No special markup is needed, just a normal form. Submitting a form with AJAX doesn't get any easier than this!

jQuery Form Plugin yes admin-forms.html, admin-login.html, admin-lock.html...
Jquery MaskedInput jquery.maskedinput.min.js This is a masked input plugin for the jQuery javascript library. It allows a user to more easily enter fixed width input where you would like them to enter the data in a certain format (dates,phone numbers, etc). Masked Input Plugin yes admin-forms.html, admin-login.html, admin-lock.html...
Jquery PlaceHolder jquery.placeholder.min.js Tiny plugin for old browsers to support placeholder attribute. jQuery Placeholder Polyfill yes admin-forms.html, admin-login.html, admin-lock.html...
Jquery Validate jquery.validate.min.js The jQuery Validation Plugin provides drop-in validation for forms, while making all kinds of customizations to fit application really easy. jQuery Validation Plugin yes admin-forms.html, admin-login.html, admin-lock.html...
Fullcalendar fullcalendar.min.js and gcal.js FullCalendar is a jQuery plugin that provides a full-sized, drag & drop calendar like the one below. It uses AJAX to fetch events on-the-fly for each month and is easily configured to use your own feed format (an extension is provided for Google Calendar). It is visually customizable and exposes hooks for user-triggered events (like clicking or dragging an event). FullCalendar yes admin-events.html, index.html
Fullscreen screenfull.min.js Simple wrapper for cross-browser usage of the JavaScript Fullscreen API, which lets you bring the page or any element into fullscreen. Smoothens out the browser implementation differences, so you don't have too. FullScreen yes All Pages
Horizontal cbpHorizontalSlideOutMenu.js Requires modernizr.custom.js and classie.js A horizontal slide out menu with a grid-like layout for the submenu you can see at the top of content part on every theme page, with media query examples for smaller devices. Horizontal Slide Out Menu no All pages
ion.rangeSlider.min ion.rangeSlider.min.js Ion.RangeSlider — cool, comfortable and easily customizable range slider that supports events and public methods, has flexible settings, can be completely altered with CSS. We use own style for that plugin called ORB
ion.rangeSlider yes admin-events.html, index.html
jQuery and jQueryUIjquery.min.js and jquery-ui.min.js jQuery and jQueryUI theirselves jQuery no All Pages
jQuery Steps jquery.steps.min.js jQuery Steps is a smart UI component which allows you to easily create wizard-like interfaces. This plugin groups content into sections for a more structured and orderly page view. jQuery Steps yes admin-forms-wizard.html
jQuery.knob jquery.knob.js Nice, downward compatible, touchable, jQuery input dial. jQuery Knob yes admin-forms-plugins.html
Modernizr modernizr.custom.js Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser. Modernizr   All Pages
Morris Chart morris.min.js Simply the one of the best looking Charts. Requires raphael-min.js to operate. Morris Chart yes admin-charts-morris.html
Nanoscroller jquery.nanoscroller.min.js jQuery plugin that offers a simplistic way of implementing Mac OS X Lion-styled scrollbars for ORB. We use Nanoscroller in main header dropdowns-menus, chat and other parts of the theme. NanoScrollerJS yes All Pages
jQuery Nestable jquery.nestable.js Just Simple Nestable Lists Nestable yes admin-nestable-lists.html
Powerwidgets powerwidgets.min.js ORB Power widgets — is a unique and extremely powerfull tool for organizing workspace in Dashboard. Sortable, easy-to-edit responsive blocks bring real joy and happyness. This is a premium plugin. ORB Widgets yes All Pages
Raphael raphael-min.js

Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. It uses the SVG W3C Recommendation and VML as a base for creating graphics. This means every graphical object you create is also a DOM object, so you can attach JavaScript event handlers or modify them later. Raphaël’s goal is to provide an adapter that will make drawing vector art compatible cross-browser and easy. This library needs for Morris Charts

Raphaël no admin-chart-morris.html
Skycons skycons.js Skycons is a set of ten animated weather glyphs, procedurally generated by JavaScript using the HTML5 canvas tag. They're easy to use, and pretty lightweight. SkyCons inline admin-portlets.html
Sparklines jquery.sparkline.min.js This jQuery plugin generates sparklines (small inline charts) directly in the browser using data supplied either inline in the HTML, or via javascript. SparkLines yes All pages
Summernote summernote.min.js Summernote is a super simple WYSIWYG Editor based on Bootstrap Summernote yes admin-inbox.html
ToDos todos.js Simple scripts for creating ToDo prototype   no All pages
Vector Map jquery.vmap.min.js Includes jquery.vmap.europe.js, jquery.vmap.world.js, jquery.vmap.russia.js, jquery.vmap.sampledata.js, jquery.vmap.usa.js Just Beautifull Vector Maps — heavily modified version of jVectorMap. jQvMap yes admin-maps-vector.html, index.html, admin-portlets.html
x-editable Consist of address.js, bootstrap-editable.min.js, demo.js, demo-mock.js, jquery.mockjax.js, moment.min.js, select2.js, typeahead.js, typeaheadjs.js This library allows you to create editable elements on your page. X-Editables no admin-forms-plugins.html
Please pay attention, that for every function is scripts.js file we check for function existence. It helps prevent browser console warnings and errors. Moreover that method guarantee faster page load — we load only needed functions invoked in page.

Animation

Bootstrap Modal and Popover Animation — one of the feature of ORB. As we stated before ORB has modified Bootstrap Modal Class within animation.jsfile to get animations work. As you seen on this page modal has two animated effects — before modal window open (incoming) and after modal closed or executed (outgoing). So we need to apply these animation to modal. Modified Modal Class allows to do it via data-attrbutes options.

roll In | Out Animation
<!-- The button -->
<a href="#myModal1" role="button" class="btn" data-toggle="modal">Button Label</a>
<!-- The modal -->
<div id="myModal1" class="modal" data-easein="fadeInLeft" data-easeout="fadeOutLeft"
tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
	<div class="modal-dialog">
	<div class="modal-content">
		<div class="modal-header">
		  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
		  <h3 id="myModalLabel">Modal header 1</h3>
		</div>
		<div class="modal-body">
		  <p>One fine body…</p>
		</div>
		<div class="modal-footer">
		  <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
		  <button class="btn btn-primary">Save changes</button>
		</div>
	</div>
	</div>
</div>
Please note that we have to disable default BS modal fade behaviour to animation work. So, do not add fade class to modal.

The main lesson you should learn from example above is data-attributes data-easein="fadeInLeft" and data-easeout="fadeOutLeft", which are incoming and outgoing animations. The list of predefined and balanced modal animations you can found here. To experiment you can create your own animations pair using transitions in animate.css

animation.js also extend default Bootstrap Popover behaviour to make possible to add animations to that kind of elements.

flipInX
<a title="Popover on left" data-animation="false" data-easein="flipInX" href="#" class="btn btn-success" 
rel="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">flipInX</a>
Please note we've to include the data-animation="false" to disable the default fade animation in Bootstrap Popovers.

ORB offers a set of beautiful form elements with large amount of javascript features: validation, masking, modals, ajax submit, datepickers. It allows you to create forms of any complexity and for any needs: login, registration, contacts, review, order, comment, checkout, etc.

HTML Structure

The main HTML structure of the form consists of fieldset, legend, footer and sections. Each section contains label, form element and optional note. Here is the basic structure of registration form.

Registration form
<form action="" class="orb-form">
  <header>Registration form</header>
  <fieldset>
    <section>
      <label class="input"> <i class="icon-append fa fa-user"></i>
        <input type="text" name="username" placeholder="Username">
      </label>
    </section>
    <section>
      <label class="input"> <i class="icon-append fa fa-envelope-o"></i>
        <input type="text" name="email" placeholder="Email address">
      </label>
    </section>
    <section>
      <label class="input"> <i class="icon-append fa fa-lock"></i>
        <input type="password" name="password" placeholder="Password">
      </label>
    </section>
    <section>
      <label class="input"> <i class="icon-append fa fa-lock"></i>
        <input type="password" name="passwordConfirm" placeholder="Confirm password">
      </label>
    </section>
    <fieldset>
    </fieldset>
    <div class="row">
      <section class="col col-6">
        <label class="input">
          <input type="text" name="firstmane" placeholder="First name">
        </label>
      </section>
      <section class="col col-6">
        <label class="input">
          <input type="text" name="lastname" placeholder="Last name">
        </label>
      </section>
    </div>
    <section>
      <label class="select">
        <select name="gender">
          <option value="0" selected disabled>Gender</option>
          <option value="1">Male</option>
          <option value="2">Female</option>
          <option value="3">Other</option>
        </select>
        <i></i> </label>
    </section>
    <section>
      <label class="checkbox">
        <input type="checkbox" name="subscription" id="subscription">
        <i></i>I want to receive news and  special offers</label>
      <label class="checkbox">
        <input type="checkbox" name="terms" id="terms">
        <i></i>I agree with the Terms and Conditions</label>
    </section>
  </fieldset>
  <footer>
    <button type="submit" class="btn btn-danger">Submit</button>
  </footer>
</form>

Icons

ORB uses 3 set of icons — Glyphicons, FontAwesome, Entypo. Each set has almost the same markup format. For example, to use one of Font Awesome Icons you need to add tag with 3 classes. First class defines icon position: icon-append or icon-prepend. Other classes define appearance of the icon. For example, if we need appended user icon we get the following markup:

<section>
  <label class="input"> <i class="icon-append fa fa-user"></i>
    <input type="text">
  </label>
</section>

Placeholders

You can use placeholders for inputs and textareas. Just specify placeholder attribute like in demo below.

<section>
  <label class="input">
    <input type="text" placeholder="Placeholder text">
  </label>
</section>
<section>
  <label class="textarea">
    <textarea rows="3" placeholder="Placeholder text"></textarea>
  </label>
</section>

Also there is a possibility to add placeholder for select element. To do that we need to disable first element.

<section>
  <label class="select">
    <select>
      <option value="0" selected disabled>Gender</option>
      <option value="1">Male</option>
      <option value="2">Female</option>
      <option value="3">Other</option>
    </select>
    <i></i> </label>
</section>

Elements States

Like in Bootstrap, Each element of ORB Forms has 3 additional states: error, success and disabled. To use one of them just add state-error, state-success or state-disabled class to element container.

<section>
  <label class="input state-error">
    <input type="text">
  </label>
</section>
<section>
  <label class="textarea state-success">
    <textarea rows="3" placeholder="Placeholder text"></textarea>
  </label>
</section>

When using disabled state don't forget to add disabled attribute to form element.

<section>
  <label class="input state-error">
    <input type="text" disabled>
  </label>
</section>

Client Side Validation and Masking

As we stated before in Javascript section we use jQuery plugin jquery.maskedinput.min.js for masked input and jquery.validate.min.js for form validation. Back-end for both plugins in scripts.js you can find under the Forms Chapter

Don't forget that we include 3 PHP Ecample Files for Server Side Form Processing — demo-checkout-process.php, demo-order-process.php and demo-review-process.php. To see them in action please visit that demo page.

Since version 1.1 ORB is bundled with MegaMenu, that allows you to create very complex menus with tons of elements inside like — Maps, Images, Videos, different kinds of lists, forms and more. MegaMenu is totally built on Bootstrap and use common BS dropdown behaviour, when dropdowns open by clicking on main links of the menu. The main thing you should know about MegaMenu that you can override that Bootstrap behaviour — and open dropdowns on mouse hover events. You should do the following two steps:

  1. Include bootstrap-hover-dropdown.js file right afrer Bootstrap core JavaScript
  2. Initialize hover-dropdown using Java Script below
$('.dropdown-toggle').dropdownHover().dropdown();
$(document).on('click', '.orbmm .dropdown-menu', function(e) {
e.stopPropagation()
We want to warn you from using dropdown on mouse hover in MegaMenu. There are two reasons of this warning. First of all — usability reason. Mouse hover effects involve "pulling" and "jerking" of content inside menu, especially on small devices. The second one — is technical reason. Some kind of contents inside require extra milliseconds to be rendered (not loaded). This is especially important if you load cross-site includes like iframes with videos or maps. Also — we reserve function that keep open dropdown if mouse clicks on items inside dropdows. We use special class named .keep_open to get this kind of behaviour.

ORB FrontEnd — is a set of well designed pages which will help you create typical corporate website. It comes bundled with new scripts, styles and apps, but the main idea and philosophy is the same with ORB Dashboard.

The main you should keep in mind that FE uses styles.css from Dashboard with all the consequences. Do not remove style.css file from CSS folder of the site root. Please also pay attention that some apps (like jCart, for processors, captcha) require server environment for proper work. So if you test FE on local machine and want to get all ORB snacks working you should create install virtual local server.

Scripts and Apps

Generally Front End uses the same scripts as in Dashboard, but it also have scripts, that not included in Dashboard. Let's have look on them.

Folder/Script Purpose HomePage Scripts.js pages affected
prettyPhoto jquery.prettyPhoto.js

prettyPhoto is a jQuery lightbox clone. Not only does it support images, it also support for videos, flash, YouTube, iframes and ajax. It’s a full blown media lightbox.

prettyPhoto inline gallery.html
Gritter gritter.js A small growl-like notification plugin for jQuery. We use that plugin to show notification in Cart. Please pay attention that we slightly modified (made more simple) that plugin for FE. Gritter inline product.html, products.html
QuotesRotator jquery.cbpQTRotator.js Simple automatic Quotes Rotator Quotes Rotator Yes services.html, about.html
jCart localstorage-jcart.js Premium! $16 Value!JCart localStorage is a simple shopping cart application that uses HTML 5 localStorage, a new web technology that replaces the classic cookie, giving a much better data security. Please note — we are hardly modified that plugin for ORB FE to correnspond ORB quality, look and design. localStorage JCart no product.html, products.html, checkout.html
CountDown jquery.countdown.js Great CountDown plugin with tons of options from Keith Wood. To change countdown target date you should find this code in countdown.html austDay = new Date(austDay.getFullYear() + 1, 12 - 1, 31); That code means our target date is 31 December of current year. Here is another example – First man in space anniversary wil be at 12 April 2013. Our code will be the next: austDay = new Date(austDay.getFullYear() + 0, 4 - 1, 12); For more explanation and description how countdown working please visit Keith Wood Official page. jQuery Countdown inline countdown.html
Isotope jquery.isotope.min.js Plugin for filtering and sorting "magical layouts" jQuery Isotope Yes gallery.html, portfolio.html

PHP

ORB FrontEnd bundled with working dynamic pages for process incoming via page data. We have alrady talked about these file above. For example FE has save.php file for storing inputed emails in MySQL Database. It is a very basic approach. Open and fill all the data to save.php file: $db = mysql_connect("localhost", "database_name", "database_password"); mysql_select_db("database_name", $db);. Go further. Find base.sql file for creation table in your MySQL Database. To setup MySQL database to save inputed emails please Run PHPMyAdmin or any other server software for work with MySQL. Choose your database, and import base.sql to your database.

JCart

Generally you should know one thing before startplaying with localStorage jCart — this is main values, stored in beginning of localstorage-jcart.js file.

cartVat = 0.24; //Your Country VAT Rate
cartCurrency = "$"; //Your Currency
productPage = ""; // complete this with your .php product page
imgPath = "images/cart/"; // complete this with yout images path 

The example of sample PHP product page can be found below. It can be something like that:

<h2>your product id is:
<?php
    if (isset($_GET['productid'])) {
        echo $_GET['productid'];
    }
?>
</h2>

06.08.2014 — Version 1.2

  1. Front End Released
  2. Minor CSS Bugs Fixed

20.06.2014 — Version 1.1.3

  1. Widgets are now fully working on mobile devices
  2. JustGauge Library Added
  3. Fresh look of dashboard page and one new variant of Dashboard added
  4. CSS Updated and reorginized
  5. JS Updated
  6. New FlotChart graphs added

11.06.2014 — Version 1.1.1

  1. Bootstrap Tabs and Carousels in MegaMenu
  2. Go To Top Button on all pages

09.06.2014 — Version 1.1

  1. ORB is now bundled with Horizontal MegaMenu
  2. All Google Maps Instances is now using gMap plugin. That means that scripts.js is now has rewrited Google Maps chapter. The main thing you should remember that Google Maps is now initialized via .map-container class.
  3. Minor CSS Bugs Fixed (Totally enchanced left-menu hover behaviour at medium size devices).
  4. Minor JavaScript Bugs Fixed
  5. Fixed PowerWidget Controls Touch Events on Mobile Devices

23.05.2014 — Initial Release

We'll update ORB till the end of the time. As a respected buyer you'll get unlimited updates with bugfixes and new features for free forever.

Have answers, comment, bug reports — connect me via form. (You should be logged to Themeforest)