mirror of
https://github.com/spacedeck/spacedeck-open.git
synced 2026-01-29 22:45:25 +01:00
Compare commits
5 Commits
prep-for-u
...
a5914ab600
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5914ab600 | ||
|
|
1d7a014fd4 | ||
|
|
43577337aa | ||
|
|
eb9c767afc | ||
|
|
cf8902f3c5 |
21
Dockerfile
21
Dockerfile
@@ -1,26 +1,7 @@
|
||||
FROM node:10-alpine3.11
|
||||
FROM node:18-alpine
|
||||
|
||||
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 10.x: Web Server / API. Download: https://nodejs.org
|
||||
- Node.js 18.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,7 +8,8 @@ const path = require('path')
|
||||
const db = require('../models/db')
|
||||
const Sequelize = require('sequelize')
|
||||
const Op = Sequelize.Op
|
||||
const uuidv4 = require('uuid/v4')
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
|
||||
require('../models/db')
|
||||
|
||||
|
||||
@@ -199,6 +199,7 @@
|
||||
"tool_scribble": "Scribble",
|
||||
"tool_line": "Line",
|
||||
"tool_arrow": "Arrow",
|
||||
"tool_pan": "Pan",
|
||||
"search_media_placeholder": "Search web media…",
|
||||
"add_zone": "New Zone",
|
||||
"palette": "Palette",
|
||||
|
||||
@@ -2562,6 +2562,17 @@ 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"], $scope.active_tool)) {
|
||||
if (_.include(["zoom", "scribble", "pan"], $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 uuidv4 = require('uuid/v4');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
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 uuidv4 = require('uuid/v4');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
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 uuidv4 = require('uuid/v4');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
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 uuidv4 = require('uuid/v4');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
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 uuidv4 = require('uuid/v4');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
|
||||
router.get('/', (req, res) => {
|
||||
res.render('index', { config:config, user:req.user });
|
||||
|
||||
@@ -18,6 +18,11 @@
|
||||
|
||||
<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