whyis-fediverse 0.4.4__py3-none-any.whl → 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- whyis_fediverse/static/js/comment.js +15 -14
- whyis_fediverse/static/js/discussion.js +5 -3
- whyis_fediverse/static/js/new_post.js +40 -35
- whyis_fediverse/static/js/post.js +31 -25
- whyis_fediverse/static/js/post_view.js +15 -19
- whyis_fediverse/static/js/selectable.js +5 -3
- whyis_fediverse/static/js/selections.js +5 -3
- whyis_fediverse/templates/all_discussion.html +44 -45
- whyis_fediverse/templates/discussion.html +44 -45
- whyis_fediverse/templates/embed_image.html +1 -1
- whyis_fediverse/templates/embed_resource.html +2 -2
- whyis_fediverse/templates/image_embed.html +1 -1
- whyis_fediverse/templates/object_view.html +7 -5
- {whyis_fediverse-0.4.4.dist-info → whyis_fediverse-1.0.0.dist-info}/METADATA +3 -3
- whyis_fediverse-1.0.0.dist-info/RECORD +31 -0
- {whyis_fediverse-0.4.4.dist-info → whyis_fediverse-1.0.0.dist-info}/WHEEL +1 -1
- whyis_fediverse/static/js/#new_post.js# +0 -237
- whyis_fediverse/static/js/selectable.js~ +0 -27
- whyis_fediverse/static/js/selections.js~ +0 -87
- whyis_fediverse/templates/__init__.py +0 -0
- whyis_fediverse/templates/all_discussion.html~ +0 -73
- whyis_fediverse/templates/embed_image.html~ +0 -1
- whyis_fediverse/templates/embed_object.html~ +0 -6
- whyis_fediverse/templates/embed_resource.html~ +0 -5
- whyis_fediverse/templates/embed_video.html~ +0 -6
- whyis_fediverse/templates/image_embed.svg +0 -3
- whyis_fediverse/test_example.trig +0 -115
- whyis_fediverse/test_example.ttl +0 -115
- whyis_fediverse/vocab.ttl +0 -93
- whyis_fediverse-0.4.4.dist-info/RECORD +0 -44
- {whyis_fediverse-0.4.4.dist-info → whyis_fediverse-1.0.0.dist-info}/entry_points.txt +0 -0
- {whyis_fediverse-0.4.4.dist-info → whyis_fediverse-1.0.0.dist-info/licenses}/LICENSE +0 -0
- {whyis_fediverse-0.4.4.dist-info → whyis_fediverse-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -3,10 +3,9 @@ import relativeTime from '//unpkg.com/dayjs@1.11.13/esm/plugin/relativeTime';
|
|
|
3
3
|
dayjs.extend(relativeTime);
|
|
4
4
|
|
|
5
5
|
import selectable from './selectable.js';
|
|
6
|
+
import {axios, Vue} from '../../../dist/whyis.js';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export default Vue.component('fedi-comment', {
|
|
8
|
+
const component = {
|
|
10
9
|
name: "fedi-comment",
|
|
11
10
|
props:{
|
|
12
11
|
value: {
|
|
@@ -30,18 +29,18 @@ export default Vue.component('fedi-comment', {
|
|
|
30
29
|
typing_template: `
|
|
31
30
|
`,
|
|
32
31
|
template: `
|
|
33
|
-
<
|
|
34
|
-
<div class="
|
|
35
|
-
<fedi-selectable class="
|
|
32
|
+
<div class="mt-3 w-100">
|
|
33
|
+
<div class="row g-2" v-if="value.attachment != null && value.attachment.length != 0">
|
|
34
|
+
<fedi-selectable class="col-12 col-md-4" v-bind:uri="a.id" v-for="a in value.attachment" v-bind:key="a.id" v-html="a.embed">
|
|
36
35
|
</fedi-selectable>
|
|
37
36
|
</div>
|
|
38
|
-
<div class="
|
|
39
|
-
<fedi-selectable class="
|
|
37
|
+
<div class="row g-2" v-if="value.context != null && value.context.length != 0">
|
|
38
|
+
<fedi-selectable class="col-12 col-md-4" v-bind:uri="a.id" v-for="a in value.context" v-bind:key="a.id" v-html="a.embed">
|
|
40
39
|
</fedi-selectable>
|
|
41
40
|
</div>
|
|
42
|
-
<div
|
|
41
|
+
<div class="d-inline-block bg-light rounded-pill px-3 py-2 mt-2">
|
|
43
42
|
<small>
|
|
44
|
-
<a :href="value.attributedTo.view">
|
|
43
|
+
<a :href="value.attributedTo.view" class="text-decoration-none">
|
|
45
44
|
<strong>{{value.attributedTo.name}}</strong>
|
|
46
45
|
(@{{value.attributedTo.id.split('/').pop()}})
|
|
47
46
|
{{published}}
|
|
@@ -51,16 +50,16 @@ export default Vue.component('fedi-comment', {
|
|
|
51
50
|
</div>
|
|
52
51
|
<div v-for="agent in value.typing"
|
|
53
52
|
v-bind:key="agent.id"
|
|
54
|
-
|
|
53
|
+
class="d-inline-block bg-light rounded-pill px-3 py-2 mt-2">
|
|
55
54
|
<small>
|
|
56
|
-
<a :href="agent.view">
|
|
55
|
+
<a :href="agent.view" class="text-decoration-none">
|
|
57
56
|
<strong>{{agent.name}}</strong>
|
|
58
57
|
(@{{agent.id.split('/').pop()}})
|
|
59
58
|
<spinner :loading="true" text=''/>
|
|
60
59
|
</a>
|
|
61
60
|
</small>
|
|
62
61
|
</div>
|
|
63
|
-
</
|
|
62
|
+
</div>
|
|
64
63
|
`,
|
|
65
64
|
watch: {
|
|
66
65
|
},
|
|
@@ -106,4 +105,6 @@ export default Vue.component('fedi-comment', {
|
|
|
106
105
|
},
|
|
107
106
|
created(){
|
|
108
107
|
}
|
|
109
|
-
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export default Vue.component('fedi-comment', component);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {axios, Vue} from '../../../dist/whyis.js';
|
|
2
2
|
import post from './post.js';
|
|
3
3
|
import newPost from './new_post.js';
|
|
4
4
|
import selections from './selections.js';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
const component = {
|
|
7
7
|
name: "fedi-discussion",
|
|
8
8
|
props:{
|
|
9
9
|
entity: {
|
|
@@ -90,4 +90,6 @@ export default Vue.component('fedi-discussion', {
|
|
|
90
90
|
},
|
|
91
91
|
created(){
|
|
92
92
|
}
|
|
93
|
-
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export default Vue.component('fedi-discussion', component);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {axios, Vue} from '../../../dist/whyis.js';
|
|
2
2
|
|
|
3
3
|
import post from './selections.js';
|
|
4
4
|
|
|
@@ -80,7 +80,7 @@ async function uploadFiles(fileList, uri){
|
|
|
80
80
|
return distrLDs;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
const component = {
|
|
84
84
|
name: "fedi-new-post",
|
|
85
85
|
props:{
|
|
86
86
|
entity: {
|
|
@@ -109,38 +109,41 @@ export default Vue.component('fedi-new-post', {
|
|
|
109
109
|
}
|
|
110
110
|
},
|
|
111
111
|
template: `
|
|
112
|
-
<
|
|
113
|
-
<
|
|
114
|
-
<
|
|
115
|
-
<label>What's on your mind?</label>
|
|
116
|
-
<
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
<div class="md-layout">
|
|
125
|
-
<div class="md-layout-item md-size-20" style="position:relative"
|
|
126
|
-
v-for="item in selection"
|
|
127
|
-
v-bind:key="item"
|
|
128
|
-
v-on:mouseenter="hovers[item] = true"
|
|
129
|
-
v-on:mouseleave="hovers[item] = false" >
|
|
130
|
-
<div v-html="embeds[item]"></div>
|
|
131
|
-
<md-button style="position: absolute; right: 0; top: 0; "
|
|
132
|
-
class="md-icon-button md-raised md-mini"
|
|
133
|
-
v-on:click="unselect(item)">
|
|
134
|
-
<md-icon>delete</md-icon>
|
|
135
|
-
</md-button>
|
|
136
|
-
</div>
|
|
112
|
+
<div class="card mb-3">
|
|
113
|
+
<div class="card-body">
|
|
114
|
+
<div class="mb-3">
|
|
115
|
+
<label class="form-label">What's on your mind?</label>
|
|
116
|
+
<div class="d-flex align-items-start gap-2">
|
|
117
|
+
<textarea class="form-control flex-grow-1"
|
|
118
|
+
rows="3"
|
|
119
|
+
v-on:keyup.enter.exact="sendPost()"
|
|
120
|
+
v-model="post.content"></textarea>
|
|
121
|
+
<button type="button" class="btn btn-primary btn-sm mt-1" @click="sendPost()">
|
|
122
|
+
<i class="bi bi-send"></i>
|
|
123
|
+
</button>
|
|
137
124
|
</div>
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
125
|
+
</div>
|
|
126
|
+
<div class="row g-2 mb-3">
|
|
127
|
+
<div class="col-6 col-md-3 position-relative"
|
|
128
|
+
v-for="item in selection"
|
|
129
|
+
v-bind:key="item"
|
|
130
|
+
v-on:mouseenter="hovers[item] = true"
|
|
131
|
+
v-on:mouseleave="hovers[item] = false" >
|
|
132
|
+
<div v-html="embeds[item]"></div>
|
|
133
|
+
<button type="button"
|
|
134
|
+
class="btn btn-danger btn-sm position-absolute top-0 end-0"
|
|
135
|
+
v-on:click="unselect(item)">
|
|
136
|
+
<i class="bi bi-trash"></i>
|
|
137
|
+
</button>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="mb-3" id="media_upload">
|
|
141
|
+
<label class="form-label">Add media</label>
|
|
142
|
+
<input class="form-control" type="file" name="media_upload" ref="attachments" multiple
|
|
143
|
+
@change="attachments = $event.target.files"/>
|
|
144
|
+
</div>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
144
147
|
`,
|
|
145
148
|
watch: {
|
|
146
149
|
selection: {
|
|
@@ -196,7 +199,7 @@ export default Vue.component('fedi-new-post', {
|
|
|
196
199
|
this.post.published = now.toISOString();
|
|
197
200
|
this.post.context = this.selection;
|
|
198
201
|
|
|
199
|
-
let attachments = this.$refs.attachments
|
|
202
|
+
let attachments = this.$refs.attachments.files;
|
|
200
203
|
let old_id = this.id;
|
|
201
204
|
let post = this.post;
|
|
202
205
|
|
|
@@ -236,4 +239,6 @@ export default Vue.component('fedi-new-post', {
|
|
|
236
239
|
},
|
|
237
240
|
created(){
|
|
238
241
|
}
|
|
239
|
-
}
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
export default Vue.component('fedi-new-post', component);
|
|
@@ -4,9 +4,9 @@ dayjs.extend(relativeTime);
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
import selectable from './selectable.js';
|
|
7
|
+
import {axios, Vue} from '../../../dist/whyis.js';
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
export default Vue.component('fedi-post', {
|
|
9
|
+
const component = {
|
|
10
10
|
name: "fedi-post",
|
|
11
11
|
props:{
|
|
12
12
|
value: {
|
|
@@ -28,28 +28,32 @@ export default Vue.component('fedi-post', {
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
template: `
|
|
31
|
-
<
|
|
32
|
-
<
|
|
33
|
-
<
|
|
34
|
-
<
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
</
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<
|
|
43
|
-
</
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
31
|
+
<div class="card mb-3">
|
|
32
|
+
<div class="card-header">
|
|
33
|
+
<div class="small text-muted">
|
|
34
|
+
<a :href="value.attributedTo.view" class="text-decoration-none">
|
|
35
|
+
<span class="rounded-circle bg-secondary text-white d-inline-flex align-items-center justify-content-center me-2"
|
|
36
|
+
style="width:32px; height:32px;">
|
|
37
|
+
{{value.attributedTo.name[0]}}
|
|
38
|
+
</span>
|
|
39
|
+
<strong>{{value.attributedTo.name}}</strong> <small>(@{{value.attributedTo.id.split('/').pop()}})</small>
|
|
40
|
+
</a>
|
|
41
|
+
<br/>
|
|
42
|
+
<small><a :href="value.view" class="text-decoration-none">{{published}}</a></small>
|
|
43
|
+
</div>
|
|
44
|
+
<div class="fw-semibold mt-2" v-if="value.name"><a :href="value.id" class="text-decoration-none">{{value.name}}</a></div>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="card-body" v-html="value.content"></div>
|
|
47
|
+
<div class="card-body pt-0"
|
|
48
|
+
v-if="(value.attachment != null && value.attachment.length != 0) || (value.context != null && value.context.length != 0)">
|
|
49
|
+
<div class="d-flex flex-wrap gap-2">
|
|
50
|
+
<fedi-selectable v-bind:uri="a.id" v-for="a in value.attachment" v-bind:key="a.id" v-html="a.embed">
|
|
51
|
+
</fedi-selectable>
|
|
52
|
+
<fedi-selectable v-bind:uri="a.id" v-for="a in value.context" v-bind:key="a.id" v-html="a.embed">
|
|
53
|
+
</fedi-selectable>
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
53
57
|
`,
|
|
54
58
|
watch: {
|
|
55
59
|
},
|
|
@@ -95,4 +99,6 @@ export default Vue.component('fedi-post', {
|
|
|
95
99
|
},
|
|
96
100
|
created(){
|
|
97
101
|
}
|
|
98
|
-
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export default Vue.component('fedi-post', component);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {axios, Vue} from '../../../dist/whyis.js';
|
|
2
2
|
import post from './post.js';
|
|
3
3
|
import comment from './comment.js';
|
|
4
4
|
import newPost from './new_post.js';
|
|
5
5
|
import selections from './selections.js';
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const component = {
|
|
8
8
|
name: "fedi-post-view",
|
|
9
9
|
props:{
|
|
10
10
|
object: {
|
|
@@ -25,20 +25,19 @@ export default Vue.component('fedi-post-view', {
|
|
|
25
25
|
template: `
|
|
26
26
|
<fedi-selection>
|
|
27
27
|
<spinner :loading="loading" text='Loading...' v-if="loading"/>
|
|
28
|
-
<div v-else class="
|
|
29
|
-
<div class="
|
|
28
|
+
<div v-else class="row g-3">
|
|
29
|
+
<div class="col-12 col-lg-6 overflow-y-auto">
|
|
30
30
|
<fedi-post v-if="post != null"
|
|
31
31
|
v-bind:value="post">
|
|
32
32
|
</fedi-post>
|
|
33
33
|
</div>
|
|
34
|
-
<div class="
|
|
34
|
+
<div class="col-12 col-lg-6 overflow-y-auto">
|
|
35
35
|
<div>
|
|
36
|
-
<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
</md-empty-state>
|
|
36
|
+
<div v-if="replies == null || replies.length == 0" class="border rounded p-4 text-center text-muted">
|
|
37
|
+
<i class="bi bi-chat-dots fs-1 mb-2 d-block"></i>
|
|
38
|
+
<div class="fw-semibold">Reply to this thread</div>
|
|
39
|
+
<div>Reply below to continue this conversation.</div>
|
|
40
|
+
</div>
|
|
42
41
|
<div v-else>
|
|
43
42
|
<fedi-comment v-if="replyData[reply]"
|
|
44
43
|
v-for="reply in replies"
|
|
@@ -49,14 +48,9 @@ export default Vue.component('fedi-post-view', {
|
|
|
49
48
|
</div>
|
|
50
49
|
<div v-for="agent in post.typing"
|
|
51
50
|
v-bind:key="agent.id"
|
|
52
|
-
|
|
53
|
-
margin-top:0.5em;
|
|
54
|
-
border-radius:1em;
|
|
55
|
-
padding-left:0.75em;
|
|
56
|
-
padding-right:0.75em;
|
|
57
|
-
background-color:lightgray">
|
|
51
|
+
class="d-inline-block bg-light rounded-pill px-3 py-2 mt-2">
|
|
58
52
|
<small>
|
|
59
|
-
<a :href="agent.view">
|
|
53
|
+
<a :href="agent.view" class="text-decoration-none">
|
|
60
54
|
<strong>{{agent.name}}</strong>
|
|
61
55
|
(@{{agent.id.split('/').pop()}})
|
|
62
56
|
<spinner :loading="true" text=''/>
|
|
@@ -130,4 +124,6 @@ export default Vue.component('fedi-post-view', {
|
|
|
130
124
|
async unmounted() {
|
|
131
125
|
window.removeEventListener("scroll", this.scrollBottom)
|
|
132
126
|
}
|
|
133
|
-
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export default Vue.component('fedi-post-view', component);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {axios, Vue} from '../../../dist/whyis.js';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const component = {
|
|
4
4
|
name: "fedi-selectable",
|
|
5
5
|
props : {
|
|
6
6
|
"uri": String
|
|
@@ -38,4 +38,6 @@ export default Vue.component('fedi-selectable', {
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export default Vue.component('fedi-selectable', component);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import dayjs from '//unpkg.com/dayjs@1.11.13/esm';
|
|
2
|
-
import {
|
|
2
|
+
import {axios, Vue} from '../../../dist/whyis.js';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
const component = {
|
|
5
5
|
name: "fedi-selection",
|
|
6
6
|
data() {
|
|
7
7
|
return {
|
|
@@ -29,4 +29,6 @@ export default Vue.component('fedi-selection', {
|
|
|
29
29
|
this.selected.length = 0
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
|
-
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export default Vue.component('fedi-selection', component);
|
|
@@ -19,55 +19,54 @@
|
|
|
19
19
|
{% block content %}
|
|
20
20
|
{% set attributes = this | include("attributes") | fromjson %}
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
22
|
+
<ul class="nav nav-tabs card-header-tabs">
|
|
23
|
+
{% for v in this | get_views_list -%}
|
|
24
|
+
<li class="nav-item {% if v['view'].value == view %}active{% endif %}">
|
|
25
|
+
<a class="nav-link {% if v['view'].value == view %}active{% endif %}"
|
|
26
|
+
href="{{url_for('entity.view', uri=this.identifier, view=v['view'])}}">
|
|
27
|
+
{{v['label']}}
|
|
28
|
+
</a>
|
|
29
|
+
</li>
|
|
30
|
+
{%- endfor %}
|
|
31
|
+
{% if this.description().value(ns.whyis.hasFileID) %}
|
|
32
|
+
<li class="nav-item">
|
|
33
|
+
<a class="nav-link"
|
|
34
|
+
href="{{url_for('entity.view',uri=this.identifier)}}">
|
|
35
|
+
Download
|
|
36
|
+
</a>
|
|
37
|
+
</li>
|
|
38
|
+
{% endif %}
|
|
39
|
+
<li class="nav-item">
|
|
40
|
+
{{ vue_upload_button_tab_modal(this) }}
|
|
41
|
+
</li>
|
|
42
|
+
{% if not this.identifier.startswith(ns.local) %}
|
|
43
|
+
<li class="nav-item">
|
|
44
|
+
<a class="nav-link" href="{{this.identifier}}"
|
|
45
|
+
aria-label="Visit Page" title="Visit Page">
|
|
46
|
+
Visit
|
|
47
|
+
</a>
|
|
48
|
+
</li>
|
|
49
|
+
{% endif %}
|
|
50
|
+
</ul>
|
|
51
|
+
<div class="card mb-3">
|
|
52
|
+
{% if attributes.thumbnail %}<img class="card-img-top" src="{{url_for('entity.view', uri=attributes.thumbnail)}}" alt="{{attributes.label}}"/>
|
|
53
|
+
{% endif %}
|
|
54
|
+
<div class="card-header">
|
|
55
|
+
<div class="row g-2 align-items-center mt-2">
|
|
56
|
+
<div class="col">
|
|
57
|
+
<div class="fs-5 fw-semibold">{{attributes.label}}</div>
|
|
58
|
+
{% if attributes.type | length > 0 %}<div class="text-muted small">
|
|
57
59
|
{% for type in attributes.type %}{{type.label}}{% if not loop.last %}, {% endif %} {% endfor %}
|
|
58
60
|
</div>{% endif %}
|
|
59
61
|
</div>
|
|
60
62
|
</div>
|
|
61
|
-
</
|
|
62
|
-
|
|
63
|
-
<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
<div class="md-layout md-gutter">
|
|
68
|
-
<div class="md-layout-item">
|
|
69
|
-
<fedi-discussion></fedi-discussion>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="card-body">
|
|
65
|
+
<div class="row g-3">
|
|
66
|
+
<div class="col-12">
|
|
67
|
+
<fedi-discussion></fedi-discussion>
|
|
68
|
+
</div>
|
|
70
69
|
</div>
|
|
71
70
|
</div>
|
|
72
|
-
</
|
|
71
|
+
</div>
|
|
73
72
|
{% endblock %}
|
|
@@ -18,56 +18,55 @@
|
|
|
18
18
|
{% endblock %}
|
|
19
19
|
{% block content %}
|
|
20
20
|
{% set attributes = this | include("attributes") | fromjson %}
|
|
21
|
+
<ul class="nav nav-tabs card-header-tabs">
|
|
22
|
+
{% for v in this | get_views_list -%}
|
|
23
|
+
<li class="nav-item {% if v['view'].value == view %}active{% endif %}">
|
|
24
|
+
<a class="nav-link {% if v['view'].value == view %}active{% endif %}"
|
|
25
|
+
href="{{url_for('entity.view', uri=this.identifier, view=v['view'])}}">
|
|
26
|
+
{{v['label']}}
|
|
27
|
+
</a>
|
|
28
|
+
</li>
|
|
29
|
+
{%- endfor %}
|
|
30
|
+
{% if this.description().value(ns.whyis.hasFileID) %}
|
|
31
|
+
<li class="nav-item">
|
|
32
|
+
<a class="nav-link"
|
|
33
|
+
href="{{url_for('entity.view',uri=this.identifier)}}">
|
|
34
|
+
Download
|
|
35
|
+
</a>
|
|
36
|
+
</li>
|
|
37
|
+
{% endif %}
|
|
38
|
+
<li class="nav-item">
|
|
39
|
+
{{ vue_upload_button_tab_modal(this) }}
|
|
40
|
+
</li>
|
|
41
|
+
{% if not this.identifier.startswith(ns.local) %}
|
|
42
|
+
<li class="nav-item">
|
|
43
|
+
<a class="nav-link" href="{{this.identifier}}"
|
|
44
|
+
aria-label="Visit Page" title="Visit Page">
|
|
45
|
+
Visit
|
|
46
|
+
</a>
|
|
47
|
+
</li>
|
|
48
|
+
{% endif %}
|
|
49
|
+
</ul>
|
|
21
50
|
|
|
22
|
-
<
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</a>
|
|
31
|
-
</li>
|
|
32
|
-
{%- endfor %}
|
|
33
|
-
{% if this.description().value(ns.whyis.hasFileID) %}
|
|
34
|
-
<li class="nav-item">
|
|
35
|
-
<a class="nav-link"
|
|
36
|
-
href="{{url_for('entity.view',uri=this.identifier)}}">
|
|
37
|
-
Download
|
|
38
|
-
</a>
|
|
39
|
-
</li>
|
|
40
|
-
{% endif %}
|
|
41
|
-
<li class="nav-item">
|
|
42
|
-
{{ vue_upload_button_tab_modal(this) }}
|
|
43
|
-
</li>
|
|
44
|
-
{% if not this.identifier.startswith(ns.local) %}
|
|
45
|
-
<li class="nav-item">
|
|
46
|
-
<a class="nav-link" href="{{this.identifier}}"
|
|
47
|
-
aria-label="Visit Page" title="Visit Page">
|
|
48
|
-
Visit
|
|
49
|
-
</a>
|
|
50
|
-
</li>
|
|
51
|
-
{% endif %}
|
|
52
|
-
</ul>
|
|
53
|
-
<div class="md-layout md-gutter md-alignment-center-left" style = "margin-top: 6px;">
|
|
54
|
-
<div class = "md-layout-item">
|
|
55
|
-
<div class="md-title">{{attributes.label}}</div>
|
|
56
|
-
{% if attributes.type | length > 0 %}<div class="md-subhead" style="max-width: fit-content;">
|
|
51
|
+
<div class="card mb-3">
|
|
52
|
+
{% if attributes.thumbnail %}<img class="card-img-top" src="{{url_for('entity.view', uri=attributes.thumbnail)}}" alt="{{attributes.label}}"/>
|
|
53
|
+
{% endif %}
|
|
54
|
+
<div class="card-header">
|
|
55
|
+
<div class="row g-2 align-items-center mt-2">
|
|
56
|
+
<div class="col">
|
|
57
|
+
<div class="fs-5 fw-semibold">{{attributes.label}}</div>
|
|
58
|
+
{% if attributes.type | length > 0 %}<div class="text-muted small">
|
|
57
59
|
{% for type in attributes.type %}{{type.label}}{% if not loop.last %}, {% endif %} {% endfor %}
|
|
58
60
|
</div>{% endif %}
|
|
59
61
|
</div>
|
|
60
62
|
</div>
|
|
61
|
-
</
|
|
62
|
-
|
|
63
|
-
<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
<div class="md-layout md-gutter">
|
|
68
|
-
<div class="md-layout-item">
|
|
69
|
-
<fedi-discussion entity="{{this.identifier}}"></fedi-discussion>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="card-body">
|
|
65
|
+
<div class="row g-3">
|
|
66
|
+
<div class="col-12">
|
|
67
|
+
<fedi-discussion entity="{{this.identifier}}"></fedi-discussion>
|
|
68
|
+
</div>
|
|
70
69
|
</div>
|
|
71
70
|
</div>
|
|
72
|
-
</
|
|
71
|
+
</div>
|
|
73
72
|
{% endblock %}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<img src="{{url_for('entity.view', uri=this.identifier)}}", alt="{{g.get_label(this)}}">
|
|
1
|
+
<img class="img-fluid" src="{{url_for('entity.view', uri=this.identifier)}}", alt="{{g.get_label(this)}}">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{% if this.value(ns.foaf.depiction) %}
|
|
2
|
-
<img src="{{url_for('entity.view', uri=this.value(ns.foaf.depiction).identifier)}}", alt="{{g.get_label(this)}}">
|
|
2
|
+
<img class="img-fluid" src="{{url_for('entity.view', uri=this.value(ns.foaf.depiction).identifier)}}", alt="{{g.get_label(this)}}">
|
|
3
3
|
{% else %}
|
|
4
|
-
<div class="
|
|
4
|
+
<div class="img-fluid" class="fw-semibold">{{g.get_label(this)}}</div>
|
|
5
5
|
{% endif %}
|
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
<script type="module" src="{{url_for('static',filename='plugins/fediverse/js/post_view.js')}}"></script>
|
|
17
17
|
{% endblock %}
|
|
18
18
|
{% block content %}
|
|
19
|
-
<
|
|
20
|
-
<div class="
|
|
21
|
-
<div class="
|
|
22
|
-
<
|
|
19
|
+
<div class="card mb-3">
|
|
20
|
+
<div class="card-body">
|
|
21
|
+
<div class="row g-3">
|
|
22
|
+
<div class="col-12">
|
|
23
|
+
<fedi-post-view object="{{this.identifier}}"></fedi-post-view>
|
|
24
|
+
</div>
|
|
23
25
|
</div>
|
|
24
26
|
</div>
|
|
25
|
-
</
|
|
27
|
+
</div>
|
|
26
28
|
{% endblock %}
|