Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major web interface rehaul #489

Merged
merged 78 commits into from
Mar 18, 2015
Merged

Major web interface rehaul #489

merged 78 commits into from
Mar 18, 2015

Commits on Nov 17, 2013

  1. Initial Start of New Version 7 Web Interface

    You can test out the web interface by setting the following in your ini file:
    
    html_alias2_ia5=<ia7 directory>
    krkeegan committed Nov 17, 2013
    Configuration menu
    Copy the full SHA
    de7dc15 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a6f1c39 View commit details
    Browse the repository at this point in the history
  3. Ia7: Move Header into Util, Add Sub Category Page

    In order to call the header routine from none server-side include pages, header needs to be in code.
    krkeegan committed Nov 17, 2013
    Configuration menu
    Copy the full SHA
    dd399a6 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9c839c8 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6b51819 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1ee112c View commit details
    Browse the repository at this point in the history
  7. Ia7: Convert About Audrey Page

    I left the images here right now, these can be converted to buttons later, but I thought maybe Audrey users would prefer that these not change?
    krkeegan committed Nov 17, 2013
    Configuration menu
    Copy the full SHA
    b9d1b19 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    c2797ce View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    b2d89fc View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2013

  1. Ia7: Create AJAX/XML BrowseMisterHouse Page

    XML work can likely be expanded for use on many web functions.
    krkeegan committed Nov 19, 2013
    Configuration menu
    Copy the full SHA
    0acdcaa View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fe31757 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8cd00e0 View commit details
    Browse the repository at this point in the history
  4. Ia7: Allow for Listing of All Categories

    Remove BrowseMisterHouse page, it is not needed.
    
    Move all JS code to ia7_utils, create more JS for listing categories
    krkeegan committed Nov 19, 2013
    Configuration menu
    Copy the full SHA
    45bcdf8 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2013

  1. JSON/XML/Print_Log: Add Support for Iterative Print Log Updates

    New routine returns all print log messages that have occurred since time.
    
    Added support to JSON and XML servers to serve print_log messages
    krkeegan committed Nov 20, 2013
    Configuration menu
    Copy the full SHA
    a516491 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c03f688 View commit details
    Browse the repository at this point in the history
  3. Ia7: Add Test AJAX Print Log Page

    It works, and seems to work well.  This is pretty cool.
    krkeegan committed Nov 20, 2013
    Configuration menu
    Copy the full SHA
    2e9d407 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    191632b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    80fb082 View commit details
    Browse the repository at this point in the history
  6. JSON: Remove Global Replacement of Entities in JSON Response

    The commit describing the line when added state:
    
    ```
    Fix to make JSOn vars return without $, %, @ or &
    Fix to call vars by name e.g. Time_Now instead of $Time_Now
    ```
    
    This line seems way overbroad to fix the issue described.  The line was replacing percent signs within voice commands, resulting in an invalid voice command.
    
    Commenting out the line seems to have no effect on any other aspect of the code.  calling json(vars) produces variable names without any $ signs, similarly calling json(subs) does not produce any & signs.
    krkeegan committed Nov 20, 2013
    Configuration menu
    Copy the full SHA
    b20c329 View commit details
    Browse the repository at this point in the history
  7. JSON: Tailor Entity Replacement to Keys Only

    Move large global replacement so that it affects keys not values.  Allows for values to contain protected entities such as in a voice command (e.g. 20%)
    krkeegan committed Nov 20, 2013
    Configuration menu
    Copy the full SHA
    f13a52c View commit details
    Browse the repository at this point in the history
  8. Ia7: Convert XML Calls to JSON

    I didn't realize a JSON server existed in MH.  JSON has less overhead and is generally easier to deal with.
    krkeegan committed Nov 20, 2013
    Configuration menu
    Copy the full SHA
    ad757d1 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2013

  1. Configuration menu
    Copy the full SHA
    7296b4f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bccc5f0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a4bb0ad View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2013

  1. Configuration menu
    Copy the full SHA
    0440236 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ff94789 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2013

  1. Ia7: Reorganize and Condense Javascript

    Attempt to move as much as possible into JavaScript
    krkeegan committed Dec 5, 2013
    Configuration menu
    Copy the full SHA
    daf199d View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2013

  1. Ia7: Adopt AJAX-like loading of Pages

    Similar to a frame concept that was used in ia5.
    
    Partially necessary if we want to have a breadcrumb like navigation.
    
    Makes adding new pages a little easier since only need to program the <div></div> content and not a whole page.
    krkeegan committed Dec 8, 2013
    Configuration menu
    Copy the full SHA
    5a25506 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8b3465e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c2ed76b View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2013

  1. Configuration menu
    Copy the full SHA
    9c19f09 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    10616fb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d6860b9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b105bc1 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2013

  1. Configuration menu
    Copy the full SHA
    57af15e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    75e124d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9fda270 View commit details
    Browse the repository at this point in the history
  4. Ia7: Cleanup main Index Page

    krkeegan committed Dec 22, 2013
    Configuration menu
    Copy the full SHA
    4c41a87 View commit details
    Browse the repository at this point in the history
  5. Ia7: Convert URL to Hash

    krkeegan committed Dec 22, 2013
    Configuration menu
    Copy the full SHA
    ec8997e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    08690da View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    b174794 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    f9a20b3 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    dd38873 View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2014

  1. Configuration menu
    Copy the full SHA
    9b76b91 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c2915cc View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2014

  1. Configuration menu
    Copy the full SHA
    ec5da68 View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2014

  1. Configuration menu
    Copy the full SHA
    6293923 View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2014

  1. IA7: Move Last of IA7 Utils Into Other Files

    We want to avoid having special web presentation functions.  This moved the last of the remaining functions out of the ia7_utils.
    
    The print_log function on the JSON server can now properly respond to long_poll requests
    krkeegan committed Aug 12, 2014
    Configuration menu
    Copy the full SHA
    c7008d8 View commit details
    Browse the repository at this point in the history
  2. HTTP_Server: Properly Handle Quoted Strings in a Sub Request

    The prior code could only handle quoted strings if the entire argument was a single quote.  This change allows for calls like:
    
    ```
    /sub?json(groups=Living_Room,"fields=text|type|state|states|label,not_recursive")
    ```
    
    Note that the second argument is a string joined together by a comma.  The prior code clobbered this into two separate arguments.
    
    The only potential hiccup, is the new code relies on Text::ParseWords.  This is listed as a standard package, but sometime you never know with perl.  I am slightly concerned because the http server is a base componet of MisterHouse.
    krkeegan committed Aug 12, 2014
    Configuration menu
    Copy the full SHA
    30d97d1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6133868 View commit details
    Browse the repository at this point in the history
  4. IA7: Change to Non-Recursive Listing of Groups

    This allows for subgroups and an organized display of objects
    krkeegan committed Aug 12, 2014
    Configuration menu
    Copy the full SHA
    2eba4e8 View commit details
    Browse the repository at this point in the history
  5. IA7/JSON: Properly Return Array in JSON Response

    If we have an array, return it, instead of the sequential key hash.  Arrays are orded there is no need to be so difficult.
    krkeegan committed Aug 12, 2014
    Configuration menu
    Copy the full SHA
    931cb02 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d87611c View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2014

  1. HTTP Server: Fix If Modified Check

    An extra unnecessary semicolon in the test was preventing the if modified from properly working at least on chrome.
    
    Fixing this cuts down slightly on the amount of data that needs to be transmitted.  For most users this probably won't be noticed.
    krkeegan committed Aug 15, 2014
    Configuration menu
    Copy the full SHA
    207bef2 View commit details
    Browse the repository at this point in the history
  2. AJAX Server: Send Status Code Response When Closing an Empty Socket

    The lack of a status code made it difficult to distinguish empty sockets from an unreachable server on the client end.
    
    This adds a trivial, 25 bytes, amount of data to the transmission.
    krkeegan committed Aug 15, 2014
    Configuration menu
    Copy the full SHA
    2a6a276 View commit details
    Browse the repository at this point in the history
  3. IA7/JSON: Change JSON Structure; Enable Updating in IA7

    Added request and option to returned json to make recreating the request easier.
    
    Added millisecond time to JSON response to allow for long polling.
    
    Enable long polling in JSON.  If long poll is requested, the routine will return nothing if only an empty JSON would be returned.  In addition, the time parameter is used to skip objects which have not changed since time.  This used the idle_time value.
    krkeegan committed Aug 15, 2014
    Configuration menu
    Copy the full SHA
    34790fb View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2014

  1. Generic_Item/Group: Add Function to Store Sort Order of Members

    Function simply stores an ordered list of names.  The ordered list can be retreived for sorting the members.
    
    While this is added to Generic_Item, it is likely only available on Group items because it seems that the general practice was not to call Generic_Item->new on sub items that inherit Generic_Item.  This seems wrong to me.
    krkeegan committed Aug 19, 2014
    Configuration menu
    Copy the full SHA
    7555fd4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b487aee View commit details
    Browse the repository at this point in the history
  3. IA7: Limit Updates to a Single Thread; Begin Support for Sortable Dat…

    …a Input
    
    To prevent excess traffic and overloading a web browser, only permit a single update thread.
    
    Add initial structure for defining a sort order by dragging and dropping entities.  Required adding a custom jquery ui library.
    krkeegan committed Aug 19, 2014
    Configuration menu
    Copy the full SHA
    da74160 View commit details
    Browse the repository at this point in the history
  4. JSON: GZIP Compress JSON Output

    IO::Compress:GZIP appears to be a standard module in all perl installations.
    
    Using GZIP unsuprisingly dramatically decreases the amount of bandwidth necessary to transmit the text JSON output.
    
    In a simple test I am seeing a compression from 2.5MB to a few hundred KBs.
    krkeegan committed Aug 19, 2014
    Configuration menu
    Copy the full SHA
    ba3a7de View commit details
    Browse the repository at this point in the history
  5. JSON: Dramatically Reorganize the JSON Schema

    In the prior schema the same data could appear in different locations depending on the request made.
    
    For example, the same object may have been listed under objects->myobject and groups->main->myobject
    
    This rewrite attempts to restrict data to a single location.  Objects always appear under the object path.
    
    The goal was to start migrating towards a RESTful design.
    
    Certain special paths exist for listing a list of unique values.  These include groups, categories, and types.
    
    There was no code inside MH that relied on the JSON server, so this change should not cause drastic problems.  I apologize to those users who have user_code specifically relying on the old schema.
    krkeegan committed Aug 19, 2014
    Configuration menu
    Copy the full SHA
    aeafd9a View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2014

  1. Print Log: Fix Error in Print Log Since Time Function

    The prior code was returning both the new lines and the most recent previous line.
    krkeegan committed Aug 26, 2014
    Configuration menu
    Copy the full SHA
    f3fa9f0 View commit details
    Browse the repository at this point in the history
  2. Add Get_Type Function to Various Packages

    Get type is a simple function that returns the object type.  Object types will serve an important function in the next web interface.
    
    Get type is included in the Generic Item package, but a few packages do not inherit from Generic Item, so they need their own functions.
    krkeegan committed Aug 26, 2014
    Configuration menu
    Copy the full SHA
    8ae3a9c View commit details
    Browse the repository at this point in the history
  3. IA7: Move Collections Data to Data Directory

    Seemed out of place as a perl file in the web directory.
    
    In the future, user can add (likely with the help of the interace) their own collections.json file in their user data directory to overide or change the collections.
    krkeegan committed Aug 26, 2014
    Configuration menu
    Copy the full SHA
    96efa17 View commit details
    Browse the repository at this point in the history
  4. IA7/JSON: Major Change in JSON Schema; Significant Fixes

    Changed the JSON Schema so that data is not duplicated in multiple locations.  This make parsing on the front end side much easier.
    
    Use the new collections.json file
    
    Move Categories and Types into the object path.  Make "fake" objects for each category and type.  Again this makes parsing on the frontend much easier.
    
    Condense all variables to reside within vars path.
    
    Add parents and members fields to objects
    
    Store JSON complete JSON data on the frontend
    
    Perform various fixes and changes.
    krkeegan committed Aug 26, 2014
    Configuration menu
    Copy the full SHA
    b19bb5e View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2014

  1. JSON: Better Handling of Idle Changed

    Idle times are only reported by seconds, so we need to round the current and requested time to seconds in order to avoid detecting mulitple idendical changes in the first 0-second.
    krkeegan committed Aug 27, 2014
    Configuration menu
    Copy the full SHA
    fd0dac5 View commit details
    Browse the repository at this point in the history
  2. IA7: Start Implementation of Sortable Interface

    Insert Rough UI for sortable interface
    
    Move sort logic into its own function so that it can be reused.
    krkeegan committed Aug 27, 2014
    Configuration menu
    Copy the full SHA
    b04b69d View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2014

  1. IA7: Add HTTP Globals; Make URL Link to JSON Sub; Enable Support for …

    …PUT Requests
    
    Using the /SUB?json() url is both confusing, unfriendly to developers, and would require lots of JSON specific code to be incorporated into the http_server
    
    Add a number of global variables to HTTP server, allows for processing of HTTP vars by subroutines in other packages.  Could help simplify the http server
    krkeegan committed Sep 5, 2014
    Configuration menu
    Copy the full SHA
    58d1139 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6b0dc7b View commit details
    Browse the repository at this point in the history
  3. IA7: Add Basic Support for Calling a Function Based on Put Data

    It Works!
    
    At the moment, the only thing we are prepared to handle is Sort_Order.
    
    Although other methods can likely be added very easily too, including 'set'
    krkeegan committed Sep 5, 2014
    Configuration menu
    Copy the full SHA
    4f6ed1f View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2015

  1. Alpha release with modifications to ia7. Includes

    - added print_speaklog* routines to mh, json & xml servers
    - layout fixes
    - added in advanced/simple functionality
    - some random bugfixes
    Howard committed Mar 7, 2015
    Configuration menu
    Copy the full SHA
    13d58a5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3a37512 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2015

  1. Almost there with print_speaklog. Just need to figure out why the Spe…

    …ak_Log_Time doesn't work.
    hplato committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    0b89e3c View commit details
    Browse the repository at this point in the history
  2. Minor fix w/ print_speaklog

    hplato committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    28ccfe7 View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2015

  1. changed method to enable ia7 code, ia7_enable=all|mobile in your mh.ini

    Big kludge to get print_speaklog to work
    hplato committed Mar 18, 2015
    Configuration menu
    Copy the full SHA
    cb66e1f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2fbff98 View commit details
    Browse the repository at this point in the history
  3. Added in dynamic 'mode' page

    hplato committed Mar 18, 2015
    Configuration menu
    Copy the full SHA
    c190edc View commit details
    Browse the repository at this point in the history
  4. Fixed Wiki link

    hplato committed Mar 18, 2015
    Configuration menu
    Copy the full SHA
    702f061 View commit details
    Browse the repository at this point in the history