Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - xaraya-modules/workflow: Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine · GitHub
Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - xaraya-modules/workflow: Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine · GitHub
Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - xaraya-modules/workflow: Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine · GitHub
Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - xaraya-modules/workflow: Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine · GitHub
Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - xaraya-modules/workflow: Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine · GitHub
Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - xaraya-modules/workflow: Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine · GitHub
Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - xaraya-modules/workflow: Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine · GitHub
Skip to content

Latest commit

History

634 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Overview with Symfony Workflow Component

What is it?

This is a modern State Machine approach using the Symfony Workflow component.

Getting started

  1. Use composer to install the symfony/workflow package
$ composer require --dev symfony/workflow
$ composer update
  1. Define the workflows in configuration

See [xardata/config.workflows.php](xardata/config.workflows.php)

  1. Use the workflows with modules or objects

  2. Try out the user interface

Hook Sample

Use Workflow as hook module and let item create/update/delete/display hook events from other modules trigger the workflow transitions you want

Hook Sample

Music CD Loans

Or add the new Workflows property to an existing object and let the value of its properties affect the workflow

Music CD Loans

Further Information

  1. The Workflow Component

  2. Workflows and State Machines

  3. Making Decisions with a Workflow

Overview with Galaxia Workflow Engine

What is it?

See the introduction and user manual of Galaxia for more details on what this module is all about, and how to use it.

However, we clarify their definitions here a bit. In the workflow module a distinction could be made between:

  1. The definition part: processes and activities
  2. The running part: instances and workitems

Workflow overview diagram

So, you define processes with activities and you run instances to complete workitems. During the use of the module you Manage processes and activities. There is functionality available to monitor all of processes, activities, instances and workitems. Each workitem can be completed by one or more process roles. In Xaraya, you map the users or groups in the roles module to these process roles. The description given here will be reflected in the Xaraya interface for the workflow module.

Getting started

  1. make sure that the webserver can write to the directory var/processes (chmod 777 or equivalent)
  2. install GraphViz if you want to generate some nice process graphs, and adapt GRAPHVIZ_DIR in modules/workflow/lib/galaxia/config.php if necessary;
  3. go to the Dynamic Data Import Object Definition page and paste the content of the file cdcollection3_dd.xml in the text area to create the sample database table;
  4. go to Admin Processes and upload the file cdcollection3.xml to create a sample process;
  5. map some Xaraya users to the 'admin' and 'user' workflow roles for that process, or add all current users from a Xaraya group to one of the workflow roles [TODO: Galaxia does not support a permanent mapping between Xaraya groups and workflow roles at the moment]
  6. mark the process as active once you no longer have the errors "Role: ... is not mapped"
  7. go to the Workflow User Interface and play around :-)
  8. come back here and try some of the monitoring and administration options
  9. create your own fancy processes and submit them back to the open source community

Note: this is mostly a 1-to-1 conversion of the current Galaxia interface scripts from TikiWiki, and a quick & dirty conversion of the templates that go with them. The sample CD Loan process has been modified a bit to be more representative of actual processes, but is otherwise unchanged.

With version 1.1, you can also automatically start a workflow process after some module item is created, updated or deleted. To try this out, you should :

  1. upload the review_articles.xml file to create the Review Articles process
  2. assign some users to the 'editors' workflow role and mark the process as active
  3. enable the workflow hooks for articles
  4. configure the workflow module so that the Review Articles - start activity is started when Create hooks are called from articles
  5. create a new article and have fun...

Version 1.3 adds the support for two BL tags : <xar:workflow-activity activityId="123" ... /> and <xar:workflow-status ... />. Those can be used in any template to run some workflow activity and show its output, resp. to show you the status of all the instances *you* started. To try that out, you should :

  1. delete your old "Music Loan 3" process, import the new version, assign users and mark as active
  2. find out what the activityId of activity "Request CD" is, in that new process
  3. in some template, add the following BL tags : <xar:workflow-activity activityId="123"/> (with 123 the activityId) and <xar:workflow-status/>
  4. go to that page and enjoy...

Version 1.4 also adds the BL tag <xar:workflow-instances .../> to show the instances that are assigned/accessible to you (i.e. your task list).

Patches and contributions are most welcome ;-)

Based on the Galaxia Workflow Engine

 // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.

Further Information

Further information on the Workflow module can be found at

** Workflow Module Overview**
Version 1.0.0 2006-03-08

About

Workflow Module based on the Symfony Workflow Component or Galaxia Workflow Engine

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages