Browse Source

[home] Load the documents through an ajax call

The API can then be re-used for the assist.
Romain Rigaux 10 years ago
parent
commit
596f8b2

+ 4 - 0
desktop/core/src/desktop/api2.py

@@ -36,6 +36,10 @@ from django.http import HttpResponse
 LOG = logging.getLogger(__name__)
 
 
+def get_documents(request):
+  return JsonResponse({'documents': [doc.to_dict() for doc in Document2.objects.filter(owner=request.user)]})
+
+
 def get_document(request):
   if request.GET.get('id'):
     doc = Document2.objects.get(id=request.GET['id'])

+ 4 - 4
desktop/core/src/desktop/templates/home2.mako

@@ -206,11 +206,11 @@ ${ commonheader(_('Welcome Home'), "home", user) | n,unicode }
 <script type="text/javascript" charset="utf-8">
   var viewModel, shareViewModel, JSON_USERS_GROUPS;
 
-  var JSON_DOCS = ${ json_documents | n,unicode };
-
   $(document).ready(function () {
-    viewModel = new HomeViewModel(JSON_DOCS);
-    ko.applyBindings(viewModel, $('#documentList')[0]);
+    $.get("/desktop/api2/docs/", function(data) {
+      viewModel = new HomeViewModel(data.documents);
+      ko.applyBindings(viewModel, $('#documentList')[0]);
+    });
   });
 </script>
 

+ 1 - 0
desktop/core/src/desktop/urls.py

@@ -101,6 +101,7 @@ dynamic_patterns += patterns('desktop.api',
 )
 
 dynamic_patterns += patterns('desktop.api2',
+  (r'^desktop/api2/docs/?$', 'get_documents'),
   (r'^desktop/api2/doc/get$', 'get_document'),
   (r'^desktop/api2/doc/export$', 'export_documents'),
   (r'^desktop/api2/doc/import$', 'import_documents'),

+ 0 - 3
desktop/core/src/desktop/views.py

@@ -73,13 +73,10 @@ def home(request):
 
 
 def home2(request):
-  docs = Document2.objects.filter(owner=request.user)
-
   apps = appmanager.get_apps_dict(request.user)
 
   return render('home2.mako', request, {
     'apps': apps,
-    'json_documents': json.dumps([doc.to_dict() for doc in docs]),
     'tours_and_tutorials': Settings.get_settings().tours_and_tutorials
   })