Skip to content

Commit 723b221

Browse files
FIX: Document's attributes should be in a copyright (see Hypertopic#570).
This puts the creator and created attributes under the image on narrow screens. Co-authored-by: Sandekuku <[email protected]>
1 parent 0b8af37 commit 723b221

File tree

5 files changed

+132
-65
lines changed

5 files changed

+132
-65
lines changed

src/components/itemPage/Attribute.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class Attribute extends React.Component {
4141

4242
render() {
4343
return (
44-
<div className="Attribute">
44+
<div className={`Attribute ${this.props.className}`}>
4545
<div className="Key">
4646
{this.props.name}
4747
</div>

src/components/itemPage/Item.jsx

+25-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,22 @@ import Hypertopic from 'hypertopic';
44
import groupBy from 'json-groupby';
55
import { Helmet } from 'react-helmet';
66
import conf from '../../config.js';
7-
import { Items } from '../../model.js';
7+
import { HIDDEN_ON_MOBILE, Items } from '../../model.js';
88
import Viewpoint from './Viewpoint.jsx';
99
import Attribute from './Attribute.jsx';
1010
import Resource from './Resource.jsx';
1111
import Header from '../Header.jsx';
1212
import SameNameBlock from './SameNameBlock.jsx';
1313
import { DiscussionEmbed } from 'disqus-react';
1414
import { t, Trans } from '@lingui/macro';
15+
import Copyright from './Copyright.jsx';
1516

17+
/**
18+
* Gets a string representation of an object. If the object is an array,
19+
* joins the representations of its elements with commas.
20+
* @param {any} obj object to convert
21+
* @returns {string} the string representation
22+
*/
1623
function getString(obj) {
1724
if (Array.isArray(obj)) {
1825
return obj.map(val => getString(val)).join(', ');
@@ -40,6 +47,7 @@ class Item extends Component {
4047
render() {
4148
let name = getString(this.state.item.name);
4249
let attributes = this._getAttributes();
50+
const { creator, created } = this.state.item;
4351
let viewpoints = this._getViewpoints();
4452
let sameNameBlock = this._getSameNameBlock();
4553
const { visitMap } = this.state;
@@ -98,6 +106,9 @@ class Item extends Component {
98106
<div className="Subject">
99107
<h2 className="h4 font-weight-bold text-center">{name}</h2>
100108
<Resource href={this.state.item.resource} />
109+
<div className="d-block d-sm-none">
110+
<Copyright creator={creator} created={created} />
111+
</div>
101112
</div>
102113
<Comments appId={this.state.disqus} item={this.state.item} />
103114
</div>
@@ -109,10 +120,19 @@ class Item extends Component {
109120

110121
_getAttributes() {
111122
return new Items([this.state.item]).getAttributes()
112-
.map(x => (
113-
<Attribute key={x[0]} name={x[0]} value={x[1]}
114-
setAttribute={this._setAttribute} deleteAttribute={this._deleteAttribute}/>
115-
));
123+
.map(attribute => {
124+
const className = HIDDEN_ON_MOBILE.includes(attribute[0]) ? 'd-none d-sm-table-row' : '';
125+
return (
126+
<Attribute
127+
className={className}
128+
key={attribute[0]}
129+
name={attribute[0]}
130+
value={attribute[1]}
131+
setAttribute={this._setAttribute}
132+
deleteAttribute={this._deleteAttribute}
133+
/>
134+
);
135+
});
116136
}
117137

118138
_getViewpoints() {

src/locales/en/messages.po

+49-29
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,27 @@ msgstr ""
1313
"Language-Team: \n"
1414
"Plural-Forms: \n"
1515

16+
#: src/components/registerPage/Register.jsx:78
17+
msgid "Adresse email"
18+
msgstr ""
19+
20+
#: src/components/registerPage/Register.jsx:73
21+
#~ msgid "Adresse mail"
22+
#~ msgstr "Email address"
23+
1624
#: src/components/viewpointPage/Contributors.jsx:28
1725
msgid "Ajouter"
1826
msgstr "Add"
1927

20-
#: src/components/itemPage/Item.jsx:234
28+
#: src/components/itemPage/Item.jsx:279
2129
msgid "Ajouter un attribut et une valeur..."
2230
msgstr "Add an attribute and a value..."
2331

2432
#: src/components/itemPage/Viewpoint.jsx:76
2533
msgid "Ajouter une rubrique..."
2634
msgstr "Add a topic..."
2735

28-
#: src/components/itemPage/Item.jsx:58
36+
#: src/components/itemPage/Item.jsx:92
2937
msgid "Attributs du document"
3038
msgstr "Document attributes"
3139

@@ -37,11 +45,15 @@ msgstr "Choose a parent topic..."
3745
msgid "Contributeurs"
3846
msgstr "Contributors"
3947

40-
#: src/components/viewpointPage/Outliner.jsx:78
48+
#: src/components/viewpointPage/Outliner.jsx:80
4149
msgid "Création du point de vue"
4250
msgstr "Create a viewpoint"
4351

44-
#: src/components/itemPage/Item.jsx:55
52+
#: src/components/viewpointPage/Outliner.jsx:71
53+
msgid "Créer"
54+
msgstr ""
55+
56+
#: src/components/itemPage/Item.jsx:89
4557
msgid "Description"
4658
msgstr "Description"
4759

@@ -66,10 +78,14 @@ msgstr "Include"
6678
msgid "Items ayant le même nom"
6779
msgstr "Items having the same name"
6880

69-
#: src/components/viewpointPage/Outliner.jsx:77
81+
#: src/components/viewpointPage/Outliner.jsx:79
7082
msgid "Modification du point de vue"
7183
msgstr "Edit a viewpoint"
7284

85+
#: src/components/registerPage/Register.jsx:82
86+
msgid "Mot de passe"
87+
msgstr "Password"
88+
7389
#: src/components/viewpointPage/Outliner.jsx:68
7490
msgid "Nom du point de vue"
7591
msgstr "Viewpoint name"
@@ -87,71 +103,75 @@ msgstr "Or"
87103
msgid "Pas de contributeurs"
88104
msgstr "No contributors"
89105

90-
#: src/components/portfolioPage/Portfolio.jsx:52
106+
#: src/components/portfolioPage/Portfolio.jsx:71
91107
msgid "Points de vue"
92108
msgstr "Viewpoints"
93109

94-
#: src/components/portfolioPage/SearchBar.jsx:47
110+
#: src/components/registerPage/Register.jsx:73
111+
msgid "Pseudonyme"
112+
msgstr "Pseudonym"
113+
114+
#: src/components/portfolioPage/SearchBar.jsx:55
95115
msgid "Rechercher..."
96116
msgstr "Search..."
97117

98-
#: src/components/itemPage/Item.jsx:48
118+
#: src/components/itemPage/Item.jsx:82
99119
#: src/components/viewpointPage/Outliner.jsx:37
100120
msgid "Retour à l'accueil"
101121
msgstr "Go back to home page"
102122

123+
#: src/components/itemPage/Item.jsx:82
124+
msgid "Retour à la visite"
125+
msgstr ""
126+
103127
#: src/components/portfolioPage/Status.jsx:25
104128
msgid "Rubrique inconnue"
105129
msgstr "Unknown topic"
106130

107-
#: src/components/Authenticated.jsx:30
131+
#: src/components/Authenticated.jsx:40
132+
msgid "S'inscrire..."
133+
msgstr "Register..."
134+
135+
#: src/components/Authenticated.jsx:31
108136
msgid "Se connecter"
109137
msgstr "Log in"
110138

111-
#: src/components/Authenticated.jsx:36
139+
#: src/components/Authenticated.jsx:37
112140
msgid "Se connecter..."
113141
msgstr "Log in..."
114142

115-
#: src/components/Authenticated.jsx:21
143+
#: src/components/Authenticated.jsx:22
116144
msgid "Se déconnecter"
117145
msgstr "Log out"
118146

119147
#: src/components/portfolioPage/Status.jsx:11
120148
msgid "Tous les items"
121149
msgstr "All items"
122150

123-
#: src/components/itemPage/Item.jsx:325
151+
#: src/components/itemPage/Item.jsx:370
124152
msgid "Voulez-vous réellement que l'item affiché ne soit plus décrit à l'aide de cette rubrique ?"
125153
msgstr "Remove this topic for this item?"
126154

127-
#: src/components/itemPage/Item.jsx:236
155+
#: src/components/itemPage/Item.jsx:281
128156
msgid "attribut : valeur"
129157
msgstr "attribute: value"
130158

131-
#: src/components/Authenticated.jsx:29
159+
#: src/components/Authenticated.jsx:30
132160
msgid "mot de passe"
133161
msgstr "Password"
134162

135-
#: src/components/Authenticated.jsx:28
163+
#: src/components/Authenticated.jsx:29
136164
msgid "nom d'utilisateur"
137165
msgstr "Username"
138166

139167
#: src/components/itemPage/Attribute.jsx:93
140168
msgid "valeur"
141169
msgstr "value"
142170

143-
#: src/components/Authenticated.jsx:42
144-
msgid "S'inscrire..."
145-
msgstr "Register..."
171+
#: src/components/itemPage/Copyright.jsx:7
172+
#~ msgid "© {creator}, {created}"
173+
#~ msgstr "© {creator}, {created}"
146174

147-
#: src/components/registerPage/Register.jsx:68
148-
msgid "Pseudonyme"
149-
msgstr "Pseudonym"
150-
151-
#: src/components/registerPage/Register.jsx:73
152-
msgid "Adresse mail"
153-
msgstr "Email address"
154-
155-
#: src/components/registerPage/Register.jsx:77
156-
msgid "Mot de passe"
157-
msgstr "Password"
175+
#: src/components/itemPage/Copyright.jsx:21
176+
msgid "© {creator}, {yearOrDate}"
177+
msgstr "© {creator}, {yearOrDate}"

0 commit comments

Comments
 (0)