summaryrefslogtreecommitdiff
path: root/rt/share/html/Dashboards/Queries.html
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/Dashboards/Queries.html')
-rw-r--r--rt/share/html/Dashboards/Queries.html280
1 files changed, 0 insertions, 280 deletions
diff --git a/rt/share/html/Dashboards/Queries.html b/rt/share/html/Dashboards/Queries.html
deleted file mode 100644
index 1a1066be6..000000000
--- a/rt/share/html/Dashboards/Queries.html
+++ /dev/null
@@ -1,280 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@bestpractical.com>
-%#
-%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
-%# LICENSE:
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-%# General Public License for more details.
-%#
-%# You should have received a copy of the GNU General Public License
-%# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-%# 02110-1301 or visit their web page on the internet at
-%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
-%# CONTRIBUTION SUBMISSION POLICY:
-%#
-%# (The following paragraph is not intended to limit the rights granted
-%# to you to modify and distribute this software under the terms of
-%# the GNU General Public License and is only of importance to you if
-%# you choose to contribute your changes and enhancements to the
-%# community by submitting them to Best Practical Solutions, LLC.)
-%#
-%# By intentionally submitting any modifications, corrections or
-%# derivatives to this work, or any other work intended for use with
-%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-%# you are the copyright holder for those contributions and you grant
-%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-%# royalty-free, perpetual, license to use, copy, create derivative
-%# works based on those contributions, and sublicense and distribute
-%# those contributions and any derivatives thereof.
-%#
-%# END BPS TAGGED BLOCK }}}
-<& /Elements/Header, Title => $title &>
-<& /Dashboards/Elements/Tabs,
- current_subtab => $current_subtab,
- Title => $title,
- DashboardObj => $Dashboard &>
-
-<& /Widgets/SelectionBox:header, nojs => 1 &>
-
-<& /Elements/ListActions, actions => \@results &>
-
-<& Elements/Deleted, searches => \@deleted, Dashboard => $Dashboard &>
-
-<& Elements/HiddenSearches, searches => \@hidden_searches, Dashboard => $Dashboard &>
-
-<table width="100%" border="0">
-% for my $pane (@panes) {
-<tr><td valign="top" class="boxcontainer">
-<form action="Queries.html" name="Dashboard-<%$pane->{Name}%>" method="post" enctype="multipart/form-data">
-<input type="hidden" class="hidden" name="id" value="<%$Dashboard->Id%>" />
-<input type="hidden" class="hidden" name="Privacy" value="<%$Dashboard->Privacy%>" />
-
-<&| /Widgets/TitleBox, title => $pane->{DisplayName} &>
-% my ( $pane_name ) = $pane->{Name} =~ /Searches-(.+)/;
- <& /Widgets/SelectionBox:show, self => $pane, nojs => 1, grep( {
- $_->{pane} eq $pane_name} @deleted ) ? ( ShowUpdate => 1 ) : () &>
-</&>
-</form>
-</td></tr>
-% }
-</table>
-
-<%INIT>
-
-my $current_subtab = 'Dashboards/Queries.html?id=' . $id;
-my @results;
-
-use RT::Dashboard;
-my $Dashboard = new RT::Dashboard($session{'CurrentUser'});
-my ($ok, $msg) = $Dashboard->LoadById($id);
-$ok || Abort(loc("Couldn't load dashboard [_1]: [_2]", $id, $msg));
-my $title = loc("Modify the queries of dashboard [_1]", $Dashboard->Name);
-
-my %desc_of;
-my @items;
-my %selected;
-my %still_exists;
-
-# add portlets (homepage componenets)
-my @components = @{ RT->Config->Get('HomepageComponents') };
-
-for my $desc (@components) {
- my $name = "component-$desc";
- push @items, [$name, $desc];
- $desc_of{$name} = $desc;
- $still_exists{$name} = 1;
-}
-
-# add dashboards
-my $dashboards = $m->comp("/Dashboards/Elements/DashboardsForObjects", flatten => 1);
-for my $dashboard (@{ $dashboards || [] }) {
- # Users *can* set up mutually recursive dashboards, but don't make it THIS
- # easy for them to shoot themselves in the foot.
- next if $dashboard->Id == $Dashboard->Id;
-
- my $name = 'dashboard-' . $dashboard->Id . '-' . $dashboard->Privacy;
- my $desc = "Dashboard: " . $dashboard->Name;
- push @items, [$name, $desc];
- $desc_of{$name} = $desc;
- $still_exists{$name} = 1;
-}
-
-# add saved searches
-my @objs = RT::System->new($session{'CurrentUser'});
-
-push @objs, RT::SavedSearches->new( $session{CurrentUser} )->_PrivacyObjects
- if $session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch',
- Object => $RT::System );
-
-for my $object (@objs) {
- for ($m->comp("/Search/Elements/SearchesForObject", Object => $object)) {
- my ($desc, $search) = @$_;
- my $SearchType = $search->Content->{'SearchType'} || 'Ticket';
- my $type = ($SearchType eq 'Ticket') ? 'Saved Search' : $SearchType; # loc
- $desc = "$type: $desc";
- my $privacy = $Dashboard->_build_privacy($object);
- my $name = 'search-' . $search->Id . '-' . $privacy;
- push @items, [$name, $desc];
- $desc_of{$name} = $desc;
- $still_exists{$name} = 1;
- }
-}
-
-# Get the list of queries already in use
-my @deleted;
-do {
- my $panes = $Dashboard->Panes;
- for my $pane (keys %$panes) {
- for my $portlet (@{ $panes->{$pane} }) {
- my $name;
- my $type = $portlet->{portlet_type};
-
- if ($type eq 'search' || $type eq 'dashboard') {
- $name = join '-', $type, $portlet->{id}, $portlet->{privacy};
- }
- elsif ($type eq 'component') {
- $name = join '-', 'component', $portlet->{component};
- }
-
- if (!$still_exists{$name}) {
- push @deleted, {
- pane => $pane,
- name => $name,
- description => $portlet->{description},
- };
- next;
- }
-
- push @{ $selected{$pane} }, $name;
- $desc_of{$name} = $portlet->{description};
- }
- }
-};
-
-$m->callback(
- CallbackName => 'PopulatePossibilities',
- Dashboard => $Dashboard,
- items => \@items,
- desc_of => \%desc_of,
- still_exists => \%still_exists,
- selected => \%selected,
-);
-
-# Create selectionbox widgets for those queries
-
-my %pane_name = (
- 'body' => loc('Body'),
- 'sidebar' => loc('Sidebar'),
-);
-
-$m->callback(
- CallbackName => 'Panes',
- Dashboard => $Dashboard,
- panes => \%pane_name,
-);
-
-my @panes;
-for my $pane (keys %pane_name) {
- my $sel = $m->comp(
- '/Widgets/SelectionBox:new',
- Action => 'Queries.html',
- Name => "Searches-$pane",
- DisplayName => $pane_name{$pane},
- Available => \@items,
- Selected => $selected{$pane},
- AutoSave => 1,
- OnSubmit => sub {
- my $self = shift;
-
- $m->callback(
- CallbackName => 'Submit',
- Dashboard => $Dashboard,
- Selected => $self->{Current},
- pane => $pane,
- );
-
- my @portlets;
- for (@{ $self->{Current} }) {
- my $item = $_;
- my $desc = $desc_of{$item};
- my $portlet_type = $1 if $item =~ s/^(\w+)-//;
-
- if ($portlet_type eq 'search' || $portlet_type eq 'dashboard') {
- my ($id, $privacy) = split '-', $item, 2;
- push @portlets, {
- portlet_type => $portlet_type,
- privacy => $privacy,
- id => $id,
- description => $desc,
- pane => $pane,
- };
- }
- elsif ($portlet_type eq 'component') {
- # Absolute paths stay absolute, relative paths go into
- # /Elements. This way, extensions that add portlets work.
- my $path = $item;
- $path = "/Elements/$path" if substr($path, 0, 1) ne '/';
-
- push @portlets, {
- portlet_type => $portlet_type,
- component => $item,
- path => $path,
- description => $item,
- pane => $pane,
- };
- }
- }
-
- # we want to keep all the other panes the same
- my $panes = $Dashboard->Panes;
- $panes->{$pane} = \@portlets;
-
- # remove "deleted" warnings about this pane
- @deleted = grep { $_->{pane} ne $pane } @deleted;
-
- $m->callback(
- CallbackName => 'BeforeUpdate',
- Dashboard => $Dashboard,
- panes => $panes,
- );
-
- my ($ok, $msg) = $Dashboard->Update(Panes => $panes);
-
- if ($ok) {
- push @results, loc("Dashboard updated");
- }
- else {
- push @results, loc("Dashboard could not be updated: [_1]", $msg);
- }
- },
- );
-
- push @panes, $sel;
-}
-
-$m->comp('/Widgets/SelectionBox:process', %ARGS, self => $_, nojs => 1)
- for @panes;
-
-my @hidden_searches = $Dashboard->PossibleHiddenSearches;
-</%INIT>
-<%ARGS>
-$id => '' unless defined $id
-</%ARGS>
-