Idea for an easy "copy component"

So I’ve been creating the same set of components (field editors in grids in a wrapper in another wrapper) 15 times for the same page. With all the background, padding, boarders, sizing, etc… It takes a bunch of time. It came to mind that You could probably put a wrapper-like component at the bottom of the page builder with a single button labeled “copy”. The user could drag any component or component cluster into the wrapper. When the user hits copy, Skuid would copy all XML code between the open and close tag of that wrapper component and paste it back into the xml right before the close tag. The user would see a carbon copy of their component cluster appear right below the existing one on the page builder. All the models would match up because the original components were built on the same page. . They could then drag wherever they want. The user could leave frequently used component clusters in the copy section and just use the copies, that way they they would always be just one button push from a fresh copy. Even better, there would be an “import Skuid page” button that would allow you to select any Skuid page into the existing page, but strip out all the xml except the models, components actions, etc… The components would all magically appear in the copy section for drag and drop to anywhere. If there are components that don’t get used, the user Wilkins just delete them out like they would any component.

Where have I seen this before. :wink:

https://community.skuid.com/t/copy-and-paste-components
https://community.skuid.com/t/clipboard-component

Haha… It is true what they say. There is no such thing as an original thought! I like my implementation idea best though! I will thumbs up the other post.

Could the idea I presented above be addressed with a Java snippet that would copy the xml of anything between the open and close tags of a specific component with unique ID “copy machine”? Then you could drag a wrapper component into your page, give it to unique Id of “copy machine” and anything you drag into it could be copied using a button running the snippet. That would make the users happy and take some of the pressure off the bloodied typing fingers of the Skuid developers. I don’t have the skills or steady hands to pull off such a procedure, but maybe someone else does?

+1 Great idea,

But in case it has not been mentioned, what I do is go in the XML and copy the tables/field editors/tabs code …i want to duplicate and paste it where i want the “copy” (to easily find your existing component in the XML, lookup the Unique ID with  Ctrl+f in xml to search it)

Then I just change the unique ID of the components i pasted (not mandatory as far as i know, but i like each component to have different ID, in case referenced in a css…)

Works like a charm for me (I use that a lot for tabs containing tables with a lot of filters and rendering conditions…)

Yes.  This has been a recurring theme.  We are working out how best to do this… 

Any update on this?

Its still a great idea.  Its still not one we have gotten too…  Sorry

I’ve thought about this a bit, and I like where your head is at. I think everyone has wished they could just cut + paste all their hard work into different tabs on a page, or in different pop-ups. I know that the majority of time I run into this however, I’d like for there to be different models that drive the component (perhaps even the same underlying SFobject but different conditions etc. applied.)

Now the case of, as you put it “All the models would match up because the original components were built on the same page” doesn’t hold true. Skuid can be nasty when it comes to ripping + replacing models in existing components, and certain legacy attributes are left into the XML that can cause some weirdness.

If this is to be done well in my opinion, it’d have to have a really nice way of identifying all the models that are used in the desired XML tree and offering a chance for the user to change them.

I do the same.  And I’ve only hosed up my pages once or twice. :slight_smile:  (thank goodness for version restoration)

We really appreciate your suggestion about allowing for easy cutting/copying/pasting/cloning of components. It has been implemented and is now available in the Millau release, now available from the Skuid Releases page at https://www.skuid.com/releases/. As a reminder, Salesforce does not allow reverting back to prior versions of managed packages. Skuid always recommends installing new versions in a non-business critical sandbox environment to test all mission critical functionality before installing into a production environment. We also recommend that you update out of date themes when you upgrade. Thanks again for helping Skuid become an even better product!

Here is our documentation about this new and long-awaited feature! https://docs.skuid.com/v11.0.0/en/skuid/components/#cut-copy-paste-and-clone-components

Your link doesn’t work.

HI Pat, which link did you have trouble with? I’m able to load both pages - you may need to do a hard reload of the releases page if its contents were cached. 

First link in your post.

Ah, thank you. I’ve fixed it. It had been working for me, but there was something strange about how the URL was formed that wasn’t working from your side of the Community.

Skuid Team,

Thanks for adding the ‘clone’ feature to the page builder.  I just used it and it’s a huge time saver.

Best!

Bill

Did you upgrade production Bill?

Raymond,

I keep my dev. org. on the latest release of Skuid.

Thanks,

Bill