Development progress update 23-06-2015

by


Posted on


Development progress update 23-06-2015 image

Hi all! It has been a while since the last development progress update and it is about time there i one again. A lot has happened the last couple of months within my personal life (like my daughter born), attend conferences, etc, etc. I will not bore you with this stuff as this is a development update. But, it has caused some delays.

Dropping jqWidgets

A couple of weeks ago i decided it is time to update the used javascript library called jqwidgets (new features, fixes), but, yet again, it really hurt! Getting really annoyed with this we have sit down together on what we are going to do about it. Answer came straight away: “Drop it”. There you go, we are dropping jqwidgets as our javascript framework. I’m the first one to say it is a wonderful framework, as long you do not upgrade.

Ok, dropping it, so what now? With this drop we have decided to open up all already in the server available functionalities which where not yet available in the web interface. This means every web interface page has to be build up from the ground again. But this is in the end not bad at all. To give a simple glimpse this is what we needed to set a simple value from a drop down (for the ones who know jquery):

$('#DIV' + uniqueItemId).jqxDropDownList('selectIndex', $('#DIV' + uniqueItemId).jqxDropDownList('getItemByValue', selectvalue).index );

This has been replaced with (as from what i believe should also work within jqwidgets):

$('#DIV' + uniqueItemId).val(selectvalue);

Much cleaner, isn’t it? Also jqwidgets put all sort of html to the end of the page, as pages are loaded using ajax in the web interface the page it’s html was growing, and growing, and growing which each request. This causes the web interface become sluggish. So i had to write all sort of extra code that with every page request destroyed and removed the extra html created which also delayed page loading.

There are now already a couple of pages completely un-jqwidgetfied. And i must say, transitions between pages without jqwidgets are much faster and the rendering of the loaded page also takes less time. So, what have we done so far?

 

Implemented changes

As said we have started to replace pages. This is what we have done so far:

New and improved errors

This is weird, but correct. Normally when something happens in the web interface we ask for a log file, and ask what someone is exactly doing doing. The updated “Something went wrong” display looks like this:

updatederrors

It gives the information needed when available if something happens. This is not only for the requests made to the server, but also if something odd is happening in the web interface.

updatederrorsjavascript

Updated item selection popup

updateditemselection

This refurbished popup will now only show the items available for the page where you can add an item. If only devices are possible, only devices will show. This comes in handy when some features or items are not yet available for a specific action.

Removed page description

Well not completely removed of course. We understand that if you have looked at the same page a couple of times you understand how it works, so the page description can get annoying. To get rid of this annoyance but keep the descriptions:

infobuttonan info button is introduced. This button is available on every overhauled page on the top right and delivers a popup which explains the page used icons, what is happening, what you can do, etc. It is not an extensive help but a description. It does give room to let the descriptions be more descriptive though.

Menu replacement

We have moved the menu from the left to the top and re-indexed it. The items are now more logical placed and the most important thing that happened is: “Damn, that gives a whole lot of extra space to play with!”. Which comes in very handy because of (where you will also see the menu replaced):

A customize-able dashboard

You asked, we delivered. Well, it was not that simple, at first the dashboard showed favorite items and showed the controls you decided it should show from these favorite devices. But you guys wanted graphs and gauges. This was quite a challenge to implement with the old framework. So a while ago i have replaced the graphs setup which gave more flexibility and also the ability for you guys to save your graph as png,jpg etc.. With also other extra flexibility graphs became an option to be used on a dashboard. But creating a graphical dashboard was still no option. Until i replaced the menu. Take a look at the video below to see some parts of this customize-able dashboard in action:

Notifications log

img_01062015_205043

A notifications log has been added to keep track of notifications which are being thrown around by the system or from the automation rules.

 

Packages page

updatedpackages

 

The packages page has also been overhauled. It now shows more information on what a package contains and which rights it wants to acquire. Yes, which rights. The rights security has not yet been turned on but when this is done installed packages will be requesting access for things they want to do outside of the system. If you would add a keypad package and this package is requesting access to some website. Would you allow this?

Macros page

updatedmacros

 

Macros page has got a visual upgrade, still works exactly the same.

Device discovery

discoveryfounddeviceaddrequest1

One of my favorite functionalities in the server. The discovery system got a complete overhaul in looks, functionality and server internals: The full workings are explained here: http://forum.mysensors.org/topic/1572/an-important-update-for-mysensors-support-and-some-other-stuff (ou have to scroll a bit).

That’s not all folks!

There is a lot more happening in the web interface. Other pages will have their looks transitioned but functionalities have stayed the same. As we are busy with replacing pages we also replace some styling. This can cause some inconsistencies across pages like not perfect aligned information or input fields. We are aware of this, as we have mentioned on the dashboard page :).

This is a short blog post on some development updates there is a lot more happening but we will show them when they are done.

Cheerio!

Latest news/blog

Friends of PiDome

UniPi.technology
Home-automation hardware manufacturer
Atlassian
Products for teams, from startup to enterprise
RFXCOM
Affordable 433Mhz RF transceivers

Latest added technology

  • SMS
  • Z-Wave
  • PushBullet
  • PlugWise
  • MQTT

Some project stats

Open Hub project report for PiDome Platform

Other

Official NLJUG Member