1. 10 Apr, 2017 2 commits
    • Eugene Shen's avatar
      Load contacts from Person module in ERP5 · 4eb4efd5
      Eugene Shen authored
      4eb4efd5
    • Eugene Shen's avatar
      Update bt5 with missing Web Pages · ef07ce8b
      Eugene Shen authored
      Update IDs of missing Web Pages to add them to the business template:
      erp5_page_launcher.html, gadget_erp5_chat.css,
      gadget_erp5_chat_header.html, gadget_erp5_chat_header.js,
      gadget_erp5_page_jio_configurator.html, and
      gadget_erp5_page_jio_configurator.js.
      Also add the Web Site officejs_chat.
      
      Remove contact list from the panel gadget and delete its Web Pages:
      gadget_erp5_page_contact_add.html, gadget_erp5_page_contact_add.js,
      gdaget_erp5_page_contact_list.html, gadget_erp5_page_contact_list.js,
      gadget_erp5_page_jio_person_view.html, and
      gadget_erp5_page_jio_person_view.js.
      ef07ce8b
  2. 07 Apr, 2017 3 commits
    • Eugene Shen's avatar
      Actually add chat room gadget to bt5 · 69670067
      Eugene Shen authored
      Add gadget_erp5_chat_room to the business template after forgetting to,
      remove fast priority queue because everything is already sorted,
      and make both contact list and chat list scroll with a fixed height.
      69670067
    • Eugene Shen's avatar
      Thoroughly validate polling logic · 05a213ef
      Eugene Shen authored
      05a213ef
    • Eugene Shen's avatar
      Add polling time list and fix minor bugs · 2b146ccf
      Eugene Shen authored
      Remove FastPriorityQueue because jIO already sorts everything
      and gadget.state.message_list_dict[room] is always sorted,
      fix the merge algorithm to not use a priority queue at all,
      add POLL_DELAY_LIST to customize increasing polling intervals,
      add current_refresh_dict as a mutex over refreshChat(),
      and add requirements to function docstrings.
      2b146ccf
  3. 04 Apr, 2017 2 commits
  4. 31 Mar, 2017 1 commit
  5. 28 Mar, 2017 1 commit
  6. 03 Mar, 2017 2 commits
  7. 01 Mar, 2017 1 commit
    • Eugene Shen's avatar
      Squeeze WebRTC authentication into chat panel · b9917283
      Eugene Shen authored
      Make WebRTC gadget spawn a new hidden div inside the chat panel
      instead of indefinitely expanding downwards, highlight current room,
      remove automatic login and authentication, add field for hateoas URL,
      move all utility functions such as logError into gadget_global.js,
      add hasOwnProperty, send join/quit notifications in bundles once more,
      fix cannot-make-second-connection bug by resetting host candidate,
      change declareService to submit onEvent, split submit buttons among
      separate forms, and declare chat panel functions as gadget methods.
      b9917283
  8. 24 Feb, 2017 1 commit
    • Eugene Shen's avatar
      Implement multi-room messaging · af967d44
      Eugene Shen authored
      Add font, remove unused JIO Mapping Storage,
      split chat box into contacts and chats tabs,
      only send join and leave notifications to others,
      add message colours, change styles with favicons,
      declare new WebRTC gadgets for every room connection,
      create new room with their own names for each client,
      manage more query values in parent gadget with less code,
      generate Dropbox link to stuff URL queries as state info,
      prepare parseParams to handle new connections from the panel,
      strip whitespaces, delete "my_", remove line breaks with CSS,
      understand how queues in .ready() block .declareService() forever,
      and finally, use flexbox CSS to completely overhaul look and feel.
      af967d44
  9. 22 Feb, 2017 1 commit
    • Eugene Shen's avatar
      Flatten gadget hierarchy and purify WebRTC gadget · 01b24062
      Eugene Shen authored
      Instead of having chat_panel as a subgadget of chat_webrtc,
      both chat_panel and chat_webrtc are direct subgadgets of chat.
      Strip out all chat-related functions and variables from chat_webrtc,
      so that it can be used for non-chat-related purposes in the future.
      Bundle state variables into dictionaries for cross-gadget passing.
      Completely rewrite HTML structure to reflect a linear hierarchy.
      Fully document and augment existing URL query parameters.
      Replace all var declarations with let or const from ES6.
      Modify chat panel message_list and last_message_dict
      to prepare for multi-room messaging, coming soon.
      01b24062
  10. 20 Feb, 2017 1 commit
    • Eugene Shen's avatar
      Synchronize text posts across Dropbox and WebDAV · 6ee093ae
      Eugene Shen authored
      Allow users to configure storage synchronization options during login,
      with the choice of ERP5, Dropbox, WebDAV, or no remote storage.
      Remove gadget_erp5_chat_login by merging it with the main page.
      Use mapping storage and remove peer_source from messages.
      6ee093ae
  11. 16 Feb, 2017 1 commit
    • Eugene Shen's avatar
      Use replicate storage and request smaller bundles · f5c87f9c
      Eugene Shen authored
      Store all chats as Text Posts using ERP5 in a replicate storage.
      Synchronize divergent chats through a three-step process:
      1. send doubler (request a request from the host)
         receive request (get dict of host's last-seen messages)
      2. send archive (give all new messages to the host)
         receive doubler (get after host is fully updated)
      3. send request (give dict of your last-seen messages)
         receive archive (get all new messages from all peers)
      
      This means that Space Chat now synchronizes correctly even when
      peers disconnect from each other, and all chat messages will
      eventually be stored on ERP5 as soon as one peer reconnects.
      f5c87f9c
  12. 14 Feb, 2017 1 commit
    • Eugene Shen's avatar
      Allow authentication using ERP5 · bb0d31e5
      Eugene Shen authored
      Co-opt Webrtc Rooms module to directly store negotiations as attributes,
      integrate Space Chat with ERP5 and pass parameters through the URL,
      move Dropbox main login page, and make authentication more robust.
      bb0d31e5
  13. 10 Feb, 2017 1 commit
    • Eugene Shen's avatar
      Add miscellaneous chat functionality · 6cdfcbfa
      Eugene Shen authored
      Abstract WebRTC signalling to prepare for ERP5,
      detect client browser unloading and send message,
      directly display URLs of images as an actual <img>,
      add global "notifications" such as joining and /help,
      clean names to avoid OAuth2 state conflicts in the URL,
      make Dropbox authentication more robust against failures,
      and parse non-image URLs as <a> using a regular expression.
      6cdfcbfa
  14. 08 Feb, 2017 1 commit
    • Eugene Shen's avatar
      Initialize erp5_space_chat gadget · 6a2c3380
      Eugene Shen authored
      Add initial files for space chat project. Features include:
      - Real-time text-based communication system over WebRTC
      - Modular chat separation into 'folders' and 'rooms'
      - Multiple signalling options, including text or Dropbox
      - Configurable local storages like IndexedDB using jIO
      - Follows WebRTC best practices by using adapter.js shim
      - Adjustable polling behaviour for managing Dropbox offers
      - Powerful offline synchronization algorithms within rooms
      
      Actually none of the above are even features, this chat is very bad.
      
      The file list is:
      - adapter.js: shim for cross-browser WebRTC compatibility
      - fast_priority_queue.js: by adamhooper, for sorting messages
      - gadget_erp5_chat: main chat gadget, contains local storage and login
      - gadget_erp5_chat_login: gadget to get name, folder, and room from user
      - gadget_erp5_chat_webrtc: WebRTC signalling gadget to open communications
      - gadget_erp5_chat_panel: actual chat gadget, has all the chatting functions
      6a2c3380
  15. 06 Feb, 2017 2 commits
  16. 03 Feb, 2017 1 commit
  17. 02 Feb, 2017 5 commits
    • Gabriel Monnerat's avatar
      Fix property type validity consistency · e1c9d477
      Gabriel Monnerat authored
      Fix inconsistencies from gadgets
      
      /cc @jerome 
      
      /reviewed-on !225
      e1c9d477
    • Gabriel Monnerat's avatar
      erp5_knowledge_pad: Fix inconsistency with preferred_height and... · 5bb901df
      Gabriel Monnerat authored
      erp5_knowledge_pad: Fix inconsistency with preferred_height and preferred_width in google_maps gadget
      
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/google_maps (message: Attribute preferred_width should be of type string but is of type <type 'int'>)
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/google_maps (message: Attribute preferred_height should be of type string but is of type <type 'int'>)
      5bb901df
    • Gabriel Monnerat's avatar
      erp5_knowledge_pad: Fix inconsistency with preferred_height and... · 51907bce
      Gabriel Monnerat authored
      erp5_knowledge_pad: Fix inconsistency with preferred_height and preferred_width in google_calendar gadget
      
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/google_calendar (message: Attribute preferred_width should be of type string but is of type <type 'int'>)
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/google_calendar (message: Attribute preferred_height should be of type string but is of type <type 'int'>)
      51907bce
    • Gabriel Monnerat's avatar
      erp5_knowledge_pad: Fix inconsistency with preferred_height and... · 6f85d5ac
      Gabriel Monnerat authored
      erp5_knowledge_pad: Fix inconsistency with preferred_height and preferred_width in google_search gadget
      
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/google_search (message: Attribute preferred_width should be of type string but is of type <type 'int'>)
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/google_search (message: Attribute preferred_height should be of type string but is of type <type 'int'>)
      6f85d5ac
    • Gabriel Monnerat's avatar
      erp5_knowledge_pad: Fix inconsistency with preferred_width and preferred_height in clock gadget · 363c0c71
      Gabriel Monnerat authored
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/clock (message: Attribute preferred_width should be of type string but is of type <type 'int'>)
      ERP5Type.ConsistencyMessage for PropertyTypeValidity type_check on portal_gadgets/clock (message: Attribute preferred_height should be of type string but is of type <type 'int'>)
      363c0c71
  18. 01 Feb, 2017 1 commit
  19. 27 Jan, 2017 1 commit
  20. 25 Jan, 2017 11 commits