Browse Source

Changing the display of files and folders in the workspace content page

AlexiCauvin 6 years ago
parent
commit
e1a906bce2

+ 13 - 13
jsonserver/static_db.json View File

105
         "id": 1,
105
         "id": 1,
106
         "parent_id": null,
106
         "parent_id": null,
107
         "workspace_id": 1,
107
         "workspace_id": 1,
108
-        "title": "Design v2",
108
+        "title": "Modification Design v2",
109
         "type": "PageHtml",
109
         "type": "PageHtml",
110
         "status": "validated"
110
         "status": "validated"
111
       },
111
       },
113
         "id": 2,
113
         "id": 2,
114
         "parent_id": null,
114
         "parent_id": null,
115
         "workspace_id": 1,
115
         "workspace_id": 1,
116
-        "title": "La programmation fonctionnelle est-elle vraiment utile ?",
116
+        "title": "Doit-on intégrer la nouvelle fonctionnalité de tracim maintenant ?",
117
         "type": "Thread",
117
         "type": "Thread",
118
         "status": "current"
118
         "status": "current"
119
       },
119
       },
121
         "id": 6,
121
         "id": 6,
122
         "parent_id": null,
122
         "parent_id": null,
123
         "workspace_id": 1,
123
         "workspace_id": 1,
124
-        "title": "Une photo",
124
+        "title": "Maquette.png Tracim v3",
125
         "type": "File",
125
         "type": "File",
126
         "status": "outdated"
126
         "status": "outdated"
127
       },
127
       },
145
         "id": 8,
145
         "id": 8,
146
         "parent_id": null,
146
         "parent_id": null,
147
         "workspace_id": 1,
147
         "workspace_id": 1,
148
-        "title": "Fixe du fichier css",
148
+        "title": "Correction du fichier css",
149
         "type": "Issue",
149
         "type": "Issue",
150
         "status": "current"
150
         "status": "current"
151
       },
151
       },
153
         "id": 3,
153
         "id": 3,
154
         "parent_id": null,
154
         "parent_id": null,
155
         "workspace_id": 1,
155
         "workspace_id": 1,
156
-        "title": "Programmation objet",
156
+        "title": "Correction bug tracim",
157
         "type": "folder",
157
         "type": "folder",
158
         "allowed_app": ["PageHtml", "Thread", "File", "PageMarkdown", "Task", "Issue"],
158
         "allowed_app": ["PageHtml", "Thread", "File", "PageMarkdown", "Task", "Issue"],
159
         "content": []
159
         "content": []
165
       "id": 4,
165
       "id": 4,
166
       "parent_id": 3,
166
       "parent_id": 3,
167
       "workspace_id": 1,
167
       "workspace_id": 1,
168
-      "title": "Backend appli n°578",
168
+      "title": "Schema Backend tracim v2",
169
       "type": "File",
169
       "type": "File",
170
       "status": "outdated"
170
       "status": "outdated"
171
     },
171
     },
173
       "id": 5,
173
       "id": 5,
174
       "parent_id": 3,
174
       "parent_id": 3,
175
       "workspace_id": 1,
175
       "workspace_id": 1,
176
-      "title": "La programmation fonctionnelle",
176
+      "title": "Modification design v2",
177
       "type": "PageHtml",
177
       "type": "PageHtml",
178
       "status": "outdated"
178
       "status": "outdated"
179
     },
179
     },
181
       "id": 11,
181
       "id": 11,
182
       "parent_id": 3,
182
       "parent_id": 3,
183
       "workspace_id": 1,
183
       "workspace_id": 1,
184
-      "title": "ticket à fixe",
184
+      "title": "Correction à effectuer sur le frontend de Tracim v2",
185
       "type": "folder",
185
       "type": "folder",
186
       "allowed_app": ["PageHtml", "Thread", "File", "PageMarkdown", "Task", "Issue"],
186
       "allowed_app": ["PageHtml", "Thread", "File", "PageMarkdown", "Task", "Issue"],
187
       "content": []
187
       "content": []
192
       "id": 12,
192
       "id": 12,
193
       "parent_id": 11,
193
       "parent_id": 11,
194
       "workspace_id": 1,
194
       "workspace_id": 1,
195
-      "title": "ticket à fixe",
195
+      "title": "Liste des correction à effectuer",
196
       "type": "PageHtml",
196
       "type": "PageHtml",
197
       "status": "current"
197
       "status": "current"
