Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

    In the onItemDraw client side event of a list control, I can evaluate a field for each row in the list using this syntax data.EmployeeID;
    I need to evaluate data BEFORE the list is populated in the onBeforePopulate event.
    The description of the event indicates data passed in 'data' - data that the List will be populated with.

    Please advise on the syntax to reference this information.

    The purpose is to evaluate a date field value in the list prior to viewing. If the date field in the list is not today, I want to refresh list from server versus persisting the list from local storage.

    #2
    Re: UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

    The List onBeforePopulate event gives you access to the data array of Objects. Each item in the array is a row of data. Is your date field just one date?

    This will grab a date field (start_date) from the List data (1st row) and compare it to today.

    Code:
    var listDate = new Date();
    var currDate = new Date();
    
    listDate.fromFormat(data[0].start_date,'MM/dd/yyyy');
    
    if(listDate < currDate){
    	alert('we need to refresh this list');
    }

    Comment


      #3
      Re: UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

      David, the code works, thanks. I noticed that the data object contains the server data and not the local storage. When I added a new record for the same day, the data.length was 2 but my list only displayed 1 record. I also confirmed by changing the data in local storage via my file system. My changes were not visible in data.

      I will force a refresh when list is opened. If list is dirty, synchronize first before refresh. If I can't synchronize, keep list dirty as long as local storage and current date are same. If today's date advances and local storage is less than current date, force a refresh. Discard edits if list is dirty.

      I now need to figure out how to reference data in local storage for the list.

      Comment


        #4
        Re: UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

        There are lots of moving parts to this... but together they all make sense. Your List is configured to persist data to local storage? And your UX is configured to Restore Data in List controls from Local Storage?

        If so, then your wanted scenario should work out. This is probably a disconnected app. You've got your List data... and it's stored locally. If it's less than today, test for a connection and, if ok, refresh the data from the server.

        Comment


          #5
          Re: UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

          OnBeforePopulate client event of my list control. The UX is configured to persist and restore from local storage.

          I tested the app on my phone this morning and the data object for the list contained today's data, not data from local storage which had yesterday's data. The list did not refresh. Perhaps this is a timing issue on when the the data object populates from local storage. When the list is rendered, I can get the local storage values and refresh accordingly. My only issue with this is avoiding the screen to show the old list, then the new list. This will be acceptable if there is no other way to check the local storage values before the list is rendered on the device.


          I used this code to enumerate all the values for each row in my list prior in the OnBeforePopulate event. It only showed today's current data from the server and not the data in local storage.
          for (i = 0; i < data.length; i++) {
          alert(data[i].ScheduleID);
          alert(data[i].ScheduleDate);
          alert(data[i].CompanyName);
          }

          Comment


            #6
            Re: UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

            In this scenario, you can't use onBeforePopulate. You won't have any data to test with... because you're using LocalStorage. Now... we are talking about LocalStorage... right? Not the FileSystem. If so... then...

            In addition to the UX being set to Load the List from LocalStorage... and... the List set to persist to LocalStorage... you need to set your List to "Delay Render Till Explicit Refresh".

            When your app loads, your List will now load only from LocalStorage... whether you have a connection or not... and it will load automatically. You don't have to do anything.

            Then, in the List event, onRestoreFromLocalStorage, you can do this...

            Code:
            debugger;
            var listDate = new Date();
            var currDate = new Date();
            
            if(this._data.length>0){
            	
            	listDate.fromFormat(this._data[0].Date_Created,'MM/dd/yyyy');
            	
            	if(listDate < currDate){
            		{dialog.object}.refreshListData('LISTACT');
            	}
            	
            }
            You can put up a Toast message or something to let the user know you need to refresh their data... that would seem appropriate.

            Comment


              #7
              Re: UX List Control - Need java script syntax to access 'data' in the onBeforePopulate client side event

              David, I never acknowledged your last post which worked exactly as intended. Subsequent improvements in the app required that I just test to see if the list is dirty. The scenario involves users updating data in a disconnected application leaving a dirty list and then closing the application. Upon reopening, I wanted the control to determine if the list should be refreshed from the server or use the data in local storage that is still dirty.
              Given I persist the list to Local Storage, UX loads list from local storage and Delay Render till explicit refresh. If user has a dirty list for whatever reason, I don't want to lose the dirty data until it is synchronized.
              This java script code in the OnRestoreFromLocalStorage works perfectly. Thank you.
              var lObj = {dialog.object}.getControl('LIST_SCHEDULE');
              var listDirty = lObj.listIsDirty();
              if (listDirty == false ) {
              {dialog.object}.refreshListData('LIST_SCHEDULE');
              }

              Comment

              Working...
              X