translate5 can be used in "editor only mode". That means that all project management stuff is done in a separate application. The tasks in translate5 are getting prepared via API.
Your users are using then only the editor component of translate5.
The following steps are needed to embed translate5 in your application:
- Your application must be able to talk with translate5 via API to prepare users, tasks and task associations
- The translate5 instance must be configured to be in editor only mode
- Change ViewPort by config:
Set the Zf_configuration value with the name value runtimeOptions.editor.editorViewPort to Editor.view.ViewPortSingle - remove not needed ACLs
- Change ViewPort by config:
- Create your own skin
Implement interaction buttons in the custom header
In the header of translate5 there are buttons to interact with translate5. These are:
- close the task and go back to the project management tool and optionally finish the task
- This button is enabled by default and can be deactivated by setting runtimeOptions.editor.toolbar.hideLeaveTaskButton to 1
- close the task and close the window (works only if translate5 was opened via Javascript window.open from your tool!)
- This button is disabled by default and can be activated by setting runtimeOptions.editor.toolbar.hideCloseButton to 0
- to show a dialog where the user can decide if the task should be closed or leaved open use this config: runtimeOptions.editor.toolbar.askFinishOnClose to 1
- this config is important in editor only mode because this is the way how a user can finish his job
As alternative translate5 provides there fore a simple JavaScript class to interact with translate5:
Editor.util.TaskActions
Close Task - Editor.util.TaskActions.close()
Closing a task means, that the user wants to stop working on this task and wants to go back to the PM tool.
To close a task just call the JavaScript method
Editor.util.TaskActions.close(callback)
A callback function can be provided as parameter. The callback is called if the task was closed in translate5. For the callback see below.
Finish Task - Editor.util.TaskActions.finish()
Finishing a task means, that the user has finished his work on this task, and he wants to leave this task so that next users in the workflow can access the task.
To finish a task just call the JavaScript method
Editor.util.TaskActions.finish(callback)
A callback function can be provided as parameter. The callback is called if the task was finished in translate5. For the callback see below.
Callback Method
The above provided callback method looks like:
callback = function(task, app, strings){ CODE }
task: evaluates to the currently mentioned task record
app: evaluates to Editor.app
strings: evaluates to a list of commonly used, already translated strings for messages related to the performed tasks
Depending on what should happen in the callback, a destruction of the loaded app may be necessary.
So if the callback contains a
window.location.href = "NEW LOCATION"
this may not work. Therefore a Editor.app.destroy(); must be prepended:
Editor.app.destroy();
window.location.href = "NEW LOCATION"
Check if current task is exportable
Just call
Editor.util.TaskActions.isTaskExportable()
from your JS code to check if the currently opened task can be exported. Currently it is only checked if there is still a segment save running.
Logout from translate5
Since translate5 is used embedded, logout should be done the application where translate5 is embedded via API.
Nevermind the JavaScript method
Editor.app.logout()
can be called. It just logs out the user from translate5 and redirect to the URL /
Since this page can be skinned and overwritten a redirect can be implemented there to the Project Managament tool.