Projekt

Obecné

Profil

« Předchozí | Další » 

Revize eb9f3f21

Přidáno uživatelem Tomáš před více než 3 roky(ů)

final fixes

Zobrazit rozdíly:

docker/php-fpm/Dockerfile
7 7
	docker-php-ext-enable mongodb; \
8 8
	apk del --purge autoconf openssl-dev g++ make;
9 9
RUN add apk npm; \
10
    npm install --global webpack webpack-cli; \
11
	npm install; \
12
	npm link webpack;
10
    npm install --global webpack webpack-cli;
13 11
RUN echo "**** install PHP Composer ****\n" && \
14 12
    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
docker/php-fpm/dev/Dockerfile
10 10
    docker-php-ext-enable mongodb; \
11 11
    apk del --purge autoconf openssl-dev g++ make;
12 12
RUN apk add npm; \
13
    npm install --global webpack webpack-cli; \
14
    npm install; \
15
    npm link webpack;
13
    npm install --global webpack webpack-cli;
16 14
RUN echo "**** install PHP Composer ****\n" && \
17 15
    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
18 16
RUN rm -rf /usr/local/etc/php/conf.d/docker-php-ext-igbinary.ini;
scripts/build.sh
2 2
docker-compose down
3 3
docker-compose -f docker-compose.yml -f docker-compose-prod.yml up --build -d
4 4
docker-compose exec -T php-fpm composer install --no-interaction --working-dir=/var/www/symfony --no-dev
5
docker-compose exec -T php-fpm /bin/sh -c "cd /var/www/symfony && npm install && npm link webpack && npm run build"
5 6
#python module initiation
6 7
docker-compose exec -T crawler /bin/sh -c "cd /src && python docker_prepare_structure.py && echo '-all' | python force_update_datasets.py"
scripts/dev/build.sh
23 23
    \|__| \|__| \|__|      \|__|     \|__|        \|__| \|__| \|__||\_________\    \|__|   \|__|\|__| \|_______| \|_______|
24 24
                                                                   \|_________|
