This topic is locked

Audit, record locking, column resizing, master-details

7/10/2009 12:53:52 PM
Xlinesoft Labs
admin

Here is a preview of some of new features that will be available in PHPRunner 5.2/ASPRunnerPro 6.2
http://demo.asprunner.net/mikl_xlinesoft_com/Project24/

Logon as admin/admin or test/test

  1. Audit

    All actions like login/logout/record editing/adding/deleting etc are logged to Audit table.
  2. Record locking.

    To test this feature open this project in two different browsers i.e. in Firefox and Chrome. Logon using different credentials and try to edit the same record in one of tables to see how it works. Admin is able to unblock record if it was blocked for too long or take ownership.
  3. Column resizing.

    Resize any column on the list page by dragging it's edge. Drag column header to change columns order. Use column header context menu to show/hide columns. Columns size is saved automatically and we'll be restored next time you open this page.
    This functionality may not be included into the next version as we haven't yet obtained OEM license from the company that develops this Javascript framework. Probably we'll have to postpone it till we find a royalty free framework that provides similar functionality.
  4. Master-details on the same page

    http://demo.asprunner.net/tanyaxlinesoft...orders_list.php

    This is not even an alpha version. Consider this as a demonstration oh how master-details editing on the same page might work.
    Click "Preview" link to see and edit details. You can see Order details for any given order and drill-down even further to see and edit products, all without leaving the same page.
  5. Web report/chart builder
    You can see work in progress at http://demo.asprunner.net/andrewsamoilov...s/webreport.php

    Logon as admin/admin

jwoker 7/10/2009

Master-details on the same page That would be very very helpful to me. When would you forcast the feature being released... 3, 6, 9 months?
Great stuff!

T
Tim 7/10/2009

All these features look great! This product just keeps getting better and better! Thanks.
I agree the Master-details on the same page would be particularly helpful. The link to the example looks a bit confusing though. In fact I'm not even sure I understand it. Maybe I'm missing something, but this one seems more straight forward:
list page example

Edit example
just my 2 cents.
Thanks again!
Tim

admin 7/10/2009

jwoker,
I'm positive we'll have this ready before the end of the year. We'll post an estimate later this month.
timnorvel,
this is basically the same example. Click 'preview' to expand an editable grid with order details. You will be able to insert this kind of grid into basically any page.

E
emilio833 7/10/2009

I like audit table to log access. In my opinion it would be appropriate to divide the description field into 2 fields, keys and data.

If the data field is divided into 2 fields, BEFORE (for sql update and delete) and AFTER (for sql add, update, insert) together with action you can also create (in future) a small application that work like a true journal to apply or remove change to database with specific parameter (my view looks perhaps too far).
You should also add, in the audit table, IP port of origin and cookie.

Thank you for your excellent work.

Emil

N
nico282 7/10/2009
  1. I welcome the audit table. We have to manually add a couple of similar tables on our system, one for login and the other for some sensitive operations.

    Will it be configurable about what to log, or it will simply log everything? Will it also log the failed login attempts (useful to find if someone is bruteforcing the system)?
  2. Record locking is a good feature too. Hope that there will be an automatic timeout that doesn't require the admin's intervention.
  3. Various feelings on the resizing. Don't like the possibility to hide columns on each column. Maybe it's too complicated for the "monkey user" (click on the link to sort, click near the link to move, click on the border to resize, click on the arrow near the border to hide... that's too much)

    By the way, are you using Flexigrid?
  4. I'd really need to have master-detail on the same page (we implemented some view-only windows using snippets), but I think it'll be more useful on the View page than on the List page. No need to show/hide it, just a table with basic add/edit/delete feature showing the detail record.
  5. In my personal view this is the less useful feature of the 5 proposed. Maybe i'll leave out the graphic customization step, I think that all the reports produced from a system should have the same consistent formatting.
    Nicholas :-)

G
garethpDevClub member 7/11/2009

Hi guys
Good to see what is is in the pipline - keep up the good week.
Master-detail on same page

I am with Tim on his comments as I simply can not make any sense of the master-detail on the same page example you have sent the link for. Whenever I click the preview link all the happens is exactly the same as the current PHPrunner verision and only the details can be edited on the screen you are taken to - the master info is shown at the top but no editable. What Tim showed in his 'edit' link is what I think is needed by users - will this be achievable in your final solution? At the moment the need to raise a master and then the details of an order (for example) is very confusing to users navigiation and understanding. This is by far the biggest problem with systems I have implemented - the general user does not want to see 2 screens for master and detail as in reality really does not understand whtat this means.
record locking

I have implemented my own record locking in my systems but welcome the thought of not having to code this manually. I have set this up so the that if the master table of an order is edited then all the details associated can not be edited by another user until the master is unlocked. Also if one of the details lines of an order is edited then no other detail line or the header of that order can be edited by another user until unlocked. However the key part is that if a particular user has locked the order (by editing the header or the details) then that user can happily edit any of the lines or the header and release the lock after everything they require is edited- it is not just the individual record that is locked and available to edit but the entire order.
This is how all financial systems I have ever used work - it is the entire sales order or purchase order (for example) that is locked for editing. I think this is something well worth thinking about when introducing record locking.
If anyone is interested, the above locking is achieved by actually only ever 'locking' the header table and never the details. I have 3 fields on the header table called locked, locked_by and date_locked.
Using the before and after edit events if a record is edited (either the header or a detail line) or a detail line is added then these fields of the header table are checked.

