some files might have been missing (?)
This commit is contained in:
parent
ef4064af3d
commit
e21d30ed6b
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
FROM spacedeck/docker-baseimage:latest
|
||||||
|
ENV NODE_ENV production
|
||||||
|
|
||||||
|
RUN mkdir -p /usr/src/app
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY package.json /usr/src/app/
|
||||||
|
RUN npm install
|
||||||
|
RUN npm install gulp-rev-replace gulp-clean gulp-fingerprint gulp-rev gulp-rev-all gulp-rev-replace
|
||||||
|
RUN npm install -g --save-dev gulp
|
||||||
|
|
||||||
|
COPY app.js Dockerfile Gulpfile.js LICENSE /usr/src/app/
|
||||||
|
COPY config /usr/src/app/config
|
||||||
|
COPY helpers /usr/src/app/helpers
|
||||||
|
COPY locales /usr/src/app/locales
|
||||||
|
COPY middlewares /usr/src/app/middlewares
|
||||||
|
COPY models /usr/src/app/models
|
||||||
|
COPY public /usr/src/app/public
|
||||||
|
COPY routes /usr/src/app/routes
|
||||||
|
COPY styles /usr/src/app/styles
|
||||||
|
COPY views /usr/src/app/views
|
||||||
|
|
||||||
|
RUN gulp all
|
||||||
|
RUN npm cache clean
|
||||||
|
|
||||||
|
CMD [ "node", "app.js" ]
|
||||||
|
|
||||||
|
EXPOSE 9666
|
||||||
|
|
33
app.js
Normal file
33
app.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
const spacedeck = require('./spacedeck')
|
||||||
|
|
||||||
|
const electron = require('electron')
|
||||||
|
const electronApp = electron.app
|
||||||
|
const BrowserWindow = electron.BrowserWindow
|
||||||
|
let mainWindow
|
||||||
|
|
||||||
|
function createWindow () {
|
||||||
|
mainWindow = new BrowserWindow({width: 1200, height: 700})
|
||||||
|
mainWindow.loadURL("http://localhost:9666")
|
||||||
|
mainWindow.on('closed', function () {
|
||||||
|
mainWindow = null
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
electronApp.on('ready', createWindow)
|
||||||
|
|
||||||
|
// Quit when all windows are closed.
|
||||||
|
electronApp.on('window-all-closed', function () {
|
||||||
|
// On OS X it is common for applications and their menu bar
|
||||||
|
// to stay active until the user quits explicitly with Cmd + Q
|
||||||
|
if (process.platform !== 'darwin') {
|
||||||
|
electronApp.quit()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
electronApp.on('activate', function () {
|
||||||
|
// On OS X it's common to re-create a window in the app when the
|
||||||
|
// dock icon is clicked and there are no other windows open.
|
||||||
|
if (mainWindow === null) {
|
||||||
|
createWindow()
|
||||||
|
}
|
||||||
|
})
|
5
bin/www
Normal file
5
bin/www
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
var app = require('../app');
|
||||||
|
var http = require('http');
|
||||||
|
var server = http.createServer(app);
|
17
electron-windows.md
Normal file
17
electron-windows.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
# Windows Electron Build
|
||||||
|
|
||||||
|
sqlite3 needs to be manually built for the iojs version that electron ships. The following code assumes electron v1.8.4.
|
||||||
|
|
||||||
|
````
|
||||||
|
npm -g install windows-build-tools
|
||||||
|
|
||||||
|
cd node_modules\sqlite3
|
||||||
|
|
||||||
|
node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.8-win32-x64
|
||||||
|
|
||||||
|
node-gyp rebuild --target=1.8.4 --target_platform=win32 --dist-url=https://atom.io/download/atom-shell --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.8-win32-x64 --msvs_version=2015
|
||||||
|
|
||||||
|
cd ..\..
|
||||||
|
````
|
||||||
|
|
35
views/partials/modal/create-space.html
Normal file
35
views/partials/modal/create-space.html
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<div class="modal" v-if="active_modal == 'create-space'" v-cloak>
|
||||||
|
<div class="modal-wrapper">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-icon btn-light btn-round close" v-on="click : close_modal()">
|
||||||
|
<span class="icon icon-cross-1"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-body labels-inline">
|
||||||
|
<div class="modal-section p-5">
|
||||||
|
What would you like to create?
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<input type="text" v-model="create_space_title" placeholder="Title">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button class="btn" v-on="click: create_space('space','whiteboard')">Whiteboard</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button class="btn" v-on="click: create_space('space','collection')">Note Collection</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button class="btn" v-on="click: create_space('space','article')">Article</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
84
views/partials/modal/login.html
Normal file
84
views/partials/modal/login.html
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<div class="modal" v-if="active_modal == 'login'" v-cloak>
|
||||||
|
<div class="modal-wrapper">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-icon btn-light btn-round close" v-on:click="close_modal()">
|
||||||
|
<span class="icon icon-cross-1"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="modal-section no-b">
|
||||||
|
|
||||||
|
<div id="account-forms-modal">
|
||||||
|
<div v-show="active_modal_view != 'signup'">
|
||||||
|
<div class="content">
|
||||||
|
<form>
|
||||||
|
<h4>Login</h4>
|
||||||
|
|
||||||
|
<div class="tight">
|
||||||
|
<div class="form-group">
|
||||||
|
<input class="input" type="text" focus-me="true" v-model="login_email" placeholder="Email">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<input class="input" type="password" v-model="login_password" placeholder="Password">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span type="submit" class="btn btn-primary btn-xl btn-block btn-round" v-on:click="login_submit_modal(login_email, login_password, $event)">
|
||||||
|
<span v-show="!loading_user">Log In</span>
|
||||||
|
<span v-show="loading_user">Logging in…</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="center alert alert-danger" v-if="login_error" v-model="login_error"></div>
|
||||||
|
|
||||||
|
<span class="btn btn-link btn-block" v-on:click="active_modal_view='signup'">Create a new account</span>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-show="active_modal_view == 'signup'">
|
||||||
|
<div class="content">
|
||||||
|
<form>
|
||||||
|
<h4>Sign Up</h4>
|
||||||
|
|
||||||
|
<div class="tight">
|
||||||
|
<div class="form-group">
|
||||||
|
<input class="input" type="text" id="user-name" v-model="name" placeholder="Name">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<input class="input" type="email" id="user-email" v-model="email" placeholder="Email">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<input class="input" id="user-password" type="password" v-model="password" placeholder="Password">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<input class="input" id="user-password-confirmation" type="password" v-model="password_confirmation" placeholder="Repeat Password">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-center" style="margin-top: -7px; margin-bottom: 30px;"><small>By signing up you agree to our <a href="/terms.html" target="_blank">TOS</a> and <a href="/privacy.html" target="_blank">Privacy Policy.</a></small><br/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<span class="btn btn-primary btn-xl btn-round btn-block" v-on:click="signup_submit_modal($event, name, email, password, password_confirmation)">
|
||||||
|
<span v-if="!creating_user">Sign Up</span>
|
||||||
|
<span v-if="creating_user">Signing Up…</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<div class="center alert alert-danger" v-if="signup_error">{{signup_error}}</div>
|
||||||
|
|
||||||
|
<span class="btn btn-link btn-block" v-on:click="active_modal_view='login'">I already have an account</span>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
36
views/partials/modal/pdfoptions.html
Normal file
36
views/partials/modal/pdfoptions.html
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<div class="modal" v-if="active_modal == 'pdfoptions'" v-cloak>
|
||||||
|
<div class="modal-wrapper">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="btn btn-icon btn-light btn-round close" v-on:click=" close_modal()">
|
||||||
|
<span class="icon icon-cross-1"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body">
|
||||||
|
<p class="lead text-center">PDF Import</p>
|
||||||
|
<div class="plans-box">
|
||||||
|
<table class="plans-table">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<p>Thumbnail and Download Link</p>
|
||||||
|
|
||||||
|
<button class="btn btn-primary btn-round btn-sm" v-on:click=" approve_pdf_upload($event, null, 'classic')">Classic Import</button>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<p>Each Page as Image, displayed as Grid</p>
|
||||||
|
<button class="btn btn-primary btn-round btn-sm" v-on:click=" approve_pdf_upload($event, pdf_export_with_zones, 'grid')">Grid Import</button><br>
|
||||||
|
<input type="checkbox" v-model="pdf_export_with_zones" /> With Zones?
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
24
views/partials/modal/space-share.html
Normal file
24
views/partials/modal/space-share.html
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<div class="modal" v-if="active_modal == 'space-share'" v-cloak>
|
||||||
|
<div class="modal-wrapper">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-icon btn-light btn-round close" v-on="click : close_modal()">
|
||||||
|
<span class="icon icon-cross-1"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="modal-section no-b">
|
||||||
|
<p class="lead">Share "{{active_space.name}}"</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-section no-b">
|
||||||
|
<p class="lead">Or Copy & Paste this Link</p>
|
||||||
|
<p>
|
||||||
|
<span class="input">{{share_base_url}}{{active_space._id}}</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
31
views/partials/modal/support.html
Normal file
31
views/partials/modal/support.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<div class="modal" v-if="active_modal == 'support'" v-cloak>
|
||||||
|
<div class="modal-wrapper">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="btn btn-icon btn-light btn-round close" v-on:click="close_modal()">
|
||||||
|
<span class="icon icon-cross-1"></span>
|
||||||
|
</button>
|
||||||
|
<h4 class="modal-title">Send Feedback</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="modal-section">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Have a question, feedback or an idea for improvement? Send us a quick message using the box below and we'll get back to you as soon as possible.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea v-model="feedback_text" class="input" autofocus></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<button class="btn btn-primary btn-round btn-sm" v-on:click="send_feedback(feedback_text)">Send Feedback</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
3
views/partials/share-dialog.html
Normal file
3
views/partials/share-dialog.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<div class="dialog-section no-b" style="width: 420px;">
|
||||||
|
<p class="lead"> Share this with others</p>
|
||||||
|
</div>
|
29
views/partials/tool/toolbar-social.html
Normal file
29
views/partials/tool/toolbar-social.html
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<div class="toolbar toolbar-social"
|
||||||
|
v-bind:class="{in : active_space_role=='viewer' || (present_mode && active_space.access_mode=='public')}"
|
||||||
|
v-if="social_bar && active_space_loaded">
|
||||||
|
<div class="btn-group dark">
|
||||||
|
|
||||||
|
<div id="share-dialog" class="dropdown bottomleft light center static" v-bind:class="{open:opened_dialog=='share'}">
|
||||||
|
<button class="btn btn-primary btn-icon-labeled" v-on:click="open_dialog('share')">
|
||||||
|
<span class="icon icon-share" style="color:white"></span>
|
||||||
|
<span class="icon-label" style="color:white"> Share </span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="dialog">
|
||||||
|
{% include "./share.html" %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="share-dialog" class="dropdown bottom light center static" v-bind:class="{open:opened_dialog=='embed'}">
|
||||||
|
<button class="btn btn-transparent btn-icon-labeled" v-on:click="open_dialog('embed')">
|
||||||
|
<span class="icon icon-embed"></span>
|
||||||
|
<span class="icon-label"> Embed </span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="dialog">
|
||||||
|
{% include "./embed.html" %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user