mirror of
https://github.com/spacedeck/spacedeck-open.git
synced 2026-01-29 22:45:25 +01:00
Compare commits
1 Commits
dependabot
...
prep-for-u
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8da39e6271 |
21
Dockerfile
21
Dockerfile
@@ -1,7 +1,26 @@
|
||||
FROM node:18-alpine
|
||||
FROM node:10-alpine3.11
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# build audiowaveform from source
|
||||
|
||||
RUN apk add git make cmake gcc g++ libmad-dev libid3tag-dev libsndfile-dev gd-dev boost-dev libgd libpng-dev zlib-dev opus-dev
|
||||
RUN apk add zlib-static libpng-static boost-static
|
||||
|
||||
RUN apk add autoconf automake libtool gettext
|
||||
RUN wget https://github.com/xiph/flac/archive/1.3.3.tar.gz
|
||||
RUN tar xzf 1.3.3.tar.gz
|
||||
RUN cd flac-1.3.3/ && ./autogen.sh
|
||||
RUN cd flac-1.3.3/ && ./configure --enable-shared=no
|
||||
RUN cd flac-1.3.3/ && make
|
||||
RUN cd flac-1.3.3/ && make install
|
||||
|
||||
RUN git clone https://github.com/bbc/audiowaveform.git
|
||||
RUN mkdir audiowaveform/build/
|
||||
RUN cd audiowaveform/build/ && cmake -D ENABLE_TESTS=0 -D BUILD_STATIC=1 ..
|
||||
RUN cd audiowaveform/build/ && make
|
||||
RUN cd audiowaveform/build/ && make install
|
||||
|
||||
# install chromium
|
||||
RUN apk add --no-cache \
|
||||
chromium \
|
||||
|
||||
@@ -31,7 +31,7 @@ We appreciate filed issues, pull requests and general discussion.
|
||||
|
||||
Spacedeck requires:
|
||||
|
||||
- Node.js 18.x: Web Server / API. Download: https://nodejs.org
|
||||
- Node.js 10.x: Web Server / API. Download: https://nodejs.org
|
||||
- Graphicsmagick. On non-Linux, Download: http://www.graphicsmagick.org/ On Linux, install via package manager.
|
||||
- Optionally ffmpeg, audiowaveform and ghostscript. See "Optional Dependencies" below.
|
||||
|
||||
|
||||
@@ -8,8 +8,7 @@ const path = require('path')
|
||||
const db = require('../models/db')
|
||||
const Sequelize = require('sequelize')
|
||||
const Op = Sequelize.Op
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
const uuidv4 = require('uuid/v4')
|
||||
|
||||
require('../models/db')
|
||||
|
||||
|
||||
@@ -199,7 +199,6 @@
|
||||
"tool_scribble": "Scribble",
|
||||
"tool_line": "Line",
|
||||
"tool_arrow": "Arrow",
|
||||
"tool_pan": "Pan",
|
||||
"search_media_placeholder": "Search web media…",
|
||||
"add_zone": "New Zone",
|
||||
"palette": "Palette",
|
||||
@@ -330,4 +329,4 @@
|
||||
"tool_space_help_part_one": "Use the toolbar to add content.",
|
||||
"tool_space_help_part_two": "You can also drop images or sound and video files.",
|
||||
"tool_delete_space": "Really delete \"%s\"?"
|
||||
}
|
||||
}
|
||||
|
||||
90
package-lock.json
generated
90
package-lock.json
generated
@@ -17,14 +17,14 @@
|
||||
"config": "3.3.9",
|
||||
"cookie-parser": "~1.4.3",
|
||||
"ejs": "3.1.9",
|
||||
"execSync": "*",
|
||||
"execSync": "latest",
|
||||
"express": "^4.16.4",
|
||||
"file-type": "^16.5.0",
|
||||
"glob": "10.3.3",
|
||||
"gm": "^1.23.1",
|
||||
"helmet": "^7.0.0",
|
||||
"i18n-2": "0.7.3",
|
||||
"log-timestamp": "*",
|
||||
"log-timestamp": "latest",
|
||||
"mock-aws-s3": "^4.0.2",
|
||||
"moment": "^2.19.3",
|
||||
"morgan": "^1.9.1",
|
||||
@@ -1647,6 +1647,11 @@
|
||||
"color-support": "bin.js"
|
||||
}
|
||||
},
|
||||
"node_modules/colorette": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
|
||||
"integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
|
||||
},
|
||||
"node_modules/combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
@@ -6345,7 +6350,8 @@
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
@@ -6414,30 +6420,28 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.31",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
||||
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"version": "8.2.15",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
|
||||
"integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.6",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
"colorette": "^1.2.2",
|
||||
"nanoid": "^3.1.23",
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss/node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/pretty-hrtime": {
|
||||
@@ -7844,14 +7848,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-resolve": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
|
||||
@@ -10583,6 +10579,11 @@
|
||||
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
|
||||
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
|
||||
},
|
||||
"colorette": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
|
||||
"integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
@@ -14292,7 +14293,8 @@
|
||||
"picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"picomatch": {
|
||||
"version": "2.3.1",
|
||||
@@ -14340,13 +14342,20 @@
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "8.4.31",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
|
||||
"integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
|
||||
"version": "8.2.15",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz",
|
||||
"integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==",
|
||||
"requires": {
|
||||
"nanoid": "^3.3.6",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
"colorette": "^1.2.2",
|
||||
"nanoid": "^3.1.23",
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"pretty-hrtime": {
|
||||
@@ -15409,11 +15418,6 @@
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
|
||||
},
|
||||
"source-map-resolve": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
|
||||
|
||||
@@ -2562,17 +2562,6 @@ var SpacedeckSections = {
|
||||
this.opened_dialog = "none";
|
||||
},
|
||||
|
||||
start_pan: function(evt) {
|
||||
this.deselect();
|
||||
if (this.active_tool == "pan") {
|
||||
this.active_tool = "pointer";
|
||||
} else {
|
||||
this.active_tool = "pan";
|
||||
}
|
||||
this.opened_dialog = "none";
|
||||
|
||||
},
|
||||
|
||||
start_drawing_scribble: function(evt) {
|
||||
this.deselect();
|
||||
if (this.active_tool == "scribble") {
|
||||
|
||||
@@ -733,7 +733,7 @@ function setup_whiteboard_directives() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_.include(["zoom", "scribble", "pan"], $scope.active_tool)) {
|
||||
if (_.include(["zoom", "scribble"], $scope.active_tool)) {
|
||||
// tools that stay active after use
|
||||
this.mouse_state = "idle";
|
||||
$scope.mouse_state = this.mouse_state;
|
||||
|
||||
@@ -14,7 +14,7 @@ var router = express.Router();
|
||||
const db = require('../../models/db');
|
||||
const Sequelize = require('sequelize');
|
||||
const Op = Sequelize.Op;
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
const uuidv4 = require('uuid/v4');
|
||||
|
||||
router.get('/:membership_id/accept', function(req, res, next) {
|
||||
if (req.user) {
|
||||
|
||||
@@ -6,7 +6,7 @@ const os = require('os');
|
||||
const db = require('../../models/db');
|
||||
const Sequelize = require('sequelize');
|
||||
const Op = Sequelize.Op;
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
const uuidv4 = require('uuid/v4');
|
||||
|
||||
var payloadConverter = require('../../helpers/artifact_converter');
|
||||
var redis = require('../../helpers/redis');
|
||||
|
||||
@@ -3,7 +3,7 @@ var config = require('config');
|
||||
const db = require('../../models/db');
|
||||
const Sequelize = require('sequelize');
|
||||
const Op = Sequelize.Op;
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
const uuidv4 = require('uuid/v4');
|
||||
|
||||
var redis = require('../../helpers/redis');
|
||||
var mailer = require('../../helpers/mailer');
|
||||
|
||||
@@ -3,7 +3,7 @@ var config = require('config');
|
||||
const db = require('../../models/db');
|
||||
const Sequelize = require('sequelize');
|
||||
const Op = Sequelize.Op;
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
const uuidv4 = require('uuid/v4');
|
||||
|
||||
var redis = require('../../helpers/redis');
|
||||
var mailer = require('../../helpers/mailer');
|
||||
|
||||
@@ -12,7 +12,7 @@ const _ = require('underscore');
|
||||
const db = require('../models/db');
|
||||
const Sequelize = require('sequelize');
|
||||
const Op = Sequelize.Op;
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
const uuidv4 = require('uuid/v4');
|
||||
|
||||
router.get('/', (req, res) => {
|
||||
res.render('index', { config:config, user:req.user });
|
||||
|
||||
@@ -18,11 +18,6 @@
|
||||
|
||||
<button class="btn btn-divider"></button>
|
||||
|
||||
<button class="btn btn-icon-labeled btn-transparent" v-on:click="start_pan()" v-bind:class="{active:active_tool=='pan'}" title="<%=__("tool_pan")%>">
|
||||
<span class="icon icon-move"></span>
|
||||
<span class="icon-label"><%=__("tool_pan")%></span>
|
||||
</button>
|
||||
|
||||
<div class="dropdown top left light" v-bind:class="{open:opened_dialog=='shapes'}">
|
||||
<div class="btn-collapse in" title="<%=__("tool_shape")%>">
|
||||
<button class="btn btn-transparent btn-icon-labeled" v-bind:class="{open:opened_dialog=='shapes'}" v-on:click="open_dialog('shapes')">
|
||||
|
||||
Reference in New Issue
Block a user