jQWidgets Forums

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 27 total)
  • Author
    Posts

  • Crisium
    Participant

    I can see there is a new version of the jqwidgets. any chance you guys have fixed this bug.
    Simple put I cannot use this library with this bug.

    I have already started making my own gui library, since the turn around time for fixing bugs here is way too long.


    Crisium
    Participant

    not being able to load or save a layout sounds like a high priority to me?


    Crisium
    Participant

    is this issue dead? I have also made a github issue here: https://github.com/jqwidgets/jQWidgets/issues/417

    if this issue is dead, please tell, so I can move onto some other library.


    Crisium
    Participant

    any updates?


    Crisium
    Participant

    I hope we get a fix and not a workaround for it.

    I did look into the “smart” stuff you suggested, just find it is missing files and is incorrectly setup npm.

    This does not exist:
    <script type=”module” src=”../../source/modules/smart.dockinglayout.js”></script>

    nor is there any .d.ts files

    it is like the “free” version is missing almost everything (I am assuming it is the free versions fault).

    The whole reason for looking into jqwidgets is because we are hitting limitations/problems with easyui at our company. We are looking for an alternative solution and jqwidgets seems to be a good fit. But right out of the box we are experiencing problems.


    Crisium
    Participant

    do you have a status update? I am still waiting for this fix.


    Crisium
    Participant

    I have put the code back into the state that shows the double float dialog.

    https://github.com/Crisium/jqtest

    To reproduce:

    Open a browser to the website.
    Press “Create Floating Panel”
    Refresh your browser
    Press “Load”, dialog will appear
    move the dialog and you will see a copy underneath

    good luck,
    Peter


    Crisium
    Participant

    Hi Yavor,

    yes I have to use the let data = (<any>$(‘#jqxDockingLayout’)).jqxDockingLayout(‘saveLayout’); , but this results with the floating dialog being loaded twice.

    there is something wrong with the docking layout.

    I can revert back to the example that shows this error, the current version was to prove that your example did not work.

    Peter


    Crisium
    Participant

    and because they do NOT exist and you are using the wrong code base, your example fails completly.


    Crisium
    Participant

    If you look at the docking_layout in the console, you will clearly see that saveLayout and loadLayout __proto__ do not exist:

    __proto__:
    addEventHandler: ƒ (n,e)
    addFloatGroup: ƒ (c,k,d,j,h,e,g)
    addHandler: ƒ (p,e,n,o)
    applyTo: ƒ (o,n)
    base: null
    baseType: “_jqxLayout”
    createInstance: ƒ ()
    defineInstance: ƒ ()
    destroy: ƒ ()
    getInstance: ƒ ()
    isMaterialized: ƒ ()
    isModern: ƒ ()
    loadLayout: ƒ (e)
    metaInfo: ƒ ()
    propertyChangeMap: {}
    refresh: ƒ ()
    removeEventHandler: ƒ (n,e)
    removeHandler: ƒ (o,e,n)
    setOptions: ƒ ()
    toThemeProperty: ƒ (e,n)
    _addAutoHideGroupHandlers: ƒ (g,e,i,h)
    _addBarAndLabel: ƒ (p)
    _addClasses: ƒ ()
    _addEdgeOverlaysHandlers: ƒ ()
    _addOverlayHandlers: ƒ ()
    _addTabbedGroupHandlers: ƒ (h,f)
    _checkPosition: ƒ (k,p)
    _clearTextSelection: ƒ ()
    _closest: ƒ (d,c)
    _createEdgeOverlays: ƒ ()
    _createFloatGroup: ƒ (D,J,B,f,H,q,e)
    _createOverlay: ƒ ()
    _dropHandler: ƒ (r,x,z,D)
    _dropToEdge: ƒ (c,d,w,y)
    _dropToEmptyLayoutGroup: ƒ (f)
    _floatAutoHideGroup: ƒ (f,g,b,e)
    _floatTabbedGroup: ƒ (j,g,b)
    _getDraggedWindowInformation: ƒ ()
    _getFloatGroupItemSelection: ƒ (b)
    _hideOverlays: ƒ ()
    _interval: ƒ ()
    _raiseEvent: ƒ (f,c)
    _removeByDragHandler: ƒ (b,k,g,i,f)
    _removeFloatGroupObject: ƒ (c)
    _removeHandlers: ƒ ()
    _setOptimalDimension: ƒ (d,b,c)
    _showEdgeOverlays: ƒ ()
    _trackFloatGroups: ƒ ()
    _updateOverlayGroup: ƒ (c)
    _updateOverlayGroups: ƒ ()
    constructor: ƒ ()
    __proto__: Object


    Crisium
    Participant

    look at the jqwidget code:

    https://github.com/jqwidgets/jQWidgets/blob/master/jqwidgets/jqxdockinglayout.js

    just do a simple search and you will see there is no saveLayout or loadLayout

    you are using the wrong code base.

    the save and load are in the https://github.com/jqwidgets/jQWidgets/blob/master/jqwidgets/jqxlayout.js

    but for some voodoo reason these functions are not available runtime. It seems like there is something that hasn’t been setup correctly.


    Crisium
    Participant

    I still can’t move forward with this. I am at the point where I am using too much time fighting bugs with the jqx library. Going to see if I can find alternatives.


    Crisium
    Participant

    Hello Yavor,

    Just for fun I changed the code to your suggestions (even though I know they are wrong, you do not use reference in this kind of a project).

    anyways, compiles fine, but cannot run correctly. when you try and save the layout you get:

    app.ts:114 Uncaught TypeError: docking_layout.saveLayout is not a function
    at HTMLInputElement.<anonymous> (app.ts:114)
    at HTMLInputElement.dispatch (jquery-3.6.0.min.js:2)
    at HTMLInputElement.v.handle (jquery-3.6.0.min.js:2)

    that is why you need to call:
    let data = (<any>$(‘#jqxDockingLayout’)).jqxDockingLayout(‘saveLayout’);

    I have updated the project on github so it has your suggestions (that do not work) in it.

    You are using typescript in a very primitive way, which is more or less just a straight translation to javascript. Please run the example I have provided, I have added some extra comments to help guide you to the problems.

    Please contact me if you need more info.


    Crisium
    Participant

    @Yavor Dashev I am trying to see what the difference is?

    I can see you are using a reference which indicates you did not use the npm installed version, since import the jqwidgets the reference cannot be used.

    This also changes the behaviour for the methods loadLayout and saveLayout:

    let myDockingLayout: jqwidgets.jqxDockingLayout = jqwidgets.createInstance(DockingLayoutSelector, ‘jqxDockingLayout’, options);

    this is NOT possible when using import the saveLayout and loadLayout do not exist and can only be accessed using the query selector and type casting it to an any and do this:

    let data = (<any>$(‘#jqxDockingLayout’)).jqxDockingLayout(‘saveLayout’);

    The code you have supplied does not work with imports.

    Peter


    Crisium
    Participant

    please look at my spike test, cannot continue with jqwidgets before I get this solved. currently using easyui and would really like to make the change.

Viewing 15 posts - 1 through 15 (of 27 total)