From 8e3cd089afe49ac6658ffe352973d3272ee6fc43 Mon Sep 17 00:00:00 2001
From: "thomas.blanc.2@etu.univ-amu.fr" <gltron3000@gmail.com>
Date: Fri, 22 May 2020 16:54:41 +0200
Subject: [PATCH] Added performance support

---
 src/components/ModelCard.vue | 10 ++++++++--
 src/main.js                  |  2 +-
 src/views/Admin.vue          |  4 ++++
 src/views/Model.vue          | 23 ++++++++++++-----------
 src/views/ModelAdd.vue       | 18 +++++++++++++++++-
 src/views/ModelEdit.vue      | 11 +++++++++++
 src/views/Search.vue         |  2 ++
 7 files changed, 55 insertions(+), 15 deletions(-)

diff --git a/src/components/ModelCard.vue b/src/components/ModelCard.vue
index 7c8a1f7..6cd31f9 100644
--- a/src/components/ModelCard.vue
+++ b/src/components/ModelCard.vue
@@ -16,8 +16,10 @@
           </b-taglist>
         </div>
       </div>
-      <div class="media-right">
-        <h2 class="title is-4">{{model.votes}} votes</h2>
+      <div class="media-right details">
+        <h2 class="title">{{model.votes}} votes</h2>
+        <h2>{{model.parameterCount}} parameters</h2>
+        <h2>{{model.performance}} {{model.performanceUnit}}</h2>
       </div>
     </article>
   </a>
@@ -39,4 +41,8 @@ export default {
 .box {
   margin-bottom: 10px;
 }
+
+.details {
+  text-align: right;
+}
 </style>
diff --git a/src/main.js b/src/main.js
index aeaa0a3..33ad0b8 100644
--- a/src/main.js
+++ b/src/main.js
@@ -9,7 +9,7 @@ Vue.use(Buefy)
 Vue.config.productionTip = false
 
 // Vue.prototype.$serverurl = process.env.VUE_APP_SERVER_URL
-Vue.prototype.$serverurl = 'https://mozen.gltronic.ovh/'
+Vue.prototype.$serverurl = 'http://localhost:8181/'
 
 new Vue({
   router,
diff --git a/src/views/Admin.vue b/src/views/Admin.vue
index 2d47afb..52099b9 100644
--- a/src/views/Admin.vue
+++ b/src/views/Admin.vue
@@ -23,6 +23,7 @@
               </b-table-column>
 
               <b-table-column label="" centered>
+                <b-button class="actionButton" icon-left="eye" type="is-info" tag="router-link" :to="{ name: 'Model', query: { id: props.row.id } }" outlined/>
                 <b-button class="actionButton" icon-left="delete" type="is-danger" @click="removePrompt(props.row.id, props.row.name, 'model')" outlined/>
               </b-table-column>
             </template>
@@ -77,6 +78,9 @@
             </template>
           </b-table>
         </b-tab-item>
+
+        <b-tab-item label="Comments">
+        </b-tab-item>
       </b-tabs>
     </div>
   </div>
diff --git a/src/views/Model.vue b/src/views/Model.vue
index fec946b..06aea1f 100644
--- a/src/views/Model.vue
+++ b/src/views/Model.vue
@@ -26,17 +26,15 @@
           <br>
           <small>Last modification: </small><strong>{{new Date(model.lastModified).toLocaleDateString()}}</strong>
           <br>
+          <small>parameters: </small><strong>{{model.parameterCount}}</strong>
           <br>
-          <b-button type="is-primary" size="is-medium" icon-left="download">
+          <small>{{model.performanceUnit}}: </small><strong>{{model.performance}}</strong>
+          <br>
+          <br>
+          <b-button v-if="model.checksum" type="is-primary" size="is-medium" icon-left="download">
             Download model
           </b-button>
-          <a
-            class="button is-primary is-medium"
-            icon-left="download"
-            :href="downloadUrl"
-            download>
-            Download model
-          </a>
+          <h2 v-else class="title is-5">No file provided</h2>
           <hr>
           <strong>{{model.customLayers.length}} customs layers</strong>
           <br>
@@ -55,11 +53,14 @@
 
           <b-tab-item label="Layers">
           </b-tab-item>
+
+          <b-tab-item label="Comments">
+            <div class="box">
+              <Comments v-bind:comments="model.comments"/>
+            </div>
+          </b-tab-item>
         </b-tabs>
       </div>
-      <div class="box">
-        <Comments v-bind:comments="model.comments"/>
-      </div>
     </div>
     <b-loading :is-full-page="false" :active.sync="isLoading"/>
   </div>
diff --git a/src/views/ModelAdd.vue b/src/views/ModelAdd.vue
index 851b125..9acae99 100644
--- a/src/views/ModelAdd.vue
+++ b/src/views/ModelAdd.vue
@@ -13,6 +13,17 @@
         <b-field label="Long description">
           <markdownEditor v-bind:input="model.longDescription" v-on:update-description="model.longDescription = $event"/>
         </b-field>
+
+        <b-field label="Performance">
+          <b-field>
+            <b-input type="number" placeholder="98" step="0.01" v-model="model.performance"/>
+            <b-autocomplete open-on-focus placeholder="accuracy" :data="performanceTypes" v-model="model.performanceUnit"/>
+          </b-field>
+        </b-field>
+
+        <b-field label="Number of parameters">
+          <b-input type="number" min="0" placeholder="0" v-model="model.parameterCount"/>
+        </b-field>
       </b-step-item>
 
       <b-step-item step="2" label="Tags" clickable>
@@ -69,7 +80,12 @@ export default {
     return {
       model: {},
       activeStep: 0,
-      isUploadModalActive: false
+      isUploadModalActive: false,
+      performanceTypes: [
+        'accuracy',
+        'error rate',
+        'MSE'
+      ]
     }
   },
   methods: {
diff --git a/src/views/ModelEdit.vue b/src/views/ModelEdit.vue
index f15565d..b047404 100644
--- a/src/views/ModelEdit.vue
+++ b/src/views/ModelEdit.vue
@@ -16,6 +16,17 @@
         <markdownEditor v-bind:input="model.longDescription" v-on:update-description="model.longDescription = $event"/>
       </b-field>
 
+      <b-field label="Performance">
+        <b-field>
+          <b-input type="number" placeholder="98" step="0.01" v-model="model.performance"/>
+          <b-autocomplete open-on-focus placeholder="accuracy" :data="performanceTypes" v-model="model.performanceUnit"/>
+        </b-field>
+      </b-field>
+
+      <b-field label="Number of parameters">
+        <b-input type="number" min="0" placeholder="0" v-model="model.parameterCount"/>
+      </b-field>
+
       <hr>
       <h1 class="title">Tags</h1>
       <tagEditor v-bind:modelTags="model.tags" v-on:update-tags="model.tags = $event"/>
diff --git a/src/views/Search.vue b/src/views/Search.vue
index f1a46d0..192d24e 100644
--- a/src/views/Search.vue
+++ b/src/views/Search.vue
@@ -18,6 +18,8 @@
           <b-select placeholder="Order by" icon="filter" @input="setOrder">
             <option value="votes">Most vote</option>
             <option value="lastModified">Most recent</option>
+            <option value="performance">Best performance</option>
+            <option value="parameterCount">Less parameters</option>
           </b-select>
         </b-field>
         <h1 class="title is-6">{{result.totalResult}} results - page {{result.page}} of {{result.totalPage}}</h1>
-- 
GitLab