Browse Source

pb Arrow Sort + Categorie Sort ok

Kongzibapt 3 years ago
parent
commit
c684a6a388
3 changed files with 49 additions and 32 deletions
  1. 13
    28
      src/js/Components/ArticlesByCategory.js
  2. 1
    1
      src/js/Components/Sort.js
  3. 35
    3
      src/js/Views/Stock.js

+ 13
- 28
src/js/Components/ArticlesByCategory.js View File

@@ -6,51 +6,36 @@ class ArticlesByCategory extends React.Component {
6 6
     constructor(props){
7 7
         super(props)
8 8
         this.state = {
9
-            articles:this.props.articles
10 9
         }
11 10
     }
12 11
 
13 12
     componentDidMount(){
14
-      this.splitArticlesCategories()
15
-    }
16
-
17
-    componentDidUpdate(){
18
-        console.log(this.state.articles);
19
-        
20
-    }
21
-
22
-    splitArticlesCategories = () => {
23
-        let counterTab = 0;
24
-        let divided = [];
25
-        divided.push([this.state.articles[0]])
26
-        for (let i = 1; i<this.state.articles.length;i++){
27
-          if (this.state.articles[i].category_id === this.state.articles[i-1].category_id){
28
-            divided[counterTab].push(this.state.articles[i])
29
-          } else {
30
-           counterTab++
31
-           divided.push([this.state.articles[i]])
13
+      let articles = document.getElementById("articles")
14
+        for (let i = 0; i<articles.childElementCount;i++){
15
+          for (let j = 0; j<articles.children[i].children[2].childElementCount; j++){
16
+            console.log(articles.children[i].children[2].childElementCount);
17
+            if (this.props.articles[i][j].quantity === 0){
18
+              this.props.colorArticle("red",articles.children[i].children[2].children[j])
19
+            }
32 20
           }
33 21
         }
34
-        this.setState({articles:divided},()=>{
35
-          console.log(this.state.articles)
36
-        })
37
-        
38
-      }
22
+    }
23
+
24
+    
39 25
 
40 26
     
41 27
     render() {
42
-        console.log(this.state.articles)
43 28
       return (
44 29
           <div id="articleContainer">
45 30
             <div id="articles">
46
-                {this.state.articles[0][0] &&
47
-                    this.state.articles.map((divided) => 
31
+                {this.props.articles[0][0] &&
32
+                    this.props.articles.map((divided) => 
48 33
                         <div id="categoryBlock">
49 34
                             <p id="categoryName">{divided[0].category.name}</p>
50 35
                             <div id="underlinment"></div>
51 36
                             <div id="bulles">
52 37
                                 {divided.map((article) =>
53
-                                <ArticleDetails squaredBubble={true} handleCategories={this.props.handleCategories} editArticle={this.props.editionArticle} key={article.id} id={article.id} name={article.name} img={article.image} desc={article.description} price={article.price} quantity={article.quantity} code={article.code} category={article.category}/>
38
+                                <ArticleDetails selectArticles={this.props.selectArticles} squaredBubble={true} handleCategories={this.props.handleCategories} editArticle={this.props.editionArticle} key={article.id} id={article.id} name={article.name} img={article.image} desc={article.description} price={article.price} quantity={article.quantity} code={article.code} category={article.category}/>
54 39
                                 )}
55 40
                             </div>
56 41
                         </div>

+ 1
- 1
src/js/Components/Sort.js View File

@@ -93,7 +93,7 @@ class Sort extends Component {
93 93
                 <div id="selectAndOrder">
94 94
                     <div id="selectBlock">
95 95
                         <div id={this.state.unwound ? 'unwoundMenu' : 'selectBox'}  >
96
-                            <select id='sortSelect' onClick={this.changeArrowDirection} onChange={this.handleChangeSortType}>
96
+                            <select id='sortSelect' onBlur={this.changeArrowDirection} onClick={this.changeArrowDirection} onChange={this.handleChangeSortType}>
97 97
                                 <option className="optionSort" value="name">Ordre Alphabétique</option>
98 98
                                 <option className="optionSort" value="category_id">Catégorie</option>
99 99
                                 <option className="optionSort" value="quantity">Quantité</option>

+ 35
- 3
src/js/Views/Stock.js View File

@@ -39,7 +39,7 @@ export default class Stock extends React.Component {
39 39
       selectedArticles:[],
40 40
       counter:0,
41 41
       code:'',
42
-
42
+      dividedArticles:[]
43 43
     }
44 44
   }
45 45
 
@@ -297,6 +297,7 @@ updateArticle = (index,id) => {
297 297
     //TRI PAR CATEGORIE
298 298
     if (sortType === 'category_id'){
299 299
       this.setState({articles:sorted},() => {
300
+        this.splitArticlesCategories()
300 301
         this.setState({onSortedCategories:true})
301 302
       })
302 303
     }else{
@@ -393,7 +394,9 @@ updateArticle = (index,id) => {
393 394
     axios.post('https://etud.insa-toulouse.fr/~proximo/v2/api/articles',bodyFormData)
394 395
             .then(res => {
395 396
                 this.setState({articles : res.data}, () => {
396
-                    console.log(this.state.articles)
397
+                  if (this.state.sortType === "category_id"){
398
+                    this.splitArticlesCategories()
399
+                  }
397 400
                 })
398 401
             })
399 402
             .catch(error => {
@@ -401,6 +404,35 @@ updateArticle = (index,id) => {
401 404
             })
402 405
   }
403 406
 
407
+  splitArticlesCategories = () => {
408
+    let counterTab = 0;
409
+    let divided = [];
410
+    divided.push([this.state.articles[0]])
411
+    for (let i = 1; i<this.state.articles.length;i++){
412
+      if (this.state.articles[i].category_id === this.state.articles[i-1].category_id){
413
+        divided[counterTab].push(this.state.articles[i])
414
+      } else {
415
+       counterTab++
416
+       divided.push([this.state.articles[i]])
417
+      }
418
+    }
419
+    this.setState({dividedArticles:divided},()=>{
420
+      this.getElementandColor()
421
+    })
422
+    
423
+  }
424
+
425
+  getElementandColor () {
426
+    let articles = document.getElementById("articles")
427
+        for (let i = 0; i<articles.childElementCount;i++){
428
+          for (let j = 0; j<articles.children[i].children[2].childElementCount; j++){
429
+            if (this.state.dividedArticles[i][j].quantity === 0){
430
+              this.colorArticle("red",articles.children[i].children[2].children[j])
431
+            }
432
+          }
433
+        }
434
+  }
435
+
404 436
   handleSearchChange = event => {
405 437
     this.setState({search : event.target.value},()=>
406 438
     {
@@ -451,7 +483,7 @@ updateArticle = (index,id) => {
451 483
               <div id="articleBlock">
452 484
               {this.state.articles && this.state.articles[0] ? 
453 485
                 this.state.onSortedCategories ?
454
-                  <ArticlesByCategory  onSearch={this.state.onSearch} handleCategories={this.handleCategories} articles={this.state.articles} editionArticle={this.handleArticleEdition}/>
486
+                  <ArticlesByCategory selectArticles={this.selectArticles} colorArticle={this.colorArticle} handleCategories={this.handleCategories} articles={this.state.dividedArticles} editionArticle={this.handleArticleEdition}/>
455 487
                 : <Articles selectArticles={this.selectArticles} colorArticle={this.colorArticle} plus={this.plusQuantity} minus={this.minusQuantity} deselect={this.deselect} select={this.select} handleCategories={this.handleCategories} articles={this.state.articles} editionArticle={this.handleArticleEdition}/>
456 488
               : <AppLoader/>
457 489
               }

Loading…
Cancel
Save