Merge branch 'dev' into module_profiler
This commit is contained in:
+9
-2
@@ -22,8 +22,9 @@ a:focus {
|
||||
padding-bottom: 20px !important;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
margin: .3em 0;
|
||||
.blur {
|
||||
-webkit-filter: blur(3px);
|
||||
filter: blur(3px);
|
||||
}
|
||||
|
||||
.text-center {
|
||||
@@ -413,5 +414,11 @@ img {
|
||||
/*background-color: #C9302C;*/
|
||||
/*}*/
|
||||
|
||||
.has-subpages:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#orderSetup .subpage td:first-child {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,487 +1,9 @@
|
||||
var config = window.config = {};
|
||||
|
||||
// Config reference element
|
||||
var $ref = $ ("#ref");
|
||||
|
||||
// Configure responsive bootstrap toolkit
|
||||
config.ResponsiveBootstrapToolkitVisibilityDivs = {
|
||||
'xs': $ ('<div class="device-xs hidden-sm-up"></div>'),
|
||||
'sm': $ ('<div class="device-sm hidden-xs-down hidden-md-up"></div>'),
|
||||
'md': $ ('<div class="device-md hidden-sm-down hidden-lg-up"></div>'),
|
||||
'lg': $ ('<div class="device-lg hidden-md-down hidden-xl-up"></div>'),
|
||||
'xl': $ ('<div class="device-xl hidden-lg-down"></div>')
|
||||
};
|
||||
|
||||
ResponsiveBootstrapToolkit.use ('Custom', config.ResponsiveBootstrapToolkitVisibilityDivs);
|
||||
|
||||
//validation configuration
|
||||
config.validations = {
|
||||
debug: true,
|
||||
errorClass: 'has-error',
|
||||
validClass: 'success',
|
||||
errorElement: "span",
|
||||
|
||||
// add error class
|
||||
highlight: function (element, errorClass, validClass) {
|
||||
$ (element).parents ("div.form-group")
|
||||
.addClass (errorClass)
|
||||
.removeClass (validClass);
|
||||
},
|
||||
|
||||
// add error class
|
||||
unhighlight: function (element, errorClass, validClass) {
|
||||
$ (element).parents (".has-error")
|
||||
.removeClass (errorClass)
|
||||
.addClass (validClass);
|
||||
},
|
||||
|
||||
// submit handler
|
||||
submitHandler: function (form) {
|
||||
form.submit ();
|
||||
}
|
||||
};
|
||||
|
||||
//delay time configuration
|
||||
config.delayTime = 50;
|
||||
|
||||
// chart configurations
|
||||
config.chart = {};
|
||||
|
||||
/***********************************************
|
||||
* Animation Settings
|
||||
***********************************************/
|
||||
function animate(options) {
|
||||
var animationName = "animated " + options.name;
|
||||
var animationEnd = "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend";
|
||||
$ (options.selector)
|
||||
.addClass (animationName)
|
||||
.one (animationEnd,
|
||||
function () {
|
||||
$ (this).removeClass (animationName);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$ (function () {
|
||||
var $itemActions = $ (".item-actions-dropdown");
|
||||
|
||||
$ (document).on ('click', function (e) {
|
||||
if (!$ (e.target).closest ('.item-actions-dropdown').length) {
|
||||
$itemActions.removeClass ('active');
|
||||
}
|
||||
});
|
||||
|
||||
$ ('.item-actions-toggle-btn').on ('click', function (e) {
|
||||
e.preventDefault ();
|
||||
|
||||
var $thisActionList = $ (this).closest ('.item-actions-dropdown');
|
||||
|
||||
$itemActions.not ($thisActionList).removeClass ('active');
|
||||
|
||||
$thisActionList.toggleClass ('active');
|
||||
});
|
||||
});
|
||||
|
||||
// /***********************************************
|
||||
// * NProgress Settings
|
||||
// ***********************************************/
|
||||
// var npSettings = {
|
||||
// easing: 'ease',
|
||||
// speed: 500
|
||||
// };
|
||||
//
|
||||
// NProgress.configure (npSettings);
|
||||
// $ (function () {
|
||||
// setSameHeights ();
|
||||
//
|
||||
// var resizeTimer;
|
||||
//
|
||||
// $ (window).resize (function () {
|
||||
// clearTimeout (resizeTimer);
|
||||
// resizeTimer = setTimeout (setSameHeights, 150);
|
||||
// });
|
||||
// });
|
||||
|
||||
function setSameHeights($container) {
|
||||
|
||||
$container = $container || $ ('.sameheight-container');
|
||||
|
||||
var viewport = ResponsiveBootstrapToolkit.current ();
|
||||
|
||||
$container.each (function () {
|
||||
|
||||
var $items = $ (this).find (".sameheight-item");
|
||||
|
||||
// Get max height of items in container
|
||||
var maxHeight = 0;
|
||||
|
||||
$items.each (function () {
|
||||
$ (this).css ({height: 'auto'});
|
||||
maxHeight = Math.max (maxHeight, $ (this).innerHeight ());
|
||||
});
|
||||
|
||||
// Set heights of items
|
||||
$items.each (function () {
|
||||
// Ignored viewports for item
|
||||
var excludedStr = $ (this).data ('exclude') || '';
|
||||
var excluded = excludedStr.split (',');
|
||||
|
||||
// Set height of element if it's not excluded on
|
||||
if (excluded.indexOf (viewport) === -1) {
|
||||
$ (this).innerHeight (maxHeight);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
$ (function () {
|
||||
animate ({
|
||||
name: 'flipInY',
|
||||
selector: '.error-card > .error-title-block'
|
||||
});
|
||||
|
||||
setTimeout (function () {
|
||||
var $el = $ ('.error-card > .error-container');
|
||||
|
||||
animate ({
|
||||
name: 'fadeInUp',
|
||||
selector: $el
|
||||
});
|
||||
|
||||
$el.addClass ('visible');
|
||||
}, 500);
|
||||
});
|
||||
|
||||
$ (function () {
|
||||
|
||||
$ ('#sidebar-menu, #customize-menu').metisMenu ({
|
||||
activeClass: 'open'
|
||||
});
|
||||
|
||||
$ ('#sidebar-collapse-btn').on ('click', function (event) {
|
||||
event.preventDefault ();
|
||||
|
||||
$ ("#app").toggleClass ("sidebar-open");
|
||||
});
|
||||
|
||||
$ ("#sidebar-overlay").on ('click', function () {
|
||||
$ ("#app").removeClass ("sidebar-open");
|
||||
});
|
||||
|
||||
});
|
||||
$ (function () {
|
||||
|
||||
$ ('.actions-list > li').on ('click', '.check', function (e) {
|
||||
e.preventDefault ();
|
||||
|
||||
$ (this).parents ('.tasks-item')
|
||||
.find ('.checkbox')
|
||||
.prop ("checked", true);
|
||||
|
||||
// removeActionList ();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// $ (function () {
|
||||
|
||||
// // set sortable options
|
||||
// $ ('.images-container').sortable ({
|
||||
// animation: 150,
|
||||
// handle: ".control-btn.move",
|
||||
// draggable: ".image-container",
|
||||
// onMove: function (evt) {
|
||||
// var $relatedElem = $ (evt.related);
|
||||
//
|
||||
// if ($relatedElem.hasClass ('add-image')) {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// var $controlsButtons = $ ('.controls');
|
||||
//
|
||||
// var $controlsButtonsStar = $controlsButtons.find ('.star');
|
||||
//
|
||||
// $controlsButtonsStar.on ('click', function (e) {
|
||||
// e.preventDefault ();
|
||||
//
|
||||
// $controlsButtonsStar.removeClass ('active');
|
||||
// $controlsButtonsStar.parents ('.image-container').removeClass ('main');
|
||||
//
|
||||
// $ (this).addClass ('active');
|
||||
//
|
||||
// $ (this).parents ('.image-container').addClass ('main');
|
||||
// })
|
||||
// });
|
||||
|
||||
$ (function () {
|
||||
$ ('.nav-profile > li > a').on ('click', function () {
|
||||
var $el = $ (this).next ();
|
||||
|
||||
animate ({
|
||||
name: 'flipInX',
|
||||
selector: $el
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$ (function () {
|
||||
// Local storage settings
|
||||
var themeSettings = getThemeSettings ();
|
||||
|
||||
// Elements
|
||||
|
||||
var $app = $ ('#app');
|
||||
var $styleLink = $ ('#theme-style');
|
||||
var $customizeMenu = $ ('#customize-menu');
|
||||
|
||||
// Color switcher
|
||||
var $customizeMenuColorBtns = $customizeMenu.find ('.color-item');
|
||||
|
||||
// Position switchers
|
||||
var $customizeMenuRadioBtns = $customizeMenu.find ('.radio');
|
||||
|
||||
// /////////////////////////////////////////////////
|
||||
|
||||
// Initial state
|
||||
|
||||
// On setting event, set corresponding options
|
||||
|
||||
// Update customize view based on options
|
||||
|
||||
// Update theme based on options
|
||||
|
||||
/************************************************
|
||||
* Initial State
|
||||
*************************************************/
|
||||
|
||||
setThemeSettings ();
|
||||
|
||||
/************************************************
|
||||
* Events
|
||||
*************************************************/
|
||||
|
||||
// set theme type
|
||||
$customizeMenuColorBtns.on ('click', function () {
|
||||
themeSettings.themeName = $ (this).data ('theme');
|
||||
|
||||
setThemeSettings ();
|
||||
});
|
||||
|
||||
$customizeMenuRadioBtns.on ('click', function () {
|
||||
|
||||
var optionName = $ (this).prop ('name');
|
||||
themeSettings[optionName] = $ (this).val ();
|
||||
|
||||
setThemeSettings ();
|
||||
});
|
||||
|
||||
function setThemeSettings() {
|
||||
setThemeState ()
|
||||
.delay (config.delayTime)
|
||||
.queue (function (next) {
|
||||
|
||||
setThemeColor ();
|
||||
setThemeControlsState ();
|
||||
saveThemeSettings ();
|
||||
|
||||
$ (document).trigger ("themechange");
|
||||
|
||||
next ();
|
||||
});
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Update theme based on options
|
||||
*************************************************/
|
||||
|
||||
function setThemeState() {
|
||||
// set theme type
|
||||
if (themeSettings.themeName) {
|
||||
$styleLink.attr ('href', window.cssPath + '/app-' + themeSettings.themeName + '.css');
|
||||
}
|
||||
else {
|
||||
$styleLink.attr ('href', window.cssPath + '/app.css');
|
||||
}
|
||||
// App classes
|
||||
$app.removeClass ('header-fixed footer-fixed sidebar-fixed');
|
||||
|
||||
// set header
|
||||
$app.addClass (themeSettings.headerPosition);
|
||||
|
||||
// set footer
|
||||
$app.addClass (themeSettings.footerPosition);
|
||||
|
||||
// set footer
|
||||
$app.addClass (themeSettings.sidebarPosition);
|
||||
|
||||
return $app;
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Update theme controls based on options
|
||||
*************************************************/
|
||||
|
||||
function setThemeControlsState() {
|
||||
// set color switcher
|
||||
$customizeMenuColorBtns.each (function () {
|
||||
if ($ (this).data ('theme') === themeSettings.themeName) {
|
||||
$ (this).addClass ('active');
|
||||
}
|
||||
else {
|
||||
$ (this).removeClass ('active');
|
||||
}
|
||||
});
|
||||
|
||||
// set radio buttons
|
||||
$customizeMenuRadioBtns.each (function () {
|
||||
var name = $ (this).prop ('name');
|
||||
var value = $ (this).val ();
|
||||
|
||||
if (themeSettings[name] === value) {
|
||||
$ (this).prop ("checked", true);
|
||||
}
|
||||
else {
|
||||
$ (this).prop ("checked", false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Update theme color
|
||||
*************************************************/
|
||||
function setThemeColor() {
|
||||
config.chart.colorPrimary = tinycolor ($ref.find (".chart .color-primary").css ("color"));
|
||||
config.chart.colorSecondary = tinycolor ($ref.find (".chart .color-secondary").css ("color"));
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Storage Functions
|
||||
*************************************************/
|
||||
|
||||
function getThemeSettings() {
|
||||
var settings = (localStorage.getItem ('themeSettings')) ? JSON.parse (localStorage.getItem ('themeSettings')) : {};
|
||||
|
||||
settings.headerPosition = settings.headerPosition || '';
|
||||
settings.sidebarPosition = settings.sidebarPosition || '';
|
||||
settings.footerPosition = settings.footerPosition || '';
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
function saveThemeSettings() {
|
||||
localStorage.setItem ('themeSettings', JSON.stringify (themeSettings));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$ (function () {
|
||||
// bind some custom methods
|
||||
$ (document).ready (function () {
|
||||
|
||||
$ ("body").addClass ("loaded");
|
||||
|
||||
var notification = $ ('.notification');
|
||||
if (notification.length) {
|
||||
|
||||
notification.click (function () {
|
||||
$ (this).fadeOut ('fast');
|
||||
});
|
||||
|
||||
setTimeout (function () {
|
||||
notification.fadeOut (1500)
|
||||
}, 5 * 1000)
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Makes slug from input string
|
||||
*
|
||||
* @param text
|
||||
* @param trimSpaces
|
||||
*
|
||||
* @returns {string}
|
||||
*/
|
||||
function slugify(text, trimSpaces) {
|
||||
text = text.toString ().toLowerCase ();
|
||||
|
||||
if (trimSpaces)
|
||||
text = text.trim ();
|
||||
|
||||
return text.replace (/ /g, '-')
|
||||
.replace (/[àáâãäå]/g, "a")
|
||||
.replace (/[čç]/g, "c")
|
||||
.replace (/[ěèéêë]/g, "e")
|
||||
.replace (/[ùúûüů]/g, "u")
|
||||
.replace (/[ìíîï]/g, "i")
|
||||
.replace (/[ňńñ]/g, "n")
|
||||
.replace (/[òóôõö]/g, "o")
|
||||
.replace (/[ýÿ]/g, "y")
|
||||
.replace (/œ/g, "oe")
|
||||
.replace (/ď/g, "d")
|
||||
.replace (/ř/g, "r")
|
||||
.replace (/š/g, "s")
|
||||
.replace (/ž/g, "z")
|
||||
.replace (/ť/g, "t")
|
||||
.replace (/æ/g, "ae")
|
||||
.replace (/[^a-z0-9\-]+/g, '')
|
||||
.replace (/--+/g, '-');
|
||||
}
|
||||
|
||||
// bind some custom methods
|
||||
$ (document).ready (function () {
|
||||
var previousTitle, previousMessage;
|
||||
|
||||
$ ('.confirm').click (function (e) {
|
||||
|
||||
var titleElement = $ ('#confirmation-title');
|
||||
var messageElement = $ ('#confirmation-message');
|
||||
|
||||
previousTitle = titleElement.text ();
|
||||
previousMessage = messageElement.text ();
|
||||
|
||||
var confirmTitle = $ (this).data ('title');
|
||||
var confirmMessage = $ (this).data ('message');
|
||||
var href = $ (this).attr ('href');
|
||||
|
||||
$ ('#confirm-button').attr ('href', href);
|
||||
|
||||
if (confirmTitle)
|
||||
titleElement.text (confirmTitle);
|
||||
|
||||
if (confirmMessage)
|
||||
messageElement.text (confirmMessage);
|
||||
|
||||
$ ('#confirm-modal').modal ('show');
|
||||
|
||||
e.preventDefault ();
|
||||
});
|
||||
|
||||
$ ('#confirm-modal').on ('hidden.bs.modal', function () {
|
||||
$ ('#confirmation-title').text (previousTitle);
|
||||
$ ('#confirmation-message').text (previousMessage);
|
||||
});
|
||||
|
||||
$ ('#lockUrl').change (function () {
|
||||
$ ('.slug-source').keyup ();
|
||||
});
|
||||
|
||||
$ ('.slug-target').keyup (function () {
|
||||
$ (this).val (slugify ($ (this).val (), false));
|
||||
$ ('#lockUrl').prop ('checked', true);
|
||||
});
|
||||
|
||||
$ ('.slug-source').keyup (function () {
|
||||
var source = $ (this);
|
||||
var target = $ ('.slug-target');
|
||||
var locked = $ ('#lockUrl');
|
||||
|
||||
if (!locked.is (':checked'))
|
||||
target.val (slugify (source.val (), true));
|
||||
});
|
||||
|
||||
$ (function () {
|
||||
$ ('[data-toggle="tooltip"]').tooltip ()
|
||||
});
|
||||
$ ('[data-toggle="tooltip"]').tooltip ()
|
||||
|
||||
// find if any error occured and mark tab with that error
|
||||
$ ('.has-error').each (function () {
|
||||
@@ -491,20 +13,31 @@ $ (document).ready (function () {
|
||||
$ ("#" + tabCard.prop ('id') + "-tab").addClass ('tab-with-error');
|
||||
});
|
||||
|
||||
$('#removeTitlePhoto').click(function () {
|
||||
$('#titlePhotoContainer').remove();
|
||||
// $('existingTitlePhoto').val(null);
|
||||
$ ('#removeTitlePhoto').click (function () {
|
||||
$ ('#titlePhotoContainer').remove ();
|
||||
});
|
||||
|
||||
$('form').areYouSure();
|
||||
$ ('form').areYouSure ();
|
||||
});
|
||||
|
||||
// /***********************************************
|
||||
// * NProgress Settings
|
||||
// ***********************************************/
|
||||
//
|
||||
// // start load bar
|
||||
// NProgress.start ();
|
||||
//
|
||||
// // end loading bar
|
||||
// NProgress.done ();
|
||||
$ ('.checkbox').change (function () {
|
||||
var e = $ (this);
|
||||
var checked = e.is (':checked');
|
||||
var id = e.data ('id');
|
||||
|
||||
$ ('.child-' + id).prop ('checked', checked);
|
||||
|
||||
// check also parent
|
||||
if (e.hasClass ('child-checkbox') && checked) {
|
||||
var parent = e.data ('parent');
|
||||
$ ('#checkbox-parent-' + parent).prop ('checked', true);
|
||||
}
|
||||
});
|
||||
|
||||
$ ('.has-subpages').click (function (e) {
|
||||
if (!$ (e.target).is ("div"))
|
||||
return;
|
||||
|
||||
var id = $ (this).data ('id');
|
||||
$ ('.parent-page-' + id).toggleClass ('hidden-xs-up');
|
||||
})
|
||||
@@ -0,0 +1,43 @@
|
||||
var previousTitle, previousMessage;
|
||||
|
||||
$ ('.confirm').click (function (e) {
|
||||
|
||||
var titleElement = $ ('#confirmation-title');
|
||||
var messageElement = $ ('#confirmation-message');
|
||||
|
||||
previousTitle = titleElement.text ();
|
||||
previousMessage = messageElement.text ();
|
||||
|
||||
var confirmTitle = $ (this).data ('title');
|
||||
var confirmMessage = $ (this).data ('message');
|
||||
|
||||
var tag = $ (this).prop ('tagName');
|
||||
if (tag === 'A') {
|
||||
var href = $ (this).attr ('href');
|
||||
|
||||
$ ('#confirm-button').attr ('href', href);
|
||||
} else if (tag === 'BUTTON') {
|
||||
var form = $ (this).closest ('form');
|
||||
$ ('#confirm-button').click (function () {
|
||||
form.submit ();
|
||||
})
|
||||
}
|
||||
|
||||
if (confirmTitle)
|
||||
titleElement.text (confirmTitle);
|
||||
|
||||
if (confirmMessage)
|
||||
messageElement.text (confirmMessage);
|
||||
|
||||
$ ('#confirm-modal').modal ('show');
|
||||
|
||||
$ ('.main-wrapper').addClass ('blur');
|
||||
|
||||
e.preventDefault ();
|
||||
});
|
||||
|
||||
$ ('#confirm-modal').on ('hidden.bs.modal', function () {
|
||||
$ ('#confirmation-title').text (previousTitle);
|
||||
$ ('#confirmation-message').text (previousMessage);
|
||||
$ ('.main-wrapper').removeClass ('blur');
|
||||
});
|
||||
@@ -0,0 +1,11 @@
|
||||
var notification = $ ('.notification');
|
||||
if (notification.length) {
|
||||
|
||||
notification.click (function () {
|
||||
$ (this).fadeOut ('fast');
|
||||
});
|
||||
|
||||
setTimeout (function () {
|
||||
notification.fadeOut (1500)
|
||||
}, 5 * 1000)
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* Makes slug from input string
|
||||
*
|
||||
* @param text
|
||||
* @param trimSpaces
|
||||
*
|
||||
* @returns {string}
|
||||
*/
|
||||
function slugify(text, trimSpaces) {
|
||||
text = text.toString ().toLowerCase ();
|
||||
|
||||
if (trimSpaces)
|
||||
text = text.trim ();
|
||||
|
||||
return text.replace (/ /g, '-')
|
||||
.replace (/[àáâãäå]/g, "a")
|
||||
.replace (/[čç]/g, "c")
|
||||
.replace (/[ěèéêë]/g, "e")
|
||||
.replace (/[ùúûüů]/g, "u")
|
||||
.replace (/[ìíîï]/g, "i")
|
||||
.replace (/[ňńñ]/g, "n")
|
||||
.replace (/[òóôõö]/g, "o")
|
||||
.replace (/[ýÿ]/g, "y")
|
||||
.replace (/œ/g, "oe")
|
||||
.replace (/ď/g, "d")
|
||||
.replace (/ř/g, "r")
|
||||
.replace (/š/g, "s")
|
||||
.replace (/ž/g, "z")
|
||||
.replace (/ť/g, "t")
|
||||
.replace (/æ/g, "ae")
|
||||
.replace (/[^a-z0-9\-]+/g, '')
|
||||
.replace (/--+/g, '-');
|
||||
}
|
||||
|
||||
$ ('#lockUrl').change (function () {
|
||||
$ ('.slug-source').keyup ();
|
||||
});
|
||||
|
||||
$ ('.slug-target').keyup (function () {
|
||||
$ (this).val (slugify ($ (this).val (), false));
|
||||
$ ('#lockUrl').prop ('checked', true);
|
||||
});
|
||||
|
||||
$ ('.slug-source').keyup (function () {
|
||||
var source = $ (this);
|
||||
var target = $ ('.slug-target');
|
||||
var locked = $ ('#lockUrl');
|
||||
|
||||
if (!locked.is (':checked'))
|
||||
target.val (slugify (source.val (), true));
|
||||
});
|
||||
@@ -0,0 +1,316 @@
|
||||
var config = window.config = {};
|
||||
|
||||
// Config reference element
|
||||
var $ref = $ ("#ref");
|
||||
|
||||
// Configure responsive bootstrap toolkit
|
||||
config.ResponsiveBootstrapToolkitVisibilityDivs = {
|
||||
'xs': $ ('<div class="device-xs hidden-sm-up"></div>'),
|
||||
'sm': $ ('<div class="device-sm hidden-xs-down hidden-md-up"></div>'),
|
||||
'md': $ ('<div class="device-md hidden-sm-down hidden-lg-up"></div>'),
|
||||
'lg': $ ('<div class="device-lg hidden-md-down hidden-xl-up"></div>'),
|
||||
'xl': $ ('<div class="device-xl hidden-lg-down"></div>')
|
||||
};
|
||||
|
||||
ResponsiveBootstrapToolkit.use ('Custom', config.ResponsiveBootstrapToolkitVisibilityDivs);
|
||||
|
||||
//validation configuration
|
||||
config.validations = {
|
||||
debug: true,
|
||||
errorClass: 'has-error',
|
||||
validClass: 'success',
|
||||
errorElement: "span",
|
||||
|
||||
// add error class
|
||||
highlight: function (element, errorClass, validClass) {
|
||||
$ (element).parents ("div.form-group")
|
||||
.addClass (errorClass)
|
||||
.removeClass (validClass);
|
||||
},
|
||||
|
||||
// add error class
|
||||
unhighlight: function (element, errorClass, validClass) {
|
||||
$ (element).parents (".has-error")
|
||||
.removeClass (errorClass)
|
||||
.addClass (validClass);
|
||||
},
|
||||
|
||||
// submit handler
|
||||
submitHandler: function (form) {
|
||||
form.submit ();
|
||||
}
|
||||
};
|
||||
|
||||
//delay time configuration
|
||||
config.delayTime = 50;
|
||||
|
||||
// chart configurations
|
||||
config.chart = {};
|
||||
|
||||
/***********************************************
|
||||
* Animation Settings
|
||||
***********************************************/
|
||||
function animate(options) {
|
||||
var animationName = "animated " + options.name;
|
||||
var animationEnd = "webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend";
|
||||
$ (options.selector)
|
||||
.addClass (animationName)
|
||||
.one (animationEnd,
|
||||
function () {
|
||||
$ (this).removeClass (animationName);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$ (function () {
|
||||
var $itemActions = $ (".item-actions-dropdown");
|
||||
|
||||
$ (document).on ('click', function (e) {
|
||||
if (!$ (e.target).closest ('.item-actions-dropdown').length) {
|
||||
$itemActions.removeClass ('active');
|
||||
}
|
||||
});
|
||||
|
||||
$ ('.item-actions-toggle-btn').on ('click', function (e) {
|
||||
e.preventDefault ();
|
||||
|
||||
var $thisActionList = $ (this).closest ('.item-actions-dropdown');
|
||||
|
||||
$itemActions.not ($thisActionList).removeClass ('active');
|
||||
|
||||
$thisActionList.toggleClass ('active');
|
||||
});
|
||||
});
|
||||
|
||||
function setSameHeights($container) {
|
||||
|
||||
$container = $container || $ ('.sameheight-container');
|
||||
|
||||
var viewport = ResponsiveBootstrapToolkit.current ();
|
||||
|
||||
$container.each (function () {
|
||||
|
||||
var $items = $ (this).find (".sameheight-item");
|
||||
|
||||
// Get max height of items in container
|
||||
var maxHeight = 0;
|
||||
|
||||
$items.each (function () {
|
||||
$ (this).css ({height: 'auto'});
|
||||
maxHeight = Math.max (maxHeight, $ (this).innerHeight ());
|
||||
});
|
||||
|
||||
// Set heights of items
|
||||
$items.each (function () {
|
||||
// Ignored viewports for item
|
||||
var excludedStr = $ (this).data ('exclude') || '';
|
||||
var excluded = excludedStr.split (',');
|
||||
|
||||
// Set height of element if it's not excluded on
|
||||
if (excluded.indexOf (viewport) === -1) {
|
||||
$ (this).innerHeight (maxHeight);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
$ (function () {
|
||||
animate ({
|
||||
name: 'flipInY',
|
||||
selector: '.error-card > .error-title-block'
|
||||
});
|
||||
|
||||
setTimeout (function () {
|
||||
var $el = $ ('.error-card > .error-container');
|
||||
|
||||
animate ({
|
||||
name: 'fadeInUp',
|
||||
selector: $el
|
||||
});
|
||||
|
||||
$el.addClass ('visible');
|
||||
}, 500);
|
||||
});
|
||||
|
||||
$ (function () {
|
||||
|
||||
$ ('#sidebar-menu, #customize-menu').metisMenu ({
|
||||
activeClass: 'open'
|
||||
});
|
||||
|
||||
$ ('#sidebar-collapse-btn').on ('click', function (event) {
|
||||
event.preventDefault ();
|
||||
|
||||
$ ("#app").toggleClass ("sidebar-open");
|
||||
});
|
||||
|
||||
$ ("#sidebar-overlay").on ('click', function () {
|
||||
$ ("#app").removeClass ("sidebar-open");
|
||||
});
|
||||
|
||||
});
|
||||
$ (function () {
|
||||
|
||||
$ ('.actions-list > li').on ('click', '.check', function (e) {
|
||||
e.preventDefault ();
|
||||
|
||||
$ (this).parents ('.tasks-item')
|
||||
.find ('.checkbox')
|
||||
.prop ("checked", true);
|
||||
|
||||
// removeActionList ();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$ (function () {
|
||||
$ ('.nav-profile > li > a').on ('click', function () {
|
||||
var $el = $ (this).next ();
|
||||
|
||||
animate ({
|
||||
name: 'flipInX',
|
||||
selector: $el
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$ (function () {
|
||||
// Local storage settings
|
||||
var themeSettings = getThemeSettings ();
|
||||
|
||||
// Elements
|
||||
|
||||
var $app = $ ('#app');
|
||||
var $styleLink = $ ('#theme-style');
|
||||
var $customizeMenu = $ ('#customize-menu');
|
||||
|
||||
// Color switcher
|
||||
var $customizeMenuColorBtns = $customizeMenu.find ('.color-item');
|
||||
|
||||
// Position switchers
|
||||
var $customizeMenuRadioBtns = $customizeMenu.find ('.radio');
|
||||
|
||||
/************************************************
|
||||
* Initial State
|
||||
*************************************************/
|
||||
|
||||
setThemeSettings ();
|
||||
|
||||
setSameHeights ();
|
||||
|
||||
/************************************************
|
||||
* Events
|
||||
*************************************************/
|
||||
|
||||
// set theme type
|
||||
$customizeMenuColorBtns.on ('click', function () {
|
||||
themeSettings.themeName = $ (this).data ('theme');
|
||||
|
||||
setThemeSettings ();
|
||||
});
|
||||
|
||||
$customizeMenuRadioBtns.on ('click', function () {
|
||||
|
||||
var optionName = $ (this).prop ('name');
|
||||
themeSettings[optionName] = $ (this).val ();
|
||||
|
||||
setThemeSettings ();
|
||||
});
|
||||
|
||||
function setThemeSettings() {
|
||||
setThemeState ()
|
||||
.delay (config.delayTime)
|
||||
.queue (function (next) {
|
||||
|
||||
setThemeColor ();
|
||||
setThemeControlsState ();
|
||||
saveThemeSettings ();
|
||||
|
||||
$ (document).trigger ("themechange");
|
||||
|
||||
next ();
|
||||
});
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Update theme based on options
|
||||
*************************************************/
|
||||
|
||||
function setThemeState() {
|
||||
// set theme type
|
||||
if (themeSettings.themeName) {
|
||||
$styleLink.attr ('href', window.cssPath + '/app-' + themeSettings.themeName + '.css');
|
||||
}
|
||||
else {
|
||||
$styleLink.attr ('href', window.cssPath + '/app.css');
|
||||
}
|
||||
// App classes
|
||||
$app.removeClass ('header-fixed footer-fixed sidebar-fixed');
|
||||
|
||||
// set header
|
||||
$app.addClass (themeSettings.headerPosition);
|
||||
|
||||
// set footer
|
||||
$app.addClass (themeSettings.footerPosition);
|
||||
|
||||
// set footer
|
||||
$app.addClass (themeSettings.sidebarPosition);
|
||||
|
||||
return $app;
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Update theme controls based on options
|
||||
*************************************************/
|
||||
|
||||
function setThemeControlsState() {
|
||||
// set color switcher
|
||||
$customizeMenuColorBtns.each (function () {
|
||||
if ($ (this).data ('theme') === themeSettings.themeName) {
|
||||
$ (this).addClass ('active');
|
||||
}
|
||||
else {
|
||||
$ (this).removeClass ('active');
|
||||
}
|
||||
});
|
||||
|
||||
// set radio buttons
|
||||
$customizeMenuRadioBtns.each (function () {
|
||||
var name = $ (this).prop ('name');
|
||||
var value = $ (this).val ();
|
||||
|
||||
if (themeSettings[name] === value) {
|
||||
$ (this).prop ("checked", true);
|
||||
}
|
||||
else {
|
||||
$ (this).prop ("checked", false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Update theme color
|
||||
*************************************************/
|
||||
function setThemeColor() {
|
||||
config.chart.colorPrimary = tinycolor ($ref.find (".chart .color-primary").css ("color"));
|
||||
config.chart.colorSecondary = tinycolor ($ref.find (".chart .color-secondary").css ("color"));
|
||||
}
|
||||
|
||||
/************************************************
|
||||
* Storage Functions
|
||||
*************************************************/
|
||||
|
||||
function getThemeSettings() {
|
||||
var settings = (localStorage.getItem ('themeSettings')) ? JSON.parse (localStorage.getItem ('themeSettings')) : {};
|
||||
|
||||
settings.headerPosition = settings.headerPosition || '';
|
||||
settings.sidebarPosition = settings.sidebarPosition || '';
|
||||
settings.footerPosition = settings.footerPosition || '';
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
function saveThemeSettings() {
|
||||
localStorage.setItem ('themeSettings', JSON.stringify (themeSettings));
|
||||
}
|
||||
});
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
.row {
|
||||
.col {
|
||||
padding-left: $grid-gutter-width/2;
|
||||
padding-right: $grid-gutter-width/2;
|
||||
padding-left: $grid-gutter-width-base/2;
|
||||
padding-right: $grid-gutter-width-base/2;
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,386 +1,390 @@
|
||||
@import "../imports";
|
||||
|
||||
|
||||
|
||||
/* *******************************************
|
||||
* Item List general styles
|
||||
********************************************** */
|
||||
|
||||
.item-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-bottom: 0;
|
||||
line-height: $item-list-line-height;
|
||||
|
||||
@include media(lg) {
|
||||
font-size: 1rem;
|
||||
}
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
line-height: $item-list-line-height;
|
||||
|
||||
@include media(md) {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
@include media(lg) {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
@include media-down(sm) {
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
@include media(md) {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
@include media-down(sm) {
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
&.striped {
|
||||
& > li {
|
||||
border-bottom: 1px solid $item-list-color-border;
|
||||
}
|
||||
|
||||
& > li:nth-child(2n + 1) {
|
||||
background-color: lighten($color-divider, 12%);
|
||||
|
||||
@include media-down(sm) {
|
||||
background-color: lighten($color-divider, 11%);
|
||||
}
|
||||
}
|
||||
|
||||
.item-list-footer {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
display: flex;
|
||||
flex-flow: column nowrap;
|
||||
}
|
||||
|
||||
.striped {
|
||||
& > div, & tr {
|
||||
border-bottom: 1px solid $item-list-color-border;
|
||||
}
|
||||
|
||||
& > div:nth-child(2n + 1), & tr:nth-child(2n + 1) {
|
||||
background-color: lighten($color-divider, 12%);
|
||||
|
||||
@include media-down(sm) {
|
||||
background-color: lighten($color-divider, 11%);
|
||||
}
|
||||
}
|
||||
|
||||
.item-list-footer {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* *******************************************
|
||||
* Item general styles
|
||||
********************************************** */
|
||||
|
||||
|
||||
.item-list {
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.item-row {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
min-width: 100%;
|
||||
.subpage {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
&.nowrap {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
.thumbnail {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
.item-col {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
padding: $item-list-padding-y $item-list-padding-x $item-list-padding-y 0;
|
||||
flex-basis: 0;
|
||||
flex-grow: $item-list-col-grow;
|
||||
flex-shrink: $item-list-col-shrink;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
min-width: 0;
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
&.fixed {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
flex-basis: auto;
|
||||
}
|
||||
.item-row {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
min-width: 100%;
|
||||
|
||||
&.pull-left {
|
||||
margin-right: auto;
|
||||
}
|
||||
&.nowrap {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
&.pull-right {
|
||||
margin-left: auto;
|
||||
}
|
||||
.item-col {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
padding: $item-list-padding-y $item-list-padding-x $item-list-padding-y 0;
|
||||
flex-basis: 0;
|
||||
flex-grow: $item-list-col-grow;
|
||||
flex-shrink: $item-list-col-shrink;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
min-width: 0;
|
||||
|
||||
& > div {
|
||||
width: 100%;
|
||||
}
|
||||
&.fixed {
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
flex-basis: auto;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
&.pull-left {
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.no-overflow {
|
||||
overflow: hidden;
|
||||
}
|
||||
&.pull-right {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.no-wrap {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
& > div {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.no-overflow {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.no-wrap {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* *******************************************
|
||||
* Item components
|
||||
********************************************** */
|
||||
|
||||
|
||||
.item-list {
|
||||
|
||||
/********************************************
|
||||
* Header
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Header
|
||||
*********************************************/
|
||||
|
||||
.item-list-header {
|
||||
.item-col.item-col-header {
|
||||
span {
|
||||
color: #999;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 700 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-list-header {
|
||||
.item-col.item-col-header {
|
||||
span {
|
||||
color: #999;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 700 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* Heading
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Heading
|
||||
*********************************************/
|
||||
|
||||
.item-heading {
|
||||
font-size: 0.9rem;
|
||||
display: none;
|
||||
color: #666;
|
||||
font-weight: 700;
|
||||
padding-right: $item-list-padding-x;
|
||||
.item-heading {
|
||||
font-size: 0.9rem;
|
||||
display: none;
|
||||
color: #666;
|
||||
font-weight: 700;
|
||||
padding-right: $item-list-padding-x;
|
||||
|
||||
@include media-down(sm) {
|
||||
display: block;
|
||||
}
|
||||
@include media-down(sm) {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@include media(sm) {
|
||||
width: 100%;
|
||||
}
|
||||
@include media(sm) {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@include media(xs) {
|
||||
width: 40%;
|
||||
}
|
||||
}
|
||||
@include media(xs) {
|
||||
width: 40%;
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* Checkbox
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Checkbox
|
||||
*********************************************/
|
||||
|
||||
.item-col.item-col-check {
|
||||
flex-basis: 20px + $item-list-padding-x;
|
||||
.item-col.item-col-check {
|
||||
flex-basis: 20px + $item-list-padding-x;
|
||||
|
||||
@include media-down(sm) {
|
||||
order: -8;
|
||||
}
|
||||
}
|
||||
@include media-down(sm) {
|
||||
order: -8;
|
||||
}
|
||||
}
|
||||
|
||||
.item-check {
|
||||
margin-bottom: 0;
|
||||
.item-check {
|
||||
margin-bottom: 0;
|
||||
|
||||
.checkbox + span {
|
||||
padding-right: 0;
|
||||
.checkbox + span {
|
||||
padding-right: 0;
|
||||
|
||||
&:before {
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
&:before {
|
||||
width: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* Image
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Image
|
||||
*********************************************/
|
||||
|
||||
.item-col.item-col-img {
|
||||
display: flex;
|
||||
flex-basis: 60px + $item-list-padding-x;
|
||||
.item-col.item-col-img {
|
||||
display: flex;
|
||||
flex-basis: 60px + $item-list-padding-x;
|
||||
|
||||
&.xs{
|
||||
flex-basis: 30px + $item-list-padding-x;
|
||||
}
|
||||
&.xs {
|
||||
flex-basis: 30px + $item-list-padding-x;
|
||||
}
|
||||
|
||||
&.sm {
|
||||
flex-basis: 40px + $item-list-padding-x;
|
||||
}
|
||||
&.sm {
|
||||
flex-basis: 40px + $item-list-padding-x;
|
||||
}
|
||||
|
||||
&.lg {
|
||||
flex-basis: 90px + $item-list-padding-x;
|
||||
}
|
||||
&.lg {
|
||||
flex-basis: 90px + $item-list-padding-x;
|
||||
}
|
||||
|
||||
&.xl {
|
||||
flex-basis: 110px + $item-list-padding-x;
|
||||
}
|
||||
&.xl {
|
||||
flex-basis: 110px + $item-list-padding-x;
|
||||
}
|
||||
|
||||
a {
|
||||
width: 100%;
|
||||
// display: flex;
|
||||
}
|
||||
}
|
||||
a {
|
||||
width: 100%;
|
||||
// display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.item-img {
|
||||
flex-grow: 1;
|
||||
align-self: stretch;
|
||||
background-color: #efefef;
|
||||
padding-bottom: 100%;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
.item-img {
|
||||
flex-grow: 1;
|
||||
align-self: stretch;
|
||||
background-color: #EFEFEF;
|
||||
padding-bottom: 100%;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
|
||||
@include bg-cover();
|
||||
}
|
||||
@include bg-cover();
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* Title
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Title
|
||||
*********************************************/
|
||||
|
||||
.item-col.item-col-title {
|
||||
.item-col.item-col-title {
|
||||
|
||||
@include media-down(sm) {
|
||||
order: -4;
|
||||
}
|
||||
@include media-down(sm) {
|
||||
order: -4;
|
||||
}
|
||||
|
||||
a {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
a {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.item-title {
|
||||
margin: 0;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
font-weight: 600;
|
||||
}
|
||||
.item-title {
|
||||
margin: 0;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* Stats
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Stats
|
||||
*********************************************/
|
||||
|
||||
.item-stats {
|
||||
height: $item-list-line-height;
|
||||
}
|
||||
.item-stats {
|
||||
height: $item-list-line-height;
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* Actions
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Actions
|
||||
*********************************************/
|
||||
|
||||
.item-col.item-col-actions-dropdown {
|
||||
flex-basis: 30px + $item-list-padding-x;
|
||||
text-align: center;
|
||||
padding-left: 0 !important;
|
||||
.item-col.item-col-actions-dropdown {
|
||||
flex-basis: 30px + $item-list-padding-x;
|
||||
text-align: center;
|
||||
padding-left: 0 !important;
|
||||
|
||||
@include media-down(sm) {
|
||||
order: -3;
|
||||
@include media-down(sm) {
|
||||
order: -3;
|
||||
|
||||
flex-basis: 30px + $item-list-padding-x !important;
|
||||
padding-right: $item-list-padding-x;
|
||||
}
|
||||
}
|
||||
flex-basis: 30px + $item-list-padding-x !important;
|
||||
padding-right: $item-list-padding-x;
|
||||
}
|
||||
}
|
||||
|
||||
.item-actions-dropdown {
|
||||
position: relative;
|
||||
font-size: 1.1rem;
|
||||
.item-actions-dropdown {
|
||||
position: relative;
|
||||
font-size: 1.1rem;
|
||||
|
||||
&.active {
|
||||
.item-actions-block {
|
||||
max-width: 120px;
|
||||
}
|
||||
&.active {
|
||||
.item-actions-block {
|
||||
max-width: 120px;
|
||||
}
|
||||
|
||||
.item-actions-toggle-btn {
|
||||
color: $color-primary;
|
||||
.item-actions-toggle-btn {
|
||||
color: $color-primary;
|
||||
|
||||
.active {
|
||||
display: block;
|
||||
}
|
||||
.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.inactive {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.inactive {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-actions-toggle-btn {
|
||||
color: lighten($color-text-light, 10);
|
||||
font-size: 1.2rem;
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
.item-actions-toggle-btn {
|
||||
color: lighten($color-text-light, 10);
|
||||
font-size: 1.2rem;
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
|
||||
.active {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.active {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.item-actions-block {
|
||||
height: 30px;
|
||||
max-width: 0px;
|
||||
line-height: 30px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 100%;
|
||||
background-color: $color-divider;
|
||||
border-radius: 3px;
|
||||
transition: all 0.15s ease-in-out;
|
||||
.item-actions-block {
|
||||
height: 30px;
|
||||
max-width: 0px;
|
||||
line-height: 30px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 100%;
|
||||
background-color: $color-divider;
|
||||
border-radius: 3px;
|
||||
transition: all 0.15s ease-in-out;
|
||||
|
||||
&.direction-right {
|
||||
right: auto;
|
||||
left: 100%;
|
||||
}
|
||||
&.direction-right {
|
||||
right: auto;
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
.item-actions-list {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
white-space: nowrap;
|
||||
padding: 0 5px;
|
||||
|
||||
.item-actions-list {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
white-space: nowrap;
|
||||
padding: 0 5px;
|
||||
li {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li{
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
a {
|
||||
display: block;
|
||||
padding: 0 5px;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
padding: 0 5px;
|
||||
&.edit {
|
||||
color: #38424C;
|
||||
}
|
||||
|
||||
&.edit {
|
||||
color: #38424C;
|
||||
}
|
||||
&.check {
|
||||
color: #40B726;
|
||||
}
|
||||
|
||||
&.check {
|
||||
color: #40B726;
|
||||
}
|
||||
&.remove {
|
||||
color: #DB0E1E;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.remove {
|
||||
color: #DB0E1E;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/********************************************
|
||||
* Something else?
|
||||
*********************************************/
|
||||
/********************************************
|
||||
* Something else?
|
||||
*********************************************/
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* *******************************************
|
||||
* Adjustments
|
||||
********************************************** */
|
||||
|
||||
// Item which is located inside card inside item-list
|
||||
.card > .item-list .item > .item-row {
|
||||
padding: 0 $card-padding-x;
|
||||
padding: 0 $card-padding-x;
|
||||
|
||||
@include media(xl) {
|
||||
padding: 0 $card-padding-x-xl;
|
||||
}
|
||||
@include media(xl) {
|
||||
padding: 0 $card-padding-x-xl;
|
||||
}
|
||||
|
||||
@include media-down(sm) {
|
||||
padding: 0 $card-padding-x-sm;
|
||||
}
|
||||
@include media-down(sm) {
|
||||
padding: 0 $card-padding-x-sm;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
@import "../../../imports";
|
||||
|
||||
.item-list {
|
||||
|
||||
}
|
||||
|
||||
.items-list-page {
|
||||
|
||||
.title-search-block {
|
||||
@@ -313,12 +317,7 @@
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,51 +1,53 @@
|
||||
<?php
|
||||
return [
|
||||
"assignWidget" => "Přiřadil widget :widgetName (#:widgetId) do plochy :widgetAreaName (#:widgetAreaId)",
|
||||
"changeSettings" => "Změna nastavení",
|
||||
"createNewContent" => "Vytvořena nová obsahová stránka. Titulek <strong>:title</strong>, url :url a ID #:id",
|
||||
"createUser" => "Vytvořen nový uživatel :name s e-mailem :email.",
|
||||
"deleteContent" => 'Smazána stránka ":title", url "url a ID #:id. Tato změna je zaznamenána v revizi :revision.',
|
||||
"deleteCustomField" => "a",
|
||||
"deleteWidgetArea" => "Smazal plochu pro widget :name",
|
||||
"displayingUsersActions" => "Zobrazuji všechny akce od uživatele :name (:email).",
|
||||
"draftFromContent" => "Upraven widget :name (#:id)",
|
||||
"editContent" => 'Editace stránky - nový titulek je ":title", url :url a ID #:id. Revize změny: :revision.',
|
||||
"editCustomField" => "a",
|
||||
"editWidget" => "Upraven widget :name (#:id)",
|
||||
"editWidgetArea" => 'Upravena plocha pro widgety :name (#:id) s popisem ":description"',
|
||||
"invalidEditContentAttempt" => "Pokus o editaci obsahu s ID :contentId",
|
||||
"ip" => "IP adresa",
|
||||
"login" => "Přihlášen",
|
||||
"logout" => "Odhlášen",
|
||||
"nameAssignWidget" => "Přiřazení widgetu",
|
||||
"nameChangeSettings" => "Změna nastavení",
|
||||
"nameCreateNewContent" => "Vytvoření nové stránky",
|
||||
"nameCreateUser" => "Vytvořen uživatel",
|
||||
"nameDeleteContent" => "Smazání stránky",
|
||||
"nameDeleteCustomField" => "Smazání uživatelského pole",
|
||||
"nameDeleteWidgetArea" => "Smazání plochy pro widgety",
|
||||
"nameDraftFromContent" => "Vytvoření konceptu z publikované stránky",
|
||||
"nameEditContent" => "Úprava obsahu",
|
||||
"nameEditCustomField" => "Editace uživatelského pole",
|
||||
"nameEditWidget" => "Úprava widgetu",
|
||||
"nameEditWidgetArea" => "Úprava plochy pro widgety",
|
||||
"assignWidget" => "Přiřadil widget :widgetName (#:widgetId) do plochy :widgetAreaName (#:widgetAreaId)",
|
||||
"changeSettings" => "Změna nastavení",
|
||||
"createNewContent" => "Vytvořena nová obsahová stránka. Titulek <strong>:title</strong>, url :url a ID #:id",
|
||||
"createUser" => "Vytvořen nový uživatel :name s e-mailem :email.",
|
||||
"deleteContent" => 'Smazána stránka ":title", url "url a ID #:id. Tato změna je zaznamenána v revizi :revision.',
|
||||
"deleteCustomField" => "a",
|
||||
"deleteWidgetArea" => "Smazal plochu pro widget :name",
|
||||
"displayingUsersActions" => "Zobrazuji všechny akce od uživatele :name (:email).",
|
||||
"draftFromContent" => "Upraven widget :name (#:id)",
|
||||
"editContent" => 'Editace stránky - nový titulek je ":title", url :url a ID #:id. Revize změny: :revision.',
|
||||
"editCustomField" => "a",
|
||||
"editWidget" => "Upraven widget :name (#:id)",
|
||||
"editWidgetArea" => 'Upravena plocha pro widgety :name (#:id) s popisem ":description"',
|
||||
"invalidEditContentAttempt" => "Pokus o editaci obsahu s ID :contentId",
|
||||
"ip" => "IP adresa",
|
||||
"login" => "Přihlášen",
|
||||
"logout" => "Odhlášen",
|
||||
"nameAssignWidget" => "Přiřazení widgetu",
|
||||
"nameChangeSettings" => "Změna nastavení",
|
||||
"nameCreateNewContent" => "Vytvoření nové stránky",
|
||||
"nameCreateUser" => "Vytvořen uživatel",
|
||||
"nameDeleteContent" => "Smazání stránky",
|
||||
"nameDeleteCustomField" => "Smazání uživatelského pole",
|
||||
"nameDeleteWidgetArea" => "Smazání plochy pro widgety",
|
||||
"nameDraftFromContent" => "Vytvoření konceptu z publikované stránky",
|
||||
"nameEditContent" => "Úprava obsahu",
|
||||
"nameEditCustomField" => "Editace uživatelského pole",
|
||||
"nameEditWidget" => "Úprava widgetu",
|
||||
"nameEditWidgetArea" => "Úprava plochy pro widgety",
|
||||
"nameInvalidEditContentAttempt" => "Pokus o editaci neexistující/neplatné stránky",
|
||||
"nameLogin" => "Login",
|
||||
"nameLogout" => "Odhlášení",
|
||||
"nameNewCustomField" => "Vytvoření uživatelského pole",
|
||||
"nameNewWidget" => "Nový widget",
|
||||
"nameNewWidgetArea" => "Vytoření plochy pro widgety",
|
||||
"namePublishContent" => "Publikace stránky",
|
||||
"nameRemoveWidgetFromArea" => "Odebrání widgetu z plochy",
|
||||
"nameSetHomepage" => "Nastavení domovské stránky",
|
||||
"nameUserEdit" => "Editace uživatele",
|
||||
"newCustomField" => 'Přidal nové uživatelské pole s ID #:id a jménem ":name"',
|
||||
"newWidget" => 'Vytvořen nový widget :type se jménem :name (#:id) a popisem ":description".',
|
||||
"newWidgetArea" => 'Vytvořil plochu pro widgety :name (#:id) s popisem ":description"',
|
||||
"overview" => "Seznam všech akcí",
|
||||
"publishContent" => 'Publikována stránka ":title" (url :url, ID #:id). Revize :revision.',
|
||||
"removeWidgetFromArea" => "Odebrán widget :widgetName z oblasti :widgetAreaName (#widgetAreaId)",
|
||||
"setHomepage" => "Nastavena nová domovská stránka: :title, URL: :url a ID #:id. Revize :revision.",
|
||||
"userAgent" => "Prohlížeč",
|
||||
"userEdit" => "Upravil uživatele :name (:email)",
|
||||
"nameLogin" => "Login",
|
||||
"nameLogout" => "Odhlášení",
|
||||
"nameNewCustomField" => "Vytvoření uživatelského pole",
|
||||
"nameNewWidget" => "Nový widget",
|
||||
"nameNewWidgetArea" => "Vytoření plochy pro widgety",
|
||||
"namePublishContent" => "Publikace stránky",
|
||||
"nameRemoveWidgetFromArea" => "Odebrání widgetu z plochy",
|
||||
"nameSetHomepage" => "Nastavení domovské stránky",
|
||||
"nameUserEdit" => "Editace uživatele",
|
||||
"newCustomField" => 'Přidal nové uživatelské pole s ID #:id a jménem ":name"',
|
||||
"newWidget" => 'Vytvořen nový widget :type se jménem :name (#:id) a popisem ":description".',
|
||||
"newWidgetArea" => 'Vytvořil plochu pro widgety :name (#:id) s popisem ":description"',
|
||||
"overview" => "Seznam všech akcí",
|
||||
"publishContent" => 'Publikována stránka ":title" (url :url, ID #:id). Revize :revision.',
|
||||
"removeWidgetFromArea" => "Odebrán widget :widgetName z oblasti :widgetAreaName (#widgetAreaId)",
|
||||
"setHomepage" => "Nastavena nová domovská stránka: :title, URL: :url a ID #:id. Revize :revision.",
|
||||
"userAgent" => "Prohlížeč",
|
||||
"userEdit" => "Upravil uživatele :name (:email)",
|
||||
'newFile' => 'Nahrál soubor :name (typ :mime)',
|
||||
'nameNewFile' => 'Nahrání souboru'
|
||||
];
|
||||
|
||||
@@ -7,5 +7,6 @@ return [
|
||||
"logoutSuccessfull" => "Odhlášení proběhlo úspěšně",
|
||||
"no" => "Ne",
|
||||
"yes" => "Ano",
|
||||
'empty' => 'Žádná data nebyla nalezena.'
|
||||
'empty' => 'Žádná data nebyla nalezena.',
|
||||
"noSearchEngine" => 'Není dostupný žádný vyhledávač.'
|
||||
];
|
||||
|
||||
@@ -35,10 +35,10 @@ return [
|
||||
"noHomepage" => "Domovská stránka není nastavena (a nebo je nastavena jako Koncept)! Vyberte prosím jinou stránku, nebo stávající publikujte.",
|
||||
"noPagesAvailable" => "Nejsou dostupné žádné stránky. Pro zobrazení přehledu nejprve nějakou vytvořte.",
|
||||
"noParentPage" => "-- Nadřazená stránka nevybrána --",
|
||||
"noTemplates" => "Nelze vytvořit stránku. Pro tento modul neexistuje žádná šablona, která by šla použít pro vykreslení obsahu.",
|
||||
"noTemplates" => "Pro tento modul neexistuje žádná šablona, která by šla použít pro vykreslení obsahu. Nebude možné tuto stránku zobrazit!",
|
||||
"nothingToEdit" => "Nebyly provedeny žádné změny, proto nedošlo k editaci.",
|
||||
"overview" => "Seznam všech obsahových stránek",
|
||||
"pageDeleted" => "Stránka :name (:url) úspěšně smazána.",
|
||||
"pageDeleted" => "Stránka :name úspěšně smazána.",
|
||||
"parentPage" => "Nadřazená stránka",
|
||||
"publicationOptions" => "Nastavení publikace",
|
||||
"save" => "Uložit",
|
||||
@@ -56,4 +56,6 @@ return [
|
||||
"title" => "Titulek",
|
||||
"uploadTitleImage" => "Nahrát titulní obrázek",
|
||||
"viewPage" => "Zobrazit",
|
||||
'setOrder' => 'Nastavení pořadí stránek',
|
||||
'orderSuccessfullySet' => 'Pořadí stránek úspěšně nastaveno',
|
||||
];
|
||||
|
||||
@@ -6,7 +6,7 @@ return [
|
||||
"changedFromTo" => "Změna z <del>:from</del> na <ins>:to</ins>",
|
||||
"columnCategory" => "Kategorie",
|
||||
"columnFile" => "Přiřazené soubory",
|
||||
"columnIs_homepage" => "Domovská stránka",
|
||||
"columnIsHomepage" => "Domovská stránka",
|
||||
"columnMetaDescription" => "Popis",
|
||||
"columnMetaKeywords" => "Klíčová slova",
|
||||
"columnPageContent" => "Obsah stránky",
|
||||
@@ -14,6 +14,7 @@ return [
|
||||
"columnStatus" => "Viditelnost stránky",
|
||||
"columnTemplate" => "Šablona",
|
||||
"columnTitle" => "Titulek",
|
||||
"columnTitlePhoto" => "Titulní obrázek",
|
||||
"columnTitlePhotoFilename" => "Titulní obrázek",
|
||||
"columnUrl" => "URL",
|
||||
"deletedFile" => "Odebrán soubor <del>:file</del>.",
|
||||
|
||||
@@ -10,4 +10,6 @@ return [
|
||||
'loginToContinue' => 'Pro vstup je nutné přihlášení',
|
||||
'yourEmail' => 'Váš e-mail',
|
||||
'yourPassword' => 'Vaše heslo',
|
||||
'sendConfirmEmail' => 'Odeslat odkaz pro resetování hesla',
|
||||
'passwordReset' => 'Nové heslo'
|
||||
];
|
||||
|
||||
@@ -27,4 +27,6 @@ return [
|
||||
"widgetAreas" => "Plochy pro widgety",
|
||||
"widgets" => "Widgety",
|
||||
"widgetsOverview" => "Všechny widgety",
|
||||
'permissions' => 'Přístupová práva',
|
||||
'contentOrder' => 'Pořadí stránek'
|
||||
];
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
return [
|
||||
'defaultSuccessfullySet' => 'Výchozí oprávnění úspěšně nastavena.',
|
||||
'pageTitle' => 'Nastavení výchozích oprávnění',
|
||||
'description' => 'Nastavte výchozí oprávnění, která budou přidělena nově vytvořeným uživatelům.',
|
||||
'successfullySet' => 'Oprávnění úspěšně nastavena.',
|
||||
'contents' => [
|
||||
'management' => 'Správa obsahu',
|
||||
'create' => 'Vytvořit novou stránku',
|
||||
'update' => 'Upravovat své stránky',
|
||||
'update-all' => 'Upravovat i cizí stránky',
|
||||
'delete' => 'Mazat',
|
||||
'set-homepage' => 'Nastavovat domovskou stránku',
|
||||
'publish' => 'Publikovat',
|
||||
'protect' => 'Publikovat jen pro přihlášené',
|
||||
'draft' => 'Skrýt publikovanou stránku',
|
||||
'view-history' => 'Zobrazit historii',
|
||||
],
|
||||
'users' => [
|
||||
'management' => 'Správa uživatelů',
|
||||
'create' => 'Vytvořit nového uživatele',
|
||||
'update' => 'Upravovat ostatní uživatele',
|
||||
'block' => 'Zablokovat',
|
||||
'delete' => 'Mazat',
|
||||
'unblock' => 'Odblokovat',
|
||||
'set-permissions' => 'Nastavovat oprávnění',
|
||||
'change-role' => 'Změnit roli',
|
||||
'change-status' => 'Změnit status uživatele (zablokovat/odblokovat)'
|
||||
],
|
||||
'files' => [
|
||||
'management' => 'Správa souborů',
|
||||
'upload' => 'Nahrávání',
|
||||
'update' => 'Úprava',
|
||||
'delete' => 'Mazání',
|
||||
'move-to-directories' => 'Přesouvat soubory mezi adresáři'
|
||||
],
|
||||
'directories' => [
|
||||
'management' => 'Správa složek',
|
||||
'create' => 'Vytváření',
|
||||
'edit' => 'Úprava',
|
||||
'delete' => 'Mazání'
|
||||
],
|
||||
'widgetareas' => [
|
||||
'management' => 'Správa ploch pro widgety',
|
||||
'create' => 'Vytváření',
|
||||
'edit' => 'Úprava',
|
||||
'delete' => 'Mazání'
|
||||
],
|
||||
'widgets' => [
|
||||
'management' => 'Správa widgetů',
|
||||
'create' => 'Vytváření',
|
||||
'edit' => 'Úprava',
|
||||
'delete' => 'Mazání',
|
||||
'assign' => 'Přiřazování widgetů do plochy',
|
||||
'unassign' => 'Odstraňování widgetů z plochy'
|
||||
],
|
||||
'templates' => [
|
||||
'management' => 'Správa šablon',
|
||||
'copy' => 'Kopírování',
|
||||
'edit' => 'Úprava',
|
||||
],
|
||||
'actions' => [
|
||||
'management' => 'Zobrazení přehledu akcí',
|
||||
],
|
||||
'settings' => [
|
||||
'management' => 'Správa nastavení',
|
||||
],
|
||||
'save' => 'Uložit výchozí nastavení'
|
||||
];
|
||||
@@ -21,4 +21,21 @@ return [
|
||||
],
|
||||
"socialSites" => "Sociální sítě",
|
||||
"successfullySaved" => "Nastavení úspěšně změněno",
|
||||
'advanced' => [
|
||||
"title" => 'Pokročilé',
|
||||
],
|
||||
|
||||
'previews' => [
|
||||
'title' => 'Nastavení obrázkových náhledů',
|
||||
'quality' => 'Kvalita',
|
||||
'size' => 'Velikost (v pixelech)'
|
||||
],
|
||||
|
||||
'widgets' => [
|
||||
'title' => 'Widgety',
|
||||
'useWidgetPreloading' => 'Používat přednačítání widgetů?',
|
||||
'preloadFrequentedWidgetAreasTreshold' => 'Práh pro přednačtení widgetů',
|
||||
'widgetCacheLifetime' => 'Platnost cache pro widgety'
|
||||
]
|
||||
|
||||
];
|
||||
|
||||
@@ -1,23 +1,27 @@
|
||||
<?php
|
||||
return [
|
||||
"cannotCopy" => "Adresář nemá potřebná práva k zápisu. Kopírování není dostupné.",
|
||||
"cannotWriteContent" => "Nelze uložit obsah šablony, adresář pro uložení souboru nemá dostatečná oprávnění pro zápis. Meta informace k šabloně však byly uloženy.",
|
||||
"copyFailed" => "Nelze zkopírovat šablonu do :name. Zkontrolujte prosím právo pro zápis do adresáře s šablonami.",
|
||||
"copySuccessfull" => "Šablona :name úspěšně vytvořena zkopírováním z jiné šablony",
|
||||
"core" => "Společné šablony",
|
||||
"description" => "Popis",
|
||||
"edit" => "Úprava šablony :name",
|
||||
"editSuccessfull" => "Šablona úspěšně uložena",
|
||||
"error" => "Šablony pro zobrazení chyb",
|
||||
"homepage" => "Domovská stránka",
|
||||
"name" => "Jméno šablony",
|
||||
"new" => "Nová šablona",
|
||||
"newTemplateName" => "Jméno šablony použité v Blade šablonách",
|
||||
"copy" => 'Kopírovat šablonu',
|
||||
"cannotCopy" => "Adresář nemá potřebná práva k zápisu. Kopírování není dostupné.",
|
||||
"cannotWriteContent" => "Nelze uložit obsah šablony, adresář pro uložení souboru nemá dostatečná oprávnění pro zápis. Meta informace k šabloně však byly uloženy.",
|
||||
"copyFailed" => "Nelze zkopírovat šablonu do :name. Zkontrolujte prosím právo pro zápis do adresáře s šablonami.",
|
||||
"copySuccessfull" => "Šablona :name úspěšně vytvořena zkopírováním z jiné šablony",
|
||||
"core" => "Společné šablony",
|
||||
"description" => "Popis",
|
||||
"edit" => "Úprava šablony :name",
|
||||
"editSuccessfull" => "Šablona úspěšně uložena",
|
||||
"error" => "Šablony pro zobrazení chyb",
|
||||
"homepage" => "Domovská stránka",
|
||||
"name" => "Jméno šablony",
|
||||
"new" => "Nová šablona",
|
||||
"newTemplateName" => "Jméno šablony použité v Blade šablonách",
|
||||
"newTemplateNameSuffix" => "kopie",
|
||||
"noSubdirectories" => "Nejsou k dispozici žádné podadresáře",
|
||||
"noTemplates" => "Žádná šablona k dispozici",
|
||||
"notWritable" => "Nelze zapisovat do :file. Veškeré úpravy na tomto soubory <strong>nebudou</strong> uloženy!",
|
||||
"overview" => "Šablony",
|
||||
"parentDirectory" => "Rodičovský adresář",
|
||||
"subdirectories" => "Podadresáře",
|
||||
"noSubdirectories" => "Nejsou k dispozici žádné podadresáře",
|
||||
"noTemplates" => "Žádná šablona k dispozici",
|
||||
"notWritable" => "Nelze zapisovat do :file. Veškeré úpravy na tomto soubory <strong>nebudou</strong> uloženy!",
|
||||
"overview" => "Šablony",
|
||||
"parentDirectory" => "Rodičovský adresář",
|
||||
"subdirectories" => "Podadresáře",
|
||||
'widgets' => 'Widgety',
|
||||
'errors' => 'Chybové stránky',
|
||||
'contact' => 'Kontaktní formulář'
|
||||
];
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
<?php
|
||||
return [
|
||||
"addNewUser" => "Přidat nového uživatele",
|
||||
"allStatuses" => "Všechny",
|
||||
"detail" => "Detaily uživatele :name (:email)",
|
||||
"edit" => "Upravit uživatele",
|
||||
"editUser" => "Editace uživatele :name (:email)",
|
||||
"email" => "E-mail",
|
||||
"gravatarLink" => 'Nastavte si avatar na <a href="http://gravatar.com">gravatar.com</a>',
|
||||
"moreUserActions" => "Zobrazit více...",
|
||||
"name" => "Celé jméno",
|
||||
"noActions" => "Uživatel zatím v systému nic neudělal.",
|
||||
"noUsers" => "Žádní uživatelé.",
|
||||
"overview" => "Seznam všech uživatelů",
|
||||
"password" => "Heslo",
|
||||
"passwordLeaveEmpty" => "Nevyplňujte, pokud nechcete změnit heslo.",
|
||||
"profile" => "Profil uživatele",
|
||||
"register" => "Vytvořit uživatele",
|
||||
"addNewUser" => "Přidat nového uživatele",
|
||||
"allStatuses" => "Všechny",
|
||||
"detail" => "Detaily uživatele :name (:email)",
|
||||
"edit" => "Upravit uživatele",
|
||||
"editUser" => "Editace uživatele :name (:email)",
|
||||
"email" => "E-mail",
|
||||
"gravatarLink" => 'Nastavte si avatar na <a href="http://gravatar.com">gravatar.com</a>',
|
||||
"moreUserActions" => "Zobrazit více...",
|
||||
"name" => "Celé jméno",
|
||||
"noActions" => "Uživatel zatím v systému nic neudělal.",
|
||||
"noUsers" => "Žádní uživatelé.",
|
||||
"overview" => "Seznam všech uživatelů",
|
||||
"password" => "Heslo",
|
||||
"passwordLeaveEmpty" => "Nevyplňujte, pokud nechcete změnit heslo.",
|
||||
"profile" => "Profil uživatele",
|
||||
"register" => "Vytvořit uživatele",
|
||||
"registrationSuccessfull" => "Nový úživatel úspěšně přidán.",
|
||||
"role_admin" => "Administrátor",
|
||||
"role_editor" => "Editor",
|
||||
"role_visitor" => "Návštěvník",
|
||||
"roles" => "Prosím, zvolte roli uživatele",
|
||||
"status" => "Stav",
|
||||
"status_active" => "Aktivní",
|
||||
"status_blocked" => "Zablokovaný",
|
||||
"status_deleted" => "Smazaný",
|
||||
"update" => "Upravit informace",
|
||||
"userDetail" => "Informace",
|
||||
"userSuccessfullyEdited" => "Uživatel úspěšně upraven.",
|
||||
"usersActions" => "Akce uživatele",
|
||||
"role_admin" => "Uživatel s přístupem do administrace",
|
||||
"role_visitor" => "Návštěvník (bez přístupu do administrace)",
|
||||
"roles" => "Prosím, zvolte roli uživatele",
|
||||
"status" => "Stav",
|
||||
"status_active" => "Aktivní",
|
||||
"status_blocked" => "Zablokovaný",
|
||||
"status_deleted" => "Smazaný",
|
||||
"update" => "Upravit informace",
|
||||
"userDetail" => "Informace",
|
||||
"userSuccessfullyEdited" => "Uživatel úspěšně upraven.",
|
||||
"usersActions" => "Akce uživatele",
|
||||
'permissions' => 'Oprávnění'
|
||||
];
|
||||
|
||||
@@ -20,4 +20,5 @@ return [
|
||||
"successfullyCreated" => "Plocha pro widgety úspěšně vytvořena",
|
||||
"successfullyDeleted" => "Úspěšně smazáno",
|
||||
"uniqueCode" => "Unikátní kód",
|
||||
'pageDescription' => 'Plochy pro widgety jsou oblasti, do kterých je možné přiřadit widgety a následně je zobrazovat na webu.'
|
||||
];
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<?php
|
||||
return [
|
||||
"accessDenied" => "Nelze přistoupit k tomuto zdroji",
|
||||
"failed" => "Přihlašovací údaje nejsou správné.",
|
||||
"throttle" => "Příliš mnoho neplatných přihlášení. Zkuste to znovu za :seconds sekund.",
|
||||
"accessDenied" => "Nelze přistoupit k tomuto zdroji",
|
||||
"failed" => "Přihlašovací údaje nejsou správné.",
|
||||
"throttle" => "Příliš mnoho neplatných přihlášení. Zkuste to znovu za :seconds sekund.",
|
||||
'userNotActive' => 'Uživatel nebyl aktivován, či byl administrátorem zablokován.',
|
||||
'visitorInAdmin' => 'Návštěvník nemá oprávnění do adminstrace!',
|
||||
'loginExpired' => 'Vaše přihlášení expirovalo. Přihlašte se prosím znovu.'
|
||||
];
|
||||
|
||||
@@ -28,5 +28,7 @@ return [
|
||||
"positionStatic" => "statické",
|
||||
"sidebar" => "Sidebar",
|
||||
'no' => 'Ne',
|
||||
'yes' => 'Ano'
|
||||
'yes' => 'Ano',
|
||||
'minutes' => 'minut',
|
||||
'views' => 'zobrazení'
|
||||
];
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
return [
|
||||
'forgottenPassword' => [
|
||||
'firstLine' => 'Dostali jste tento e-mail, protože byl zaslán požadavek na reset hesla. Pro nastavení nového hesla klikněte na následující tlačítko:',
|
||||
'lastLine' => 'V případě, že tento e-mail neočekáváte, můžete ho klidně ignorovat.',
|
||||
'button' => 'Resetovat heslo',
|
||||
'subject' => 'Odkaz pro změnu hesla'
|
||||
]
|
||||
];
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
return [
|
||||
'heading' => 'Registrace nového uživatele',
|
||||
'name' => 'Jméno',
|
||||
'email' => 'E-mail',
|
||||
'password' => 'Heslo',
|
||||
'passwordConfirm' => 'Heslo (znovu)',
|
||||
'register' => 'Vytvořit účet',
|
||||
'setNewPassword' => 'Nastavit nové heslo'
|
||||
];
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
return [
|
||||
"containerClass" => "HTML třída použitá pro obalový element widgetu",
|
||||
"containerId" => "Unikátní ID widgetu (může být i prázdné)",
|
||||
"description" => "Popis",
|
||||
"edit" => "Upravuji widget :name",
|
||||
"name" => "Jméno",
|
||||
"new" => "Vytvořit nový widget"
|
||||
"containerClass" => "HTML třída použitá pro obalový element widgetu",
|
||||
"containerId" => "Unikátní ID widgetu (může být i prázdné)",
|
||||
"description" => "Popis",
|
||||
"edit" => "Upravuji widget :name",
|
||||
"name" => "Jméno",
|
||||
"new" => "Vytvořit nový widget",
|
||||
"widgetDescription" => "Jednoduchý widget pro vkládání HTML kódů.",
|
||||
];
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
<?php
|
||||
return [
|
||||
"code" => "Dodatečný HTML/JS kód pro slider",
|
||||
"containerClass" => "HTML třída pro obalový element tohoto widgetu",
|
||||
"createNew" => "Vytvořit nový",
|
||||
"description" => "Popis",
|
||||
"displayBullets" => "Zobrazit odrážky?",
|
||||
"edit" => "Upravit :name",
|
||||
"editExisting" => "Uložit",
|
||||
"extraSettings" => "Další nastavení",
|
||||
"fullscreen" => "Zobrazit slider na celou obrazovku",
|
||||
"imagesPerSlide" => "Obrázků na slide",
|
||||
"name" => "Jméno slideru",
|
||||
"new" => "Vytvořit nový slider",
|
||||
"preview" => "Náhled",
|
||||
"showInFullscreen" => "Zobrazit na celou obrazovku",
|
||||
"slideContainerClass" => "HTML třída pro každý obrázek ve slideru",
|
||||
"upload" => "Přidat obrázky do slideru",
|
||||
"widgetDescription" => "Slider pro obrázky. Tento widget používá Foundation framework a jeho vlastní slider zvaný Orbit. (Nebude fungovat bez Foundation 6!)",
|
||||
"widgetName" => "Orbit slider",
|
||||
];
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
return [
|
||||
"code" => "HTML kod",
|
||||
"containerClass" => "HTML třída pro obalový element tohoto widgetu",
|
||||
"createNew" => "Vytvořit nový widget",
|
||||
"description" => "Popis",
|
||||
"edit" => "Edituji widget :name",
|
||||
"editExisting" => "Upravit widget",
|
||||
"name" => "Jméno",
|
||||
"new" => "Vytvořit nový widget",
|
||||
"preview" => "Náhled",
|
||||
"save" => "Uložit",
|
||||
"successfullyEdited" => "Widget úspěšně upraven",
|
||||
"widgetDescription" => "Jednoduchý widget pro vkládání sociálních tlačítek.",
|
||||
"widgetName" => "Sociální tlačítka",
|
||||
];
|
||||
@@ -0,0 +1,16 @@
|
||||
<tr class="{{$extraClass or ''}}">
|
||||
<td>
|
||||
<label class="label-control" for="order-{{$page->id}}">
|
||||
{{$page->title}}
|
||||
</label>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<input class="form-control" id="order-{{$page->id}}" type="text"
|
||||
name="page[{{$page->id}}]"
|
||||
value="{{old('page['.$page->id.']', $page->order)}}" />
|
||||
|
||||
@include('admin.snippets.hasError', ['field' => 'page['.$page->id.']'])
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
@@ -0,0 +1,137 @@
|
||||
<div data-id="{{$page->id}}" class="row p-tb-15 parent-page-{{$page->parentId or 'none'}} {{$extraClass or ''}}">
|
||||
<div class="col-md-1 hidden-sm-down text-center with-placeholder">
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
@if(!view()->exists(template_name($page->template, false)))
|
||||
<i class="fa fa-2x text-warning fa-warning" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.invalidTemplateSelected')"></i>
|
||||
@else
|
||||
@if(!empty($page->titlePhoto))
|
||||
<div class="thumbnail" style="background-image: url(@thumbnail($page->titlePhoto))"></div>
|
||||
@else
|
||||
<img src="{{asset('resources/assets/admin/img/placeholder.png')}}"
|
||||
class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@endif
|
||||
@endif
|
||||
</a>
|
||||
@else
|
||||
@if(!empty($page->titlePhoto))
|
||||
<img src="@thumbnail($page->titlePhoto)" class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@endif
|
||||
@endcan
|
||||
</div>
|
||||
<div class="col-xs-10 col-md-3 col-lg-4">
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
{{$page->title}}
|
||||
</a>
|
||||
@else
|
||||
{{$page->title}}
|
||||
@endcan
|
||||
|
||||
|
||||
@if($page->isHomepage) <span
|
||||
class="m-l-10 tag tag-primary">@lang('admin/contents.homepage')</span> @endif
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<span class="tag @if($page->isPublic()) tag-success
|
||||
@elseif ($page->isDraft()) tag-danger
|
||||
@else tag-warning @endif">{{$statuses[$page->status]}}</span>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<a href="{{route('content.overview', ['module' => $page->module->alias])}}">
|
||||
@lang($page->module->name)
|
||||
</a>
|
||||
<br>
|
||||
<small>({{$page->templateModel->name}})</small>
|
||||
</div>
|
||||
<div class="col-lg-2 hidden-md-down">@date($page->created_at)</div>
|
||||
<div class="col-xs-2 col-lg-1 text-center">
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive">
|
||||
<i class="fa fa-cog"></i>
|
||||
</span>
|
||||
<span class="active">
|
||||
<i class="fa fa-chevron-circle-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
|
||||
@if(!$page->isHomepage)
|
||||
@can('set-homepage', $page)
|
||||
<li>
|
||||
<a href="{{route('content.setHomepage', ['page' => $page])}}"
|
||||
data-toggle="tooltip"
|
||||
title="@lang('admin/contents.setHomepage')">
|
||||
<i class="fa fa-home"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
@can('update', $page)
|
||||
<li>
|
||||
<a class="edit" href="{{route('content.edit', ['page' => $page])}}"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.editPlain')">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@if($page->isDraft())
|
||||
@can('publish', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'public'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makePublic')">
|
||||
<i class="fa fa-eye"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@can('protect', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'protected'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeProtected')">
|
||||
<i class="fa fa-lock"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@else
|
||||
<li>
|
||||
<a href="{{route('page.content', ['url' => $page->url])}}"
|
||||
target="_blank"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.viewPage')"
|
||||
class="button tiny secondary"><i class="fa fa-globe"></i>
|
||||
</a>
|
||||
</li>
|
||||
@can('draft', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'draft'])}}"
|
||||
class="button tiny warning confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeDraft')">
|
||||
<i class="fa fa-eye-slash"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
@can('delete', $page)
|
||||
<li>
|
||||
<a href="{{route('content.delete', ['page' => $page])}}"
|
||||
class="button tiny alert remove confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.deletePage')"><i
|
||||
class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -21,9 +21,12 @@
|
||||
</div>
|
||||
|
||||
@if ($historySize > 0)
|
||||
<div class="columns text-right col-lg-6">
|
||||
<a class="btn btn-secondary" href="{{route('content.history', ['id' => $page->id])}}">@lang('admin/contents.showHistory', ['count' => $historySize])</a>
|
||||
</div>
|
||||
@can('viewHistory', $page)
|
||||
<div class="columns text-right col-lg-6">
|
||||
<a class="btn btn-secondary"
|
||||
href="{{route('content.history', ['id' => $page->id])}}">@lang('admin/contents.showHistory', ['count' => $historySize])</a>
|
||||
</div>
|
||||
@endcan
|
||||
@endif
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -4,25 +4,30 @@
|
||||
class="col-lg-4 col-lg-offset-4 col-md-6 col-md-offset-3 col-sm-12 title-photo text-center">
|
||||
<input type="hidden" id="existingTitlePhoto" value="{{$page->titlePhoto}}" name="existingTitlePhoto">
|
||||
<p><img src="@thumbnail($page->titlePhoto)" alt="" /></p>
|
||||
<p>
|
||||
<a href="javascript:void(0)" id="removeTitlePhoto" class="btn btn-warning" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.deleteTitlePhoto')"><i
|
||||
class="fa fa-trash"></i></a>
|
||||
</p>
|
||||
@can('upload', \App\Models\FileManager\File::class)
|
||||
<p>
|
||||
<a href="javascript:void(0)" id="removeTitlePhoto" class="btn btn-warning" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.deleteTitlePhoto')"><i
|
||||
class="fa fa-trash"></i></a>
|
||||
</p>
|
||||
@endcan
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label class="control-label">
|
||||
@lang('admin/contents.uploadTitleImage')
|
||||
</label>
|
||||
<input type="file" id="titlePhotoFile" accept=".jpg,.jpeg,.png" name="titlePhotoFile" class="form-control" />
|
||||
@can('upload', \App\Models\FileManager\File::class)
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<label class="control-label">
|
||||
@lang('admin/contents.uploadTitleImage')
|
||||
</label>
|
||||
<input type="file" id="titlePhotoFile" accept=".jpg,.jpeg,.png" name="titlePhotoFile"
|
||||
class="form-control" />
|
||||
|
||||
@include('admin.snippets.hasError', ['field' => 'titlePhotoFile'])
|
||||
@include('admin.snippets.hasError', ['field' => 'titlePhotoFile'])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
@if (count($templates))
|
||||
<div class="row">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</label>
|
||||
|
||||
<input type="datetime" class="form-control" name="publishedFrom" value="{{old('publishedFrom', $page->publishedFrom)}}"
|
||||
placeholder="@lang('admin/contents.field_publishedFrom')" />
|
||||
placeholder="@lang('admin/contents.field_published_from')" />
|
||||
|
||||
@include('admin.snippets.hasError', ['field' => 'publishedFrom'])
|
||||
</div>
|
||||
@@ -16,7 +16,7 @@
|
||||
</label>
|
||||
|
||||
<input type="datetime" class="form-control" name="publishedTo" value="{{old('publishedTo', $page->publishedTo)}}"
|
||||
placeholder="@lang('admin/contents.field_publishedTo')" />
|
||||
placeholder="@lang('admin/contents.field_published_to')" />
|
||||
@include('admin.snippets.hasError', ['field' => 'publishedTo'])
|
||||
</div>
|
||||
</div>
|
||||
@@ -10,7 +10,7 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form method="POST" enctype="multipart/form-data" action="{{route('content.newPost', ['moduleId' => $module->id])}}">
|
||||
<form method="POST" enctype="multipart/form-data" action="{{route('content.newPost', ['module' => $module])}}">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
@include('admin.content.formInputs')
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
@extends('admin.layoutWithNavigation')
|
||||
|
||||
@section('pageHeading', trans('admin/contents.setOrder'))
|
||||
|
||||
@section('content')
|
||||
|
||||
@if (count($pages) > 0)
|
||||
<div class="card items" id="orderSetup">
|
||||
<div class="card-block">
|
||||
<form method="POST" enctype="multipart/form-data" class="form-inline"
|
||||
action="{{route('content.setOrder')}}">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<table>
|
||||
@foreach($pages as $page)
|
||||
@include('admin.content._partials.orderSetupRow')
|
||||
|
||||
@foreach($page->subpages as $subpage)
|
||||
@include('admin.content._partials.orderSetupRow', ['page' => $subpage, 'extraClass' => 'subpage'])
|
||||
@endforeach
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/contents.save')</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@else
|
||||
<div class="alert alert-info">
|
||||
@lang('admin/contents.noPagesAvailable')
|
||||
</div>
|
||||
@endif
|
||||
@endsection
|
||||
@@ -3,11 +3,27 @@
|
||||
@section('pageHeading', @trans($pageHeading))
|
||||
@section('headerButtons')
|
||||
|
||||
@if($module->exists === true)
|
||||
<a href="{{route('content.new', ['moduleId' => $module->id])}}" class="btn btn-primary btn-sm rounded">
|
||||
<i class="fa fa-plus"></i>
|
||||
</a>
|
||||
@endif
|
||||
@can('create', \App\Models\Content\Content::class)
|
||||
@if (!empty($contentModules))
|
||||
|
||||
@if (count($contentModules) == 1)
|
||||
<a class="btn btn-secondary btn-sm rounded" href="{{route('content.new', ['module' => $contentModules[0]])}}"><i class="fa fa-plus"></i></a>
|
||||
@else
|
||||
<div class="dropdown show d-inline">
|
||||
<a class="btn btn-secondary rounded btn-sm dropdown-toggle" href="#" id="contentModulesDropdown"
|
||||
data-toggle="dropdown" aria-expanded="false"><i class="fa fa-plus"></i></a>
|
||||
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
||||
@foreach ($contentModules as $contentModule)
|
||||
<a class="dropdown-item"
|
||||
href="{{route('content.new', ['module' => $contentModule])}}">{{trans($contentModule->name)}}</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@endif
|
||||
@endcan
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
@@ -22,132 +38,32 @@
|
||||
@endif
|
||||
|
||||
@if (count($pages) > 0)
|
||||
<div class="item-list rows-striped">
|
||||
<div class="row bold p-tb-15">
|
||||
<div class="col-md-1 hidden-sm-down"></div>
|
||||
<div class="col-xs-10 col-md-3 col-lg-4">@lang('admin/contents.title')</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">@lang('admin/contents.status')</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">@lang('admin/contents.moduleName')</div>
|
||||
<div class="col-lg-2 hidden-md-down">@lang('admin/contents.createdAt')</div>
|
||||
<div class="col-xs-2 col-lg-1">@lang('admin/contents.actions')</div>
|
||||
</div>
|
||||
@foreach($pages as $page)
|
||||
<div class="row p-tb-15">
|
||||
<div class="col-md-1 hidden-sm-down text-center with-placeholder">
|
||||
<a href="{{route('content.edit', ['id' => $page->id])}}">
|
||||
@if(!view()->exists(template_name($page->template, false)))
|
||||
<i class="fa fa-2x text-warning fa-warning" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.invalidTemplateSelected')"></i>
|
||||
@else
|
||||
@if(!empty($page->titlePhoto))
|
||||
<img src="@thumbnail($page->titlePhoto)" class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@else
|
||||
<img src="{{asset('resources/assets/admin/img/placeholder.png')}}"
|
||||
class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@endif
|
||||
@endif
|
||||
</a>
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
<div class="item-list striped rows-striped">
|
||||
<div class="row bold p-tb-15">
|
||||
<div class="col-md-1 hidden-sm-down"></div>
|
||||
<div class="col-xs-10 col-md-3 col-lg-4">@lang('admin/contents.title')</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">@lang('admin/contents.status')</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">@lang('admin/contents.moduleName')</div>
|
||||
<div class="col-lg-2 hidden-md-down">@lang('admin/contents.createdAt')</div>
|
||||
<div class="col-xs-2 col-lg-1">@lang('admin/contents.actions')</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-md-3 col-lg-4">
|
||||
<a href="{{route('content.edit', ['id' => $page->id])}}">
|
||||
{{$page->title}}
|
||||
</a>
|
||||
@foreach($pages as $page)
|
||||
@include('admin.content._partials.overviewRow', ['extraClass' => $page->subpages->isEmpty() ?: 'has-subpages'])
|
||||
|
||||
@if($page->isHomepage) <span class="m-l-10 tag tag-primary">@lang('admin/contents.homepage')</span> @endif
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<span class="tag @if($page->isPublic()) tag-success
|
||||
@elseif ($page->isDraft()) tag-danger
|
||||
@else tag-warning @endif">{{$statuses[$page->status]}}</span>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<a href="{{route('content.overview', ['moduleId' => $page->module_id])}}">
|
||||
{{trans($page->module_name)}}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-lg-2 hidden-md-down">@date($page->created_at)</div>
|
||||
<div class="col-xs-2 col-lg-1 text-center">
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive">
|
||||
<i class="fa fa-cog"></i>
|
||||
</span>
|
||||
<span class="active">
|
||||
<i class="fa fa-chevron-circle-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
|
||||
@if(!$page->isHomepage)
|
||||
<li>
|
||||
|
||||
<a href="{{route('content.setHomepage', ['id' => $page->id])}}"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.setHomepage')">
|
||||
<i class="fa fa-home"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
<li>
|
||||
<a class="edit" href="{{route('content.edit', ['id' => $page->id])}}"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.editPlain')">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@if($page->isDraft())
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['id' => $page->id, 'status' => 'public'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makePublic')">
|
||||
<i class="fa fa-eye"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['id' => $page->id, 'status' => 'protected'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeProtected')">
|
||||
<i class="fa fa-lock"></i>
|
||||
</a>
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<a href="{{route('page.content', ['url' => $page->url])}}" target="_blank"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.viewPage')"
|
||||
class="button tiny secondary"><i class="fa fa-globe"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['id' => $page->id, 'status' => 'draft'])}}"
|
||||
class="button tiny warning confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeDraft')">
|
||||
<i class="fa fa-eye-slash"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
<li>
|
||||
<a href="{{route('content.delete', ['id' => $page->id])}}"
|
||||
class="button tiny alert remove confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.deletePage')"><i
|
||||
class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@foreach($page->subpages as $subpage)
|
||||
@include('admin.content._partials.overviewRow', ['page' => $subpage, 'extraClass' => 'subpage hidden-xs-up'])
|
||||
@endforeach
|
||||
@endforeach
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
{!! $pages->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
{!! $pages->render() !!}
|
||||
</div>
|
||||
|
||||
@else
|
||||
<div class="alert alert-info">
|
||||
|
||||
@@ -2,41 +2,60 @@
|
||||
|
||||
@section('pageHeading', @trans('admin/fileManager.edit', ['name' => $file->original_filename]))
|
||||
@section('headerButtons')
|
||||
<a href="{{route('upload.delete', ['id' => $file->id])}}" class="btn btn-danger btn-sm confirm rounded" title="@lang('admin/fileManager.delete')">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
@endsection
|
||||
|
||||
<a href="{{route('upload.overview')}}" class="btn btn-secondary rounded btn-sm"><i class="fa fa-list"></i></a>
|
||||
|
||||
@can('delete', $file)
|
||||
<a href="{{route('upload.delete', ['id' => $file->id])}}" class="btn btn-danger btn-sm confirm rounded"
|
||||
title="@lang('admin/fileManager.delete')">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@endsection
|
||||
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="large-preview">
|
||||
{!! \App\CMS\Helpers\FileManager::getLargePreview($file) !!}
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
{!! \App\CMS\Helpers\FileManager::getLargePreview($file) !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
|
||||
<div class="row callout secondary">
|
||||
<h3>{{$file->original_filename}}</h3>
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
|
||||
<ul>
|
||||
<li>@lang('admin/fileManager.createdAt'): {{$file->created_at}}</li>
|
||||
<li>@lang('admin/fileManager.updatedAt'): {{$file->updated_at}}</li>
|
||||
<li>@lang('admin/fileManager.mime'): {{$file->mime_type}}</li>
|
||||
<li>@lang('admin/fileManager.hash'): <span title="{{$file->file_hash}}">{{str_limit($file->file_hash, 10)}}</span></li>
|
||||
<li>@lang('admin/fileManager.url'): <a href="{{config('app.upload_url')}}/{{$file->filename}}">{{$file->filename}}</a></li>
|
||||
<li>@lang('admin/fileManager.fileSize'): {{\App\CMS\Helpers\FileManager::getFormattedSize($file)}}</li>
|
||||
<div class="row callout secondary">
|
||||
<h3>{{$file->original_filename}}</h3>
|
||||
|
||||
@foreach($extraInfo as $column => $info)
|
||||
<li>{{$column}}: {{$info}}</li>
|
||||
@endforeach
|
||||
<ul>
|
||||
<li>@lang('admin/fileManager.createdAt'): {{$file->created_at}}</li>
|
||||
<li>@lang('admin/fileManager.updatedAt'): {{$file->updated_at}}</li>
|
||||
<li>@lang('admin/fileManager.mime'): {{$file->mime_type}}</li>
|
||||
<li>@lang('admin/fileManager.hash'): <span
|
||||
title="{{$file->file_hash}}">{{str_limit($file->file_hash, 10)}}</span></li>
|
||||
<li>@lang('admin/fileManager.url'): <a
|
||||
href="{{config('app.upload_url')}}/{{$file->filename}}">{{$file->filename}}</a>
|
||||
</li>
|
||||
<li>@lang('admin/fileManager.fileSize')
|
||||
: {{\App\CMS\Helpers\FileManager::getFormattedSize($file)}}</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
@foreach($extraInfo as $column => $info)
|
||||
<li>{{$column}}: {{$info}}</li>
|
||||
@endforeach
|
||||
|
||||
<div class="row">
|
||||
@include('admin.fileManager.editForm')
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
@include('admin.fileManager.editForm')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -49,6 +68,6 @@
|
||||
@section('javascripts')
|
||||
<script type="text/javascript" src="{{asset('/resources/assets/js/vendor/highlightjs/highlight.min.js')}}"></script>
|
||||
<script type="text/javascript">
|
||||
hljs.initHighlightingOnLoad();
|
||||
hljs.initHighlightingOnLoad ();
|
||||
</script>
|
||||
@stop
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
<form method="POST" action="{{route('upload.postEdit', ['id' => $file->id])}}" enctype="multipart/form-data">
|
||||
{!! csrf_field() !!}
|
||||
@can('update', $file)
|
||||
<form method="POST" action="{{route('upload.postEdit', ['id' => $file->id])}}" enctype="multipart/form-data">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.name')
|
||||
</label>
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.name')
|
||||
</label>
|
||||
|
||||
<input class="form-control" type="text" name="name" id="name" value="{{$file->name}}" />
|
||||
<input class="form-control" type="text" name="name" id="name" value="{{$file->name}}" />
|
||||
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.keywords')
|
||||
</label>
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.keywords')
|
||||
</label>
|
||||
|
||||
<input class="form-control" type="text" name="keywords" id="keywords" value="{{$file->keywords}}" />
|
||||
<input class="form-control" type="text" name="keywords" id="keywords" value="{{$file->keywords}}" />
|
||||
|
||||
<lavel class="control-label">
|
||||
@lang('admin/fileManager.directory')
|
||||
</lavel>
|
||||
<lavel class="control-label">
|
||||
@lang('admin/fileManager.directory')
|
||||
</lavel>
|
||||
|
||||
<select name="directory_id" class="form-control">
|
||||
@include('admin/fileManager.directories.subdirectoriesOptionList', ['directory' => $root, 'depth' => 0, 'file' => $file])
|
||||
</select>
|
||||
<select name="directory_id" class="form-control">
|
||||
@include('admin/fileManager.directories.subdirectoriesOptionList', ['directory' => $root, 'depth' => 0, 'file' => $file])
|
||||
</select>
|
||||
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.description')
|
||||
</label>
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.description')
|
||||
</label>
|
||||
|
||||
<textarea class="form-control" rows="3" name="description" id="description">{{$file->description}}</textarea>
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/fileManager.editButton')</button>
|
||||
</form>
|
||||
<textarea class="form-control" rows="3" name="description" id="description">{{$file->description}}</textarea>
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/fileManager.editButton')</button>
|
||||
</form>
|
||||
@endcan
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
'body' => '<a href="'.route('upload.detail', ['id' => $file->id]).'">'.\App\CMS\Helpers\FileManager::getPreview($file).'</a>',
|
||||
'footerClass' => 'text-right',
|
||||
'cardClass' => 'file-preview',
|
||||
'footer' => (!isset($hideDelete) || !$hideDelete) ? '<a href="'.route('upload.delete', ['id' => $file->id]).'" data-toggle="tooltip"
|
||||
'footer' => \Auth::user()->can('delete', $file) && (!isset($hideDelete) || !$hideDelete) ? '<a href="'.route('upload.delete', ['id' => $file->id]).'" data-toggle="tooltip"
|
||||
class="btn btn-sm btn-danger confirm"
|
||||
title="'.trans('admin/fileManager.delete').'">
|
||||
<i class="fa fa-trash"></i>
|
||||
|
||||
@@ -15,51 +15,64 @@
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div id="file-manager-controls" role="tablist" aria-multiselectable="true">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-file-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-file" aria-expanded="false" aria-controls="new-file">
|
||||
@lang('admin/fileManager.newFile')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="new-file" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-file-title">
|
||||
@include('admin.fileManager.newFileForm')
|
||||
</div>
|
||||
</div>
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
<div id="file-manager-controls" role="tablist" aria-multiselectable="true">
|
||||
@can('upload', \App\Models\FileManager\File::class)
|
||||
|
||||
@if (!$directory->is_root)
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="edit-dir-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#edit-dir" aria-expanded="false" aria-controls="edit-dir">
|
||||
@lang('admin/fileManager.editDirectory')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="edit-dir" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="edit-file-title">
|
||||
@include('admin.fileManager.directories.form', ['action' => route('upload.postEditDirectory', ['id' => $directory->id])])
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-file-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-file" aria-expanded="false" aria-controls="new-file">
|
||||
@lang('admin/fileManager.newFile')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="new-file" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-file-title">
|
||||
@include('admin.fileManager.newFileForm')
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-dir-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-dir" aria-expanded="false" aria-controls="new-dir">
|
||||
@lang('admin/fileManager.newDirectory')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="new-dir" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-dir-title">
|
||||
@include('admin.fileManager.directories.form', ['directory' => $newDirectory, 'action' => route('upload.postNewDirectory')])
|
||||
|
||||
@if (!$directory->is_root)
|
||||
@can('update', $directory)
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="edit-dir-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse"
|
||||
data-parent="#file-manager-controls"
|
||||
href="#edit-dir" aria-expanded="false" aria-controls="edit-dir">
|
||||
@lang('admin/fileManager.editDirectory')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="edit-dir" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="edit-file-title">
|
||||
@include('admin.fileManager.directories.form', ['action' => route('upload.postEditDirectory', ['id' => $directory->id])])
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
@can('create', \App\Models\FileManager\Directory::class)
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-dir-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-dir" aria-expanded="false" aria-controls="new-dir">
|
||||
@lang('admin/fileManager.newDirectory')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="new-dir" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-dir-title">
|
||||
@include('admin.fileManager.directories.form', ['directory' => $newDirectory, 'action' => route('upload.postNewDirectory')])
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<a href="{{route('content.edit', ['id' => $page->id])}}" class="btn btn-primary">
|
||||
@lang('admin/history.backToEdit')
|
||||
</a>
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['id' => $page->id])}}" class="btn btn-primary">
|
||||
@lang('admin/history.backToEdit')
|
||||
</a>
|
||||
@endcan
|
||||
@stop
|
||||
@@ -26,6 +26,13 @@
|
||||
|
||||
<body>
|
||||
|
||||
@if (session('status'))
|
||||
<div class="notification alert alert-info">
|
||||
<i class="fa fw fa-check"></i>
|
||||
<strong>{{ session('status') }}</strong>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (session('success'))
|
||||
<div class="notification alert alert-success">
|
||||
<i class="fa fw fa-check"></i>
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
@extends('admin.layoutWithNavigation')
|
||||
|
||||
@section('pageHeading', trans('admin/permissions.pageTitle'))
|
||||
@section('pageDescription', trans('admin/permissions.description'))
|
||||
|
||||
@section('content')
|
||||
|
||||
<form action="{{route('permissions.setDefault')}}" method="post">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
@foreach($permissions as $permission)
|
||||
|
||||
<div>
|
||||
<label>
|
||||
<input class="checkbox" id="checkbox-parent-{{$permission->id}}" data-id="{{$permission->id}}" value="1"
|
||||
@if($permission->default)
|
||||
checked
|
||||
@endif name="permissions[{{$permission->string_id}}]" type="checkbox">
|
||||
<span>{{trans($permission->name)}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@if($permission->subpermissions->count() > 0)
|
||||
@foreach($permission->subpermissions as $subpermission)
|
||||
<div>
|
||||
<label>
|
||||
<i class="fa fa-fw"></i>
|
||||
<input class="checkbox child-checkbox child-{{$subpermission->parent_id}}" data-parent="{{$permission->id}}" value="1"
|
||||
@if($permission->default && $subpermission->default)
|
||||
checked
|
||||
@endif name="permissions[{{$subpermission->string_id}}]" type="checkbox">
|
||||
<span>{{trans($subpermission->name)}}</span>
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
<button class="btn btn-primary">@lang('admin/permissions.save')</button>
|
||||
</form>
|
||||
|
||||
@endsection
|
||||
@@ -6,8 +6,16 @@
|
||||
@if ($search)
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<h3>@lang('search.results')</h3>
|
||||
@include('admin.search.results')
|
||||
@if(!empty($results))
|
||||
<h3>@lang('search.results')</h3>
|
||||
@include('admin.search.results')
|
||||
@else
|
||||
|
||||
<div class="alert alert-info">
|
||||
<em>@lang('admin/common.noSearchEngine')</em>
|
||||
</div>
|
||||
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h3>@lang('search.term')</h3>
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
|
||||
<h3>@lang('admin/settings.previews.title')</h3>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
|
||||
<label>@lang('admin/settings.previews.size')</label>
|
||||
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="previewSize" value="{{old('previewSize', isset($settings->previewSize) ? $settings->previewSize['val'] : 300)}}">
|
||||
<span class="input-group-addon">px</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
@include('admin.settings.snippets.commonSettings', ['field' => 'previewSize'])
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
|
||||
<label>@lang('admin/settings.previews.quality')</label>
|
||||
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="previewQuality" value="{{old('previewQuality', isset($settings->previewQuality) ? $settings->previewQuality['val'] : 75)}}">
|
||||
<span class="input-group-addon">%</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
@include('admin.settings.snippets.commonSettings', ['field' => 'previewQuality'])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 class="m-t-50">@lang('admin/settings.widgets.title')</h3>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<label>
|
||||
<input class="checkbox" value="1"
|
||||
@if(!isset($settings->useWidgetPreloading) || $settings->useWidgetPreloading['lang'] == null)
|
||||
checked
|
||||
@endif name="useWidgetPreloading" type="checkbox">
|
||||
<span>@lang('admin/settings.widgets.useWidgetPreloading')</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
@include('admin.settings.snippets.commonSettings', ['field' => 'useWidgetPreloading'])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<label class="label-control">
|
||||
@lang('admin/settings.widgets.preloadFrequentedWidgetAreasTreshold')
|
||||
</label>
|
||||
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="preloadFrequentedWidgetAreasTreshold" value="{{old('preloadFrequentedWidgetAreasTreshold', isset($settings->preloadFrequentedWidgetAreasTreshold) ? $settings->preloadFrequentedWidgetAreasTreshold['val'] : 10)}}">
|
||||
<span class="input-group-addon">@lang('common.views')</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
@include('admin.settings.snippets.commonSettings', ['field' => 'author'])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<label class="label-control">
|
||||
@lang('admin/settings.widgets.widgetCacheLifetime')
|
||||
</label>
|
||||
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="widgetCacheLifetime" value="{{old('widgetCacheLifetime', isset($settings->widgetCacheLifetime) ? $settings->widgetCacheLifetime['val'] : 10)}}">
|
||||
<span class="input-group-addon">@lang('common.minutes')</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
@include('admin.settings.snippets.commonSettings', ['field' => 'author'])
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<form action="{{$action}}" method="post" class="d-inline">
|
||||
{!! csrf_field() !!}
|
||||
{!! method_field('DELETE') !!}
|
||||
|
||||
<button class="btn btn-danger confirm btn-sm rounded"><i class="fa fa-trash"></i></button>
|
||||
</form>
|
||||
@@ -1,29 +1,39 @@
|
||||
<script src="{{asset('/resources/assets/js/vendor/ckeditor/ckeditor.js')}}"></script>
|
||||
|
||||
<script type="application/javascript">
|
||||
CKEDITOR.replace ('{{$textareaId}}', {
|
||||
uiColor: "#F5F5F5",
|
||||
filebrowserUploadUrl: '{{route('upload.postFile', ['_token' => csrf_token()])}}',
|
||||
forcePasteAsPlainText: true,
|
||||
entities: false,
|
||||
basicEntities: false,
|
||||
entities_greek: false,
|
||||
entities_latin: false,
|
||||
height: 550,
|
||||
removePlugins: 'about,scayt', //elementspath
|
||||
extraPlugins: 'justify',
|
||||
enterMode: CKEDITOR.ENTER_P,
|
||||
toolbarGroups: [
|
||||
{name: 'undo', groups: ['undo']},
|
||||
{name: 'styles'},
|
||||
{name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
|
||||
{name: 'paragraph', groups: ['list', 'indent', 'align', 'blocks']},
|
||||
{name: 'links'},
|
||||
{name: 'editing', groups: ['find', 'selection']},
|
||||
{name: 'insert'},
|
||||
{name: 'forms'},
|
||||
{name: 'document', groups: ['mode', 'document', 'doctools']},
|
||||
{name: 'tools'}
|
||||
]
|
||||
});
|
||||
CKEDITOR.on ('instanceCreated', function (e) {
|
||||
e.editor.on ('change', function (event) {
|
||||
var textarea = event.editor.element.$;
|
||||
$ (textarea).val (event.editor.getData ().trim ());
|
||||
$ (textarea.form).trigger ('checkform.areYouSure');
|
||||
});
|
||||
})
|
||||
|
||||
CKEDITOR.replace ('{{$textareaId}}', {
|
||||
uiColor: "#F5F5F5",
|
||||
@can('upload', \App\Models\FileManager\File::class)
|
||||
filebrowserUploadUrl: '{{route('upload.postFile', ['_token' => csrf_token()])}}',
|
||||
@endcan
|
||||
forcePasteAsPlainText: true,
|
||||
entities: false,
|
||||
basicEntities: false,
|
||||
entities_greek: false,
|
||||
entities_latin: false,
|
||||
height: 550,
|
||||
removePlugins: 'about,scayt', //elementspath
|
||||
extraPlugins: 'justify',
|
||||
enterMode: CKEDITOR.ENTER_P,
|
||||
toolbarGroups: [
|
||||
{name: 'undo', groups: ['undo']},
|
||||
{name: 'styles'},
|
||||
{name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
|
||||
{name: 'paragraph', groups: ['list', 'indent', 'align', 'blocks']},
|
||||
{name: 'links'},
|
||||
{name: 'editing', groups: ['find', 'selection']},
|
||||
{name: 'insert'},
|
||||
{name: 'forms'},
|
||||
{name: 'document', groups: ['mode', 'document', 'doctools']},
|
||||
{name: 'tools'}
|
||||
]
|
||||
});
|
||||
</script>
|
||||
+5
-6
@@ -14,12 +14,11 @@
|
||||
{{--@endif--}}
|
||||
|
||||
<div>
|
||||
|
||||
<h5>@lang('admin/templates.subdirectories')</h5>
|
||||
|
||||
@forelse($subdirectories as $subdirectory)
|
||||
<a href="{{route('templates.overview', ['path' => $subdirectory->id])}}">{{trans($subdirectory->name)}}</a>
|
||||
<ul>
|
||||
@forelse($directory->subdirectories as $subdirectory)
|
||||
<li><a href="{{route('templates.overview', ['path' => $subdirectory->id])}}">{{trans($subdirectory->name)}}</a></li>
|
||||
@empty
|
||||
<em>@lang('admin/templates.noSubdirectories')</em>
|
||||
<li><em>@lang('admin/templates.noSubdirectories')</em></li>
|
||||
@endforelse
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,70 @@
|
||||
<div class="tile-overview sameheight-container">
|
||||
@forelse($directory->templates as $template)
|
||||
<div class="col-lg-3">
|
||||
<div class="text-center bold" data-toggle="tooltip" title="{{$template->name}}">
|
||||
{{str_limit($template->name, 15)}}
|
||||
</div>
|
||||
<div class="text-center sameheight-item">
|
||||
{{str_limit($template->description, 150)}}
|
||||
</div>
|
||||
|
||||
@can('copy', \App\Models\Templates\Template::class)
|
||||
@if($isWritable)
|
||||
<a data-template-id="{{$template->id}}" data-template-name="{{$template->template_name}}"
|
||||
class="btn btn-pill-left btn-secondary col-lg-6 copy-template" data-toggle="tooltip"
|
||||
title="@lang('admin/templates.copy')">
|
||||
<i class="fa fa-copy"></i>
|
||||
</a>
|
||||
@else
|
||||
<a href="#" class="btn btn-pill-left btn-secondary disabled col-lg-6" data-toggle="tooltip"
|
||||
title="@lang('admin/templates.cannotCopy')">
|
||||
<i class="fa fa-copy"></i>
|
||||
</a>
|
||||
@endif
|
||||
@endcan
|
||||
@can('update', $template)
|
||||
<a href="{{route('templates.edit', ['id' => $template->id])}}"
|
||||
class="btn btn-primary btn-pill-right col-lg-6" data-toggle="tooltip"
|
||||
title="@lang('admin/templates.edit', ['name' => $template->name])">
|
||||
@if ($template->editable)
|
||||
<i class="fa fa-edit"></i>
|
||||
@else
|
||||
<i class="fa fa-info"></i>
|
||||
@endif
|
||||
|
||||
</a>
|
||||
@endcan
|
||||
</div>
|
||||
@empty
|
||||
<div class="alert alert-info">
|
||||
<em>@lang('admin/templates.noTemplates')</em>
|
||||
</div>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
@section('javascripts')
|
||||
<script type="text/javascript">
|
||||
$ ('.copy-template').click (function () {
|
||||
var link = $ (this);
|
||||
var templateId = link.data ('template-id');
|
||||
var templateName = link.data ('template-name');
|
||||
templateName = templateName.substr (templateName.search ('::') + 2, templateName.length);
|
||||
|
||||
var newTemplateName = prompt ("@lang('admin/templates.newTemplateName')", templateName + "_" + "@lang('admin/templates.newTemplateNameSuffix')");
|
||||
|
||||
// no name given - give up
|
||||
if (newTemplateName === null) return;
|
||||
|
||||
// copy given template
|
||||
$.post ('{{route('templates.postCopy')}}', {
|
||||
template: templateId,
|
||||
newName: newTemplateName,
|
||||
_token: "{{csrf_token()}}"
|
||||
}, function (data) {
|
||||
if (data.status === 'success') {
|
||||
location.reload ();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@@ -3,5 +3,5 @@
|
||||
@section('pageHeading', @trans('admin/templates.edit', ['name' => $template->template_name]))
|
||||
|
||||
@section('content')
|
||||
@include('admin.templates.editForm')
|
||||
@include('admin.templates._partials.editForm')
|
||||
@stop
|
||||
@@ -0,0 +1,13 @@
|
||||
@extends('admin.layoutWithNavigation')
|
||||
|
||||
@section('pageHeading', @trans('admin/templates.overview'))
|
||||
|
||||
@section('content')
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
@foreach($templatePaths as $directory)
|
||||
@include('admin.templates._partials.directoriesList')
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -3,16 +3,24 @@
|
||||
@section('pageHeading', @trans('admin/templates.overview'))
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
@include('admin.templates.templatesTiles')
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
@include('admin.templates._partials.templatesTiles')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3">
|
||||
<div class="callout">
|
||||
@include('admin.templates.directoriesList')
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
@include('admin.templates._partials.directoriesList')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
||||
@endsection
|
||||
@@ -1,66 +0,0 @@
|
||||
<div class="tile-overview sameheight-container">
|
||||
@forelse($templates as $template)
|
||||
<div class="col-lg-3">
|
||||
<div class="text-center bold" data-toggle="tooltip" title="{{$template->name}}">
|
||||
{{str_limit($template->name, 15)}}
|
||||
</div>
|
||||
<div class="text-center sameheight-item">
|
||||
{{str_limit($template->description, 150)}}
|
||||
</div>
|
||||
|
||||
@if($isWritable)
|
||||
<a data-template-id="{{$template->id}}" data-template-name="{{$template->template_name}}"
|
||||
class="btn btn-pill-left btn-secondary col-lg-6 copy-template" data-toggle="tooltip"
|
||||
title="@lang('admin/templates.copy')">
|
||||
<i class="fa fa-copy"></i>
|
||||
</a>
|
||||
@else
|
||||
<a href="#" class="btn btn-pill-left btn-secondary disabled col-lg-6" data-toggle="tooltip"
|
||||
title="@lang('admin/templates.cannotCopy')">
|
||||
<i class="fa fa-copy"></i>
|
||||
</a>
|
||||
@endif
|
||||
<a href="{{route('templates.edit', ['id' => $template->id])}}"
|
||||
class="btn btn-primary btn-pill-right col-lg-6" data-toggle="tooltip"
|
||||
title="@lang('admin/templates.edit', ['name' => $template->name])">
|
||||
@if ($template->editable)
|
||||
<i class="fa fa-edit"></i>
|
||||
@else
|
||||
<i class="fa fa-info"></i>
|
||||
@endif
|
||||
|
||||
</a>
|
||||
</div>
|
||||
@empty
|
||||
<div class="alert alert-info">
|
||||
<em>@lang('admin/templates.noTemplates')</em>
|
||||
</div>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
@section('javascripts')
|
||||
<script type="text/javascript">
|
||||
$ ('.copy-template').click (function () {
|
||||
var link = $ (this);
|
||||
var templateId = link.data ('template-id');
|
||||
var templateName = link.data ('template-name');
|
||||
templateName = templateName.substr (templateName.search ('::') + 2, templateName.length);
|
||||
|
||||
var newTemplateName = prompt ("@lang('admin/templates.newTemplateName')", templateName + "_" + "@lang('admin/templates.newTemplateNameSuffix')");
|
||||
|
||||
// no name given - give up
|
||||
if (newTemplateName == null) return;
|
||||
|
||||
// copy given template
|
||||
$.post ('{{route('templates.postCopy')}}', {
|
||||
templateId: templateId,
|
||||
newName: newTemplateName,
|
||||
_token: "{{csrf_token()}}"
|
||||
}, function (data) {
|
||||
if (data.status == 'success') {
|
||||
location.reload ();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@@ -3,10 +3,13 @@
|
||||
@section('pageHeading', trans('admin/userManagement.profile'))
|
||||
@section('pageDescription', @trans('admin/userManagement.detail', ['name' => $user->name, 'email' => $user->email]))
|
||||
@section('headerButtons')
|
||||
<a href="{{route('users.overview')}}" class="btn btn-secondary btn-sm rounded"
|
||||
title="@lang('admin/userManagement.overview')">
|
||||
<i class="fa fa-list"></i>
|
||||
</a>
|
||||
|
||||
@can('manage', \App\Models\User::class)
|
||||
<a href="{{route('users.overview')}}" class="btn btn-secondary btn-sm rounded"
|
||||
title="@lang('admin/userManagement.overview')">
|
||||
<i class="fa fa-list"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
@@ -32,12 +35,24 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-edit" role="tab" id="user-edit-tab"
|
||||
aria-controls="user-edit">
|
||||
@lang('admin/userManagement.edit')
|
||||
</a>
|
||||
</li>
|
||||
@can('update', $user)
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-edit" role="tab" id="user-edit-tab"
|
||||
aria-controls="user-edit">
|
||||
@lang('admin/userManagement.edit')
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@can('set-permissions', $user)
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-permissions" role="tab"
|
||||
id="user-permissions-tab"
|
||||
aria-controls="user-edit">
|
||||
@lang('admin/userManagement.permissions')
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-actions" role="tab" id="user-actions-tab"
|
||||
@@ -60,9 +75,17 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="user-edit" role="tabpanel">
|
||||
@include('admin.userManagement.editForm', ['states' => $statuses])
|
||||
</div>
|
||||
@can('update', $user)
|
||||
<div class="tab-pane" id="user-edit" role="tabpanel">
|
||||
@include('admin.userManagement.editForm', ['states' => $statuses])
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
@can('set-permissions', $user)
|
||||
<div class="tab-pane" id="user-permissions" role="tabpanel">
|
||||
@include('admin.userManagement.permissions.form')
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
<div class="tab-pane" id="user-actions" role="tabpanel">
|
||||
@if (!empty($actions))
|
||||
@@ -89,13 +112,12 @@
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="text-center">
|
||||
<a href="{{route('log.overview', ['userId' => $user->id])}}"
|
||||
class="btn btn-secondary">@lang('admin/userManagement.moreUserActions')</a>
|
||||
</div>
|
||||
|
||||
|
||||
@can('manage', \App\Models\ActionLog\ActionLog::class)
|
||||
<div class="text-center">
|
||||
<a href="{{route('log.overview', ['userId' => $user->id])}}"
|
||||
class="btn btn-secondary">@lang('admin/userManagement.moreUserActions')</a>
|
||||
</div>
|
||||
@endcan
|
||||
@else
|
||||
<div class="alert alert-info">
|
||||
<em>@lang('admin/userManagement.noActions')</em>
|
||||
|
||||
@@ -2,13 +2,17 @@
|
||||
|
||||
@section('pageHeading', @trans('admin/userManagement.editUser', ['name' => str_limit($user->name, 20), 'email' => $user->email]))
|
||||
@section('headerButtons')
|
||||
<a href="{{route('users.overview')}}" class="btn btn-secondary btn-sm rounded" title="@lang('admin/userManagement.overview')">
|
||||
<a href="{{route('users.overview')}}" class="btn btn-secondary btn-sm rounded"
|
||||
title="@lang('admin/userManagement.overview')">
|
||||
<i class="fa fa-list"></i>
|
||||
</a>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
@include('admin.userManagement.editForm')
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
@include('admin.userManagement.editForm')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stop
|
||||
@@ -1,6 +1,8 @@
|
||||
<form method="POST" action="{{route('users.editPost', ['id' => $user->id])}}">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<input type="hidden" name="id" value="{{$user->id}}">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<label class="label-control">
|
||||
@@ -10,6 +12,7 @@
|
||||
<input type="text" class="form-control" placeholder="@lang('admin/userManagement.name')"
|
||||
value="{{$user->name}}"
|
||||
name="name">
|
||||
@include('admin.snippets.hasError', ['field' => 'name'])
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label class="label-control">
|
||||
@@ -17,6 +20,7 @@
|
||||
</label>
|
||||
<input type="text" class="form-control" name="email" value="{{$user->email}}"
|
||||
placeholder="somebody@example.com">
|
||||
@include('admin.snippets.hasError', ['field' => 'email'])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -28,35 +32,40 @@
|
||||
placeholder="@lang('admin/userManagement.password')"
|
||||
name="password"
|
||||
value="">
|
||||
@include('admin.snippets.hasError', ['field' => 'password'])
|
||||
|
||||
@if (\Auth::user()->role == \App\Models\User::ROLE_ADMIN && \Auth::user()->id != $user->id)
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
@can('change-role', $user)
|
||||
<div class="col-lg-6">
|
||||
|
||||
<label class="label-control">
|
||||
<label class="label-control" for="role">
|
||||
@lang('admin/userManagement.roles')
|
||||
</label>
|
||||
|
||||
<select class="form-control" name="role">
|
||||
<select class="form-control" name="role" id="role">
|
||||
@foreach($roles as $role => $translation)
|
||||
<option value="{{$role}}" @if($role == $user->role) selected @endif>{{$translation}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@include('admin.snippets.hasError', ['field' => 'role'])
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
@can('change-status', $user)
|
||||
<div class="col-lg-6">
|
||||
<label class="label-control">
|
||||
<label class="label-control" for="status">
|
||||
@lang('admin/userManagement.status')
|
||||
</label>
|
||||
<select class="form-control" name="status">
|
||||
<select class="form-control" id="status" name="status">
|
||||
@foreach($states as $status => $translation)
|
||||
<option value="{{$status}}"
|
||||
@if($status == $user->status) selected @endif>{{$translation}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@include('admin.snippets.hasError', ['field' => 'status'])
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endcan
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/userManagement.update')</button>
|
||||
</form>
|
||||
@@ -3,8 +3,15 @@
|
||||
@section('pageHeading', @trans('admin/userManagement.overview'))
|
||||
|
||||
@section('headerButtons')
|
||||
|
||||
@can('create', \App\Models\User::class)
|
||||
<a class="btn rounded btn-sm btn-secondary" href="{{route('users.new')}}">
|
||||
<i class="fa fa-plus"></i>
|
||||
</a>
|
||||
@endcan
|
||||
|
||||
@foreach($statuses as $status => $translation)
|
||||
<a class="btn rounded @if($status != $currentStatus) btn-secondary @else btn-primary @endif"
|
||||
<a class="btn btn-sm rounded @if($status != $currentStatus) btn-secondary @else btn-primary @endif"
|
||||
href="{{route('users.overview', ['status' => $status])}}">{{$translation}}</a>
|
||||
@endforeach
|
||||
@endsection
|
||||
@@ -16,14 +23,18 @@
|
||||
<div class="card card-default">
|
||||
<div class="card-block container truncate sameheight-item">
|
||||
<div class="col-xs-12 text-center">
|
||||
<a href="{{route('users.edit', ['id' => $user->id])}}">
|
||||
@can('view', $user)
|
||||
<a href="{{route('users.detail', ['id' => $user->id])}}">
|
||||
<img src="{{\App\CMS\Helpers\Gravatar::img($user->email, 100)}}" alt="" />
|
||||
</a>
|
||||
@else
|
||||
<img src="{{\App\CMS\Helpers\Gravatar::img($user->email, 100)}}" alt="" />
|
||||
</a>
|
||||
@endcan
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<ul>
|
||||
@if(!empty($user->name))
|
||||
<li><a href="{{route('users.edit', ['id' => $user->id])}}">{{$user->name}}</a></li>
|
||||
<li><a href="{{route('users.edit', ['id' => $user->id])}}">{{$user->name}}</a></li>
|
||||
@endif
|
||||
<li><a href="{{route('users.edit', ['id' => $user->id])}}">{{$user->email}}</a></li>
|
||||
<li><em>{{$roles[$user->role]}}</em></li>
|
||||
@@ -31,9 +42,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer text-right">
|
||||
<a href="{{route('users.detail', ['id' => $user->id])}}" class="btn btn-secondary"><i class="fa fa-info"></i></a>
|
||||
<a href="{{route('users.edit', ['id' => $user->id])}}" class="btn btn-primary"><i
|
||||
class="fa fa-pencil edit"></i></a>
|
||||
@can('view', $user)
|
||||
<a href="{{route('users.detail', ['id' => $user->id])}}" class="btn btn-secondary"><i
|
||||
class="fa fa-info"></i></a>
|
||||
@endcan
|
||||
@can('update', $user)
|
||||
<a href="{{route('users.edit', ['id' => $user->id])}}" class="btn btn-primary"><i
|
||||
class="fa fa-pencil edit"></i></a>
|
||||
@endcan
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<form action="{{route('users.setPermissions', ['user' => $user])}}" method="post">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
@foreach($permissions as $permission)
|
||||
|
||||
<div>
|
||||
<label>
|
||||
<input class="checkbox" id="checkbox-parent-{{$permission->id}}" data-id="{{$permission->id}}" value="1"
|
||||
@if($user->hasAbility($permission->string_id))
|
||||
checked
|
||||
@endif name="permissions[{{$permission->string_id}}]" type="checkbox">
|
||||
<span>{{trans($permission->name)}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@if($permission->subpermissions->count() > 0)
|
||||
@foreach($permission->subpermissions as $subpermission)
|
||||
<div>
|
||||
<label>
|
||||
<i class="fa fa-fw"></i>
|
||||
<input class="checkbox child-checkbox child-{{$subpermission->parent_id}}" data-parent="{{$permission->id}}" value="1"
|
||||
@if($user->hasAbility($permission->string_id) && $user->hasAbility($subpermission->string_id))
|
||||
checked
|
||||
@endif name="permissions[{{$subpermission->string_id}}]" type="checkbox">
|
||||
<span>{{trans($subpermission->name)}}</span>
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
@endforeach
|
||||
|
||||
<button class="btn btn-primary">Ulozit</button>
|
||||
</form>
|
||||
@@ -4,18 +4,13 @@
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="col-lg-12">
|
||||
@include('admin.widgets.area.form', ['action' => route('widgetareas.postEdit', ['id' => $area->id])])
|
||||
|
||||
<h2 class="m-t-15">@lang('admin/widgets.overview')</h2>
|
||||
@include('admin.widgets.widgetsToAssociate', ['tileClass' => 'col-md-4 col-sm-6 col-xs-12', 'widgetArea' => $area])
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h3>@lang('admin/widgets.preview')</h3>
|
||||
|
||||
@widgetArea($area->code)
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -1,69 +1,113 @@
|
||||
@extends('admin.layoutWithNavigation')
|
||||
|
||||
@section('pageHeading', @trans('admin/widgetAreas.overview'))
|
||||
@section('pageDescription', @trans('admin/widgetAreas.pageDescription'))
|
||||
|
||||
@section('headerButtons')
|
||||
@can('create', \App\Models\Widgets\WidgetArea::class)
|
||||
<a class="btn rounded btn-sm btn-primary" href="{{route('widgetareas.new')}}">
|
||||
<i class="fa fa-plus"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="@cannot('create', \App\Models\Widgets\WidgetArea::class)col-lg-12 @else col-lg-8 @endcan">
|
||||
@if (count($areas) > 0)
|
||||
<table class="table item-list table-striped">
|
||||
<tr>
|
||||
<th>@lang('admin/widgetAreas.name')</th>
|
||||
<th>@lang('admin/widgetAreas.uniqueCode')</th>
|
||||
<th>@lang('admin/widgetAreas.description')</th>
|
||||
<th>@lang('admin/widgetAreas.actions')</th>
|
||||
</tr>
|
||||
@foreach($areas as $area)
|
||||
<tr>
|
||||
<td><a href="{{route('widgetareas.edit', ['id' => $area->id])}}">{{$area->name}}</a></td>
|
||||
<td><a href="{{route('widgetareas.edit', ['id' => $area->id])}}">{{$area->code}}</a></td>
|
||||
<td>{{str_limit($area->description, 100)}}</td>
|
||||
<td class="text-center">
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive"><i class="fa fa-cog"></i></span>
|
||||
<span class="active"><i class="fa fa-chevron-circle-right"></i></span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
<li>
|
||||
<a class="edit" data-toggle="tooltip"
|
||||
title="@lang('admin/widgetAreas.editTooltip')"
|
||||
href="{{route('widgetareas.edit', ['id' => $area->id])}}"><i
|
||||
class="fa fa-pencil"></i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{route('widgets.associate', ['widgetArea' => $area->id])}}"
|
||||
data-toggle="tooltip"
|
||||
title="@lang('admin/widgetAreas.associateWidgets')">
|
||||
<i class="fa fa-plus"></i></a>
|
||||
</li>
|
||||
@if($area->deletable)
|
||||
<li>
|
||||
<a class="confirm remove" data-toggle="tooltip" title="@lang('admin/widgetAreas.delete')"
|
||||
href="{{route('widgetareas.delete', ['id' => $area->id])}}"><i
|
||||
class="fa fa-trash"></i></a>
|
||||
</li>
|
||||
@endif
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
<table class="table item-list table-striped full-width">
|
||||
<tr>
|
||||
<th>@lang('admin/widgetAreas.name')</th>
|
||||
<th>@lang('admin/widgetAreas.uniqueCode')</th>
|
||||
<th>@lang('admin/widgetAreas.description')</th>
|
||||
<th>@lang('admin/widgetAreas.actions')</th>
|
||||
</tr>
|
||||
@foreach($areas as $area)
|
||||
<tr>
|
||||
@can('update', $area)
|
||||
<td>
|
||||
<a href="{{route('widgetareas.edit', ['id' => $area->id])}}">{{$area->name}}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{route('widgetareas.edit', ['id' => $area->id])}}">{{$area->code}}</a>
|
||||
</td>
|
||||
@else
|
||||
<td>{{$area->name}}</td>
|
||||
<td>{{$area->code}}</td>
|
||||
@endcan
|
||||
<td>{{str_limit($area->description, 100)}}</td>
|
||||
<td class="text-center">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
@if (Auth::user()->can('update', $area) || Auth::user()->can('assign', \App\Models\Widgets\Widget::class) || ($area->deletable && Auth::user()->can('delete', $area)))
|
||||
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive"><i class="fa fa-cog"></i></span>
|
||||
<span class="active"><i
|
||||
class="fa fa-chevron-circle-right"></i></span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
@can('update', $area)
|
||||
<li>
|
||||
<a class="edit" data-toggle="tooltip"
|
||||
title="@lang('admin/widgetAreas.editTooltip')"
|
||||
href="{{route('widgetareas.edit', ['id' => $area->id])}}"><i
|
||||
class="fa fa-pencil"></i></a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@can('assign', \App\Models\Widgets\Widget::class)
|
||||
<li>
|
||||
<a href="{{route('widgets.associate', ['widgetArea' => $area->id])}}"
|
||||
data-toggle="tooltip"
|
||||
title="@lang('admin/widgetAreas.associateWidgets')">
|
||||
<i class="fa fa-plus"></i></a>
|
||||
</li>
|
||||
@endcan
|
||||
@can('delete', $area)
|
||||
@if($area->deletable)
|
||||
<li>
|
||||
<a class="confirm remove" data-toggle="tooltip"
|
||||
title="@lang('admin/widgetAreas.delete')"
|
||||
href="{{route('widgetareas.delete', ['id' => $area->id])}}"><i
|
||||
class="fa fa-trash"></i></a>
|
||||
</li>
|
||||
@endif
|
||||
@endcan
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="alert alert-info">
|
||||
<em>@lang('admin/widgetAreas.noEntries')</em>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h3>@lang('admin/widgetAreas.new')</h3>
|
||||
|
||||
@include('admin.widgets.area.form', ['action' => route('widgetareas.postNew'), 'area' => new \App\Models\Widgets\WidgetArea()])
|
||||
</div>
|
||||
@can('create', \App\Models\Widgets\WidgetArea::class)
|
||||
<div class="col-lg-4">
|
||||
<div class="card items">
|
||||
<div class="card-header">
|
||||
<div class="header-block">
|
||||
<h3 class="title">@lang('admin/widgetAreas.new')</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-block">
|
||||
@include('admin.widgets.area.form', ['action' => route('widgetareas.postNew'), 'area' => new \App\Models\Widgets\WidgetArea()])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -21,13 +21,10 @@
|
||||
<li>@lang('admin/widgets.updatedAt'): @date($widgetArea->updated_at)</li>
|
||||
</ul>
|
||||
|
||||
<a href="{{route('widgetareas.edit', ['id' => $widgetArea->id])}}" class="btn btn-secondary col-sm-12">@lang('admin/widgetAreas.editButton')</a>
|
||||
|
||||
@if (!empty($associatedWidgetIds))
|
||||
<h3>@lang('admin/widgets.preview')</h3>
|
||||
|
||||
@widgetArea($widgetArea->code)
|
||||
@endif
|
||||
@can('update', $widgetArea)
|
||||
<a href="{{route('widgetareas.edit', ['id' => $widgetArea->id])}}"
|
||||
class="btn btn-secondary col-sm-12">@lang('admin/widgetAreas.editButton')</a>
|
||||
@endcan
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
@section('pageHeading', @trans('widgets/htmlCode.edit', ['name' => $widget->name]))
|
||||
|
||||
@section('headerButtons')
|
||||
<a href="{{route('widgets.overview')}}" class="btn btn-secondary btn-sm rounded" title="@lang('admin/widgets.overview')">
|
||||
<i class="fa fa-list"></i>
|
||||
</a>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="col-lg-8">
|
||||
@include('admin.widgets.htmlCode.form', ['action' => route('widgets.postEdit', ['id' => $widget->id])])
|
||||
|
||||
@@ -2,11 +2,16 @@
|
||||
|
||||
@section('pageHeading', @trans('widgets/menu.edit', ['name' => $widget->name]))
|
||||
|
||||
@section('headerButtons')
|
||||
<a href="{{route('widgets.overview')}}" class="btn btn-secondary btn-sm rounded" title="@lang('admin/widgets.overview')">
|
||||
<i class="fa fa-list"></i>
|
||||
</a>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
@include('admin.widgets.menu.form', ['formAction' => route('widgets.postEdit', ['id' => $widget->id])])
|
||||
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h3>@lang('widgets/menu.preview')</h3>
|
||||
@@ -14,5 +19,5 @@
|
||||
@widgetPreview($widget)
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
@endsection
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<form action="{{$formAction}}" id="widget-menu" method="POST">
|
||||
<input type="hidden" name="settings" id="widgetSettings" value="{{json_encode($widget->settings->links)}}" />
|
||||
<input type="hidden" name="settings" id="widgetSettings" value="{{json_encode($links)}}" />
|
||||
|
||||
@include('admin.widgets.snippets.commonForm')
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<h3>@lang('widgets/menu.addedPages')</h3>
|
||||
|
||||
<div id="menu-items-container">
|
||||
@foreach($widget->settings->links as $pageId => $details)
|
||||
@foreach($links as $pageId => $details)
|
||||
<span class="added-menu-item btn btn-sm btn-info" data-page-id="{{$pageId}}"
|
||||
id="item-{{$pageId}}">{{$details->text}}</span>
|
||||
@endforeach
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
@foreach ($pages as $page)
|
||||
<a href="#"
|
||||
class="btn btn-sm menu-item @if(isset($widget->settings->links->{$page->id})) btn-secondary @else btn-info @endif "
|
||||
class="btn btn-sm menu-item @if(isset($links->{$page->id})) btn-secondary @else btn-info @endif "
|
||||
data-page-url="{{$page->url}}" data-page-id="{{$page->id}}"
|
||||
id="page-{{$page->id}}">{{$page->title}}</a>
|
||||
@endforeach
|
||||
|
||||
@@ -3,56 +3,102 @@
|
||||
@section('pageHeading', @trans('admin/widgets.overview'))
|
||||
@section('pageDescription', @trans('admin/widgets.descriptionOfWidgets'))
|
||||
|
||||
@section('headerButtons')
|
||||
|
||||
@can('create', \App\Models\Widgets\Widget::class)
|
||||
@if (!empty($widgetTypes))
|
||||
<div class="dropdown show d-inline">
|
||||
<a class="btn btn-secondary rounded btn-sm dropdown-toggle" href="#" id="widgetTypesDropdown"
|
||||
data-toggle="dropdown" aria-expanded="false"><i class="fa fa-plus"></i></a>
|
||||
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
|
||||
@foreach ($widgetTypes as $widgetType)
|
||||
|
||||
<a class="dropdown-item"
|
||||
href="{{route('widgets.new', ['widgetType' => $widgetType->id])}}">{{trans($widgetType->name)}}</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endif
|
||||
@endcan
|
||||
|
||||
@can('manage', \App\Models\Widgets\WidgetArea::class)
|
||||
<a href="{{route('widgetareas.overview')}}" class="btn btn-secondary btn-sm rounded"
|
||||
title="@lang('admin/widgetAreas.overview')">
|
||||
<i class="fa fa-object-group"></i>
|
||||
</a>
|
||||
@endcan
|
||||
|
||||
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
@if (count($widgets))
|
||||
<table class="table table-striped item-list">
|
||||
<tr>
|
||||
<th>@lang('admin/widgets.widgetType')</th>
|
||||
<th>@lang('admin/widgets.name')</th>
|
||||
<th>@lang('admin/widgets.description')</th>
|
||||
<th>@lang('admin/widgets.actions')</th>
|
||||
</tr>
|
||||
@foreach($widgets as $widget)
|
||||
<tr>
|
||||
<td>{{trans(call_user_func([$widget->widget_type_handler, 'getName']))}}</td>
|
||||
<td><a href="{{route('widgets.edit', ['id' => $widget->id])}}">{{$widget->name}}</a></td>
|
||||
<td>{{$widget->description}}</td>
|
||||
<td class="text-center">
|
||||
<div class="card items">
|
||||
<div class="card-block">
|
||||
<table class="table table-striped item-list">
|
||||
<tr>
|
||||
<th>@lang('admin/widgets.name')</th>
|
||||
<th>@lang('admin/widgets.widgetType')</th>
|
||||
<th>@lang('admin/widgets.description')</th>
|
||||
<th>@lang('admin/widgets.actions')</th>
|
||||
</tr>
|
||||
@foreach($widgets as $widget)
|
||||
<tr>
|
||||
<td>
|
||||
@can('update', $widget)
|
||||
<a href="{{route('widgets.edit', ['id' => $widget->id])}}">{{$widget->name}}</a>
|
||||
@else
|
||||
{{$widget->name}}
|
||||
@endcan
|
||||
</td>
|
||||
<td>{{trans(call_user_func([$widget->widget_type_handler, 'getName']))}}</td>
|
||||
<td>{{$widget->description}}</td>
|
||||
<td class="text-center">
|
||||
@if(\Auth::user()->can('update', $widget) || ($widget->deletable && Auth::user()->can('delete', $widget)))
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive"><i class="fa fa-cog"></i></span>
|
||||
<span class="active"><i class="fa fa-chevron-circle-right"></i></span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
@can('update', $widget)
|
||||
<li>
|
||||
<a class="edit" data-toggle="tooltip"
|
||||
title="@lang('admin/widgets.editTooltip')"
|
||||
href="{{route('widgets.edit', ['id' => $widget->id])}}"><i
|
||||
class="fa fa-pencil"></i></a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@if($widget->deletable)
|
||||
@can('delete', $widget)
|
||||
<li>
|
||||
<a class="confirm remove" data-toggle="tooltip"
|
||||
title="@lang('admin/widgets.delete')"
|
||||
href="{{route('widgets.delete', ['id' => $widget->id])}}"><i
|
||||
class="fa fa-trash"></i></a>
|
||||
</li>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive"><i class="fa fa-cog"></i></span>
|
||||
<span class="active"><i class="fa fa-chevron-circle-right"></i></span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
<li>
|
||||
<a class="edit" data-toggle="tooltip"
|
||||
title="@lang('admin/widgets.editTooltip')"
|
||||
href="{{route('widgets.edit', ['id' => $widget->id])}}"><i
|
||||
class="fa fa-pencil"></i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</td>
|
||||
|
||||
@if($widget->deletable)
|
||||
<li>
|
||||
<a class="confirm remove" data-toggle="tooltip"
|
||||
title="@lang('admin/widgets.delete')"
|
||||
href="{{route('widgets.delete', ['id' => $widget->id])}}"><i
|
||||
class="fa fa-trash"></i></a>
|
||||
</li>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
{!! $widgets->render() !!}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
{!! $widgets->render() !!}
|
||||
@else
|
||||
<div class="alert alert-info">
|
||||
<em>@lang('admin/widgets.noEntries')</em>
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
{!! csrf_field() !!}
|
||||
<input type="hidden" name="id" value="{{$widget->id}}">
|
||||
|
||||
<label class="label-control">
|
||||
@lang('widgets/common.name')
|
||||
</label>
|
||||
@@ -20,6 +22,8 @@
|
||||
|
||||
<input class="form-control" type="text" name="containerClass" placeholder="@lang('widgets/common.containerClass')"
|
||||
value="{{old('containerClass', $widget->container_class)}}" />
|
||||
|
||||
@include('admin.snippets.hasError', ['field' => 'containerClass'])
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="label-control">
|
||||
@@ -28,6 +32,8 @@
|
||||
|
||||
<input class="form-control" type="text" name="containerId" placeholder="@lang('widgets/common.containerId')"
|
||||
value="{{old('containerId', $widget->container_id)}}" />
|
||||
|
||||
@include('admin.snippets.hasError', ['field' => 'containerId'])
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -13,17 +13,23 @@
|
||||
{{trans(call_user_func([$widget->widget_type_handler, 'getName']))}}
|
||||
</div>
|
||||
<div class="card-footer text-right">
|
||||
<a href="{{route('widgets.edit', ['id' => $widget->id])}}" class="btn btn-sm btn-secondary"><i
|
||||
class="fa fa-pencil"></i></a>
|
||||
@can('update', $widget)
|
||||
<a href="{{route('widgets.edit', ['id' => $widget->id])}}" class="btn btn-sm btn-secondary"><i
|
||||
class="fa fa-pencil"></i></a>
|
||||
@endcan
|
||||
|
||||
@if (in_array($widget->id, $associatedWidgetIds))
|
||||
<a href="{{route('widgets.deleteAssociation', ['widgetId' => $widget->id, 'widgetArea' => $widgetArea->id])}}"
|
||||
class="btn confirm btn-sm btn-danger">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
@can('unassign', \App\Models\Widgets\Widget::class)
|
||||
<a href="{{route('widgets.deleteAssociation', ['widgetId' => $widget->id, 'widgetArea' => $widgetArea->id])}}"
|
||||
class="btn confirm btn-sm btn-danger">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@else
|
||||
<a href="{{route('widgets.makeAssociation', ['widgetId' => $widget->id, 'widgetArea' => $widgetArea->id])}}"
|
||||
class="btn btn-sm btn-primary"><i class="fa fa-plus"></i></a>
|
||||
@can('assign', \App\Models\Widgets\Widget::class)
|
||||
<a href="{{route('widgets.makeAssociation', ['widgetId' => $widget->id, 'widgetArea' => $widgetArea->id])}}"
|
||||
class="btn btn-sm btn-primary"><i class="fa fa-plus"></i></a>
|
||||
@endcan
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="card">
|
||||
<header class="auth-header">
|
||||
<h1 class="auth-title">
|
||||
{{isset($pageName) ? $pageName : ''}}
|
||||
@lang('admin/loginForm.login')
|
||||
</h1>
|
||||
</header>
|
||||
<div class="auth-content">
|
||||
@@ -24,6 +24,12 @@
|
||||
name="email" id="email"
|
||||
placeholder="@lang('admin/loginForm.yourEmail')"
|
||||
required>
|
||||
|
||||
@if ($errors->has('email'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('email') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">@lang('admin/loginForm.password')</label>
|
||||
@@ -32,13 +38,27 @@
|
||||
name="password" id="password"
|
||||
placeholder="@lang('admin/loginForm.yourPassword')"
|
||||
required>
|
||||
|
||||
@if ($errors->has('password'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('password') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
<div class="form-group text-center">
|
||||
<button type="submit" class="btn btn-block btn-primary">Login</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group text-center">
|
||||
<a class="btn btn-link" href="{{ route('password.request') }}">
|
||||
@lang('admin/loginForm.forgottenPassword')
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@endsection
|
||||
@@ -0,0 +1,42 @@
|
||||
@extends('admin.layout')
|
||||
|
||||
@section('pageHeading', trans('admin/loginForm.forgottenPassword'))
|
||||
|
||||
@section('page')
|
||||
<div class="auth">
|
||||
<div class="auth-container">
|
||||
<div class="card">
|
||||
<header class="auth-header">
|
||||
<h1 class="auth-title">
|
||||
@lang('admin/loginForm.forgottenPassword')
|
||||
</h1>
|
||||
</header>
|
||||
<div class="auth-content">
|
||||
|
||||
<form class="form-horizontal" method="POST" action="{{ route('password.email') }}">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
|
||||
<label for="email" class="col-md-4 control-label">@lang('register.email')</label>
|
||||
|
||||
<input id="email" type="email" class="form-control underlined" name="email"
|
||||
value="{{ old('email') }}" required>
|
||||
|
||||
@if ($errors->has('email'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('email') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-block">
|
||||
@lang('admin/loginForm.sendConfirmEmail')
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,68 @@
|
||||
@extends('admin.layout')
|
||||
|
||||
@section('pageHeading', trans('admin/loginForm.passwordReset'))
|
||||
|
||||
@section('page')
|
||||
<div class="auth">
|
||||
<div class="auth-container">
|
||||
<div class="card">
|
||||
<header class="auth-header">
|
||||
<h1 class="auth-title">
|
||||
@lang('admin/loginForm.passwordReset')
|
||||
</h1>
|
||||
</header>
|
||||
<div class="auth-content">
|
||||
<form class="form-horizontal" method="POST" action="{{ route('password.request') }}">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<input type="hidden" name="token" value="{{ $token }}">
|
||||
|
||||
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
|
||||
<label for="email">@lang('register.email')</label>
|
||||
|
||||
<input id="email" type="email" class="form-control underlined" name="email"
|
||||
value="{{ $email or old('email') }}" required autofocus>
|
||||
|
||||
@if ($errors->has('email'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('email') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
|
||||
<label for="password">@lang('register.password')</label>
|
||||
|
||||
<input id="password" type="password" class="form-control underlined" name="password"
|
||||
required>
|
||||
|
||||
@if ($errors->has('password'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('password') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group{{ $errors->has('password_confirmation') ? ' has-error' : '' }}">
|
||||
<label for="password-confirm">@lang('register.passwordConfirm')</label>
|
||||
<input id="password-confirm" type="password" class="form-control underlined"
|
||||
name="password_confirmation" required>
|
||||
|
||||
@if ($errors->has('password_confirmation'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('password_confirmation') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-block">
|
||||
@lang('register.setNewPassword')
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,89 @@
|
||||
@extends('admin.layout')
|
||||
|
||||
@section('pageHeading', trans('register.heading'))
|
||||
|
||||
@section('page')
|
||||
<div class="auth">
|
||||
<div class="auth-container">
|
||||
<div class="card">
|
||||
<header class="auth-header">
|
||||
<h1 class="auth-title">
|
||||
@lang('register.heading')
|
||||
</h1>
|
||||
</header>
|
||||
<div class="auth-content">
|
||||
<form class="form-horizontal" method="POST" action="{{ route('register') }}">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
|
||||
<label for="name">@lang('register.name')</label>
|
||||
|
||||
<input id="name" type="text" class="form-control underlined" name="name"
|
||||
value="{{ old('name') }}" placeholder="@lang('register.name')"
|
||||
required autofocus>
|
||||
|
||||
@if ($errors->has('name'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('name') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
|
||||
<label for="email">@lang('register.email')</label>
|
||||
|
||||
<input id="email" type="email" class="form-control underlined" name="email"
|
||||
placeholder="@lang('admin/loginForm.yourEmail')"
|
||||
value="{{ old('email') }}" required>
|
||||
|
||||
@if ($errors->has('email'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('email') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
|
||||
<label for="password">@lang('register.password')</label>
|
||||
|
||||
<input id="password" type="password" class="form-control underlined" name="password"
|
||||
required>
|
||||
|
||||
@if ($errors->has('password'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('password') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="password-confirm">@lang('register.passwordConfirm')</label>
|
||||
<input id="password-confirm" type="password" class="form-control underlined"
|
||||
name="password_confirmation" required>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
{!! \Greggilbert\Recaptcha\Facades\Recaptcha::render() !!}
|
||||
|
||||
@if ($errors->has('g-recaptcha-response'))
|
||||
<span class="help-block">
|
||||
<strong>{{ $errors->first('g-recaptcha-response') }}</strong>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-block">
|
||||
@lang('register.register')
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,80 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ app()->getLocale() }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<title>{{ config('app.name', 'Laravel') }}</title>
|
||||
|
||||
<!-- Styles -->
|
||||
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">
|
||||
<nav class="navbar navbar-default navbar-static-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
|
||||
<!-- Collapsed Hamburger -->
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
|
||||
<span class="sr-only">Toggle Navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
|
||||
<!-- Branding Image -->
|
||||
<a class="navbar-brand" href="{{ url('/') }}">
|
||||
{{ config('app.name', 'Laravel') }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse" id="app-navbar-collapse">
|
||||
<!-- Left Side Of Navbar -->
|
||||
<ul class="nav navbar-nav">
|
||||
|
||||
</ul>
|
||||
|
||||
<!-- Right Side Of Navbar -->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<!-- Authentication Links -->
|
||||
@if (Auth::guest())
|
||||
<li><a href="{{ route('login') }}">Login</a></li>
|
||||
<li><a href="{{ route('register') }}">Register</a></li>
|
||||
@else
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
|
||||
{{ Auth::user()->name }} <span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
<a href="{{ route('logout') }}"
|
||||
onclick="event.preventDefault();
|
||||
document.getElementById('logout-form').submit();">
|
||||
Logout
|
||||
</a>
|
||||
|
||||
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
|
||||
{{ csrf_field() }}
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="{{ asset('js/app.js') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,19 @@
|
||||
<table class="action" align="center" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ $url }}" class="button button-{{ $color or 'blue' }}" target="_blank">{{ $slot }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,11 @@
|
||||
<tr>
|
||||
<td>
|
||||
<table class="footer" align="center" width="570" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="content-cell" align="center">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -0,0 +1,7 @@
|
||||
<tr>
|
||||
<td class="header">
|
||||
<a href="{{ $url }}">
|
||||
{{ $slot }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
@media only screen and (max-width: 600px) {
|
||||
.inner-body {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.footer {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 500px) {
|
||||
.button {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table class="content" width="100%" cellpadding="0" cellspacing="0">
|
||||
{{ $header or '' }}
|
||||
|
||||
<!-- Email Body -->
|
||||
<tr>
|
||||
<td class="body" width="100%" cellpadding="0" cellspacing="0">
|
||||
<table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0">
|
||||
<!-- Body content -->
|
||||
<tr>
|
||||
<td class="content-cell">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
|
||||
{{ $subcopy or '' }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{{ $footer or '' }}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,27 @@
|
||||
@component('mail::layout')
|
||||
{{-- Header --}}
|
||||
@slot('header')
|
||||
@component('mail::header', ['url' => config('app.url')])
|
||||
{{ config('app.name') }}
|
||||
@endcomponent
|
||||
@endslot
|
||||
|
||||
{{-- Body --}}
|
||||
{{ $slot }}
|
||||
|
||||
{{-- Subcopy --}}
|
||||
@isset($subcopy)
|
||||
@slot('subcopy')
|
||||
@component('mail::subcopy')
|
||||
{{ $subcopy }}
|
||||
@endcomponent
|
||||
@endslot
|
||||
@endisset
|
||||
|
||||
{{-- Footer --}}
|
||||
@slot('footer')
|
||||
@component('mail::footer')
|
||||
© {{ date('Y') }} {{ config('app.name') }}. All rights reserved.
|
||||
@endcomponent
|
||||
@endslot
|
||||
@endcomponent
|
||||
@@ -0,0 +1,13 @@
|
||||
<table class="panel" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="panel-content">
|
||||
<table width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="panel-item">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,7 @@
|
||||
<table class="promotion" align="center" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,13 @@
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ $url }}" class="button button-green" target="_blank">{{ $slot }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,7 @@
|
||||
<table class="subcopy" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="table">
|
||||
{{ Illuminate\Mail\Markdown::parse($slot) }}
|
||||
</div>
|
||||
+285
@@ -0,0 +1,285 @@
|
||||
/* Base */
|
||||
|
||||
body, body *:not(html):not(style):not(br):not(tr):not(code) {
|
||||
font-family: Avenir, Helvetica, sans-serif;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #f5f8fa;
|
||||
color: #74787E;
|
||||
height: 100%;
|
||||
hyphens: auto;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
-moz-hyphens: auto;
|
||||
-ms-word-break: break-all;
|
||||
width: 100% !important;
|
||||
-webkit-hyphens: auto;
|
||||
-webkit-text-size-adjust: none;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote {
|
||||
line-height: 1.4;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #3869D4;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Typography */
|
||||
|
||||
h1 {
|
||||
color: #2F3133;
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #2F3133;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: #2F3133;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #74787E;
|
||||
font-size: 16px;
|
||||
line-height: 1.5em;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
p.sub {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* Layout */
|
||||
|
||||
.wrapper {
|
||||
background-color: #f5f8fa;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
padding: 25px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.header a {
|
||||
color: #bbbfc3;
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
text-shadow: 0 1px 0 white;
|
||||
}
|
||||
|
||||
/* Body */
|
||||
|
||||
.body {
|
||||
background-color: #FFFFFF;
|
||||
border-bottom: 1px solid #EDEFF2;
|
||||
border-top: 1px solid #EDEFF2;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.inner-body {
|
||||
background-color: #FFFFFF;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 570px;
|
||||
}
|
||||
|
||||
/* Subcopy */
|
||||
|
||||
.subcopy {
|
||||
border-top: 1px solid #EDEFF2;
|
||||
margin-top: 25px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
.subcopy p {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
|
||||
.footer {
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 570px;
|
||||
}
|
||||
|
||||
.footer p {
|
||||
color: #AEAEAE;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
|
||||
.table table {
|
||||
margin: 30px auto;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.table th {
|
||||
border-bottom: 1px solid #EDEFF2;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.table td {
|
||||
color: #74787E;
|
||||
font-size: 15px;
|
||||
line-height: 18px;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.content-cell {
|
||||
padding: 35px;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
|
||||
.action {
|
||||
margin: 30px auto;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.button {
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);
|
||||
color: #FFF;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
.button-blue {
|
||||
background-color: #3097D1;
|
||||
border-top: 10px solid #3097D1;
|
||||
border-right: 18px solid #3097D1;
|
||||
border-bottom: 10px solid #3097D1;
|
||||
border-left: 18px solid #3097D1;
|
||||
}
|
||||
|
||||
.button-green {
|
||||
background-color: #2ab27b;
|
||||
border-top: 10px solid #2ab27b;
|
||||
border-right: 18px solid #2ab27b;
|
||||
border-bottom: 10px solid #2ab27b;
|
||||
border-left: 18px solid #2ab27b;
|
||||
}
|
||||
|
||||
.button-red {
|
||||
background-color: #bf5329;
|
||||
border-top: 10px solid #bf5329;
|
||||
border-right: 18px solid #bf5329;
|
||||
border-bottom: 10px solid #bf5329;
|
||||
border-left: 18px solid #bf5329;
|
||||
}
|
||||
|
||||
/* Panels */
|
||||
|
||||
.panel {
|
||||
margin: 0 0 21px;
|
||||
}
|
||||
|
||||
.panel-content {
|
||||
background-color: #EDEFF2;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.panel-item {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.panel-item p:last-of-type {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
/* Promotions */
|
||||
|
||||
.promotion {
|
||||
background-color: #FFFFFF;
|
||||
border: 2px dashed #9BA2AB;
|
||||
margin: 0;
|
||||
margin-bottom: 25px;
|
||||
margin-top: 25px;
|
||||
padding: 24px;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.promotion h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.promotion p {
|
||||
font-size: 15px;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{{ $slot }}: {{ $url }}
|
||||
@@ -0,0 +1 @@
|
||||
{{ $slot }}
|
||||
@@ -0,0 +1 @@
|
||||
[{{ $slot }}]({{ $url }})
|
||||
@@ -0,0 +1,9 @@
|
||||
{!! strip_tags($header) !!}
|
||||
|
||||
{!! strip_tags($slot) !!}
|
||||
@isset($subcopy)
|
||||
|
||||
{!! strip_tags($subcopy) !!}
|
||||
@endisset
|
||||
|
||||
{!! strip_tags($footer) !!}
|
||||
@@ -0,0 +1,27 @@
|
||||
@component('mail::layout')
|
||||
{{-- Header --}}
|
||||
@slot('header')
|
||||
@component('mail::header', ['url' => config('app.url')])
|
||||
{{ config('app.name') }}
|
||||
@endcomponent
|
||||
@endslot
|
||||
|
||||
{{-- Body --}}
|
||||
{{ $slot }}
|
||||
|
||||
{{-- Subcopy --}}
|
||||
@isset($subcopy)
|
||||
@slot('subcopy')
|
||||
@component('mail::subcopy')
|
||||
{{ $subcopy }}
|
||||
@endcomponent
|
||||
@endslot
|
||||
@endisset
|
||||
|
||||
{{-- Footer --}}
|
||||
@slot('footer')
|
||||
@component('mail::footer')
|
||||
© {{ date('Y') }} {{ config('app.name') }}. All rights reserved.
|
||||
@endcomponent
|
||||
@endslot
|
||||
@endcomponent
|
||||
@@ -0,0 +1 @@
|
||||
{{ $slot }}
|
||||
@@ -0,0 +1 @@
|
||||
{{ $slot }}
|
||||
@@ -0,0 +1 @@
|
||||
[{{ $slot }}]({{ $url }})
|
||||
@@ -0,0 +1 @@
|
||||
{{ $slot }}
|
||||
@@ -0,0 +1 @@
|
||||
{{ $slot }}
|
||||
@@ -0,0 +1,36 @@
|
||||
@component('mail::message')
|
||||
{{-- Intro Lines --}}
|
||||
@foreach ($introLines as $line)
|
||||
{!!$line!!}
|
||||
|
||||
@endforeach
|
||||
|
||||
{{-- Action Button --}}
|
||||
@isset($actionText)
|
||||
<?php
|
||||
switch ($level) {
|
||||
case 'success':
|
||||
$color = 'green';
|
||||
break;
|
||||
case 'error':
|
||||
$color = 'red';
|
||||
break;
|
||||
default:
|
||||
$color = 'blue';
|
||||
}
|
||||
?>
|
||||
@component('mail::button', ['url' => $actionUrl, 'color' => $color])
|
||||
{!!$actionText!!}
|
||||
@endcomponent
|
||||
@endisset
|
||||
|
||||
{{-- Outro Lines --}}
|
||||
@foreach ($outroLines as $line)
|
||||
{!!$line!!}
|
||||
@endforeach
|
||||
|
||||
{{-- Salutation --}}
|
||||
@if (! empty($salutation))
|
||||
{!!$salutation!!}
|
||||
@endif
|
||||
@endcomponent
|
||||
@@ -0,0 +1,12 @@
|
||||
<li class="dropdown-submenu {{ $item->hasActiveOnChild() ? 'active' : '' }}">
|
||||
<a tabindex="-1" href="#">{{ $child->title }}</a>
|
||||
<ul class="dropdown-menu">
|
||||
@foreach ($child->childs as $item)
|
||||
@if ($item->hasChilds())
|
||||
@include('menus::child.dropdown', ['child' => $item])
|
||||
@else
|
||||
@include('menus::child.item', compact('item'))
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
</li>
|
||||
@@ -0,0 +1,11 @@
|
||||
@if ($item->isDivider())
|
||||
<li class="divider"></li>
|
||||
@elseif ($item->isHeader())
|
||||
<li class="dropdown-header">{{ $item->title }}</li>
|
||||
@else
|
||||
<li class="{{ $item->isActive() ? 'active' : '' }}">
|
||||
<a tabindex="-1" href="{{ $item->getUrl() }}">
|
||||
{{ $item->title }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
@@ -0,0 +1,3 @@
|
||||
<ul class="nav navbar-nav">
|
||||
@include('menus::menu')
|
||||
</ul>
|
||||
@@ -0,0 +1,15 @@
|
||||
<li class="dropdown {{ $item->hasActiveOnChild() ? 'active' : '' }}">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
|
||||
{{ $item->title }}
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
@foreach ($item->childs as $child)
|
||||
@if ($child->hasChilds())
|
||||
@include('menus::child.dropdown', ['item' => $child])
|
||||
@else
|
||||
@include('menus::item.item', ['item' => $child])
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
</li>
|
||||
@@ -0,0 +1,12 @@
|
||||
@if ($item->isDivider())
|
||||
<li class="divider"></li>
|
||||
@elseif ($item->isHeader())
|
||||
<li class="dropdown-header">{{ $item->title }}</li>
|
||||
@else
|
||||
<li class="{{ $item->isActive() ? 'active' : '' }}">
|
||||
<a href="{{ $item->getUrl() }}" {!! $item->getAttributes() !!}>
|
||||
{!! $item->getIcon() !!}
|
||||
{{ $item->title }}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
@@ -0,0 +1,7 @@
|
||||
@foreach ($items as $item)
|
||||
@if ($item->hasChilds())
|
||||
@include('menus::item.dropdown', compact('item'))
|
||||
@else
|
||||
@include('menus::item.item', compact('item'))
|
||||
@endif
|
||||
@endforeach
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user