Merge remote-tracking branch 'upstream/bootstrap' into bootstrap

This commit is contained in:
alexey-svistunov committed 2013-11-13 09:59:11 +02:00
commit e7abdee44a
23 files changed
+333 -160

No files matched your search

+25 -10
View File
@@ -240,9 +240,9 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.row:before, #dashboard .data_list_vertical:before, .row:after, #dashboard .data_list_vertical:after { content: " "; /* 1 */ display: table; /* 2 */ }
.row:after, #dashboard .data_list_vertical:after { clear: both; }
.col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-4, #dashboard .data_list_vertical li, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { position: relative; min-height: 1px; padding-left: 5px; padding-right: 5px; }
.col-xs-12, .col-sm-12, .col-md-12, .col-lg-12, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-4, #dashboard .data_list_vertical li, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1 { position: relative; min-height: 1px; padding-left: 5px; padding-right: 5px; }
.col-xs-11, .col-xs-10, .col-xs-9, .col-xs-8, .col-xs-7, .col-xs-6, .col-xs-5, .col-xs-4, #dashboard .data_list_vertical li, .col-xs-3, .col-xs-2, .col-xs-1, .col-xs-12 { float: left; }
.col-xs-12, .col-xs-11, .col-xs-10, .col-xs-9, .col-xs-8, .col-xs-7, .col-xs-6, .col-xs-5, .col-xs-4, #dashboard .data_list_vertical li, .col-xs-3, .col-xs-2, .col-xs-1 { float: left; }
.col-xs-1 { width: 8.33333%; }
@@ -268,6 +268,8 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-xs-12 { width: 100%; }
.col-xs-pull-0 { right: 0%; }
.col-xs-pull-1 { right: 8.33333%; }
.col-xs-pull-2 { right: 16.66667%; }
@@ -292,6 +294,8 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-xs-pull-12 { right: 100%; }
.col-xs-push-0 { left: 0%; }
.col-xs-push-1 { left: 8.33333%; }
.col-xs-push-2 { left: 16.66667%; }
@@ -316,6 +320,8 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-xs-push-12 { left: 100%; }
.col-xs-offset-0 { margin-left: 0%; }
.col-xs-offset-1 { margin-left: 8.33333%; }
.col-xs-offset-2 { margin-left: 16.66667%; }
@@ -341,7 +347,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-xs-offset-12 { margin-left: 100%; }
@media (min-width: 768px) { .container { width: 728px; }
.col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col-sm-12 { float: left; }
.col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1 { float: left; }
.col-sm-1 { width: 8.33333%; }
.col-sm-2 { width: 16.66667%; }
.col-sm-3 { width: 25%; }
@@ -354,6 +360,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-sm-10 { width: 83.33333%; }
.col-sm-11 { width: 91.66667%; }
.col-sm-12 { width: 100%; }
.col-sm-pull-0 { right: 0%; }
.col-sm-pull-1 { right: 8.33333%; }
.col-sm-pull-2 { right: 16.66667%; }
.col-sm-pull-3 { right: 25%; }
@@ -366,6 +373,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-sm-pull-10 { right: 83.33333%; }
.col-sm-pull-11 { right: 91.66667%; }
.col-sm-pull-12 { right: 100%; }
.col-sm-push-0 { left: 0%; }
.col-sm-push-1 { left: 8.33333%; }
.col-sm-push-2 { left: 16.66667%; }
.col-sm-push-3 { left: 25%; }
@@ -378,6 +386,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-sm-push-10 { left: 83.33333%; }
.col-sm-push-11 { left: 91.66667%; }
.col-sm-push-12 { left: 100%; }
.col-sm-offset-0 { margin-left: 0%; }
.col-sm-offset-1 { margin-left: 8.33333%; }
.col-sm-offset-2 { margin-left: 16.66667%; }
.col-sm-offset-3 { margin-left: 25%; }
@@ -391,7 +400,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-sm-offset-11 { margin-left: 91.66667%; }
.col-sm-offset-12 { margin-left: 100%; } }
@media (min-width: 992px) { .container { width: 940px; }
.col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-md-12 { float: left; }
.col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1 { float: left; }
.col-md-1 { width: 8.33333%; }
.col-md-2 { width: 16.66667%; }
.col-md-3 { width: 25%; }
@@ -404,6 +413,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-md-10 { width: 83.33333%; }
.col-md-11 { width: 91.66667%; }
.col-md-12 { width: 100%; }
.col-md-pull-0 { right: 0%; }
.col-md-pull-1 { right: 8.33333%; }
.col-md-pull-2 { right: 16.66667%; }
.col-md-pull-3 { right: 25%; }
@@ -416,6 +426,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-md-pull-10 { right: 83.33333%; }
.col-md-pull-11 { right: 91.66667%; }
.col-md-pull-12 { right: 100%; }
.col-md-push-0 { left: 0%; }
.col-md-push-1 { left: 8.33333%; }
.col-md-push-2 { left: 16.66667%; }
.col-md-push-3 { left: 25%; }
@@ -428,6 +439,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-md-push-10 { left: 83.33333%; }
.col-md-push-11 { left: 91.66667%; }
.col-md-push-12 { left: 100%; }
.col-md-offset-0 { margin-left: 0%; }
.col-md-offset-1 { margin-left: 8.33333%; }
.col-md-offset-2 { margin-left: 16.66667%; }
.col-md-offset-3 { margin-left: 25%; }
@@ -441,7 +453,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-md-offset-11 { margin-left: 91.66667%; }
.col-md-offset-12 { margin-left: 100%; } }
@media (min-width: 1200px) { .container { width: 1170px; }
.col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-lg-12 { float: left; }
.col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1 { float: left; }
.col-lg-1 { width: 8.33333%; }
.col-lg-2 { width: 16.66667%; }
.col-lg-3 { width: 25%; }
@@ -454,6 +466,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-lg-10 { width: 83.33333%; }
.col-lg-11 { width: 91.66667%; }
.col-lg-12 { width: 100%; }
.col-lg-pull-0 { right: 0%; }
.col-lg-pull-1 { right: 8.33333%; }
.col-lg-pull-2 { right: 16.66667%; }
.col-lg-pull-3 { right: 25%; }
@@ -466,6 +479,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-lg-pull-10 { right: 83.33333%; }
.col-lg-pull-11 { right: 91.66667%; }
.col-lg-pull-12 { right: 100%; }
.col-lg-push-0 { left: 0%; }
.col-lg-push-1 { left: 8.33333%; }
.col-lg-push-2 { left: 16.66667%; }
.col-lg-push-3 { left: 25%; }
@@ -478,6 +492,7 @@ pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap
.col-lg-push-10 { left: 83.33333%; }
.col-lg-push-11 { left: 91.66667%; }
.col-lg-push-12 { left: 100%; }
.col-lg-offset-0 { margin-left: 0%; }
.col-lg-offset-1 { margin-left: 8.33333%; }
.col-lg-offset-2 { margin-left: 16.66667%; }
.col-lg-offset-3 { margin-left: 25%; }
@@ -3688,13 +3703,13 @@ td.actions { min-width: 200px; }
.tree .tree-item-disable, .tree .tree-folder-name-disable { color: #cccccc; }
.tree .tree-item-disable:hover, .tree .tree-folder-name-disable:hover { color: #cccccc; background-color: none; }
.tree-actions { padding-bottom: 4px; display: inline-block; }
.tree-actions { display: inline-block; }
.tree-panel-heading-controls { margin: -20px -20px 20px; padding: 5px; border-bottom: solid 1px #dfdfdf; }
label.control-label { font-size: 13px; font-weight: normal; color: #666666; }
label.control-label span.label-tooltip { text-decoration: none; font-size: 13px; background-color: #ebebeb; border: none; border-bottom: solid 1px #dfdfdf; padding: 0 5px; -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; }
label.control-label span.label-tooltip { text-decoration: none; font-size: 13px; color: #3586ae; background-color: #edf7fb; border: none; border-bottom: solid 1px #d8edf7; padding: 0 5px; -webkit-border-radius: 3px; -moz-border-radius: 3px; -ms-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; }
label.required:before { content: "*"; color: red; font-size: 14px; position: relative; line-height: 12px; }
@@ -3767,7 +3782,7 @@ textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[ty
.switch .slide-button, .toggle p span { display: none; }
.switch { background-color: #d2d2d2; border-radius: 3px; }
.switch { background-color: #e9e9e9; border-radius: 3px; }
.switch label { padding: 0; cursor: pointer; }
@media only screen { .toggle { position: relative; padding: 0; margin-left: 100px; }
@@ -3801,10 +3816,10 @@ textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[ty
.toggle input:checked ~ .slide-button { right: 50%; }
.toggle input:focus ~ .slide-button, .switch input:focus + label { outline: 1px dotted #888888; }
.switch, .toggle { -webkit-animation: bugfix infinite 1s; }
.prestashop-switch { min-width: 150px; color: #666666; text-align: center; border-radius: 3px; -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 1px inset; box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 1px inset; }
.prestashop-switch { min-width: 150px; color: #999999; text-align: center; border-radius: 3px; -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 1px inset; box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 1px inset; }
.prestashop-switch label { padding-top: 0 !important; font-weight: 500; }
.prestashop-switch input:checked + label { color: #333333 !important; text-shadow: rgba(255, 255, 255, 0.7) 1px 1px 0; }
.prestashop-switch input:not(:checked) + label i { color: #666666 !important; }
.prestashop-switch input:not(:checked) + label i { color: #999999 !important; }
.prestashop-switch .slide-button { position: relative; margin-right: 3px; color: white; }
.prestashop-switch p { color: #333333; }
.prestashop-switch span { color: white; } }
@@ -0,0 +1,8 @@
Modernizr.load([
{
test: window.matchMedia,
nope: ["themes/default/js/vendor/matchMedia.js", "themes/default/js/vendor/matchMedia.addListener.js"]
},
"themes/default/js/vendor/enquire.js",
"themes/default/js/admin-theme.js"
]);
@@ -0,0 +1,75 @@
/*! matchMedia() polyfill addListener/removeListener extension. Author & copyright (c) 2012: Scott Jehl. Dual MIT/BSD license */
(function(){
// Bail out for browsers that have addListener support
if (window.matchMedia && window.matchMedia('all').addListener) {
return false;
}
var localMatchMedia = window.matchMedia,
hasMediaQueries = localMatchMedia('only all').matches,
isListening = false,
timeoutID = 0, // setTimeout for debouncing 'handleChange'
queries = [], // Contains each 'mql' and associated 'listeners' if 'addListener' is used
handleChange = function(evt) {
// Debounce
clearTimeout(timeoutID);
timeoutID = setTimeout(function() {
for (var i = 0, il = queries.length; i < il; i++) {
var mql = queries[i].mql,
listeners = queries[i].listeners || [],
matches = localMatchMedia(mql.media).matches;
// Update mql.matches value and call listeners
// Fire listeners only if transitioning to or from matched state
if (matches !== mql.matches) {
mql.matches = matches;
for (var j = 0, jl = listeners.length; j < jl; j++) {
listeners[j].call(window, mql);
}
}
}
}, 30);
};
window.matchMedia = function(media) {
var mql = localMatchMedia(media),
listeners = [],
index = 0;
mql.addListener = function(listener) {
// Changes would not occur to css media type so return now (Affects IE <= 8)
if (!hasMediaQueries) {
return;
}
// Set up 'resize' listener for browsers that support CSS3 media queries (Not for IE <= 8)
// There should only ever be 1 resize listener running for performance
if (!isListening) {
isListening = true;
window.addEventListener('resize', handleChange, true);
}
// Push object only if it has not been pushed already
if (index === 0) {
index = queries.push({
mql : mql,
listeners : listeners
});
}
listeners.push(listener);
};
mql.removeListener = function(listener) {
for (var i = 0, il = listeners.length; i < il; i++){
if (listeners[i] === listener){
listeners.splice(i, 1);
}
}
};
return mql;
};
}());
+46
View File
@@ -0,0 +1,46 @@
/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
window.matchMedia || (window.matchMedia = function() {
"use strict";
// For browsers that support matchMedium api such as IE 9 and webkit
var styleMedia = (window.styleMedia || window.media);
// For those that don't support matchMedium
if (!styleMedia) {
var style = document.createElement('style'),
script = document.getElementsByTagName('script')[0],
info = null;
style.type = 'text/css';
style.id = 'matchmediajs-test';
script.parentNode.insertBefore(style, script);
// 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
styleMedia = {
matchMedium: function(media) {
var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
// 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
if (style.styleSheet) {
style.styleSheet.cssText = text;
} else {
style.textContent = text;
}
// Test if media query is true or false
return info.width === '1px';
}
};
}
return function(media) {
return {
matches: styleMedia.matchMedium(media || 'all'),
media: media || 'all'
};
};
}());
+4
View File
@@ -0,0 +1,4 @@
/* Modernizr 2.6.3 (Custom Build) | MIT & BSD
* Build: http://modernizr.com/download/#-shiv-cssclasses-load
*/
;window.Modernizr=function(a,b,c){function u(a){j.cssText=a}function v(a,b){return u(prefixes.join(a+";")+(b||""))}function w(a,b){return typeof a===b}function x(a,b){return!!~(""+a).indexOf(b)}function y(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:w(f,"function")?f.bind(d||b):f}return!1}var d="2.6.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m={},n={},o={},p=[],q=p.slice,r,s={}.hasOwnProperty,t;!w(s,"undefined")&&!w(s.call,"undefined")?t=function(a,b){return s.call(a,b)}:t=function(a,b){return b in a&&w(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=q.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(q.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(q.call(arguments)))};return e});for(var z in m)t(m,z)&&(r=z.toLowerCase(),e[r]=m[z](),p.push((e[r]?"":"no-")+r));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)t(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},u(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+p.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.caLine truncated
@@ -7,9 +7,10 @@ label.control-label
label.control-label span.label-tooltip
text-decoration: none
font-size: 13px
background-color: darken($bg-content-color,5%)
color: #3586AE
background-color: lighten(#D8EDF7,5%)
border: none
border-bottom: solid 1px darken($bg-content-color,10%)
border-bottom: solid 1px #D8EDF7
padding: 0 5px
@include border-radius(3px)
@@ -6,7 +6,7 @@
.switch .slide-button, .toggle p span
display: none
.switch
background-color: darken($bg-content-color,15%)
background-color: #E9E9E9
border-radius: 3px
label
padding: 0
@@ -144,7 +144,7 @@
// Prestashop Theme
.prestashop-switch
min-width: 150px
color: #666
color: #999
text-align: center
border-radius: 3px
@include box-shadow(rgba(black,0.2) 0 2px 5px 1px inset)
@@ -156,7 +156,7 @@
@include text-shadow(rgba(white,0.7) 1px 1px 0)
input:not(:checked) + label
i
color: #666!important
color: #999!important
.slide-button
position: relative
margin-right: 3px
@@ -30,7 +30,6 @@
color: #ccc
background-color: none
.tree-actions
padding-bottom: 4px
display: inline-block
.tree-panel-heading-controls
@@ -23,4 +23,4 @@
* International Registered Trademark & Property of PrestaShop SA
*}
<div class="tree-panel-heading-controls">{if isset($toolbar)}{$toolbar}{/if}</div>
<div class="tree-panel-heading-controls clearfix">{if isset($toolbar)}{$toolbar}{/if}</div>
@@ -52,6 +52,7 @@
{l s='Legend:'}
</span>
</label>
<div class="col-lg-9">
{foreach from=$languages item=language}
{if $languages|count > 1}
<div class="translatable-field row lang-{$language.id_lang}">
@@ -81,6 +82,7 @@
</div>
{/if}
{/foreach}
</div>
</div>
</div>
@@ -321,14 +321,12 @@
</span>
</label>
<div class="col-lg-9">
<div class="row">
{include
file="controllers/products/textarea_lang.tpl"
languages=$languages
input_name='description_short'
input_value=$product->description_short
max=$PS_PRODUCT_SHORT_DESC_LIMIT}
</div>
</div>
</div>
@@ -341,12 +339,10 @@
</span>
</label>
<div class="col-lg-9">
<div class="row">
{include
file="controllers/products/textarea_lang.tpl"
languages=$languages input_name='description'
input_value=$product->description}
</div>
</div>
</div>
@@ -44,7 +44,7 @@
<div class="alert alert-warning" id="available_quantity_ajax_msg" style="display: none;"></div>
<div class="alert alert-danger" id="available_quantity_ajax_error_msg" style="display: none;"></div>
<div class="alert alert-success" id="available_quantity_ajax_success_msg" style="display: none;"></div>
<div class="row" {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="row stockForVirtualProduct">
<div class="form-group" {if $product->is_virtual || $product->cache_is_pack}style="display:none;"{/if} class="row stockForVirtualProduct">
<div class="col-lg-9 col-lg-offset-3">
<p class="checkbox">
<label for="advanced_stock_management">
@@ -107,7 +107,7 @@
<p>{l s='Given the quantities of the products in this pack, the maximum quantity should be:'} {$pack_quantity}</p>
</div>
{/if}
<div class="row">
<div class="form-group">
<div class="col-lg-9 col-lg-offset-3">
<table class="table">
<thead>
@@ -128,7 +128,7 @@
</table>
</div>
</div>
<div id="when_out_of_stock" class="row">
<div id="when_out_of_stock" class="form-group">
<label class="control-label col-lg-3">{l s='When out of stock:'}</label>
<div class="col-lg-9">
<p class="radio">
@@ -195,12 +195,10 @@
</span>
</label>
<div class="col-lg-9">
<div class="row">
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_now
input_name='available_now'}
</div>
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_now
input_name='available_now'}
</div>
</div>
<div class="form-group">
@@ -213,12 +211,10 @@
</label>
<div class="col-lg-9">
<div class="row">
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_later
input_name='available_later'}
</div>
{include file="controllers/products/input_text_lang.tpl"
languages=$languages
input_value=$product->available_later
input_name='available_later'}
</div>
</div>
@@ -22,7 +22,7 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<div class="tree-panel-heading-controls">
<div class="tree-panel-heading-controls clearfix">
<!-- <i class="icon-tag"></i>&nbsp;{l s=$title} -->
{if isset($toolbar)}{$toolbar}{/if}
</div>
+19 -5
View File
@@ -52,6 +52,7 @@ class AdminControllerCore extends Controller
/** @var string Object identifier inside the associated table */
protected $identifier = false;
protected $identifier_name = 'name';
/** @var string Tab name */
public $className;
@@ -1119,8 +1120,6 @@ class AdminControllerCore extends Controller
if (!is_array($this->toolbar_title))
$this->toolbar_title = array($this->toolbar_title);
$title = implode(' '.Configuration::get('PS_NAVIGATION_PIPE').' ', $this->toolbar_title);
switch ($this->display)
{
case 'view':
@@ -1135,9 +1134,14 @@ class AdminControllerCore extends Controller
'href' => $back,
'desc' => $this->l('Back to list')
);
$obj = $this->loadObject(true);
if (Validate::isLoadedObject($obj) && isset($obj->{$this->identifier_name}) && !empty($obj->{$this->identifier_name}))
{
array_pop($this->toolbar_title);
$this->toolbar_title[] = is_array($obj->{$this->identifier_name}) ? $obj->{$this->identifier_name}[$this->context->employee->id_lang] : $obj->{$this->identifier_name};
}
break;
case 'add':
case 'edit':
// Default save button - action dynamically handled in javascript
$this->page_header_toolbar_btn['save'] = array(
'href' => '#',
@@ -1154,6 +1158,14 @@ class AdminControllerCore extends Controller
'href' => $back,
'desc' => $this->l('Cancel')
);
case 'edit':
$obj = $this->loadObject(true);
if (Validate::isLoadedObject($obj) && isset($obj->{$this->identifier_name}) && !empty($obj->{$this->identifier_name}))
{
array_pop($this->toolbar_title);
$this->toolbar_title[] = sprintf($this->l('Edit: %s'),
is_array($obj->{$this->identifier_name}) ? $obj->{$this->identifier_name}[$this->context->employee->id_lang] : $obj->{$this->identifier_name});
}
break;
case 'options':
// Default save button - action dynamically handled in javascript
@@ -1163,6 +1175,8 @@ class AdminControllerCore extends Controller
);
}
$title = implode(' '.Configuration::get('PS_NAVIGATION_PIPE').' ', $this->toolbar_title);
if (is_array($this->page_header_toolbar_btn)
&& $this->page_header_toolbar_btn instanceof Traversable
|| trim($title) != '')
@@ -1959,8 +1973,8 @@ class AdminControllerCore extends Controller
//loads specific javascripts for the admin theme, bootstrap.js should be moved into /js root directory
$this->addJS(__PS_BASE_URI__.$admin_webpath.'/themes/'.$this->bo_theme.'/js/vendor/bootstrap.js');
$this->addJS(__PS_BASE_URI__.$admin_webpath.'/themes/'.$this->bo_theme.'/js/vendor/enquire.js');
$this->addJS(__PS_BASE_URI__.$admin_webpath.'/themes/'.$this->bo_theme.'/js/admin-theme.js');
$this->addJS(__PS_BASE_URI__.$admin_webpath.'/themes/'.$this->bo_theme.'/js/vendor/modernizr.js');
$this->addJS(__PS_BASE_URI__.$admin_webpath.'/themes/'.$this->bo_theme.'/js/modernizr-loads.js');
if (!Tools::getValue('submitFormAjax'))
{
@@ -160,16 +160,14 @@ class AdminCategoriesControllerCore extends AdminController
public function initPageHeaderToolbar()
{
if (empty($this->display))
{
parent::initPageHeaderToolbar();
if ($this->display != 'add')
$this->page_header_toolbar_btn['new_category'] = array(
'href' => self::$currentIndex.'&amp;addcategory&amp;token='.$this->token,
'desc' => $this->l('Add new category'),
'icon' => 'process-icon-new'
);
}
parent::initPageHeaderToolbar();
}
public function initContent()
+12 -1
View File
@@ -150,6 +150,8 @@ class AdminEmployeesControllerCore extends AdminController
public function initPageHeaderToolbar()
{
parent::initPageHeaderToolbar();
if (empty($this->display))
$this->page_header_toolbar_btn['new_employee'] = array(
'href' => self::$currentIndex.'&amp;addemployee&amp;token='.$this->token,
@@ -157,7 +159,16 @@ class AdminEmployeesControllerCore extends AdminController
'icon' => 'process-icon-new'
);
parent::initPageHeaderToolbar();
if ($this->display == 'edit')
{
$obj = $this->loadObject(true);
if (Validate::isLoadedObject($obj))
{
array_pop($this->toolbar_title);
$this->toolbar_title[] = sprintf($this->l('Edit: %1$s %2$s'), $obj->lastname, $obj->firstname);
$this->page_header_toolbar_title = implode(' '.Configuration::get('PS_NAVIGATION_PIPE').' ', $this->toolbar_title);
}
}
}
public function renderList()
@@ -36,6 +36,7 @@ class AdminMetaControllerCore extends AdminController
parent::__construct();
$this->bootstrap = true;
$this->identifier_name = 'page';
$this->ht_file = _PS_ROOT_DIR_.'/.htaccess';
$this->rb_file = _PS_ROOT_DIR_.'/robots.txt';
$this->sm_file = _PS_ROOT_DIR_.'/sitemap.xml';
@@ -2414,6 +2414,7 @@ class AdminProductsControllerCore extends AdminController
if ($this->tabAccess['add'] && $this->display != 'add')
$this->page_header_toolbar_btn['duplicate'] = array(
'short' => 'Duplicate',
'href' => '#',
'desc' => $this->l('Duplicate'),
'confirm' => 1,
'js' => 'if (confirm(\''.$this->l('Also copy images').' ?\')) document.location = \''.$this->context->link->getAdminLink('AdminProducts').'&amp;id_product='.(int)$product->id.'&amp;duplicateproduct\'; else document.location = \''.$this->context->link->getAdminLink('AdminProducts').'&amp;id_product='.(int)$product->id.'&amp;duplicateproduct&amp;noimage=1\';'
@@ -199,7 +199,7 @@ class AdminSearchConfControllerCore extends AdminController
'desc' => $this->l('Add new alias'),
'icon' => 'process-icon-new'
);
$this->identifier_name = 'alias';
parent::initPageHeaderToolbar();
}
@@ -87,6 +87,8 @@ class AdminSearchEnginesControllerCore extends AdminController
'icon' => 'process-icon-new'
);
$this->identifier_name = 'server';
parent::initPageHeaderToolbar();
}
}
+47 -34
View File
@@ -87,7 +87,8 @@ class Dashactivity extends Module
'gapi_mode' => $gapi_mode,
'dashactivity_config_form' => $this->renderConfigForm(),
'date_subtitle' => $this->l('(from %s to %s)'),
'date_format' => $this->context->language->date_format_lite
'date_format' => $this->context->language->date_format_lite,
'link' => $this->context->link,
), $this->getConfigFieldsValues()));
return $this->display(__FILE__, 'dashboard_zone_one.tpl');
}
@@ -311,33 +312,49 @@ class Dashactivity extends Module
),
);
$sub_widget = array(
array('label' => $this->l('Show Pending'), 'config_name' => 'DASHACTIVITY_SHOW_PENDING'),
array('label' => $this->l('Show Notifications'), 'config_name' => 'DASHACTIVITY_SHOW_NOTIFICATION'),
array('label' => $this->l('Show Clients'), 'config_name' => 'DASHACTIVITY_SHOW_CUSTOMERS'),
array('label' => $this->l('Show Newsletters'), 'config_name' => 'DASHACTIVITY_SHOW_NEWSLETTER'),
array('label' => $this->l('Show Traffic'), 'config_name' => 'DASHACTIVITY_SHOW_TRAFFIC'),
);
foreach($sub_widget as $widget)
$fields_form['form']['input'][] = array(
'type' => 'switch',
'label' => $widget['label'],
'name' => $widget['config_name'],
'is_bool' => true,
'values' => array(
array(
'id' => 'active_on',
'value' => 1,
'label' => $this->l('Enabled')
$fields_form['form']['input'][] = array(
'label' => $this->l('Cart as active'),
'desc' => $this->l('Default time range to consider a Shopping cart as active (default 30, max 120)'),
'name' => 'DASHACTIVITY_CART_ACTIVE',
'type' => 'select',
'options' => array(
'query' => array(
array('id' => 15, 'name' => 15),
array('id' => 30, 'name' => 30),
array('id' => 45, 'name' => 45),
array('id' => 60, 'name' => 60),
array('id' => 90, 'name' => 90),
array('id' => 120, 'name' => 120),
),
array(
'id' => 'active_off',
'value' => 0,
'label' => $this->l('Disabled')
)
),
);
'id' => 'id',
'name' => 'name',
),
);
$fields_form['form']['input'][] = array(
'label' => $this->l('Visitor online'),
'desc' => $this->l('Default time range to consider a Visitor as online (default 30, max 120)'),
'name' => 'DASHACTIVITY_VISITOR_ONLINE',
'type' => 'select',
'options' => array(
'query' => array(
array('id' => 15, 'name' => 15),
array('id' => 30, 'name' => 30),
array('id' => 45, 'name' => 45),
array('id' => 60, 'name' => 60),
array('id' => 90, 'name' => 90),
array('id' => 120, 'name' => 120),
),
'id' => 'id',
'name' => 'name',
),
);
$fields_form['form']['input'][] = array(
'label' => $this->l('Cart abandoned'),
'desc' => $this->l('Default time range to consider a Shopping cart as abandoned (default 24hrs)'),
'name' => 'DASHACTIVITY_CART_ABANDONED',
'type' => 'text',
'suffix' => $this->l('hrs'),
);
$helper = new HelperForm();
$helper->show_toolbar = false;
@@ -361,13 +378,9 @@ class Dashactivity extends Module
public function getConfigFieldsValues()
{
return array(
'DASHACTIVITY_SHOW_STOCK' => Configuration::get('PS_STOCK_MANAGEMENT'),
'DASHACTIVITY_SHOW_RETURNS' => Configuration::get('PS_ORDER_RETURN'),
'DASHACTIVITY_SHOW_PENDING' => Tools::getValue('DASHACTIVITY_SHOW_PENDING', Configuration::get('DASHACTIVITY_SHOW_PENDING')),
'DASHACTIVITY_SHOW_NOTIFICATION' => Tools::getValue('DASHACTIVITY_SHOW_NOTIFICATION', Configuration::get('DASHACTIVITY_SHOW_NOTIFICATION')),
'DASHACTIVITY_SHOW_CUSTOMERS' => Tools::getValue('DASHACTIVITY_SHOW_CUSTOMERS', Configuration::get('DASHACTIVITY_SHOW_CUSTOMERS')),
'DASHACTIVITY_SHOW_NEWSLETTER' => Tools::getValue('DASHACTIVITY_SHOW_NEWSLETTER', Configuration::get('DASHACTIVITY_SHOW_NEWSLETTER')),
'DASHACTIVITY_SHOW_TRAFFIC' => Tools::getValue('DASHACTIVITY_SHOW_TRAFFIC', Configuration::get('DASHACTIVITY_SHOW_TRAFFIC')),
'DASHACTIVITY_CART_ACTIVE' => Tools::getValue('DASHACTIVITY_CART_ACTIVE', Configuration::get('DASHACTIVITY_CART_ACTIVE')),
'DASHACTIVITY_CART_ABANDONED' => Tools::getValue('DASHACTIVITY_CART_ABANDONED', Configuration::get('DASHACTIVITY_CART_ABANDONED')),
'DASHACTIVITY_VISITOR_ONLINE' => Tools::getValue('DASHACTIVITY_VISITOR_ONLINE', Configuration::get('DASHACTIVITY_VISITOR_ONLINE')),
);
}
@@ -64,7 +64,6 @@
</li>
</ul>
</section>
{if $DASHACTIVITY_SHOW_PENDING}
<section id="dash_pending" class="loading">
<header><i class="icon-time"></i> {l s='Currently Pending' mod='dashactivity'}</header>
<ul class="data_list">
@@ -74,32 +73,26 @@
<span id="pending_orders"></span>
</span>
</li>
{if $DASHACTIVITY_SHOW_RETURNS}
<li>
<span class="data_label">{l s='Return/Exchanges' mod='dashactivity'}</span>
<span class="data_value size_l">
<span id="return_exchanges"></span>
</span>
</li>
{/if}
<li>
<span class="data_label">{l s='Abandoned Carts' mod='dashactivity'}</span>
<span class="data_value size_l">
<span id="abandoned_cart"></span>
</span>
</li>
{if $DASHACTIVITY_SHOW_STOCK}
<li>
<span class="data_label">{l s='Products Out of Stock' mod='dashactivity'}</span>
<span class="data_value size_l">
<span id="products_out_of_stock"></span>
</span>
</li>
{/if}
</ul>
</section>
{/if}
{if $DASHACTIVITY_SHOW_NOTIFICATION}
<section id="dash_notifications" class="loading">
<header><i class="icon-exclamation-sign"></i> {l s='Notifications' mod='dashactivity'}</header>
<ul class="data_list_vertical">
@@ -123,8 +116,6 @@
</li>
</ul>
</section>
{/if}
{if $DASHACTIVITY_SHOW_CUSTOMERS}
<section id="dash_customers" class="loading">
<header><i class="icon-user"></i> {l s='Customers & Newsletters' mod='dashactivity'} <span class="subtitle small" id="customers-newsletters-subtitle"><span></header>
<ul class="data_list">
@@ -148,8 +139,6 @@
</li>
</ul>
</section>
{/if}
{if $DASHACTIVITY_SHOW_TRAFFIC}
<section id="dash_traffic" class="loading">
<header>
<i class="icon-globe"></i> {l s='Traffic' mod='dashactivity'} <span class="subtitle small" id="traffic-subtitle"><span>
@@ -184,9 +173,7 @@
</li>
</ul>
</section>
{/if}
</section>
<script type="text/javascript">
date_subtitle = "{$date_subtitle}";
date_format = "{$date_format}";
@@ -24,11 +24,10 @@
*}
<section id="dashproducts" class="panel widget">
<header class="panel-heading">
<i class="icon-bar-chart"></i> {l s='Product and Sales'}
<span class="panel-heading-action">
<a class="list-toolbar-btn" href="#" title="configure">
<a class="list-toolbar-btn" href="#" onclick="toggleDashConfig('dashproducts'); return false;" title="configure">
<i class="process-icon-configure"></i>
</a>
<a class="list-toolbar-btn" href="#" onclick="refreshDashboard('dashproducts'); return false;" title="refresh">
@@ -36,67 +35,72 @@
</a>
</span>
</header>
<nav>
<ul class="nav nav-tabs">
<li class="active">
<a href="#dash_recent_orders" data-toggle="tab">
<i class="icon-fire"></i> {l s='Recent Orders'}
</a>
</li>
<li>
<a href="#dash_best_sellers" data-toggle="tab">
<i class="icon-trophy"></i> {l s='Best Sellers'}
</a>
</li>
<li>
<a href="#dash_most_viewed" data-toggle="tab">
<i class="icon-eye-open"></i> {l s='Most Viewed'}
</a>
</li>
<li>
<a href="#dash_top_search" data-toggle="tab">
<i class="icon-search"></i> {l s='Top Search'}
</a>
</li>
</ul>
</nav>
<div class="tab-content panel">
<div class="tab-pane active" id="dash_recent_orders">
<h3>{l s="Last 10 orders"}</h3>
<table class="table data_table" id="table_recent_orders">
<thead>
</thead>
<tbody>
</tbody>
</table>
<section id="dashproducts_config" class="dash_config hide">
<header><i class="icon-wrench"></i> {l s='Configuration' mod='dashactivity'}</header>
{$dashproducts_config_form}
</section>
<section>
<nav>
<ul class="nav nav-tabs">
<li class="active">
<a href="#dash_recent_orders" data-toggle="tab">
<i class="icon-fire"></i> {l s='Recent Orders'}
</a>
</li>
<li>
<a href="#dash_best_sellers" data-toggle="tab">
<i class="icon-trophy"></i> {l s='Best Sellers'}
</a>
</li>
<li>
<a href="#dash_most_viewed" data-toggle="tab">
<i class="icon-eye-open"></i> {l s='Most Viewed'}
</a>
</li>
<li>
<a href="#dash_top_search" data-toggle="tab">
<i class="icon-search"></i> {l s='Top Search'}
</a>
</li>
</ul>
</nav>
<div class="tab-content panel">
<div class="tab-pane active" id="dash_recent_orders">
<h3>{l s="Last 10 orders"}</h3>
<table class="table data_table" id="table_recent_orders">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="tab-pane" id="dash_best_sellers">
<h3>{l s="Top 10 products"} - {l s="From:"} {$date_from} {l s="to:"} {$date_to}</h3>
<table class="table data_table" id="table_best_sellers">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="tab-pane" id="dash_most_viewed">
<h3>{l s="Most Viewed"} - {l s="From:"} {$date_from} {l s="to:"} {$date_to}</h3>
<table class="table data_table" id="table_most_viewed">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="tab-pane" id="dash_top_search">
<h3>{l s="Top 10 most search terms"} - {l s="From:"} {$date_from} {l s="to:"} {$date_to}</h3>
<table class="table data_table" id="table_top_10_most_search">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="tab-pane" id="dash_best_sellers">
<h3>{l s="Top 10 products"} - {l s="From:"} {$date_from} {l s="to:"} {$date_to}</h3>
<table class="table data_table" id="table_best_sellers">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="tab-pane" id="dash_most_viewed">
<h3>{l s="Most Viewed"} - {l s="From:"} {$date_from} {l s="to:"} {$date_to}</h3>
<table class="table data_table" id="table_most_viewed">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="tab-pane" id="dash_top_search">
<h3>{l s="Top 10 most search terms"} - {l s="From:"} {$date_from} {l s="to:"} {$date_to}</h3>
<table class="table data_table" id="table_top_10_most_search">
<thead>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</section>
</section>