A self hosted chat application with end-to-end encrypted messaging.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.4 KiB

  1. import { Controller } from "./controller/AbstractController";
  2. import { UserModel } from "./model/UserModel"
  3. import { Model } from "./model/AbstractModel";
  4. import { View } from "./view/AbstractView";
  5. import { UserView } from "./view/UserView";
  6. import { UserController } from "./controller/UserController";
  7. import log from "loglevel";
  8. import { ModelFactory } from "./model/ModelFactory";
  9. import { ActiveUserViewModel } from "./viewmodel/ActiveUserViewModel";
  10. import { ChatMessageViewModel } from "./viewmodel/ChatMessageViewModel";
  11. import Handlebars from "handlebars";
  12. log.setLevel("TRACE")
  13. // let userModel = new UserModel();
  14. const userModel = ModelFactory.createModel("USER");
  15. const userView = new UserView(userModel, 2);
  16. userModel.attach(userView);
  17. // userView.model
  18. const userController = new UserController(userModel, userView);
  19. userModel.someBusinessMethod(5);
  20. log.info("hello");
  21. const chatMessageViewModel= new ChatMessageViewModel();
  22. const activeUserViewModel = new ActiveUserViewModel();
  23. activeUserViewModel.userName = "some user";
  24. activeUserViewModel.lastActive = new Date();
  25. activeUserViewModel.online = true;
  26. function someFunc(vm: ActiveUserViewModel): void {
  27. log.info(vm);
  28. }
  29. someFunc(activeUserViewModel);
  30. // @ts-ignore: Object is possibly 'null'.
  31. var source = document.getElementById("msg_container_template").innerHTML;
  32. var msgContainerTemplate = Handlebars.compile(source);