Commit 6ad651bc authored by Magnus Westergaard's avatar Magnus Westergaard
Browse files

Removed patron-client code.

parent 6e8e2e46
{
"presets": [
"es2015",
"stage-2",
"react"
],
"plugins": [
[
"array-includes"
],
[
"react-intl",
{
"messagesDir": "./build/messages/",
"enforceDescriptions": true
}
]
],
"env": {
"development": {
"plugins": [
"react-hot-loader/babel"
]
},
"production": {
"plugins": [
"transform-react-constant-elements",
"transform-react-inline-elements"
]
},
"test": {
"plugins": [
"rewire"
]
}
}
}
{
"extends": [
"standard",
"standard-react"
],
"rules": {
"react/jsx-no-bind": [
2,
{
"ignoreRefs": true,
"allowArrowFunctions": true
}
],
"prefer-template": 2,
"react/jsx-indent-props": 0,
"react/jsx-indent": 0,
"no-return-assign": 0,
"jsx-quotes": [
"error",
"prefer-double"
],
"no-var": 2,
"prefer-const": 2,
"prefer-arrow-callback": [
"error",
{
"allowNamedFunctions": true
}
],
"arrow-parens": 0,
"no-useless-escape": 0
}
}
public/dist/
node_modules/
npm-debug.log
build/
es5-compiled/
.sass-cache/
\ No newline at end of file
FROM node:9.11.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
COPY public /usr/src/app/
COPY src/backend /usr/src/app/backend
COPY src/common /usr/src/app/common
RUN npm set progress=false
RUN npm set color=false
RUN npm install > install.log 2>&1
COPY . /usr/src/app
EXPOSE 8000
CMD [ "npm", "run", "production"]
\ No newline at end of file
FROM node:9.11.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
COPY .eslintrc /usr/src/app/
RUN npm set progress=false
RUN npm set color=false
RUN npm install > install.log 2>&1
COPY . /usr/src/app
EXPOSE 8000
CMD [ "npm", "run", "productionbuild"]
FROM node:9.11.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm set progress=false
RUN npm set color=false
RUN npm install > install.log 2>&1
COPY . /usr/src/app
VOLUME /usr/src/app/src
VOLUME /usr/src/app/test
EXPOSE 8000
CMD [ "npm", "run", "dockerdev" ]
\ No newline at end of file
GITREF=$(shell git rev-parse HEAD)
IMAGE=digibib/redef-patron-client
CONTAINER=patron_client
PCPATH=$(shell pwd)
HOST_VOLUME_BINDINGS=-v $(PCPATH)/src:/usr/src/app/src \
-v $(PCPATH)/test:/usr/src/app/test
.PHONY: test lit logs push
lint:
docker run --rm $(HOST_VOLUME_BINDINGS) $(IMAGE):$(GITREF) npm run -s lint
test: lint
docker run --rm $(HOST_VOLUME_BINDINGS) $(IMAGE):$(GITREF) npm test
logs:
docker logs -f $(CONTAINER)
push:
ifndef TAG
@echo "You must specify TAG when pushing"
exit 1
endif
docker push $(IMAGE):$(TAG)
# Patron client
Patron client is the main interface for patrons to interact with the library on the internet, including searching and browsing the catalogue.
Patron-client is a browser-based application. It is consuming data from [Services](../services/README.md) and the search index.
## Technologies used
All modules are specified in package.json.
* [Node.JS](https://nodejs.org/)
* Server
* [Express](http://expressjs.com/)
* Templating/Browser rendering
* [React](http://facebook.github.io/react/)
* [React-router](https://github.com/rackt/react-routerq)
* [Redux](https://github.com/rackt/redux)
* Testing
* [Mocha](https://mochajs.org/)
* React-test-utils
* [Jsdom](https://github.com/tmpvar/jsdom)
* Build
* Gulp (watch, uglify, generate sourcemaps, browserify)
## Build
See [Makefile](Makefile).
## Troubleshooting
Logs can be viewed via:
* Running `make logs` in the `/vagrant/redef/patron-client` (when you have ssh'ed into dev-ship)
<!DOCTYPE html>
<html lang="no">
<head>
<meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge">
<!--meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"-->
<meta name="viewport" content="initial-scale=1, minimum-scale=1, maximum-scale=10, user-scalable=yes">
<link rel="shortcut icon" href="/images/favicon.png" type="image/png" />
<title>Deichman - søk</title>
<script>
dataLayer = [];
</script>
<!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) {
w[ l ] = w[ l ] || [];
w[ l ].push(
{ 'gtm.start': new Date().getTime(), event: 'gtm.js' }
);
var f = d.getElementsByTagName(s)[ 0 ],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-K9G3NVD');</script>
<!-- End Google Tag Manager -->
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-K9G3NVD"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="app"></div>
<!-- Survey -->
<script> (function(a,b,c,d,e,f,g,h,i){i=/(^|;)\s*_tmc=([^;]+)/.exec(a[c]),i=i?i[2]:"",("done"!==i|| /[?&]_tmcf?(=|&|$)/.test(e))&&(g=a.getElementsByTagName(b)[0],h=a.createElement(b),h[d]("src",f+ "?r="+i+"&"+1*new Date),h[d]("type","text/javascript"),h.async=!0,g.parentNode.insertBefore(h,g)) })(document,"script","cookie","setAttribute",location.search,"//in.taskanalytics.com/00357/tm.js"); </script>
<!-- End Survey -->
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "redef-patron-client",
"version": "0.0.1",
"description": "Patron client for the redef part of ls.ext.",
"author": "Digital Development Team at Oslo Public Library <digibib@gmail.com>",
"main": "src/frontend/main.js",
"repository": {
"type": "git",
"url": "https://github.com/digibib/ls.ext"
},
"bugs": {
"url": "https://github.com/digibib/ls.ext/issues"
},
"keywords": [
"library",
"patron"
],
"directories": {
"test": "test"
},
"standard": {
"parser": "babel-eslint"
},
"scripts": {
"build": "npm run clean && webpack",
"clean": "rimraf public/dist",
"lint": "eslint *.js test src",
"dockerdev": "cross-env POLL=true npm start",
"dist": "npm run clean && npm run lint && npm test && cross-env NODE_ENV=production webpack --config webpack.config.production.js",
"productionbuild": "npm run clean && cross-env NODE_ENV=production webpack --config webpack.config.production.js",
"start": "npm run clean && webpack && node --inspect src/backend/server.js",
"production": "cross-env NODE_ENV=production node src/backend/server.js",
"test": "cross-env NODE_ENV=test mocha -R min --recursive --compilers js:babel-core/register --require ./test/setup.js",
"test:debug": "cross-env NODE_ENV=test mocha debug --recursive --compilers js:babel-core/register --require ./test/setup.js",
"test:watch": "npm test -- --watch",
"test_verbose": "cross-env NODE_ENV=test mocha --recursive --compilers js:babel-core/register --require ./test/setup.js",
"test_watch_verbose": "npm run test_verbose -- --watch",
"verify": "npm run lint && npm test",
"es5": "rimraf es5-compiled && cross-env BABEL_ENV=test babel test --watch --out-dir es5-compiled/test --source-maps inline & cross-env BABEL_ENV=test babel src --watch --out-dir es5-compiled/src --source-maps inline",
"dev": "KOHA_API_USER=api KOHA_API_PASS=secret PORT=8001 npm start",
"devnode": "KOHA_API_USER=api KOHA_API_PASS=secret PORT=8001 node --inspect src/backend/server.js"
},
"devDependencies": {
"babel-eslint": "7.1.1",
"babel-loader": "6.2.9",
"babel-plugin-array-includes": "2.0.3",
"babel-plugin-react-intl": "2.2.0",
"babel-plugin-react-transform": "2.0.2",
"babel-plugin-rewire": "1.0.0",
"babel-plugin-transform-react-constant-elements": "6.9.1",
"babel-plugin-transform-react-inline-elements": "6.8.0",
"babel-polyfill": "6.20.0",
"babel-preset-es2015": "6.18.0",
"babel-preset-react": "6.16.0",
"babel-preset-stage-2": "6.18.0",
"babel-register": "6.18.0",
"breakpoint-sass": "2.7.1",
"css-loader": "0.26.1",
"es5-shim": "4.5.9",
"eslint": "3.12.1",
"eslint-config-standard-react": "4.2.0",
"expect": "1.20.2",
"extract-text-webpack-plugin": "2.0.0-beta.4",
"fs": "0.0.1-security",
"html-webpack-plugin": "2.24.1",
"ignore-styles": "5.0.1",
"intl": "1.2.5",
"intl-locales-supported": "1.0.0",
"isomorphic-fetch": "2.2.1",
"jsdom": "9.8.3",
"ld-graph": "git+https://github.com/digibib/ld-graph.git#44119447f1f345c57347549b28d013673d1698cf",
"localstorage-polyfill": "1.0.1",
"mocha": "3.2.0",
"node-browser-environment": "2.0.8",
"node-sass": "4.5.3",
"raw-loader": "0.5.1",
"prop-types": "15.6.1",
"react": "15.6",
"react-addons-create-fragment": "15.4.1",
"react-dom": "15.6",
"react-hot-loader": "3.0.0-beta.6",
"react-intl": "2.1.5",
"react-modal": "1.5.2",
"react-paginate": "git+https://github.com/digibib/react-paginate.git#92682bf7386458abf6089c52ecf91b28b147d955",
"react-redux": "4.4.5",
"react-responsive": "1.2.1",
"react-router": "2.8.1",
"react-router-redux": "4.0.6",
"react-transition-group": "1.2.1",
"react-transform-catch-errors": "1.0.2",
"redux": "3.6.0",
"redux-form": "6.3.2",
"redux-localstorage": "1.0.0-rc4",
"redux-localstorage-filter": "0.1.1",
"redux-logger": "2.7.4",
"redux-thunk": "2.1.0",
"rimraf": "2.5.4",
"sass-loader": "4.0.2",
"standard": "8.6.0",
"style-loader": "0.13.1",
"susy": "2.2.12",
"thenby": "1.2.3",
"urijs": "1.18.4",
"webpack": "2.1.0-beta.25",
"webpack-dev-middleware": "1.8.4",
"webpack-hot-middleware": "2.13.2",
"compression-webpack-plugin": "0.3.2"
},
"dependencies": {
"bcrypt-nodejs": "0.0.3",
"body-parser": "1.15.2",
"cross-env": "3.1.3",
"express": "4.14.0",
"express-session": "1.14.2",
"express-static-gzip": "0.2.2",
"jsonld": "0.4.11",
"lucene-query-parser": "^1.1.0",
"moment": "^2.17.1",
"node-mysql": "0.4.2",
"node-uuid": "1.4.7",
"query-string": "4.2.3",
"react-datepicker": "^0.40.0",
"react-infinite-scroller": "^1.0.15",
"react-sticky-el": "^1.0.13",
"react-tooltip-component": "^0.3.0",
"react-recaptcha": "2.3.7",
"sanitize-html": "1.13.0",
"url-loader": "0.5.7",
"xml2js": "0.4.17"
}
}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.99 24.42"><title>Location24</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M17.07,3A9.91,9.91,0,0,0,2.92,3a10.21,10.21,0,0,0,0,14.29L10,24.42l7.08-7.16A10.21,10.21,0,0,0,17.07,3ZM15.65,15.85,10,21.58,4.34,15.85a8.21,8.21,0,0,1,0-11.48,7.93,7.93,0,0,1,11.31,0A8.21,8.21,0,0,1,15.65,15.85Z"/><path d="M10,5a5,5,0,1,0,5,5A5,5,0,0,0,10,5Zm0,8a3,3,0,1,1,3-3A3,3,0,0,1,10,13Z"/></g></g></svg>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 18.2 18.2" style="enable-background:new 0 0 18.2 18.2;" xml:space="preserve">
<title>film</title>
<g>
<path d="M9.1,18.2c-5,0-9.1-4.1-9.1-9.1S4.1,0,9.1,0s9.1,4.1,9.1,9.1S14.2,18.2,9.1,18.2z M9.1,1.9C5.2,1.9,2,5.1,2,9
s3.2,7.1,7.1,7.1s7.1-3.2,7.1-7.1C16.3,5.1,13.1,1.9,9.1,1.9z"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13.41 13.41"><title>arrow_down</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><polygon points="7.71 9.59 7.71 0 5.71 0 5.71 9.59 1.41 5.29 0 6.71 6.71 13.41 13.41 6.71 12 5.29 7.71 9.59"/></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13.41 13.41"><title>arrow_left</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><polygon points="8.12 1.41 6.71 0 0 6.71 6.71 13.41 8.12 12 3.83 7.71 13.41 7.71 13.41 5.71 3.83 5.71 8.12 1.41"/></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13.41 13.41"><title>arrow_right</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><polygon points="5.29 1.41 9.59 5.71 0 5.71 0 7.71 9.59 7.71 5.29 12 6.71 13.41 13.41 6.71 6.71 0 5.29 1.41"/></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13.41 13.41"><title>arrow_up</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><polygon points="0 6.71 1.41 8.12 5.71 3.83 5.71 13.41 7.71 13.41 7.71 3.83 12 8.12 13.41 6.71 6.71 0 0 6.71"/></g></g></svg>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment