Quantcast
Channel: SmartClient Forums
Viewing all 4756 articles
Browse latest View live

can't view smartclient components on ipad

$
0
0
SmartClient_SNAPSHOT_v91d_2014-01-14
Safari
iPad os 7.0.4

We've been able to run our apps on ipad in the past, but with this version nothing works. I tried to load the embedded server home page and ended up with a blank screen.

Thanks,

CacheSync not Updating ListGrid?

$
0
0
Please save me from resorting to invalidateCache!

I'm having a couple issues with a CacheSync operation.

I have drag (COPY) & drop working mostly as desired between two ListGrids. However, I'm not having success in trying to address the use case of when a user repeatedly drags the same record. In that case, I want to ignore the drag (or prevent?)

What I'm seeing is that the first Drop is not updated on the ListGrid. Subsequent Drops are reflected, but they add a new row for each drop.

On the SQL side the Record is only the dropped Record appears only once, as expected. If I invalidateCache, the display is corrected to show the Record only once. But I want to avoid that.

Here is the DataSource w/ operation bindings:
Code:


<DataSource ID="favorites" serverType="sql" dataSourceVersion="1" dbName="myOracleSID" schema="myOracleSchema" tableName="FAVORITES">
 <fields>
  <field name="PK" type="sequence" primaryKey="true">
  <columnCode>1cd3c693132f4c31b5b5e5f4c5eed6bd</columnCode>
  </field>
  <field name="USERNAME" type="text" length="8">
  <columnCode>14c4b06b824ec593239362517f538b29</columnCode>
  </field>
  <field name="FAV_FORM_ID" title="Form #" type="text" length="20" foreignKey="DOCUMENTS.FORM_ID">
  <columnCode>cc2eb80c283048cec41fe4a65eb10e22</columnCode>
  </field>
  <field includeFrom="DOCUMENTS.TITLE"/>
  <field includeFrom="DOCUMENTS.DATE_REVISED"/>
  <field includeFrom="DOCUMENTS.FILETYPE"/>
  <field includeFrom="DOCUMENTS.DOCUMENT"/>
  <field includeFrom="DOCUMENTS.DOCUMENT_filename"/>
  <field includeFrom="DOCUMENTS.DOCUMENT_filesize"/>
  <field includeFrom="DOCUMENTS.DOCUMENT_date_created"/>
 </fields>
 
 <allowAdvancedCriteria>true</allowAdvancedCriteria>
 
 <operationBindings>
 
  <!--  This is used onModuleLoad, works fine -->
 
  <operationBinding operationType="fetch" operationId="favorites">
    <selectClause>       
      fav_form_id,
      favorites.pk,
      title,
      date_revised,
      filetype,
      document,
      document_filename,
      document_filesize,
      document_date_created         
    </selectClause>
          <tableClause>        ${defaultTableClause}
          </tableClause>
    <whereClause>        username = ${advancedCriteria.USERNAME}
    </whereClause>
  </operationBinding>

  <!--  This is used when target ListGrid accepts a Record from a Drop event , works fine. -->
  <!--  Custom SQL query is to prevent drag & drop of "duplicate" Records.  -->
 
  <operationBinding operationType="add" operationId="addFavorite" cacheSyncOperation="favoritesAfterAdd">
  <customSQL> INSERT INTO favorites
    SELECT ${criteria.USERNAME}, ${criteria.FAV_FORM_ID}, favorites_pk.nextval FROM dual
  WHERE NOT EXISTS (SELECT 0 FROM favorites WHERE username=${criteria.USERNAME} and fav_form_id=${criteria.FAV_FORM_ID})
  </customSQL>
  </operationBinding>
 
  <!--  Two issues here, described below in whereClause: -->
 
  <operationBinding operationType="fetch" operationId="favoritesAfterAdd">
  <selectClause>
    fav_form_id,
    favorites.pk,
    title,
    date_revised,
    filetype,
    document,
    document_filename,
    document_filesize,
    document_date_created   
  </selectClause>
  <tableClause> ${defaultTableClause}
  </tableClause>
 
  <!-- ISSUE 1:  The ${criteria.USERNAME} from the calling operationId="addFavorite" is not passed to this cacheSyncOperation.  Shouldn't it be?  -->
  <!-- Absent the passed value, Velocity uses the literal "${criteria.USERNAME}" which causes the SQL query to bomb.  --> 
 
  <whereClause> favorites.username = ${criteria.USERNAME} </whereClause>
 
  <!-- ISSUE 2:  If I supply a hardcoded value for the purpose of troubleshooting, the console indicates execution of the "favoritesAfterAdd" operation AND the expected number of returned items;  -->
  <!-- BUT the client-side ListGrid does not update graphically to show the correct number.  invalidateCache will work, but then I lose the smooth Ajaxy refresh.  -->
 
  <whereClause> favorites.username = 'hardcoded value works OK' </whereClause>
 
  </operationBinding>
 
 
 </operationBindings>
 
 <generatedBy>v9.0p_2013-12-31/PowerEdition Deployment 2013-12-31</generatedBy>
 <tableCode>b21522fa2fe28bb48d2d89c739d290fb</tableCode>
</DataSource>

Here is the code for the source ListGrid (Record dragged out of...):
Code:

