Compare commits
No commits in common. 'master' and 'dev' have entirely different histories.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,126 @@
|
|||||||
|
/*!
|
||||||
|
* metismenu - v2.7.7
|
||||||
|
* A jQuery menu plugin
|
||||||
|
* https://github.com/onokumus/metismenu#readme
|
||||||
|
*
|
||||||
|
* Made by Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus)
|
||||||
|
* Under MIT License
|
||||||
|
*/
|
||||||
|
.metismenu .arrow {
|
||||||
|
float: right;
|
||||||
|
line-height: 1.42857;
|
||||||
|
}
|
||||||
|
*[dir="rtl"] .metismenu .arrow {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Require Bootstrap 3.x
|
||||||
|
* https://github.com/twbs/bootstrap
|
||||||
|
*/
|
||||||
|
|
||||||
|
.metismenu .glyphicon.arrow:before {
|
||||||
|
content: "\e079";
|
||||||
|
}
|
||||||
|
.metismenu .active > a > .glyphicon.arrow:before {
|
||||||
|
content: "\e114";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Require Font-Awesome
|
||||||
|
* http://fortawesome.github.io/Font-Awesome/
|
||||||
|
*/
|
||||||
|
|
||||||
|
.metismenu .fa.arrow:before {
|
||||||
|
content: "\f104";
|
||||||
|
}
|
||||||
|
.metismenu .active > a > .fa.arrow:before {
|
||||||
|
content: "\f107";
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Require Ionicons
|
||||||
|
* http://ionicons.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
.metismenu .ion.arrow:before {
|
||||||
|
content: "\f3d2"
|
||||||
|
}
|
||||||
|
.metismenu .active > a > .ion.arrow:before {
|
||||||
|
content: "\f3d0";
|
||||||
|
}
|
||||||
|
.metismenu .plus-times {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
*[dir="rtl"] .metismenu .plus-times {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.metismenu .fa.plus-times:before {
|
||||||
|
content: "\f067";
|
||||||
|
}
|
||||||
|
.metismenu .active > a > .fa.plus-times {
|
||||||
|
-webkit-transform: rotate(45deg);
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
.metismenu .plus-minus {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
*[dir="rtl"] .metismenu .plus-minus {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.metismenu .fa.plus-minus:before {
|
||||||
|
content: "\f067";
|
||||||
|
}
|
||||||
|
.metismenu .active > a > .fa.plus-minus:before {
|
||||||
|
content: "\f068";
|
||||||
|
}
|
||||||
|
.metismenu .collapse {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.metismenu .collapse.in {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.metismenu .collapsing {
|
||||||
|
position: relative;
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
transition-timing-function: ease;
|
||||||
|
transition-duration: .35s;
|
||||||
|
transition-property: height, visibility;
|
||||||
|
}
|
||||||
|
|
||||||
|
.metismenu .has-arrow {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.metismenu .has-arrow::after {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
width: .5em;
|
||||||
|
height: .5em;
|
||||||
|
border-width: 1px 0 0 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: initial;
|
||||||
|
right: 1em;
|
||||||
|
-webkit-transform: rotate(-45deg) translate(0, -50%);
|
||||||
|
transform: rotate(-45deg) translate(0, -50%);
|
||||||
|
-webkit-transform-origin: top;
|
||||||
|
transform-origin: top;
|
||||||
|
top: 50%;
|
||||||
|
transition: all .3s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[dir="rtl"] .metismenu .has-arrow::after {
|
||||||
|
right: auto;
|
||||||
|
left: 1em;
|
||||||
|
-webkit-transform: rotate(135deg) translate(0, -50%);
|
||||||
|
transform: rotate(135deg) translate(0, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.metismenu .active > .has-arrow::after,
|
||||||
|
.metismenu .has-arrow[aria-expanded="true"]::after {
|
||||||
|
-webkit-transform: rotate(-135deg) translate(0, -50%);
|
||||||
|
transform: rotate(-135deg) translate(0, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=metisMenu.css.map */
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 434 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
File diff suppressed because one or more lines are too long
@ -0,0 +1,342 @@
|
|||||||
|
/*!
|
||||||
|
* metismenu - v2.7.7
|
||||||
|
* A jQuery menu plugin
|
||||||
|
* https://github.com/onokumus/metismenu#readme
|
||||||
|
*
|
||||||
|
* Made by Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus)
|
||||||
|
* Under MIT License
|
||||||
|
*/
|
||||||
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
|
||||||
|
(global.metisMenu = factory(global.jQuery));
|
||||||
|
}(this, (function ($) { 'use strict';
|
||||||
|
|
||||||
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _objectSpread(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i] != null ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ownKeys.forEach(function (key) {
|
||||||
|
_defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
var Util = function ($$$1) {
|
||||||
|
// eslint-disable-line no-shadow
|
||||||
|
var TRANSITION_END = 'transitionend';
|
||||||
|
var Util = {
|
||||||
|
// eslint-disable-line no-shadow
|
||||||
|
TRANSITION_END: 'mmTransitionEnd',
|
||||||
|
triggerTransitionEnd: function triggerTransitionEnd(element) {
|
||||||
|
$$$1(element).trigger(TRANSITION_END);
|
||||||
|
},
|
||||||
|
supportsTransitionEnd: function supportsTransitionEnd() {
|
||||||
|
return Boolean(TRANSITION_END);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
function getSpecialTransitionEndEvent() {
|
||||||
|
return {
|
||||||
|
bindType: TRANSITION_END,
|
||||||
|
delegateType: TRANSITION_END,
|
||||||
|
handle: function handle(event) {
|
||||||
|
if ($$$1(event.target).is(this)) {
|
||||||
|
return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
|
||||||
|
}
|
||||||
|
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function transitionEndEmulator(duration) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
var called = false;
|
||||||
|
$$$1(this).one(Util.TRANSITION_END, function () {
|
||||||
|
called = true;
|
||||||
|
});
|
||||||
|
setTimeout(function () {
|
||||||
|
if (!called) {
|
||||||
|
Util.triggerTransitionEnd(_this);
|
||||||
|
}
|
||||||
|
}, duration);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setTransitionEndSupport() {
|
||||||
|
$$$1.fn.mmEmulateTransitionEnd = transitionEndEmulator; // eslint-disable-line no-param-reassign
|
||||||
|
// eslint-disable-next-line no-param-reassign
|
||||||
|
|
||||||
|
$$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
|
||||||
|
}
|
||||||
|
|
||||||
|
setTransitionEndSupport();
|
||||||
|
return Util;
|
||||||
|
}($);
|
||||||
|
|
||||||
|
var MetisMenu = function ($$$1) {
|
||||||
|
// eslint-disable-line no-shadow
|
||||||
|
var NAME = 'metisMenu';
|
||||||
|
var DATA_KEY = 'metisMenu';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var DATA_API_KEY = '.data-api';
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
var TRANSITION_DURATION = 350;
|
||||||
|
var Default = {
|
||||||
|
toggle: true,
|
||||||
|
preventDefault: true,
|
||||||
|
activeClass: 'active',
|
||||||
|
collapseClass: 'collapse',
|
||||||
|
collapseInClass: 'in',
|
||||||
|
collapsingClass: 'collapsing',
|
||||||
|
triggerElement: 'a',
|
||||||
|
parentTrigger: 'li',
|
||||||
|
subMenu: 'ul'
|
||||||
|
};
|
||||||
|
var Event = {
|
||||||
|
SHOW: "show" + EVENT_KEY,
|
||||||
|
SHOWN: "shown" + EVENT_KEY,
|
||||||
|
HIDE: "hide" + EVENT_KEY,
|
||||||
|
HIDDEN: "hidden" + EVENT_KEY,
|
||||||
|
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
||||||
|
};
|
||||||
|
|
||||||
|
var MetisMenu =
|
||||||
|
/*#__PURE__*/
|
||||||
|
function () {
|
||||||
|
// eslint-disable-line no-shadow
|
||||||
|
function MetisMenu(element, config) {
|
||||||
|
this.element = element;
|
||||||
|
this.config = _objectSpread({}, Default, config);
|
||||||
|
this.transitioning = null;
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
var _proto = MetisMenu.prototype;
|
||||||
|
|
||||||
|
_proto.init = function init() {
|
||||||
|
var self = this;
|
||||||
|
var conf = this.config;
|
||||||
|
$$$1(this.element).find(conf.parentTrigger + "." + conf.activeClass).has(conf.subMenu).children(conf.subMenu).attr('aria-expanded', true).addClass(conf.collapseClass + " " + conf.collapseInClass);
|
||||||
|
$$$1(this.element).find(conf.parentTrigger).not("." + conf.activeClass).has(conf.subMenu).children(conf.subMenu).attr('aria-expanded', false).addClass(conf.collapseClass);
|
||||||
|
$$$1(this.element).find(conf.parentTrigger).has(conf.subMenu).children(conf.triggerElement).on(Event.CLICK_DATA_API, function (e) {
|
||||||
|
// eslint-disable-line func-names
|
||||||
|
var eTar = $$$1(this);
|
||||||
|
var paRent = eTar.parent(conf.parentTrigger);
|
||||||
|
var sibLings = paRent.siblings(conf.parentTrigger).children(conf.triggerElement);
|
||||||
|
var List = paRent.children(conf.subMenu);
|
||||||
|
|
||||||
|
if (conf.preventDefault) {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eTar.attr('aria-disabled') === 'true') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (paRent.hasClass(conf.activeClass)) {
|
||||||
|
eTar.attr('aria-expanded', false);
|
||||||
|
self.hide(List);
|
||||||
|
} else {
|
||||||
|
self.show(List);
|
||||||
|
eTar.attr('aria-expanded', true);
|
||||||
|
|
||||||
|
if (conf.toggle) {
|
||||||
|
sibLings.attr('aria-expanded', false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (conf.onTransitionStart) {
|
||||||
|
conf.onTransitionStart(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.show = function show(element) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
if (this.transitioning || $$$1(element).hasClass(this.config.collapsingClass)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var elem = $$$1(element);
|
||||||
|
var startEvent = $$$1.Event(Event.SHOW);
|
||||||
|
elem.trigger(startEvent);
|
||||||
|
|
||||||
|
if (startEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
elem.parent(this.config.parentTrigger).addClass(this.config.activeClass);
|
||||||
|
|
||||||
|
if (this.config.toggle) {
|
||||||
|
this.hide(elem.parent(this.config.parentTrigger).siblings().children(this.config.subMenu + "." + this.config.collapseInClass).attr('aria-expanded', false));
|
||||||
|
}
|
||||||
|
|
||||||
|
elem.removeClass(this.config.collapseClass).addClass(this.config.collapsingClass).height(0);
|
||||||
|
this.setTransitioning(true);
|
||||||
|
|
||||||
|
var complete = function complete() {
|
||||||
|
// check if disposed
|
||||||
|
if (!_this.config || !_this.element) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
elem.removeClass(_this.config.collapsingClass).addClass(_this.config.collapseClass + " " + _this.config.collapseInClass).height('').attr('aria-expanded', true);
|
||||||
|
|
||||||
|
_this.setTransitioning(false);
|
||||||
|
|
||||||
|
elem.trigger(Event.SHOWN);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!Util.supportsTransitionEnd()) {
|
||||||
|
complete();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
elem.height(element[0].scrollHeight).one(Util.TRANSITION_END, complete).mmEmulateTransitionEnd(TRANSITION_DURATION);
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.hide = function hide(element) {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
if (this.transitioning || !$$$1(element).hasClass(this.config.collapseInClass)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var elem = $$$1(element);
|
||||||
|
var startEvent = $$$1.Event(Event.HIDE);
|
||||||
|
elem.trigger(startEvent);
|
||||||
|
|
||||||
|
if (startEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
elem.parent(this.config.parentTrigger).removeClass(this.config.activeClass); // eslint-disable-next-line no-unused-expressions
|
||||||
|
|
||||||
|
elem.height(elem.height())[0].offsetHeight;
|
||||||
|
elem.addClass(this.config.collapsingClass).removeClass(this.config.collapseClass).removeClass(this.config.collapseInClass);
|
||||||
|
this.setTransitioning(true);
|
||||||
|
|
||||||
|
var complete = function complete() {
|
||||||
|
// check if disposed
|
||||||
|
if (!_this2.config || !_this2.element) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_this2.transitioning && _this2.config.onTransitionEnd) {
|
||||||
|
_this2.config.onTransitionEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
_this2.setTransitioning(false);
|
||||||
|
|
||||||
|
elem.trigger(Event.HIDDEN);
|
||||||
|
elem.removeClass(_this2.config.collapsingClass).addClass(_this2.config.collapseClass).attr('aria-expanded', false);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!Util.supportsTransitionEnd()) {
|
||||||
|
complete();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (elem.height() === 0 || elem.css('display') === 'none') {
|
||||||
|
complete();
|
||||||
|
} else {
|
||||||
|
elem.height(0).one(Util.TRANSITION_END, complete).mmEmulateTransitionEnd(TRANSITION_DURATION);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
||||||
|
this.transitioning = isTransitioning;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.dispose = function dispose() {
|
||||||
|
$$$1.removeData(this.element, DATA_KEY);
|
||||||
|
$$$1(this.element).find(this.config.parentTrigger).has(this.config.subMenu).children(this.config.triggerElement).off('click');
|
||||||
|
this.transitioning = null;
|
||||||
|
this.config = null;
|
||||||
|
this.element = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
MetisMenu.jQueryInterface = function jQueryInterface(config) {
|
||||||
|
// eslint-disable-next-line func-names
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $$$1(this);
|
||||||
|
var data = $this.data(DATA_KEY);
|
||||||
|
|
||||||
|
var conf = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
|
||||||
|
|
||||||
|
if (!data && /dispose/.test(config)) {
|
||||||
|
this.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new MetisMenu(this, conf);
|
||||||
|
$this.data(DATA_KEY, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string') {
|
||||||
|
if (data[config] === undefined) {
|
||||||
|
throw new Error("No method named \"" + config + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
data[config]();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return MetisMenu;
|
||||||
|
}();
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$$$1.fn[NAME] = MetisMenu.jQueryInterface; // eslint-disable-line no-param-reassign
|
||||||
|
|
||||||
|
$$$1.fn[NAME].Constructor = MetisMenu; // eslint-disable-line no-param-reassign
|
||||||
|
|
||||||
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
|
// eslint-disable-line no-param-reassign
|
||||||
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT; // eslint-disable-line no-param-reassign
|
||||||
|
|
||||||
|
return MetisMenu.jQueryInterface;
|
||||||
|
};
|
||||||
|
|
||||||
|
return MetisMenu;
|
||||||
|
}($);
|
||||||
|
|
||||||
|
return MetisMenu;
|
||||||
|
|
||||||
|
})));
|
||||||
|
//# sourceMappingURL=metisMenu.js.map
|
||||||
@ -1,26 +1,50 @@
|
|||||||
/*
|
/* Components */
|
||||||
/!**
|
import jQuery from 'jquery';
|
||||||
* First we will load all of this project's JavaScript dependencies which
|
import 'metismenu';
|
||||||
* includes Vue and other libraries. It is a great starting point when
|
import vue from 'vue';
|
||||||
* building robust, powerful web applications using Vue and Laravel.
|
import role from './components/admin/Role.vue';
|
||||||
*!/
|
|
||||||
|
|
||||||
import 'babel-polyfill';
|
/* CSS */
|
||||||
import './bootstrap';
|
import '../sass/admin.scss';
|
||||||
|
|
||||||
window.Vue = require('vue');
|
window.$ = window.jQuery = jQuery;
|
||||||
|
|
||||||
|
$().ready(function () {
|
||||||
|
$("#side-menu").metisMenu();
|
||||||
|
|
||||||
/!**
|
$(window).bind("load resize", function () {
|
||||||
* Next, we will create a fresh Vue application instance and attach it to
|
let topOffset = 50;
|
||||||
* the page. Then, you may begin adding components to this application
|
let width = ((this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.height) - 1;
|
||||||
* or customize the JavaScript scaffolding to fit your unique needs.
|
if (width < 768) {
|
||||||
*!/
|
$("div.navbar-collapse").addClass('collapse');
|
||||||
|
topOffset = 100;
|
||||||
|
} else {
|
||||||
|
$('div.navbar-collapse').removeClass('collapse');
|
||||||
|
}
|
||||||
|
|
||||||
import role from './components/admin/Role.vue';
|
let height = ((this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height) - 1;
|
||||||
|
height = height - topOffset;
|
||||||
|
if (height < 1) height = 1;
|
||||||
|
if (height > topOffset) {
|
||||||
|
$("#page-wrapper").css("min-height", (height) + "px");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let url = window.location;
|
||||||
|
let element = $('ul.nav a').filter(function () {
|
||||||
|
return this.href == url;
|
||||||
|
}).addClass('active').parent();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (element.is('li')) {
|
||||||
|
element = element.parent().addClass('in').parent();
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const app = new Vue({
|
const app = new vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
components: {role}
|
components: {role}
|
||||||
});*/
|
});
|
||||||
@ -1,9 +1,558 @@
|
|||||||
|
|
||||||
// Fonts
|
|
||||||
// @import url("https://fonts.googleapis.com/css?family=Raleway:300,400,600");
|
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
@import "variables";
|
@import "variables";
|
||||||
|
|
||||||
// Bootstrap
|
// Bootstrap
|
||||||
@import "~bootstrap-sass/assets/stylesheets/bootstrap";
|
@import "~bootstrap-sass/assets/stylesheets/bootstrap";
|
||||||
|
|
||||||
|
// Font-Awesome
|
||||||
|
$fa-font-path: "~font-awesome/fonts";
|
||||||
|
@import "~font-awesome/scss/font-awesome";
|
||||||
|
|
||||||
|
// Admin
|
||||||
|
@import "mixins";
|
||||||
|
|
||||||
|
// Global Styles
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: $gray-lightest;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wrappers
|
||||||
|
|
||||||
|
#wrapper {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-wrapper {
|
||||||
|
padding: 0 15px;
|
||||||
|
min-height: 568px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media(min-width:768px) {
|
||||||
|
#page-wrapper {
|
||||||
|
position: inherit;
|
||||||
|
margin: 0 0 0 250px;
|
||||||
|
padding: 0 30px;
|
||||||
|
border-left: 1px solid darken($gray-lightest, 6.5%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Navigation
|
||||||
|
|
||||||
|
// --Topbar
|
||||||
|
|
||||||
|
.navbar-top-links {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links li {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links li:last-child {
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links li a {
|
||||||
|
padding: 15px;
|
||||||
|
min-height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-menu li {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-menu li:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-menu li a {
|
||||||
|
padding: 3px 20px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-menu li a div {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-messages,
|
||||||
|
.navbar-top-links .dropdown-tasks,
|
||||||
|
.navbar-top-links .dropdown-alerts {
|
||||||
|
width: 310px;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-messages {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-tasks {
|
||||||
|
margin-left: -59px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-alerts {
|
||||||
|
margin-left: -123px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-user {
|
||||||
|
right: 0;
|
||||||
|
left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --Sidebar
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
.sidebar-nav.navbar-collapse {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .sidebar-search {
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar ul li {
|
||||||
|
border-bottom: 1px solid darken($gray-lightest, 6.5%);
|
||||||
|
a {
|
||||||
|
&.active {
|
||||||
|
background-color: $gray-lighter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .arrow {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .fa.arrow:before {
|
||||||
|
content: "\f104";
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .active > a > .fa.arrow:before {
|
||||||
|
content: "\f107";
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .nav-second-level li,
|
||||||
|
.sidebar .nav-third-level li {
|
||||||
|
border-bottom: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .nav-second-level li a {
|
||||||
|
padding-left: 37px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .nav-third-level li a {
|
||||||
|
padding-left: 52px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media(min-width:768px) {
|
||||||
|
.sidebar {
|
||||||
|
z-index: 1;
|
||||||
|
position: absolute;
|
||||||
|
width: 250px;
|
||||||
|
margin-top: 51px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-top-links .dropdown-messages,
|
||||||
|
.navbar-top-links .dropdown-tasks,
|
||||||
|
.navbar-top-links .dropdown-alerts {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
|
||||||
|
.btn-outline {
|
||||||
|
color: inherit;
|
||||||
|
background-color: transparent;
|
||||||
|
transition: all .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary.btn-outline {
|
||||||
|
color: $brand-primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-success.btn-outline {
|
||||||
|
color: $brand-success;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-info.btn-outline {
|
||||||
|
color: $brand-info;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-warning.btn-outline {
|
||||||
|
color: $brand-warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-danger.btn-outline {
|
||||||
|
color: $brand-danger;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary.btn-outline:hover,
|
||||||
|
.btn-success.btn-outline:hover,
|
||||||
|
.btn-info.btn-outline:hover,
|
||||||
|
.btn-warning.btn-outline:hover,
|
||||||
|
.btn-danger.btn-outline:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chat Widget
|
||||||
|
|
||||||
|
.chat {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat li {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
border-bottom: 1px dotted $gray-light;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat li.left .chat-body {
|
||||||
|
margin-left: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat li.right .chat-body {
|
||||||
|
margin-right: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat li .chat-body p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel .slidedown .glyphicon,
|
||||||
|
.chat .glyphicon {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-panel .panel-body {
|
||||||
|
height: 350px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Login Page
|
||||||
|
|
||||||
|
.login-panel {
|
||||||
|
margin-top: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flot Charts Containers
|
||||||
|
|
||||||
|
.flot-chart {
|
||||||
|
display: block;
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flot-chart-content {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DataTables Overrides
|
||||||
|
|
||||||
|
table.dataTable thead .sorting,
|
||||||
|
table.dataTable thead .sorting_asc,
|
||||||
|
table.dataTable thead .sorting_desc,
|
||||||
|
table.dataTable thead .sorting_asc_disabled,
|
||||||
|
table.dataTable thead .sorting_desc_disabled {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead .sorting_asc:after {
|
||||||
|
content: "\f0de";
|
||||||
|
float: right;
|
||||||
|
font-family: fontawesome;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead .sorting_desc:after {
|
||||||
|
content: "\f0dd";
|
||||||
|
float: right;
|
||||||
|
font-family: fontawesome;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead .sorting:after {
|
||||||
|
content: "\f0dc";
|
||||||
|
float: right;
|
||||||
|
font-family: fontawesome;
|
||||||
|
color: rgba(50,50,50,.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Circle Buttons
|
||||||
|
|
||||||
|
.btn-circle {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
padding: 6px 0;
|
||||||
|
border-radius: 15px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.428571429;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-circle.btn-lg {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
padding: 10px 16px;
|
||||||
|
border-radius: 25px;
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 1.33;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-circle.btn-xl {
|
||||||
|
width: 70px;
|
||||||
|
height: 70px;
|
||||||
|
padding: 10px 16px;
|
||||||
|
border-radius: 35px;
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1.33;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grid Demo Elements
|
||||||
|
|
||||||
|
.show-grid [class^="col-"] {
|
||||||
|
padding-top: 10px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
background-color: #eee !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show-grid {
|
||||||
|
margin: 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Custom Colored Panels
|
||||||
|
|
||||||
|
.huge {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-green {
|
||||||
|
border-color: $brand-success;
|
||||||
|
> .panel-heading {
|
||||||
|
border-color: $brand-success;
|
||||||
|
color: white;
|
||||||
|
background-color: $brand-success;
|
||||||
|
}
|
||||||
|
> a {
|
||||||
|
color: $brand-success;
|
||||||
|
&:hover {
|
||||||
|
color: darken($brand-success, 15%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-red {
|
||||||
|
border-color: $brand-danger;
|
||||||
|
> .panel-heading {
|
||||||
|
border-color: $brand-danger;
|
||||||
|
color: white;
|
||||||
|
background-color: $brand-danger;
|
||||||
|
}
|
||||||
|
> a {
|
||||||
|
color: $brand-danger;
|
||||||
|
&:hover {
|
||||||
|
color: darken($brand-danger, 15%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-yellow {
|
||||||
|
border-color: $brand-warning;
|
||||||
|
> .panel-heading {
|
||||||
|
border-color: $brand-warning;
|
||||||
|
color: white;
|
||||||
|
background-color: $brand-warning;
|
||||||
|
}
|
||||||
|
> a {
|
||||||
|
color: $brand-warning;
|
||||||
|
&:hover {
|
||||||
|
color: darken($brand-warning, 15%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Timeline
|
||||||
|
.timeline {
|
||||||
|
position: relative;
|
||||||
|
padding: 20px 0 20px;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline:before {
|
||||||
|
content: " ";
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 50%;
|
||||||
|
width: 3px;
|
||||||
|
margin-left: -1.5px;
|
||||||
|
background-color: #eeeeee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li:before,
|
||||||
|
.timeline > li:after {
|
||||||
|
content: " ";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li:before,
|
||||||
|
.timeline > li:after {
|
||||||
|
content: " ";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li > .timeline-panel {
|
||||||
|
float: left;
|
||||||
|
position: relative;
|
||||||
|
width: 46%;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid #d4d4d4;
|
||||||
|
border-radius: 2px;
|
||||||
|
-webkit-box-shadow: 0 1px 6px rgba(0,0,0,0.175);
|
||||||
|
box-shadow: 0 1px 6px rgba(0,0,0,0.175);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li > .timeline-panel:before {
|
||||||
|
content: " ";
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
top: 26px;
|
||||||
|
right: -15px;
|
||||||
|
border-top: 15px solid transparent;
|
||||||
|
border-right: 0 solid #ccc;
|
||||||
|
border-bottom: 15px solid transparent;
|
||||||
|
border-left: 15px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li > .timeline-panel:after {
|
||||||
|
content: " ";
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
top: 27px;
|
||||||
|
right: -14px;
|
||||||
|
border-top: 14px solid transparent;
|
||||||
|
border-right: 0 solid #fff;
|
||||||
|
border-bottom: 14px solid transparent;
|
||||||
|
border-left: 14px solid #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li > .timeline-badge {
|
||||||
|
z-index: 100;
|
||||||
|
position: absolute;
|
||||||
|
top: 16px;
|
||||||
|
left: 50%;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
margin-left: -25px;
|
||||||
|
border-radius: 50% 50% 50% 50%;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.4em;
|
||||||
|
line-height: 50px;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li.timeline-inverted > .timeline-panel {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li.timeline-inverted > .timeline-panel:before {
|
||||||
|
right: auto;
|
||||||
|
left: -15px;
|
||||||
|
border-right-width: 15px;
|
||||||
|
border-left-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline > li.timeline-inverted > .timeline-panel:after {
|
||||||
|
right: auto;
|
||||||
|
left: -14px;
|
||||||
|
border-right-width: 14px;
|
||||||
|
border-left-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-badge.primary {
|
||||||
|
background-color: #2e6da4 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-badge.success {
|
||||||
|
background-color: #3f903f !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-badge.warning {
|
||||||
|
background-color: #f0ad4e !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-badge.danger {
|
||||||
|
background-color: #d9534f !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-badge.info {
|
||||||
|
background-color: #5bc0de !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-title {
|
||||||
|
margin-top: 0;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-body > p,
|
||||||
|
.timeline-body > ul {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-body > p + p {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media(max-width:767px) {
|
||||||
|
ul.timeline:before {
|
||||||
|
left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.timeline > li > .timeline-panel {
|
||||||
|
width: calc(100% - 90px);
|
||||||
|
width: -moz-calc(100% - 90px);
|
||||||
|
width: -webkit-calc(100% - 90px);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.timeline > li > .timeline-badge {
|
||||||
|
top: 16px;
|
||||||
|
left: 15px;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.timeline > li > .timeline-panel {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.timeline > li > .timeline-panel:before {
|
||||||
|
right: auto;
|
||||||
|
left: -15px;
|
||||||
|
border-right-width: 15px;
|
||||||
|
border-left-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.timeline > li > .timeline-panel:after {
|
||||||
|
right: auto;
|
||||||
|
left: -14px;
|
||||||
|
border-right-width: 14px;
|
||||||
|
border-left-width: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -0,0 +1 @@
|
|||||||
|
// Mixins
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: DnBI
|
||||||
|
* Date: 2018/4/27
|
||||||
|
* Time: 15:56
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
'admin_title' => '测试'
|
||||||
|
];
|
||||||
@ -1,18 +1,23 @@
|
|||||||
<!doctype html>
|
@extends('layouts.admin')
|
||||||
<html lang="{{ app()->getLocale() }}">
|
|
||||||
<head>
|
@section('content')
|
||||||
<meta charset="utf-8">
|
<div class="container">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<div class="row">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<div class="col-md-8 col-md-offset-2">
|
||||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
<div class="panel panel-default">
|
||||||
<link rel="stylesheet" href="{{ asset('css/admin.css') }}">
|
<div class="panel-heading">Dashboard</div>
|
||||||
<title>Laravel Todo Application</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="container" id="app">
|
|
||||||
<tasks></tasks>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="{{ asset('js/admin.js') }}"></script>
|
<div class="panel-body">
|
||||||
</body>
|
@if (session('status'))
|
||||||
</html>
|
<div class="alert alert-success">
|
||||||
|
{{ session('status') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
You are logged in!
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
Loading…
Reference in new issue