@boikom

@boikom

Forum Replies Created

Viewing 15 posts - 781 through 795 (of 927 total)
  • Author
    Posts
  • admin
    Keymaster

     
    I’ve been doing some experiments. There seems to be a problem if the initial number of rows in the data source is 1 or 0. If it is > 1, then new rows that are added are correctly displayed.
    It is rather bizarre behaviour.
    If there are zero rows initially, it seems it will never show any row.
    If there is one row initially, it seems it will only ever show 2 rows.
    If there are two or more rows initially, it seems to work correctly, and added rows are displayed.
    In all cases, the height does increase when rows are added, but it does not render the new rows. Just white space.
    .refresh() seems to do nothing.
    See module below that sets up the grid <div id=add_course_history_grid></div>
    addCourseGrid.js

    // Grid for add Course
    const dataFields = [
    'id: string',
    'schoolID: string',
    'code: string',
    'enrollmentStartDate: string',
    'enrollmentEndDate: string',
    'activeStartDate: string',
    'activeEndDate: string',
    'syllabusCode: string',
    'name: string',
    'shortName: string',
    'description: string',
    'academicTerm: string',
    'paymentKind: string',
    'isPaid: bool',
    'enrollmentRules: string',
    'gradingParameters: string',
    'tags: string',
    'notes: string',
    'annex: string',
    'serverCreatedAt: string',
    'serverUpdatedAt: string',
    'rowVersion: number',
    ];
    const columnGroups = [
    { label: 'Enrollment', name: 'enrollment', align: 'center' },
    { label: 'Active', name: 'active', align: 'center' },
    { label: 'Payment', name: 'payment', align: 'center' },
    { label: 'Housekeeping', name: 'housekeeping', align: 'center' },
    ];
    const columns = [
    { label: 'id', width: '10em', dataField: 'id' },
    { label: 'schoolID', width: '12em', dataField: 'schoolID' },
    { label: 'code', width: '10em', dataField: 'code' },
    { label: 'StartDate', dataField: 'enrollmentStartDate', columnGroup: 'enrollment' },
    { label: 'EndDate', dataField: 'enrollmentEndDate', columnGroup: 'enrollment' },
    { label: 'StartDate', width: '15em', dataField: 'activeStartDate', columnGroup: 'active' },
    { label: 'EndDate', width: '15em', dataField: 'activeEndDate', columnGroup: 'active' },
    { label: 'syllabusCode', width: '6em', dataField: 'syllabusCode' },
    { label: 'name', width: '20em', dataField: 'name' },
    { label: 'shortName', width: '12em', dataField: 'shortName' },
    { label: 'description', width: '12em', dataField: 'description' },
    { label: 'academicTerm', width: '12em', dataField: 'academicTerm' },
    { label: 'Kind', width: '10em', dataField: 'paymentKind', columnGroup: 'payment' },
    { label: 'Paid ?', width: '5em', align: 'center', dataField: 'isPaid', columnGroup: 'payment', template: 'checkBox' },
    { label: 'tags', width: '10em', dataField: 'tags' },
    { label: 'notes', width: '10em', dataField: 'notes' },
    { label: 'annex', width: '10em', dataField: 'annex' },
    { label: 'serverCreatedAt', width: '20em', dataField: 'serverCreatedAt', columnGroup: 'housekeeping' },
    { label: 'serverUpdatedAt', width: '20em', dataField: 'serverUpdatedAt', columnGroup: 'housekeeping' },
    { label: 'rowVersion', width: '12em', dataField: 'rowVersion', columnGroup: 'housekeeping' },
    ];
    const appearance = {
    alternationCount: 2,
    showRowNumber: true,
    showRowHeader: true,
    };
    const selection = {
    enabled: true,
    allowCellSelection: true,
    allowRowHeaderSelection: true,
    allowColumnHeaderSelection: true,
    mode: 'extended'
    };
    const dataSource = new Array(
    {id: 'one', schoolID: 'FooState', code: 'Foo101'},
    {id: 'two', schoolID: 'UFoo', code: 'Foo102'},
    //{id: 'three', schoolID: 'BarPoly', code: 'Foo103'},
    //{id: 'four', schoolID: 'UCBar', code: 'Foo104'},
    );
    //const dataSource = new Array();
    const dataAdapter = new Smart.DataAdapter({
    dataSource: dataSource,
    dataFields: dataFields,
    });
    function onRowInit(index, row) {
    if (index < 1) {
    row.freeze = true;
    }
    }
    export const addCourseGrid = new Smart.Grid('#add_course_history_grid', {
    dataSource: dataAdapter,
    columnGroups: columnGroups,
    columns: columns,
    columnResizeMode: 'growAndShrink',
    appearance: appearance,
    sorting: { enabled: true, },
    selection: selection,
    onRowInit: onRowInit,
    });
    document.addCourseGrid = addCourseGrid; // for easy debug

     

    admin
    Keymaster

    It doesn’t seem to really be resolved in 4.3. I can’t get it to show more than 4 rows when I add.
    But maybe I am not adding correctly. I had a heck of a time figuring out from the documentation just how to add rows. Lots of extensive documentation, but seems lacking in presenting key concepts. Maybe it is easier if you are coming from jsWidgets?  I guess part of the problem is there are several ways. I have a number of requests into support about this, so they will be busy after the holiday. 😉
    There are demos that create a grid row, and add the row to the grid. I tried to guess what to do with a data adapter. I finally came across a useful demo, and for the common case where you just have an array of source data, e.g. mygrid.dataSource.add({id: ‘foo’, code: ‘bar’} seems to work and updates both the source array and the displayed grid – UNTIL you get to 4 rows.
    After 4 rows are in the grid, if the height is auto, the height will increase, but it will display a blank row. I can confirm that the data is in the dataSource. But it doesn’t show.
    Setting a fixed height doesn’t help. It won’t show more than 4. If you set height to auto, at least it demonstrates that rows are being added, because the height is seen to increase by observing the border – but the rows are not shown on the page.
     

    in reply to: How to get ONLY data properties? #100270
    admin
    Keymaster

    Sorry, for the typo. It is toJSON(), not jsonData in 4.3.
    Regards,
    George
    Smart HTML Elements Team
    https://www.htmlelements.com

    in reply to: type? in JS file references #100269
    admin
    Keymaster

    Hi cetinsert,
    The file is updated.
    Best Regards,
    George
    Smart HTML Elements Team
    https://www.htmlelements.com

    in reply to: How to get ONLY data properties? #100263
    admin
    Keymaster

    4.3 has an app.toJSON() method – cannot find app.jsonData property though.

    in reply to: Smart.App data binding regression in 4.2 vs 4.1 #100262
    admin
    Keymaster

    Hi George,
    Your response times are astonishing! It makes using your forums such a pleasure.
    Thanks,
    Cetin

    in reply to: How to get ONLY data properties? #100260
    admin
    Keymaster

    Hi jtara,
    With the Smart ver. 4.3.0, Smart.App is extended with “jsonData” and “formData” properties. “jsonData” gets the “data” without the extended observable properties. “formData” returns FormData object.
    Regards,
    George
    Smart HTML Elements Team
    https://www.htmlelements.com

    in reply to: Smart.App data binding regression in 4.2 vs 4.1 #100257
    admin
    Keymaster

    Hi Cetin,
    The old behavior of the ‘data’ object is now available again. The behavior introduced in 4.2.0 is available through the jsonData property of Smart.App. We introduced also a new property formData which is useful for Posting Forms.
    Regards,
    George
    Smart HTML Elements
    https://www.htmlelements.com

    admin
    Keymaster

    Hi,
    New Update: The reported behavior of the Grid is resolved in ver. 4.3.0.
    Regards,
    Boyko Markov
    Smart Html Elements Team
    https://www.htmlelements.com/

    admin
    Keymaster

    Thank you!
    Still persists if

    • editing.batch == true

    also holds though.
    https://codepen.io/cetinsert/pen/rNBmxBK (marked !!)

    in reply to: Smart.App data binding regression in 4.2 vs 4.1 #100252
    admin
    Keymaster

    Oh, I am infinitely delighted to hear that!
    I have an app that is now stuck at 4.1 due to this.
    <hr />
    https://codepen.io/cetinsert/pen/jONmPNQ?editors=1011 has just been updated with
    notes on the 4.2 regressions (version 3.1 through 4.2, marked !!) of

    1. behavior – marked 0, 2, 4
    2. data type – marked T

    Thank you!

    in reply to: Smart.App data binding regression in 4.2 vs 4.1 #100251
    admin
    Keymaster

    We will reconsider this. The change was about the fact that data was not appropriate for form post, but we can expose a new property for that.

    in reply to: Smart.App data binding regression in 4.2 vs 4.1 #100248
    admin
    Keymaster

    https://www.htmlelements.com/docs/view-model-binding/ has sections about grid stack layout at the end of the page. )

    in reply to: Smart.App data binding regression in 4.2 vs 4.1 #100246
    admin
    Keymaster

    I honestly found it was truly magical that I could just assign to arbitrarily nested app.data subfields and the view would just update live before my eyes.
    That was something no other framework has.
    If this sudden change is not for a deep technical reason, I would like to kindly ask the person/team behind the data binding feature to reconsider adding support for this back.

    in reply to: Smart.App data binding regression in 4.2 vs 4.1 #100245
    admin
    Keymaster

    I have updated the link with whole-object set.
    Still, how can I read app.data.details.subject with its non-string value type?

Viewing 15 posts - 781 through 795 (of 927 total)