cq: Remove cq:LiveRelationship mixin recursivly - aem

i've copied a complete Website within CQ.
Now i have the mixin cq:LIveRelationship on every Site. I tried to detach it with the MultiSiteManager but it doesn't bring me the detach Option for this site.
The only way to remove this Status is to detach the mixin for every site.
Is there a possiblity to remove the mixin for a complete "Folder" recursive?

You could try using the Bulk Editor to remove the mixin from the pages. You can certainly search on a type/mixin. You may be able to remove the mixin property also.
See [The Bulk Editor - Searching & Editing Content](http://dev.day.com/docs/en/cq/current/administering/bulk_editor.html#Searching and Editing Content).
If the pages you are updating have a at most a single mixin, you maybe able to delete the jcr:mixinTypes property. If there are other mixins, they you may need to walk the tree and remove the mixins on the nodes.

Related

Add a new state to a User Story in VSTS

I'm trying to add a new state to the user story Work Item type in VSTS. To do this I follow the instructions outlined here:
https://www.visualstudio.com/en-gb/docs/work/process/customize-process-workflow
However, when I get the states page the "+ New state" option is greyed out and I cannot click on it. I am a member of the "Project Collection Administrators".
Can anyone tell me how to enable the "+ New state" button?
So VSO has this Hierarchy like there are Processes which can be considered as your SDLC ( Agile, CMMI and Scrum). These are System defined processes and we cannot edit them. And Each Process can have many number of Work Items associated with it. System level process cannot be edited meaning you cannot create, edit, create state for a system process. The work around is to create a Inherited Process with the Available System Processes, which will also inherit the Work Items. This inherited process can be edited (you can create, edit, create state for the work items available in this inherited process). So keep in mind while inheriting from any process, for which work work item you want to add state and create a inherited process from that parent process.
Please follow this link to create a inherited process : https://www.visualstudio.com/en-us/docs/work/process/manage-process
Also keep in mind that whatever project you create has to be based on the inherited process so that the changes that you make in the customization is available at the Work Item form level.
Hope this helps.
Thanks,
Bhadhri

How deactivate templates in AEM without modifying the users permissions

Hi AEM Community I'm trying to deactivate some templates without making changes on the users permissions, I try with the allowedPaths property (for instance using a regex like this: /b/B) but I got an issue, if we copy and paste (on the same path) one page of one of the templates with the restriction on the allowedPaths property you can by-pass the restriction and you will be able to have pages on undesire paths. Any idea of what can I do to fix this? or something new to deactivate templates without modifying the users permissions?
Thanks in advance.
K.
First. I'm assuming you are using the classic template system (not the newest ones, stored under /conf).
I do not recommend you to change your templates programmatically. These are stored in /apps so they are considered 'code' and not 'content'. Also you'll loose any change if you reinstall your AEM packages.
Instead you can use the cq:allowedTemplates property directly in the root of the content tree of your site. You just need to set that property in any point of your content with the list of templates that should be available, any template not in that list wont be available for creating new pages.

CQ5: links/paths in properties aren't updated on page rollout

When I create a live copy of a blueprint website, and rollout pages using standard rollout config, links in the pages are updated to reflect the live copy version.
ex. /content/myblueprintwebsite/home.html -> /content/mylivecopywebsite/home.html
But when those paths are buried inside properties of the page content nodes, they are not updated, and still points to the blueprint pages.
... is this the intended behavior? If so I guess I would have to write my own rollout config? Or is there another solution to this problem?
Thanks for your answers.
As per: https://docs.adobe.com/docs/en/aem/6-1/administer/sites/msm/msm-livecopy.html
"
When the blueprint source contains links and references that target a paragraph in a different chapter, the targets are not updated in the live copy pages. For example, a live copy is created from the Geometrixx Demo Site blueprint. Links in the Toolbar chapter that target the Services chapter are not updated in the live copy, and continue to target the original pages in the Geometrixx Demo Site.
"
My interpretation of the above:
- If the link to the target is created on a page that is in the ancestral line, the change will reflect in live copies.
I tested this by configuring a link to bp/en/parent/child-page on the bp/en/parent page and also on the bp/en page.
In both cases, the corresponding live-copy/... pages reflect changed paths to the live copy specific child page.
Moreover, the change is happening for links no matter what widget is used - OotB List, a customized link widget, or hyperlink configured in the text widget.
Further question:
Editors may want to create links from pages that is not in the ancestor line. What then? Is there a configuration that can be set to allow the change to happen ? Or are we required to write custom rollout action?
When ever a page rollout is done it updates all the individual content references for ex:
paths in property nodes, if it is stored individually i.e., not concatenated with any other text like: hello /content/test/master/en.
It doesnt update if the path is in the mid of other text.
And
Creating custom roll out doesn't server your purpose.If u really want to create custom roll out to meet this requirement then you have to create following custom live actions and write logic to find paths and then modify them.
1.ContentCopyActionFactoryCustom
2.ContentDeleteActionFactoryCustom
3.ContentUpdateActionFactoryCustom
Creating custom roll out is a risky option as roll out is called from many places like while creating live copy,from blue print section , roll outing a page and its sub pages and background execution etc.,We have to handle any exception caused in this explicitly.If u start changing one file then u end up changing all related files has roll out implementation on many java classes.
Ideal Solution : Save all the paths in a individual property and AEM will take care of updating there references
Cheers !!

How to extend Alfresco Share existing activity list dashlet with my own activity type?

In Community 4.0.a, I'm posting my custom activities in the repo following this: http://wiki.alfresco.com/wiki/3.0_Activities_Developer_Guide
I have defined my own activity type, with custom bundles and pagelink to display custom needs in the activity dashlet.
But I face an issue, I need to specialize the output based on the activity-type in a similar way of what is done already in activity-list.get.js in the specialize() function.
I can't hack the js cause I'm packaging things in my own amp for Share.
What is the best way to do it? Is there some kind of extension point or do I need to override completely the dashlet?
The old way (3.x) to change the behaviour of a webscript controller is to copy the code and overwrite the Javascript by placing it under web-extension: alfresco/web-extension/site-webscripts/org/alfresco/components/dashlets/activity-list.get.js. There you can modify the specialize() function or whatever you need to do.
All files you place in the alfresco/web-extension/site-webscripts folder will replace original files in the share.war WEB-INF/classes/alfresco/site-webscripts classpath. Best practice is to place your customizations in the tomcat/shared/classes/alfresco/web-extension folder so you don't need to modify the WAR file.
Alfresco 4.0 provides a new way to change the javascript controllers of a webscript. You can add additional Javascript code that will run after the original code. This is preferable because you don't need to change original code and you can upgrade more easily later. To use it you need to get familiar with the new Share extension modules concept. See David Draper's Blog for more info on that.

How to design a flexible admin panel with Symfony 2 bundles?

I want to create an admin bundle, that somehow detects other bundles and tries to add them to the menu and to the same RBAC context.
Eg:
AdminBundle defines a route /admin/dashboard, that requires authentication and authorization. There you can see 3 items in the menu, eg: dashboard, config (some config stored in the db), and users (CRUD for users, found in the UserBundle)
Then someone adds a ProductBundle, which deals with CRUD for e-commerce products or something. Somehow, without modifying any code in AdminBundle, we have now a new item 'products', available in the menu in /admin/dashboard
Later on, the products CRUD is no longer needed, so we just delete the ProductBundle, and it automagically disappears from the admin dashboard menu.
How would you go about implementing something like this? Is there any native support for a plugin-like design like this in symfony 2?
I don't know about a full plugin solution but my approach would be:
There is one "master backend" call it MasterAdminBundle for the sake of conversation. This bundle contains a base.html.twig which just helps define the navigation bar of the Administration area and a {% block content %}. It also has some kind of MenuService which displays the menu. I'd have my other bundles register with this service an AdminMenu subclass by way of using the Tag System just as a Voter can register with the Security Context (see here).
In the base.html.twig I'd then likely use an Embedded Controller to render the menu.
Now with this sort of framework in place your other bundles can stay encapsulated by keeping their own admin routes and interfaces:
ProductController would now also have ProductAdminController where you can use a route prefix #Route("/admin") on the class definition. Any routes could then render templates from within the bundle since templates are held under the controller name. Acme\ProductBundle\Resources\views\ProductAdmin\edit_products.html.twig as long as they extend the base.html.twig from MasterAdminBundle and put their content into the content block.
For other things like a dashboard that you wanted to plug other bundles into I'd likely just keep going the same way, create a service in the MasterAdminBundle and use tags to load other classes into it with the data required.
Hope that makes sense, maybe others will have a better solution to this, I'm interested to hear also since this is something I'm trying to tackle at the moment also.