Commit b85aa245 authored by Wolfgang Knopki's avatar Wolfgang Knopki
Browse files

Merge branch 'mnt' into 'master'

Mnt

See merge request !2
parents 2fc14e1e fff0340f
<!doctype html>
<html class="no-js">
<head>
<meta charset="utf-8">
<title>Spacedeck Open – {% block title %}{% endblock %}</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<link href="[[ '/images/favicon.png' | cdn ]]" rel="icon" type="image/x-icon" />
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,700,600,800,300|Montserrat:400,700|EB+Garamond|Vollkorn|Lato|Roboto|Source+Code+Pro|Ubuntu|Raleway|Playfair+Display|Crimson+Text' rel='stylesheet' type='text/css'>
<link type="text/css" rel="stylesheet" href="https://fast.fonts.net/cssapi/ee1a3484-4d98-4f9f-9f55-020a7b37f3c5.css"/>
<link rel="stylesheet" href="[[ '/stylesheets/style.css' | cdn ]]">
<script> var csrf_token = '[[ csrf_token ]]'; </script>
<script src="[[ '/javascripts/jquery-2.1.4.min.js' | cdn ]]"></script>
</head>
<body>
<!--[if lt IE 10]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->
<header id="landing-header" class="header">
<div class="header-left">
<a class="btn btn-transparent btn-nude" href="[[config.endpoint]]/"><img src="[[ '/images/sd5-logo.svg' | cdn ]]" width="190"></a>
</div>
<div class="header-right pull-right">
{% if !user %}
<span class="btn-group dark round">
{% if (locale != "de") %}<a href="/t/de" rel="alternate" hreflang="de" class="btn btn-transparent btn-md">Deutsch</a>{% endif %}
{% if (locale != "en") %}<a href="/t/en" rel="alternate" hreflang="en" class="btn btn-transparent btn-md">English</a>{% endif %}
{% if (locale != "fr") %}<a href="/t/fr" rel="alternate" hreflang="fr" class="btn btn-transparent btn-md">Français</a>{% endif %}
</span>
<a class="btn btn-md btn-dark btn-round" href="/login">[[__("login")]]</a>
<a class="btn btn-md btn-blue btn-round" href="/signup">[[__("signup")]]</a>
{% else %}
<a class="btn btn-md btn-blue btn-round" href="/spaces">[[__("spaces")]]</a>
<a class="btn btn-md btn-dark btn-round" href="/logout">[[__("logout")]]</a>
{% endif %}
</div>
</header>
{% block content %}{% endblock %}
<div class="footer">
<p>
<div class="col-xs-6">
<a href="/contact">[[ __("contact") ]]</a>
<span style="color:#888">&copy; 2011–2018 The Spacedeck Open Developers <a href="https://github.com/spacedeck/spacedeck-open">https://github.com/spacedeck/spacedeck-open</a></span>
</div>
</p>
</div>
</body>
</html>
{% extends 'layouts/outer.html' %}
{% block title %}[[ __("not_found") ]]{% endblock %}
{% block content %}
<div id="landing" style="padding-top:200px;margin:auto;width:300px;">
<h1>[[__("not_found")]]</h1>
<h1><%=__("not_found")%></h1>
</div>
{% endblock %}
<div id="team" class="dialog in" style="padding:100px;z-index:20000;position:absolute;width:100%;min-height:100%;background-color:#eee" v-if="active_view == 'account' && user" v-cloak>
<header id="dialog-header" class="header" v-if="(active_view == 'account' && user)" v-cloak>
<div v-cloak class="header-left pull-left">
<a class="btn btn-dark btn-md btn-round btn-icon" href="/spaces">
<span class="icon icon-svg icon-sd6"></span>
</a>
<h5>Edit Account</h5>
</div>
<div class="header-right pull-right">
<a class="btn btn-dark btn-md btn-round btn-icon" href="/spaces">
<span class="icon icon-cross-0"></span>
</a>
</div>
</header>
<a href="/spaces" class="btn btn-round btn-icon btn-dark btn-md pull-right" style="position:absolute;top:30px;right:30px"><span class="icon icon-cross-0"></span></a>
<div class="dialog-freestanding dialog in" v-if="active_view == 'account' && user" v-cloak>
<div class="dialog-tabs" style="margin:auto">
<div class="dialog-tab" v-bind:class="{open:account=='profile'}" v-on:click="account='profile'"><span>[[__("profile_caption")]]</span></div>
<div class="dialog-tab" v-bind:class="{open:account=='language'}" v-on:click="account='language'"><span>[[__("language_caption")]]</span></div>
<div class="dialog-tab" v-bind:class="{open:account=='notifications'}" v-on:click="account='notifications'"><span>[[__("notifications_caption")]]</span></div>
<div class="dialog-tab" v-if="user.account_type=='email'" v-bind:class="{open:account=='password'}" v-on:click="account='password'"><span>[[__("password_caption")]]</span></div>
<div class="dialog-tab" v-bind:class="{open:account=='terminate'}" v-on:click="account='terminate'"><span>[[__("terminate_caption")]]</span></div>
<div class="dialog-tab" v-bind:class="{open:account=='profile'}" v-on:click="account='profile'"><span><%=__("profile_caption")%></span></div>
<div class="dialog-tab" v-bind:class="{open:account=='language'}" v-on:click="account='language'"><span><%=__("language_caption")%></span></div>
<div class="dialog-tab" v-bind:class="{open:account=='notifications'}" v-on:click="account='notifications'"><span><%=__("notifications_caption")%></span></div>
<div class="dialog-tab" v-bind:class="{open:account=='password'}" v-on:click="account='password'"><span><%=__("password_caption")%></span></div>
<div class="dialog-tab" v-bind:class="{open:account=='terminate'}" v-on:click="account='terminate'"><span><%=__("terminate_caption")%></span></div>
</div>
<div class="dialog-section text-left" style="background-color:#f5f5f5;padding-top:40px;padding-bottom:40px">
<div class="dialog-section text-left">
<div class="collapse" v-bind:class="{in:account=='profile'}">
<div class="labels-inline relative" style="margin-bottom:40px">
<div class="form-group">
......@@ -30,20 +44,29 @@
<div class="form-group">
<label class="file btn btn-md btn-darken" style="margin-right: 5px;">
<input type="file" v-on:change="save_user_avatar_image(this)">
<span v-if="!uploading_avatar">[[__("upload_avatar")]]</span>
<span v-if="uploading_avatar">[[__("uploading_avatar")]]</span>
<span v-if="!uploading_avatar"><%=__("upload_avatar")%></span>
<span v-if="uploading_avatar"><%=__("uploading_avatar")%></span>
</label>
<p class="message">[[__("avatar_dimensions")]]</p>
<p class="message"><%=__("avatar_dimensions")%></p>
</div>
</div>
</div>
</div>
<div>
<div class="form-group">
<label class="label">API Token</label>
<input
type="text"
id="api-token"
class="input input-white no-b"
v-model="user.api_token"
placeholder="secret key">
</div>
<div class="form-group">
<label class="label" >[[__("profile_name")]]</label>
<label class="label" ><%=__("profile_name")%></label>
<input type="text" id="user-nickname"
pattern=".{3,}"
required title="3 characters minimum"
......@@ -52,41 +75,18 @@
</div>
<div class="form-group">
<label class="label">[[__("profile_email")]]</label>
<label class="label"><%=__("profile_email")%></label>
<input
type="email"
id="new-email"
v-bind:class="{disabled: user.account_type=='google'}"
v-bind:disabled="user.account_type=='google'"
class="input input-white no-b"
type="email"
v-model="user.email"
v-on:change="user.email_changed=true"
placeholder="mail@example.com">
<button class="btn btn-md btn-darken" v-if="user.account_type=='email'" v-on:click=" save_user()" style="margin-top:20px">[[__("ok")]]</button>
</div>
<div class="form-group" v-if="!user.confirmed_at">
<p v-if="!user.confirmed_at && !account_confirmed_sent">[[__("confirmation_sent_long")]]</p>
<span
class="btn btn-xs btn-stroke-darken btn-round"
v-on:click=" confirm_again()"
v-if="!user.confirmed_at && !account_confirmed_sent"
>[[__("send_again")]]</span>
<p v-if="account_confirmed_sent">
<span class="icon icon-check"></span> <span>[[__("confirmation_sent_another")]]</span>
</p>
</div>
<div class="form-group">
<label class="label">Spacedeck.com Data Import</label>
<p v-if="!importables">No .ZIP files found in Spacedeck application folder.</p>
<ul>
<li v-for="f in importables">{{f}} <button v-on:click="start_zip_import(f)">Start Import</button></li>
</ul>
<button class="btn btn-md btn-dark" v-on:click="save_user()">Save</button>
</div>
</div>
</div>
......@@ -105,6 +105,12 @@
<label class="radio" v-bind:class="{checked: user.prefs_language=='fr'}" v-on:click="save_user_language('fr')">
<input type="radio" id="user-preferences_language" name="language" value="fr"><span>Français</span>
</label>
<label class="radio" v-bind:class="{checked: user.prefs_language=='oc'}" v-on:click="save_user_language('oc')">
<input type="radio" id="user-preferences_language" name="language" value="oc"><span>Occitan</span>
</label>
<label class="radio" v-bind:class="{checked: user.prefs_language=='es'}" v-on:click="save_user_language('es')">
<input type="radio" id="user-preferences_language" name="language" value="es"><span>Español</span>
</label>
</div>
</div>
......@@ -114,25 +120,25 @@
<label class="checkbox"
v-bind:class="{checked: user.prefs_email_notifications}"
v-on:click="account_save_user_notifications(!user.prefs_email_notifications);">
<span>[[__('notifications_option_chat')]]</span>
<span><%=__('notifications_option_chat')%></span>
</label>
</div>
</div>
</div>
<div class="collapse" v-bind:class="{in:account=='password'}">
<h4 class="modal-title">Change Password</h4>
<h4>Change Password</h4>
<div class="modal-section labels-inline">
<div class="form-group">
<label class="label">[[__("current_password")]]</label>
<label class="label"><%=__("current_password")%></label>
<input id="current-password" class="input input-white no-b" v-model="password_change_current" type="password">
</div>
<div class="form-group">
<label class="label">[[__("new_password")]]</label>
<label class="label"><%=__("new_password")%></label>
<input id="new-password" class="input input-white no-b" v-model="password_change_new" type="password">
</div>
<div class="form-group">
<label class="label">[[__("verify_password")]]</label>
<label class="label"><%=__("verify_password")%></label>
<input id="new-password-confirmation" class="input input-white no-b" v-model="password_change_new_confirmation" type="password">
</div>
......@@ -140,38 +146,36 @@
</div>
<div class="modal-footer">
<div class="btn-cluster">
<button
class="btn btn-transparent btn-block"
class="btn btn-dark btn-md"
v-on:click="save_user_password(password_change_current, password_change_new, password_change_new_confirmation);" >
[[__("change_password")]]
<%=__("change_password")%>
</button>
</div>
</div>
</div>
<div class="collapse" v-bind:class="{in:account=='terminate'}">
<div class="">
<p>[[__("terminate_warning")]]</p>
<p>[[__("terminate_warning2")]]</p>
</div>
<div class="labels-inline" v-if="user.account_type == 'email'">
<h4>Terminate Account</h4>
<div class="modal-section labels-inline">
<div class="form-group">
<label class="label">[[__("current_password")]]</label>
<label class="label"><%=__("current_password")%></label>
<input v-model="account_remove_password" class="input input-white no-b" type="password">
</div>
<div class="form-group">
<label class="label">[[__("terminate_reason")]]</label>
<label class="label"><%=__("terminate_reason")%></label>
<textarea class="input input-white no-b" v-model="account_remove_feedback"></textarea>
<p class="message">[[__("terminate_reason_caption")]]</p>
<p class="message"><%=__("terminate_reason_caption")%></p>
</div>
<div class="center alert alert-danger" v-if="account_remove_error">{{account_remove_error}}</div>
</div>
<button class="btn btn-transparent btn-block" v-on:click="remove_account(account_remove_password, account_remove_feedback)">[[__("terminate_terminate")]]</button>
<div class="modal-section labels-inline">
<div class="center alert alert-danger" v-if="account_remove_error">{{account_remove_error}}</div>
</div>
<div class="modal-footer">
<button class="btn btn-stroke-darken btn-md" v-on:click="remove_account(account_remove_password, account_remove_feedback)">Terminate Account</button>
</div>
</div>
</div>
</div>
<header id="folder-header" class="header" v-if="(active_view == 'folders' && active_folder)" v-cloak>
<div v-cloak class="header-left pull-left">
<a class="btn btn-stroke-darken btn-md btn-round btn-icon" href="/spaces">
<span class="icon icon-home"></span>
<a class="btn btn-dark btn-md btn-round btn-icon" href="/spaces">
<span class="icon icon-svg icon-sd6"></span>
</a>
<button v-if="logged_in && (active_space_role == 'editor' || active_space_role == 'admin')" class="btn btn-primary btn-md btn-round" v-on:click="create_space('space')">[[ __('create_space') ]]</button>
<button v-if="logged_in && (active_space_role == 'editor' || active_space_role == 'admin')" class="btn btn-dark btn-md btn-round" v-on:click="create_space('space')"><%= __('create_space') %></button>
<button v-if="logged_in && (active_space_role == 'editor' || active_space_role == 'admin')" class="btn btn-stroke-darken btn-md btn-round" v-on:click="create_space('folder')">
<span v-bind:class="{'disabled-pro':!is_pro(user)}">[[ __('create_folder') ]]</span>
<span><%= __('create_folder') %></span>
</button>
</div>
<div class="header-right pull-right">
<div class="dropdown top light m-r-20 compact-hidden" v-bind:class="{open : active_dropdown=='folder_sorting'}">
<label class="relative compact-hidden" v-if="logged_in">
<span class="icon icon-sm icon-zoom no-events absolute-top-left" style="margin: 5px;"></span>
<input id="folder-search"
type="search" name="search"
style="padding-left: 40px !important; margin-right: 10px;"
placeholder="<%= __('search') %>"
class="input input-md input-white input-round no-b w-2"
v-model="folder_spaces_search" v-on:change="search_spaces">
</label>
<div class="dropdown top light m-r-20 compact-hidden" v-bind:class="{open : active_dropdown=='folder_sorting'}" v-if="logged_in">
<button class="btn btn-sm btn-nude" v-on:click="activate_dropdown('folder_sorting')">
<span>[[ __('sort_by') ]]</span>:
<b v-if="folder_sorting=='updated_at'">[[ __('last_modified') ]]</b>
<b v-if="folder_sorting=='name'">[[ __('title') ]]</b>
<b v-if="folder_sorting=='space_type'">[[ __('type') ]]</b>
<span><%= __('sort_by') %></span>:
<b v-if="folder_sorting=='updated_at'"><%= __('last_modified') %></b>
<b v-if="folder_sorting=='name'"><%= __('title') %></b>
<b v-if="folder_sorting=='space_type'"><%= __('type') %></b>
</button>
<div class="dropdown-menu" role="menu">
<ul class="select-list">
<li v-bind:class="{checked:folder_sorting=='updated_at'}"
v-on:click="set_folder_sorting('updated_at',true)">
<span>[[ __('last_modified') ]]</span>
<span><%= __('last_modified') %></span>
</li>
<li v-bind:class="{checked:folder_sorting=='name'}"
v-on:click="set_folder_sorting('name',false)">
<span>[[ __('title') ]]</span>
<span><%= __('title') %></span>
</li>
<li v-bind:class="{checked:folder_sorting=='space_type'}"
v-on:click="set_folder_sorting('space_type',false)">
<span>[[ __('type') ]]</span>
<span><%= __('type') %></span>
</li>
</ul>
</div>
</div>
</div>
<label class="relative compact-hidden">
<span class="icon icon-sm icon-zoom no-events absolute-top-left" style="margin: 5px;"></span>
<input id="folder-search"
type="search" name="search"
style="padding-left: 40px !important; margin-right: 10px;"
placeholder="[[ __('search') ]]"
class="input input-md input-white input-round no-b w-2"
v-model="folder_spaces_search" v-on:change="search_spaces">
</label>
<button class="btn btn-stroke-darken btn-md btn-round" v-if="!user.confirmed_at" v-on:click="confirm_again()">
<span v-if="!account_confirmed_sent">[[ __('email_unconfirmed') ]]</span>
<span v-if="account_confirmed_sent">[[ __('confirmation_sent') ]]</span>
</button>
<div class="header-right pull-right">
<div class="dropdown top right light" v-bind:class="{open: active_dropdown=='account'}">
<button
class="profile-avatar btn btn-md btn-icon btn-darken btn-round"
class="profile-avatar btn btn-md btn-icon btn-dark btn-round"
v-if="logged_in"
v-bind:style="background_image_style([user.avatar_thumb_uri])"
v-bind:class="{'has-avatar-image':!!user.avatar_thumb_uri}" v-on:click="show_account();">
<span class="icon icon-user" v-if="logged_in && !user.avatar_thumb_uri"></span></button>
......@@ -65,42 +60,27 @@
<li v-if="user.team && is_admin(user)">
<a href="/team">
<span class="icon icon-sm icon-user-group"></span>
<span>[[ __('edit_team') ]]</span>
<span><%= __('edit_team') %></span>
</a>
</li>
<li>
<a href="/account">
<span class="icon icon-sm icon-user"></span>
<span>[[ __('edit_account') ]]</span>
<span><%= __('edit_account') %></span>
</a>
</li>
<li v-on:click="activate_modal('support')">
<span>
<span class="icon icon-sm icon-info"></span>
<span>[[ __('support') ]]</span>
</span>
</li>
<li v-on:click="logout()">
<span>
<span class="icon icon-sm icon-logout"></span>
<span>[[ __('log_out') ]]</span>
<span><%= __('log_out') %></span>
</span>
</li>
</ul>
</div>
</div>
<div class="btn-group dark round" id="meta-toggle" style="margin-right:10px">
<button class="btn btn-md btn-transparent btn-icon btn-icon" v-on:click="toggle_meta()">
<span class="jewel" style="color: white; background-color: red" v-if="meta_unseen>0">{{meta_unseen}}</span>
<span class="icon icon-menu"></span>
</button>
</div>
</div>
</header>
......@@ -111,46 +91,41 @@
<div id="folder-breadcrumb">
<a v-for="item in active_space_path" type="button" class="btn btn-sm btn-transparent" href="/{{item.space_type}}s/{{item._id}}" v-sd-droppable="handle_folder_drop;item">
<span>{{item.name}}</span>
<span class="seperator">/</span>
</a>
<span v-if="logged_in" v-for="item in active_space_path" class="btn btn-sm btn-transparent" v-sd-droppable="handle_folder_drop;item">
<a href="/{{item.space_type}}s/{{item._id}}">{{item.name}}</a>&nbsp;</span>
<a v-if="(active_space_role != 'admin')" type="button" class="btn btn-sm btn-transparent">
<span>{{active_folder.name}}</span>
</a>
<div class="dropdown top light" v-bind:class="{open:active_dropdown=='breadcrumb'}" v-if="(active_folder._id != user.home_folder_id) && ((active_space_role == 'admin') || (active_space_role == 'editor'))">
<div class="dropdown top light" v-bind:class="{open:active_dropdown=='breadcrumb'}" v-if="(active_folder._id != user.home_folder_id) && ((active_space_role == 'admin'))">
<button type="button" class="btn btn-sm btn-transparent btn-dropdown" data-toggle="dropdown" v-on:click=" activate_dropdown('breadcrumb')">
<span>{{active_folder.name}}</span>
</button>
<div class="dropdown-menu" v-if="active_folder && active_folder._id != user.home_folder_id">
<ul class="select-list">
<li><span class="tile-rename" v-on:click="rename_folder(active_folder)">[[__("rename")]]</span></li>
<li v-if="active_space_role == 'admin'"><span class="tile-share" v-on:click="activate_access()">[[__("share")]]</span></li>
<li><a v-on:click=" open_url('[[config.endpoint]]/api/spaces/'+active_folder._id+'/list')" target="_blank">[[__("list")]]</a></li>
<li><span class="tile-rename" v-on:click="rename_folder(active_folder)"><%=__("rename")%></span></li>
<li v-if="active_space_role == 'admin'"><span class="tile-share" v-on:click="activate_access()"><%=__("share")%></span></li>
</ul>
</div>
</div>
<div v-if="active_folder._id == user.home_folder_id">
<span>[[ __('home') ]]</span>
<span><%= __('home') %></span>
</div>
</div>
<div id="folder-empty" v-if="(active_profile_spaces.length == 0)">
<div>
<p>[[ __('no_spaces_yet') ]]</p>
<p><%= __('no_spaces_yet') %></p>
</div>
</div>
<div id="folder-empty" v-if="folder_spaces_filter">
<div v-if="active_profile_spaces | empty?">
<p><b>"{{folder_spaces_filter}}"</b> <br/>[[ __('search_no_results') ]]</p>
<button type="button" class="btn btn-md btn-round btn-stroke-darken events" v-on:click=" folder_spaces_filter = ''">[[ __('search_clear') ]]</button>
<p><b>"{{folder_spaces_filter}}"</b> <br/><%= __('search_no_results') %></p>
<button type="button" class="btn btn-md btn-round btn-stroke-darken events" v-on:click=" folder_spaces_filter = ''"><%= __('search_clear') %></button>
</div>
</div>
<div id="folder-grid">
......@@ -161,7 +136,14 @@
draggable="true"
class="item" v-bind:class="item.space_type"
v-bind:style="{'z-index': (active_profile_spaces.length - $index)}">
<a href="/{{item.space_type}}s/{{item._id}}">
<!-- anonymous editors can go edit spaces in a folder -->
<a href="/s/{{item.edit_hash}}-{{item.edit_slug}}" v-if="active_space_role=='editor' && !logged_in">
<span class="item-thumbnail thumbnail-loading" v-if="item.space_type=='space'"></span>
<span class="item-thumbnail" v-bind:style="space_thumbnail_style(item)"></span>
</a>
<a v-if="active_space_role=='viewer' || logged_in" href="/{{item.space_type}}s/{{item._id}}">
<span class="item-thumbnail thumbnail-loading" v-if="item.space_type=='space'"></span>
<span class="item-thumbnail" v-bind:style="space_thumbnail_style(item)"></span>
</a>
......@@ -174,9 +156,8 @@
<div class="dropdown-menu" role="menu">
<ul class="select-list">
<li v-on:click="duplicate_space(item)"><span><span class="icon icon-sm icon-duplicate"></span>[[ __('duplicate') ]]</span></li>
<li v-on:click="rename_space(item)"><span><span class="icon icon-sm icon-tag"></span>[[ __('rename') ]]</span></li>
<li v-on:click="delete_space(item)"><span><span class="icon icon-sm icon-trash"></span>[[ __('delete') ]]</span></li>
<li v-on:click="rename_space(item)"><span><span class="icon icon-sm icon-tag"></span><%= __('rename') %></span></li>
<li v-on:click="delete_space(item)"><span><span class="icon icon-sm icon-trash"></span><%= __('delete') %></span></li>
</ul>
</div>
</div>
......
<header id="landing-header" class="header" v-cloak v-if="(active_view == 'login' || active_view == 'signup' || active_view == 'password-reset' || active_view == 'password-confirm')">
<div class="header-left">
<a class="btn btn-transparent btn-nude" href="/"><img src="/images/sd5-logo.svg" width="190"></a>
<a class="btn btn-transparent btn-nude" href="/"><img src="/images/sd6-logo-black.svg" width="190"></a>
</div>
<div class="header-right pull-right">
<span class="btn-group dark round">
{% if (locale != "de") %}<a href="/t/de?r={{active_view}}" class="btn btn-transparent btn-md">Deutsch</a>{% endif %}
{% if (locale != "en") %}<a href="/t/en?r={{active_view}}" class="btn btn-transparent btn-md">English</a>{% endif %}
{% if (locale != "fr") %}<a href="/t/fr?r={{active_view}}" class="btn btn-transparent btn-md">Français</a>{% endif %}
</span>
<a class="btn btn-md btn-dark btn-round" href="/login">[[__("login")]]</a>
<a class="btn btn-md btn-blue btn-round" href="/signup">[[__("signup")]]</a>
<a v-if="active_view != 'login'" class="btn btn-md btn-dark btn-round" href="/login"><%= __("login") %></a>
<a v-if="active_view != 'signup'" class="btn btn-md btn-dark btn-round" href="/signup"><%= __("signup") %></a>
</div>
</header>
......@@ -23,30 +17,26 @@
<div id="login" v-bind:class="{active : active_view == 'login'}">
<div class="content">
<form v-on:submit="login_submit(user_forms_email, login_password, $event)">
<span class="btn btn-xs btn-darken pull-right" v-on:click="login_google();">[[__("login_google")]]</span>
<h4>[[__("login")]]</h4>
<h3>Login</h3>
<div class="tight">
<div class="form-group">
<input class="input" name="email" type="email" required v-model="user_forms_email" placeholder="[[__("email")]]">
<input class="input" name="email" type="email" required v-model="user_forms_email" placeholder="<%=__("email")%>">
</div>
<div class="form-group">
<input class="input" name="password" type="password" required v-model="login_password" placeholder="[[__("password")]]">
<input class="input" name="password" type="password" required v-model="login_password" placeholder="<%=__("password")%>">
</div>
</div>
<button type="submit" class="btn btn-primary btn-block">
<span v-show="!loading_user">[[__("login")]]</span>
<span v-show="loading_user">[[__("logging_in")]]</span>
<button type="submit" class="btn btn-dark btn-block">
<span v-show="!loading_user">Login</span>
<span v-show="loading_user">Logging in</span>
</button>
<div class="center alert alert-danger" v-if="login_error">{{login_error}}</div>
<div class="pull-right">
<a class="btn btn-xs btn-darken" href="/signup">[[__("signup")]]</a>&nbsp;
<a class="btn btn-xs btn-darken" href="/password-reset">[[__("reset_password")]]</a>
<div style="margin-top:2em">
<a href="/password-reset">Forgot Password</a>
</div>
</form>
</div>
......@@ -54,45 +44,42 @@
<div id="signup" v-bind:class="{active : active_view == 'signup'}">
<div class="content">
<form v-on:submit="signup_submit($event, user_forms_name, user_forms_email, signup_password, signup_password_confirmation)">
<span class="btn btn-xs btn-darken pull-right" v-on:click="login_google();">[[__("login_google")]]</span>
<h4>[[__("signup")]]</h4>
<form v-on:submit="signup_submit($event, user_forms_name, user_forms_email, signup_password, signup_password_confirmation, signup_invite_code)">
<h4><%=__("signup")%></h4>
<div class="tight">
<div class="form-group">
<input class="input" type="text" id="user-name" v-model="user_forms_name" placeholder="[[__("name")]]" v-focus autofocus>
<input class="input" type="email" required id="user-email" v-model="user_forms_email" placeholder="<%=__("email")%>" autofocus v-focus>
</div>
<div class="form-group">
<input class="input" id="user-password" required type="password" v-model="signup_password" placeholder="<%=__("password")%>">
</div>
<div class="tight">
<div class="form-group">
<input class="input" type="email" required id="user-email" v-model="user_forms_email" placeholder="[[__("email")]]">
<input class="input" id="user-password-confirmation" required type="password" v-model="signup_password_confirmation" placeholder="Repeat Password">
</div>
</div>
<div class="tight">
<div class="form-group">
<input class="input" id="user-password" required type="password" v-model="signup_password" placeholder="[[__("password")]]">
<input class="input" type="text" id="user-name" v-model="user_forms_name" placeholder="Pick a username">
</div>
<div class="form-group">
<input class="input" id="user-password-confirmation" required type="password" v-model="signup_password_confirmation" placeholder="[[__("password_confirmation")]]">
<input class="input" id="invite-code" required type="text" v-model="signup_invite_code" placeholder="Beta Invite Code">
</div>
</div>
<div style="margin-top: -7px; margin-bottom: 7px;"><small>By signing up you agree to our <a href="/terms" target="_blank">TOS</a> and <a href="/privacy" target="_blank">Privacy Policy.</a></small><br/>
</div>
<!--div style="margin-top: -7px; margin-bottom: 7px;"><small>By signing up you agree to our <a href="/terms" target="_blank">TOS</a> and <a href="/privacy" target="_blank">Privacy Policy.</a></small><br/>
</div-->
<button class="btn btn-primary btn-block">
<span v-if="!creating_user">[[__("signup")]]</span>
<span v-if="creating_user">[[__("signing_up")]]</span>
<button class="btn btn-dark btn-block">
<span v-if="!creating_user"><%=__("signup")%></span>
<span v-if="creating_user"><%=__("signing_up")%></span>
</button>
<div class="center alert alert-danger" style="width:100%;" v-if="signup_error">{{signup_error}}</div>
<a class="btn btn-link btn-block" href="/login" style="margin-top: 20px">[[__("login")]]</a>
</form>
</div>
</div>
......@@ -103,16 +90,16 @@
<h4>Password Recovery</h4>
<div class="tight">
<div class="form-group">
<input class="input" type="email" id="user-email" v-model="reset_email" placeholder="[[__("email")]]">
<input class="input" type="email" id="user-email" v-model="reset_email" placeholder="<%=__("email")%>">
</div>
</div>
<div class="text-center alert alert-danger" v-if="password_reset_error">{{password_reset_error}}</div>
<button class="btn btn-primary btn-block" v-on:click="password_reset_submit($event, reset_email)">[[__("reset_password")]]</button>
<button class="btn btn-dark btn-block" v-on:click="password_reset_submit($event, reset_email)"><%=__("reset_password")%></button>
</form>
</div>
<div class="content" v-if="password_reset_send==true">
<h4>[[__("password_confirmation")]]</h4>
[[__("password_check_inbox")]]
<h4>Reset Password</h4>
Please check your email inbox.
</div>
</div>
......@@ -123,16 +110,16 @@
<div class="tight">
<div class="form-group">
<input class="input" id="user-password" type="password" v-model="signup_password" placeholder="[[__("password")]]">
<input class="input" id="user-password" type="password" v-model="signup_password" placeholder="New Password">
</div>
<div class="form-group">
<input class="input" id="user-password" type="password" v-model="signup_password_confirmation" placeholder="[[__("password_confirmation")]]">
<input class="input" id="user-password" type="password" v-model="signup_password_confirmation" placeholder="Repeat Password">
</div>
</div>
<div class="text-center alert alert-danger" v-if="password_reset_confirm_error">{{password_reset_confirm_error}}</div>
<button class="btn btn-primary btn-block" v-on:click="password_reset_confirm($event, signup_password, signup_password_confirmation)">[[__("save")]]</button>
<button class="btn btn-dark btn-block" v-on:click="password_reset_confirm($event, signup_password, signup_password_confirmation)"><%=__("save")%></button>
</form>
</div>
</div>
......
......@@ -9,23 +9,23 @@
<div style="margin-bottom: 15px; margin-top: 8px" >
<small>
[[__("created_by")]] <b>{{active_folder.creator.nickname||active_folder.creator.slug}}.</b>
<br/>[[__("last_updated")]] <b>{{active_folder.updated_at | date 'MMMM Do YYYY, HH:mm'}}.</b>
<%=__("created_by")%> <b>{{active_folder.creator.nickname||active_folder.creator.slug}}.</b>
<br/><%=__("last_updated")%> <b>{{active_folder.updated_at | date 'MMMM Do YYYY, HH:mm'}}.</b>
</small>
</div>
<div v-if="logged_in && user.home_folder_id!=active_folder._id">
<button class="btn btn-sm btn-round btn-primary m-r-5" v-on:click="activate_access()">
<span class="icon-label">[[__("share")]]</span>
<span class="icon-label"><%=__("share")%></span>
</button>
</div>
</div>
<div class="sidebar-section" v-if="is_pro(user)">
<h5>[[__("history_recently_updated")]]</h5>
<h5><%=__("history_recently_updated")%></h5>
<div v-if="active_folder_history_items.length == 0">
[[__("history_recently_empty")]]
<%=__("history_recently_empty")%>
</div>
<ul id="updates">
......@@ -33,7 +33,7 @@
<a v-bind:href="'/spaces/' + item.space._id">{{item.space.name}}</a>
<small>
[[__("by")]]
<%=__("by")%>
<span v-for="u in item.users">{{u}}<span v-if="$index < (item.users.length-1)">, </span></span>
</small>
</li>
......@@ -41,10 +41,10 @@
</div>
<div class="sidebar-section" v-if="!is_pro(user)">
<h5>[[__("history_recently_updated")]]</h5>
<h5><%=__("history_recently_updated")%></h5>
<p>
[[__("pro_ad_history_headline")]]
<%=__("pro_ad_history_headline")%>
</p>
<p>
......
......@@ -9,8 +9,8 @@
<div style="margin-bottom: 15px; margin-top: 8px" >
<small>
[[__("created_by")]] <b>{{active_space.creator.nickname}}.</b><br/>
[[__("last_updated")]] <b>{{active_space.updated_at | date 'MMMM Do YYYY, HH:mm'}}.</b>
<%=__("created_by")%> <b>{{active_space.creator.nickname}}.</b><br/>
<%=__("last_updated")%> <b>{{active_space.updated_at | date 'MMMM Do YYYY, HH:mm'}}.</b>
</small>
</div-->
......@@ -21,18 +21,18 @@
</button>
<button class="btn btn-sm btn-round btn-primary m-r-5"
v-on:click="guest_logout()">
[[__("logout")]]
<%=__("logout")%>
</button>
</div>
</div>
<div class="sidebar-section">
<h5>[[__("chat")]] &nbsp; <a v-if="active_space_role!='viewer'" v-on:click="activate_access()" class="btn btn-xs btn-darken">Add People</a></h5>
<h5><%=__("chat")%> &nbsp; <a v-if="active_space_role!='viewer'" v-on:click="activate_access()" class="btn btn-xs btn-darken">Add People</a></h5>
<textarea id="new-comment" style="min-height:80px;padding: 5px 9px;margin-bottom:10px" class="input input-darken no-b" v-if="can_add_comment" v-model="space_comment" placeholder="[[__("chat_message_placeholder")]]" spellcheck="false"></textarea>
<textarea id="new-comment" style="min-height:80px;padding: 5px 9px;margin-bottom:10px" class="input input-darken no-b" v-if="can_add_comment" v-model="space_comment" placeholder="<%=__("chat_message_placeholder")%>" spellcheck="false"></textarea>
<div v-if="can_add_comment">
<button class="btn btn-sm btn-primary" v-on:click="create_space_comment(space_comment)">[[__("post")]]</button>
<button class="btn btn-sm btn-primary" v-on:click="create_space_comment(space_comment)"><%=__("post")%></button>
</div>
<ul class="comments">
......@@ -50,7 +50,7 @@
class="delete pull-right"
v-if="active_space_role!='viewer'"
v-on:click="remove_space_comment(item)">
<a title="[[__("delete")]]" style="cursor:pointer"></a>
<a title="<%=__("delete")%>" style="cursor:pointer">✕</a>
</li>
</ul>
......
......@@ -3,7 +3,7 @@
<div class="modal-dialog">
<div class="modal-content" style="width:760px">
<div class="modal-header" style="padding-bottom:0">
<h3 class="text-left"><span class="icon icon-share icon-sm"></span> [[__("share")]]: {{access_settings_space.name}}</h3>
<h3 class="text-left"><%=__("share")%>: {{access_settings_space.name}}</h3>
<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>
......@@ -12,17 +12,17 @@
<div class="modal-body">
<div class="modal-section" style="padding-top:0;padding-bottom:20px">
<label class="radio" v-bind:class="{checked:access_settings_space.access_mode=='private'}">
<input type="radio" name="access_mode" value="private" v-model="access_settings_space.access_mode" v-on:click="save_space_access_mode($event)"> [[__("mode_private")]]
<input type="radio" name="access_mode" value="private" v-model="access_settings_space.access_mode" v-on:click="save_space_access_mode($event)"> <%=__("mode_private")%>
</label>
<label class="radio" v-bind:class="{checked:access_settings_space.access_mode=='public'}">
<input type="radio" name="access_mode" value="public" v-model="access_settings_space.access_mode" v-on:click="save_space_access_mode($event)">[[__("mode_public")]]
<input type="radio" name="access_mode" value="public" v-model="access_settings_space.access_mode" v-on:click="save_space_access_mode($event)"><%=__("mode_public")%>
</label>
</div>
<div class="modal-section" v-if="active_space" style="padding-bottom:10px">
<h4 class="text-left"><span class="icon icon-link icon-sm"></span> [[__("access_editor_link")]] </h4>
<h4 class="text-left"><span class="icon icon-link icon-sm"></span> <%=__("access_editor_link")%> </h4>
<p class="text-left">
[[__("access_editor_link_desc")]]
<%=__("access_editor_link_desc")%>
</p>
<div class="input-group org-add-form">
......@@ -30,7 +30,7 @@
<span class="input-group-btn">
<span id="org-add-member" class="btn btn-lg btn-primary clipboard-btn" data-clipboard-target="#editorurl2" v-clipboard>
[[__("copy")]]
<%=__("copy")%>
</span>
</span>
</div>
......@@ -41,13 +41,13 @@
type="checkbox"
v-bind:checked="access_settings_space.editors_locking"
v-model="access_settings_space.editors_locking" v-on:change="save_space_editors_locking($event)" />
[[__("access_anonymous_edit_blocking")]]
<%=__("access_anonymous_edit_blocking")%>
</label>
</div>
<!-- subsection "invite" -->
<div id="new-editor" class="modal-section" style="padding-bottom:20px">
<h4 class="text-left"><span class="icon icon-user-add icon-sm"></span> [[__('access_new_members')]]</h4>
<h4 class="text-left"><span class="icon icon-user-add icon-sm"></span> <%=__('access_new_members')%></h4>
<div class="form-group">
<span class="error-note" v-if="invite_email_error">{{invite_email_error}}</span>
......@@ -55,27 +55,27 @@
v-bind:class="{error: !!invite_email_error}"
id="invitee_email"
v-model="invite_email"
type="email" placeholder="[[__('invite_emails')]]">
type="email" placeholder="<%=__('invite_emails')%>">
<textarea id="invite-message" class="input input-block input-white overflow-y-scroll"
v-model="invite_message" placeholder="[[__('optional_message')]]" name="Message"></textarea>
v-model="invite_message" placeholder="<%=__('optional_message')%>" name="Message"></textarea>
<select class="input input-white" v-model="invite_member_role">
<option value="viewer">[[__("role_viewer")]]</option>
<option value="editor">[[__("role_editor")]]</option>
<option value="admin">[[__("role_admin")]]</option>
<option value="viewer"><%=__("role_viewer")%></option>
<option value="editor"><%=__("role_editor")%></option>
<option value="admin"><%=__("role_admin")%></option>
</select>
</div>
<div class="form-group">
<button class="btn btn-primary btn-md btn-round" v-on:click="invite_member(access_settings_space, invite_email, invite_message, invite_member_role)"> [[__("invite")]] </button>
<button class="btn btn-primary btn-md" v-on:click="invite_member(access_settings_space, invite_email, invite_message, invite_member_role)"> <%=__("invite")%> </button>
</div>
</div>
<!-- subsection "editors list" -->
<div class="modal-section" style="padding-bottom:60px">
<h4 class="text-left"><span class="icon icon-user-group icon-sm"></span> [[__("access_current_members")]]</h4>
<h4 class="text-left"><span class="icon icon-user-group icon-sm"></span> <%=__("access_current_members")%></h4>
<table class="table">
<tr>
<th></th>
......@@ -85,35 +85,40 @@
</tr>
<tr v-for="member in access_settings_memberships" v-bind:class="member.state">
<td>
<span class="editor-avatar btn btn-xs btn-round btn-icon" v-if="member.user">{{member.user.initials}}</span>
<span class="editor-avatar btn btn-xs btn-round btn-icon icon-hourglass" v-if="!member.user"></span>
<span class="editor-avatar btn btn-md btn-dark btn-icon btn-round"
v-if="member.user"
v-bind:style="background_image_style([member.user.avatar_thumb_uri])"
v-bind:class="{'has-avatar-image':!!member.user.avatar_thumb_uri}">
<span class="icon icon-user" v-if="!member.user.avatar_thumb_uri"></span>
</span>
<span class="editor-avatar btn btn-md btn-round btn-icon icon-hourglass" v-if="!member.user"></span>
</td>
<td>
<span class="editor-email" v-if="member.state == 'active'">{{member.user.email}}</span>
<span class="editor-email" v-if="member.state == 'pending'">{{member.email_invited}}</span>
<span class="editor-name" v-if="member.state == 'active'">{{member.user.nickname}}</span>
<span class="editor-email" v-if="member.state == 'pending'">(pending)</span>
<span class="editor-name" v-if="member.user && member.state == 'active'">{{member.user.nickname}}</span>
<span class="editor-email" v-if="!member.user || member.state == 'pending'">(pending)</span>
<span class="editor-email" v-if="member.user && member.state == 'active'">({{member.user.email}})</span>
<span class="editor-email" v-if="!member.user || member.state == 'pending'">({{member.email_invited}})</span>
</td>
<td>
<div class="form-group">
<select class="input input-sm" v-model="member.role" v-on:change="update_member(access_settings_space, member, $event.currentTarget.value)" style="width:auto">
<option value="viewer">[[__("role_viewer")]]</option>
<option value="editor">[[__("role_editor")]]</option>
<option value="admin">[[__("role_admin")]]</option>
<option value="viewer"><%=__("role_viewer")%></option>
<option value="editor"><%=__("role_editor")%></option>
<option value="admin"><%=__("role_admin")%></option>
</select>
</div>
</td>
<td>
<button class="btn btn-sm btn-stroke-darken" v-on:click="remove_member(access_settings_space, member)">[[__("delete")]]</button>
<button class="btn btn-sm btn-stroke-darken" v-on:click="remove_member(access_settings_space, member)"><%=__("delete")%></button>
</td>
</tr>
</table>
<p class="text-left" v-if="!access_settings_memberships.length">
[[__("access_no_members")]]
<%=__("access_no_members")%>
</p>
<div class="form-group" style="padding-top: 40px">
<button class="btn btn-primary btn-md btn-round" v-on:click="close_modal();"> [[__("ok")]] </button>
<button class="btn btn-primary btn-md" v-on:click="close_modal();"> <%=__("ok")%> </button>
</div>
</div>
......
<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>
......@@ -6,13 +6,13 @@
<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">[[__("folder_settings")]]</h4>
<h4 class="modal-title"><%=__("folder_settings")%></h4>
</div>
<div class="modal-body">
<div class="modal-section">
<div class="form-group">
<label class="label">[[__("title")]]</label>
<label class="label"><%=__("title")%></label>
<input type="text" class="input" v-model="active_folder.name">
</div>
......@@ -26,13 +26,13 @@
<div class="form-group text-center">
<label class="file btn btn-sm btn-round btn-stroke-darken">
<input type="file" id="file" v-on:change="save_folder_avatar_image(this);">
<span>[[__("upload_cover_image")]]</span>
<span><%=__("upload_cover_image")%></span>
</label>
</div>
</div>
<div class="modal-section">
<h4 class="modal-title" style="padding-top:0px">[[__("access_caption")]]</h4>
<h4 class="modal-title" style="padding-top:0px"><%=__("access_caption")%></h4>
</div>
</div>
......
<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>
<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>
<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 &quot;{{active_space.name}}&quot;</p>
</div>
<div class="modal-section no-b">
<p class="lead">Or Copy &amp; Paste this Link</p>
<p>
<span class="input">{{share_base_url}}{{active_space._id}}</span>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<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>
<div class="dialog-section no-b" style="width: 420px;">
<p class="lead"> Share this with others</p>
</div>
<!-- FIXME modal -->
<div class="modal" v-if="(duplicate_folders.length > 0)" 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="duplicate_folders = []">
<span class="icon icon-cross-1"></span>
</button>
<div class="modal-content">
<div class="modal-body labels-inline">
<div class="modal-section">
<div class="form-group">
<label>
[[__("duplicate_destination")]]
</label>
</div>
<div class="form-group">
<select v-on:change="duplicate_folder_id=$event.target.value">
<option v-for="f in duplicate_folders" value="{{f._id}}">{{f.name}}</option>
</select>
</div>
<div class="form-group">
<button class="btn btn-md btn-round btn-primary" v-on:click="duplicate_folder_confirm(); ">
<span class="icon-label">[[__("ok")]]</span>
</button>
<button class="btn btn-md btn-round btn-darken pull-right" v-on:click="duplicate_folders = [];">
<span class="icon-label">[[__("cancel")]]</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-cloak class="header-left" v-show="active_space_loaded">
<div class="btn-group dark">
<div class="pull-left">
<a
class="btn btn-stroke-darken btn-md btn-round btn-icon"
title="[[__("home")]]" href="/spaces"
v-if="(logged_in && !embedded && !active_space.parent_space_id && !guest_nickname)">
<span class="icon icon-home"></span>
</a>
<a
class="btn btn-stroke-darken btn-md btn-round btn-icon"
title="[[__("parent_folder")]]"
href="/folders/{{active_space.parent_space_id}}"
v-if="(active_space.parent_space_id && !guest_nickname)">
<span class="icon icon-arrow-left-light"></span>
</a>
<input class="input input-md input-transparent w-auto"
id="space-title"
v-model="active_space.name" name="title" v-on:keydown="save_space_keydown($event)"
v-if="space_editing_title && logged_in" style="padding-right:0" v-focus>
<span class="input input-md input-transparent w-auto"
v-if="!space_editing_title && logged_in"
v-on:click="edit_space_title()">{{active_space.name}}</span>
<span v-if="!logged_in" class="btn btn-dark btn-round btn-md">{{active_space.name}}</span>
<button class="btn btn-md btn-transparent btn-icon" v-if="space_editing_title" v-on:click="save_space_keydown()">
<span class="icon icon-check"></span>
</button>
<div class="dropdown top left light" v-bind:class="{open: active_dropdown=='space'}">
<button class="btn btn-md btn-icon btn-dark" v-on:click="activate_dropdown('space')">
<span class="icon icon-triangle-down"></span></button>
<div class="dropdown-menu" role="menu">
<ul class="select-list">
<li v-on:click="activate_access()" v-if="logged_in">
<span>
<span class="icon icon-sm icon-share"></span>
<span>[[ __('share') ]]</span>
</span>
</li>
<li v-on:click="edit_space_title()" v-if="logged_in">
<span>
<span class="icon icon-sm icon-tag"></span>
<span>[[ __('rename') ]]</span>
</span>
</li>
<li v-on:click="duplicate_space_into_folder()" v-if="logged_in">
<span>
<span class="icon icon-sm icon-duplicate"></span>
<span>[[ __('duplicate') ]]</span>
</span>
</li>
<li v-on:click="download_space()">
<span>
<span class="icon icon-sm icon-download"></span>
<span>[[ __('download_space') ]]</span>
</span>
</li>
<li v-on:click="activate_modal('support')" v-if="logged_in">
<span>
<span class="icon icon-sm icon-info"></span>
<span>[[ __('support') ]]</span>
</span>
</li>
</ul>
</div>
</div>
</div>
</div>
<span class="btn btn-red btn-md" id="offline-indicator" v-bind:class="{offline: was_offline}" v-on:click="show_offline_help()">[[__("offline")]]</span>
</div>
<div v-cloak class="header-right" v-if="active_space_loaded">
<span v-for="active_user in active_space_users" >
......@@ -141,49 +13,38 @@
</button>
</span>
<div class="btn-group dark" v-if="active_space_role!='viewer'">
<button class="btn btn-md btn-transparent btn-icon" title="Start Presentation (others follow what you see)" v-on:click="toggle_present_mode()" v-bind:class="{open:present_mode}">
<span class="icon icon-presentation"></span>
</button>
</div>
<div class="btn-group dark round" v-if="zones.length">
<button class="btn btn-md btn-transparent btn-icon" v-on:click="go_to_previous_zone()" title="[[__("Previous Zone")]]">
<div class="btn-group light round" v-if="zones.length">
<button class="btn btn-md btn-transparent btn-icon" v-on:click="go_to_previous_zone()" title="<%=__("Previous Zone")%>">
<span class="icon icon-triangle-4-left"></span>
</button>
<button class="btn btn-md btn-divider"></button>
<button class="btn btn-md btn-transparent btn-icon" v-on:click="go_to_next_zone()" title="[[__("Next Zone")]]">
<button class="btn btn-md btn-transparent btn-icon" v-on:click="go_to_next_zone()" title="<%=__("Next Zone")%>">
<span class="icon icon-triangle-4-right"></span>
</button>
</div>
<!--button class="btn btn-md btn-dark btn-round btn-icon" v-on:click="download_space()" title="[[__("download_space")]]">
<span class="icon icon-download"></span>
</button-->
<div class="btn-group dark" id="meta-toggle" style="margin-right:10px">
<button class="btn btn-md btn-transparent btn-icon" v-on:click="toggle_meta()" title="[[__("chat")]]">
<!--div class="btn-group light" id="meta-toggle" style="margin-right:10px">
<button class="btn btn-md btn-transparent btn-icon" v-on:click="toggle_meta()" title="<%=__("chat")%>">
<span class="jewel" style="color: white; background-color: red" v-if="meta_unseen>0">{{meta_unseen}}</span>
<span class="icon icon-messages"></span>
</button>
</div>
</div-->
</div>
{% include "./tool/toolbar-elements.html" %}
{% include "./tool/toolbar-object.html" %}
<%- include("./tool/toolbar-elements.html") %>
<%- include("./tool/toolbar-object.html") %>
<div v-if="active_space && active_space_loaded">
<div id="lasso"></div>
<!-- <div id="lasso"></div> -->
<div class="snap-ruler-h" v-bind:style="{top:snap_ruler_y+'px'}"></div>
<div class="snap-ruler-v" v-bind:style="{left:snap_ruler_x+'px'}"></div>
<div class="space-empty" v-cloak v-if="active_view == 'space' && !present_mode && active_space_artifacts.length == 0">
<div class="table-fake">
<div class="cell">
<p>Click anywhere to add content.<br>
You can also drop images, sounds and video<br>
or use copy and paste.</p>
<p>Use the toolbar to add content.<br>
You can also drop images or sound and video files.</p>
</div>
</div>
</div>
......@@ -206,7 +67,7 @@
<div id="space-clipboard" style="position:fixed;top:0;left:0;z-index:0;opacity:0;background-color:white"><textarea v-model="selected_artifacts_json" cols="2" rows="2" id="clipboard-ta" class="mousetrap"></textarea></div>
<div class="space-bounds" v-bind:style="{width: active_space.width*bounds_zoom + 'px', height: active_space.height*bounds_zoom + 'px', 'background-color': active_space.background_color}"></div>
<div class="space-bounds" v-bind:style="{width: (active_space.width*bounds_zoom+1000) + 'px', height: (active_space.height*bounds_zoom+1000) + 'px', 'background-color': active_space.background_color}"></div>
<div class="wrapper"
v-bind:style="{
......@@ -218,7 +79,7 @@
'background-color': ''+active_space.background_color,
'margin-left': bounds_margin_horiz + 'px',
'margin-top': bounds_margin_vert + 'px'}" >
<div id="lasso"></div>
<div v-for="a in active_space_artifacts"
v-bind:style="a.view.style" v-bind:class="a.view.classes"
v-bind:class="{text-editing:(editing_artifact_id==a._id && (a.view.major_type=='text' || a.view.major_type=='shape'))}"
......@@ -244,7 +105,6 @@
<a class="link btn btn-round btn-primary btn-sm" v-if="a.view.link" v-bind:href="a.view.link" target="_blank">{{a.view.link_caption}}</a>
</span>
<div class="btn btn-xs btn-icon btn-round btn-primary edit" v-show="editing_artifact_id!=a._id && is_selected(a)" v-on:touchstart="delayed_edit_artifact($event)"><span class="icon icon-pencil" v-on:click="toggle_selected_artifact_editing(true)" v-on:"touchstart:delayed_edit_artifact($event)"></span></div>
<input v-show="is_selected(a)" type="text" id="ios-focuser-{{a._id}}" class="ios-focuser">
</div>
......@@ -266,7 +126,6 @@
<a class="link btn btn-round btn-primary btn-sm" v-if="a.view.link" v-bind:href="a.view.link" target="_blank">{{a.view.link_caption}}</a>
</span>
<div class="btn btn-xs btn-icon btn-round btn-primary edit" v-show="editing_artifact_id!=a._id && is_selected(a)" v-on:touchstart="delayed_edit_artifact($event)"><span class="icon icon-pencil" v-on:click="toggle_selected_artifact_editing(true)" v-on:"touchstart:delayed_edit_artifact($event)"></span></div>
<input v-show="is_selected(a)" type="text" id="ios-focuser-{{a._id}}" class="ios-focuser">
</div>
......@@ -286,11 +145,6 @@
<source v-for="rep in a.payload_alternatives" v-bind:src="rep.payload_uri" v-bind:type="rep.mime" />
</video>
<a class="btn btn-md btn-icon btn-round btn-primary edit"
v-show="a.mime == 'application/pdf'"
v-bind:href="a.payload_uri" target="_blank"
><span class="icon icon-link"></span></a>
<span v-if="a.view.link.length>0" class="link-wrapper">
<a class="link btn btn-round btn-primary btn-sm" v-if="a.view.link" v-bind:href="a.view.link" target="_blank">{{a.view.link_caption}}</a>
</span>
......@@ -463,7 +317,7 @@
</div>
<div v-if="active_space_loaded" v-cloak>
<div id="minimap"
<!--div id="minimap"
v-bind:style="{width: ''+(active_space.width/minimap_scale)+'px', height: ''+(active_space.height/minimap_scale)+'px', bottom: '66px', right: '20px'}"
v-if="active_space"
v-on:mousedown="handle_minimap_mousedown($event)"
......@@ -475,17 +329,16 @@
v-on:mouseup="handle_minimap_mouseup($event)">
<div v-for="a in active_space_artifacts" v-bind:style="{left: ''+(a.x/minimap_scale)+ 'px', top: ''+(a.y/minimap_scale) + 'px', width: ''+(a.w/minimap_scale)+ 'px', height: ''+(a.h/minimap_scale) + 'px'}"></div>
<div class="window" v-bind:style="{left: ''+(scroll_left/minimap_scale) + 'px', top: ''+(scroll_top/minimap_scale)+ 'px', width: ''+(window_width/minimap_scale)+ 'px', height: ''+(window_height/minimap_scale) + 'px'}"></div>
</div-->
</div>
<div class="btn-group dark" style="position:absolute;bottom:20px;right:20px;">
<button class="btn btn-icon btn-md btn-transparent" v-on:click="zoom_in()">
<div class="btn-group light zoom-bar">
<button class="btn btn-icon btn-md btn-white" v-on:click="zoom_in()">
<span class="icon icon-plus"></span>
</button>
<button class="btn btn-md btn-transparent no-p" v-on:click="zoom_to_original()">
<button class="btn btn-md btn-white no-p" v-on:click="zoom_to_original()">
{{viewport_zoom_percent}}%
</button>
<button class="btn btn-icon btn-md btn-transparent" v-on:click="zoom_out()">
<button class="btn btn-icon btn-md btn-white" v-on:click="zoom_out()">
<span class="icon icon-minus"></span>
</button>
</div>
......
......@@ -10,24 +10,24 @@
<div v-if="user.team">
<div class="dialog-section">
<h4 class="text-left">[[__("team_name")]]</h4>
<h4 class="text-left"><%=__("team_name")%></h4>
<div class="input-group org-add-form">
<input id="org-member-emails" v-model="user.team.name" class="form-control input input-lg" type="text">
<span class="input-group-btn">
<span id="org-add-member" class="btn btn-lg btn-primary" v-on:click=" team_save()">
[[__("save")]]
<%=__("save")%>
</span>
</span>
</div>
</div>
<div class="dialog-section">
<h4 class="text-left">[[__("subdomain")]]</h4>
<h4 class="text-left"><%=__("subdomain")%></h4>
<div class="input-group org-add-form">
<input v-model="user.team.subdomain" class="form-control input input-lg" type="text">
<span class="input-group-btn">
<span id="org-add-member" class="btn btn-lg btn-primary" v-on:click=" team_save()">
[[__("save")]]
<%=__("save")%>
</span>
</span>
</div>
......@@ -41,11 +41,11 @@
</p>
<div class="input-group org-add-form">
<input id="org-member-emails" v-model="team_emails" class="form-control input input-lg" type="email" placeholder="[[__("team_adresses")]]">
<input id="org-member-emails" v-model="team_emails" class="form-control input input-lg" type="email" placeholder="<%=__("team_adresses")%>">
<span class="input-group-btn">
<span id="org-add-member" class="btn btn-lg btn-primary org-save" v-on:click=" team_invite_members(team_emails)">
<span v-if="!team_email_invited">[[__("add")]]</span>
<span v-if="team_email_invited">[[__("invited")]]</span>
<span v-if="!team_email_invited"><%=__("add")%></span>
<span v-if="team_email_invited"><%=__("invited")%></span>
</span>
</span>
</div>
......@@ -53,9 +53,9 @@
<table class="table table-striped table-condensed" v-if="team_members.length">
<thead>
<tr>
<th> [[__("email")]] </th>
<th> [[__("name")]] </th>
<th> [[__("role")]] </th>
<th> <%=__("email")%> </th>
<th> <%=__("name")%> </th>
<th> <%=__("role")%> </th>
<th></th>
</tr>
</thead>
......@@ -73,14 +73,14 @@
</td>
<td>
<span v-if="is_admin(u)">[[__("role_admin")]]</span>
<span v-if="!is_admin(u)">[[__("role_member")]]</span>
<span v-if="is_admin(u)"><%=__("role_admin")%></span>
<span v-if="!is_admin(u)"><%=__("role_member")%></span>
</td>
<td>
<span v-if="u._id != user._id" class="btn btn-sm btn-danger" v-on:click="team_remove_member(u)">[[__("remove")]]</span>
<span v-if="(u._id != user._id) && !is_admin(u)" class="btn btn-sm" v-on:click="team_promote_member(u)">[[__("promote")]]</span>
<span v-if="(u._id != user._id) && is_admin(u)" class="btn btn-sm" v-on:click="team_demote_member(u)">[[__("demote")]]</span>
<span v-if="u._id != user._id" class="btn btn-sm btn-danger" v-on:click="team_remove_member(u)"><%=__("remove")%></span>
<span v-if="(u._id != user._id) && !is_admin(u)" class="btn btn-sm" v-on:click="team_promote_member(u)"><%=__("promote")%></span>
<span v-if="(u._id != user._id) && is_admin(u)" class="btn btn-sm" v-on:click="team_demote_member(u)"><%=__("demote")%></span>
</td>
</tr>
......
<div class="dialog-tabs-wrapper">
<div class="dialog-tabs">
<div class="dialog-tab" v-bind:class="{open:background_mode=='image'}" v-on:click="background_mode='image'"><span>[[__("background_image_caption")]]</span></div>
<div class="dialog-tab" v-bind:class="{open:background_mode=='color'}" v-on:click="background_mode='color'"><span>[[__("background_color_caption")]]</span></div>
<div class="dialog-tab" v-bind:class="{open:background_mode=='image'}" v-on:click="background_mode='image'"><span><%=__("background_image_caption")%></span></div>
<div class="dialog-tab" v-bind:class="{open:background_mode=='color'}" v-on:click="background_mode='color'"><span><%=__("background_color_caption")%></span></div>
</div>
</div>
......@@ -69,9 +69,9 @@
<!--div class="dialog-section" v-show="background_mode=='color'">
<div class="tab-switch round options-2" v-bind:class="{'option-2':color_mode=='picker'}">
<div class="options">
<span class="option" v-on:click="activate_color_mode('palette')">[[__("palette")]]</span>
<span class="option" v-on:click="activate_color_mode('palette')"><%=__("palette")%></span>
<span class="option" v-on:click="activate_color_mode('picker')">
<span>[[__("picker")]]</span>
<span><%=__("picker")%></span>
</span>
</div>
<span class="option-highlight"></span>
......@@ -91,7 +91,7 @@
<span class="icon icon-picture-upload"></span>
<input id="background-uploader" type="file" accept="image/*" v-on:change="handle_section_background_upload($event)">
</label>
<p>[[__("upload_background_caption")]]</p>
<p><%=__("upload_background_caption")%></p>
</div>
<div class="dialog-section no-p no-flex" v-if="active_space.background_uri">
......
......@@ -77,9 +77,9 @@
<!--div class="dialog-section no-b" style="margin-top:-10px">
<div class="tab-switch round options-2" v-bind:class="{'option-2':color_mode=='picker'}">
<div class="options">
<span class="option" v-on:click="activate_color_mode('palette')">[[__("palette")]]</span>
<span class="option" v-on:click="activate_color_mode('palette')"><%=__("palette")%></span>
<span class="option" v-on:click="activate_color_mode('picker')">
<span>[[__("picker")]]</span>
<span><%=__("picker")%></span>
</span>
</div>
<span class="option-highlight"></span>
......@@ -123,25 +123,17 @@
<div class="dialog-section no-p-b no-p-h" v-show="opened_dialog=='color-text'">
<div class="input-row">
<div class="form-group no-m">
<label class="label label-sm text-center">[[__("font_size")]]</label>
<label class="label label-sm text-center"><%=__("font_size")%></label>
<input class="input no-b no-p text-center text-large" spellcheck="false" type="text" pattern="[0-9]" maxlength="64" v-model="active_style.font_size">
<!--button tabindex="-1" class="input-drag btn btn-transparent btn-icon" style="cursor: ns-resize;" v-sd-fader="true" sd-fader-var-y="active_style.font_size" sd-fader-min-y="8" sd-fader-max-y="400" sd-fader-sens="0.2">
<button tabindex="-1" class="input-drag btn btn-transparent btn-icon" style="cursor: ns-resize;" v-sd-fader="true" sd-fader-var-y="active_style.font_size" sd-fader-min-y="30" sd-fader-max-y="200" sd-fader-sens="5">
<span class="icon icon-triangles-vertical"></span>
</button-->
</button>
<span class="input-unit">px</span>
</div>
<div class="form-group no-m">
<span class="font-size-swatches" v-show="opened_dialog=='color-text'">
<button class="btn btn-sm" v-on:click="apply_font_size(64)" style="font-size:32px">Big</button>
<button class="btn btn-sm" v-on:click="apply_font_size(32)" style="font-size:24px">Medium</button>
<button class="btn btn-sm" v-on:click="apply_font_size(18)" style="font-size:14px">Small</button>
</span>
</div>
<!--div class="form-group no-m">
<label class="label label-sm text-center">[[__("line_height")]]</label>
<label class="label label-sm text-center"><%=__("line_height")%></label>
<input disabled class="input no-b no-p text-center text-large" spellcheck="false" type="text" pattern="[0-9\.]" maxlength="64" v-model="active_style.line_height">
<button tabindex="-1" class="input-drag btn btn-transparent btn-icon" style="cursor: ns-resize;" v-sd-fader="true" sd-fader-var-y="active_style.line_height" sd-fader-min-y="0.5" sd-fader-max-y="4" sd-fader-step="0.1">
<span class="icon icon-triangles-vertical"></span>
......
<div id="layout" class="relative">
<div class="dialog-section no-p-b">
<div class="dialog-section">
<div class="btn-group">
<button class="btn btn-transparent btn-icon" v-on:click="layout_stack_top()">
<span class="icon icon-stack-3d-top"></span>
......
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