Copy paste issue

Tags: #<Tag:0x00007fa99993b1e8>

Hi

I’m to busy to make an example, you have an issue with copy and paste, the paste seems to work but Ive had to put a delay in after changes to allow time for it to complete properly before I update my database backend with out the delay it will only save a proportion of the data, on a save button command. This is annoying and not ideal coding.

Also I have a loading screen that uses the below code to initialise
I use the afterchange with a delay to close the loading screen due to the issue above, but it doesn’t alway open the loading screen straight away, after I have run through the copy and paste sequence at least once.

contextMenu: [
                'copy',
                'cut',
                {
                    key: 'paste',
                    name: 'Paste',
                    disabled: function () {
                        return disable(this, 'Paste');
                    },
                    callback: function () {
                        view.LoadingChanged.emit(true);
                        var plugin = this.getPlugin('copyPaste');

                        this.listen();
                        plugin.paste(view.clipboardCache);

                        view.SMData = true;
                        this.render();
                    }
                },


afterChange: function (changes, source) {

// This is not great coding but fixes the bug allowing the copy paste to complete properly.

if (source === "CopyPaste.paste" && changes.length > 30) {
                    window.setTimeout(() => {
                        view.LoadingChanged.emit(false);
                    },
                        15000);
                
} else if (source === "CopyPaste.paste" && changes.length > 8) {
                    window.setTimeout(() => {
                        view.LoadingChanged.emit(false);
                    },
                        7000);

} else if (source === "CopyPaste.paste"){
                    window.setTimeout(() => {
                        view.LoadingChanged.emit(false);
                    },
                        3000);

                }

}

Hey @ben.warren

can you share a demo? I guess that it would help to know what hides under view.LoadingChanged method.

This is to big to provide an example and my work is company sensitive. view.LoadingChanged.emit(true); just allows a loading screen to be displayed through npm ngx-spinner at a different level.

i.e. Stopping any further changes until complete.

If the afterChange it not triggered at the best time you can also try one of 3 other hooks that are called for the paste action https://jsfiddle.net/d2uwqyj6/1/

Hi aleksandra_budnik

i tried these hooks before posting initially, they are delayed further and on the initial copy paste, so the loading screen i believe is in the correct place. the issue here is after the first copy paste and you do the same thing it doesn’t fire straight away.

I’ve asked @piotr.nowak to take a look at this example. Maybe he’ll be able to find some solution/approach that I do not see at this moment.

Great. So the problem isn’t really my issue with the delay on the load screen. I shouldn’t have to put a timeout in the first place, there is something odd with the copy and paste updating, becoming more apparent when copying one cell into 70+ cells. It looks like it completes but if you click on a save button it will only save a proportion of the copied cells. The longer u wait after the paste the more that get saved even though it indicates the paste has completed (I highlight the cells as they are changed via meta and css).

Hey @ben.warren, Aleksandra told me that you have a custom paste option that you’d like me to check. What’s the current progress?

Hi

I’ve tried to make a quick example, but it disproves what i’m saying. please could you leave this open and i will update again when i’ve got a little more time.

https://jsfiddle.net/knu3wbry/

or you can close this and I can open another issue when i’ve got a working issue. I will not get to this until mid next week now.

I need to fix it at some point.

I think its not happen as this is simplistic example and mine is a bit more intense, checking for changes and updating other cells, so you get multiple calls to afterChange. i.e. A net demand change would require net demand excluding vat and net margin to update … (The paste should have completed though)

We can keep the topic opened. Please send the demo over when you’ll have time.

I think its not happen as this is simplistic example and mine is a bit more intense,

Like they say - the devil is in the details. It looks like there’s something that is not obvious.