[Rt-commit] rt branch, 4.6-theme/ticket-pages, created. rt-4.4.4-202-g1a6924b67
Craig Kaiser
craig at bestpractical.com
Mon May 13 13:50:03 EDT 2019
The branch, 4.6-theme/ticket-pages has been created
at 1a6924b67e184980af80d418641aed5dea210170 (commit)
- Log -----------------------------------------------------------------
commit 1a6924b67e184980af80d418641aed5dea210170
Author: Craig Kaiser <craig at bestpractical.com>
Date: Tue May 7 09:14:47 2019 -0400
Migrate ticket pages to elevator theme
diff --git a/share/html/Helpers/PreviewScrips b/share/html/Helpers/PreviewScrips
index 6303fd7c5..e49e1be0b 100644
--- a/share/html/Helpers/PreviewScrips
+++ b/share/html/Helpers/PreviewScrips
@@ -93,8 +93,10 @@ $submitted{$_} = 1 for split /,/, $ARGS{TxnRecipients};
% my $action = $s->ActionObj->Action;
% scalar(map { $action->$_ } qw(To Cc Bcc))
% } @scrips ) {
-<input type="checkbox" class="checkbox" id="TxnSendMailToAll" name="TxnSendMailToAll" <% $ARGS{TxnSendMailToAll} ? 'checked="checked"' : '' %> value="1">
-<label for="TxnSendMailToAll"><b><% loc('All recipients') %></b></label><br />
+<div class="custom-control custom-checkbox">
+ <input type="checkbox" id="TxnSendMailToAll" name="TxnSendMailToAll" <% $ARGS{TxnSendMailToAll} ? 'checked="checked"' : '' %> value="1" class="custom-control-input">
+ <label class="custom-control-label" for="TxnSendMailToAll"><b><% loc('All recipients') %></b></label><br />
+</div>
% }
% for my $scrip (@scrips) {
<b><% $scrip->Description || loc('Scrip #[_1]',$scrip->id) %></b><br />
@@ -104,22 +106,26 @@ $submitted{$_} = 1 for split /,/, $ARGS{TxnRecipients};
% my $action = $scrip->ActionObj->Action;
% my @addresses = $action->$type();
% next unless @addresses;
- <ul>
+ <ul class="list-group-compact">
% for my $addr (@addresses) {
- <li>
+ <li class="list-group-item">
% my $checked = $submitted{$addr->address} ? not $squelched{$addr->address} : $squelched_config;
% $m->callback(CallbackName => 'BeforeAddress', Ticket => $TicketObj, Address => $addr, Type => $type, Checked => \$checked);
% $recips{$addr->address}++;
- <b><%loc($type)%></b>:
+ <div class="form-row">
+ <div class="col-md-auto">
+ <b><%loc($type)%></b>:
+ </div>
+ <div class="col-md-auto">
% my $show_checkbox = 1;
% if ( grep {$_ eq $addr->address} @{$action->{NoSquelch}{$type}} ) {
% $show_checkbox = 0;
% }
-
+ <div class="custom-control custom-checkbox">
% if ( $show_checkbox ) {
- <input type="checkbox" class="checkbox" name="TxnSendMailTo" <% $checked ? 'checked="checked"' : '' |n%> value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" />
+ <input type="checkbox" class="custom-control-input" name="TxnSendMailTo" <% $checked ? 'checked="checked"' : '' |n%> value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" />
% }
- <label for="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>"><& /Elements/ShowUser, Address => $addr &></label>
+ <label <% $show_checkbox ? 'class="custom-control-label"' : '' |n%> for="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>"><& /Elements/ShowUser, Address => $addr &></label>
% $m->callback(CallbackName => 'AfterAddress', Ticket => $TicketObj, Address => $addr, Type => $type);
% unless ( $show_checkbox ) {
% if ( $type eq 'Cc' ) {
@@ -129,12 +135,15 @@ $submitted{$_} = 1 for split /,/, $ARGS{TxnRecipients};
(<&|/l&>explicit one-time Bcc</&>)
% }
% }
+ </div>
+ </div>
+ </div>
</li>
% }
</ul>
% }
% if (RT->Config->Get('PreviewScripMessages')) {
- <textarea cols="80" rows="5"><% Encode::decode( "UTF-8", $scrip->ActionObj->Action->TemplateObj->MIMEObj->as_string )%></textarea>
+ <textarea class="form-control" cols="80" rows="5"><% Encode::decode( "UTF-8", $scrip->ActionObj->Action->TemplateObj->MIMEObj->as_string )%></textarea>
% }
<br />
% }
diff --git a/share/html/Helpers/ShowSimplifiedRecipients b/share/html/Helpers/ShowSimplifiedRecipients
index 30512532f..e80b9aeef 100644
--- a/share/html/Helpers/ShowSimplifiedRecipients
+++ b/share/html/Helpers/ShowSimplifiedRecipients
@@ -98,43 +98,47 @@ my $squelched_config = !( RT->Config->Get('SquelchedRecipients', $session{'Curre
my %submitted;
$submitted{$_} = 1 for split /,/, $ARGS{TxnRecipients};
</%init>
-<table>
% if ( scalar(map { keys %{$headers{$_}} } qw(To Cc Bcc)) ) {
-<tr>
-<td> </td>
-<td>
-<input type="checkbox" class="checkbox" id="TxnSendMailToAll-Simplified" name="TxnSendMailToAll" value="1">
-<label for="TxnSendMailToAll-Simplified"><b><% loc('All recipients') %></b></label>
-</td>
-</tr>
+
+<div class="custom-control custom-checkbox">
+ <input class="custom-control-input" type="checkbox" id="TxnSendMailToAll-Simplified" name="TxnSendMailToAll" value="1">
+ <label class="custom-control-label" for="TxnSendMailToAll-Simplified"><b><% loc('All recipients') %></b></label>
+</div>
% }
% for my $type (qw(To Cc Bcc)) {
% next unless keys %{$headers{$type}} or keys %{$no_squelch{$type}};
-<tr>
-<td valign="top"><% $type %>:</td>
-<td valign="top">
+<ul class="list-group-compact">
+ <li class="list-group-item">
+ <div class="form-row">
+ <div class="col-md-auto">
+ <% $type %>:
+ </div>
+ <div class="col-md-auto">
% for my $addr (sort {$a->address cmp $b->address} values %{$headers{$type}}) {
% my $checked = $submitted{$addr->address} ? not $squelched{$addr->address} : $squelched_config;
% $m->callback(CallbackName => 'BeforeAddress', Ticket => $TicketObj, Address => $addr, Type => $type, Checked => \$checked);
% $recips{$addr->address}++;
-<input type="checkbox" class="checkbox" name="TxnSendMailTo" <% $checked ? 'checked="checked"' : '' |n%> value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" />
-<label for="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>"><& /Elements/ShowUser, Address => $addr &></label>
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox" name="TxnSendMailTo" <% $checked ? 'checked="checked"' : '' |n%> value="<%$addr->address%>" id="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>" class="custom-control-input" />
+ <label class="custom-control-label" for="TxnSendMailTo-<% $addr->address %>-<% $recips{$addr->address} %>"><& /Elements/ShowUser, Address => $addr &></label>
+ </div>
% $m->callback(CallbackName => 'AfterAddress', Ticket => $TicketObj, Address => $addr, Type => $type);
-<br />
% }
% for my $addr (sort {$a->address cmp $b->address} values %{$no_squelch{$type}}) {
+<div class="col-md-auto">
<label><& /Elements/ShowUser, Address => $addr &></label>
% if ( $type eq 'Cc' ) {
(<&|/l&>explicit one-time Cc</&>)
% } else {
(<&|/l&>explicit one-time Bcc</&>)
% }
-<br />
+</div>
% }
-</td></tr>
+ </div>
+ </li>
+ </ul>
% }
% $m->callback( CallbackName => 'AfterRecipients', TicketObj => $TicketObj );
-</table>
<p>
<&|/l, RT->Config->Get('WebPath')."/Ticket/ModifyPeople.html?id=".$TicketObj->Id,
&>Uncheck boxes to disable notifications to the listed recipients <b>for this transaction only</b>; persistent squelching is managed on the <a href="[_1]">People page</a>.</&>
diff --git a/share/html/Ticket/Create.html b/share/html/Ticket/Create.html
index 057d2f9c4..55a220f07 100644
--- a/share/html/Ticket/Create.html
+++ b/share/html/Ticket/Create.html
@@ -215,7 +215,7 @@
<&|/l&>Subject</&>:
</span>
<span class="value">
-<input type="text" name="Subject" maxsize="200" value="<%$ARGS{Subject} || ''%>" />
+<input class="form-control" type="text" name="Subject" maxsize="200" value="<%$ARGS{Subject} || ''%>" />
% $m->callback( %ARGS, CallbackName => 'AfterSubject' );
</span>
</div>
diff --git a/share/html/Ticket/Elements/AddAttachments b/share/html/Ticket/Elements/AddAttachments
index 312537507..811713094 100644
--- a/share/html/Ticket/Elements/AddAttachments
+++ b/share/html/Ticket/Elements/AddAttachments
@@ -163,8 +163,12 @@ jQuery( function() {
});
</script>
<div class="hidden old-attach">
- <input name="Attach" type="file" /><input type="submit" class="button" name="AddMoreAttach" value="<&|/l&>Add More Files</&>" />
- <input type="hidden" class="hidden" name="UpdateAttach" value="1" />
+ <div class="custom-file">
+ <input type="file" id="AddMoreAttach" name="AddMoreAttach" class="custom-file-input" />
+ <label class="custom-file-label" for="AddMoreAttach">
+ <&|/l&>Add More Files</&>
+ </label>
+ </div>
</div>
</span>
</div>
diff --git a/share/html/Ticket/Elements/Reminders b/share/html/Ticket/Elements/Reminders
index a20450413..796873f91 100644
--- a/share/html/Ticket/Elements/Reminders
+++ b/share/html/Ticket/Elements/Reminders
@@ -73,22 +73,27 @@ my $reminder_collection = $count_reminders->Collection;
<input type="hidden" class="hidden" name="update-reminders" value="1" />
% my $editable = 0;
% if ($has_reminders) {
-<table border="0" cellpadding="1" cellspacing="0" class="collection-as-table"<% $Edit ? ' style="width: auto;"' : '' |n %>>
-<tr>
+<div class="form-row">
% if ( $Edit ) {
-<th class="collection-as-table" colspan="5"><&|/l&>Reminders</&></th>
+ <&|/l&>Reminders</&>
% } else {
-<th class="collection-as-table"></th>
-<th class="collection-as-table"><&|/l&>Reminder</&></th>
-<th class="collection-as-table"><&|/l&>Due</&></th>
-<th class="collection-as-table"><&|/l&>Owner</&></th>
+ <div class="col-md-4">
+ <&|/l&>Reminder</&>
+ </div>
+ <div class="col-md-4">
+ <&|/l&>Due</&>
+ </div>
+ <div class="col-md-4">
+ <&|/l&>Owner</&>
+ </div>
% }
-</tr>
+</div>
% my $i = 0;
% while ( my $reminder = $reminder_collection->Next ) {
+<div class="form-row">
% $i++;
% if ( $reminder->Status eq $resolve_status && !$ShowCompleted ) {
-<tr class="hidden"><td><input type="hidden" class="hidden" name="Complete-Reminder-<% $reminder->id %>" value="1" /></td></tr>
+ <input type="hidden" class="hidden" name="Complete-Reminder-<% $reminder->id %>" value="1" />
% $i++;
% }
% else {
@@ -99,8 +104,8 @@ my $reminder_collection = $count_reminders->Collection;
<& SELF:ShowEntry, Reminder => $reminder, Ticket => $Ticket, Index => $i &>
% }
% }
+</div>
% }
-</table>
% if ( $editable ) {
<i><&|/l&>(Check box to complete)</&></i>
% }
@@ -122,7 +127,11 @@ my $reminder_collection = $count_reminders->Collection;
% }
% if ( $editable && $ShowSave ) {
-<div class="save"><input type="submit" class="button" value="<&|/l&>Save</&>" /></div>
+<div class="form-row">
+ <div class="col-md-12">
+ <div class="save"><input type="submit" class="button form-control btn btn-primary" value="<&|/l&>Save</&>" /></div>
+ </div>
+</div>
% }
<%method NewReminder>
<%args>
@@ -132,7 +141,7 @@ $Ticket
<&|/l&>New reminder:</&>
<div class="field">
<span class="label"><&|/l&>Subject</&>:</span>
- <span class="entry" colspan="3"><input type="text" class="reminder-subject" name="NewReminder-Subject" id="NewReminder-Subject" /></span>
+ <span class="entry" colspan="3"><input type="text" class="form-control reminder-subject" name="NewReminder-Subject" id="NewReminder-Subject" /></span>
</div>
<div class="field">
<span class="label"><&|/l&>Owner</&>:</span>
@@ -150,39 +159,56 @@ $Reminder
$Ticket
$Index
</%args>
-<tr class="<% $Index%2 ? 'oddline' : 'evenline' %>" id="reminder-<% $Reminder->id %>">
-<td class="entry">
-% unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) {
-<input name="Complete-Reminder-<% $Reminder->id %>" type="hidden"
-value=<% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 1 : 0 %> />
-% }
-<input type="checkbox" value="1" name="Complete-Reminder-<% $Reminder->id %>" <% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 'checked="checked"' : '' |n %>
+ <div class="col-md-6 <% $Index%2 ? 'oddline' : 'evenline' %>" id="reminder-<% $Reminder->id %>">
% unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) {
-disabled="disabled"
+ <input class="custom-control-input" name="Complete-Reminder-<% $Reminder->id %>" type="hidden"
+ value=<% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 1 : 0 %>
+ />
% }
-/></td>
-<td class="label"><&|/l&>Subject</&>:</td>
-<td class="entry" colspan="3">
-<input type="text" class="reminder-subject" name="Reminder-Subject-<% $Reminder->id %>" value="<% $Reminder->Subject %>"
+ <div class="custom-control custom-checkbox">
+ <input class="custom-control-input" type="checkbox" value="1" name="Complete-Reminder-<% $Reminder->id %>" <% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 'checked="checked"' : '' |n %>
+% unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) {
+disabled="disabled"
+% }
+ />
+ </div>
+ <div class="form-row">
+ <div class="label col-md-3">
+ <&|/l&>Subject</&>:
+ </div>
+ <div class="value col-md-9">
+ <input type="text" class="reminder-subject form-control" name="Reminder-Subject-<% $Reminder->id %>" value="<% $Reminder->Subject %>"
% unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) {
-readonly="readonly"
-% }
-/>
-</td>
-</tr>
-<tr class="<% $Index%2 ? 'oddline' : 'evenline' %>">
-<td class="entry"> </td>
-<td class="label"><&|/l&>Owner</&>:</td>
-<td class="entry"><& /Elements/SelectOwner, Name => 'Reminder-Owner-'.$Reminder->id, QueueObj => $Ticket->QueueObj, Default => $Reminder->Owner, DefaultValue => 0 &></td>
-<td class="label"><&|/l&>Due</&>:</td>
-<td class="entry">
+readonly="readonly"
+% }
+ />
+ </div>
+ </div>
+ <div class="form-row <% $Index%2 ? 'oddline' : 'evenline' %>">
+ <div class="label col-md-3">
+ <&|/l&>Owner</&>:
+ </div>
+ <div class="value col-md-9">
+ <& /Elements/SelectOwner, Name => 'Reminder-Owner-'.$Reminder->id, QueueObj => $Ticket->QueueObj, Default => $Reminder->Owner, DefaultValue => 0 &>
+ </div>
+ <div class="label col-md-3">
+ <&|/l&>Due</&>:
+ </div>
+ <div class="value col-md-9">
% if ( $Reminder->CurrentUserHasRight('ModifyTicket') ) {
-<& /Elements/SelectDate, Name => 'Reminder-Due-'.$Reminder->id &>
-% }
-(<% $Reminder->DueObj->AsString %>)
-</td>
-</tr>
+ <div class="form-row">
+ <div class="col-auto">
+ <& /Elements/SelectDate, Name => 'Reminder-Due-'.$Reminder->id &>
+ </div>
+ <div class="col-auto">
+ <span class="current-value form-control">(<% $Reminder->DueObj->AsString %>)</span>
+ </div>
+ </div>
+% }
+ </div>
+ </div>
+ </div>
</%method>
<%method ShowEntry>
<%args>
@@ -192,20 +218,33 @@ $Index
</%args>
% my $dueobj = $Reminder->DueObj;
% my $overdue = $dueobj->IsSet && $dueobj->Diff < 0 ? 1 : 0;
-<tr class="<% $Index%2 ? 'oddline' : 'evenline' %>" id="reminder-<% $Reminder->id %>">
-<td class="collection-as-table">
+<div class="col-md-12 <% $Index%2 ? 'oddline' : 'evenline' %>" id="reminder-<% $Reminder->id %>">
+ <div class="form-row">
% unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) {
-<input name="Complete-Reminder-<% $Reminder->id %>" type="hidden"
-value=<% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 1 : 0 %> />
-% }
-<input type="checkbox" value="1" id="Complete-Reminder-<% $Reminder->id %>" name="Complete-Reminder-<% $Reminder->id %>" <% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 'checked="checked"' : '' |n %>
+ <div class="col-md-4">
+ <input name="Complete-Reminder-<% $Reminder->id %>" type="hidden"
+ value=<% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 1 : 0 %>
+ />
+ </div>
+% }
+ <div class="col-md-4">
+ <div class="custom-control custom-checkbox">
+ <input class="custom-control-input" type="checkbox" value="1" id="Complete-Reminder-<% $Reminder->id %>" name="Complete-Reminder-<% $Reminder->id %>" <% $Reminder->Status eq $Reminder->LifecycleObj->ReminderStatusOnResolve ? 'checked="checked"' : '' |n %>
% unless ( $Reminder->CurrentUserHasRight('ModifyTicket') ) {
-disabled="disabled"
+ disabled="disabled"
% }
-/></td>
-<td class="collection-as-table"><label for="Complete-Reminder-<% $Reminder->id %>"><% $Reminder->Subject %></label></td>
-<td class="collection-as-table"><% $overdue ? '<span class="overdue">' : '' |n %><% $dueobj->AgeAsString || loc('Not set') %><% $overdue ? '</span>' : '' |n %></td>
-<td class="collection-as-table"><& /Elements/ShowUser, User => $Reminder->OwnerObj &></td>
-</tr>
+ />
+ <label class="custom-control-label" for="Complete-Reminder-<% $Reminder->id %>"><% $Reminder->Subject %></label>
+ </div>
+ </div>
+
+ <div class="col-md-4">
+ <% $overdue ? '<span class="overdue">' : '' |n %><% $dueobj->AgeAsString || loc('Not set') %><% $overdue ? '</span>' : '' |n %>
+ </div>
+ <div class="col-md-4">
+ <& /Elements/ShowUser, User => $Reminder->OwnerObj &>
+ </div>
+ </div>
+</div>
</%method>
diff --git a/share/html/Ticket/Elements/ShowAssets b/share/html/Ticket/Elements/ShowAssets
index 3d3da94db..65a8403b6 100644
--- a/share/html/Ticket/Elements/ShowAssets
+++ b/share/html/Ticket/Elements/ShowAssets
@@ -206,7 +206,7 @@ if ($ShowRelatedTickets) {
<div class="add-asset">
<label>
<&|/l&>Add an asset to this ticket</&>
- <input size="10" name="<% $Ticket->id %>-RefersTo" placeholder="<&|/l&>Asset #</&>" type="text">
+ <input class="form-control" size="10" name="<% $Ticket->id %>-RefersTo" placeholder="<&|/l&>Asset #</&>" type="text">
</label>
<input type="submit" value="+">
</div>
diff --git a/share/html/Ticket/Elements/ShowAttachments b/share/html/Ticket/Elements/ShowAttachments
index 29494fa62..d991e804f 100644
--- a/share/html/Ticket/Elements/ShowAttachments
+++ b/share/html/Ticket/Elements/ShowAttachments
@@ -58,17 +58,19 @@
% foreach my $key (sort { lc($a) cmp lc($b) } keys %documents) {
<span class="filename"><%$key%></span>
-<ul <% $Selectable ? 'class="selectable"' : '' |n %> >
+<ul class="list-group-compact" <% $Selectable ? 'class="selectable"' : '' |n %> >
% foreach my $rev (@{$documents{$key}}) {
% if ($rev->ContentLength) {
-<li>
+<li class="list-group-item">
+ <div class="custom-control custom-checkbox">
% if ($Selectable) {
- <label>
- <input type="checkbox" class="checkbox" name="AttachExisting" value="<% $rev->Id %>" \
- <% $is_checked{$rev->Id} ? 'checked' : '' %> />
+ <input type="checkbox" class="custom-control-input" id="AttachExisting-<% $rev->Id %>" name="AttachExisting" value="<% $rev->Id %>" \
+ <% $is_checked{$rev->Id} ? 'checked' : '' %>
+ />
% }
+<label <% $Selectable ? 'class="custom-control-label"' : '' |n%> for="AttachExisting-<% $rev->Id %>">
<span class="revision">
% if (my $url = RT->System->ExternalStorageURLFor($rev)) {
<a href="<%$url%>">
@@ -79,11 +81,8 @@
<% $desc |n%>
</a>
</span>
-
-% if ($Selectable) {
</label>
-% }
-
+ </div>
</li>
% }
% }
diff --git a/share/html/Ticket/Elements/ShowBasics b/share/html/Ticket/Elements/ShowBasics
index 9455a6d23..04da65974 100644
--- a/share/html/Ticket/Elements/ShowBasics
+++ b/share/html/Ticket/Elements/ShowBasics
@@ -85,14 +85,13 @@
<div class="time worked by-user field">
<span class="label"><&|/l&>Users</&>:</span>
<span>
- <table>
% for my $user ( keys %$time_worked ) {
- <tr>
- <td class="value"><% $user %>:</td>
- <td class="value"><& /Ticket/Elements/ShowTime, minutes => $time_worked->{$user} &></td>
- </tr>
+ <div class="form-row">
+ <div class="value"><% $user %>:</div>
+ <div class="value"><& /Ticket/Elements/ShowTime, minutes => $time_worked->{$user} &></div>
+ </div>
% }
- </table>
+ </div>
</span>
</div>
% }
diff --git a/share/html/Ticket/Elements/ShowUpdateStatus b/share/html/Ticket/Elements/ShowUpdateStatus
index 87da70b97..83573a27f 100644
--- a/share/html/Ticket/Elements/ShowUpdateStatus
+++ b/share/html/Ticket/Elements/ShowUpdateStatus
@@ -46,13 +46,13 @@
%#
%# END BPS TAGGED BLOCK }}}
<div class="unread-messages">
-<&| /Widgets/TitleBox, title => loc('New messages'), title_href => "#txn-". $txn->id &>
-<&|/l&>There are unread messages on this ticket.</&>
-<&|/l,
- RT->Config->Get('WebPath') ."/$DisplayPath/Display.html?id=". $Ticket->id. "#txn-".$txn->id,
- RT->Config->Get('WebPath') ."/$DisplayPath/Display.html?id=". $Ticket->id ."&MarkAsSeen=1&Anchor=txn-" . $txn->id
- &>You can <a href="[_1]">jump to the first unread message</a> or <a href="[_2]">jump to the first unread message and mark all messages as seen</a>.</&>
-</&>
+ <&| /Widgets/TitleBox, title => loc('New messages'), title_href => "#txn-". $txn->id &>
+ <&|/l&>There are unread messages on this ticket.</&>
+ <&|/l,
+ RT->Config->Get('WebPath') ."/$DisplayPath/Display.html?id=". $Ticket->id. "#txn-".$txn->id,
+ RT->Config->Get('WebPath') ."/$DisplayPath/Display.html?id=". $Ticket->id ."&MarkAsSeen=1&Anchor=txn-" . $txn->id
+ &>You can <a href="[_1]">jump to the first unread message</a> or <a href="[_2]">jump to the first unread message and mark all messages as seen</a>.</&>
+ </&>
</div>
<%ARGS>
$Ticket
diff --git a/share/html/Ticket/Forward.html b/share/html/Ticket/Forward.html
index 635a1b042..5e21fa60e 100644
--- a/share/html/Ticket/Forward.html
+++ b/share/html/Ticket/Forward.html
@@ -67,7 +67,7 @@
<div class="field">
<span class="label"><&|/l&>Subject</&>:</span>
- <span class="value"><input type="text" name="Subject" value="<% $ARGS{'Subject'} || $subject %>" /></span>
+ <span class="value"><input class="form-control" type="text" name="Subject" value="<% $ARGS{'Subject'} || $subject %>" /></span>
</div>
<div class="field">
diff --git a/share/html/Ticket/Graphs/Elements/EditGraphProperties b/share/html/Ticket/Graphs/Elements/EditGraphProperties
index 341243f42..a1e49db12 100644
--- a/share/html/Ticket/Graphs/Elements/EditGraphProperties
+++ b/share/html/Ticket/Graphs/Elements/EditGraphProperties
@@ -47,41 +47,76 @@
%# END BPS TAGGED BLOCK }}}
<&| /Widgets/TitleBox, title => loc('Graph Properties') &>
-<% loc('Direction') %> <select name="Direction">
-<option value="TB" <% ($Direction||'TB') eq 'TB'? 'selected="selected"': '' |n %>><% loc('top to bottom') %></option>
-<option value="LR" <% ($Direction||'TB') eq 'LR'? 'selected="selected"': '' |n %>><% loc('left to right') %></option>
+ <div class="form-row">
+ <div class="col-md-3 label">
+ <% loc('Direction') %>
+ </div>
+ <div class="col-md-9 value">
+ <select class="form-control selectpicker" name="Direction">
+ <option value="TB" <% ($Direction||'TB') eq 'TB'? 'selected="selected"': '' |n %>><% loc('top to bottom') %></option>
+ <option value="LR" <% ($Direction||'TB') eq 'LR'? 'selected="selected"': '' |n %>><% loc('left to right') %></option>
%# XXX: not supported by GraphViz perl module
%#<option value="BT" <% ($Direction||'TB') eq 'BT'? 'selected="selected"': '' |n %>><% loc('bottom to top') %></option>
%#<option value="RL" <% ($Direction||'TB') eq 'RL'? 'selected="selected"': '' |n %>><% loc('right to left') %></option>
-</select><br />
-
-<% loc('Main type of links') %> <select name="LeadingLink">
+ </select>
+ </div>
+ </div>
+ <div class="form-row">
+ <div class="col-md-3 label">
+ <% loc('Main type of links') %>
+ </div>
+ <div class="col-md-9">
+ <select class="form-control selectpicker" name="LeadingLink">
% foreach ( @link_types ) {
-<option value="<% $_ %>" <% ($LeadingLink||'Members') eq $_? 'selected="selected"': '' |n %>><% loc($_) %></option>
+ <option value="<% $_ %>" <% ($LeadingLink||'Members') eq $_? 'selected="selected"': '' |n %>><% loc($_) %></option>
% }
-</select>
+ </select>
+ </div>
+ </div>
-<% loc('maximum depth') %> <select name="MaxDepth">
-<option value="0"><% loc('Unlimit') %></option>
+ <div class="form-row">
+ <div class="col-md-3 label">
+ <% loc('maximum depth') %>
+ </div>
+ <div class="col-md-9">
+ <select class="form-control selectpicker" name="MaxDepth">
+ <option value="0"><% loc('Unlimit') %></option>
% foreach ( 1..6 ) {
-<option value="<% $_ %>" <% ($MaxDepth||0) == $_? 'selected="selected"': '' %>><% $_ %></option>
+ <option value="<% $_ %>" <% ($MaxDepth||0) == $_? 'selected="selected"': '' %>><% $_ %></option>
% }
-</select><br />
+ </select>
+ </div>
+ </div>
-<% loc('Show as well') %>:
+ <div class="form-row">
+ <div class="col-md-3 label">
+ <% loc('Show as well') %>:
+ </div>
+ <div class="col-md-9">
+ <div class="form-row">
% foreach my $type ( @link_types ) {
% my $checked = '';
% $checked = 'checked="checked"' if grep $type eq $_, @ShowLinks;
-<input type="checkbox" id="ShowLinks" name="ShowLinks" value="<% $type %>" <% $checked |n %> />
-<label for="ShowLinks"><% loc($type) %></label>
+ <div class="col-md-auto">
+ <div class="custom-control custom-checkbox">
+ <input class="custom-control-input" type="checkbox" id="ShowLinks" name="ShowLinks" value="<% $type %>" <% $checked |n %> />
+ <label class="custom-control-label" for="ShowLinks"><% loc($type) %></label>
+ </div>
+ </div>
% }
-<br />
+ </div>
+ </div>
+ </div>
% my @properties = RT::Graph::Tickets->TicketProperties( $session{'CurrentUser'} );
-<% loc('Fill boxes with color using') %>:
-<select name="FillUsing">
-<option value=""><% loc('nothing') %></option>
+ <div class="form-row">
+ <div class="col-md-3 label">
+ <% loc('Fill boxes with color using') %>:
+ </div>
+ <div class="col-md-9">
+ <select name="FillUsing" class="form-control selectpicker">
+ <option value=""><% loc('nothing') %></option>
<%PERL>
my @tmp = @properties;
while ( my ($group, $list) = (splice @tmp, 0, 2) ) {
@@ -92,16 +127,23 @@ while ( my ($group, $list) = (splice @tmp, 0, 2) ) {
my $selected = '';
$selected = 'selected="selected"' if $prop eq ($FillUsing||'');
</%PERL>
-<option value="<% $prop %>" <% $selected |n %>><% loc($prop) %></option>
+ <option value="<% $prop %>" <% $selected |n %>><% loc($prop) %></option>
% } }
-</select><br />
+ </select>
+ </div>
+ </div>
% if ( RT::Link->can('Description' ) ) {
% my $checked = '';
% $checked = 'checked="checked"' if $ShowLinkDescriptions;
-<label for="ShowLinkDescriptions"><% loc('Show link descriptions') %>:</label>
-<input type="checkbox" id="ShowLinkDescriptions" name="ShowLinkDescriptions" value="1" <% $checked |n %> />
-<br />
+ <div class="form-row">
+ <div class="col-md-3 label">
+ <div class="custom-control custom-checkbox">
+ <label class="custom-control-input" for="ShowLinkDescriptions"><% loc('Show link descriptions') %>:</label>
+ <input class="custom-control-label" type="checkbox" id="ShowLinkDescriptions" name="ShowLinkDescriptions" value="1" <% $checked |n %> />
+ </div>
+ </div>
+ </div>
% }
<%PERL>
@@ -119,7 +161,11 @@ for my $i ( 1..($MaxDepth||6) ) {
}
</%PERL>
-<& /Elements/Submit, Label => loc('Update Graph'), Name => 'Update' &>
+ <div class="form-row">
+ <div class="col-md-12">
+ <& /Elements/Submit, Label => loc('Update Graph'), Name => 'Update' &>
+ </div>
+ </div>
</&>
@@ -151,19 +197,32 @@ my $id = "graph-properties-box-$Level";
my $class = '';
$class = 'class="hidden"' if $Level != 1 && !@Default;
</%INIT>
-<% loc('Show Tickets Properties on [_1] level', $Level) %>
-(<small><a href="#" onclick="hideshow(<% $id |n,j%>); return false;"><% loc('open/close') %></a></small>):
-<table id="<% $id %>" <% $class |n %>>
+<div class="col-md-3 label">
+ <% loc('Show Tickets Properties on [_1] level', $Level) %>
+ (<small><a href="#" onclick="hideshow(<% $id |n,j%>); return false;"><% loc('open/close') %></a></small>):
+</div>
+
+<div id="<% $id %>" <% $class |n %>>
% while ( my ($group, $list) = (splice @Available, 0, 2) ) {
-<tr><td><% loc($group) %>:</td><td>
+ <div class="form-row">
+ <div class="col-md-3 label">
+ <% loc($group) %>:
+ </div>
+ <div class="col-md-9">
+ <div class="form-row">
% foreach my $prop ( @$list ) {
% my $checked = '';
% $checked = 'checked="checked"' if grep $_ eq $prop, @Default;
-<input type="checkbox" class="checkbox" id="Level-<% $Level %>-Properties" name="Level-<% $Level %>-Properties" value="<% $prop %>" <% $checked |n %> />
-<label for="Level-<% $Level %>-Properties"><% loc($prop) %></label>
+ <div class="col-md-auto">
+ <div class="custom-control custom-checkbox">
+ <input type="checkbox" class="custom-control-input" id="Level-<% $prop %>-Properties" name="Level-<% $Level %>-Properties" value="<% $prop %>" <% $checked |n %> />
+ <label class="custom-control-label" for="Level-<% $prop %>-Properties"><% loc($prop) %></label>
+ </div>
+ </div>
% }
-</td></tr>
+ </div>
+ </div>
+ </div>
% }
-</table>
-<br />
+</div>
</%METHOD>
diff --git a/share/html/Ticket/Graphs/Elements/ShowLegends b/share/html/Ticket/Graphs/Elements/ShowLegends
index 33f217df8..da48dc7f7 100644
--- a/share/html/Ticket/Graphs/Elements/ShowLegends
+++ b/share/html/Ticket/Graphs/Elements/ShowLegends
@@ -46,25 +46,27 @@
%#
%# END BPS TAGGED BLOCK }}}
<&| /Widgets/TitleBox, title => loc('Legends'), hideable => $hideable &>
-<table>
-
-<tr style="height: 2.8em;"><td><% loc('Status') %>:</td><td>
+ <div class="form-row">
+ <% loc('Status') %>:
+ </div>
+ <div class="form-row">
% foreach my $status ( sort keys %RT::Graph::Tickets::ticket_status_style ) {
% my $style = $RT::Graph::Tickets::ticket_status_style{ $status };
-<span style="color: <% $style->{'fontcolor'} %>; padding: 0.6em; border: 1px solid black;"><% loc($status) %></span>
+ <span style="color: <% $style->{'fontcolor'} %>; padding: 0.6em; border: 1px solid black;"><% loc($status) %></span>
% }
-</td></tr>
+ </div>
% if ( $FillUsing ) {
-<tr style="height: 2.8em;"><td><% loc($FillUsing) %>:</td><td>
+ <div class="form-row">
+ <% loc($FillUsing) %>:
+ </div>
+ <div class="form-row">
% foreach my $value ( sort keys %RT::Graph::Tickets::fill_cache ) {
% my $color = $RT::Graph::Tickets::fill_cache{ $value };
-<span style="background-color: <% $color %>; padding: 0.6em; border: 1px solid black;"><% loc($value) %></span>
+ <span style="background-color: <% $color %>; padding: 0.6em; border: 1px solid black;"><% loc($value) %></span>
% }
-</td></tr>
+ </div>
% }
-
-</table>
</&>
<%ARGS>
diff --git a/share/html/Ticket/ModifyAll.html b/share/html/Ticket/ModifyAll.html
index 847ebc0e4..3265a99db 100644
--- a/share/html/Ticket/ModifyAll.html
+++ b/share/html/Ticket/ModifyAll.html
@@ -111,7 +111,7 @@
</div>
<div class="field input-row">
<span class="label"><&|/l&>Subject</&>:</span>
- <span class="value entry"><input type="text" name="UpdateSubject" value="<%$Ticket->Subject%>" class="form-control" />
+ <span class="value entry"><input class="form-control" type="text" name="UpdateSubject" value="<%$Ticket->Subject%>" class="form-control" />
% $m->callback( %ARGS, CallbackName => 'AfterSubject' );
</span>
</div>
diff --git a/share/html/Ticket/Update.html b/share/html/Ticket/Update.html
index 4169b8003..8bc495951 100644
--- a/share/html/Ticket/Update.html
+++ b/share/html/Ticket/Update.html
@@ -72,7 +72,7 @@
<input type="hidden" class="hidden" name="id" value="<%$TicketObj->Id%>" />
% }
<div class="field"><span class="label"><&|/l&>Update Type</&>:</span>
-<span class="value"><select name="UpdateType" id="UpdateType">
+<span class="value"><select class="form-control selectpicker" name="UpdateType" id="UpdateType">
% if ($CanComment) {
<option value="private" <% ($ARGS{'UpdateType'} && $ARGS{'UpdateType'} eq "private") ? qq[ selected="selected"] : !$ARGS{'UpdateType'}&&$CommentDefault |n %>><&|/l&>Comments (Not sent to requestors)</&></option>
% }
@@ -153,7 +153,7 @@
% }
% $m->callback( %ARGS, CallbackName => 'AfterGnuPG' );
-<div class="field"><span class="label"><&|/l&>Subject</&>:</span><span class="value"><input type="text" name="UpdateSubject" value="<% $ARGS{UpdateSubject} || $TicketObj->Subject || '' %>" />
+<div class="field"><span class="label"><&|/l&>Subject</&>:</span><span class="value"><input class="form-control" type="text" name="UpdateSubject" value="<% $ARGS{UpdateSubject} || $TicketObj->Subject || '' %>" />
% $m->callback( %ARGS, CallbackName => 'AfterSubject' );
</span></div>
diff --git a/share/static/css/base-responsive/ticket-form.css b/share/static/css/base-responsive/ticket-form.css
index bee121299..f8da0e3ec 100644
--- a/share/static/css/base-responsive/ticket-form.css
+++ b/share/static/css/base-responsive/ticket-form.css
@@ -80,15 +80,6 @@ iframe.richtext-editor {
float: right;
}
-#recipients label {
- padding-left: 2em;
-}
-
-#recipients input.checkbox {
- position: absolute;
- margin-left: 0.5em;
-}
-
.refreshing {
opacity: 0.3;
}
diff --git a/t/web/reminders.t b/t/web/reminders.t
index 12031a86d..53c44a40f 100644
--- a/t/web/reminders.t
+++ b/t/web/reminders.t
@@ -14,13 +14,13 @@ ok($ticket->id, 'created a ticket');
$m->goto_ticket($ticket->id);
$m->text_contains('New reminder:', 'can create a new reminder');
$m->content_unlike(qr{Check box to complete}, "we don't display this text when there are no reminders");
-$m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
+$m->content_unlike(qr{<div[^>]*>Reminders</div>}, "no reminder titlebar");
$m->follow_link_ok({id => 'page-reminders'});
$m->title_is("Reminders for ticket #" . $ticket->id . ": " . $ticket->Subject);
$m->text_contains('New reminder:', 'can create a new reminder');
$m->content_unlike(qr{Check box to complete}, "we don't display this text when there are no reminders");
-$m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
+$m->content_unlike(qr{<div[^>]*>Reminders?</div>}, "no reminder titlebar");
$m->goto_ticket($ticket->id);
$m->form_name('UpdateReminders');
@@ -41,7 +41,7 @@ $m->content_contains( "baby's first reminder",
$m->goto_ticket( $ticket->id );
$m->content_lacks('New reminder:', "can't create a new reminder");
$m->text_contains('Check box to complete', "we DO display this text when there are reminders");
-$m->content_like(qr{<th[^>]*>Reminders?</th>}, "now we have a reminder titlebar");
+$m->content_like(qr{Reminders}, "now we have a reminder titlebar");
$m->text_contains("baby's first reminder", "display the reminder's subject");
my $reminders = RT::Reminders->new($user);
@@ -59,7 +59,7 @@ is( $ticket->Status, 'open', 'changed back to new' );
$m->goto_ticket($ticket->id);
$m->text_contains('New reminder:', "can create a new reminder");
$m->text_contains('Check box to complete', "we DO display this text when there are reminders");
-$m->content_like(qr{<th[^>]*>Reminders?</th>}, "now we have a reminder titlebar");
+$m->content_like(qr{Reminders}, "now we have a reminder titlebar");
$m->text_contains("baby's first reminder", "display the reminder's subject");
$m->follow_link_ok({id => 'page-reminders'});
@@ -84,7 +84,7 @@ is($reminder->Status, 'resolved');
$m->text_contains('New reminder:', 'can create a new reminder');
$m->content_unlike(qr{Check box to complete}, "we don't display this text when there are open reminders");
-$m->content_unlike(qr{<th[^>]*>Reminders?</th>}, "no reminder titlebar");
+$m->content_unlike(qr{<div[^>]*>Reminders?</div>}, "no reminder titlebar");
$m->content_unlike(qr{baby's first reminder}, "we don't display resolved reminders");
$m->follow_link_ok({id => 'page-reminders'});
diff --git a/t/web/ticket_timeworked.t b/t/web/ticket_timeworked.t
index dc52cebd8..0df79bfe0 100644
--- a/t/web/ticket_timeworked.t
+++ b/t/web/ticket_timeworked.t
@@ -107,11 +107,11 @@ diag "checking parent ticket for expected timeworked data"; {
"found expected total TimeWorked in parent ticket"
);
$m->content_like(
- qr{(?s)user_a:.+?value">1\.33 hours \(80 minutes\)},
+ qr{(?s)user_a:.+1\.33 hours \(80 minutes\)},
"found expected user_a TimeWorked in parent ticket"
);
$m->content_like(
- qr{(?s)user_b:.+?value">1\.5 hours \(90 minutes\)},
+ qr{(?s)user_b:.+1\.5 hours \(90 minutes\)},
"found expected user_b TimeWorked in parent ticket"
);
}
@@ -124,7 +124,7 @@ diag "checking child ticket 1 for expected timeworked data"; {
"found expected total TimeWorked in child ticket 1"
);
$m->content_like(
- qr{(?s)user_a:.+?value">45 minutes},
+ qr{(?s)user_a:.+45 minutes},
"found expected user_a TimeWorked in child ticket 1"
);
}
@@ -137,11 +137,11 @@ diag "checking child ticket 2 for expected timeworked data"; {
"found expected total TimeWorked in child ticket 2"
);
$m->content_like(
- qr{(?s)user_a:.+?value">35 minutes},
+ qr{(?s)user_a:.+35 minutes},
"found expected user_a TimeWorked in child ticket 2"
);
$m->content_like(
- qr{(?s)user_b:.+?value">1\.5 hours \(90 minutes\)},
+ qr{(?s)user_b:.+1\.5 hours \(90 minutes\)},
"found expected user_b TimeWorked in child ticket 2"
);
}
-----------------------------------------------------------------------
More information about the rt-commit
mailing list