I have downloaded the latest upcoming 1.7 version and I tried to understand how workflow works and how it can be extended.
First question is: is there some documentation about it?
I found something but not so detailed on how to extend workflow with my features.
For now this is what I cannot figure out myself inspecting the existing code:
How can I assign a custom icon to my custom action (like the envelope in send mail) both on canvas and in toolbox?
I have tried providing a css class with same name and a resource (in a different module), the action works but it shows default icon.
Thanks
No
Look at the stylesheets in the module. You'll see that the image is being defined inline, from the stylesheet, as a background image, for each activity. You may of course use an external image, or reproduce that pattern of including it inline.
Related
I have Liferay 7.2
I want to customize the html of the layout of the widget Documents AND Media
I tried to create a hook to document and media but it seems that is not the right way.
How can i do that?
First, the fact that you're talking about a hook tells me that you're coming from Liferay 6 or earlier. Forget the old module types ("war-style modules"), embrace the new "jar-style modules" or "OSGi modules", which leverage the OSGi methods and mechanisms in the foundation. The new module type that comes closest to the functionality of hooks would be a "module fragment".
Alternatively, if you want to create one module that overrides the JSPs of more than one other module (or overrides JSPs as a side effect to its main purpose), you may want to look into "JSP Bags".
Still, both methods are discouraged and should be taken as a last resort, according to Liferay's "Introduction to Customizing JSPs".
The preferred method would be to use Dynamic Includes (albeit they only work if the target portlet has been written to include inclusion points) or Portlet Filters (which basically allow you to programmatically edit the request to and response from the standard Portlet classes and JSPs).
Still, if you're aiming to replace most of the JSPs of the standard document and media widget (keep in mind: Widgets are still Portlets, they just have been renamed in the frontend), a module fragment still seems to the best way forward.
To identify the correct module, here are the necessary steps. I'll show it using the DLAdmin portlet from the control panel as an example:
Identify the portlet you want to edit: Look into the HTML using the DOM inspector of your browser. Look for section tags with IDs like <section class="portlet" id="portlet_com_liferay_document_library_web_portlet_DLAdminPortlet"> around the area of interest.
Now translate that ID into a package path with portlet class: com.liferay.document.library.web.portlet.DLAdminPortlet. Search for that class in the Liferay github repository. (Go there, press T, enter the class name, find its Java class source file. In case of multiple hits, you need to check the package path, too.)
Once you opened the source file, go back up in the file tree to the parent folder of the src folder. There's a bnd.bnd file. Take a look into it, it will tell you the Bundle-SymbolicName.
Use the Liferay IDE or Blade CLI (depending on your development environment) to create a module fragment for the module identified by the Bundle-SymbolicName.
I have a project hosted on GitHub. To document the API I am using the OpenAPI spec. Now I want to add a link on readme.md (on GitHub) that refers my visitors to the OpenAPI document for good user experience.
Far as I see I have two solutions:
http://editor.swagger.io/?raw=https://raw.githubusercontent.com/path/to/file.yaml
https://app.swaggerhub.com/apis/(username)/(api-name)/(api-version)
Both approaches are working, but they both open with an editor on left side that shows the content of YAML file and is, IMHO, wasting a significant screen space. Not really what I want. Is there an option to display the OpenAPI document without editor opened? Just similiar what is done for https://petstore.swagger.io/ which comes without editor opened.
Or ... is there maybe an option available to display the OpenAPI document on GitHub directly?
Thanks, Christoph
If you use SwaggerHub, replace /apis/ with /apis-docs/ in the URL to view just the API docs without the editor part. For example:
https://app.swaggerhub.com/apis-docs/swagger-hub/registry-api/1.0.47
Or if your OpenAPI definition is hosted elsewhere (e.g. on GitHub), you can use
https://petstore.swagger.io/?url=https://path/to/file.yaml
to load it into the public Swagger UI demo. Swagger UI renders API docs without the editor part.
I am new to Typo3 neos.
I am using neos with version 1.0.2
When i try to add links to custom content types the link will not be proper
and it appears some thing like below.For external urls it works fine.
node://06fbba05-82f1-e0b4-0e5e-4549e7aa4d11
How can i add target blank for external urls and mailto link for emails?
Thank you in advance.
you need to apply a converter to your text that changes the internal presentation of the link to the real link. Examples are in:
Packages/Application/TYPO3.Neos.NodeTypes/Resources/Private/TypoScript/Root.ts2
Basically if your custom node type has a property "text", you do:
text.#process.convertUris = TYPO3.Neos:ConvertUris
in your TypoScript prototype.
I think mailto: should work by typing mailto:foo#bar.com into the link box. Setting different targets is currently not supported out of the box, but could be done with a custom processor.
I am learning TYPO3 and extensions, for now, I've created a test extension about image uploading, handling and showing.
I have done the Backend for upload a new image, show a list, and edit image properties (once selected). This part is already implemented and working.
Now I am missing the "include" part, I mean, to insert an image in page via Insert Plugin on BackEnd.
My problem: When I select insert plugin, and I manually select my registered plugin, I want to render there a fluid template with options, image list, and so.
These options are for the user to select an image, a size, and so, for it to be shown in selected page.
I don't know which method have typo3 for showing templates in that part, so I am requesting a hint from where to config a template to be used there by TYPO3.
Note: This is not about asking implementations, just a hint to start and implement it myself.
You should not code that on your own.
I guess you are looking for TCA. In special for your Plugin you are looking for "flexforms". I guess this wiki page can help you get started with some examples.
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.