1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-27 17:19:42 +02:00

markdown links support, 404 ember page added

This commit is contained in:
Harvey Kandola 2016-10-28 19:21:54 -07:00
parent 7c2051cc7a
commit 991b1a2740
14 changed files with 207 additions and 146 deletions

View file

@ -46,7 +46,6 @@ export default Ember.Component.extend(TooltipMixin, {
return m.documents.length || m.pages.length || m.attachments.length;
}),
init() {
this._super(...arguments);
let self = this;
@ -64,6 +63,7 @@ export default Ember.Component.extend(TooltipMixin, {
didRender() {
this.addTooltip(document.getElementById("content-linker-button"));
this.addTooltip(document.getElementById("content-counter-button"));
},
willDestroyElement() {

View file

@ -10,8 +10,15 @@
// https://documize.com
import Ember from 'ember';
import miscUtil from '../../../utils/misc';
const {
inject: { service }
} = Ember;
export default Ember.Component.extend({
link: service(),
isDirty: false,
pageBody: "",
@ -45,6 +52,13 @@ export default Ember.Component.extend({
},
actions: {
onInsertLink(link) {
let linkMarkdown = this.get('link').buildLink(link);
miscUtil.insertAtCursor($("#section-markdown-editor")[0], linkMarkdown);
return true;
},
isDirty() {
return this.get('isDirty');
},

View file

@ -16,7 +16,7 @@ const {
} = Ember;
export default Ember.Component.extend({
appMeta: Ember.inject.service(),
appMeta: service(),
link: service(),
pageBody: "",

View file

@ -19,4 +19,13 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
this.audit.record("viewed-document");
return this.get('documentService').getDocument(params.document_id);
},
actions: {
error(error /*, transition*/ ) {
if (error) {
this.transitionTo('/not-found');
return false;
}
}
}
});

View file

@ -13,8 +13,7 @@ import Ember from 'ember';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
beforeModel: function () {
beforeModel() {
this.transitionTo('folders');
}
});

View file

@ -101,5 +101,5 @@ export default Router.map(function () {
path: '/*wildcard'
});
this.route('pods', function () {});
// this.route('pods', function () {});
});

View file

@ -127,12 +127,5 @@ export default Ember.Service.extend({
});
/*
when attachment deleted:
mark as orphan references where link.documentid = document.refId
permission checks:
can view space
can view document
Markdown editor support
doc meta to show inbound and outbound links.
*/

View file

@ -1,6 +1,21 @@
.edit-tools {
margin: 0 0 0 20px;
min-height: 600px;
> .toolbar {
margin: 0;
padding: 0;
> .item {
list-style-type: none;
margin: 0 0 20px;
}
}
}
.content-counter-dialog {
width: 200px;
height: 200px;
}
.content-linker-dialog {

View file

@ -1,8 +1,12 @@
<div class="edit-tools">
<div class="square-button-mono button-gray" id="content-linker-button" data-tooltip="Insert content link" data-tooltip-position="left middle">
<ul class="toolbar">
<li class="item">
<div class="square-button-mono button-gray" id="content-linker-button" data-tooltip="Reference link" data-tooltip-position="left middle">
<i class="material-icons color-white">link</i>
</div>
</li>
</ul>
{{#dropdown-dialog target="content-linker-button" position="bottom right" button="Insert" color="flat-blue" onAction=(action 'onInsertLink')}}
<div class="content-linker-dialog">

View file

@ -1,13 +1,16 @@
{{#section/base-editor document=document folder=folder page=page isDirty=(action 'isDirty') onCancel=(action 'onCancel') onAction=(action 'onAction')}}
<div class="container-fluid">
<div class="row">
<div class="col-xs-6">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
{{focus-textarea id="section-markdown-editor" class="mousetrap bordered" value=pageBody}}
</div>
<div class="col-xs-6">
<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5">
<div id="section-markdown-preview" class="mousetrap bordered wysiwyg">
</div>
</div>
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">
{{document/edit-tools document=document folder=folder page=page onInsertLink=(action 'onInsertLink')}}
</div>
</div>
</div>
{{/section/base-editor}}

View file

@ -1,11 +1,13 @@
{{#section/base-editor document=document folder=folder page=page isDirty=(action 'isDirty') onCancel=(action 'onCancel') onAction=(action 'onAction')}}
<div class="pull-left width-96">
<div class="container-fluid">
<div class="row">
<div class="col-xs-11 col-sm-11 col-md-11 col-lg-11">
{{focus-textarea value=pageBody id="rich-text-editor" class="mousetrap"}}
</div>
<div class="pull-left">
<div class="col-xs-1 col-sm-1 col-md-1 col-lg-1">
{{document/edit-tools document=document folder=folder page=page onInsertLink=(action 'onInsertLink')}}
</div>
</div>
</div>
{{/section/base-editor}}

View file

@ -40,7 +40,29 @@ function wrapFunction(fn, context, params) {
};
}
function insertAtCursor(myField, myValue) {
//IE support
if (document.selection) {
myField.focus();
let sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA and others
else if (myField.selectionStart || myField.selectionStart === '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos) +
myValue +
myField.value.substring(endPos, myField.value.length);
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
} else {
myField.value += myValue;
}
}
export default {
interval,
wrapFunction
wrapFunction,
insertAtCursor
};