You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-06-27 23:28:38 +02:00
All: Use Lerna to manage monorepo
This commit is contained in:
38
packages/app-cli/app/command-done.js
Normal file
38
packages/app-cli/app/command-done.js
Normal file
@ -0,0 +1,38 @@
|
||||
const { BaseCommand } = require('./base-command.js');
|
||||
const { app } = require('./app.js');
|
||||
const { _ } = require('@joplinapp/lib/locale');
|
||||
const BaseModel = require('@joplinapp/lib/BaseModel').default;
|
||||
const Note = require('@joplinapp/lib/models/Note.js');
|
||||
const time = require('@joplinapp/lib/time').default;
|
||||
|
||||
class Command extends BaseCommand {
|
||||
usage() {
|
||||
return 'done <note>';
|
||||
}
|
||||
|
||||
description() {
|
||||
return _('Marks a to-do as done.');
|
||||
}
|
||||
|
||||
static async handleAction(commandInstance, args, isCompleted) {
|
||||
const note = await app().loadItem(BaseModel.TYPE_NOTE, args.note);
|
||||
commandInstance.encryptionCheck(note);
|
||||
if (!note) throw new Error(_('Cannot find "%s".', args.note));
|
||||
if (!note.is_todo) throw new Error(_('Note is not a to-do: "%s"', args.note));
|
||||
|
||||
const todoCompleted = !!note.todo_completed;
|
||||
|
||||
if (isCompleted === todoCompleted) return;
|
||||
|
||||
await Note.save({
|
||||
id: note.id,
|
||||
todo_completed: isCompleted ? time.unixMs() : 0,
|
||||
});
|
||||
}
|
||||
|
||||
async action(args) {
|
||||
await Command.handleAction(this, args, true);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Command;
|
Reference in New Issue
Block a user