Made it possible to add wiki editors.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4628 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
parent
1484a87cad
commit
5b2ace80d4
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"type": "tildefriends-app",
|
"type": "tildefriends-app",
|
||||||
"emoji": "📝",
|
"emoji": "📝",
|
||||||
"previous": "&dWRvF06sP9/nrZmGjF+px+KFPEjT6bg2/u7vENWvUyM=.sha256"
|
"previous": "&Unu5AZjyD0RF/QzPh2/u7DuU8IPuSFSjYFkmiWAWcqk=.sha256"
|
||||||
}
|
}
|
@ -32,6 +32,7 @@ tfrpc.register(async function following(ids, depth) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
tfrpc.register(async function appendMessage(id, message) {
|
tfrpc.register(async function appendMessage(id, message) {
|
||||||
|
print('APPENDING', message);
|
||||||
return ssb.appendMessageWithIdentity(id, message);
|
return ssb.appendMessageWithIdentity(id, message);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -123,6 +124,9 @@ async function process_message(whoami, collection, message, kind, parent) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
collection[message.id] = Object.assign(content, {id: message.id});
|
collection[message.id] = Object.assign(content, {id: message.id});
|
||||||
|
if (!collection[message.id].editors) {
|
||||||
|
collection[message.id].editors = [message.author];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
ids: {type: Array},
|
ids: {type: Array},
|
||||||
owner_ids: {type: Array},
|
owner_ids: {type: Array},
|
||||||
whoami: {type: String},
|
whoami: {type: String},
|
||||||
|
following: {type: Array},
|
||||||
|
|
||||||
wikis: {type: Object},
|
wikis: {type: Object},
|
||||||
wiki_docs: {type: Object},
|
wiki_docs: {type: Object},
|
||||||
@ -14,6 +15,8 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
wiki: {type: Object},
|
wiki: {type: Object},
|
||||||
wiki_doc: {type: Object},
|
wiki_doc: {type: Object},
|
||||||
hash: {type: String},
|
hash: {type: String},
|
||||||
|
|
||||||
|
adding_editor: {type: Boolean},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -21,6 +24,7 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
super();
|
super();
|
||||||
this.ids = [];
|
this.ids = [];
|
||||||
this.owner_ids = [];
|
this.owner_ids = [];
|
||||||
|
this.following = [];
|
||||||
this.load();
|
this.load();
|
||||||
let self = this;
|
let self = this;
|
||||||
tfrpc.register(function hash_changed(hash) {
|
tfrpc.register(function hash_changed(hash) {
|
||||||
@ -33,6 +37,7 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
this.ids = await tfrpc.rpc.getIdentities();
|
this.ids = await tfrpc.rpc.getIdentities();
|
||||||
this.owner_ids = await tfrpc.rpc.getOwnerIdentities();
|
this.owner_ids = await tfrpc.rpc.getOwnerIdentities();
|
||||||
this.whoami = await tfrpc.rpc.localStorageGet('collections_whoami');
|
this.whoami = await tfrpc.rpc.localStorageGet('collections_whoami');
|
||||||
|
this.following = Object.keys(await tfrpc.rpc.following([this.whoami], 2)).sort();
|
||||||
|
|
||||||
await this.read_wikis();
|
await this.read_wikis();
|
||||||
await this.read_Wiki_docs();
|
await this.read_Wiki_docs();
|
||||||
@ -45,8 +50,7 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
console.log('read_wikis', this.whoami);
|
console.log('read_wikis', this.whoami);
|
||||||
let following = Object.keys(await tfrpc.rpc.following([this.whoami], 2)).sort();
|
[max_rowid, wikis] = await tfrpc.rpc.collection(this.following, 'wiki', undefined, max_rowid, wikis, false);
|
||||||
[max_rowid, wikis] = await tfrpc.rpc.collection(following, 'wiki', undefined, max_rowid, wikis, false);
|
|
||||||
console.log('read ->', wikis);
|
console.log('read ->', wikis);
|
||||||
if (this.whoami !== start_whoami) {
|
if (this.whoami !== start_whoami) {
|
||||||
break;
|
break;
|
||||||
@ -129,6 +133,7 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
this.wiki = event.detail.value;
|
this.wiki = event.detail.value;
|
||||||
this.wiki_doc = undefined;
|
this.wiki_doc = undefined;
|
||||||
this.wiki_docs = undefined;
|
this.wiki_docs = undefined;
|
||||||
|
this.adding_editor = false;
|
||||||
this.update_hash();
|
this.update_hash();
|
||||||
this.read_wiki_docs();
|
this.read_wiki_docs();
|
||||||
}
|
}
|
||||||
@ -148,6 +153,21 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async on_add_editor(event) {
|
||||||
|
let id = this.shadowRoot.getElementById('add_editor').value;
|
||||||
|
let editors = [...this.wiki.editors];
|
||||||
|
if (editors.indexOf(id) == -1) {
|
||||||
|
editors.push(id);
|
||||||
|
editors.sort();
|
||||||
|
}
|
||||||
|
await tfrpc.rpc.appendMessage(this.whoami, {
|
||||||
|
type: 'wiki',
|
||||||
|
key: this.wiki.id,
|
||||||
|
editors: editors,
|
||||||
|
});
|
||||||
|
this.adding_editor = false;
|
||||||
|
}
|
||||||
|
|
||||||
async on_wiki_tombstone(event) {
|
async on_wiki_tombstone(event) {
|
||||||
await tfrpc.rpc.appendMessage(this.whoami, {
|
await tfrpc.rpc.appendMessage(this.whoami, {
|
||||||
type: 'wiki',
|
type: 'wiki',
|
||||||
@ -224,6 +244,16 @@ class TfCollectionsAppElement extends LitElement {
|
|||||||
@rename=${this.on_wiki_doc_rename}
|
@rename=${this.on_wiki_doc_rename}
|
||||||
@tombstone=${this.on_wiki_doc_tombstone}
|
@tombstone=${this.on_wiki_doc_tombstone}
|
||||||
@change=${this.on_wiki_doc_changed}></tf-collection>`)}
|
@change=${this.on_wiki_doc_changed}></tf-collection>`)}
|
||||||
|
<div ?hidden=${!this.wiki?.editors}>
|
||||||
|
Editors: ${this.wiki?.editors}
|
||||||
|
<button @click=${() => self.adding_editor = true} ?hidden=${this.wiki?.editors?.indexOf(this.whoami) == -1 || this.adding_editor}>+</button>
|
||||||
|
<div ?hidden=${!this.adding_editor}>
|
||||||
|
<label for="add_editor">Add Editor:</label>
|
||||||
|
<input type="text" id="add_editor"></input>
|
||||||
|
<button @click=${this.on_add_editor}>Add Editor</button>
|
||||||
|
<button @click=${() => self.adding_editor = false}>x</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
${this.wiki_doc && this.wiki_doc.parent === this.wiki?.id ? html`
|
${this.wiki_doc && this.wiki_doc.parent === this.wiki?.id ? html`
|
||||||
<tf-wiki-doc
|
<tf-wiki-doc
|
||||||
|
Loading…
Reference in New Issue
Block a user