@@ -9,6 +9,7 @@ import { CacheManager } from "./CacheManager.js";
99import { NotifierClient } from "./NotifierClient.js" ;
1010import { TemplateUploader } from "../tools/TemplateUploader.js" ;
1111import jQuery from "jquery" ;
12+ import { FileTool } from "../tools/FileTool.js" ;
1213
1314
1415export class NetworkManager {
@@ -69,7 +70,7 @@ export class NetworkManager {
6970
7071 }
7172
72- initializeNotifierClient ( ) {
73+ initializeNotifierClient ( ) {
7374 this . notifierClient = new NotifierClient ( this . main , this ) ;
7475 }
7576
@@ -239,19 +240,19 @@ export class NetworkManager {
239240 ( response ) => {
240241
241242 this . sendUpdates ( ( ) => {
242-
243- let request : DistributeWorkspaceRequest = {
244- workspace_id : ws . id ,
245- database_as_template_id : response . newTemplateId ,
246- class_id : klasse ?. id ,
247- student_ids : student_ids
248- }
249-
250- ajax ( "distributeWorkspace" , request , ( response : DistributeWorkspaceResponse ) => {
251- callback ( response . message )
252- } , callback ) ;
253-
254- } , false ) ;
243+
244+ let request : DistributeWorkspaceRequest = {
245+ workspace_id : ws . id ,
246+ database_as_template_id : response . newTemplateId ,
247+ class_id : klasse ?. id ,
248+ student_ids : student_ids
249+ }
250+
251+ ajax ( "distributeWorkspace" , request , ( response : DistributeWorkspaceResponse ) => {
252+ callback ( response . message )
253+ } , callback ) ;
254+
255+ } , false ) ;
255256 } ) ;
256257
257258 }
@@ -338,24 +339,31 @@ export class NetworkManager {
338339 if ( response . success ) {
339340
340341 workspace . database = WDatabase . fromDatabaseData ( response . database , response . version )
342+
343+ if ( workspace . database . based_on_template_id == null ) {
344+ callback ( null ) ;
345+ return
346+ }
347+
341348 cacheManager . fetchTemplateFromCache ( workspace . database . based_on_template_id , ( templateDump : Uint8Array ) => {
342349
343- if ( templateDump != null ) {
344- try {
350+ if ( FileTool . isZipfile ( templateDump ) ) {
351+ try {
345352 // @ts -ignore
346353 workspace . database . templateDump = pako . inflate ( templateDump ) ;
347- } catch ( err ) {
354+ } catch ( err ) {
348355 console . log ( err ) ;
349356 console . log ( "Dump seems not to be compressed..." ) ;
350357 workspace . database . templateDump = templateDump ;
351358 }
359+ } else {
360+ workspace . database . templateDump = templateDump ;
361+ }
362+
363+ if ( FileTool . isSqLiteFile ( workspace . database . templateDump ) ) {
352364 callback ( null ) ;
353365 return ;
354366 } else {
355- if ( workspace . database . based_on_template_id == null ) {
356- callback ( null ) ;
357- return
358- }
359367 this . fetchTemplate ( workspace . id , ( template ) => {
360368 if ( template != null ) {
361369 cacheManager . saveTemplateToCache ( workspace . database . based_on_template_id , template ) ;
@@ -557,7 +565,7 @@ export class NetworkManager {
557565
558566 ajax ( "rollback" , request , ( response : RollbackResponse ) => {
559567 if ( response . success ) {
560-
568+
561569 callback ( null , workspace . database . version > response . new_version ) ;
562570 } else {
563571 alert ( response . message ) ;
0 commit comments