protected Canvas make_ListGrid(final String title) {

  ListGrid listGrid = new ListGrid(ds_Documents) {
  {
    String titleNoSpaces = title.replaceAll(" ", "_");
    titleNoSpaces = titleNoSpaces.replaceAll("-", "_");
    setID(titleNoSpaces);

    setCriteria(new AdvancedCriteria("SECTION", OperatorId.ISTARTS_WITH, title));
    setAutoFetchData(true);

    setFields(make_ListGridFieldArray());

    setSortField("TITLE");

    setShowFilterEditor(true);

    setCanEdit(true);

    setCanDragRecordsOut(true);
    setDragDataAction(DragDataAction.COPY);

  }
  };

  return listGrid;

 }

And here is the code for the target ListGrid (Record dropped onto...)
Code:

protected Canvas make_ListGrid_Favorites() {

  listGridFavorites = new ListGrid(ds_Favorites) {
  {
    setCanRemoveRecords(true); // supplies auto delete icon, neat!

    setAutoFetchData(true);
    setID("ListGridFavorites");

    setAddOperation("addFavorite");

    setCriteria(favoritesCriteria);
    setFilterEditorCriteria(favoritesCriteria);

    setFetchOperation("favorites");

    setFields(make_ListGridFieldArray_Favorites());

    setSortField("TITLE");
    setEmptyMessage("Drag items from tabs below...");

    setShowFilterEditor(true);

    setSelectionType(SelectionStyle.SINGLE);

    setCanAcceptDrop(true);
    setCanAcceptDroppedRecords(true);

    LinkedHashMap<String, String> dropValues = new LinkedHashMap<String, String>() {
    {
      put("USERNAME", formUser.getAdAccount());
    }
    };

    setAddDropValues(true); // default = true

    setDropValues(dropValues);

    addDropCompleteHandler(new DropCompleteHandler() {

    @Override
    public void onDropComplete(DropCompleteEvent event) {

      invalidateCache(); // This works, but it's ugly, I want cacheSync to work!

    }
    });

  }
  };

  return listGridFavorites;

 }

Here are the console results I see when dropping the same Record repeatedly onto the target ListGrid:

On the first drop:
Code:

