Browse Source

для простоты сохраняю текущего зверька в хранилище сессии

kpmy 10 years ago
parent
commit
abf30af265
3 changed files with 13 additions and 6 deletions
  1. 5 3
      lib/app/loop.dart
  2. 7 2
      lib/app/model.dart
  3. 1 1
      web/index.html

+ 5 - 3
lib/app/loop.dart

@@ -3,6 +3,7 @@ library loop;
 import 'dart:html';
 import 'package:chi/storage.dart';
 import 'package:dartson/dartson.dart';
+import 'package:dartson/transformers/date_time.dart';
 
 part 'model.dart';
 
@@ -11,7 +12,8 @@ final codec = new Dartson.JSON();
 Model load(){
     var name = window.sessionStorage[SESSION];
     assert(name != null);
-    var obj = window.localStorage[name];
+    var obj = window.sessionStorage[name];
+    print(obj);
     if (obj != null)
       return codec.decode(obj, new Model());
     else
@@ -20,17 +22,17 @@ Model load(){
 
 Model process(Model m){
   print(m.age);
-  m.age++;
   return m;
 }
 
 void save(Model m){
   var name = window.sessionStorage[SESSION];
   assert(name != null);
-  window.localStorage[name] = codec.encode(m);
+  window.sessionStorage[name] = codec.encode(m);
 }
 
 run(){
+  codec.addTransformer(new DateTimeParser(), DateTime);
   save(process(load()));
   return true;
 }

+ 7 - 2
lib/app/model.dart

@@ -3,11 +3,16 @@ part of loop;
 @Entity()
 class Model{
   String name;
-  int age;
+  DateTime lastUpdate;
+  DateTime birthday;
 
+  Duration get age => new DateTime.now().difference(birthday);
+
+  //for serialization purpose
   Model();
 
   Model.born(this.name){
-    this.age = 0;
+    this.birthday = new DateTime.now();
+    this.lastUpdate = new DateTime.now();
   }
 }

+ 1 - 1
web/index.html

@@ -14,7 +14,7 @@
   </head>
 
   <body unresolved>
-    <paper-input id="chi_name_new" label="Имя" value="1033"></paper-input>
+    <paper-input id="chi_name_new" label="Имя" value="ULNA"></paper-input>
     <paper-button id="chi_go" class="colored">Показать</paper-button>
     <br/>
     <a href="edit.html">Редактор</a>