NAME
    RT::Extension::ShareSearchLink - Shorter links for ticket searches

DESCRIPTION
    This extension adds a "*Share*" item to the menu on the search results
    page, and a "*Share a link*" button to the bottom of the results.

    Both of these will show a pop-up box containing a short link to the
    current search, with all the search terms and formatting stored in a
    database entry in RT.

    This is useful when your search URL is very long.

RT VERSION
    Known to work with RT 4.2.16, 4.4.4, and 5.0.1.

REQUIREMENTS
    Requires Data::GUID.

INSTALLATION
    perl Makefile.PL
    make
    make install
        May need root permissions.

    Set up the database
        After running make install for the first time, you will need to
        create the database tables for this extension. Use
        etc/schema-mysql.sql for MySQL or MariaDB, or
        etc/schema-postgresql.sql for PostgreSQL.

    Edit your /opt/rt4/etc/RT_SiteConfig.pm
        Add this line:

            Plugin('RT::Extension::ShareSearchLink');

    Clear your mason cache
            rm -rf /opt/rt4/var/mason_data/obj

    Restart your web server
    Set up database pruning
        Add a cron job similar to the ones you will already have for other
        RT maintenance jobs like rt-email-dashboards to clear down expired
        shared search links, like this:

         4 4 * * * root /opt/rt4/bin/rt-crontool --search RT::Extension::ShareSearchLink --action RT::Extension::ShareSearchLink

        This way, shared search links will expire 90 days after they have
        last been viewed, and will expire within 7 days of creation if they
        aren't viewed at least twice in that time.

AUTHOR
    Andrew Wood

    All bugs should be reported via email to
        bug-RT-Extension-ShareSearchLink@rt.cpan.org
    or via the web at
        http://rt.cpan.org/Public/Dist/Display.html?Name=RT-Extension-ShareSearchLink
LICENSE AND COPYRIGHT
    This software is Copyright (c) 2021 by Andrew Wood

    This is free software, licensed under:

      The GNU General Public License, Version 2, June 1991

Internal package RT::ShareSearchLink::SharedSearchLink
    This package provides the shared search link object.

  Create Parameters => { ... }, [ UUID => 'xxx' ]
    Creates a new shared search link for a search with the given parameters,
    and returns (*$id*, *$message*). If a *UUID* is not supplied, a new one
    is generated.

  Load $id|$UUID
    Load a shared search link by numeric ID or by string UUID, returning the
    numeric ID or undef.

  Delete
    Delete this shared search link from the database.

  Parameters
    Return a hash of the parameters stored in this shared search link.

  AddView
    Increment the view counter for this shared search link, and set its last
    viewed date.

  _CoreAccessible
    Private method which defines the columns in the database table.

Internal package RT::ShareSearchLink::SharedSearchLinks
    This package provides the group class for shared search links.

