Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ node_modules/
.idea/
wwwroot/build/
wwwroot/doc/
wwwroot/prerendered/
npm-debug.log
version.js
wwwroot/init/nm.json
Expand All @@ -18,12 +17,8 @@ datasources/00_National_Data_Sets.json
/error.log
/output.log
privateserverconfig.json
wwwroot/sitemap.xml
wwwroot/privateconfig.json
deploy/packages/
deploy/work/
packages/
pancake/

# https://marketplace.visualstudio.com/items?itemName=xyz.local-history
.history/
5 changes: 0 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
language: node_js
dist: trusty
addons:
apt:
packages:
- libnss3
node_js:
- '10'
- '14'
Expand Down
2 changes: 0 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ Change Log
* Re-enabled measure tool
* Development builds sped up by 3~20x - ts-loader is now optional & TypeScript being transpiled by babel-loader, keeping type check safety on a separate thread
* Added default help content & `languageOverrides.json` for i18n
* Added basic prerendering steps
* Add opt-in prerendering

### Next Release

Expand Down
53 changes: 0 additions & 53 deletions buildprocess/generate-init-routes.js

This file was deleted.

35 changes: 0 additions & 35 deletions buildprocess/generate-terria-sitemap.js

This file was deleted.

111 changes: 11 additions & 100 deletions buildprocess/webpack.config.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
'use strict';

/*global require*/
var fs = require('fs');
var configureWebpackForTerriaJS = require('terriajs/buildprocess/configureWebpack');
var MiniCssExtractPlugin = require('mini-css-extract-plugin');
var generateRoutes = require("./generate-init-routes");
var generateTerriaSitemap = require("./generate-terria-sitemap");
var PrerenderSPAPlugin = require("prerender-spa-plugin");
var Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
var path = require('path');
var json5 = require("json5");

module.exports = function(webpack, devMode, hot) {
module.exports = function(devMode, hot) {
var config = {
mode: devMode ? 'development' : 'production',
entry: './entry.js',
Expand Down Expand Up @@ -123,11 +117,11 @@ module.exports = function(webpack, devMode, hot) {
importLoaders: 2
}
},
{
loader: 'resolve-url-loader',
options: {
sourceMap: false
}
{
loader: 'resolve-url-loader',
options: {
sourceMap: false
}
},
'sass-loader?sourceMap'
] : [
Expand All @@ -142,11 +136,11 @@ module.exports = function(webpack, devMode, hot) {
importLoaders: 2
}
},
{
loader: 'resolve-url-loader',
options: {
sourceMap: false
}
{
loader: 'resolve-url-loader',
options: {
sourceMap: false
}
},
'sass-loader?sourceMap'
]
Expand All @@ -162,88 +156,5 @@ module.exports = function(webpack, devMode, hot) {
}
};
config.resolve.alias['terriajs-variables'] = require.resolve('../lib/Styles/variables.scss');

// Enable this block if you wish to opt into pre-rendering
if (!devMode && 1 === 2) {
var configJsonPath = fs.readFileSync(path.resolve(__dirname, '..','wwwroot', 'config.json'), 'utf8');
var configJson = json5.parse(configJsonPath);
var prerenderRoutes =
(configJson &&
configJson.initializationUrls &&
configJson.initializationUrls.length > 0 &&
generateRoutes(configJson.initializationUrls)) ||
[];
var appBaseUrl =
(configJson &&
configJson.parameters &&
configJson.parameters.appBaseUrl &&
configJson.parameters.appBaseUrl.length > 0 &&
configJson.parameters.appBaseUrl);

console.log('The following routes generated from config.json\'s initializationUrls will be prerendered:');
console.log(prerenderRoutes);

if (appBaseUrl) {
try {
console.log('Attempting to write sitemap with appBaseUrl: ', appBaseUrl);
var sitemap = generateTerriaSitemap(appBaseUrl, prerenderRoutes);
var sitemapPath = path.resolve(__dirname, '..', 'wwwroot', 'sitemap.xml');
fs.writeFileSync(sitemapPath, new Buffer(sitemap));
console.log('Wrote out sitemap to: ' + sitemapPath);
} catch (e) {
console.error("Couldn't generate sitemap?", e);
}
} else {
console.warn("Warning - no appBaseUrl specified, no sitemap will be generated.")
}
config.plugins = [
...config.plugins,
new webpack.DefinePlugin({
// styled-component uses CSSOM for rendering styles,
// but when pre-rendering, we want all styles to be applied via the DOM instead.
// This env variable instructs styled-component to use DOM instead of CSSOM
// for applying styles
'process.env.SC_DISABLE_SPEEDY': "true",
}),
new PrerenderSPAPlugin({
staticDir: path.resolve(__dirname, '..', 'wwwroot', ),
outputDir: path.resolve(__dirname, '..', 'wwwroot', 'prerendered'),
indexPath: path.resolve(__dirname, '..', 'wwwroot', 'index.html'),
routes: prerenderRoutes,
server: {
// If a server is running in the default terria port
// use it to proxy the following paths
proxy: {
"/proxyabledomains": {
target: 'http://localhost:3001'
},
"/proxy": {
target: 'http://localhost:3001'
}
}
},
renderer: new Renderer({
renderAfterDocumentEvent: 'prerender-end',
// If you run out of memory, try a lower value here
maxConcurrentRoutes: 8,
// headless: false, // set to false for debugging
timeout: 5000
}),
postProcess(context) {
// Hide any errors or popups in the rendered page.
const bodyTag = "<body>";
const catalogzIndexOverride = `
<style id="catalogStyleOverride" type="text/css">
.tjs-explorer-window__modal-wrapper {
z-index:1000000 !important;
}
</style>
`;
const htmlSplit = context.html.split(bodyTag); // Only one <body> tag so it'll be split into 2
context.html = htmlSplit[0] + bodyTag + catalogzIndexOverride + htmlSplit[1];
return context;
}
})];
}
return configureWebpackForTerriaJS(path.dirname(require.resolve('terriajs/package.json')), config, devMode, hot, MiniCssExtractPlugin);
};
2 changes: 0 additions & 2 deletions deploy/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
FROM node:8