(1) If locked by the current user then OK to proceed

(2) If locked by another user then can not proceed

(3) If unlocked then the header is locked and can then proceed.
Example of one of the pieces of code on before display event..

global $conn;

$str = "select * from por_header where por='".$_REQUEST["editid1"]."'";

$rs =db_query($str,$conn);

if ($data = db_fetch_array($rs))

if ($data["locked"]== 1 and $data["locked_by"]==$_SESSION["UserID"] and $data["locked_module"]=="POR" )

{

}

else

{if ($data["locked"]== 1)

{

header("Location: por_header_list.php?");

exit();

}

}


The drawback is you have to unlock the header at the end of editing.
Not sure anyone interested in the above but I always like it when people give example of how they achieve things and workarounds - may not be useful in your own situation but always give ideas for things that may be.
Take care all
Gareth
Take care guys

admin 7/12/2009

Guys, thank you for your feedback!
@emil
saving the whole deleted or edited record for archiving purpose is quite a different task. I'd recommend to create a separate history table having the same set of fields and save the whole record there. In this case restoring any record will be trivial and no parsing is required.
What we implementing is more like a human readable version of changes in your database and not really designed for automated restore.
@nico282
Audit and record locking will be configurable. We'll add an option to log unsuccessful login attempts as well.
In regards to resizing - Flexigrid didn't work well with our templates. We are trying ExtJS now however they are not really cooperative in terms of finding a proper redistribution license for us. Probaly we'll have to switch to YUI or even roll out our own solution which I'll try to avoid at all costs.
Editable grid with list of details can be added to any page.
@garethp
we might add a really simply API to manage recording locking and audit programmatically.

V
vytb 7/13/2009

I've got a message stating 'We recommend to uninstall previous version of ASPRunnerPro/PHPRunner before installing this update.' What does it mean exactly? I've got some apps made with v 4.2 thus it's important for me to keep this version (4.2) of PHPRunner on the same machine. Hope this message appliers for the v.5.0-v.5.1, doesn't it?

T
thesofa 7/14/2009

I have had a look at the master/detail in one view, I also cannot see any difference.

Audit?

Brilliant, how much will it hit performance, but I would also like a system where the key is separate from the data, so I can restore removed data easily.

hichem 7/20/2009

Great work as usual, PHP/ASP Runner is definitly moving to a better product every time!

Sergey, may be you could please comment the below if these will be included in the next release?
-Any chance to include a Mobile (phone) template for the next version?
-There was an indication that the current 4 series limitation of the charts will be removed in the next release? is this still the case?
-Will we be able to add plain text pages to teh existing templates? This would be great to add some basic CMS type functionality where users can add/edit plain text and manage the content of the website (you already have integrated the rich text editor so the job is almost done). The text should be stored in tables. A few CMS features like provided by Joomla, DRUPAL and other CMS systems would round up PHP/ASP Runner. IN particular am thinking of having static and dynamic content on the same page. The pages would be modular and different screen areas can contain different tables. This makes it easier to have more than 1 table on one page (also if its related adv search is in the same frame or screen area).
-If possible could we have the advanced search page included at the top of the list/report/chart page, you could make its details foldable as this would be better for the screen real estate and would avoid navigating away and back to the main page. After all this built in adv search is what makes some real difference to other products.
-YUI seems a good alternative even if Ext JS is far better (hope you reach an agreement with them <img src='https://asprunner.com/forums/file.php?topicimage=1&fieldname=reply&id=42859&image=1&table=forumreplies' class='bbc_emoticon' alt=':)' /> ) and definitly very useful to have for the end users. This will make the difference for the day to day use. Is it possible to have column filtering included? will be easier if we could combine the column headers for filtering purposes (excel type of filter). Adv search will still be used for a more complex search criteria set.
-Master detail view looked great, I wasn't able to add/edit the detail records, may be it's just a demo glitch. The current ajax pop up is also great <img src='https://asprunner.com/forums/file.php?topicimage=1&fieldname=reply&id=42859&image=2&table=forumreplies' class='bbc_emoticon' alt=':)' /> hope it will stay?
many thanks for all your great efforts.
Hich

A
Abhijeet 9/25/2009

I just saw the Master Detail form. It is a good improvement. I cannot comment on it because it is not live, but i think the administrators will be able to check the following things and the workability.

  1. In add mode, both the master and detail page should be visible and insertable.
  2. If the user adds only master records there should be a facility to force user to enter corresponding detail record also (for example invoice) (or maybe not force for

    detail record, it depends on the situation or record logic) This logic can be defined by the developer in the settings. So developer should be able to change this

    logic as the circumstance demand.
  3. The developer should also have the facility to change the logic to previous version style master detail records. As the previous version record display types are also

    needed in certain cases.
    Hope this message is passed on to the administrator to take timely corrective action.
    Thank you. this tool rocks and will rock more if the above opinions are considered.