Bladeren bron

sort worlds list by created date

Nikolay Suslov 6 jaren geleden
bovenliggende
commit
ea9811c074
2 gewijzigde bestanden met toevoegingen van 58 en 13 verwijderingen
  1. 27 10
      public/app.js
  2. 31 3
      public/web/index-app.js

+ 27 - 10
public/app.js

@@ -162,9 +162,14 @@ class App {
         let responseText = await proxyFile.text();
 
         if (responseText) {
+
+          let created = new Date().valueOf();
+
           let obj = {
             //'owner': userPub,
-            'file': responseText
+            'file': responseText,
+            'modified': created,
+            'created': created
           }
           proxyObj[entryName] = obj;
         }
@@ -203,11 +208,13 @@ class App {
         let worldFile = await fetch(url, { method: 'get' });
         let worldSource = await worldFile.text();
         if (worldSource) {
-          let modified = new Date().valueOf();
+          //let modified = new Date().valueOf();
+          let created = new Date().valueOf();
 
           let obj = {
             'file': worldSource,
-            'modified': modified
+            'modified': created,
+            'created': created
 
           }
 
@@ -293,10 +300,12 @@ class App {
     }
 
     Object.keys(emptyWorld).forEach(el=>{
-      let modified = new Date().valueOf();
+      //let modified = new Date().valueOf();
+      let created = new Date().valueOf();
       let obj = {
         'file': emptyWorld[el],
-        'modified': modified
+        'modified': created,
+        'created': created
       }
       worldsObj['empty'][el] = obj;
     }) 
@@ -961,8 +970,7 @@ class App {
   async getProtoWorldFiles(userPub, worldName, date) {
 
     let fileNamesAll = await _LCSDB.user(userPub).get('worlds').get(worldName).once().then();
-    let worldFileNames = Object.keys(fileNamesAll).filter(el => (el !== '_') && (el !== 'owner') && (el !== 'parent')
-      && (el !== 'info_json'));
+    let worldFileNames = Object.keys(fileNamesAll).filter(el => (el !== '_') && (el !== 'owner') && (el !== 'parent') && (el !== 'featured') && (el !== 'published') && (el !== 'info_json'));
 
     let worldObj = {};
     for (var el in worldFileNames) {
@@ -970,7 +978,8 @@ class App {
       let res = await _LCSDB.user(userPub).get('worlds').get(worldName).get(fn).once().then();
       var data = {
         'file': res.file,
-        'modified': res.modified
+        'modified': res.modified,
+        'created': res.created
       }
       if (!date) {
         data = {
@@ -1173,7 +1182,7 @@ class App {
 
       if (res) {
 
-        let modified = new Date().valueOf();
+        let modified = saveRevision;
         let newOwner = _LCSUSER.is.pub;
         let userName = _LCSUSER.is.alias;
 
@@ -1181,7 +1190,8 @@ class App {
           'parent': userName + '/' + root,
           'owner': newOwner,
           'file': res.file,
-          'modified': modified
+          //'modified': modified,
+          'created': modified
 
         }
 
@@ -1190,6 +1200,13 @@ class App {
         _LCSUSER.get('documents').get(root).get(docInfoName).not(res => {
           _LCSUSER.get('documents').get(root).get(docInfoName).put(obj);
         });
+
+        _LCSUSER.get('documents').get(root).get(docInfoName).get('created').not(res => {
+          _LCSUSER.get('documents').get(root).get(docInfoName).get('created').put(modified);
+        });
+
+        _LCSUSER.get('documents').get(root).get(docInfoName).get('modified').put(modified);
+
       }
     });
 

+ 31 - 3
public/web/index-app.js

@@ -516,7 +516,7 @@ class IndexApp {
                 var appInfo = m
                 if (langID) {
                     if (m[1][langID]) {
-                        appInfo = [m[0], m[1][langID], m[1].user, m[1].type]
+                        appInfo = [m[0], m[1][langID], m[1].user, m[1].type, m[1].created, m[1].modified]
                     }
                 }
                 return {
@@ -554,7 +554,9 @@ class IndexApp {
                             {
                                 $type: "div",
                                 class: "mdc-layout-grid__inner",
-                                $components: Object.entries(this._jsonData).map(this._makeWorldCard)
+                                $components: Object.entries(this._jsonData).sort(function(el1, el2){
+                                    return parseInt(el2[1].created) - parseInt(el1[1].created)
+                                }).map(this._makeWorldCard)
                             }
                         ]
 
@@ -680,7 +682,20 @@ class IndexApp {
                                 {
                                     $type: "h2",
                                     class: "mdc-card__subtitle mdc-theme--text-secondary-on-background",
-                                    $text: desc[1].text
+                                    $text: desc[1].text 
+                                },
+                                {
+                                    $type: "span",
+                                    class: "mdc-card__subtitle mdc-theme--text-secondary-on-background",
+                                    $text: 'created: ' + (new Date(desc[4])).toUTCString()
+                                },
+                                {
+                                    $type: "br", 
+                                },
+                                {
+                                    $type: "span",
+                                    class: "mdc-card__subtitle mdc-theme--text-secondary-on-background",
+                                    $text: 'modified: ' + (new Date(desc[5])).toUTCString()
                                 }
                             ]
                         },
@@ -814,11 +829,15 @@ class IndexApp {
                     saves.forEach(el => {
                         db.get('documents').get(index).get(el).once(res => {
                             if (res) {
+                                let created = res.created ? res.created: res.modified;
+
                                 let fileName = el.split('/')[2].replace('_info_vwf_json', "");
                                 let world = JSON.parse(res.file);
                                 let root = Object.keys(world)[0];
                                 world[root].user = userAlias;
                                 world[root].type = 'saveState';
+                                world[root].created = created;
+                                world[root].modified = res.modified;
                                 this.worlds[index + '/load/' + fileName] = world[root];
                                 document.querySelector("#main")._jsonData = Object.assign({}, this.worlds);
                             }
@@ -861,10 +880,14 @@ class IndexApp {
 
                         if (res) {
 
+                            let created = res.created ? res.created: res.modified;
+
                             let world = JSON.parse(res.file);
                             let root = Object.keys(world)[0];
                             world[root].user = userAlias;
                             world[root].type = 'proto';
+                            world[root].created = created;
+                            world[root].modified = res.modified;
                             this.worlds[index] = world[root];
                             document.querySelector("#main")._jsonData = Object.assign({}, this.worlds);
                         }
@@ -920,11 +943,16 @@ class IndexApp {
                                     db.get('documents').get(index).get(el).once(res => {
 
                                         if (res) {
+
+                                            let created = res.created ? res.created: res.modified;
+
                                             let fileName = el.split('/')[2].replace('_info_vwf_json', "");
                                             let world = JSON.parse(res.file);
                                             let root = Object.keys(world)[0];
                                             world[root].user = userAlias;
                                             world[root].type = 'saveState';
+                                            world[root].created = created;
+                                            world[root].modified = res.modified;
                                             this.worlds[index + '/load/' + fileName] = world[root];
                                             document.querySelector("#main")._jsonData = Object.assign({}, this.worlds);