RUN apt-get update && apt-get install -y gdal-bin
RUN apt-get -qq -y install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget


RUN mkdir -p /usr/src/app && mkdir -p /etc/config/client
WORKDIR /usr/src/app/component
Expand Down
8 changes: 0 additions & 8 deletions devserverconfig.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
{
"port": 3001,

"baseHref": "/",

// progresive spa options
"singlePageRouting": {
"resolvePathRelativeToWwwroot": "/index.html",
"resolveUnmatchedPathsWithIndexHtml": true
},

"allowProxyFor" : [
"nicta.com.au",
"gov.au",
Expand Down
41 changes: 4 additions & 37 deletions entry.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,6 @@ function loadMainScript() {
}

function createLoader() {
// We only want this briefly so the explorer-window modal can be displayed
// until we load in other modal-like-things like disclaimer windows,
// but also other notification windows like error messages
// So, reset it back to app defaults after
const catalogzIndexOverride = document.createElement('style');
catalogzIndexOverride.setAttribute('type', 'text/css');
catalogzIndexOverride.innerHTML = `
.tjs-explorer-window__modal-wrapper {
z-index:10000 !important;
}
`;
document.body.appendChild(catalogzIndexOverride);

const loaderDiv = document.createElement('div');
loaderDiv.classList.add("loader-ui");
const loaderGif = document.createElement('img');
Expand All @@ -47,34 +34,14 @@ function createLoader() {
loaderDiv.style.backgroundColor ='#383F4D';
document.body.appendChild(loaderDiv);

const catalogzIndexOverrideFromWebpack = document.getElementById("catalogStyleOverride");

polyfill(function() {
loadMainScript().catch(() => {
// Ignore errors and try to show the map anyway
}).then(() => {
// loaderDiv.classList.add('loader-ui-hide');
// setTimeout(()=> {
// document.body.removeChild(loaderDiv);
// }, 2000);
const removeElement = (element) => {
const parent = element?.parentNode;
if (parent) {
parent.removeChild(element);
}
};

const removeLoaderElements = () => {
removeElement(catalogzIndexOverrideFromWebpack);
removeElement(loaderDiv);
removeElement(catalogzIndexOverride);
};
loaderDiv.classList.add('loader-ui-hide');
setTimeout(() => document.body.removeChild(catalogzIndexOverride), 300);
loaderDiv.addEventListener('transitionend', removeLoaderElements);
// also fallback with setTimeout here
// so we can remove the elements anyway in case of transitionend event failure
setTimeout(removeLoaderElements, 2000);
loaderDiv.classList.add('loader-ui-hide');
setTimeout(()=> {
document.body.removeChild(loaderDiv);
}, 2000);
});
});
}
Expand Down
14 changes: 3 additions & 11 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ gulp.task('write-version', function(done) {
gulp.task('build-app', gulp.series('check-terriajs-dependencies', 'write-version', function buildApp(done) {
var runWebpack = require('terriajs/buildprocess/runWebpack.js');
var webpack = require('webpack');
var webpackConfig = require('./buildprocess/webpack.config.js')(webpack, true);
var webpackConfig = require('./buildprocess/webpack.config.js')(true);

checkForDuplicateCesium();

Expand All @@ -54,7 +54,7 @@ gulp.task('build-app', gulp.series('check-terriajs-dependencies', 'write-version
gulp.task('release-app', gulp.series('check-terriajs-dependencies', 'write-version', function releaseApp(done) {
var runWebpack = require('terriajs/buildprocess/runWebpack.js');
var webpack = require('webpack');
var webpackConfig = require('./buildprocess/webpack.config.js')(webpack, false);
var webpackConfig = require('./buildprocess/webpack.config.js')(false);

checkForDuplicateCesium();

Expand All @@ -67,7 +67,7 @@ gulp.task('watch-app', gulp.series('check-terriajs-dependencies', function watch
var fs = require('fs');
var watchWebpack = require('terriajs/buildprocess/watchWebpack');
var webpack = require('webpack');
var webpackConfig = require('./buildprocess/webpack.config.js')(webpack, true, false);
var webpackConfig = require('./buildprocess/webpack.config.js')(true, false);

checkForDuplicateCesium();

Expand Down Expand Up @@ -250,14 +250,6 @@ function mergeConfigs(original, override) {
gulp.task('render-datasource-templates', function(done) {
var ejs = require('ejs');
var JSON5 = require('json5');
var serverConfig = JSON5.parse(fs.readFileSync('devserverconfig.json', 'utf8'));

var index = fs.readFileSync('wwwroot/index.ejs', 'utf8');
var baseHrefFromConfig = serverConfig.baseHref;
var indexResult = ejs.render(index, { baseHref: baseHrefFromConfig || "/"});

fs.writeFileSync(path.join('wwwroot', 'index.html'), new Buffer(indexResult));

var templateDir = 'datasources';

// until https://github.com/TerriaJS/terriajs/pull/4227 is ready,
Expand Down
Loading