Compare commits
56 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
59e2ba0e17 | ||
|
|
0391457ff5 | ||
|
|
11d8befda2 | ||
|
|
1b54f8946d | ||
|
|
9cf17863fa | ||
|
|
9197cb613f | ||
|
|
9753353574 | ||
|
|
5c93ffc613 | ||
|
|
cdb3d56c38 | ||
|
|
7165c78c3c | ||
|
|
fdb97e3d5d | ||
|
|
70e9032937 | ||
|
|
8015fa3456 | ||
|
|
dbfcd57ecd | ||
|
|
e8504a1245 | ||
|
|
643976f10e | ||
|
|
ed51f8b0ef | ||
|
|
b81fd035f6 | ||
|
|
c78bf1f4d5 | ||
|
|
1093482f1b | ||
|
|
d9aae29254 | ||
|
|
bb63d927e7 | ||
|
|
f882a5a054 | ||
|
|
b200298e2c | ||
|
|
c5aa9e00f5 | ||
|
|
7b5711f4e4 | ||
|
|
26fc4f6a53 | ||
|
|
7534497535 | ||
|
|
1a0afe89b9 | ||
|
|
01cd01345a | ||
|
|
6e2661c367 | ||
|
|
970ba215ad | ||
|
|
e180f1f4d9 | ||
|
|
c8a5c85dd4 | ||
|
|
e3c644bb21 | ||
|
|
52777c1e2a | ||
|
|
59fbae2aee | ||
|
|
57fb76966b | ||
|
|
4a4457b5d3 | ||
|
|
99b5803008 | ||
|
|
d6e65c12d9 | ||
|
|
a2b8c69593 | ||
|
|
ec6a274b1c | ||
|
|
b95e38d6b0 | ||
|
|
436006b2c1 | ||
|
|
d2f6b5bdb2 | ||
|
|
c5c2e7e4a1 | ||
|
|
8a49ac4816 | ||
|
|
da2d2c2adb | ||
|
|
877bedc208 | ||
|
|
3d77a6b859 | ||
|
|
653a929d06 | ||
|
|
3850d5a89a | ||
|
|
1d9d946f88 | ||
|
|
2dbfbc2845 | ||
|
|
fca08b462a |
0
.gitignore
vendored
Executable file → Normal file
16
Gruntfile.js
Executable file → Normal file
@@ -4,6 +4,8 @@ module.exports = function (grunt) {
|
|||||||
grunt.loadNpmTasks('grunt-contrib-less');
|
grunt.loadNpmTasks('grunt-contrib-less');
|
||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||||
|
grunt.loadNpmTasks('grunt-includes');
|
||||||
|
|
||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
watch: {
|
watch: {
|
||||||
// if any .less file changes in directory "build/less/" run the "less"-task.
|
// if any .less file changes in directory "build/less/" run the "less"-task.
|
||||||
@@ -61,6 +63,20 @@ module.exports = function (grunt) {
|
|||||||
'dist/js/app.min.js': ['dist/js/app.js']
|
'dist/js/app.min.js': ['dist/js/app.js']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
//Build the documentaion files
|
||||||
|
includes: {
|
||||||
|
build: {
|
||||||
|
src: ['*.html'], // Source files
|
||||||
|
dest: 'documentation/', // Destination directory
|
||||||
|
flatten: true,
|
||||||
|
cwd: 'documentation/build',
|
||||||
|
options: {
|
||||||
|
silent: true,
|
||||||
|
includePath: 'documentation/build/include'
|
||||||
|
//banner: '<!-- I am a banner <% includes.files.dest %> -->'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// the default task (running "grunt" in console) is "watch"
|
// the default task (running "grunt" in console) is "watch"
|
||||||
|
|||||||
222
README.md
@@ -1,102 +1,172 @@
|
|||||||
[](https://flattr.com/submit/auto?user_id=almasaeed2010&url=http://almsaeedstudio.com&title=AdminLTE&language=&tags=github&category=software) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=629XCUSXBHCBC "Donate")
|
Introduction
|
||||||
------------------------
|
============
|
||||||
|
|
||||||
Announcements:
|
|
||||||
--------------
|
|
||||||
**Current AdminLTE version in master is v2 Beta 1**
|
|
||||||
|
|
||||||
**AdminLTE** -- is a fully responsive admin template. Based on **Bootstrap 3** framework. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Check out the live preview now and see for yourself.
|
**AdminLTE** -- is a fully responsive admin template. Based on **Bootstrap 3** framework. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Check out the live preview now and see for yourself.
|
||||||
|
|
||||||
**Live Preview: http://almsaeedstudio.com/preview/**
|
**Download & Preview on [Almsaeed Studio](http://almsaeedstudio.com)**
|
||||||
|
|
||||||
Note: If the javascript in the preview does not work properly (specially IE users), please visit http://almsaeedstudio.com/AdminLTE (this could be because of the use of an iframe!)
|
Looking for Premium Templates?
|
||||||
|
------------------------------
|
||||||
Want More?
|
|
||||||
-----------
|
|
||||||
**Almsaeed studio just opened a new premium templates page. Hand picked to insure the best quality and the most affordable prices. Visit http://almsaeedstudio.com/premium for more information.**
|
**Almsaeed studio just opened a new premium templates page. Hand picked to insure the best quality and the most affordable prices. Visit http://almsaeedstudio.com/premium for more information.**
|
||||||
|
|
||||||
|
|
||||||

|
!["AdminLTE Presentation"] (http://almsaeedstudio.com/AdminLTE2.png "AdminLTE Presentation")
|
||||||
|
|
||||||
**AdminLTE** has been carefully coded with clear comments in all of its JS, LESS and HTML files. LESS has been used to increase code customizability.
|
**AdminLTE** has been carefully coded with clear comments in all of its JS, LESS and HTML files. LESS has been used to increase code customizability.
|
||||||
|
|
||||||
Special Features:
|
Installation
|
||||||
-----------------
|
------------
|
||||||
- **Fully responsive**
|
There are multiple ways to install AdminLTE.
|
||||||
- **Enhanced for printing**
|
|
||||||
- **Sortable dashboard widgets**
|
|
||||||
- **18 plugins and 3 custom plugins**
|
|
||||||
- **Light weight and fast**
|
|
||||||
- **Compatible with most major browsers**
|
|
||||||
- **Full support for Glyphicons, Fontawesome and Ion icons**
|
|
||||||
|
|
||||||
Featured Pages:
|
####Download:
|
||||||
----------------
|
|
||||||
- Dashboard
|
|
||||||
- Mailbox
|
|
||||||
- Calendar
|
|
||||||
- Invoice
|
|
||||||
- Lockscreen
|
|
||||||
- Login
|
|
||||||
- Register
|
|
||||||
- 404 Error
|
|
||||||
- 500 Error
|
|
||||||
- Blank page
|
|
||||||
|
|
||||||
Featured Plugins:
|
Download from Github or [visit Almsaeed Studio](http://almsaeedstudio.com) and download the lateset release.
|
||||||
-----------------
|
|
||||||
- Boostrap Slider
|
|
||||||
- Ion slider
|
|
||||||
- Bootstrap WYSIHTML5
|
|
||||||
- CKEditor
|
|
||||||
- Bootstrap Colorpicker
|
|
||||||
- Bootstrap Date range Picker
|
|
||||||
- Bootstrap Time Picker
|
|
||||||
- Data Tables
|
|
||||||
- Flot
|
|
||||||
- Morris.js
|
|
||||||
- Sparkilne
|
|
||||||
- Full Calendar
|
|
||||||
- iCheck
|
|
||||||
- jQuery input mask
|
|
||||||
- jQuery Knob
|
|
||||||
- jVector Map
|
|
||||||
- Slim Scroll
|
|
||||||
- Pace
|
|
||||||
- [Bootstrap Social Buttons](http://lipis.github.io/bootstrap-social/ "Bootstrap Social")
|
|
||||||
|
|
||||||
Browser Support:
|
####Using The Command Line:
|
||||||
----------------
|
|
||||||
|
**Github**
|
||||||
|
|
||||||
|
- Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)).
|
||||||
|
- Clone to your machine
|
||||||
|
```
|
||||||
|
git clone https://github.com/YOUR_USERNAME/AdminLTE.git"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Bower**
|
||||||
|
|
||||||
|
```
|
||||||
|
bower install admin-lte
|
||||||
|
```
|
||||||
|
|
||||||
|
**Composer**
|
||||||
|
|
||||||
|
```
|
||||||
|
composer require "almasaeed2010/adminlte=~2.0"
|
||||||
|
```
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
Visit the [online documentation](http://almsaeedstudio.com/themes/AdminLTE/documentation/index.html) for the most
|
||||||
|
updated guide. Information will be added on a weekly basis.
|
||||||
|
|
||||||
|
Browser Support
|
||||||
|
---------------
|
||||||
- IE 9+
|
- IE 9+
|
||||||
- Firefox 5+
|
- Firefox (latest)
|
||||||
- Chrome 14+
|
- Chrome (latest)
|
||||||
- Safari 5+
|
- Safari (latest)
|
||||||
- Opera 11+
|
- Opera (latest)
|
||||||
|
|
||||||
|
Contribution
|
||||||
|
------------
|
||||||
|
Contribution are always **welcome and recommended**! Here is how:
|
||||||
|
|
||||||
|
- Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)).
|
||||||
|
- Clone to your machine ```git clone https://github.com/YOUR_USERNAME/AdminLTE.git"
|
||||||
|
- Make your changes
|
||||||
|
- Create a pull request
|
||||||
|
|
||||||
|
#### Contribution Requirements:
|
||||||
|
|
||||||
|
- When you contribute, you agree to give a non-exclusive license to Almsaeed Studio to use that contribution in any context as we (Almsaeed Studio) see appropriate.
|
||||||
|
- If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license.
|
||||||
|
- Contributions are only accepted through Github pull requests.
|
||||||
|
- Finally, contributed code must work in all supported browsers (see above for browser support).
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
AdminLTE is an open source project by [Almsaeed Studio](http://almsaeedstudio.com) that is licensed under [MIT](http://opensource.org/licenses/MIT). Almsaeed Studio
|
||||||
|
reserves the right to change the license of future releases.
|
||||||
|
|
||||||
|
Todo List
|
||||||
|
---------
|
||||||
|
- Light sidebar colors
|
||||||
|
- Right sidebar
|
||||||
|
- Minified main-sidebar
|
||||||
|
- Right to left support
|
||||||
|
- Custom pace style
|
||||||
|
|
||||||
|
Legacy Realeases
|
||||||
|
----------------
|
||||||
|
AdminLTE 1.x can be easily upgraded to 2.x using [this guide](http://almsaeedstudio.com/themes/AdminLTE/documentation/index.html#browsers), but if you intend to keep using AdminLTE 1.x, you can download the latest release from the [releases](https://github.com/almasaeed2010/AdminLTE/releases) section above.
|
||||||
|
|
||||||
|
Change log
|
||||||
|
----------
|
||||||
|
**v2.0.3**
|
||||||
|
- Bug fixes
|
||||||
|
- Fixed extra page when printing issue #264
|
||||||
|
- Updated documentation and fixed links scrolling issue
|
||||||
|
- Created print.less file (this makes it easier if you want to create a seperate CSS file for printing)
|
||||||
|
- Fixed sidebar stretching issue #275
|
||||||
|
- Fixed checkbox out of bounds issue in WYISHTML5 editor.
|
||||||
|
|
||||||
|
**v2.0.2:**
|
||||||
|
- Solved issue with hidden arrow in select inputs.
|
||||||
|
|
||||||
|
**v2.0.1:**
|
||||||
|
- Updated README.md
|
||||||
|
- Fixed versioning issue in CSS, LESS, and JS
|
||||||
|
- Updated box-shadow for boxes
|
||||||
|
- Updated docs
|
||||||
|
|
||||||
|
**v2.0.0:**
|
||||||
|
|
||||||
|
- Major layout bug fixes
|
||||||
|
- Change in layout mark up
|
||||||
|
- Added transitions to the sidebar
|
||||||
|
- New skins and modified previous skins
|
||||||
|
- Change in color scheme to a more complementing scheme
|
||||||
|
- Added footer support
|
||||||
|
- Removed pace.js from the main app.js
|
||||||
|
- Added support for collapsed sidebar as an initial state (add .sidebar-collapse to the body tag)
|
||||||
|
- Added boxed layout (.layout-boxed)
|
||||||
|
- Enhanced consistency in padding and margining
|
||||||
|
- Updated Bootstrap to 3.3.2
|
||||||
|
- Fixed navbar dropdown menu on small screens positioning issues.
|
||||||
|
- Updated Ion Icons to 2.0.0
|
||||||
|
- Updated FontAwesome to 4.3.0
|
||||||
|
- Added ChartJS 1.0.1
|
||||||
|
- Removed iCheck dependency
|
||||||
|
- Created Dashboard 2.0
|
||||||
|
- Created new Chat widget (DirectChat)
|
||||||
|
- Added transitions to DirectChat
|
||||||
|
- Added contacts pane to DirectChat
|
||||||
|
- Changed .right-side to .content-wrapper
|
||||||
|
- Changed .navbar-right to .navbar-custom-menu
|
||||||
|
- Removed unused files
|
||||||
|
- Updated lockscreen style (HTML markup changed!)
|
||||||
|
- Updated Login & Registration pages (HTML markup changed!)
|
||||||
|
- Updated buttons style.
|
||||||
|
- Enhanced border-radius consistency
|
||||||
|
- Added mailbox: inbox, read, and compose pages
|
||||||
|
- Bootstrap & jQuery are now hosted locally
|
||||||
|
- Created documentation.
|
||||||
|
|
||||||
|
**ver 1.2.0:**
|
||||||
|
|
||||||
Change log:
|
|
||||||
-----------
|
|
||||||
ver 1.2:
|
|
||||||
- Fixed the sidebar scroll issue when using the fixed layout.
|
- Fixed the sidebar scroll issue when using the fixed layout.
|
||||||
- Added [Bootstrap Social Buttons](http://lipis.github.io/bootstrap-social/ "Bootstrap Social") plugin.
|
- Added [Bootstrap Social Buttons](http://lipis.github.io/bootstrap-social/ "Bootstrap Social") plugin.
|
||||||
- Fixed RequireJS bug. Thanks to [StaticSphere](https://github.com/StaticSphere "github user").
|
- Fixed RequireJS bug. Thanks to [StaticSphere](https://github.com/StaticSphere "github user").
|
||||||
|
|
||||||
ver 1.1:
|
**ver 1.1.0:**
|
||||||
|
|
||||||
- Added new skin. class: .skin-black
|
- Added new skin. class: .skin-black
|
||||||
- Added [pace](http://github.hubspot.com/pace/docs/welcome/ "pace") plugin.
|
- Added [pace](http://github.hubspot.com/pace/docs/welcome/ "pace") plugin.
|
||||||
|
|
||||||
To Do List:
|
Image Credits
|
||||||
-----------
|
-------------
|
||||||
- More features
|
[Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd)
|
||||||
- Ajax version
|
|
||||||
- More skins
|
|
||||||
- Documentation
|
|
||||||
|
|
||||||
Image Credits:
|
[Graphicsfuel](http://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/)
|
||||||
--------------
|
|
||||||
[pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd "")
|
|
||||||
|
|
||||||
[graphicsfuel](http://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/ "")
|
[Pickaface](http://pickaface.net/)
|
||||||
|
|
||||||
[ajaxload](http://www.ajaxload.info/ "")
|
[Unsplash](https://unsplash.com/)
|
||||||
|
|
||||||
[pickaface](http://pickaface.net/ "")
|
[Uifaces](http://uifaces.com/)
|
||||||
|
|
||||||
|
Donations
|
||||||
|
---------
|
||||||
|
Donations are **greatly appreciated!**
|
||||||
|
|
||||||
|
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=629XCUSXBHCBC "Donate")
|
||||||
|
|||||||
34
bower.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "AdminLTE",
|
||||||
|
"version": "2.0.2",
|
||||||
|
"homepage": "http://almsaeedstudio.com",
|
||||||
|
"authors": [
|
||||||
|
"Abdullah Almsaeed <almasaeed2010@gmail.com>"
|
||||||
|
],
|
||||||
|
"description": "Admin dashboard and control panel template",
|
||||||
|
"main": [
|
||||||
|
"index2.html",
|
||||||
|
"dist/css/AdminLTE.css",
|
||||||
|
"dist/js/AdminLTE.js",
|
||||||
|
"build/less/AdminLTE.less"
|
||||||
|
],
|
||||||
|
"keywords": [
|
||||||
|
"css",
|
||||||
|
"js",
|
||||||
|
"html",
|
||||||
|
"template",
|
||||||
|
"admin",
|
||||||
|
"bootstrap",
|
||||||
|
"theme",
|
||||||
|
"backend",
|
||||||
|
"responsive"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"ignore": [
|
||||||
|
"/.*",
|
||||||
|
"node_modules",
|
||||||
|
"bower_components",
|
||||||
|
"composer.json",
|
||||||
|
"documentaion"
|
||||||
|
]
|
||||||
|
}
|
||||||
0
build/bootstrap-less/mixins/alerts.less
Executable file → Normal file
0
build/bootstrap-less/mixins/background-variant.less
Executable file → Normal file
0
build/bootstrap-less/mixins/border-radius.less
Executable file → Normal file
0
build/bootstrap-less/mixins/buttons.less
Executable file → Normal file
0
build/bootstrap-less/mixins/center-block.less
Executable file → Normal file
0
build/bootstrap-less/mixins/clearfix.less
Executable file → Normal file
0
build/bootstrap-less/mixins/forms.less
Executable file → Normal file
0
build/bootstrap-less/mixins/gradients.less
Executable file → Normal file
0
build/bootstrap-less/mixins/grid-framework.less
Executable file → Normal file
0
build/bootstrap-less/mixins/grid.less
Executable file → Normal file
0
build/bootstrap-less/mixins/hide-text.less
Executable file → Normal file
0
build/bootstrap-less/mixins/image.less
Executable file → Normal file
0
build/bootstrap-less/mixins/labels.less
Executable file → Normal file
0
build/bootstrap-less/mixins/list-group.less
Executable file → Normal file
0
build/bootstrap-less/mixins/nav-divider.less
Executable file → Normal file
0
build/bootstrap-less/mixins/nav-vertical-align.less
Executable file → Normal file
0
build/bootstrap-less/mixins/opacity.less
Executable file → Normal file
0
build/bootstrap-less/mixins/pagination.less
Executable file → Normal file
0
build/bootstrap-less/mixins/panels.less
Executable file → Normal file
0
build/bootstrap-less/mixins/progress-bar.less
Executable file → Normal file
0
build/bootstrap-less/mixins/reset-filter.less
Executable file → Normal file
0
build/bootstrap-less/mixins/resize.less
Executable file → Normal file
0
build/bootstrap-less/mixins/responsive-visibility.less
Executable file → Normal file
0
build/bootstrap-less/mixins/size.less
Executable file → Normal file
0
build/bootstrap-less/mixins/tab-focus.less
Executable file → Normal file
0
build/bootstrap-less/mixins/table-row.less
Executable file → Normal file
0
build/bootstrap-less/mixins/text-emphasis.less
Executable file → Normal file
0
build/bootstrap-less/mixins/text-overflow.less
Executable file → Normal file
0
build/bootstrap-less/mixins/vendor-prefixes.less
Executable file → Normal file
0
build/bootstrap-less/variables.less
Executable file → Normal file
0
build/less/404_500_errors.less
Executable file → Normal file
12
build/less/AdminLTE.less
Executable file → Normal file
@@ -1,5 +1,5 @@
|
|||||||
/*!
|
/*!
|
||||||
* AdminLTE v1.2
|
* AdminLTE v2.0.3
|
||||||
* Author: Almsaeed Studio
|
* Author: Almsaeed Studio
|
||||||
* Website: Almsaeed Studio <http://almsaeedstudio.com>
|
* Website: Almsaeed Studio <http://almsaeedstudio.com>
|
||||||
* License: Open source - MIT
|
* License: Open source - MIT
|
||||||
@@ -52,15 +52,6 @@
|
|||||||
@import "404_500_errors.less";
|
@import "404_500_errors.less";
|
||||||
@import "invoice.less";
|
@import "invoice.less";
|
||||||
|
|
||||||
//Skins
|
|
||||||
//-------
|
|
||||||
//@import "skins/skin-blue.less";
|
|
||||||
//@import "skins/skin-black.less";
|
|
||||||
//@import "skins/skin-red.less";
|
|
||||||
//@import "skins/skin-green.less";
|
|
||||||
//@import "skins/skin-yellow.less";
|
|
||||||
//@import "skins/skin-purple.less";
|
|
||||||
|
|
||||||
//Plugins
|
//Plugins
|
||||||
//--------
|
//--------
|
||||||
@import "bootstrap-social.less";
|
@import "bootstrap-social.less";
|
||||||
@@ -69,3 +60,4 @@
|
|||||||
//Miscellaneous
|
//Miscellaneous
|
||||||
//-------------
|
//-------------
|
||||||
@import "miscellaneous.less";
|
@import "miscellaneous.less";
|
||||||
|
@import "print.less";
|
||||||
|
|||||||
0
build/less/alerts.less
Executable file → Normal file
0
build/less/bootstrap-social.less
vendored
Executable file → Normal file
2
build/less/boxes.less
Executable file → Normal file
@@ -137,7 +137,7 @@
|
|||||||
> .overlay,
|
> .overlay,
|
||||||
> .loading-img {
|
> .loading-img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -3px;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|||||||
0
build/less/buttons.less
Executable file → Normal file
0
build/less/callout.less
Executable file → Normal file
27
build/less/core.less
Executable file → Normal file
@@ -40,7 +40,7 @@ body {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Content Wrapper - contins main content
|
* Content Wrapper - contins main content
|
||||||
* ```.right-side has been deprecated as of v2.0 in favor of .content-wrapper ```
|
* ```.right-side has been deprecated as of v2.0.0 in favor of .content-wrapper ```
|
||||||
*/
|
*/
|
||||||
.content-wrapper,
|
.content-wrapper,
|
||||||
.right-side,
|
.right-side,
|
||||||
@@ -135,7 +135,9 @@ h6,
|
|||||||
a {
|
a {
|
||||||
color: @link-color;
|
color: @link-color;
|
||||||
}
|
}
|
||||||
a:hover, a:active, a:focus {
|
a:hover,
|
||||||
|
a:active,
|
||||||
|
a:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: @link-hover-color;
|
color: @link-hover-color;
|
||||||
@@ -151,25 +153,4 @@ a:hover, a:active, a:focus {
|
|||||||
display: block;
|
display: block;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* Don't display when printing */
|
|
||||||
@media print {
|
|
||||||
//Add to elements that you do not want to show when printing
|
|
||||||
.no-print {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Elements that we want to hide when printing
|
|
||||||
.main-sidebar,
|
|
||||||
.left-side,
|
|
||||||
.main-header,
|
|
||||||
.content-header {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
//This is the only element that should appear, so let's remove the margins
|
|
||||||
.content-wrapper,
|
|
||||||
.right-side {
|
|
||||||
margin: 0!important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
11
build/less/direct-chat.less
Executable file → Normal file
@@ -7,7 +7,7 @@
|
|||||||
.border-bottom-radius(0);
|
.border-bottom-radius(0);
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
&.chat-pane-open {
|
&.chat-pane-open {
|
||||||
.direct-chat-contacts {
|
.direct-chat-contacts {
|
||||||
@@ -98,28 +98,25 @@
|
|||||||
}
|
}
|
||||||
//Direct chat contacts pane
|
//Direct chat contacts pane
|
||||||
.direct-chat-contacts-open {
|
.direct-chat-contacts-open {
|
||||||
/*.direct-chat-messages {
|
|
||||||
.translate(-101%, 0);
|
|
||||||
}*/
|
|
||||||
.direct-chat-contacts {
|
.direct-chat-contacts {
|
||||||
.translate(0, 0);
|
.translate(0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.direct-chat-contacts {
|
.direct-chat-contacts {
|
||||||
.translate(101%, 0);
|
.translate(100%, 0);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
height: 250px;
|
height: 250px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: #222d32;
|
background: #222d32;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Contacts list -- for displaying contacts in direct chat contacts pane
|
//Contacts list -- for displaying contacts in direct chat contacts pane
|
||||||
.contacts-list {
|
.contacts-list {
|
||||||
&:extend(.list-unstyled);
|
&:extend(.list-unstyled);
|
||||||
> li {
|
> li {
|
||||||
.clearfix();
|
.clearfix();
|
||||||
border-bottom: 1px solid rgba(0,0,0,0.2);
|
border-bottom: 1px solid rgba(0,0,0,0.2);
|
||||||
|
|||||||
7
build/less/dropdown.less
Executable file → Normal file
@@ -183,10 +183,15 @@
|
|||||||
//User menu
|
//User menu
|
||||||
.navbar-nav > .user-menu {
|
.navbar-nav > .user-menu {
|
||||||
> .dropdown-menu {
|
> .dropdown-menu {
|
||||||
.border-radius(0);
|
.border-top-radius(0);
|
||||||
padding: 1px 0 0 0;
|
padding: 1px 0 0 0;
|
||||||
border-top-width: 0;
|
border-top-width: 0;
|
||||||
width: 280px;
|
width: 280px;
|
||||||
|
|
||||||
|
&,
|
||||||
|
> .user-body {
|
||||||
|
.border-bottom-radius(4px);
|
||||||
|
}
|
||||||
// Header menu
|
// Header menu
|
||||||
> li.user-header {
|
> li.user-header {
|
||||||
height: 175px;
|
height: 175px;
|
||||||
|
|||||||
11
build/less/forms.less
Executable file → Normal file
@@ -3,10 +3,7 @@
|
|||||||
* ---------------
|
* ---------------
|
||||||
*/
|
*/
|
||||||
.form-control {
|
.form-control {
|
||||||
.border-radius(@input-radius)!important;
|
.border-radius(@input-radius)!important;
|
||||||
-webkit-appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border-color: @gray;
|
border-color: @gray;
|
||||||
&:focus {
|
&:focus {
|
||||||
@@ -23,6 +20,12 @@
|
|||||||
&::-webkit-input-placeholder {
|
&::-webkit-input-placeholder {
|
||||||
color: #bbb;
|
color: #bbb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&:not(select) {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-group {
|
.form-group {
|
||||||
|
|||||||
0
build/less/fullcalendar.less
Executable file → Normal file
1
build/less/header.less
Executable file → Normal file
@@ -149,6 +149,7 @@
|
|||||||
> li > a {
|
> li > a {
|
||||||
color: #444;
|
color: #444;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
> .fa, > .glyphicon, > .ion {
|
> .fa, > .glyphicon, > .ion {
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
|
|||||||
3
build/less/info-box.less
Executable file → Normal file
@@ -54,6 +54,9 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
.info-box-text {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
.info-box-more {
|
.info-box-more {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|||||||
23
build/less/invoice.less
Executable file → Normal file
@@ -13,27 +13,4 @@
|
|||||||
|
|
||||||
.invoice-title {
|
.invoice-title {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
|
||||||
|
|
||||||
/* Enhancement for printing */
|
|
||||||
@media print {
|
|
||||||
.invoice {
|
|
||||||
width: 100%;
|
|
||||||
border: 0;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.invoice-col {
|
|
||||||
float: left;
|
|
||||||
width: 33.3333333%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-responsive {
|
|
||||||
overflow: auto;
|
|
||||||
> .table tr th,
|
|
||||||
> .table tr td {
|
|
||||||
white-space: normal!important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
0
build/less/labels.less
Executable file → Normal file
0
build/less/lockscreen.less
Executable file → Normal file
0
build/less/login_and_register.less
Executable file → Normal file
0
build/less/mailbox.less
Executable file → Normal file
0
build/less/miscellaneous.less
Executable file → Normal file
0
build/less/mixins.less
Executable file → Normal file
0
build/less/navs.less
Executable file → Normal file
48
build/less/print.less
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* Misc: print
|
||||||
|
* -----------
|
||||||
|
*/
|
||||||
|
@media print {
|
||||||
|
//Add to elements that you do not want to show when printing
|
||||||
|
.no-print {
|
||||||
|
display: none!important;
|
||||||
|
}
|
||||||
|
//Elements that we want to hide when printing
|
||||||
|
.main-sidebar,
|
||||||
|
.left-side,
|
||||||
|
.main-header,
|
||||||
|
.content-header {
|
||||||
|
&:extend(.no-print);
|
||||||
|
}
|
||||||
|
//This is the only element that should appear, so let's remove the margins
|
||||||
|
.content-wrapper,
|
||||||
|
.right-side,
|
||||||
|
.main-footer {
|
||||||
|
margin-left: 0!important;
|
||||||
|
min-height: 0!important;
|
||||||
|
.translate(0,0)!important;
|
||||||
|
}
|
||||||
|
.fixed .content-wrapper,
|
||||||
|
.fixed .right-side {
|
||||||
|
padding-top: 0!important;
|
||||||
|
}
|
||||||
|
//Invoice printing
|
||||||
|
.invoice {
|
||||||
|
width: 100%;
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.invoice-col {
|
||||||
|
float: left;
|
||||||
|
width: 33.3333333%;
|
||||||
|
}
|
||||||
|
//Make sure table content displays properly
|
||||||
|
.table-responsive {
|
||||||
|
overflow: auto;
|
||||||
|
> .table tr th,
|
||||||
|
> .table tr td {
|
||||||
|
white-space: normal!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
0
build/less/products.less
Executable file → Normal file
0
build/less/progress-bars.less
Executable file → Normal file
8
build/less/sidebar.less
Executable file → Normal file
@@ -3,15 +3,15 @@
|
|||||||
* ------------------
|
* ------------------
|
||||||
*/
|
*/
|
||||||
//Main Sidebar
|
//Main Sidebar
|
||||||
// ``` .left-side has been deprecated in favor of .main-sidebar ```
|
// ``` .left-side has been deprecated as of 2.0.0 in favor of .main-sidebar ```
|
||||||
|
|
||||||
.main-sidebar,
|
.main-sidebar,
|
||||||
.left-side {
|
.left-side {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
padding-top: 50px;
|
padding-top: 50px;
|
||||||
height: 100%;
|
min-height: 100%;
|
||||||
width: @sidebar-width;
|
width: @sidebar-width;
|
||||||
z-index: 810;
|
z-index: 810;
|
||||||
.transition-transform(@transition-speed @transition-fn);
|
.transition-transform(@transition-speed @transition-fn);
|
||||||
@@ -23,7 +23,6 @@
|
|||||||
.translate(-@sidebar-width, 0);
|
.translate(-@sidebar-width, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-open & {
|
.sidebar-open & {
|
||||||
@media (max-width: @screen-xs-max) {
|
@media (max-width: @screen-xs-max) {
|
||||||
.translate(0, 0);
|
.translate(0, 0);
|
||||||
@@ -79,7 +78,6 @@
|
|||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
> li {
|
> li {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|||||||
0
build/less/skins/skin-black.less
Executable file → Normal file
0
build/less/skins/skin-blue.less
Executable file → Normal file
0
build/less/small-box.less
Executable file → Normal file
0
build/less/table.less
Executable file → Normal file
0
build/less/timeline.less
Executable file → Normal file
0
build/less/users-list.less
Executable file → Normal file
2
build/less/variables.less
Executable file → Normal file
@@ -56,7 +56,7 @@
|
|||||||
@box-border-color: #f4f4f4;
|
@box-border-color: #f4f4f4;
|
||||||
@box-border-radius: 3px;
|
@box-border-radius: 3px;
|
||||||
@box-footer-bg: #fff;
|
@box-footer-bg: #fff;
|
||||||
@box-boxshadow: 0 1px 1px rgba(0, 0, 0, .05);
|
@box-boxshadow: 0 1px 1px rgba(0, 0, 0, .1);
|
||||||
@box-padding: 10px;
|
@box-padding: 10px;
|
||||||
|
|
||||||
//Box variants
|
//Box variants
|
||||||
|
|||||||
24
changelog
@@ -1,9 +1,25 @@
|
|||||||
CHANGE LOG:
|
CHANGE LOG:
|
||||||
|
v2.0.3:
|
||||||
|
- Bug fixes
|
||||||
|
- Fixed extra page when printing issue #264
|
||||||
|
- Updated documentation and fixed links scrolling issue
|
||||||
|
- Created print.less file (this makes it easier if you want to create a seperate CSS file for printing)
|
||||||
|
- Fixed sidebar stretching issue #275
|
||||||
|
- Fixed checkbox out of bounds issue in WYISHTML5 editor.
|
||||||
|
|
||||||
v2.0
|
v2.0.2:
|
||||||
|
- Solved issue with hidden arrow in select inputs.
|
||||||
|
|
||||||
|
v2.0.1:
|
||||||
|
- Updated README.md
|
||||||
|
- Fixed versioning issue in CSS, LESS, and JS
|
||||||
|
- Updated box-shadow for boxes
|
||||||
|
- Updated docs
|
||||||
|
|
||||||
|
v2.0.0
|
||||||
- Major layout bug fixes
|
- Major layout bug fixes
|
||||||
- Change in layout mark up
|
- Change in layout mark up
|
||||||
- Added transitions to sidebar collapse
|
- Added transitions to the sidebar
|
||||||
- New skins and modified previous skins
|
- New skins and modified previous skins
|
||||||
- Change in color scheme to a more complementing scheme
|
- Change in color scheme to a more complementing scheme
|
||||||
- Added footer support
|
- Added footer support
|
||||||
@@ -18,6 +34,9 @@ v2.0
|
|||||||
- Added ChartJS 1.0.1
|
- Added ChartJS 1.0.1
|
||||||
- Removed iCheck dependency
|
- Removed iCheck dependency
|
||||||
- Created Dashboard 2.0
|
- Created Dashboard 2.0
|
||||||
|
- Created new Chat widget (DirectChat)
|
||||||
|
- Added transitions to DirectChat
|
||||||
|
- Added contacts pane to DirectChat
|
||||||
- Changed .right-side to .content-wrapper
|
- Changed .right-side to .content-wrapper
|
||||||
- Changed .navbar-right to .navbar-custom-menu
|
- Changed .navbar-right to .navbar-custom-menu
|
||||||
- Removed unused files
|
- Removed unused files
|
||||||
@@ -27,3 +46,4 @@ v2.0
|
|||||||
- Enhanced border-radius consistency
|
- Enhanced border-radius consistency
|
||||||
- Added mailbox: inbox, read, and compose pages
|
- Added mailbox: inbox, read, and compose pages
|
||||||
- Bootstrap & jQuery are now hosted locally
|
- Bootstrap & jQuery are now hosted locally
|
||||||
|
- Created documentation.
|
||||||
|
|||||||
0
composer.json
Executable file → Normal file
143
dist/css/AdminLTE.css
vendored
Executable file → Normal file
@@ -1,6 +1,6 @@
|
|||||||
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
|
@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic);
|
||||||
/*!
|
/*!
|
||||||
* AdminLTE v1.2
|
* AdminLTE v2.0.3
|
||||||
* Author: Almsaeed Studio
|
* Author: Almsaeed Studio
|
||||||
* Website: Almsaeed Studio <http://almsaeedstudio.com>
|
* Website: Almsaeed Studio <http://almsaeedstudio.com>
|
||||||
* License: Open source - MIT
|
* License: Open source - MIT
|
||||||
@@ -52,7 +52,7 @@ body {
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Content Wrapper - contins main content
|
* Content Wrapper - contins main content
|
||||||
* ```.right-side has been deprecated as of v2.0 in favor of .content-wrapper ```
|
* ```.right-side has been deprecated as of v2.0.0 in favor of .content-wrapper ```
|
||||||
*/
|
*/
|
||||||
.content-wrapper,
|
.content-wrapper,
|
||||||
.right-side,
|
.right-side,
|
||||||
@@ -177,22 +177,6 @@ a:focus {
|
|||||||
display: block;
|
display: block;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
/* Don't display when printing */
|
|
||||||
@media print {
|
|
||||||
.no-print {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.main-sidebar,
|
|
||||||
.left-side,
|
|
||||||
.main-header,
|
|
||||||
.content-header {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.content-wrapper,
|
|
||||||
.right-side {
|
|
||||||
margin: 0!important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* Component: Main Header
|
* Component: Main Header
|
||||||
* ----------------------
|
* ----------------------
|
||||||
@@ -329,6 +313,7 @@ a:focus {
|
|||||||
.content-header > .breadcrumb > li > a {
|
.content-header > .breadcrumb > li > a {
|
||||||
color: #444;
|
color: #444;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.content-header > .breadcrumb > li > a > .fa,
|
.content-header > .breadcrumb > li > a > .fa,
|
||||||
.content-header > .breadcrumb > li > a > .glyphicon,
|
.content-header > .breadcrumb > li > a > .glyphicon,
|
||||||
@@ -403,7 +388,7 @@ a:focus {
|
|||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
padding-top: 50px;
|
padding-top: 50px;
|
||||||
height: 100%;
|
min-height: 100%;
|
||||||
width: 230px;
|
width: 230px;
|
||||||
z-index: 810;
|
z-index: 810;
|
||||||
-webkit-transition: -webkit-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15);
|
-webkit-transition: -webkit-transform 0.3s cubic-bezier(0.32, 1.25, 0.375, 1.15);
|
||||||
@@ -561,7 +546,7 @@ a:focus {
|
|||||||
*/
|
*/
|
||||||
/*Dropdowns in general*/
|
/*Dropdowns in general*/
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
border-color: #eee;
|
border-color: #eee;
|
||||||
}
|
}
|
||||||
.dropdown-menu > li > a {
|
.dropdown-menu > li > a {
|
||||||
@@ -727,11 +712,17 @@ a:focus {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
.navbar-nav > .user-menu > .dropdown-menu {
|
.navbar-nav > .user-menu > .dropdown-menu {
|
||||||
border-radius: 0;
|
border-top-right-radius: 0;
|
||||||
|
border-top-left-radius: 0;
|
||||||
padding: 1px 0 0 0;
|
padding: 1px 0 0 0;
|
||||||
border-top-width: 0;
|
border-top-width: 0;
|
||||||
width: 280px;
|
width: 280px;
|
||||||
}
|
}
|
||||||
|
.navbar-nav > .user-menu > .dropdown-menu,
|
||||||
|
.navbar-nav > .user-menu > .dropdown-menu > .user-body {
|
||||||
|
border-bottom-right-radius: 4px;
|
||||||
|
border-bottom-left-radius: 4px;
|
||||||
|
}
|
||||||
.navbar-nav > .user-menu > .dropdown-menu > li.user-header {
|
.navbar-nav > .user-menu > .dropdown-menu > li.user-header {
|
||||||
height: 175px;
|
height: 175px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
@@ -889,9 +880,6 @@ a:focus {
|
|||||||
*/
|
*/
|
||||||
.form-control {
|
.form-control {
|
||||||
border-radius: 0px !important;
|
border-radius: 0px !important;
|
||||||
-webkit-appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
border-color: #d2d6de;
|
border-color: #d2d6de;
|
||||||
}
|
}
|
||||||
@@ -909,6 +897,11 @@ a:focus {
|
|||||||
.form-control::-webkit-input-placeholder {
|
.form-control::-webkit-input-placeholder {
|
||||||
color: #bbb;
|
color: #bbb;
|
||||||
}
|
}
|
||||||
|
.form-control:not(select) {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
}
|
||||||
.form-group.has-success label {
|
.form-group.has-success label {
|
||||||
color: #00a65a;
|
color: #00a65a;
|
||||||
}
|
}
|
||||||
@@ -1084,7 +1077,7 @@ a:focus {
|
|||||||
position: relative;
|
position: relative;
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
.small-box > .inner {
|
.small-box > .inner {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
@@ -1164,7 +1157,7 @@ a:focus {
|
|||||||
border-top: 3px solid #d2d6de;
|
border-top: 3px solid #d2d6de;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
.box.box-primary {
|
.box.box-primary {
|
||||||
border-top-color: #3c8dbc;
|
border-top-color: #3c8dbc;
|
||||||
@@ -1307,7 +1300,7 @@ a:focus {
|
|||||||
.box > .overlay,
|
.box > .overlay,
|
||||||
.box > .loading-img {
|
.box > .loading-img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -3px;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -1599,7 +1592,7 @@ a:focus {
|
|||||||
min-height: 90px;
|
min-height: 90px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
@@ -1649,6 +1642,9 @@ a:focus {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
.info-box-text {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
.info-box-more {
|
.info-box-more {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@@ -1690,8 +1686,8 @@ a:focus {
|
|||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
.timeline > li > .timeline-item {
|
.timeline > li > .timeline-item {
|
||||||
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
@@ -2033,7 +2029,7 @@ a:focus {
|
|||||||
.nav-tabs-custom {
|
.nav-tabs-custom {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
.nav-tabs-custom > .nav-tabs {
|
.nav-tabs-custom > .nav-tabs {
|
||||||
@@ -2135,8 +2131,8 @@ a:focus {
|
|||||||
}
|
}
|
||||||
.products-list > .item {
|
.products-list > .item {
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
padding: 10px 0;
|
padding: 10px 0;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
}
|
}
|
||||||
@@ -2343,11 +2339,6 @@ table.text-center th {
|
|||||||
.direct-chat-timestamp {
|
.direct-chat-timestamp {
|
||||||
color: #999;
|
color: #999;
|
||||||
}
|
}
|
||||||
.direct-chat-contacts-open {
|
|
||||||
/*.direct-chat-messages {
|
|
||||||
.translate(-101%, 0);
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
.direct-chat-contacts-open .direct-chat-contacts {
|
.direct-chat-contacts-open .direct-chat-contacts {
|
||||||
-webkit-transform: translate(0, 0);
|
-webkit-transform: translate(0, 0);
|
||||||
-ms-transform: translate(0, 0);
|
-ms-transform: translate(0, 0);
|
||||||
@@ -2355,10 +2346,10 @@ table.text-center th {
|
|||||||
transform: translate(0, 0);
|
transform: translate(0, 0);
|
||||||
}
|
}
|
||||||
.direct-chat-contacts {
|
.direct-chat-contacts {
|
||||||
-webkit-transform: translate(101%, 0);
|
-webkit-transform: translate(100%, 0);
|
||||||
-ms-transform: translate(101%, 0);
|
-ms-transform: translate(100%, 0);
|
||||||
-o-transform: translate(101%, 0);
|
-o-transform: translate(100%, 0);
|
||||||
transform: translate(101%, 0);
|
transform: translate(100%, 0);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
@@ -2837,26 +2828,6 @@ table.text-center th {
|
|||||||
.invoice-title {
|
.invoice-title {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
/* Enhancement for printing */
|
|
||||||
@media print {
|
|
||||||
.invoice {
|
|
||||||
width: 100%;
|
|
||||||
border: 0;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.invoice-col {
|
|
||||||
float: left;
|
|
||||||
width: 33.3333333%;
|
|
||||||
}
|
|
||||||
.table-responsive {
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
.table-responsive > .table tr th,
|
|
||||||
.table-responsive > .table tr td {
|
|
||||||
white-space: normal!important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* Plugin: Social Buttons
|
* Plugin: Social Buttons
|
||||||
* ----------------------
|
* ----------------------
|
||||||
@@ -3598,8 +3569,8 @@ fieldset[disabled] .btn-vk.active {
|
|||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
cursor: move;
|
cursor: move;
|
||||||
}
|
}
|
||||||
@@ -4049,3 +4020,47 @@ Gradient Background colors
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
filter: alpha(opacity=100);
|
filter: alpha(opacity=100);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Misc: print
|
||||||
|
* -----------
|
||||||
|
*/
|
||||||
|
@media print {
|
||||||
|
.no-print,
|
||||||
|
.main-sidebar,
|
||||||
|
.left-side,
|
||||||
|
.main-header,
|
||||||
|
.content-header {
|
||||||
|
display: none!important;
|
||||||
|
}
|
||||||
|
.content-wrapper,
|
||||||
|
.right-side,
|
||||||
|
.main-footer {
|
||||||
|
margin-left: 0!important;
|
||||||
|
min-height: 0!important;
|
||||||
|
-webkit-transform: translate(0, 0) !important;
|
||||||
|
-ms-transform: translate(0, 0) !important;
|
||||||
|
-o-transform: translate(0, 0) !important;
|
||||||
|
transform: translate(0, 0) !important;
|
||||||
|
}
|
||||||
|
.fixed .content-wrapper,
|
||||||
|
.fixed .right-side {
|
||||||
|
padding-top: 0!important;
|
||||||
|
}
|
||||||
|
.invoice {
|
||||||
|
width: 100%;
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.invoice-col {
|
||||||
|
float: left;
|
||||||
|
width: 33.3333333%;
|
||||||
|
}
|
||||||
|
.table-responsive {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.table-responsive > .table tr th,
|
||||||
|
.table-responsive > .table tr td {
|
||||||
|
white-space: normal!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
4
dist/css/AdminLTE.min.css
vendored
0
dist/img/avatar.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
0
dist/img/avatar04.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
0
dist/img/avatar2.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
0
dist/img/avatar3.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
dist/img/avatar5.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
0
dist/img/boxed-bg.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
0
dist/img/boxed-bg.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
0
dist/img/credit/american-express.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
0
dist/img/credit/cirrus.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
0
dist/img/credit/mastercard.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
0
dist/img/credit/mestro.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
0
dist/img/credit/paypal.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
0
dist/img/credit/paypal2.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
0
dist/img/credit/visa.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
0
dist/img/default-50x50.gif
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 184 B |
0
dist/img/icons.png
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
0
dist/img/user1-128x128.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
0
dist/img/user2-160x160.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
0
dist/img/user3-128x128.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
0
dist/img/user4-128x128.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
0
dist/img/user5-128x128.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
0
dist/img/user6-128x128.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
0
dist/img/user7-128x128.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
0
dist/img/user8-128x128.jpg
vendored
Executable file → Normal file
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
82
dist/js/app.js
vendored
Executable file → Normal file
@@ -7,25 +7,25 @@
|
|||||||
* @Author Almsaeed Studio
|
* @Author Almsaeed Studio
|
||||||
* @Support <http://www.almsaeedstudio.com>
|
* @Support <http://www.almsaeedstudio.com>
|
||||||
* @Email <support@almsaeedstudio.com>
|
* @Email <support@almsaeedstudio.com>
|
||||||
* @version 2.0
|
* @version 2.0.3
|
||||||
* @license MIT <http://opensource.org/licenses/MIT>
|
* @license MIT <http://opensource.org/licenses/MIT>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
//Make sure jQuery has been loaded before app.js
|
//Make sure jQuery has been loaded before app.js
|
||||||
if (typeof jQuery === "undefined") {
|
if (typeof jQuery === "undefined") {
|
||||||
throw new Error("AdminLTE requires jQuery");
|
throw new Error("AdminLTE requires jQuery");
|
||||||
}
|
}
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
/* AdminLTE
|
/* AdminLTE
|
||||||
*
|
*
|
||||||
* @type Object
|
* @type Object
|
||||||
* @description $.AdminLTE is the main object for the template's app.
|
* @description $.AdminLTE is the main object for the template's app.
|
||||||
* It's used for implementing functions and options related
|
* It's used for implementing functions and options related
|
||||||
* to the template. Keeping everything wrapped in an object
|
* to the template. Keeping everything wrapped in an object
|
||||||
* prevents conflict with other plugins and is a better
|
* prevents conflict with other plugins and is a better
|
||||||
* way to organize our code.
|
* way to organize our code.
|
||||||
*/
|
*/
|
||||||
$.AdminLTE = {};
|
$.AdminLTE = {};
|
||||||
|
|
||||||
@@ -53,8 +53,8 @@ $.AdminLTE.options = {
|
|||||||
enableBSToppltip: true,
|
enableBSToppltip: true,
|
||||||
BSTooltipSelector: "[data-toggle='tooltip']",
|
BSTooltipSelector: "[data-toggle='tooltip']",
|
||||||
//Enable Fast Click. Fastclick.js creates a more
|
//Enable Fast Click. Fastclick.js creates a more
|
||||||
//native touch ecperience with touch devices. If you
|
//native touch experience with touch devices. If you
|
||||||
//choose to enable the plugin, make sure you load the script
|
//choose to enable the plugin, make sure you load the script
|
||||||
//before AdminLTE's app.js
|
//before AdminLTE's app.js
|
||||||
enableFastclick: true,
|
enableFastclick: true,
|
||||||
//Box Widget Plugin. Enable this plugin
|
//Box Widget Plugin. Enable this plugin
|
||||||
@@ -77,6 +77,13 @@ $.AdminLTE.options = {
|
|||||||
collapse: '[data-widget="collapse"]'
|
collapse: '[data-widget="collapse"]'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
//Direct Chat plugin options
|
||||||
|
directChat: {
|
||||||
|
//Enable direct chat by default
|
||||||
|
enable: true,
|
||||||
|
//The button to open and close the chat contacts pane
|
||||||
|
contactToggleSelector: '[data-widget="chat-pane-toggle"]'
|
||||||
|
},
|
||||||
//Define the set of colors to use globally around the website
|
//Define the set of colors to use globally around the website
|
||||||
colors: {
|
colors: {
|
||||||
lightBlue: "#3c8dbc",
|
lightBlue: "#3c8dbc",
|
||||||
@@ -95,6 +102,15 @@ $.AdminLTE.options = {
|
|||||||
maroon: "#D81B60",
|
maroon: "#D81B60",
|
||||||
black: "#222222",
|
black: "#222222",
|
||||||
gray: "#d2d6de"
|
gray: "#d2d6de"
|
||||||
|
},
|
||||||
|
//The standard screen sizes that bootstrap uses.
|
||||||
|
//If you change these in the variables.less file, change
|
||||||
|
//them here too.
|
||||||
|
screenSizes: {
|
||||||
|
xs: 480,
|
||||||
|
sm: 768,
|
||||||
|
md: 992,
|
||||||
|
lg: 1200
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -138,11 +154,20 @@ $(function () {
|
|||||||
if (o.enableBoxWidget) {
|
if (o.enableBoxWidget) {
|
||||||
$.AdminLTE.boxWidget.activate();
|
$.AdminLTE.boxWidget.activate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(o.enableFastclick && typeof FastClick != 'undefined') {
|
//Activate fast click
|
||||||
|
if (o.enableFastclick && typeof FastClick != 'undefined') {
|
||||||
FastClick.attach(document.body);
|
FastClick.attach(document.body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Activate direct chat widget
|
||||||
|
if (o.directChat.enable) {
|
||||||
|
$(o.directChat.contactToggleSelector).click(function () {
|
||||||
|
var box = $(this).parents('.direct-chat').first();
|
||||||
|
box.toggleClass('direct-chat-contacts-open');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* INITIALIZE BUTTON TOGGLE
|
* INITIALIZE BUTTON TOGGLE
|
||||||
* ------------------------
|
* ------------------------
|
||||||
@@ -234,16 +259,31 @@ $.AdminLTE.layout = {
|
|||||||
* @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']")
|
* @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']")
|
||||||
*/
|
*/
|
||||||
$.AdminLTE.pushMenu = function (toggleBtn) {
|
$.AdminLTE.pushMenu = function (toggleBtn) {
|
||||||
|
//Get the screen sizes
|
||||||
|
var screenSizes = this.options.screenSizes;
|
||||||
|
|
||||||
//Enable sidebar toggle
|
//Enable sidebar toggle
|
||||||
$(toggleBtn).click(function (e) {
|
$(toggleBtn).click(function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
//Enable sidebar push menu
|
//Enable sidebar push menu
|
||||||
$("body").toggleClass('sidebar-collapse');
|
if ($(window).width() > (screenSizes.sm - 1)) {
|
||||||
$("body").toggleClass('sidebar-open');
|
$("body").toggleClass('sidebar-collapse');
|
||||||
|
}
|
||||||
|
//Handle sidebar push menu for small screens
|
||||||
|
else {
|
||||||
|
if ($("body").hasClass('sidebar-open')) {
|
||||||
|
$("body").removeClass('sidebar-open');
|
||||||
|
$("body").removeClass('sidebar-collapse')
|
||||||
|
} else {
|
||||||
|
$("body").addClass('sidebar-open');
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".content-wrapper").click(function () {
|
$(".content-wrapper").click(function () {
|
||||||
//Enable hide menu when clicking on the content-wrapper on small screens
|
//Enable hide menu when clicking on the content-wrapper on small screens
|
||||||
if ($(window).width() <= 767 && $("body").hasClass("sidebar-open")) {
|
if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) {
|
||||||
$("body").removeClass('sidebar-open');
|
$("body").removeClass('sidebar-open');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -259,6 +299,8 @@ $.AdminLTE.pushMenu = function (toggleBtn) {
|
|||||||
* @Usage: $.AdminLTE.tree('.sidebar')
|
* @Usage: $.AdminLTE.tree('.sidebar')
|
||||||
*/
|
*/
|
||||||
$.AdminLTE.tree = function (menu) {
|
$.AdminLTE.tree = function (menu) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
$("li a", $(menu)).click(function (e) {
|
$("li a", $(menu)).click(function (e) {
|
||||||
//Get the clicked link and the next element
|
//Get the clicked link and the next element
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
@@ -269,6 +311,8 @@ $.AdminLTE.tree = function (menu) {
|
|||||||
//Close the menu
|
//Close the menu
|
||||||
checkElement.slideUp('normal', function () {
|
checkElement.slideUp('normal', function () {
|
||||||
checkElement.removeClass('menu-open');
|
checkElement.removeClass('menu-open');
|
||||||
|
//Fix the layout in case the sidebar stretches over the height of the window
|
||||||
|
//_this.layout.fix();
|
||||||
});
|
});
|
||||||
checkElement.parent("li").removeClass("active");
|
checkElement.parent("li").removeClass("active");
|
||||||
}
|
}
|
||||||
@@ -289,6 +333,8 @@ $.AdminLTE.tree = function (menu) {
|
|||||||
checkElement.addClass('menu-open');
|
checkElement.addClass('menu-open');
|
||||||
parent.find('li.active').removeClass('active');
|
parent.find('li.active').removeClass('active');
|
||||||
parent_li.addClass('active');
|
parent_li.addClass('active');
|
||||||
|
//Fix the layout in case the sidebar stretches over the height of the window
|
||||||
|
_this.layout.fix();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//if this isn't a link, prevent the page from being redirected
|
//if this isn't a link, prevent the page from being redirected
|
||||||
@@ -305,7 +351,7 @@ $.AdminLTE.tree = function (menu) {
|
|||||||
*
|
*
|
||||||
* @type Object
|
* @type Object
|
||||||
* @usage $.AdminLTE.boxWidget.activate()
|
* @usage $.AdminLTE.boxWidget.activate()
|
||||||
* Set all of your option in the main $.AdminLTE.options object
|
* Set all of your option in the main $.AdminLTE.options object
|
||||||
*/
|
*/
|
||||||
$.AdminLTE.boxWidget = {
|
$.AdminLTE.boxWidget = {
|
||||||
activate: function () {
|
activate: function () {
|
||||||
@@ -362,7 +408,7 @@ $.AdminLTE.boxWidget = {
|
|||||||
* This is a custom plugin to use with the compenet BOX. It allows you to add
|
* This is a custom plugin to use with the compenet BOX. It allows you to add
|
||||||
* a refresh button to the box. It converts the box's state to a loading state.
|
* a refresh button to the box. It converts the box's state to a loading state.
|
||||||
*
|
*
|
||||||
* @type plugin
|
* @type plugin
|
||||||
* @usage $("#box-widget").boxRefresh( options );
|
* @usage $("#box-widget").boxRefresh( options );
|
||||||
*/
|
*/
|
||||||
(function ($) {
|
(function ($) {
|
||||||
@@ -384,7 +430,7 @@ $.AdminLTE.boxWidget = {
|
|||||||
}, options);
|
}, options);
|
||||||
|
|
||||||
//The overlay
|
//The overlay
|
||||||
var overlay = $('<div class="overlay"></div><div class="loading-img"></div>');
|
var overlay = $('<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>');
|
||||||
|
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
//if a source is specified
|
//if a source is specified
|
||||||
|
|||||||
4
dist/js/app.min.js
vendored
0
dist/js/demo.js
vendored
Executable file → Normal file
0
dist/js/pages/dashboard.js
vendored
Executable file → Normal file
5
dist/js/pages/dashboard2.js
vendored
Executable file → Normal file
@@ -1,10 +1,5 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
$(function () {
|
$(function () {
|
||||||
|
|
||||||
//Simple implementation of direct chat contact pane toggle (TEMPORARY)
|
|
||||||
$('[data-widget="chat-pane-toggle"]').click(function(){
|
|
||||||
$("#myDirectChat").toggleClass('direct-chat-contacts-open');
|
|
||||||
});
|
|
||||||
|
|
||||||
/* ChartJS
|
/* ChartJS
|
||||||
* -------
|
* -------
|
||||||
|
|||||||