Skip to content

@peterlembke peterlembke released this Feb 16, 2020

[1.2.7] - 2020-02-16

Code on Github

Main focus in this release was to finish the login and sessions but I got side tracked and fixed a lot of other things. TERMS and jshint took my attention this time.


  • - To follow if you want to display the Infohub TOS logo (future feature)
  • folder/doc/design/ added documentation about design decisions.
  • - New documentation
  • - New documentation
  • package.json - With parameters for JS hint
  • infohub_login_login.js - Check if we already have a valid session before trying to login.
  • infohub_session.js - Added initiator_check_session_valid
  • infohub_session.php - Added responder_check_session_valid


  • folder/plugins/plugin/ - Improved documentation
  • Infohub Login - Improved Swedish translations
  • Infohub Contact - Improved Swedish translations
  • On all JS plugins: Removed the usage of all ++ and --.
    /jshint and put them in package.json instead.
  • Added missing ; on rows in JS plugins. jshint helped me find them.
  • On all JS plugins: Loops. Added check for hasOwnProperty
  • Changed to dot notation ($withHeader['data'] to $ wherever jshint found them.
  • jshint found and I removed initialization values that are never used.
  • jshint found and I removed return value variables that are never used.
  • Loop key variables should not be $i. I renamed some of them but there are many more to change later.
  • There were still some "var" left that I changed to let or const.
  • Refactored Infohub JS files: uuid, transfer, template, asset, base, render, markdown, launcher, markdown_own, demo_form2, checksum_personnummer, contact_client, compress, configlocal_allow, checksum_md5, cache, view,


  • On all JS plugins: Removed inline options for jslint
  • On all JS plugins: Removed "use strict" from each function and set it on class level instead.
  • Removed deprecated parameters on iframe: render_video,


  • asset, Assigned a variable with === instead of =.
Assets 2

@peterlembke peterlembke released this Feb 2, 2020 · 1 commit to master since this release

Code on Github
Main focus in this release was to finish the login and sessions but I got side tracked and fixed a lot of other things.


  • Infohub Demo Markdown - got a new doc file.
  • Infohub Login - got translation fiels in English, Spanish, Swedish.


  • Documentation, general fixes with links. Updated the road map.
  • settings_and_errors.php - Improved stability under PHP 7.4
  • infohub demo document - Improved the demo and the documentation.
  • JS var exchanged with let or const everywhere possible.
  • Render Document - Plugin got updated documentation
  • Infohub_View - Fixed bugs in _GetBoxId


  • Code contained a lot of blocks with comments. Removed most of them.
Assets 2

@peterlembke peterlembke released this Jan 18, 2020 · 2 commits to master since this release

Main focus in this release are login and session. Many features are still missing for login and sessions. See CHANGELOG for details what is missing.


  • infohub_login - GUI for using a contact file and login to the server
  • infohub_session - Used by infohub_login to register a session
  • infohub_checksum_doublemetaphone.js - Found a good JS code and implemented that.
  • infohub_base.php - Now support messages with short tail. (Messages that have a short callstack)


  • CHANGELOG - Updated this document
  • Progress bar - Standard HTML5 progress bar
  • phpinfo.php - Now accessible. changed .htaccess
  • Table - Now tables use strings as ID instead of integers.
  • Table demo - Updated the demo to use hub_id
  • Debug, updated the documentation and the debug module doc how to debug infohub.
  • Infohub_cache - Updated the documentation
  • infohub_contact - the user_id is now a hub_id with prefix user_
  • infohub_renderform - Removed the alert box on submit buttons that fails. You can handle that in your event function instead.
  • infohub_storage_data_idbkeyval.js - Now give accurate post_exist back
  • on File, MySQL, PGSQL, SQLite: Change to PDO::ATTR_PERSISTENT => false, and also return post_exist on PostInsert.
  • infohub_base.js - Some refactoring to use const and let



  • start.js - Bug that made the progress fail
  • Icon translation "programstartare" was too long. Changed to "Program startare" and it became two rows.
  • Icon translation "Dokumentation" was too long. Changed to "Dokumen- tation" and it became two rows.
Assets 2

@peterlembke peterlembke released this Jan 1, 2020 · 3 commits to master since this release

I started developing Infohub at 2010-01-01 and today 10 years later I give you this release.

This is a service release with a lot of small changes but also a new feature with the table renderer and my view on doc/accessibility.


  • infohub_render_table - Now you can use tables
  • infohub_demo_table - Demo table
  • doc/accessibility - My view on accessibility. A top priority to be implemented.


  • CHANGELOG - Updated this document
  • README - Updated what I am working on
  • infohub_contact_client - Now using user_name as ID for a user.
  • infohub_launcher - Made the GUI tighter with max width on buttons and information box. Easier to get an overview on big screens.
  • infohub_renderform - Button label get padding between text and indicator image. Also added support for css_data.
  • infohub_transfer - Deleting the step parameter on outgoing messages from client and from server. We will not try to upset the other node by manipulate the step parameter in the function we call.
  • infohub_transfer - Restore the call stack on messages that could not be sent to the server. Then the message can report that it can not be sent.
  • infohub_view.js - Refactoring. Removed var and introduced const and let.
  • infohu_workbench - Menu icons width/height from 80px to 64px to make the GUI tighter. Still finger friendly.


  • infohub_view.css - Removed word-break.


  • infohub_compress.js - Undeclared variables
  • infohub_contact - Language files spelling error
  • infohub_uuid - refactored, improved stability from exceptions and added phpdoc.
Assets 2

@peterlembke peterlembke released this Dec 5, 2019 · 4 commits to master since this release

This is a small release

New features

  • Encryption - See Infohub Tools Encrypt.
  • infohub_encrypt - adds encryption methods: pgp and none. Use them with a password. encrypt + decrypt.
  • Added a CHANGELOG


  • Kick out tests - Simplified them and made them into objects
  • Sessions - Removed the traditional cookie session and the php session_start. Will have a new solution in the next release.
  • progress - The variable are now defined and pasted into infohub_start($progress);
  • infohub_render_form - Text Area - You can now paste a "value" to be shown in the text area as an initial value.
  • infohub_tools - Now downloads all its children at the same call. Makes it faster to use.
  • infohub_configlocal - Now downloads all its children at the same call. Makes it faster to use.
  • infohub_welcome - Now has translations on all children from start


  • cold_start - failed on Firefox. Moved the deletion of the cold_start flag to an earlier point and now it works.
  • infohub_offline.js - used variables that not all service workers have yet. Now it checks if the variable is defined.
Assets 2

@peterlembke peterlembke released this Nov 14, 2019 · 5 commits to master since this release

In this release I have focused on an update strategy for the service worker.
The service worker runs in the browser and serve a cached version of index.php.

Service worker is now updated during refresh if the last check is at least 10 minutes old and you get a response from the server and the checksum is different compared to what you have - then the service worker are unregistered and the page is refreshed when the ban time is up.

In short, you have to wait up to 10 minutes before you get the latest code. Normally a service worker refresh its contents after 24 hours.

This is yet another step in building an true offline system. Much is already working offline and in a future release I will improve offline.

Assets 2

@peterlembke peterlembke released this Nov 1, 2019 · 8 commits to master since this release

This release is about translation of the icon title and description.

  • Icon title and description added to all translation files in swedish, spanish and english.
  • Updated documentation in Infohub_Translate about this.

You can now expect the Workbench to be in the selected language as long as there is a matching language file.

There is one area left to translate and that is the documentation. That will come later.

Assets 2

@peterlembke peterlembke released this Oct 28, 2019 · 9 commits to master since this release

You can find translations in this release v1.2.0

All plugins that has a user interface have been translated to swedish, spanish and english.
I hope that the swedish translations are good, the english translations are ok, and the spanish translations is better than nothing.

You can select your preferred languages and in what order you prefer them in ConfigLocal >> Language.
I have also added translations to infohub_language and sorting so you get the language names in alphabetical order.

Assets 2

@peterlembke peterlembke released this Oct 24, 2019 · 10 commits to master since this release

This is the first public release of InfoHub.
I started development 2010-01-01 and now almost 10 years later I show this code.


With this release you can see how it works with the message flows, you can run the plugins on the server side and on the browser side. You can see everything in action here:

Parts done in this release

PHP Core

The plugins needed to get an Infohub core started on the server.

PHP Storage

  • Simple key-value storage system that relay on a traditional database for storage.
  • Many common database engines supported like MySQL, PostgreSQL, SQLite
  • Also support the Redis storage engine for permanent storage
  • And storage to file is also supported. In cases where you can not install a database engine

JS Core

  • The plugins needed to get an Infohub core started in the browser.
  • Infohub run on the most common browser in their latest versions: Firefox, Chrome (Chromium), Opera.
  • probably work well in the new Microsoft Edge that is based on Chromium.
  • I have not tested Safari as much ob MacOS and will do that. Infohub run smooth on iPhone and iPad.
  • Infohub run smooth on browsers run from: Ubuntu, MacOS, Windows, IOS (iPhone, iPad) and Android.

JS Storage

  • Simple key-value storage that uses IndexedDb. Used for all data in the browser.
  • There are three implementations in Infohub that store in the IndexedDb, I have selected the fasted to be used.
  • The browsers all support IndexedDb and there are no viable alternatives to that.

Translation system

  • User interface where you can generate language files and a method to translate them.
  • All plugins that has a graphical user interface also has an asset folder where translation files can be placed.

Assets system

  • handle icons, images, sound data AND their licenses.
  • Downloads the assets you need and stores them in the browser Storage
  • Very important that all assets have their own license files

Documentation system

  • A Doc viewer for the Markdown manual.
  • Each plugin also has documentation.
  • I started with an XML like system but Markdown is much easier to learn and nicer to look at so now I use that.
  • Some Markdown renderers are included but none are used for the documentation system. Instead I found that the Infohub rendering system could handle Markdown without assistance.

JS rendering system

  • All HTML are rendered in the browser. You can render things like Forms, Lists, text, images, frames and so on.
  • Infohub_View owns the screen. All rendered data goes to View for display on the screen. View has a box system that makes the viw scale smoothly on all screen sizes and also prevent ID colissions.
  • Advanced rendering exist - based on the simple components. Builds things like presentation boxes, tabs, menus, advanced lists, advanced forms.


  • The graphical user interface you see when you start InfoHub. Here you can start plugins.

Stand alone

  • If you want a more traditional web page then run standalone - Start ONE workbench plugin so you can run it without Workbench. Use with a unique domain URL and set it up in config/infohub_exchange.json


  • System for handling of incoming requests and turn them into messages.
  • Useful in the real world where internet is filled with REST requests and common callbacks.

Planned parts

PHP Login (Working on it)

  • Be able to login to a PHP node. serve incoming logins but also login to other nodes.

JS Login (Working on it)

  • Be able to login to the home server.

PHP Plugin test system (Working on it)

  • Automated tests created automatically from real live data. No more writing unit tests. They write them self.

JS Plugin test system (Working on it)

  • Automated tests created automatically from real live data.

Offline. Not fully covered yet.

  • Need an upgrade strategy and some issues ironed out.


  • Not fully covered yet.
  • Working on full coverage for English, Spanish, Swedish to start with for all GUI
  • Will not translate the documentation but will give some example in Swedish how it can be done.
Assets 2
You can’t perform that action at this time.