forked from rc/aircox
		
	Reviewed-on: rc/aircox#63
This commit is contained in:
		@ -1,24 +1 @@
 | 
				
			|||||||
/*!*************************************************************************************************************************************************************************************************************************************!*\
 | 
					.admin .navbar .navbar-brand{padding-right:1em}.admin .navbar .navbar-brand img{margin:0 .4em;margin-top:.3em;max-height:3em}.admin .breadcrumbs{margin-bottom:1em}.admin .results>#result_list{width:100%;margin:1em 0}.admin ul.menu-list li{list-style-type:none}.admin .submit-row a.deletelink{height:35px}
 | 
				
			||||||
  !*** css ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-24.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-24.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-24.use[3]!./src/assets/admin.scss ***!
 | 
					 | 
				
			||||||
  \*************************************************************************************************************************************************************************************************************************************/
 | 
					 | 
				
			||||||
.admin .navbar .navbar-brand {
 | 
					 | 
				
			||||||
  padding-right: 1em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.admin .navbar .navbar-brand img {
 | 
					 | 
				
			||||||
  margin: 0em 0.4em;
 | 
					 | 
				
			||||||
  margin-top: 0.3em;
 | 
					 | 
				
			||||||
  max-height: 3em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.admin .breadcrumbs {
 | 
					 | 
				
			||||||
  margin-bottom: 1em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.admin .results > #result_list {
 | 
					 | 
				
			||||||
  width: 100%;
 | 
					 | 
				
			||||||
  margin: 1em 0em;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.admin ul.menu-list li {
 | 
					 | 
				
			||||||
  list-style-type: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.admin .submit-row a.deletelink {
 | 
					 | 
				
			||||||
  height: 35px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -1,213 +1,2 @@
 | 
				
			|||||||
/*
 | 
					(function(){"use strict";var n={5159:function(n,t,e){e(9651),e(8880);var o=e(9643),r=e(1784);const i={...o.Z,components:{...o.Z.components,...r.S}};window.App=i},1784:function(n,t,e){e.d(t,{S:function(){return v}});var o=e(4156),r=e(1847),i=e(6294),u=e(5189),c=e(2530),f=e(7520),a=e(7079),s=e(2673),l=e(8833),p=e(5127);t["Z"]={AAutocomplete:o.Z,AEpisode:r.Z,AList:i.Z,APage:u.Z,APlayer:c.C,APlaylist:f.Z,AProgress:a.Z,ASoundItem:s.Z};const v={AStatistics:l.Z,AStreamer:p.Z}}},t={};function e(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return n[o](i,i.exports,e),i.exports}e.m=n,function(){var n=[];e.O=function(t,o,r,i){if(!o){var u=1/0;for(s=0;s<n.length;s++){o=n[s][0],r=n[s][1],i=n[s][2];for(var c=!0,f=0;f<o.length;f++)(!1&i||u>=i)&&Object.keys(e.O).every((function(n){return e.O[n](o[f])}))?o.splice(f--,1):(c=!1,i<u&&(u=i));if(c){n.splice(s--,1);var a=r();void 0!==a&&(t=a)}}return t}i=i||0;for(var s=n.length;s>0&&n[s-1][2]>i;s--)n[s]=n[s-1];n[s]=[o,r,i]}}(),function(){e.d=function(n,t){for(var o in t)e.o(t,o)&&!e.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:t[o]})}}(),function(){e.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"===typeof window)return window}}()}(),function(){e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)}}(),function(){e.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){var n={328:0};e.O.j=function(t){return 0===n[t]};var t=function(t,o){var r,i,u=o[0],c=o[1],f=o[2],a=0;if(u.some((function(t){return 0!==n[t]}))){for(r in c)e.o(c,r)&&(e.m[r]=c[r]);if(f)var s=f(e)}for(t&&t(o);a<u.length;a++)i=u[a],e.o(n,i)&&n[i]&&n[i][0](),n[i]=0;return e.O(s)},o=self["webpackChunkaircox_assets"]=self["webpackChunkaircox_assets"]||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))}();var o=e.O(void 0,[998,64],(function(){return e(5159)}));o=e.O(o)})();
 | 
				
			||||||
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 | 
					//# sourceMappingURL=admin.js.map
 | 
				
			||||||
 * This devtool is neither made for production nor for readable output files.
 | 
					 | 
				
			||||||
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 | 
					 | 
				
			||||||
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 | 
					 | 
				
			||||||
 * or disable the default devtool with "devtool: false".
 | 
					 | 
				
			||||||
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
/******/ (function() { // webpackBootstrap
 | 
					 | 
				
			||||||
/******/ 	"use strict";
 | 
					 | 
				
			||||||
/******/ 	var __webpack_modules__ = ({
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ "./src/admin.js":
 | 
					 | 
				
			||||||
/*!**********************!*\
 | 
					 | 
				
			||||||
  !*** ./src/admin.js ***!
 | 
					 | 
				
			||||||
  \**********************/
 | 
					 | 
				
			||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _assets_styles_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./assets/styles.scss */ \"./src/assets/styles.scss\");\n/* harmony import */ var _assets_admin_scss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assets/admin.scss */ \"./src/assets/admin.scss\");\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.js */ \"./src/index.js\");\n/* harmony import */ var _app__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app */ \"./src/app.js\");\n/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components */ \"./src/components/index.js\");\n\n\n\n\n\nconst AdminApp = { ..._app__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  components: { ..._app__WEBPACK_IMPORTED_MODULE_3__[\"default\"].components,\n    ..._components__WEBPACK_IMPORTED_MODULE_4__.admin\n  }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (AdminApp);\nwindow.App = AdminApp;\n\n//# sourceURL=webpack://aircox-assets/./src/admin.js?");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ }),
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ "./src/assets/admin.scss":
 | 
					 | 
				
			||||||
/*!*******************************!*\
 | 
					 | 
				
			||||||
  !*** ./src/assets/admin.scss ***!
 | 
					 | 
				
			||||||
  \*******************************/
 | 
					 | 
				
			||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n\n\n//# sourceURL=webpack://aircox-assets/./src/assets/admin.scss?");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/******/ 	});
 | 
					 | 
				
			||||||
/************************************************************************/
 | 
					 | 
				
			||||||
/******/ 	// The module cache
 | 
					 | 
				
			||||||
/******/ 	var __webpack_module_cache__ = {};
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	// The require function
 | 
					 | 
				
			||||||
/******/ 	function __webpack_require__(moduleId) {
 | 
					 | 
				
			||||||
/******/ 		// Check if module is in cache
 | 
					 | 
				
			||||||
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
 | 
					 | 
				
			||||||
/******/ 		if (cachedModule !== undefined) {
 | 
					 | 
				
			||||||
/******/ 			return cachedModule.exports;
 | 
					 | 
				
			||||||
/******/ 		}
 | 
					 | 
				
			||||||
/******/ 		// Create a new module (and put it into the cache)
 | 
					 | 
				
			||||||
/******/ 		var module = __webpack_module_cache__[moduleId] = {
 | 
					 | 
				
			||||||
/******/ 			// no module.id needed
 | 
					 | 
				
			||||||
/******/ 			// no module.loaded needed
 | 
					 | 
				
			||||||
/******/ 			exports: {}
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 		// Execute the module function
 | 
					 | 
				
			||||||
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 		// Return the exports of the module
 | 
					 | 
				
			||||||
/******/ 		return module.exports;
 | 
					 | 
				
			||||||
/******/ 	}
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	// expose the modules object (__webpack_modules__)
 | 
					 | 
				
			||||||
/******/ 	__webpack_require__.m = __webpack_modules__;
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/************************************************************************/
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/chunk loaded */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		var deferred = [];
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.O = function(result, chunkIds, fn, priority) {
 | 
					 | 
				
			||||||
/******/ 			if(chunkIds) {
 | 
					 | 
				
			||||||
/******/ 				priority = priority || 0;
 | 
					 | 
				
			||||||
/******/ 				for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
 | 
					 | 
				
			||||||
/******/ 				deferred[i] = [chunkIds, fn, priority];
 | 
					 | 
				
			||||||
/******/ 				return;
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			var notFulfilled = Infinity;
 | 
					 | 
				
			||||||
/******/ 			for (var i = 0; i < deferred.length; i++) {
 | 
					 | 
				
			||||||
/******/ 				var chunkIds = deferred[i][0];
 | 
					 | 
				
			||||||
/******/ 				var fn = deferred[i][1];
 | 
					 | 
				
			||||||
/******/ 				var priority = deferred[i][2];
 | 
					 | 
				
			||||||
/******/ 				var fulfilled = true;
 | 
					 | 
				
			||||||
/******/ 				for (var j = 0; j < chunkIds.length; j++) {
 | 
					 | 
				
			||||||
/******/ 					if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {
 | 
					 | 
				
			||||||
/******/ 						chunkIds.splice(j--, 1);
 | 
					 | 
				
			||||||
/******/ 					} else {
 | 
					 | 
				
			||||||
/******/ 						fulfilled = false;
 | 
					 | 
				
			||||||
/******/ 						if(priority < notFulfilled) notFulfilled = priority;
 | 
					 | 
				
			||||||
/******/ 					}
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 				if(fulfilled) {
 | 
					 | 
				
			||||||
/******/ 					deferred.splice(i--, 1)
 | 
					 | 
				
			||||||
/******/ 					var r = fn();
 | 
					 | 
				
			||||||
/******/ 					if (r !== undefined) result = r;
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			return result;
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/compat get default export */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.n = function(module) {
 | 
					 | 
				
			||||||
/******/ 			var getter = module && module.__esModule ?
 | 
					 | 
				
			||||||
/******/ 				function() { return module['default']; } :
 | 
					 | 
				
			||||||
/******/ 				function() { return module; };
 | 
					 | 
				
			||||||
/******/ 			__webpack_require__.d(getter, { a: getter });
 | 
					 | 
				
			||||||
/******/ 			return getter;
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/define property getters */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// define getter functions for harmony exports
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.d = function(exports, definition) {
 | 
					 | 
				
			||||||
/******/ 			for(var key in definition) {
 | 
					 | 
				
			||||||
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
 | 
					 | 
				
			||||||
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/global */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.g = (function() {
 | 
					 | 
				
			||||||
/******/ 			if (typeof globalThis === 'object') return globalThis;
 | 
					 | 
				
			||||||
/******/ 			try {
 | 
					 | 
				
			||||||
/******/ 				return this || new Function('return this')();
 | 
					 | 
				
			||||||
/******/ 			} catch (e) {
 | 
					 | 
				
			||||||
/******/ 				if (typeof window === 'object') return window;
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 		})();
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/make namespace object */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// define __esModule on exports
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.r = function(exports) {
 | 
					 | 
				
			||||||
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
 | 
					 | 
				
			||||||
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/jsonp chunk loading */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// no baseURI
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// object to store loaded and loading chunks
 | 
					 | 
				
			||||||
/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
 | 
					 | 
				
			||||||
/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
 | 
					 | 
				
			||||||
/******/ 		var installedChunks = {
 | 
					 | 
				
			||||||
/******/ 			"admin": 0
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no chunk on demand loading
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no prefetching
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no preloaded
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no HMR
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no HMR manifest
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// install a JSONP callback for chunk loading
 | 
					 | 
				
			||||||
/******/ 		var webpackJsonpCallback = function(parentChunkLoadingFunction, data) {
 | 
					 | 
				
			||||||
/******/ 			var chunkIds = data[0];
 | 
					 | 
				
			||||||
/******/ 			var moreModules = data[1];
 | 
					 | 
				
			||||||
/******/ 			var runtime = data[2];
 | 
					 | 
				
			||||||
/******/ 			// add "moreModules" to the modules object,
 | 
					 | 
				
			||||||
/******/ 			// then flag all "chunkIds" as loaded and fire callback
 | 
					 | 
				
			||||||
/******/ 			var moduleId, chunkId, i = 0;
 | 
					 | 
				
			||||||
/******/ 			if(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {
 | 
					 | 
				
			||||||
/******/ 				for(moduleId in moreModules) {
 | 
					 | 
				
			||||||
/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
 | 
					 | 
				
			||||||
/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
 | 
					 | 
				
			||||||
/******/ 					}
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 				if(runtime) var result = runtime(__webpack_require__);
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
 | 
					 | 
				
			||||||
/******/ 			for(;i < chunkIds.length; i++) {
 | 
					 | 
				
			||||||
/******/ 				chunkId = chunkIds[i];
 | 
					 | 
				
			||||||
/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
 | 
					 | 
				
			||||||
/******/ 					installedChunks[chunkId][0]();
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 				installedChunks[chunkId] = 0;
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			return __webpack_require__.O(result);
 | 
					 | 
				
			||||||
/******/ 		}
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		var chunkLoadingGlobal = self["webpackChunkaircox_assets"] = self["webpackChunkaircox_assets"] || [];
 | 
					 | 
				
			||||||
/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
 | 
					 | 
				
			||||||
/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/************************************************************************/
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	// startup
 | 
					 | 
				
			||||||
/******/ 	// Load entry module and return exports
 | 
					 | 
				
			||||||
/******/ 	// This entry module depends on other loaded chunks and execution need to be delayed
 | 
					 | 
				
			||||||
/******/ 	var __webpack_exports__ = __webpack_require__.O(undefined, ["chunk-vendors","chunk-common"], function() { return __webpack_require__("./src/admin.js"); })
 | 
					 | 
				
			||||||
/******/ 	__webpack_exports__ = __webpack_require__.O(__webpack_exports__);
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ })()
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -1,203 +1,2 @@
 | 
				
			|||||||
/*
 | 
					(function(){"use strict";var n={1784:function(n,t,e){var r=e(4156),o=e(1847),i=e(6294),u=e(5189),f=e(2530),c=e(7520),a=e(7079),s=e(2673),l=e(8833),p=e(5127);t["Z"]={AAutocomplete:r.Z,AEpisode:o.Z,AList:i.Z,APage:u.Z,APlayer:f.C,APlaylist:c.Z,AProgress:a.Z,ASoundItem:s.Z};l.Z,p.Z},5288:function(n,t,e){e(8880);var r=e(9643);window.App=r.Z}},t={};function e(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return n[r](i,i.exports,e),i.exports}e.m=n,function(){var n=[];e.O=function(t,r,o,i){if(!r){var u=1/0;for(s=0;s<n.length;s++){r=n[s][0],o=n[s][1],i=n[s][2];for(var f=!0,c=0;c<r.length;c++)(!1&i||u>=i)&&Object.keys(e.O).every((function(n){return e.O[n](r[c])}))?r.splice(c--,1):(f=!1,i<u&&(u=i));if(f){n.splice(s--,1);var a=o();void 0!==a&&(t=a)}}return t}i=i||0;for(var s=n.length;s>0&&n[s-1][2]>i;s--)n[s]=n[s-1];n[s]=[r,o,i]}}(),function(){e.d=function(n,t){for(var r in t)e.o(t,r)&&!e.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:t[r]})}}(),function(){e.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"===typeof window)return window}}()}(),function(){e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)}}(),function(){e.r=function(n){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})}}(),function(){var n={321:0};e.O.j=function(t){return 0===n[t]};var t=function(t,r){var o,i,u=r[0],f=r[1],c=r[2],a=0;if(u.some((function(t){return 0!==n[t]}))){for(o in f)e.o(f,o)&&(e.m[o]=f[o]);if(c)var s=c(e)}for(t&&t(r);a<u.length;a++)i=u[a],e.o(n,i)&&n[i]&&n[i][0](),n[i]=0;return e.O(s)},r=self["webpackChunkaircox_assets"]=self["webpackChunkaircox_assets"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))}();var r=e.O(void 0,[998,64],(function(){return e(5288)}));r=e.O(r)})();
 | 
				
			||||||
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 | 
					//# sourceMappingURL=core.js.map
 | 
				
			||||||
 * This devtool is neither made for production nor for readable output files.
 | 
					 | 
				
			||||||
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 | 
					 | 
				
			||||||
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 | 
					 | 
				
			||||||
 * or disable the default devtool with "devtool: false".
 | 
					 | 
				
			||||||
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
/******/ (function() { // webpackBootstrap
 | 
					 | 
				
			||||||
/******/ 	"use strict";
 | 
					 | 
				
			||||||
/******/ 	var __webpack_modules__ = ({
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ "./src/core.js":
 | 
					 | 
				
			||||||
/*!*********************!*\
 | 
					 | 
				
			||||||
  !*** ./src/core.js ***!
 | 
					 | 
				
			||||||
  \*********************/
 | 
					 | 
				
			||||||
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"./src/index.js\");\n/* harmony import */ var _app_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.js */ \"./src/app.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (_app_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nwindow.App = _app_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n\n//# sourceURL=webpack://aircox-assets/./src/core.js?");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/***/ })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/******/ 	});
 | 
					 | 
				
			||||||
/************************************************************************/
 | 
					 | 
				
			||||||
/******/ 	// The module cache
 | 
					 | 
				
			||||||
/******/ 	var __webpack_module_cache__ = {};
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	// The require function
 | 
					 | 
				
			||||||
/******/ 	function __webpack_require__(moduleId) {
 | 
					 | 
				
			||||||
/******/ 		// Check if module is in cache
 | 
					 | 
				
			||||||
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
 | 
					 | 
				
			||||||
/******/ 		if (cachedModule !== undefined) {
 | 
					 | 
				
			||||||
/******/ 			return cachedModule.exports;
 | 
					 | 
				
			||||||
/******/ 		}
 | 
					 | 
				
			||||||
/******/ 		// Create a new module (and put it into the cache)
 | 
					 | 
				
			||||||
/******/ 		var module = __webpack_module_cache__[moduleId] = {
 | 
					 | 
				
			||||||
/******/ 			// no module.id needed
 | 
					 | 
				
			||||||
/******/ 			// no module.loaded needed
 | 
					 | 
				
			||||||
/******/ 			exports: {}
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 		// Execute the module function
 | 
					 | 
				
			||||||
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 		// Return the exports of the module
 | 
					 | 
				
			||||||
/******/ 		return module.exports;
 | 
					 | 
				
			||||||
/******/ 	}
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	// expose the modules object (__webpack_modules__)
 | 
					 | 
				
			||||||
/******/ 	__webpack_require__.m = __webpack_modules__;
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/************************************************************************/
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/chunk loaded */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		var deferred = [];
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.O = function(result, chunkIds, fn, priority) {
 | 
					 | 
				
			||||||
/******/ 			if(chunkIds) {
 | 
					 | 
				
			||||||
/******/ 				priority = priority || 0;
 | 
					 | 
				
			||||||
/******/ 				for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
 | 
					 | 
				
			||||||
/******/ 				deferred[i] = [chunkIds, fn, priority];
 | 
					 | 
				
			||||||
/******/ 				return;
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			var notFulfilled = Infinity;
 | 
					 | 
				
			||||||
/******/ 			for (var i = 0; i < deferred.length; i++) {
 | 
					 | 
				
			||||||
/******/ 				var chunkIds = deferred[i][0];
 | 
					 | 
				
			||||||
/******/ 				var fn = deferred[i][1];
 | 
					 | 
				
			||||||
/******/ 				var priority = deferred[i][2];
 | 
					 | 
				
			||||||
/******/ 				var fulfilled = true;
 | 
					 | 
				
			||||||
/******/ 				for (var j = 0; j < chunkIds.length; j++) {
 | 
					 | 
				
			||||||
/******/ 					if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {
 | 
					 | 
				
			||||||
/******/ 						chunkIds.splice(j--, 1);
 | 
					 | 
				
			||||||
/******/ 					} else {
 | 
					 | 
				
			||||||
/******/ 						fulfilled = false;
 | 
					 | 
				
			||||||
/******/ 						if(priority < notFulfilled) notFulfilled = priority;
 | 
					 | 
				
			||||||
/******/ 					}
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 				if(fulfilled) {
 | 
					 | 
				
			||||||
/******/ 					deferred.splice(i--, 1)
 | 
					 | 
				
			||||||
/******/ 					var r = fn();
 | 
					 | 
				
			||||||
/******/ 					if (r !== undefined) result = r;
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			return result;
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/compat get default export */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.n = function(module) {
 | 
					 | 
				
			||||||
/******/ 			var getter = module && module.__esModule ?
 | 
					 | 
				
			||||||
/******/ 				function() { return module['default']; } :
 | 
					 | 
				
			||||||
/******/ 				function() { return module; };
 | 
					 | 
				
			||||||
/******/ 			__webpack_require__.d(getter, { a: getter });
 | 
					 | 
				
			||||||
/******/ 			return getter;
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/define property getters */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// define getter functions for harmony exports
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.d = function(exports, definition) {
 | 
					 | 
				
			||||||
/******/ 			for(var key in definition) {
 | 
					 | 
				
			||||||
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
 | 
					 | 
				
			||||||
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/global */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.g = (function() {
 | 
					 | 
				
			||||||
/******/ 			if (typeof globalThis === 'object') return globalThis;
 | 
					 | 
				
			||||||
/******/ 			try {
 | 
					 | 
				
			||||||
/******/ 				return this || new Function('return this')();
 | 
					 | 
				
			||||||
/******/ 			} catch (e) {
 | 
					 | 
				
			||||||
/******/ 				if (typeof window === 'object') return window;
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 		})();
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/make namespace object */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// define __esModule on exports
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.r = function(exports) {
 | 
					 | 
				
			||||||
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
 | 
					 | 
				
			||||||
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	/* webpack/runtime/jsonp chunk loading */
 | 
					 | 
				
			||||||
/******/ 	!function() {
 | 
					 | 
				
			||||||
/******/ 		// no baseURI
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// object to store loaded and loading chunks
 | 
					 | 
				
			||||||
/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
 | 
					 | 
				
			||||||
/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
 | 
					 | 
				
			||||||
/******/ 		var installedChunks = {
 | 
					 | 
				
			||||||
/******/ 			"core": 0
 | 
					 | 
				
			||||||
/******/ 		};
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no chunk on demand loading
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no prefetching
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no preloaded
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no HMR
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// no HMR manifest
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		// install a JSONP callback for chunk loading
 | 
					 | 
				
			||||||
/******/ 		var webpackJsonpCallback = function(parentChunkLoadingFunction, data) {
 | 
					 | 
				
			||||||
/******/ 			var chunkIds = data[0];
 | 
					 | 
				
			||||||
/******/ 			var moreModules = data[1];
 | 
					 | 
				
			||||||
/******/ 			var runtime = data[2];
 | 
					 | 
				
			||||||
/******/ 			// add "moreModules" to the modules object,
 | 
					 | 
				
			||||||
/******/ 			// then flag all "chunkIds" as loaded and fire callback
 | 
					 | 
				
			||||||
/******/ 			var moduleId, chunkId, i = 0;
 | 
					 | 
				
			||||||
/******/ 			if(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {
 | 
					 | 
				
			||||||
/******/ 				for(moduleId in moreModules) {
 | 
					 | 
				
			||||||
/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
 | 
					 | 
				
			||||||
/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
 | 
					 | 
				
			||||||
/******/ 					}
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 				if(runtime) var result = runtime(__webpack_require__);
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
 | 
					 | 
				
			||||||
/******/ 			for(;i < chunkIds.length; i++) {
 | 
					 | 
				
			||||||
/******/ 				chunkId = chunkIds[i];
 | 
					 | 
				
			||||||
/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
 | 
					 | 
				
			||||||
/******/ 					installedChunks[chunkId][0]();
 | 
					 | 
				
			||||||
/******/ 				}
 | 
					 | 
				
			||||||
/******/ 				installedChunks[chunkId] = 0;
 | 
					 | 
				
			||||||
/******/ 			}
 | 
					 | 
				
			||||||
/******/ 			return __webpack_require__.O(result);
 | 
					 | 
				
			||||||
/******/ 		}
 | 
					 | 
				
			||||||
/******/ 		
 | 
					 | 
				
			||||||
/******/ 		var chunkLoadingGlobal = self["webpackChunkaircox_assets"] = self["webpackChunkaircox_assets"] || [];
 | 
					 | 
				
			||||||
/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
 | 
					 | 
				
			||||||
/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
 | 
					 | 
				
			||||||
/******/ 	}();
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/************************************************************************/
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ 	// startup
 | 
					 | 
				
			||||||
/******/ 	// Load entry module and return exports
 | 
					 | 
				
			||||||
/******/ 	// This entry module depends on other loaded chunks and execution need to be delayed
 | 
					 | 
				
			||||||
/******/ 	var __webpack_exports__ = __webpack_require__.O(undefined, ["chunk-vendors","chunk-common"], function() { return __webpack_require__("./src/core.js"); })
 | 
					 | 
				
			||||||
/******/ 	__webpack_exports__ = __webpack_require__.O(__webpack_exports__);
 | 
					 | 
				
			||||||
/******/ 	
 | 
					 | 
				
			||||||
/******/ })()
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
@ -132,10 +132,11 @@ Usefull context:
 | 
				
			|||||||
                        {# FIXME: block cover into sidebar one #}
 | 
					                        {# FIXME: block cover into sidebar one #}
 | 
				
			||||||
                        {% block cover %}
 | 
					                        {% block cover %}
 | 
				
			||||||
                        {% if page and page.cover %}
 | 
					                        {% if page and page.cover %}
 | 
				
			||||||
                        <img class="cover" src="{{ page.cover.url }}" class="cover"/>
 | 
					                        <img class="cover mb-4" src="{{ page.cover.url }}" class="cover"/>
 | 
				
			||||||
                        {% endif %}
 | 
					                        {% endif %}
 | 
				
			||||||
                        {% endblock %}
 | 
					                        {% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        {% with is_thin=True %}
 | 
				
			||||||
                        {% block sidebar %}
 | 
					                        {% block sidebar %}
 | 
				
			||||||
                        {% if sidebar_object_list %}
 | 
					                        {% if sidebar_object_list %}
 | 
				
			||||||
                        {% with object_list=sidebar_object_list %}
 | 
					                        {% with object_list=sidebar_object_list %}
 | 
				
			||||||
@ -152,6 +153,7 @@ Usefull context:
 | 
				
			|||||||
                        {% endif %}
 | 
					                        {% endif %}
 | 
				
			||||||
                        </section>
 | 
					                        </section>
 | 
				
			||||||
                        {% endblock %}
 | 
					                        {% endblock %}
 | 
				
			||||||
 | 
					                        {% endwith %}
 | 
				
			||||||
                    </aside>
 | 
					                    </aside>
 | 
				
			||||||
                    {% endif %}
 | 
					                    {% endif %}
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -23,22 +23,7 @@
 | 
				
			|||||||
{% block pages_list %}
 | 
					{% block pages_list %}
 | 
				
			||||||
{% with hide_schedule=True %}
 | 
					{% with hide_schedule=True %}
 | 
				
			||||||
<section role="list">
 | 
					<section role="list">
 | 
				
			||||||
    <div id="timetable-{{ date|date:"Y-m-d" }}">
 | 
					    {% include 'aircox/widgets/diffusion_list.html' %}
 | 
				
			||||||
        {% for diffusion in object_list %}
 | 
					 | 
				
			||||||
        <div class="columns {% if diffusion.is_now %}has-background-primary{% endif %}">
 | 
					 | 
				
			||||||
            <div class="column is-one-fifth has-text-right">
 | 
					 | 
				
			||||||
                <time datetime="{{ diffusion.start|date:"c" }}">
 | 
					 | 
				
			||||||
                {{ diffusion.start|date:"H:i" }} - {{ diffusion.end|date:"H:i" }}
 | 
					 | 
				
			||||||
                </time>
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
            <div class="column">
 | 
					 | 
				
			||||||
                {% with diffusion.episode as object %}
 | 
					 | 
				
			||||||
                {% include "aircox/widgets/episode_item.html" %}
 | 
					 | 
				
			||||||
                {% endwith %}
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        {% endfor %}
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
{% endwith %}
 | 
					{% endwith %}
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
				
			|||||||
@ -14,10 +14,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{% block pages_list %}
 | 
					{% block pages_list %}
 | 
				
			||||||
{% if page and page.content %}<hr/>{% endif %}
 | 
					{% if page and page.content %}<hr/>{% endif %}
 | 
				
			||||||
{% if top_diffs %}
 | 
					{% if next_diffs %}
 | 
				
			||||||
<div class="columns">
 | 
					<div class="columns">
 | 
				
			||||||
    {% with render_card=True %}
 | 
					    {% with render_card=True %}
 | 
				
			||||||
    {% for object in top_diffs %}
 | 
					    {% for object in next_diffs %}
 | 
				
			||||||
    {% with is_primary=object.is_now %}
 | 
					    {% with is_primary=object.is_now %}
 | 
				
			||||||
    <div class="column is-relative">
 | 
					    <div class="column is-relative">
 | 
				
			||||||
        <h4 class="card-super-title" title="{{ object.start }}">
 | 
					        <h4 class="card-super-title" title="{{ object.start }}">
 | 
				
			||||||
@ -40,16 +40,16 @@
 | 
				
			|||||||
    {% endfor %}
 | 
					    {% endfor %}
 | 
				
			||||||
    {% endwith %}
 | 
					    {% endwith %}
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<hr>
 | 
					 | 
				
			||||||
{% endif %}
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h4 class="title is-4">{% translate "Last publications" %}</h4>
 | 
					{% if object_list %}
 | 
				
			||||||
{% with has_headline=True %}
 | 
					<h4 class="title is-4">{% translate "Today" %}</h4>
 | 
				
			||||||
{{ block.super }}
 | 
					<section role="list">
 | 
				
			||||||
{% endwith %}
 | 
					    {% include 'aircox/widgets/diffusion_list.html' %}
 | 
				
			||||||
 | 
					</section>
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
{% block pagination %}
 | 
					{% block pagination %}
 | 
				
			||||||
<ul class="pagination-list">
 | 
					<ul class="pagination-list">
 | 
				
			||||||
    <li>
 | 
					    <li>
 | 
				
			||||||
@ -65,25 +65,20 @@
 | 
				
			|||||||
{% block sidebar %}
 | 
					{% block sidebar %}
 | 
				
			||||||
<section>
 | 
					<section>
 | 
				
			||||||
    <h4 class="title is-4">{% translate "Previously on air" %}</h4>
 | 
					    <h4 class="title is-4">{% translate "Previously on air" %}</h4>
 | 
				
			||||||
 | 
					    {% with has_cover=False %}
 | 
				
			||||||
    {% with logs as object_list %}
 | 
					    {% with logs as object_list %}
 | 
				
			||||||
    {% include "aircox/widgets/log_list.html" %}
 | 
					    {% include "aircox/widgets/log_list.html" %}
 | 
				
			||||||
    {% endwith %}
 | 
					    {% endwith %}
 | 
				
			||||||
 | 
					    {% endwith %}
 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<section>
 | 
					<section>
 | 
				
			||||||
    <h4 class="title is-4">{% translate "Today" %}</h4>
 | 
					    <h4 class="title is-4">{% translate "Last publications" %}</h4>
 | 
				
			||||||
    {% with is_thin=True %}
 | 
					 | 
				
			||||||
    {% with hide_schedule=True %}
 | 
					    {% with hide_schedule=True %}
 | 
				
			||||||
    {% with has_headline=False %}
 | 
					    {% with has_headline=False %}
 | 
				
			||||||
    <table class="table is-fullwidth has-background-transparent">
 | 
					    {% for object in last_publications %}
 | 
				
			||||||
    {% for object in sidebar_object_list %}
 | 
					    {% include object.item_template_name|default:'aircox/widgets/page_item.html' %}
 | 
				
			||||||
    <tr {% if object.is_now %}class="is-selected"{% endif %}>
 | 
					 | 
				
			||||||
        <td>{{ object.start|date:"H:i" }}</td>
 | 
					 | 
				
			||||||
        <td>{% include "aircox/widgets/diffusion_item.html" %}</td>
 | 
					 | 
				
			||||||
    </tr>
 | 
					 | 
				
			||||||
    {% endfor %}
 | 
					    {% endfor %}
 | 
				
			||||||
    </table>
 | 
					 | 
				
			||||||
    {% endwith %}
 | 
					 | 
				
			||||||
    {% endwith %}
 | 
					    {% endwith %}
 | 
				
			||||||
    {% endwith %}
 | 
					    {% endwith %}
 | 
				
			||||||
</section>
 | 
					</section>
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@ Context variables:
 | 
				
			|||||||
- is-primary: render as primary
 | 
					- is-primary: render as primary
 | 
				
			||||||
- has_headline (=False): if True, display headline
 | 
					- has_headline (=False): if True, display headline
 | 
				
			||||||
- has_cover (=True): hide page cover
 | 
					- has_cover (=True): hide page cover
 | 
				
			||||||
 | 
					- is_thin (=False): if True, smaller cover and display less info
 | 
				
			||||||
{% endcomment %}
 | 
					{% endcomment %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{% if render_card %}
 | 
					{% if render_card %}
 | 
				
			||||||
@ -31,8 +32,13 @@ Context variables:
 | 
				
			|||||||
<article class="media item {% block css %}{% endblock%}">
 | 
					<article class="media item {% block css %}{% endblock%}">
 | 
				
			||||||
    {% if has_cover|default_if_none:True %}
 | 
					    {% if has_cover|default_if_none:True %}
 | 
				
			||||||
    <div class="media-left">
 | 
					    <div class="media-left">
 | 
				
			||||||
 | 
					        {% if is_thin %}
 | 
				
			||||||
 | 
					        <img src="{% thumbnail object.cover|default:station.default_cover 64x64 crop=scale %}"
 | 
				
			||||||
 | 
					            class="cover is-tiny">
 | 
				
			||||||
 | 
					        {% else %}
 | 
				
			||||||
        <img src="{% thumbnail object.cover|default:station.default_cover 128x128 crop=scale %}"
 | 
					        <img src="{% thumbnail object.cover|default:station.default_cover 128x128 crop=scale %}"
 | 
				
			||||||
            class="cover is-small">
 | 
					            class="cover is-small">
 | 
				
			||||||
 | 
					        {% endif %}
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    {% endif %}
 | 
					    {% endif %}
 | 
				
			||||||
    <div class="media-content">
 | 
					    <div class="media-content">
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										22
									
								
								aircox/templates/aircox/widgets/diffusion_list.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								aircox/templates/aircox/widgets/diffusion_list.html
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					{% comment %}
 | 
				
			||||||
 | 
					Context:
 | 
				
			||||||
 | 
					- object_list: object list
 | 
				
			||||||
 | 
					- date: date for list
 | 
				
			||||||
 | 
					{% endcomment %}
 | 
				
			||||||
 | 
					<table id="timetable{% if date %}-{{ date|date:"Y-m-d" }}{% endif %}" class="timetable">
 | 
				
			||||||
 | 
					    {% for diffusion in object_list %}
 | 
				
			||||||
 | 
					    <tr class="{% if diffusion.is_now %}has-background-primary{% endif %}">
 | 
				
			||||||
 | 
					        <td class="pr-2 pb-2">
 | 
				
			||||||
 | 
					            <time datetime="{{ diffusion.start|date:"c" }}">
 | 
				
			||||||
 | 
					            {{ diffusion.start|date:"H:i" }} - {{ diffusion.end|date:"H:i" }}
 | 
				
			||||||
 | 
					            </time>
 | 
				
			||||||
 | 
					        </td>
 | 
				
			||||||
 | 
					        <td class="pb-2">
 | 
				
			||||||
 | 
					            {% with diffusion.episode as object %}
 | 
				
			||||||
 | 
					            {% include "aircox/widgets/episode_item.html" %}
 | 
				
			||||||
 | 
					            {% endwith %}
 | 
				
			||||||
 | 
					        </td>
 | 
				
			||||||
 | 
					    </tr>
 | 
				
			||||||
 | 
					    {% endfor %}
 | 
				
			||||||
 | 
					</table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1,33 +1,33 @@
 | 
				
			|||||||
import datetime
 | 
					from datetime import date
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.utils.translation import gettext as _
 | 
					from django.utils.translation import gettext as _
 | 
				
			||||||
from django.utils import timezone as tz
 | 
					from django.utils import timezone as tz
 | 
				
			||||||
 | 
					from django.views.generic import ListView
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from ..models import Diffusion, Log, Page, StaticPage
 | 
					from ..models import Diffusion, Log, Page, StaticPage
 | 
				
			||||||
 | 
					from .base import BaseView
 | 
				
			||||||
from .page import PageListView
 | 
					from .page import PageListView
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HomeView(PageListView):
 | 
					class HomeView(BaseView, ListView):
 | 
				
			||||||
    template_name = 'aircox/home.html'
 | 
					    template_name = 'aircox/home.html'
 | 
				
			||||||
    model = Page
 | 
					    model = Diffusion
 | 
				
			||||||
    queryset = Page.objects.select_subclasses()
 | 
					 | 
				
			||||||
    paginate_by = 10
 | 
					 | 
				
			||||||
    list_count = 40
 | 
					 | 
				
			||||||
    logs_count = 5
 | 
					 | 
				
			||||||
    has_filters = False
 | 
					 | 
				
			||||||
    attach_to_value = StaticPage.ATTACH_TO_HOME
 | 
					    attach_to_value = StaticPage.ATTACH_TO_HOME
 | 
				
			||||||
 | 
					    queryset = Diffusion.objects.on_air().select_related('episode')
 | 
				
			||||||
 | 
					    logs_count = 5
 | 
				
			||||||
 | 
					    publications_count = 5
 | 
				
			||||||
 | 
					    has_filters = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_logs(self):
 | 
					    def get_queryset(self):
 | 
				
			||||||
        today = datetime.date.today()
 | 
					        return super().get_queryset().date(date.today())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_logs(self, diffusions):
 | 
				
			||||||
 | 
					        today = date.today()
 | 
				
			||||||
        logs = Log.objects.on_air().date(today).filter(track__isnull=False)
 | 
					        logs = Log.objects.on_air().date(today).filter(track__isnull=False)
 | 
				
			||||||
        diffs = Diffusion.objects.on_air().date(today)
 | 
					        # diffs = Diffusion.objects.on_air().date(today)
 | 
				
			||||||
        return Log.merge_diffusions(logs, diffs, self.logs_count)
 | 
					        return Log.merge_diffusions(logs, diffusions, self.logs_count)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_sidebar_queryset(self):
 | 
					    def get_next_diffs(self):
 | 
				
			||||||
        today = datetime.date.today()
 | 
					 | 
				
			||||||
        return Diffusion.objects.on_air().date(today)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def get_top_diffs(self):
 | 
					 | 
				
			||||||
        now = tz.now()
 | 
					        now = tz.now()
 | 
				
			||||||
        current_diff = Diffusion.objects.on_air().now(now).first()
 | 
					        current_diff = Diffusion.objects.on_air().now(now).first()
 | 
				
			||||||
        next_diffs = Diffusion.objects.on_air().after(now)
 | 
					        next_diffs = Diffusion.objects.on_air().after(now)
 | 
				
			||||||
@ -37,10 +37,25 @@ class HomeView(PageListView):
 | 
				
			|||||||
            diffs = next_diffs[:3]
 | 
					            diffs = next_diffs[:3]
 | 
				
			||||||
        return diffs
 | 
					        return diffs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_last_publications(self):
 | 
				
			||||||
 | 
					        # note: with postgres db, possible to use distinct()
 | 
				
			||||||
 | 
					        qs = Page.objects.select_subclasses().published() \
 | 
				
			||||||
 | 
					                 .order_by('-pub_date')
 | 
				
			||||||
 | 
					        parents = set()
 | 
				
			||||||
 | 
					        items = []
 | 
				
			||||||
 | 
					        for publication in qs:
 | 
				
			||||||
 | 
					            parent_id = publication.parent_id
 | 
				
			||||||
 | 
					            if parent_id is not None and parent_id in parents:
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            items.append(publication)
 | 
				
			||||||
 | 
					            if len(items) == self.publications_count:
 | 
				
			||||||
 | 
					                break
 | 
				
			||||||
 | 
					        return items
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_context_data(self, **kwargs):
 | 
					    def get_context_data(self, **kwargs):
 | 
				
			||||||
        kwargs['logs'] = self.get_logs()
 | 
					        context = super().get_context_data(**kwargs)
 | 
				
			||||||
        kwargs['top_diffs'] = self.get_top_diffs()
 | 
					        context['logs'] = self.get_logs(context['object_list'])
 | 
				
			||||||
        return super().get_context_data(**kwargs)
 | 
					        context['next_diffs'] = self.get_next_diffs()
 | 
				
			||||||
 | 
					        context['last_publications'] = self.get_last_publications()[:5]
 | 
				
			||||||
 | 
					        return context
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -268,10 +268,6 @@ aside {
 | 
				
			|||||||
        margin-bottom: 2em;
 | 
					        margin-bottom: 2em;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .cover {
 | 
					 | 
				
			||||||
        margin-bottom: 2em;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .cover.is-small { width: 10em; }
 | 
					    .cover.is-small { width: 10em; }
 | 
				
			||||||
    .cover.is-tiny { height: 2em; }
 | 
					    .cover.is-tiny { height: 2em; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -291,3 +287,9 @@ aside {
 | 
				
			|||||||
    border-radius: 1em;
 | 
					    border-radius: 1em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.timetable {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    border: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user