UPDATE: Version bump - alpha84


#1

Hi All,

Just letting y’all know about what’s been going on the last month.


Updates to mobile UI and handling, VFS improvements, bugfixes and a new ‘osjs watch’ command.

Relevant:

Digest:

  • FileManager: Updated to context menus
  • FileManager: Better mobile layout
  • FileManager: Bugfixes
  • WindowManager: Cleanups and improvements to API
  • UI: Updated touch input behaviour
  • UI: Updated media queries
  • UI: Added GUI Element registration API
  • UI: Did a passover of elements and solved some issues
  • VFS: Changed the ‘read’ endpoint
  • VFS: File writes now use upload method for better performance future resume support
  • VFS: Cleanups
  • API: Remove loading spinner on failed requests
  • Core: Added Bootstrap routine
  • Themes: Updated base CSS
  • Connection: Updated websocket connection layer
  • Connection: Removed some deprecated code
  • GoogleDrive. Bugfixes
  • server-node: Fixed fs watch problems
  • server-node: Detached lots of stuff for a more modular design
  • server-node: Bugfixes and some crash fixes
  • server-node: Cleanups
  • build: Added ‘–import’ to config task
  • build: Added ‘watch’ task
  • misc: Removed some deprecated dependencies
  • misc: Moved some source files in the tree
  • misc: Updated dependencies
  • misc: Updated documentation
  • misc: Updated eslint rules
  • misc: Updated travis build

#2

#3

#4

#5

GUI Element registration was changed in this build. You now have to wrap your code! Example:

Old

GUI.Elements['something'] = {
  bind: function(el, ...) {
    // ...
  },
  build: function(el, ...) {
    // ...
  },
  get: function(el, k, v) {
    if ( k == 'foo' ) {
      return 'bar';
    }
    return GUI.Element.prototype.get.apply(this, arguments);
  },
  set: function(el, k) {
    if ( k == 'foo' ) {
      return false;
    }
    return true;
  }
};

New

GUI.Element.register({
  tagName: 'something'
}, {
  on: function(...) {
    var el = this.$element;
    // ...
    return this;
  },
  build: function(...) {
    var el = this.$element;
    // ...
   return this;
  },
  get: function(k, v) {
    if ( k == 'foo' ) {
      return 'bar';
    }
    return GUI.Element.prototype.get.apply(this, arguments);
  },
  set: function(k) {
    if ( k == 'foo' ) {
      return this;
    }
    return GUI.Element.prototype.set.apply(this, arguments);
  }
});
  1. bind has been changed to on
  2. el is no longer passed as first argument to methods, use this.$element
  3. You have to wrap in GUI.Element.register()
  4. Make sure to return this from your methods
  5. Since these are now prototyped, you can call the base methods to return in many cases (like in get/set)

#6

#7