25 25
EOF
26
docker-compose exec php-fpm /bin/sh -c 'cd /var/www/symfony && npm install'
26
docker-compose exec -T php-fpm /bin/sh -c "cd /var/www/symfony && npm install && npm link webpack && npm run build"
27 27
echo "================= NPM INSTALL DONE ==================="
28 28
docker-compose exec -T crawler /bin/sh -c "cd /src && python docker_prepare_structure.py && echo '-all' | python force_update_datasets.py"
29 29
echo "================= LOADING DATASETS DONE ==================="
website/public/css/style.2a84f508.css
1
/******/ (function() { // webpackBootstrap
2
/******/ 	"use strict";
3
/******/ 	var __webpack_modules__ = ({
4

  
5
/***/ 379:
6
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
7

  
8

  
9

  
10
var isOldIE = function isOldIE() {
11
  var memo;
12
  return function memorize() {
13
    if (typeof memo === 'undefined') {
14
      // Test for IE <= 9 as proposed by Browserhacks
15
      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
16
      // Tests for existence of standard globals is to allow style-loader
17
      // to operate correctly into non-standard environments
18
      // @see https://github.com/webpack-contrib/style-loader/issues/177
19
      memo = Boolean(window && document && document.all && !window.atob);
20
    }
21

  
22
    return memo;
23
  };
24
}();
25

  
26
var getTarget = function getTarget() {
27
  var memo = {};
28
  return function memorize(target) {
29
    if (typeof memo[target] === 'undefined') {
30
      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
31

  
32
      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
33
        try {
34
          // This will throw an exception if access to iframe is blocked
35
          // due to cross-origin restrictions
36
          styleTarget = styleTarget.contentDocument.head;
37
        } catch (e) {
38
          // istanbul ignore next
39
          styleTarget = null;
40
        }
41
      }
42

  
43
      memo[target] = styleTarget;
44
    }
45

  
46
    return memo[target];
47
  };
48
}();
49

  
50
var stylesInDom = [];
51

  
52
function getIndexByIdentifier(identifier) {
53
  var result = -1;
54

  
55
  for (var i = 0; i < stylesInDom.length; i++) {
56
    if (stylesInDom[i].identifier === identifier) {
57
      result = i;
58
      break;
59
    }
60
  }
61

  
62
  return result;
63
}
64

  
65
function modulesToDom(list, options) {
66
  var idCountMap = {};
67
  var identifiers = [];
68

  
69
  for (var i = 0; i < list.length; i++) {
70
    var item = list[i];
71
    var id = options.base ? item[0] + options.base : item[0];
72
    var count = idCountMap[id] || 0;
73
    var identifier = "".concat(id, " ").concat(count);
74
    idCountMap[id] = count + 1;
75
    var index = getIndexByIdentifier(identifier);
76
    var obj = {
77
      css: item[1],
78
      media: item[2],
79
      sourceMap: item[3]
80
    };
81

  
82
    if (index !== -1) {
83
      stylesInDom[index].references++;
84
      stylesInDom[index].updater(obj);
85
    } else {
86
      stylesInDom.push({
87
        identifier: identifier,
88
        updater: addStyle(obj, options),
89
        references: 1
90
      });
91
    }
92

  
93
    identifiers.push(identifier);
94
  }
95

  
96
  return identifiers;
97
}
98

  
99
function insertStyleElement(options) {
100
  var style = document.createElement('style');
101
  var attributes = options.attributes || {};
102

  
103
  if (typeof attributes.nonce === 'undefined') {
104
    var nonce =  true ? __webpack_require__.nc : 0;
105

  
106
    if (nonce) {
107
      attributes.nonce = nonce;
108
    }
109
  }
110

  
111
  Object.keys(attributes).forEach(function (key) {
112
    style.setAttribute(key, attributes[key]);
113
  });
114

  
115
  if (typeof options.insert === 'function') {
116
    options.insert(style);
117
  } else {
118
    var target = getTarget(options.insert || 'head');
119

  
120
    if (!target) {
121
      throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
122
    }
123

  
124
    target.appendChild(style);
125
  }
126

  
127
  return style;
128
}
129

  
130
function removeStyleElement(style) {
131
  // istanbul ignore if
132
  if (style.parentNode === null) {
133
    return false;
134
  }
135

  
136
  style.parentNode.removeChild(style);
137
}
138
/* istanbul ignore next  */
139

  
140

  
141
var replaceText = function replaceText() {
142
  var textStore = [];
143
  return function replace(index, replacement) {
144
    textStore[index] = replacement;
145
    return textStore.filter(Boolean).join('\n');
146
  };
147
}();
148

  
149
function applyToSingletonTag(style, index, remove, obj) {
150
  var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
151

  
152
  /* istanbul ignore if  */
153

  
154
  if (style.styleSheet) {
155
    style.styleSheet.cssText = replaceText(index, css);
156
  } else {
157
    var cssNode = document.createTextNode(css);
158
    var childNodes = style.childNodes;
159

  
160
    if (childNodes[index]) {
161
      style.removeChild(childNodes[index]);
162
    }
163

  
164
    if (childNodes.length) {
165
      style.insertBefore(cssNode, childNodes[index]);
166
    } else {
167
      style.appendChild(cssNode);
168
    }
169
  }
170
}
171

  
172
function applyToTag(style, options, obj) {
173
  var css = obj.css;
174
  var media = obj.media;
175
  var sourceMap = obj.sourceMap;
176

  
177
  if (media) {
178
    style.setAttribute('media', media);
179
  } else {
180
    style.removeAttribute('media');
181
  }
182

  
183
  if (sourceMap && typeof btoa !== 'undefined') {
184
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
185
  } // For old IE
186

  
187
  /* istanbul ignore if  */
188

  
189

  
190
  if (style.styleSheet) {
191
    style.styleSheet.cssText = css;
192
  } else {
193
    while (style.firstChild) {
194
      style.removeChild(style.firstChild);
195
    }
196

  
197
    style.appendChild(document.createTextNode(css));
198
  }
199
}
200

  
201
var singleton = null;
202
var singletonCounter = 0;
203

  
204
function addStyle(obj, options) {
205
  var style;
206
  var update;
207
  var remove;
208

  
209
  if (options.singleton) {
210
    var styleIndex = singletonCounter++;
211
    style = singleton || (singleton = insertStyleElement(options));
212
    update = applyToSingletonTag.bind(null, style, styleIndex, false);
213
    remove = applyToSingletonTag.bind(null, style, styleIndex, true);
214
  } else {
215
    style = insertStyleElement(options);
216
    update = applyToTag.bind(null, style, options);
217

  
218
    remove = function remove() {
219
      removeStyleElement(style);
220
    };
221
  }
222

  
223
  update(obj);
224
  return function updateStyle(newObj) {
225
    if (newObj) {
226
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
227
        return;
228
      }
229

  
230
      update(obj = newObj);
231
    } else {
232
      remove();
233
    }
234
  };
235
}
236

  
237
module.exports = function (list, options) {
238
  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
239
  // tags it will allow on a page
240

  
241
  if (!options.singleton && typeof options.singleton !== 'boolean') {
242
    options.singleton = isOldIE();
243
  }
244

  
245
  list = list || [];
246
  var lastIdentifiers = modulesToDom(list, options);
247
  return function update(newList) {
248
    newList = newList || [];
249

  
250
    if (Object.prototype.toString.call(newList) !== '[object Array]') {
251
      return;
252
    }
253

  
254
    for (var i = 0; i < lastIdentifiers.length; i++) {
255
      var identifier = lastIdentifiers[i];
256
      var index = getIndexByIdentifier(identifier);
257
      stylesInDom[index].references--;
258
    }
259

  
260
    var newLastIdentifiers = modulesToDom(newList, options);
261

  
262
    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
263
      var _identifier = lastIdentifiers[_i];
264

  
265
      var _index = getIndexByIdentifier(_identifier);
266

  
267
      if (stylesInDom[_index].references === 0) {
268
        stylesInDom[_index].updater();
269

  
270
        stylesInDom.splice(_index, 1);
271
      }
272
    }
273

  
274
    lastIdentifiers = newLastIdentifiers;
275
  };
276
};
277

  
278
/***/ })
279

  
280
/******/ 	});
281
/************************************************************************/
282
/******/ 	// The module cache
283
/******/ 	var __webpack_module_cache__ = {};
284
/******/ 	
285
/******/ 	// The require function
286
/******/ 	function __webpack_require__(moduleId) {
287
/******/ 		// Check if module is in cache
288
/******/ 		if(__webpack_module_cache__[moduleId]) {
289
/******/ 			return __webpack_module_cache__[moduleId].exports;
290
/******/ 		}
291
/******/ 		// Create a new module (and put it into the cache)
292
/******/ 		var module = __webpack_module_cache__[moduleId] = {
293
/******/ 			// no module.id needed
294
/******/ 			// no module.loaded needed
295
/******/ 			exports: {}
296
/******/ 		};
297
/******/ 	
298
/******/ 		// Execute the module function
299
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
300
/******/ 	
301
/******/ 		// Return the exports of the module
302
/******/ 		return module.exports;
303
/******/ 	}
304
/******/ 	
305
/************************************************************************/
306
/******/ 	/* webpack/runtime/compat get default export */
307
/******/ 	!function() {
308
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
309
/******/ 		__webpack_require__.n = function(module) {
310
/******/ 			var getter = module && module.__esModule ?
311
/******/ 				function() { return module['default']; } :
312
/******/ 				function() { return module; };
313
/******/ 			__webpack_require__.d(getter, { a: getter });
314
/******/ 			return getter;
315
/******/ 		};
316
/******/ 	}();
317
/******/ 	
318
/******/ 	/* webpack/runtime/define property getters */
319
/******/ 	!function() {
320
/******/ 		// define getter functions for harmony exports
321
/******/ 		__webpack_require__.d = function(exports, definition) {
322
/******/ 			for(var key in definition) {
323
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
324
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
325
/******/ 				}
326
/******/ 			}
327
/******/ 		};
328
/******/ 	}();
329
/******/ 	
330
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
331
/******/ 	!function() {
332
/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
333
/******/ 	}();
334
/******/ 	
335
/******/ 	/* webpack/runtime/make namespace object */
336
/******/ 	!function() {
337
/******/ 		// define __esModule on exports
338
/******/ 		__webpack_require__.r = function(exports) {
339
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
340
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
341
/******/ 			}
342
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
343
/******/ 		};
344
/******/ 	}();
345
/******/ 	
346
/************************************************************************/
347
!function() {
348

  
349
// UNUSED EXPORTS: default
350

  
351
// NAMESPACE OBJECT: ./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./node_modules/sass-loader/dist/cjs.js!./public/css/style.scss
352
var style_namespaceObject = {};
353
__webpack_require__.r(style_namespaceObject);
354

  
355
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
356
var injectStylesIntoStyleTag = __webpack_require__(379);
357
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
358
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./node_modules/sass-loader/dist/cjs.js!./public/css/style.scss
359
// extracted by mini-css-extract-plugin
360

  
361
;// CONCATENATED MODULE: ./public/css/style.scss
362

  
363
            
364

  
365
var options = {};
366

  
367
options.insert = "head";
368
options.singleton = false;
369

  
370
var update = injectStylesIntoStyleTag_default()(style_namespaceObject.default, options);
371

  
372

  
373

  
374
/* harmony default export */ var style = (style_namespaceObject.default.locals || {});
375
}();
376
/******/ })()
377
;
website/public/css/style.js
1
!function(){"use strict";var e={379:function(e,t,n){var r,o=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function a(e){for(var t=-1,n=0;n<i.length;n++)if(i[n].identifier===e){t=n;break}return t}function c(e,t){for(var n={},r=[],o=0;o<e.length;o++){var c=e[o],u=t.base?c[0]+t.base:c[0],s=n[u]||0,l="".concat(u," ").concat(s);n[u]=s+1;var f=a(l),d={css:c[1],media:c[2],sourceMap:c[3]};-1!==f?(i[f].references++,i[f].updater(d)):i.push({identifier:l,updater:m(d,t),references:1}),r.push(l)}return r}function u(e){var t=document.createElement("style"),r=e.attributes||{};if(void 0===r.nonce){var i=n.nc;i&&(r.nonce=i)}if(Object.keys(r).forEach((function(e){t.setAttribute(e,r[e])})),"function"==typeof e.insert)e.insert(t);else{var a=o(e.insert||"head");if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}return t}var s,l=(s=[],function(e,t){return s[e]=t,s.filter(Boolean).join("\n")});function f(e,t,n,r){var o=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(e.styleSheet)e.styleSheet.cssText=l(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}function d(e,t,n){var r=n.css,o=n.media,i=n.sourceMap;if(o?e.setAttribute("media",o):e.removeAttribute("media"),i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var p=null,v=0;function m(e,t){var n,r,o;if(t.singleton){var i=v++;n=p||(p=u(t)),r=f.bind(null,n,i,!1),o=f.bind(null,n,i,!0)}else n=u(t),r=d.bind(null,n,t),o=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=(void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r));var n=c(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var r=0;r<n.length;r++){var o=a(n[r]);i[o].references--}for(var u=c(e,t),s=0;s<n.length;s++){var l=a(n[s]);0===i[l].references&&(i[l].updater(),i.splice(l,1))}n=u}}}}},t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e={};n.r(e);var t=n(379);n.n(t)()(e.default,{insert:"head",singleton:!1}),e.default.locals}()}();
website/webpack.config.js
23 23
        minimize: true
24 24
    },
25 25
    output: {
26
        filename: '[name].[hash:8].css',
27 26
        publicPath: '',
28
        path: path.resolve(__dirname, 'public/css'),
29
        sourceMapFilename: '[id].[hash:8].map',
30
        chunkFilename: '[id].[hash:8].css'
27
        path: path.resolve(__dirname, 'public/css')
31 28
    },
32 29
    module: {
33 30
        rules: [

Také k dispozici: Unified diff