.box-body, > .box-footer, > form >.box-body, > form > .box-footer");c.hasClass("collapsed-box")?(a.children(":first").removeClass(b.icons.open).addClass(b.icons.collapse),d.slideDown(b.animationSpeed,function(){c.removeClass("collapsed-box")})):(a.children(":first").removeClass(b.icons.collapse).addClass(b.icons.open),d.slideUp(b.animationSpeed,function(){c.addClass("collapsed-box")}))},remove:function(a){var b=a.parents(".box").first();b.slideUp(this.animationSpeed)}}}if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");$.AdminLTE={},$.AdminLTE.options={navbarMenuSlimscroll:!0,navbarMenuSlimscrollWidth:"3px",navbarMenuHeight:"200px",animationSpeed:500,sidebarToggleSelector:"[data-toggle='offcanvas']",sidebarPushMenu:!0,sidebarSlimScroll:!0,sidebarExpandOnHover:!1,enableBoxRefresh:!0,enableBSToppltip:!0,BSTooltipSelector:"[data-toggle='tooltip']",enableFastclick:!1,enableControlSidebar:!0,controlSidebarOptions:{toggleBtnSelector:"[data-toggle='control-sidebar']",selector:".control-sidebar",slide:!0},enableBoxWidget:!0,boxWidgetOptions:{boxWidgetIcons:{collapse:"fa-minus",open:"fa-plus",remove:"fa-times"},boxWidgetSelectors:{remove:'[data-widget="remove"]',collapse:'[data-widget="collapse"]'}},directChat:{enable:!0,contactToggleSelector:'[data-widget="chat-pane-toggle"]'},colors:{lightBlue:"#3c8dbc",red:"#f56954",green:"#00a65a",aqua:"#00c0ef",yellow:"#f39c12",blue:"#0073b7",navy:"#001F3F",teal:"#39CCCC",olive:"#3D9970",lime:"#01FF70",orange:"#FF851B",fuchsia:"#F012BE",purple:"#8E24AA",maroon:"#D81B60",black:"#222222",gray:"#d2d6de"},screenSizes:{xs:480,sm:768,md:992,lg:1200}},$(function(){"use strict";$("body").removeClass("hold-transition"),"undefined"!=typeof AdminLTEOptions&&$.extend(!0,$.AdminLTE.options,AdminLTEOptions);var a=$.AdminLTE.options;_init(),$.AdminLTE.layout.activate(),$.AdminLTE.tree(".sidebar"),a.enableControlSidebar&&$.AdminLTE.controlSidebar.activate(),a.navbarMenuSlimscroll&&"undefined"!=typeof $.fn.slimscroll&&$(".navbar .menu").slimscroll({height:a.navbarMenuHeight,alwaysVisible:!1,size:a.navbarMenuSlimscrollWidth}).css("width","100%"),a.sidebarPushMenu&&$.AdminLTE.pushMenu.activate(a.sidebarToggleSelector),a.enableBSToppltip&&$("body").tooltip({selector:a.BSTooltipSelector}),a.enableBoxWidget&&$.AdminLTE.boxWidget.activate(),a.enableFastclick&&"undefined"!=typeof FastClick&&FastClick.attach(document.body),a.directChat.enable&&$(document).on("click",a.directChat.contactToggleSelector,function(){var a=$(this).parents(".direct-chat").first();a.toggleClass("direct-chat-contacts-open")}),$('.btn-group[data-toggle="btn-toggle"]').each(function(){var a=$(this);$(this).find(".btn").on("click",function(b){a.find(".btn.active").removeClass("active"),$(this).addClass("active"),b.preventDefault()})})}),function(a){"use strict";a.fn.boxRefresh=function(b){function c(a){a.append(f),e.onLoadStart.call(a)}function d(a){a.find(f).remove(),e.onLoadDone.call(a)}var e=a.extend({trigger:".refresh-btn",source:"",onLoadStart:function(a){return a},onLoadDone:function(a){return a}},b),f=a('');return this.each(function(){if(""===e.source)return void(window.console&&window.console.log("Please specify a source first - boxRefresh()"));var b=a(this),f=b.find(e.trigger).first();f.on("click",function(a){a.preventDefault(),c(b),b.find(".box-body").load(e.source,function(){d(b)})})})}}(jQuery),function(a){"use strict";a.fn.activateBox=function(){a.AdminLTE.boxWidget.activate(this)},a.fn.toggleBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.collapse,this);a.AdminLTE.boxWidget.collapse(b)},a.fn.removeBox=function(){var b=a(a.AdminLTE.boxWidget.selectors.remove,this);a.AdminLTE.boxWidget.remove(b)}}(jQuery),function(a){"use strict";a.fn.todolist=function(b){var c=a.extend({onCheck:function(a){return a},onUncheck:function(a){return a}},b);return this.each(function(){"undefined"!=typeof a.fn.iCheck?(a("input",this).on("ifChecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onCheck.call(b)}),a("input",this).on("ifUnchecked",function(){var b=a(this).parents("li").first();b.toggleClass("done"),c.onUncheck.call(b)})):a("input",this).on("change",function(){var b=a(this).parents("li").first();b.toggleClass("done"),a("input",b).is(":checked")?c.onCheck.call(b):c.onUncheck.call(b)})})}}(jQuery);
\ No newline at end of file
diff --git a/public/admin/dist/js/demo.js b/public/admin/dist/js/demo.js
new file mode 100644
index 0000000..b18b9bb
--- /dev/null
+++ b/public/admin/dist/js/demo.js
@@ -0,0 +1,340 @@
+/**
+ * AdminLTE Demo Menu
+ * ------------------
+ * You should not use this file in production.
+ * This file is for demo purposes only.
+ */
+(function ($, AdminLTE) {
+
+ "use strict";
+
+ /**
+ * List of all the available skins
+ *
+ * @type Array
+ */
+ var my_skins = [
+ "skin-blue",
+ "skin-black",
+ "skin-red",
+ "skin-yellow",
+ "skin-purple",
+ "skin-green",
+ "skin-blue-light",
+ "skin-black-light",
+ "skin-red-light",
+ "skin-yellow-light",
+ "skin-purple-light",
+ "skin-green-light"
+ ];
+
+ //Create the new tab
+ var tab_pane = $("", {
+ "id": "control-sidebar-theme-demo-options-tab",
+ "class": "tab-pane active"
+ });
+
+ //Create the tab button
+ var tab_button = $("", {"class": "active"})
+ .html(""
+ + ""
+ + "");
+
+ //Add the tab button to the right sidebar tabs
+ $("[href='#control-sidebar-home-tab']")
+ .parent()
+ .before(tab_button);
+
+ //Create the menu
+ var demo_settings = $("");
+
+ //Layout options
+ demo_settings.append(
+ ""
+ //Fixed layout
+ + ""
+ //Boxed layout
+ + ""
+ //Sidebar Toggle
+ + ""
+ //Sidebar mini expand on hover toggle
+ + ""
+ //Control Sidebar Toggle
+ + ""
+ //Control Sidebar Skin Toggle
+ + ""
+ );
+ var skins_list = $("", {"class": 'list-unstyled clearfix'});
+
+ //Dark sidebar skins
+ var skin_blue =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Blue
");
+ skins_list.append(skin_blue);
+ var skin_black =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Black
");
+ skins_list.append(skin_black);
+ var skin_purple =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Purple
");
+ skins_list.append(skin_purple);
+ var skin_green =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Green
");
+ skins_list.append(skin_green);
+ var skin_red =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Red
");
+ skins_list.append(skin_red);
+ var skin_yellow =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Yellow
");
+ skins_list.append(skin_yellow);
+
+ //Light sidebar skins
+ var skin_blue_light =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Blue Light
");
+ skins_list.append(skin_blue_light);
+ var skin_black_light =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Black Light
");
+ skins_list.append(skin_black_light);
+ var skin_purple_light =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Purple Light
");
+ skins_list.append(skin_purple_light);
+ var skin_green_light =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Green Light
");
+ skins_list.append(skin_green_light);
+ var skin_red_light =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Red Light
");
+ skins_list.append(skin_red_light);
+ var skin_yellow_light =
+ $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
+ .append(""
+ + "
"
+ + "
"
+ + ""
+ + "Yellow Light
");
+ skins_list.append(skin_yellow_light);
+
+ demo_settings.append("");
+ demo_settings.append(skins_list);
+
+ tab_pane.append(demo_settings);
+ $("#control-sidebar-home-tab").after(tab_pane);
+
+ setup();
+
+ /**
+ * Toggles layout classes
+ *
+ * @param String cls the layout class to toggle
+ * @returns void
+ */
+ function change_layout(cls) {
+ $("body").toggleClass(cls);
+ AdminLTE.layout.fixSidebar();
+ //Fix the problem with right sidebar and layout boxed
+ if (cls == "layout-boxed")
+ AdminLTE.controlSidebar._fix($(".control-sidebar-bg"));
+ if ($('body').hasClass('fixed') && cls == 'fixed') {
+ AdminLTE.pushMenu.expandOnHover();
+ AdminLTE.layout.activate();
+ }
+ AdminLTE.controlSidebar._fix($(".control-sidebar-bg"));
+ AdminLTE.controlSidebar._fix($(".control-sidebar"));
+ }
+
+ /**
+ * Replaces the old skin with the new skin
+ * @param String cls the new skin class
+ * @returns Boolean false to prevent link's default action
+ */
+ function change_skin(cls) {
+ $.each(my_skins, function (i) {
+ $("body").removeClass(my_skins[i]);
+ });
+
+ $("body").addClass(cls);
+ store('skin', cls);
+ return false;
+ }
+
+ /**
+ * Store a new settings in the browser
+ *
+ * @param String name Name of the setting
+ * @param String val Value of the setting
+ * @returns void
+ */
+ function store(name, val) {
+ if (typeof (Storage) !== "undefined") {
+ localStorage.setItem(name, val);
+ } else {
+ window.alert('Please use a modern browser to properly view this template!');
+ }
+ }
+
+ /**
+ * Get a prestored setting
+ *
+ * @param String name Name of of the setting
+ * @returns String The value of the setting | null
+ */
+ function get(name) {
+ if (typeof (Storage) !== "undefined") {
+ return localStorage.getItem(name);
+ } else {
+ window.alert('Please use a modern browser to properly view this template!');
+ }
+ }
+
+ /**
+ * Retrieve default settings and apply them to the template
+ *
+ * @returns void
+ */
+ function setup() {
+ var tmp = get('skin');
+ if (tmp && $.inArray(tmp, my_skins))
+ change_skin(tmp);
+
+ //Add the change skin listener
+ $("[data-skin]").on('click', function (e) {
+ if($(this).hasClass('knob'))
+ return;
+ e.preventDefault();
+ change_skin($(this).data('skin'));
+ });
+
+ //Add the layout manager
+ $("[data-layout]").on('click', function () {
+ change_layout($(this).data('layout'));
+ });
+
+ $("[data-controlsidebar]").on('click', function () {
+ change_layout($(this).data('controlsidebar'));
+ var slide = !AdminLTE.options.controlSidebarOptions.slide;
+ AdminLTE.options.controlSidebarOptions.slide = slide;
+ if (!slide)
+ $('.control-sidebar').removeClass('control-sidebar-open');
+ });
+
+ $("[data-sidebarskin='toggle']").on('click', function () {
+ var sidebar = $(".control-sidebar");
+ if (sidebar.hasClass("control-sidebar-dark")) {
+ sidebar.removeClass("control-sidebar-dark")
+ sidebar.addClass("control-sidebar-light")
+ } else {
+ sidebar.removeClass("control-sidebar-light")
+ sidebar.addClass("control-sidebar-dark")
+ }
+ });
+
+ $("[data-enable='expandOnHover']").on('click', function () {
+ $(this).attr('disabled', true);
+ AdminLTE.pushMenu.expandOnHover();
+ if (!$('body').hasClass('sidebar-collapse'))
+ $("[data-layout='sidebar-collapse']").click();
+ });
+
+ // Reset options
+ if ($('body').hasClass('fixed')) {
+ $("[data-layout='fixed']").attr('checked', 'checked');
+ }
+ if ($('body').hasClass('layout-boxed')) {
+ $("[data-layout='layout-boxed']").attr('checked', 'checked');
+ }
+ if ($('body').hasClass('sidebar-collapse')) {
+ $("[data-layout='sidebar-collapse']").attr('checked', 'checked');
+ }
+
+ }
+})(jQuery, $.AdminLTE);
diff --git a/public/admin/dist/js/pages/dashboard.js b/public/admin/dist/js/pages/dashboard.js
new file mode 100644
index 0000000..0f7c007
--- /dev/null
+++ b/public/admin/dist/js/pages/dashboard.js
@@ -0,0 +1,210 @@
+/*
+ * Author: Abdullah A Almsaeed
+ * Date: 4 Jan 2014
+ * Description:
+ * This is a demo file used only for the main dashboard (index.html)
+ **/
+
+$(function () {
+
+ "use strict";
+
+ //Make the dashboard widgets sortable Using jquery UI
+ $(".connectedSortable").sortable({
+ placeholder: "sort-highlight",
+ connectWith: ".connectedSortable",
+ handle: ".box-header, .nav-tabs",
+ forcePlaceholderSize: true,
+ zIndex: 999999
+ });
+ $(".connectedSortable .box-header, .connectedSortable .nav-tabs-custom").css("cursor", "move");
+
+ //jQuery UI sortable for the todo list
+ $(".todo-list").sortable({
+ placeholder: "sort-highlight",
+ handle: ".handle",
+ forcePlaceholderSize: true,
+ zIndex: 999999
+ });
+
+ //bootstrap WYSIHTML5 - text editor
+ $(".textarea").wysihtml5();
+
+ $('.daterange').daterangepicker({
+ ranges: {
+ 'Today': [moment(), moment()],
+ 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
+ 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
+ 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
+ 'This Month': [moment().startOf('month'), moment().endOf('month')],
+ 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
+ },
+ startDate: moment().subtract(29, 'days'),
+ endDate: moment()
+ }, function (start, end) {
+ window.alert("You chose: " + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
+ });
+
+ /* jQueryKnob */
+ $(".knob").knob();
+
+ //jvectormap data
+ var visitorsData = {
+ "US": 398, //USA
+ "SA": 400, //Saudi Arabia
+ "CA": 1000, //Canada
+ "DE": 500, //Germany
+ "FR": 760, //France
+ "CN": 300, //China
+ "AU": 700, //Australia
+ "BR": 600, //Brazil
+ "IN": 800, //India
+ "GB": 320, //Great Britain
+ "RU": 3000 //Russia
+ };
+ //World map by jvectormap
+ $('#world-map').vectorMap({
+ map: 'world_mill_en',
+ backgroundColor: "transparent",
+ regionStyle: {
+ initial: {
+ fill: '#e4e4e4',
+ "fill-opacity": 1,
+ stroke: 'none',
+ "stroke-width": 0,
+ "stroke-opacity": 1
+ }
+ },
+ series: {
+ regions: [{
+ values: visitorsData,
+ scale: ["#92c1dc", "#ebf4f9"],
+ normalizeFunction: 'polynomial'
+ }]
+ },
+ onRegionLabelShow: function (e, el, code) {
+ if (typeof visitorsData[code] != "undefined")
+ el.html(el.html() + ': ' + visitorsData[code] + ' new visitors');
+ }
+ });
+
+ //Sparkline charts
+ var myvalues = [1000, 1200, 920, 927, 931, 1027, 819, 930, 1021];
+ $('#sparkline-1').sparkline(myvalues, {
+ type: 'line',
+ lineColor: '#92c1dc',
+ fillColor: "#ebf4f9",
+ height: '50',
+ width: '80'
+ });
+ myvalues = [515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921];
+ $('#sparkline-2').sparkline(myvalues, {
+ type: 'line',
+ lineColor: '#92c1dc',
+ fillColor: "#ebf4f9",
+ height: '50',
+ width: '80'
+ });
+ myvalues = [15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21];
+ $('#sparkline-3').sparkline(myvalues, {
+ type: 'line',
+ lineColor: '#92c1dc',
+ fillColor: "#ebf4f9",
+ height: '50',
+ width: '80'
+ });
+
+ //The Calender
+ $("#calendar").datepicker();
+
+ //SLIMSCROLL FOR CHAT WIDGET
+ $('#chat-box').slimScroll({
+ height: '250px'
+ });
+
+ /* Morris.js Charts */
+ // Sales chart
+ var area = new Morris.Area({
+ element: 'revenue-chart',
+ resize: true,
+ data: [
+ {y: '2011 Q1', item1: 2666, item2: 2666},
+ {y: '2011 Q2', item1: 2778, item2: 2294},
+ {y: '2011 Q3', item1: 4912, item2: 1969},
+ {y: '2011 Q4', item1: 3767, item2: 3597},
+ {y: '2012 Q1', item1: 6810, item2: 1914},
+ {y: '2012 Q2', item1: 5670, item2: 4293},
+ {y: '2012 Q3', item1: 4820, item2: 3795},
+ {y: '2012 Q4', item1: 15073, item2: 5967},
+ {y: '2013 Q1', item1: 10687, item2: 4460},
+ {y: '2013 Q2', item1: 8432, item2: 5713}
+ ],
+ xkey: 'y',
+ ykeys: ['item1', 'item2'],
+ labels: ['Item 1', 'Item 2'],
+ lineColors: ['#a0d0e0', '#3c8dbc'],
+ hideHover: 'auto'
+ });
+ var line = new Morris.Line({
+ element: 'line-chart',
+ resize: true,
+ data: [
+ {y: '2011 Q1', item1: 2666},
+ {y: '2011 Q2', item1: 2778},
+ {y: '2011 Q3', item1: 4912},
+ {y: '2011 Q4', item1: 3767},
+ {y: '2012 Q1', item1: 6810},
+ {y: '2012 Q2', item1: 5670},
+ {y: '2012 Q3', item1: 4820},
+ {y: '2012 Q4', item1: 15073},
+ {y: '2013 Q1', item1: 10687},
+ {y: '2013 Q2', item1: 8432}
+ ],
+ xkey: 'y',
+ ykeys: ['item1'],
+ labels: ['Item 1'],
+ lineColors: ['#efefef'],
+ lineWidth: 2,
+ hideHover: 'auto',
+ gridTextColor: "#fff",
+ gridStrokeWidth: 0.4,
+ pointSize: 4,
+ pointStrokeColors: ["#efefef"],
+ gridLineColor: "#efefef",
+ gridTextFamily: "Open Sans",
+ gridTextSize: 10
+ });
+
+ //Donut Chart
+ var donut = new Morris.Donut({
+ element: 'sales-chart',
+ resize: true,
+ colors: ["#3c8dbc", "#f56954", "#00a65a"],
+ data: [
+ {label: "Download Sales", value: 12},
+ {label: "In-Store Sales", value: 30},
+ {label: "Mail-Order Sales", value: 20}
+ ],
+ hideHover: 'auto'
+ });
+
+ //Fix for charts under tabs
+ $('.box ul.nav a').on('shown.bs.tab', function () {
+ area.redraw();
+ donut.redraw();
+ line.redraw();
+ });
+
+ /* The todo list plugin */
+ $(".todo-list").todolist({
+ onCheck: function (ele) {
+ window.console.log("The element has been checked");
+ return ele;
+ },
+ onUncheck: function (ele) {
+ window.console.log("The element has been unchecked");
+ return ele;
+ }
+ });
+
+});
diff --git a/public/admin/dist/js/pages/dashboard2.js b/public/admin/dist/js/pages/dashboard2.js
new file mode 100644
index 0000000..cc67785
--- /dev/null
+++ b/public/admin/dist/js/pages/dashboard2.js
@@ -0,0 +1,274 @@
+$(function () {
+
+ 'use strict';
+
+ /* ChartJS
+ * -------
+ * Here we will create a few charts using ChartJS
+ */
+
+ //-----------------------
+ //- MONTHLY SALES CHART -
+ //-----------------------
+
+ // Get context with jQuery - using jQuery's .get() method.
+ var salesChartCanvas = $("#salesChart").get(0).getContext("2d");
+ // This will get the first returned node in the jQuery collection.
+ var salesChart = new Chart(salesChartCanvas);
+
+ var salesChartData = {
+ labels: ["January", "February", "March", "April", "May", "June", "July"],
+ datasets: [
+ {
+ label: "Electronics",
+ fillColor: "rgb(210, 214, 222)",
+ strokeColor: "rgb(210, 214, 222)",
+ pointColor: "rgb(210, 214, 222)",
+ pointStrokeColor: "#c1c7d1",
+ pointHighlightFill: "#fff",
+ pointHighlightStroke: "rgb(220,220,220)",
+ data: [65, 59, 80, 81, 56, 55, 40]
+ },
+ {
+ label: "Digital Goods",
+ fillColor: "rgba(60,141,188,0.9)",
+ strokeColor: "rgba(60,141,188,0.8)",
+ pointColor: "#3b8bba",
+ pointStrokeColor: "rgba(60,141,188,1)",
+ pointHighlightFill: "#fff",
+ pointHighlightStroke: "rgba(60,141,188,1)",
+ data: [28, 48, 40, 19, 86, 27, 90]
+ }
+ ]
+ };
+
+ var salesChartOptions = {
+ //Boolean - If we should show the scale at all
+ showScale: true,
+ //Boolean - Whether grid lines are shown across the chart
+ scaleShowGridLines: false,
+ //String - Colour of the grid lines
+ scaleGridLineColor: "rgba(0,0,0,.05)",
+ //Number - Width of the grid lines
+ scaleGridLineWidth: 1,
+ //Boolean - Whether to show horizontal lines (except X axis)
+ scaleShowHorizontalLines: true,
+ //Boolean - Whether to show vertical lines (except Y axis)
+ scaleShowVerticalLines: true,
+ //Boolean - Whether the line is curved between points
+ bezierCurve: true,
+ //Number - Tension of the bezier curve between points
+ bezierCurveTension: 0.3,
+ //Boolean - Whether to show a dot for each point
+ pointDot: false,
+ //Number - Radius of each point dot in pixels
+ pointDotRadius: 4,
+ //Number - Pixel width of point dot stroke
+ pointDotStrokeWidth: 1,
+ //Number - amount extra to add to the radius to cater for hit detection outside the drawn point
+ pointHitDetectionRadius: 20,
+ //Boolean - Whether to show a stroke for datasets
+ datasetStroke: true,
+ //Number - Pixel width of dataset stroke
+ datasetStrokeWidth: 2,
+ //Boolean - Whether to fill the dataset with a color
+ datasetFill: true,
+ //String - A legend template
+ legendTemplate: "-legend\"><% for (var i=0; i- \"><%=datasets[i].label%>
<%}%>
",
+ //Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container
+ maintainAspectRatio: true,
+ //Boolean - whether to make the chart responsive to window resizing
+ responsive: true
+ };
+
+ //Create the line chart
+ salesChart.Line(salesChartData, salesChartOptions);
+
+ //---------------------------
+ //- END MONTHLY SALES CHART -
+ //---------------------------
+
+ //-------------
+ //- PIE CHART -
+ //-------------
+ // Get context with jQuery - using jQuery's .get() method.
+ var pieChartCanvas = $("#pieChart").get(0).getContext("2d");
+ var pieChart = new Chart(pieChartCanvas);
+ var PieData = [
+ {
+ value: 700,
+ color: "#f56954",
+ highlight: "#f56954",
+ label: "Chrome"
+ },
+ {
+ value: 500,
+ color: "#00a65a",
+ highlight: "#00a65a",
+ label: "IE"
+ },
+ {
+ value: 400,
+ color: "#f39c12",
+ highlight: "#f39c12",
+ label: "FireFox"
+ },
+ {
+ value: 600,
+ color: "#00c0ef",
+ highlight: "#00c0ef",
+ label: "Safari"
+ },
+ {
+ value: 300,
+ color: "#3c8dbc",
+ highlight: "#3c8dbc",
+ label: "Opera"
+ },
+ {
+ value: 100,
+ color: "#d2d6de",
+ highlight: "#d2d6de",
+ label: "Navigator"
+ }
+ ];
+ var pieOptions = {
+ //Boolean - Whether we should show a stroke on each segment
+ segmentShowStroke: true,
+ //String - The colour of each segment stroke
+ segmentStrokeColor: "#fff",
+ //Number - The width of each segment stroke
+ segmentStrokeWidth: 1,
+ //Number - The percentage of the chart that we cut out of the middle
+ percentageInnerCutout: 50, // This is 0 for Pie charts
+ //Number - Amount of animation steps
+ animationSteps: 100,
+ //String - Animation easing effect
+ animationEasing: "easeOutBounce",
+ //Boolean - Whether we animate the rotation of the Doughnut
+ animateRotate: true,
+ //Boolean - Whether we animate scaling the Doughnut from the centre
+ animateScale: false,
+ //Boolean - whether to make the chart responsive to window resizing
+ responsive: true,
+ // Boolean - whether to maintain the starting aspect ratio or not when responsive, if set to false, will take up entire container
+ maintainAspectRatio: false,
+ //String - A legend template
+ legendTemplate: "-legend\"><% for (var i=0; i- \"><%if(segments[i].label){%><%=segments[i].label%><%}%>
<%}%>
",
+ //String - A tooltip template
+ tooltipTemplate: "<%=value %> <%=label%> users"
+ };
+ //Create pie or douhnut chart
+ // You can switch between pie and douhnut using the method below.
+ pieChart.Doughnut(PieData, pieOptions);
+ //-----------------
+ //- END PIE CHART -
+ //-----------------
+
+ /* jVector Maps
+ * ------------
+ * Create a world map with markers
+ */
+ $('#world-map-markers').vectorMap({
+ map: 'world_mill_en',
+ normalizeFunction: 'polynomial',
+ hoverOpacity: 0.7,
+ hoverColor: false,
+ backgroundColor: 'transparent',
+ regionStyle: {
+ initial: {
+ fill: 'rgba(210, 214, 222, 1)',
+ "fill-opacity": 1,
+ stroke: 'none',
+ "stroke-width": 0,
+ "stroke-opacity": 1
+ },
+ hover: {
+ "fill-opacity": 0.7,
+ cursor: 'pointer'
+ },
+ selected: {
+ fill: 'yellow'
+ },
+ selectedHover: {}
+ },
+ markerStyle: {
+ initial: {
+ fill: '#00a65a',
+ stroke: '#111'
+ }
+ },
+ markers: [
+ {latLng: [41.90, 12.45], name: 'Vatican City'},
+ {latLng: [43.73, 7.41], name: 'Monaco'},
+ {latLng: [-0.52, 166.93], name: 'Nauru'},
+ {latLng: [-8.51, 179.21], name: 'Tuvalu'},
+ {latLng: [43.93, 12.46], name: 'San Marino'},
+ {latLng: [47.14, 9.52], name: 'Liechtenstein'},
+ {latLng: [7.11, 171.06], name: 'Marshall Islands'},
+ {latLng: [17.3, -62.73], name: 'Saint Kitts and Nevis'},
+ {latLng: [3.2, 73.22], name: 'Maldives'},
+ {latLng: [35.88, 14.5], name: 'Malta'},
+ {latLng: [12.05, -61.75], name: 'Grenada'},
+ {latLng: [13.16, -61.23], name: 'Saint Vincent and the Grenadines'},
+ {latLng: [13.16, -59.55], name: 'Barbados'},
+ {latLng: [17.11, -61.85], name: 'Antigua and Barbuda'},
+ {latLng: [-4.61, 55.45], name: 'Seychelles'},
+ {latLng: [7.35, 134.46], name: 'Palau'},
+ {latLng: [42.5, 1.51], name: 'Andorra'},
+ {latLng: [14.01, -60.98], name: 'Saint Lucia'},
+ {latLng: [6.91, 158.18], name: 'Federated States of Micronesia'},
+ {latLng: [1.3, 103.8], name: 'Singapore'},
+ {latLng: [1.46, 173.03], name: 'Kiribati'},
+ {latLng: [-21.13, -175.2], name: 'Tonga'},
+ {latLng: [15.3, -61.38], name: 'Dominica'},
+ {latLng: [-20.2, 57.5], name: 'Mauritius'},
+ {latLng: [26.02, 50.55], name: 'Bahrain'},
+ {latLng: [0.33, 6.73], name: 'São Tomé and Príncipe'}
+ ]
+ });
+
+ /* SPARKLINE CHARTS
+ * ----------------
+ * Create a inline charts with spark line
+ */
+
+ //-----------------
+ //- SPARKLINE BAR -
+ //-----------------
+ $('.sparkbar').each(function () {
+ var $this = $(this);
+ $this.sparkline('html', {
+ type: 'bar',
+ height: $this.data('height') ? $this.data('height') : '30',
+ barColor: $this.data('color')
+ });
+ });
+
+ //-----------------
+ //- SPARKLINE PIE -
+ //-----------------
+ $('.sparkpie').each(function () {
+ var $this = $(this);
+ $this.sparkline('html', {
+ type: 'pie',
+ height: $this.data('height') ? $this.data('height') : '90',
+ sliceColors: $this.data('color')
+ });
+ });
+
+ //------------------
+ //- SPARKLINE LINE -
+ //------------------
+ $('.sparkline').each(function () {
+ var $this = $(this);
+ $this.sparkline('html', {
+ type: 'line',
+ height: $this.data('height') ? $this.data('height') : '90',
+ width: '100%',
+ lineColor: $this.data('linecolor'),
+ fillColor: $this.data('fillcolor'),
+ spotColor: $this.data('spotcolor')
+ });
+ });
+});
diff --git a/public/admin/plugins/index.html b/public/admin/plugins/index.html
new file mode 100644
index 0000000..e69de29