allow automatically updating shares

This commit is contained in:
Ell 2023-08-17 17:55:27 +02:00
parent 0bb5ae69b0
commit 07995d2a9a
5 changed files with 39 additions and 20 deletions

View file

@ -72,6 +72,13 @@ export default class JustSharePleasePlugin extends Plugin {
} }
} }
})); }));
this.registerEvent(this.app.vault.on("modify", f => {
if (this.settings.autoUpdateShares && f instanceof TFile) {
let shared = this.getSharedItem(f.path);
if (shared)
this.updateFile(shared, f, false);
}
}));
this.addCommand({ this.addCommand({
id: "share", id: "share",
@ -177,12 +184,10 @@ export default class JustSharePleasePlugin extends Plugin {
new Notice(`Successfully updated ${file.basename} on JSP`); new Notice(`Successfully updated ${file.basename} on JSP`);
return true; return true;
} catch (e) { } catch (e) {
if (notice) { new Notice(createFragment(f => {
new Notice(createFragment(f => { f.createSpan({text: `There was an error updating ${file.basename}: `});
f.createSpan({text: `There was an error updating ${file.basename}: `}); f.createEl("code", {text: e});
f.createEl("code", {text: e}); }), 10000);
}), 10000);
}
console.log(e); console.log(e);
} }
@ -205,12 +210,10 @@ export default class JustSharePleasePlugin extends Plugin {
new Notice(`Successfully deleted ${name} from JSP`); new Notice(`Successfully deleted ${name} from JSP`);
return true; return true;
} catch (e) { } catch (e) {
if (notice) { new Notice(createFragment(f => {
new Notice(createFragment(f => { f.createSpan({text: `There was an error deleting ${name}: `});
f.createSpan({text: `There was an error deleting ${name}: `}); f.createEl("code", {text: e});
f.createEl("code", {text: e}); }), 10000);
}), 10000);
}
console.log(e); console.log(e);
} }
} }

View file

@ -14,7 +14,6 @@ export class JSPSettingsTab extends PluginSettingTab {
display(): void { display(): void {
this.containerEl.empty(); this.containerEl.empty();
this.containerEl.createEl("h2", {text: "Just Share Please Settings"}); this.containerEl.createEl("h2", {text: "Just Share Please Settings"});
new Setting(this.containerEl) new Setting(this.containerEl)
.setName("Just Share Please Server") .setName("Just Share Please Server")
.setDesc(createFragment(f => { .setDesc(createFragment(f => {
@ -31,7 +30,6 @@ export class JSPSettingsTab extends PluginSettingTab {
await this.plugin.saveSettings(); await this.plugin.saveSettings();
}); });
}); });
new Setting(this.containerEl) new Setting(this.containerEl)
.setName("Strip Frontmatter") .setName("Strip Frontmatter")
.setDesc("Whether document frontmatter (also known as properties) should be removed from the uploaded share.") .setDesc("Whether document frontmatter (also known as properties) should be removed from the uploaded share.")
@ -42,7 +40,6 @@ export class JSPSettingsTab extends PluginSettingTab {
await this.plugin.saveSettings(); await this.plugin.saveSettings();
}); });
}); });
new Setting(this.containerEl) new Setting(this.containerEl)
.setName("Include Note Name") .setName("Include Note Name")
.setDesc("Whether the name of the shared note should be included in the share as a heading.") .setDesc("Whether the name of the shared note should be included in the share as a heading.")
@ -53,7 +50,6 @@ export class JSPSettingsTab extends PluginSettingTab {
await this.plugin.saveSettings(); await this.plugin.saveSettings();
}); });
}); });
new Setting(this.containerEl) new Setting(this.containerEl)
.setName("Unshare Deleted Files") .setName("Unshare Deleted Files")
.setDesc("Whether shares of files should be removed automatically when they are deleted. Only supported when deleting from within Obsidian.") .setDesc("Whether shares of files should be removed automatically when they are deleted. Only supported when deleting from within Obsidian.")
@ -64,6 +60,16 @@ export class JSPSettingsTab extends PluginSettingTab {
await this.plugin.saveSettings(); await this.plugin.saveSettings();
}); });
}); });
new Setting(this.containerEl)
.setName("Automatically Update Shares")
.setDesc("Whether a file's share should automatically be updated when the file is changed from within Obsidian.")
.addToggle(t => {
t.setValue(this.plugin.settings.autoUpdateShares);
t.onChange(async v => {
this.plugin.settings.autoUpdateShares = v;
await this.plugin.saveSettings();
});
});
this.containerEl.createEl("hr"); this.containerEl.createEl("hr");
this.containerEl.createEl("p", {text: "If you like this plugin and want to support its development, you can do so through my website by clicking this fancy image!"}); this.containerEl.createEl("p", {text: "If you like this plugin and want to support its development, you can do so through my website by clicking this fancy image!"});

View file

@ -3,10 +3,10 @@ export const defaultSettings: JSPSettings = {
shared: [], shared: [],
stripFrontmatter: true, stripFrontmatter: true,
includeNoteName: true, includeNoteName: true,
unshareDeletedFiles: true unshareDeletedFiles: true,
autoUpdateShares: false
}; };
// TODO add a setting for auto-refreshing uploads when saving
export interface JSPSettings { export interface JSPSettings {
url: string; url: string;
@ -14,6 +14,7 @@ export interface JSPSettings {
stripFrontmatter: boolean; stripFrontmatter: boolean;
includeNoteName: boolean; includeNoteName: boolean;
unshareDeletedFiles: boolean; unshareDeletedFiles: boolean;
autoUpdateShares: boolean;
} }

View file

@ -1,7 +1,14 @@
{ {
"url": "http://localhost:8080", "url": "http://localhost:8080",
"shared": [], "shared": [
{
"id": "234df7b7",
"password": "0ef1504bfe83cd9ca812434caa7aacf4",
"path": "Cool Test Note.md"
}
],
"stripFrontmatter": true, "stripFrontmatter": true,
"includeNoteName": true, "includeNoteName": true,
"unshareDeletedFiles": false "unshareDeletedFiles": false,
"autoUpdateShares": false
} }

View file

@ -24,6 +24,8 @@ $.ajax({
cool!! cool!!
blah blah i added and removed this
The following is $x^2 = 7$, but more complicated! The following is $x^2 = 7$, but more complicated!
$$ $$
x^2 + \sum_{i = 1}^{10000} x^2 \cdot 0 = 7 x^2 + \sum_{i = 1}^{10000} x^2 \cdot 0 = 7