Skip to content

Commit 12d5ed4

Browse files
committed
Update to support delete note
1 parent 68457ed commit 12d5ed4

5 files changed

Lines changed: 77 additions & 1 deletion

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
'use strict';
2+
3+
module.exports = {
4+
up: function (queryInterface, Sequelize) {
5+
queryInterface.addColumn('Notes', 'deletedAt', Sequelize.DATE);
6+
},
7+
8+
down: function (queryInterface, Sequelize) {
9+
queryInterface.removeColumn('Notes', 'deletedAt', Sequelize.DATE);
10+
}
11+
};

lib/models/note.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ module.exports = function (sequelize, DataTypes) {
6767
type: DataTypes.DATE
6868
}
6969
}, {
70+
paranoid: true,
7071
classMethods: {
7172
associate: function (models) {
7273
Note.belongsTo(models.User, {

lib/realtime.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,35 @@ function connection(socket) {
796796
}
797797
});
798798

799+
// delete a note
800+
socket.on('delete', function () {
801+
//need login to do more actions
802+
if (socket.request.user && socket.request.user.logged_in) {
803+
var noteId = socket.noteId;
804+
if (!noteId || !notes[noteId]) return;
805+
var note = notes[noteId];
806+
//Only owner can delete note
807+
if (note.owner && note.owner == socket.request.user.id) {
808+
models.Note.destroy({
809+
where: {
810+
id: noteId
811+
}
812+
}).then(function (count) {
813+
if (!count) return;
814+
for (var i = 0, l = note.socks.length; i < l; i++) {
815+
var sock = note.socks[i];
816+
if (typeof sock !== 'undefined' && sock) {
817+
sock.emit('delete');
818+
return sock.disconnect(true);
819+
}
820+
}
821+
}).catch(function (err) {
822+
return logger.error('delete note failed: ' + err);
823+
});
824+
}
825+
}
826+
});
827+
799828
//reveiced when user logout or changed
800829
socket.on('user changed', function () {
801830
logger.info('user changed');

public/js/index.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -740,7 +740,8 @@ var ui = {
740740
editable: $(".ui-permission-editable"),
741741
locked: $(".ui-permission-locked"),
742742
private: $(".ui-permission-private")
743-
}
743+
},
744+
delete: $(".ui-delete-note")
744745
},
745746
toc: {
746747
toc: $('.ui-toc'),
@@ -2115,6 +2116,13 @@ ui.infobar.permission.locked.click(function () {
21152116
ui.infobar.permission.private.click(function () {
21162117
emitPermission("private");
21172118
});
2119+
// delete note
2120+
ui.infobar.delete.click(function () {
2121+
$('.delete-modal').modal('show');
2122+
});
2123+
$('.ui-delete-modal-confirm').click(function () {
2124+
socket.emit('delete');
2125+
});
21182126

21192127
function emitPermission(_permission) {
21202128
if (_permission != permission) {
@@ -2216,6 +2224,11 @@ socket.on('error', function (data) {
22162224
if (data.message && data.message.indexOf('AUTH failed') === 0)
22172225
location.href = serverurl + "/403";
22182226
});
2227+
socket.on('delete', function () {
2228+
deleteServerHistory(noteid, function (err, data) {
2229+
if (!err) location.href = serverurl;
2230+
});
2231+
});
22192232
var retryOnDisconnect = false;
22202233
var retryTimer = null;
22212234
socket.on('maintenance', function () {

public/views/body.ejs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
<li class="ui-permission-editable"><a><i class="fa fa-shield fa-fw"></i> Editable - Signed people can edit</a></li>
2020
<li class="ui-permission-locked"><a><i class="fa fa-lock fa-fw"></i> Locked - Only owner can edit</a></li>
2121
<li class="ui-permission-private"><a><i class="fa fa-hand-stop-o fa-fw"></i> Private - Only owner can view &amp; edit</a></li>
22+
<li class="divider"></li>
23+
<li class="ui-delete-note"><a><i class="fa fa-trash-o fa-fw"></i> Delete this note</a></li>
2224
</ul>
2325
</span>
2426
<br>
@@ -220,6 +222,26 @@
220222
</div>
221223
</div>
222224
</div>
225+
<!-- delete modal -->
226+
<div class="modal fade delete-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
227+
<div class="modal-dialog modal-sm">
228+
<div class="modal-content">
229+
<div class="modal-header">
230+
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span>
231+
</button>
232+
<h4 class="modal-title" id="myModalLabel"><%= __('Are you sure?') %></h4>
233+
</div>
234+
<div class="modal-body" style="color:black;">
235+
<h5 class="ui-delete-modal-msg">Do you really want to delete this note?</h5>
236+
<strong class="ui-delete-modal-item">All users will lost their connection.</strong>
237+
</div>
238+
<div class="modal-footer">
239+
<button type="button" class="btn btn-default" data-dismiss="modal"><%= __('Cancel') %></button>
240+
<button type="button" class="btn btn-danger ui-delete-modal-confirm"><%= __('Yes, do it!') %></button>
241+
</div>
242+
</div>
243+
</div>
244+
</div>
223245
<%- include refresh-modal %>
224246
<%- include signin-modal %>
225247
<%- include help-modal %>

0 commit comments

Comments
 (0)