198
     },
198
     },
200
       "id": 13,
200
       "id": 13,
201
       "parent_id": 11,
201
       "parent_id": 11,
202
       "workspace_id": 1,
202
       "workspace_id": 1,
203
-      "title": "issue n°555",
203
+      "title": "Ticket Prioritaire",
204
       "type": "Issue",
204
       "type": "Issue",
205
       "status": "current"
205
       "status": "current"
206
     }
206
     }
260
   "content_data_pageHtml": {
260
   "content_data_pageHtml": {
261
     "id": "1",
261
     "id": "1",
262
     "type": "pageHtml",
262
     "type": "pageHtml",
263
-    "title": "La programmation fonctionnelle",
263
+    "title": "Modification Design v2",
264
     "status": "validated",
264
     "status": "validated",
265
     "icon": "fa fa-fw fa-code-fork",
265
     "icon": "fa fa-fw fa-code-fork",
266
     "version": "version n°5",
266
     "version": "version n°5",
274
   "content_data_thread": {
274
   "content_data_thread": {
275
     "id": 2,
275
     "id": 2,
276
     "type": "thread",
276
     "type": "thread",
277
-    "title": "La programmation fonctionnelle est-elle vraiment utile ?",
277
+    "title": "Doit-on intégrer la nouvelle fonctionnalité de tracim maintenant ?",
278
     "status": "validated",
278
     "status": "validated",
279
     "message_list": [{
279
     "message_list": [{
280
       "id": 0,
280
       "id": 0,
340
   },
340
   },
341
   "workspace_list": [{
341
   "workspace_list": [{
342
     "id": 0,
342
     "id": 0,
343
-    "title": "Ressources humaine"
343
+    "title": "Dev Tracim"
344
   }, {
344
   }, {
345
     "id": 1,
345
     "id": 1,
346
     "title": "Marketing"
346
     "title": "Marketing"

+ 25 - 17
src/component/Workspace/FileItem.jsx View File

1
 import React from 'react'
1
 import React from 'react'
2
 import PropTypes from 'prop-types'
2
 import PropTypes from 'prop-types'
3
 import classnames from 'classnames'
3
 import classnames from 'classnames'
4
+import BtnExtandedAction from '../BtnExtandedAction/ExtandedAction.jsx'
4
 
5
 
5
 const FileItem = props => {
6
 const FileItem = props => {
6
   const iconStatus = (() => {
7
   const iconStatus = (() => {
50
         </div>
51
         </div>
51
       </div>
52
       </div>
52
 
53
 
53
-      <div className='col-8 col-sm-8 col-md-8 col-lg-8 col-xl-10'>
54
+      <div className='col-8 col-sm-8 col-md-8 col-lg-8 col-xl-9'>
54
         <div className='file__name'>
55
         <div className='file__name'>
55
           <div className='file__name__text'>
56
           <div className='file__name__text'>
56
             { props.name }
57
             { props.name }
57
           </div>
58
           </div>
58
-          <div className='file__name__icons d-none d-md-flex'>
59
-            <div className='file__name__icons__download'>
60
-              <i className='fa fa-download' />
61
-            </div>
62
-            <div className='file__name__icons__archive'>
63
-              <i className='fa fa-archive' />
64
-            </div>
65
-            <div className='file__name__icons__delete'>
66
-              <i className='fa fa-trash-o' />
67
-            </div>
59
+
60
+          <div className='d-none d-md-flex'>
61
+            <BtnExtandedAction />
68
           </div>
62
           </div>
63
+
64
+          {/*
65
+            <div className='file__name__icons d-none d-md-flex'>
66
+              <div className='file__name__icons__download'>
67
+                <i className='fa fa-download' />
68
+              </div>
69
+              <div className='file__name__icons__archive'>
70
+                <i className='fa fa-archive' />
71
+              </div>
72
+              <div className='file__name__icons__delete'>
73
+                <i className='fa fa-trash-o' />
74
+              </div>
75
+            </div>
76
+          */ }
69
         </div>
77
         </div>
70
       </div>
78
       </div>
71
 
79
 
72
-      <div className='col-2 col-sm-2 col-md-2 col-lg-2 col-xl-1'>
73
-        <div className={classnames('file__status') + colorStatus}>
74
-          <div className='file__status__text d-none d-lg-block text-center'>
75
-            {textStatus}
76
-          </div>
77
-          <div className='file__status__icon d-block d-lg-none text-center'>
80
+      <div className='col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2'>
81
+        <div className={classnames('file__status d-flex align-items-center justify-content-center') + colorStatus}>
82
+          <div className='file__status__icon d-block mr-3'>
78
             <i className={iconStatus} />
83
             <i className={iconStatus} />
79
           </div>
84
           </div>
85
+          <div className='file__status__text d-none d-xl-block'>
86
+            {textStatus}
87
+          </div>
80
         </div>
88
         </div>
81
       </div>
89
       </div>
82
     </div>
90
     </div>

+ 2 - 2
src/component/Workspace/FileItemHeader.jsx View File

9
           {props.t('FileItemHeader.type')}
9
           {props.t('FileItemHeader.type')}
10
         </div>
10
         </div>
11
       </div>
11
       </div>
12
-      <div className='col-8 col-sm-8 col-md-8 col-lg-8 col-xl-10'>
12
+      <div className='col-8 col-sm-8 col-md-8 col-lg-8 col-xl-9'>
13
         <div className='file__header__name'>
13
         <div className='file__header__name'>
14
           {props.t('FileItemHeader.document_name')}
14
           {props.t('FileItemHeader.document_name')}
15
         </div>
15
         </div>
16
       </div>
16
       </div>
17
-      <div className='col-2 col-sm-2 col-md-2 col-lg-2 col-xl-1'>
17
+      <div className='col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2'>
18
         <div className='file__header__status'>
18
         <div className='file__header__status'>
19
           {props.t('FileItemHeader.status')}
19
           {props.t('FileItemHeader.status')}
20
         </div>
20
         </div>

+ 21 - 33
src/component/Workspace/Folder.jsx View File

3
 import PropTypes from 'prop-types'
3
 import PropTypes from 'prop-types'
4
 import classnames from 'classnames'
4
 import classnames from 'classnames'
5
 import FileItem from './FileItem.jsx'
5
 import FileItem from './FileItem.jsx'
6
-import PopupExtandedAction from '../../container/PopupExtandedAction.jsx'
6
+// import PopupExtandedAction from '../../container/PopupExtandedAction.jsx'
7
+import BtnExtandedAction from '../BtnExtandedAction/ExtandedAction.jsx'
7
 
8
 
8
 class Folder extends React.Component {
9
 class Folder extends React.Component {
9
   constructor (props) {
10
   constructor (props) {
10
     super(props)
11
     super(props)
11
     this.state = {
12
     this.state = {
12
-      open: false,
13
-      openExtandedAction: false
13
+      open: false
14
     }
14
     }
15
   }
15
   }
16
 
16
 
24
     console.log('new file') // @TODO
24
     console.log('new file') // @TODO
25
   }
25
   }
26
 
26
 
27
-  handleClickModify = e => {
28
-    e.stopPropagation() // because we have a link inside a link (togler and newFile)
29
-    console.log('modifier') // @TODO
30
-  }
31
-
32
-  handleClickToggleExtandedAction = e => {
27
+  handleClickStopEvent = e => {
33
     e.stopPropagation()
28
     e.stopPropagation()
34
-
35
-    this.setState(prevState => ({
36
-      openExtandedAction: !prevState.openExtandedAction
37
-    }))
29
+    console.log('stop')
38
   }
30
   }
39
 
31
 
40
   render () {
32
   render () {
60
             </div>
52
             </div>
61
           </div>
53
           </div>
62
 
54
 
63
-          <div className='col-10 col-sm-10 col-md-10 col-lg-10 col-xl-11'>
55
+          <div className='col-10 col-sm-10 col-md-8 col-lg-8 col-xl-9'>
64
             <div className='folder__header__name align-items-center justify-content-between'>
56
             <div className='folder__header__name align-items-center justify-content-between'>
65
 
57
 
66
               <div className='folder__header__name__text'>
58
               <div className='folder__header__name__text'>
70
               <div className='folder__header__name__button d-flex align-items-center '>
62
               <div className='folder__header__name__button d-flex align-items-center '>
71
 
63
 
72
                 <div
64
                 <div
73
-                  className='folder__header__name__button__advancedbtn btn btn-outline-primary d-none d-md-block'
74
-                  onClick={this.handleClickToggleExtandedAction}
65
+                  className='folder__header__name__button__addbtn mx-4'
66
+                  onClick={this.handleClickNewFile}
75
                 >
67
                 >
76
-                  <i className='fa fa-fw fa-ellipsis-h' />
77
-                </div>
78
-
79
-                {this.state.openExtandedAction === true &&
80
-                  <PopupExtandedAction
81
-                    openExtandedAction={this.state.openExtandedAction}
82
-                    onClickCloseBtn={this.handleClickToggleExtandedAction}
83
-                  />
84
-                }
85
-
86
-                <div className='folder__header__name__button__addbtn mx-4' onClick={this.handleClickNewFile}>
87
                   <button className='addbtn__text btn btn-outline-primary dropdown-toggle' type='button' id='dropdownMenuButton' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>
68
                   <button className='addbtn__text btn btn-outline-primary dropdown-toggle' type='button' id='dropdownMenuButton' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>
88
                     {t('Folder.create')} ...
69
                     {t('Folder.create')} ...
89
                   </button>
70
                   </button>
95
                           <i className='fa fa-fw fa-folder-o' />
76
                           <i className='fa fa-fw fa-folder-o' />
96
                         </div>
77
                         </div>
97
                         <div className='subdropdown__link__folder__text'>
78
                         <div className='subdropdown__link__folder__text'>
98
-                          Créer un Dossier
79
+                          Créer un dossier
99
                         </div>
80
                         </div>
100
                       </div>
81
                       </div>
101
                     </div>
82
                     </div>
105
                           <i className='fa fa-fw fa-file-text-o' />
86
                           <i className='fa fa-fw fa-file-text-o' />
106
                         </div>
87
                         </div>
107
                         <div className='subdropdown__link__apphtml__text'>
88
                         <div className='subdropdown__link__apphtml__text'>
108
-                          Créer une page Html
89
+                          Rédiger un document
109
                         </div>
90
                         </div>
110
                       </div>
91
                       </div>
111
                     </div>
92
                     </div>
125
                           <i className='fa fa-fw fa-file-code-o' />
106
                           <i className='fa fa-fw fa-file-code-o' />
126
                         </div>
107
                         </div>
127
                         <div className='subdropdown__link__appmarkdown__text'>
108
                         <div className='subdropdown__link__appmarkdown__text'>
128
-                          Créer une page markdown
109
+                          Rédiger un document markdown
129
                         </div>
110
                         </div>
130
                       </div>
111
                       </div>
131
                     </div>
112
                     </div>
135
                           <i className='fa fa-fw fa-comments-o' />
116
                           <i className='fa fa-fw fa-comments-o' />
136
                         </div>
117
                         </div>
137
                         <div className='subdropdown__link__appthread__text'>
118
                         <div className='subdropdown__link__appthread__text'>
138
-                          Créer une discussion
119
+                          Lancer une discussion
139
                         </div>
120
                         </div>
140
                       </div>
121
                       </div>
141
                     </div>
122
                     </div>
155
                           <i className='fa fa-fw fa-ticket' />
136
                           <i className='fa fa-fw fa-ticket' />
156
                         </div>
137
                         </div>
157
                         <div className='subdropdown__link__appissue__text'>
138
                         <div className='subdropdown__link__appissue__text'>
158
-                          Créer un ticket
139
+                          Ouvrir un ticket
159
                         </div>
140
                         </div>
160
                       </div>
141
                       </div>
161
                     </div>
142
                     </div>
162
                   </div>
143
                   </div>
163
                 </div>
144
                 </div>
164
 
145
 
146
+                <div className='d-none d-md-flex'>
147
+                  <BtnExtandedAction onClickStopEvent={this.handleClickStopEvent} />
148
+                </div>
149
+
165
               </div>
150
               </div>
166
             </div>
151
             </div>
167
           </div>
152
           </div>
153
+
154
+          <div className='col-0 col-sm-0 col-md-2 col-lg-2 col-xl-2' />
155
+
168
         </div>
156
         </div>
169
 
157
 
170
-          {/*
158
+        {/*
171
           <div className='col-5 col-sm-5 col-md-5 col-lg-4 col-xl-3 d-none'>
159
           <div className='col-5 col-sm-5 col-md-5 col-lg-4 col-xl-3 d-none'>
172
             <div className='folder__header__contenttype d-none d-sm-flex'>
160
             <div className='folder__header__contenttype d-none d-sm-flex'>
173
               <div className='folder__header__contenttype__text d-none d-lg-flex'>
161
               <div className='folder__header__contenttype__text d-none d-lg-flex'>