{"id":19648143,"url":"https://github.com/bestpractical/rt-extension-formtools","last_synced_at":"2025-04-28T15:32:22.133Z","repository":{"id":816023,"uuid":"526047","full_name":"bestpractical/rt-extension-formtools","owner":"bestpractical","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-09T19:33:07.000Z","size":406,"stargazers_count":5,"open_issues_count":1,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-09T20:29:01.516Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://search.cpan.org/dist/rt-extension-formtools","language":"Perl","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bestpractical.png","metadata":{"files":{"readme":"README","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-02-19T14:29:50.000Z","updated_at":"2025-04-09T19:23:08.000Z","dependencies_parsed_at":"2023-11-17T23:01:25.294Z","dependency_job_id":"42f3a8a1-31da-4247-b906-7a0db6fde46e","html_url":"https://github.com/bestpractical/rt-extension-formtools","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestpractical%2Frt-extension-formtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestpractical%2Frt-extension-formtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestpractical%2Frt-extension-formtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestpractical%2Frt-extension-formtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bestpractical","download_url":"https://codeload.github.com/bestpractical/rt-extension-formtools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251338820,"owners_count":21573614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T14:47:15.410Z","updated_at":"2025-04-28T15:32:22.087Z","avatar_url":"https://github.com/bestpractical.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"NAME\n    RT::Extension::FormTools - Create multi-page ticket creation wizards for\n    RT\n\nDESCRIPTION\n    Starting in version 1.00, this extension provides a full UI for RT\n    administrators to create multi-page form wizards to collect information\n    and create a ticket.\n\nRT VERSION\n    Works with RT 5.0.5 and newer.\n\nINSTALLATION\n    perl Makefile.PL\n    make\n    make install\n        May need root permissions\n\n    Edit your /opt/rt5/etc/RT_SiteConfig.pm\n        Add this line:\n\n            Plugin('RT::Extension::FormTools');\n\n    Clear your mason cache\n            rm -rf /opt/rt5/var/mason_data/obj\n\n    Restart your webserver\n\nUSAGE\n  Creating Forms\n   Modify\n    Once installed and activated, users with the SuperUser or AdminForms\n    right can go to Admin \u003e FormTools \u003e Create to build new forms. Use\n    Select to view a list of existing forms.\n\n    When you initially create a form, you select the queue that the ticket\n    will be created in after a user fills out the form. The selected queue\n    will also determine which custom fields are available in the form\n    builder.\n\n    The Modify page allows you to configure all of the pages for the\n    selected form. The Components bar on the left lists HTML elements, Core\n    RT fields, and all custom fields available to the queue selected for the\n    current form. To build pages in your form, drag elements from the left\n    into the Content area in the FormTools Pages section on the right.\n\n    You can drag elements up and down to arrange content for each page. To\n    configure elements or add text content, click the pencil icon.\n\n    Click the plus (+) to create new pages. To change the order of the\n    pages, click the gearbox and update the sort order.\n\n   HTML Element\n    One of the available components is \"HTML Element\" and this accepts HTML\n    that will be displayed on the form in the location you select. This\n    allows you to place blocks of text that include additional interactive\n    elements like links (anchor tags).\n\n    If you place one of these blocks on the Result page, you can also\n    reference information about the ticket just created by the form. You can\n    use all variables defined for Simple templates\n    \u003chttps://docs.bestpractical.com/rt/latest/customizing/templates.html#Sel\n    ected-Simple-template-variables\u003e in RT. As with RT templates, place the\n    variables in curly braces in your HTML. For example, if you wanted to\n    include a link to the created ticket, you could define it like this:\n\n        \u003cp\u003eYou can review your ticket regarding\n        \u003ca href=\"/Ticket/Display.html?id={$TicketId}\"\u003e{$TicketSubject}\u003c/a\u003e\n        and check there for status updates. You should also receive email.\u003c/p\u003e\n\n   Description\n    Your forms will be made available to users on a dedicated Forms page in\n    the RT web UI. Forms can be accessed by privileged users in the main RT\n    interface and by unprivilged users in the self service interface.\n\n    The Description tab allows you to upload an icon and provide text to\n    show on this forms page. Include an icon that represents what the form\n    is intended for and include a description to help users pick the right\n    form for the right task.\n\n   Routing\n    The routing page allows you to change the default queue that the form\n    will create a ticket in when submitted.\n\n    You can also add alternate routing based on the values entered for\n    custom fields on the form. Select a custom field and comparison logic to\n    evaluate the value entered by the user. If the comparison logic matches\n    then the ticket will be created in the alternate queue.\n\n   Advanced\n    The advanced page shows the raw JSON representation of the configured\n    pages in your form. We recommend not editing the JSON directly. However,\n    you can copy the content and paste it into another page if you want to\n    migrate a form from development to production. You can also save the\n    JSON to a file and use the rt-insert-formtools-config utility to load it\n    into another RT.\n\n   Rights\n    You can control access to forms by granting the ShowForm right for\n    groups or users. By default, only SuperUsers can see forms, so you need\n    to grant ShowForm to users or groups for them to be visible.\n\n  Using Forms\n    Privileged and unprivileged users can find a list of available forms at\n    Home \u003e Forms. Users need to have the ShowForm right to see forms listed.\n\n    Once the form is filled out, it will create a ticket, so form users also\n    need CreateTicket in the queue where the form will be created. FormTools\n    checks this at the beginning of a form and shows the user a message if\n    they don't have sufficient rights.\n\n  Form Groups\n    If you would like to organize your forms by placing them in groups you\n    can enable Form Groups by setting FormToolsEnableGroups in your\n    /opt/rt5/etc/RT_SiteConfig.pm:\n\n        Set( $FormToolsEnableGroups, 1 );\n\n    Setting this config option to a true value will enable form group admin\n    pages where you can create and maintain form groups.\n\n    All forms will be required to placed in a form group.\n\n    The list of forms will first show a list of available form groups.\n    Clicking a form group will show all available forms in that group.\n\n    Users with the ShowForm right for a form group will see the group listed\n    and all forms in a group.\n\n    Users with the ShowForm right for a form will see the form group listed\n    and when clicking the group will only see the forms in that group they\n    have the ShowForm right for.\n\n    A banner message may be added to a form group that will be displayed to\n    the user when listing available forms in that group. A new ShowBanner\n    component is available that will also show the banner message on a form\n    page.\n\n    As with forms the form group Description tab allows you to upload an\n    icon and provide text to show on this form groups listing page. Include\n    an icon that represents what the forms in this group are intended for\n    and include a description to help users pick the right form group for\n    the right task.\n\nInternals\n    In earlier versions, this extension provided code-level Mason templates\n    as helpers to manually code forms. We believe pages created with these\n    earlier versions will continue to work, but it's possible they may stop\n    working at some point as we continue to work on FormTools. If you have\n    older FormTools code, it's safest to run with version 0.60. Going\n    forward, we recommend converting your forms to the new interface using\n    the new UI.\n\n    The documentation below is retained as the components are all still\n    available.\n\n  Mason Components\n    See ex/RT-Example-FormTools/ for an example extension written using this\n    module.\n\n   /FormTools/Form\n    The top-level component that most elements will call, as a wrapper:\n\n        \u003c\u0026|/FormTools/Form, next =\u003e \"/URI/of/next/page\" \u0026\u003e\n        (form elements)\n        \u003c/\u0026\u003e\n\n    It requires that the next page in the wizard be passed as the next\n    parameter; this may be empty at the end of the wizard. It renders page\n    decoration (using /Elements/Header). It assumes that the queue will be\n    stored in $m-notes('queue')\u003e.\n\n   /FormTools/Field\n    Renders a field in the form. It takes the name of a core field, or CF\n    name:\n\n        \u003c\u0026 /FormTools/Field, name =\u003e 'Requestors' \u0026\u003e\n\n    Valid core fields include:\n\n    Requestors\n    Cc\n    AdminCc\n    Owner\n    Subject\n    Content\n    Attach\n    Due\n    Starts\n    TimeEstimated\n\n    Any other argument to name is assumed to be the name of a custom field.\n\n   /FormTools/Next\n    Renders the \"Next page\" button.\n\n   /FormTools/ShowChoices\n    Shows the values that have already been submitted.\n\n  Internal Functions\n    In addition to the Mason components, this module provides a number of\n    functions which may be useful to call from Mason templates.\n\n   is_core_field field_name\n    Checks if the given field_name is is a field that we consider 'core' to\n    RT (subject, AdminCc, etc) rather than something which should be treated\n    as a Custom Field.\n\n    Naming a Custom Field Subject would cause serious pain with FormTools.\n\n   validate_cf CF, ARGSRef\n    Takes a given RT::CustomField object and a hashref of query parameters,\n    and returns a list of a boolean of if the custom field validates,\n    followed by a list of errors.\n\n   email_is_privileged email_address\n    Returns true if the given email address belongs to a privileged user.\n\n   has_value value\n    Returns true if the value is defined and non-empty.\n\n   LoadFormIcon($current_user, $form_id)\n    Loads the form icon attribute associated with the passed form id.\n\n    Returns a tuple of attribute object or false, and a message.\n\nAUTHOR\n    Best Practical Solutions, LLC\n\nBUGS\n    All bugs should be reported via email to\n\n        L\u003cbug-RT-Extension-FormTools@rt.cpan.org|mailto:bug-RT-Extension-FormTools@rt.cpan.org\u003e\n\n    or via the web at\n\n        L\u003crt.cpan.org|http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-FormTools\u003e.\n\nLICENSE AND COPYRIGHT\n    This software is Copyright (c) 2014-2024 by Best Practical Solutions\n\n    This is free software, licensed under:\n\n      The GNU General Public License, Version 2, June 1991\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbestpractical%2Frt-extension-formtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbestpractical%2Frt-extension-formtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbestpractical%2Frt-extension-formtools/lists"}