=== 2014-01-17 13:56:00,989 [0-12] INFO  RequestContext - URL: '/Forms/sc/IDACall', User-Agent: 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E)': MSIE with Accept-Encoding header, ready for compressed JS
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Accept:*/*
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Referer:http://localhost.sdcourt.ca.gov:8888/Forms.html?gwt.codesvr=127.0.0.1:9997
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Accept-Language:en-us
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E)
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: UA-CPU:AMD64
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Accept-Encoding:gzip, deflate
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Host:localhost.sdcourt.ca.gov:8888
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Connection:Keep-Alive
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Cookie:GLog=%7B%0D%20%20%20%20left%3A1662%2C%20%0D%20%20%20%20top%3A7%2C%20%0D%20%20%20%20width%3A640%2C%20%0D%20%20%20%20height%3A480%2C%20%0D%20%20%20%20priorityDefaults%3A%7B%0D%20%20%20%20%20%20%20%20Log%3A4%0D%20%20%20%20%7D%2C%20%0D%20%20%20%20defaultPriority%3A3%0D%7D; isc_cState=ready; JSESSIONID=10msjecpogahe
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Content-Type:application/x-www-form-urlencoded; charset=UTF-8
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Content-Length:2186
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - Header Name:Value pair: Cache-Control:no-cache
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - session exists: 10msjecpogahe
=== 2014-01-17 13:56:00,989 [0-12] DEBUG IDACall - remote user: null
=== 2014-01-17 13:56:00,991 [0-12] DEBUG XML - Parsed XML from (in memory stream): 1ms
=== 2014-01-17 13:56:00,993 [0-12] DEBUG RPCManager - Processing 1 requests.
=== 2014-01-17 13:56:00,993 [0-12] DEBUG DSRequest - Caching instance 34 of DS favorites from DSRequest.getDataSource()
=== 2014-01-17 13:56:00,993 [0-12] DEBUG RPCManager - Request #1 (DSRequest) payload: {
    values:{
        DOCUMENT_date_created:new Date(1389772800000),
        DOCUMENT_filesize:175616,
        SECTION:"Administrative",
        FORM_ID:"ADM-152A",
        DOCUMENT_filename:"ADM152A.dot",
        DATE_REVISED:new Date(1216105200000),
        FILETYPE:"DOT",
        OWNER:"SDSC",
        TITLE:"Access Card Log",
        _selection_21:true,
        USERNAME:"myAdAccount",
        FAV_FORM_ID:"ADM-152A"
    },
    operationConfig:{
        dataSource:"favorites",
        operationType:"add"
    },
    componentId:"ListGridFavorites",
    appID:"builtinApplication",
    operation:"addFavorite",
    oldValues:{
        DOCUMENT_date_created:new Date(1389772800000),
        DOCUMENT_filesize:175616,
        SECTION:"Administrative",
        FORM_ID:"ADM-152A",
        DOCUMENT_filename:"ADM152A.dot",
        DATE_REVISED:new Date(1216105200000),
        FILETYPE:"DOT",
        OWNER:"SDSC",
        TITLE:"Access Card Log",
        _selection_21:true,
        USERNAME:"myAdAccount",
        FAV_FORM_ID:"ADM-152A"
    },
    criteria:{
    }
}
=== 2014-01-17 13:56:00,993 [0-12] INFO  IDACall - Performing 1 operation(s)
=== 2014-01-17 13:56:00,994 [0-12] DEBUG Relation - Caching instance of toDS 'DOCUMENTS' in the DSRequest map
=== 2014-01-17 13:56:00,994 [0-12] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
=== 2014-01-17 13:56:00,994 [0-12] DEBUG DeclarativeSecurity - DataSource favorites is not in the pre-checked list, processing...
=== 2014-01-17 13:56:00,994 [0-12] DEBUG AppBase - [builtinApplication.addFavorite] No userTypes defined, allowing anyone access to all operations for this application
=== 2014-01-17 13:56:00,994 [0-12] DEBUG AppBase - [builtinApplication.addFavorite] No public zero-argument method named '_addFavorite' found, performing generic datasource operation
=== 2014-01-17 13:56:00,994 [0-12] INFO  SQLDataSource - [builtinApplication.addFavorite] Performing add operation with
        criteria: {DOCUMENT_date_created:new Date(1389772800000),DOCUMENT_filesize:175616,SECTION:"Administrative",FORM_ID:"ADM-152A",DOCUMENT_filename:"ADM152A.dot",DATE_REVISED:new Date(1216105200000),FILETYPE:"DOT",OWNER:"SDSC",TITLE:"Access Card Log",_selection_21:true,USERNAME:"myAdAccount",FAV_FORM_ID:"ADM-152A"}        values: {DOCUMENT_date_created:new Date(1389772800000),DOCUMENT_filesize:175616,SECTION:"Administrative",FORM_ID:"ADM-152A",DOCUMENT_filename:"ADM152A.dot",DATE_REVISED:new Date(1216105200000),FILETYPE:"DOT",OWNER:"SDSC",TITLE:"Access Card Log",_selection_21:true,USERNAME:"myAdAccount",FAV_FORM_ID:"ADM-152A"}
=== 2014-01-17 13:56:00,994 [0-12] INFO  SQLValuesClause - [builtinApplication.addFavorite] Ignored data for non-existent or included columns: [DOCUMENT_date_created, DOCUMENT_filesize, SECTION, FORM_ID, DOCUMENT_filename, DATE_REVISED, FILETYPE, OWNER, TITLE, _selection_21]
=== 2014-01-17 13:56:00,994 [0-12] DEBUG SQLValuesClause - [builtinApplication.addFavorite] Sequences: {PK=__default}
=== 2014-01-17 13:56:00,995 [0-12] DEBUG PoolableSQLConnectionFactory - [builtinApplication.addFavorite] Executing pingTest 'select 1 from dual' on connection 397939605
=== 2014-01-17 13:56:00,996 [0-12] DEBUG SQLConnectionManager - [builtinApplication.addFavorite] Borrowed connection '397939605'
=== 2014-01-17 13:56:00,996 [0-12] DEBUG SQLTransaction - [builtinApplication.addFavorite] Started new myOracleSID transaction "397939605"
=== 2014-01-17 13:56:00,997 [0-12] DEBUG SQLDriver - [builtinApplication.addFavorite] About to execute SQL update in 'myOracleSID' using connection'397939605'
=== 2014-01-17 13:56:00,997 [0-12] INFO  SQLDriver - [builtinApplication.addFavorite] Executing SQL update on 'myOracleSID': INSERT INTO favorites
              SELECT 'myAdAccount', 'ADM-152A', favorites_pk.nextval FROM dual
        WHERE NOT EXISTS (SELECT 0 FROM favorites WHERE username='myAdAccount' and fav_form_id='ADM-152A')
=== 2014-01-17 13:56:01,013 [0-12] DEBUG SQLDataSource - [builtinApplication.addFavorite] add operation affected 1 rows
=== 2014-01-17 13:56:01,013 [0-12] DEBUG SQLDriver - [builtinApplication.addFavorite] About to execute SQL query in 'myOracleSID' using connection '397939605'
=== 2014-01-17 13:56:01,013 [0-12] INFO  SQLDriver - [builtinApplication.addFavorite] Executing SQL query on 'myOracleSID': SELECT absence_dev.FAVORITES_PK.CurrVal FROM DUAL
=== 2014-01-17 13:56:01,015 [0-12] INFO  SQLDataSource - [builtinApplication.addFavorite] primaryKeys: {PK=321}
=== 2014-01-17 13:56:01,015 [0-12] INFO  SQLDataSource - [builtinApplication.addFavorite] myOracleSID getLastRow(): using specific cacheSyncOperation favoritesAfterAdd
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource null, field null
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] DataSource favorites is not in the pre-checked list, processing...
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FORM_ID
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] DataSource DOCUMENTS is not in the pre-checked list, processing...
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field TITLE
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] DataSource DOCUMENTS is not in the pre-checked list, processing...
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FORM_ID
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field DATE_REVISED
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FORM_ID
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FILETYPE
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FORM_ID
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field DOCUMENT
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FORM_ID
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field DOCUMENT_filename
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FORM_ID
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field DOCUMENT_filesize
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field FORM_ID
=== 2014-01-17 13:56:01,015 [0-12] DEBUG DeclarativeSecurity - [builtinApplication.addFavorite] Processing security checks for DataSource DOCUMENTS, field DOCUMENT_date_created
=== 2014-01-17 13:56:01,015 [0-12] DEBUG AppBase - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] No userTypes defined, allowing anyone access to all operations for this application
=== 2014-01-17 13:56:01,016 [0-12] DEBUG AppBase - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] No public zero-argument method named '_favoritesAfterAdd' found, performing generic datasource operation
=== 2014-01-17 13:56:01,016 [0-12] INFO  SQLDataSource - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] Performing fetch operation with
        criteria: {PK:"321"}        values: {PK:"321"}
=== 2014-01-17 13:56:01,016 [0-12] INFO  SQLDataSource - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] derived query: SELECT       
          fav_form_id,
          favorites.pk,
          title,
          date_revised,
          filetype,
          document,
        document_filename,
        document_filesize,
        document_date_created         
    FROM        ${defaultTableClause}
          WHERE        username = 'myAdAccount'
      AND $defaultJoinWhereClause
=== 2014-01-17 13:56:01,016 [0-12] INFO  SQLDataSource - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] 34: Executing SQL query on 'myOracleSID': SELECT       
          fav_form_id,
          favorites.pk,
          title,
          date_revised,
          filetype,
          document,
        document_filename,
        document_filesize,
        document_date_created         
    FROM        absence_dev.FAVORITES, absence_dev.DOCUMENTS
          WHERE        username = 'myAdAccount'
      AND FAVORITES.FAV_FORM_ID = DOCUMENTS.FORM_ID
=== 2014-01-17 13:56:01,016 [0-12] DEBUG SQLDriver - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] About to execute SQL query in 'myOracleSID' using connection '397939605'
=== 2014-01-17 13:56:01,016 [0-12] INFO  SQLDriver - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] Executing SQL query on 'myOracleSID': SELECT       
          fav_form_id,
          favorites.pk,
          title,
          date_revised,
          filetype,
          document,
        document_filename,
        document_filesize,
        document_date_created         
    FROM        absence_dev.FAVORITES, absence_dev.DOCUMENTS
          WHERE        username = 'myAdAccount'
      AND FAVORITES.FAV_FORM_ID = DOCUMENTS.FORM_ID
=== 2014-01-17 13:56:01,020 [0-12] INFO  DSResponse - [builtinApplication.addFavorite, builtinApplication.favoritesAfterAdd] DSResponse: List with 1 items
=== 2014-01-17 13:56:01,020 [0-12] INFO  DSResponse - [builtinApplication.addFavorite] DSResponse: List with 1 items
=== 2014-01-17 13:56:01,020 [0-12] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
=== 2014-01-17 13:56:01,020 [0-12] DEBUG SQLTransaction - Committing myOracleSID transaction "397939605"
=== 2014-01-17 13:56:01,040 [0-12] DEBUG RPCManager - non-DMI response, dropExtraFields: false
=== 2014-01-17 13:56:01,040 [0-12] DEBUG SQLTransaction - Returning transactional connection for myOracleSID with hashcode "397939605"
=== 2014-01-17 13:56:01,040 [0-12] DEBUG SQLTransaction - Ending myOracleSID transaction "397939605"
=== 2014-01-17 13:56:01,041 [0-12] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "397939605"
=== 2014-01-17 13:56:01,041 [0-12] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 397939605
=== 2014-01-17 13:56:01,042 [0-12] INFO  Compression - /Forms/sc/IDACall: 365 -> 277 bytes

The issue at this point is that the ListGrid does not update to reflect the 1 item DSResponse. If I reload the page, or do an listGridFavorites.invalidateCache(), then the Record will show.

The SmartClient Developer Console RPC tab shows the add operation as a success. It does not show the cacheSync fetch operation, though I'm not sure it should?

For all subsequent drops (same record from same source ListGrid), my observations:
- Each drop adds one row in the ListGrid.
- From the console, the add operation executed (zero records added, as expected per the conditional SQL insert), but the cacheSyncOperation was not triggered.
- The dropped Record does not have a PK value. Which tells me it's a locally cached Record, not from the SQL database.

Please advise, thanks.

-----------------------------
Windows 7 64-bit
IE 8 64-bit
Eclipse 64-bit
JRE 7 64-bit
SmartClient Version: v9.0p_2014-01-15/PowerEdition Deployment (built 2014-01-15)

Problem in all Smartclient versions with Chrome 32 + TextArea + Sections

$
0
0
If we have the following scenario:

* Chrome 32 (with lower versions it doesn't happen)
* A form with columns
* A TextArea ALONE in the last position of the form and with rowSpan > 1
* A section starting next to the form

There is a bug and the section is rendered in front of the textarea.

You can easily test it with the attached html (copy it inside "/isomorphic/system/reference/" to run it).
The issue happens at least in Smartclient 8.3 and 10.0.

You have here a video showing how the issue is reproduced:
http://screencast.com/t/D6ZWQcuuTrJ0

Please, let me know once it be fixed and in which version it has been. We have some of our windows broken due to this.

PS: If you want to test in old Chrome versions, you can download from here (only for Windows): http://sourceforge.net/projects/port...al%20Versions/

Attached Files
File Type: html IssueChrome.html (2.5 KB)

Enhancment suggestion: API ListGridField.setHoverWidth(int width)

$
0
0
Hi Isomorphic,

I just noted that I can't define the Tooltip/Hover item width per ListGridField, as it extends DataClass and I can't find a way to get to my generated Canvas for the ListGridField, neither from ListGridField nor from ListGrid.
I think it might be a good idea to add setHoverWidth (int width), as you already have setHoverCustomizer (HoverCustomizer hoverCustomizer)

Best regards,
Blama

Enhancement: API ListGridField.setDateDisplayFormatter (DateDisplayFormatter ddf)

$
0
0
Hi Isomorphic,

it seems that it is currently (current 4.1d) not possible to define a date format on a per-ListGridField-basis for a datetime-field.

Currently only the following API is available:
Code:

setDateFormatter(DateDisplayFormat dateFormatter)
My problem is that DateDisplayFormat is just a list of some possible already localized formats (at least the datepart and timepart order), where only the separators are replaced for different locales.

e.g.:
Code:

setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATETIME);
results in:
de:    15.01.2014 17:40
en-US: 15/01/2014 17:40
where as
com.google.gwt.i18n.client.DateTimeFormat.getFormat(PredefinedFormat.DATE_TIME_MEDIUM)
would give sth like "2014 Jan 15 17:40" in the second case.

I think the change should be pretty easy for you, as you already default to the DateUtil.setShortDatetimeDisplayFormatter(), which can return really localized Strings with respect to separators, date-part-ordering and written day/month names. In the best case only some glue code is missing (is that correct? I'm getting to understand the framework more and more.).

Best regards,
Blama

isc.RestDataSource data removal - how to change HTTP method from POST to DELETE

$
0
0
Hi,

Currently I'm trying to integrate SmartClient Client v9.0 with REST web service. On http://www.smartclient.com/docs/9.0/a/system/reference/SmartClient_Explorer.html#restEditSave there is a nice example.

My question is how to enforce isc.RestDataSource to use DELETE HTTP method when isc.ListGrid.removeData method is called? By default post method is used.

jQuery script modifies dom of HTMLFLow, but getContents() gets the old version

$
0
0
Hello,

I'm using smartGWT: v8.3p_2013-12-19/PowerEdition Deployment 2013-12-19

I have a HTMLFlow panel, containing some <table> and a jquery script that modifies this table (re-orders rows a bit).

Afterwards, i'd like to save the -modified- HTML in the HTMLFLow element, to a datasource.

But a call to getContents() gives me the old version back (ie. whatever the state was when i called setContents(), _before_ jquery did its stuff).

Is there a way to work around this, or to 'refresh' the HTMLFLow with the current status the browser DOM has, such that a call to getContents() will give me the current situation?

If not; what would be a good way to achieve what I want?

order by asc/desc nulls first nulls last

$
0
0
Hello.

Sometimes we need to use more clever sorting behavior than simple
Code:

order by field1 desc
, I speak about nulls first/nulls last construct, defined in SQL standard.
Does SmartClient supports this on client side (client sorting) and server side (I mean SQL data source on server side).

I've heard about sort normalizers, but that looks like not so good workaround because field types maybe very different and we need to implement normalizer for every type we use...
Or if only one way is to use sort normalizers, maybe you have default ones for different types for supporting this SQL standard?

Unable to load Datasource for ID:countryDS4

$
0
0
I used jsp to load datasource the errorMessage is :
一月 10, 2010 7:32:11 上午 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/Testsource] threw exception [javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: Unable to load DataSource for ID: countryDS4
at com.isomorphic.taglib.LoadDSTag.outputJS(LoadDSTag .java:98)
at com.isomorphic.taglib.LoadDSTag.doStartTag(LoadDST ag.java:59)
at org.apache.jsp.datasource4_jsp._jspx_meth_isomorph ic_005floadDS_005f0(datasource4_jsp.java:117)
at org.apache.jsp.datasource4_jsp._jspService(datasou rce4_jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBas e.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(A ccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.p rocess(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnect ionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProce ssor.run(JIoEndpoint.java:298)
at java.util.concurrent.ThreadPoolExecutor.runWorker( Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
] with root cause
=== 2010-01-10 07:32:11,730 [ec-3] ERROR LoadDSTag - Exception while attempting to process a loadDS tag.
javax.servlet.jsp.JspException: Unable to load DataSource for ID: countryDS4
at com.isomorphic.taglib.LoadDSTag.outputJS(LoadDSTag .java:98)
at com.isomorphic.taglib.LoadDSTag.doStartTag(LoadDST ag.java:59)
at org.apache.jsp.datasource4_jsp._jspx_meth_isomorph ic_005floadDS_005f0(datasource4_jsp.java:117)
at org.apache.jsp.datasource4_jsp._jspService(datasou rce4_jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBas e.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(A ccessLogValve.java:928)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.p rocess(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnect ionHandler.process(AbstractProtocol.java:539)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProce ssor.run(JIoEndpoint.java:298)
at java.util.concurrent.ThreadPoolExecutor.runWorker( Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
the server.properties file content is :
# The webRoot directory:
# the directory that the servlet engine regards as the place where applications
# that use the servlet engine should be installed. Generally, it is safe to leave
# this at the default setting of __AUTODETECT__. When the SmartClient server is
# started, it logs a message to stdout telling you the autodetected path to your
# webRoot. If this path is not your actual webRoot, then you'll want to override
# this config parameter here.
#
# Valid values:
#
# 1. Absolute path to the webRoot directory
#
# 2. Special token: __AUTODETECT__
# When this token is used, SmartClient attempts to auto-detect the webRoot using
# standard servlet APIs. This may or may not work - depending on your
# container type and deployment type. For example, WAR/EAR deployments
# on some containers never make it to disk, and so the container refuses
# to provide the webRoot path.
#
# If SmartClient cannnot detect the webRoot, it sets the webRoot to
# __USE_CONTAINER__ (see below).
#
# 3. Special token: __USE_CONTAINER__
# When this token is used, SmartClient uses standard servet APIs for accessing
# filesystem resources. This is slower than direct file access and, since
# the servlet APIs provide no mechanism for writing to disk, means that some
# development tools like the FileAssembler will not work.
#
WebRoot: __AUTODETECT__

# if you've moved the isomorphic directory from its default location in webRoot,
# set the root-relative path to it here
#
# For example, if in your deployment the 'isomorphic' dir is in /foo/bar, then set
# then you'll need to set this to foo/bar/isomorphic
isomorphicPathRootRelative: isomorphic

# -------------- LOADING APP AND DATASOURCE DEFINITIONS --------------------

# Where the system looks for DataSource definition files ([dataSourceId].ds.xml or
# [dataSourceID].ds.js). It's useful to put all your DataSources in one
# directory since DataSources are frequently shared between applications.
# "project.datasources" is also where the DataSource Importer tool looks
# for available DataSources.
project.datasources: $WebRoot/shared/ds
project.ui: $WebRoot/shared/ui
project.apps: $WebRoot/shared/app
# -------------- Other settings --------------------
# The setting RPCManager.enabledBuiltinMethods enables or disables the BuiltInRPCs - RPC calls
# that are built into the SmartClient Server. The setting below reflects the framework default
# of enabling only those RPCs that are typically needed in an application.
#
# See the JavaDoc for com.isomorphic.rpc.BuiltinRPC and com.isomorphic.tools.BuiltinRPC for all
# available builtinRPCs and their behavior.
#
# Note that many of the BuiltinRPCs are designed for use by tools such as Visual Builder, and
# provide services such as direct access to the file system (for load and save of screens) that
# would be unsafe to expose to untrusted users.
#
#RPCManager.enabledBuiltinMethods: getAvailableScriptEngines, getPdfObject, xmlToJS, uploadProgressCheck, exportClientData, downloadClientExport, exportImage

Attached Images
File Type: jpg project-dir.jpg (23.3 KB)
Attached Files
File Type: xml iscTaglib.xml (12.1 KB)
File Type: jsp datasource4.jsp (1.1 KB)
File Type: js datasource4.js (170 Bytes)
File Type: xml countryDS4.ds.xml (295 Bytes)

Iconarea generated for DateFilterIcon in ListGrid Filterrow too narrow

Internet Explorer 11 Support in SmartGWT 3.0

$
0
0
We have a Web Application which has been developed using SmartGWT 3.0 and it works perfectly in Internet Explorer till version 10.
We tried to run the application from IE 11 browser, but came across various GUI issues.
Some of them are as below :
- Uneven border width of custom window widgets
- Distorted UI
- scroll bars not functioning on any of the pages
- unable to select/click a SelectItem in a form, as the cursor changes to a drag

We tried running some standalone cases on IE 11 and could see the same problems. I have attached screenshot of some sample cases.

Please let me know whether SmartGWT 3.0 supports IE 11?

Invalid call to setDataSource() passing null

$
0
0
Hi,
I got a problem, using SmartGWT Pro Edition 4.0 and Google Chrome 32.0.1700.76 m in Eclipse: Version: Kepler Release
Build id: 20130614-0229

Code:

Problem loading builtinTypes.xml
Exception when loading from __USE_CONTAINER__/isomorphic/system/schema/builtinTypes.xml:
java.lang.NullPointerException
        at com.isomorphic.io.ISCFile.lastModified(ISCFile.java:439)
        at com.isomorphic.store.ProcessedFileCache.getObjectFromFile(ProcessedFileCache.java:140)
        at com.isomorphic.xml.XML.getXMLDocument(XML.java:286)
        at com.isomorphic.xml.XML.toDSRecords(XML.java:294)
        at com.isomorphic.xml.XML.toDSRecords(XML.java:298)
        at com.isomorphic.xml.XML.toDSRecords(XML.java:301)
        at com.isomorphic.datasource.DataSource.<clinit>(DataSource.java:643)
        at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java:92)
        at com.isomorphic.datasource.DataSourceManager.getDataSource(DataSourceManager.java:86)
        at com.isomorphic.servlet.DataSourceLoader.processRequest(DataSourceLoader.java:132)
        at com.isomorphic.servlet.DataSourceLoader.doGet(DataSourceLoader.java:96)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
        at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Code:

11:56:56.035 [ERROR] [example] Unable to load module entry point class com.example.client.Example (see associated exception for details)
java.lang.IllegalArgumentException: Invalid call to setDataSource() passing null.  If you're having trouble with loading DataSources, please see the following FAQ: http://forums.smartclient.com/showthread.php?t=8159#aDSLoad
    at com.smartgwt.client.widgets.grid.ListGrid.setDataSource(ListGrid.java:18172)
    at com.example.client.Example.onModuleLoad(Example.java:18)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:406)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
    at java.lang.Thread.run(Unknown Source)

We tried to built a small Application using DataSources, but the above shown exceptions accured.
We tried to work through the FAQ
http://forums.smartclient.com/showthread.php?t=8159#aDSLoad, but it didn`t help.

Hopefully you guys can help us.

Thanks in advance

Paul

How to force DataSource to send request parameters in a different way?

$
0
0
How to force DataSource to send fetch operation parematers in a following format?

Code:

dataURL/parameter1/value1/parameter2/value2

how can I manage the location of my objects (button, label, ...) in my page

$
0
0
Hello everyone,
Can someone help me (or explain to me) how well place my objects in my web page because I find it very difficult.
for example a text area, drop down liste and a button in the same line.
Thank you in advance

Does isomorphic/HttpProxy support HTTP DELETE method?

$
0
0
Does isomorphic/HttpProxy support HTTP DELETE method?

Fixed y-axis scale

$
0
0
I have a facetchart to show a heart rate monitor. This chart has a drawline for the upper and lower heart rate. The problem is that the y-axis changes depending on the data the is set on the chart. I would like to force the scale to be 0 (lower) to 140 (high) so both my drawlines are shown, regardless of the current data.

I show 10 samples at most, so the min and max of the data set will be changing over time.

What setting can I use for this?

Calendar dateIsWorkDay, getWorkDayEnd, getWorkDayStart

$
0
0
Hi,
I'm using Calendar widget to track work time of empleyees.

Tried to override getWorkDayEnd, getWorkDayStart and dateIsWorkDay methods but they are not getting called.

I'm trying to show holidays disabled with dateIsWorkDay.

SmartGWT Version:

SmartClient Version: v8.1p_2013-06-10/Pro Deployment (built 2013-06-10)

Browser and version: Firefox 26.0

Code:


Calendar c = new Calendar() {

@Override
public String getWorkdayStart() {
        return "08:00am";
}
@Override
public String getWorkdayEnd() {
        return "04:00pm";
}
                       
@Override
public Boolean dateIsWorkday(Date date) {
return false;
        }
}

c.setShowWorkday(true);
c.setScrollToWorkday(true);
c.setEventAutoArrange(false);
c.setCanAcceptDrop(false);
c.setCanDragScroll(false);
c.setCanDragEvents(false);
c.setEventOverlap(true);
c.setEventSnapGap(30);
c.setShowWeekends(true);
c.setDisableWeekends(false);
c.setShowOtherDays(false);                c.setCurrentViewName(ViewName.MONTH);

When called
Code:

c.setWorkdayStart("08:00am");
c.setWorkdayEnd("4:00pm");

then workday is set.

But dateIsWorkDay not getting called.

Should dateIsWorkDay be called for every day on Calendar or somethig?

Thank you,
Dejan

Bug(?): Client side ResultSet does not regard nested relatedUpdates

$
0
0
Hi Isomorphic,

I have the following situation in current 4.1d:
1) My serverside DMI executes a request (DB-changing).
2) Upon successful execution it calls a helper method this.
3) The Helper1 executes its request (DB-changing).
4) Upon successful execution Helper1 calls a Helper2 method.
5) The Helper2 executes its request (DB-changing).
6) Helper1.addRelatedUpdate (Helper2.response)
7) DMI.addRelatedUpdate (Helper1.response)

In the client, the nested response of Helper2 is not used (I have ResultSet and RPCManager logging set to Debug in the Console)

My Response in the RPC-Tab of the Delevoper Console looks like this (watch for the two "relatedUpdates"):
Code:

[
    {
        data:[
            {
                USER_ID:1012,
                LEAD_ID:1
            }
        ],
        invalidateCache:false,
        isDSResponse:true,
        operationType:"remove",
        queueStatus:0,
        relatedUpdates:[
            {
                relatedUpdates:[

                    {
                        endRow:1,
                        dataSource:"V_LEAD_PICKED",
                        totalRows:1,
                        isDSResponse:true,
                        invalidateCache:false,
                        status:0,
                        operationType:"update",
                        startRow:0,
                        data:[
                            {
                                ...data1...
                            }
                        ]
                    }
                ],
                dataSource:"T_LEAD_HISTORY",
                isDSResponse:true,
                invalidateCache:false,
                status:0,
                operationType:"update",
                data:[
                    {
                        ...data2...
                    }
                ]
            }
        ],
        status:0
    }
]

The DSRequest in the RPC-Tab of the Developer Console looks like this:
Code:

{
    dataSource:"V_LEAD_MATCHED_UNDISMISSED",
    operationType:"remove",
    operationId:"acceptLead",
    data:{
        USER_ID:1012,
        LEAD_ID:1
    },
    showPrompt:true,
    oldValues:{
        USER_ID:1012,
        LEAD_ID:1
    },
    requestId:"V_LEAD_MATCHED_UNDISMISSED$62718",
    fallbackToEval:false,
    lastClientEventThreadCode:"MUP6",
    bypassCache:true
}

I'm pretty sure that the ResultSet discards the 2nd RelatedUpdate.

I can "repair" the situation by doing the following:
1) My serverside DMI executes a request (DB-changing).
2) Upon successful execution it calls a helper method this.
3) The Helper1 executes its request (DB-changing).
4) Upon successful execution Helper1 calls a Helper2 method.
5) The Helper2 executes its request (DB-changing).
6) Helper1.addRelatedUpdate(Helper2.response)
7) DMI.addRelatedUpdate(Helper1.response) (until now as above)
8) foreach (innerRelatedUpdate : Helper1.getRelatedUpdates) -> DMI.addRelatedUpdate(innerRelatedUpdate).

This has the expected result and the client-side widgets update their data as expected, BUT I have the data1 twice in the response, which is definitely not correct or necessary.

My Response in the RPC-Tab of the Developer Console in the 2nd case looks like this (watch for the two "relatedUpdates" and the two "...data1..."):
Code:

[
    {
        data:[
            {
                USER_ID:1012,
                LEAD_ID:1
            }
        ],
        invalidateCache:false,
        isDSResponse:true,
        operationType:"remove",
        queueStatus:0,
      relatedUpdates:[
            {
                relatedUpdates:[

                    {
                        endRow:1,
                        dataSource:"V_LEAD_PICKED",
                        totalRows:1,
                        isDSResponse:true,
                        invalidateCache:false,
                        status:0,
                        operationType:"update",
                        startRow:0,
                        data:[
                            {
                                ...data1...
                            }
                        ]
                    }
                ],
                dataSource:"T_LEAD_HISTORY",
                isDSResponse:true,
                invalidateCache:false,
                status:0,
                operationType:"update",
                data:[
                    {
                        ...data2...
                    }
                ]
            },
            {
                endRow:1,
                dataSource:"V_LEAD_PICKED",
                totalRows:1,
                isDSResponse:true,
                invalidateCache:false,
                status:0,
                operationType:"update",
                startRow:0,
                data:[
                    {
                        ...data1...
                    }
                ]
            }
        ],
        status:0
    }
]

Could you please advise what the correct way of using the APIs is in this case?
Is the discarding of the nested relatedUpdate a bug?
If its not a bug, I think an additional API like DSResponse.removeRelatedUpdates() could solve the problem for me. I'd then pull my nested relatedUpdates to the top level and remove them afterwards.

Thank you and best regards,
Blama

Multi tenant datasource with SmartGWT Power

$
0
0
Hello all,

Is there a good getting started point for setting up a multi tenant application using JPA? I have the normal concerns of ensuring that accounts cannot see or touch data from other accounts. From what I'm reading we would use SQL templates but I want to ensure that this is the proper direction. If it's the right direction is there a good example to get started with?

isomorphic/HttpProxy error

$
0
0
Hi,

I've got a problem with HttpProxy. I'm getting following warning in response to request. In addition, request doesn't reach destination server, seem it stuck on Proxy. I use v9.0p_2014-01-15 SmartClient

Code:

isc.logWarn("java.lang.NullPointerException\r\n\tat java.io.StringReader.(StringReader.java:50)\r\n\tat com.isomorphic.servlet.HttpProxyServlet.doPost(HttpProxyServlet.java:346)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:710)\r\n\tat com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:803)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)\r\n\tat com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilter.java:242)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)\r\n\tat com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:260)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)\r\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)\r\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)\r\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)\r\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)\r\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)\r\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)\r\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)\r\n\tat org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)\r\n\tat org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)\r\n\tat org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)\r\n\tat org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)\r\n\tat org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)\r\n\tat java.lang.Thread.run(Thread.java:744)\r\n");
Here is the dump of HTTP request and response data

Code:

Request URL:http://localhost:9090/isomorphic/HttpProxy
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en;q=0.8,en-US;q=0.6,pl;q=0.4,de;q=0.2
Connection:keep-alive
Content-Length:596
Content-Type:application/json
Cookie:isc_cState=ready; GLog=%7B%0D%20%20%20%20left%3A997%2C%20%0D%20%20%20%20top%3A13%2C%20%0D%20%20%20%20width%3A905%2C%20%0D%20%20%20%20height%3A1114%2C%20%0D%20%20%20%20priorityDefaults%3A%7B%0D%20%20%20%20%20%20%20%20Log%3A4%0D%20%20%20%20%7D%2C%20%0D%20%20%20%20defaultPriority%3A3%2C%20%0D%20%20%20%20trackRPC%3Anull%0D%7D; JSESSIONID=1EB9ABBF0397C4509A2358B1A03D7A05
Host:localhost:9090
Origin:http://localhost:9090
Referer:http://localhost:9090/rest/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Request Payload
data=%3Cdata%20xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2F10%2FXMLSchema-instance%22%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Curl%3Ehttp%3A%2F%2Flocalhost%3A8080%2Frestee%2Fwebresources%2Fcom.rest.users%2F%3C%2Furl%3E%3ChttpMethod%3EPOST%3C%2FhttpMethod%3E%3CrequestBody%3E%7B%26quot%3Bname%26quot%3B%3A%26quot%3Bxxx%26quot%3B%2C%26quot%3Bsuename%26quot%3B%3A%26quot%3Bxxx%26quot%3B%7D%3C%2FrequestBody%3E%3ChttpHeaders%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CAccept%3Eapplication%2Fjson%3C%2FAccept%3E%3CContent-Type%3Eapplication%2Fjson%3C%2FContent-Type%3E%3C%2FhttpHeaders%3E%3C%2Fdata%3E
Response Headersview source
Content-Encoding:gzip
Content-Length:604
Content-Type:text/html
Date:Mon, 20 Jan 2014 22:14:29 GMT
Server:Apache-Coyote/1.1
X-Included-Test:true
X-Included-Test2:true

Viewing all 4756 articles
Browse latest View live


Latest Images