[Rt-commit] rt branch, 4.6/two-col-in-widget, created. rt-4.4.4-433-gd1ac26ad0
? sunnavy
sunnavy at bestpractical.com
Mon Oct 21 18:18:03 EDT 2019
The branch, 4.6/two-col-in-widget has been created
at d1ac26ad093eccb7a205b54bc8aa011f67e4ccc4 (commit)
- Log -----------------------------------------------------------------
commit d1ac26ad093eccb7a205b54bc8aa011f67e4ccc4
Author: sunnavy <sunnavy at bestpractical.com>
Date: Tue Oct 22 05:25:31 2019 +0800
Automatically render 2 columns for common ticket widgets on large screen
For text/wikitext type of cfs, as they are supposed to contain quite a
few content, we intentionally let them take up the whole row.
People can add "two-col-left" or "two-col-right" css class to control
the position of fields, and "two-col-full" is to take up the whole row.
diff --git a/share/html/Elements/ShowCustomFields b/share/html/Elements/ShowCustomFields
index 26ef1e570..8ddc7c071 100644
--- a/share/html/Elements/ShowCustomFields
+++ b/share/html/Elements/ShowCustomFields
@@ -48,7 +48,7 @@
% $m->callback( CallbackName => 'BeforeCustomFields', Object => $Object,
% Grouping => $Grouping, ARGSRef => \%ARGS, CustomFields => $CustomFields, Table => $Table );
% if ($Table) {
-<div>
+<div class="two-col">
% }
% while ( my $CustomField = $CustomFields->Next ) {
% my $Values = $Object->CustomFieldValues( $CustomField->Id );
@@ -63,6 +63,7 @@
% 'custom-field-'.$CustomFieldName,
% );
% push @classes, 'unset-field' if not $count;
+% push @classes, 'two-col-full' if $CustomField->Type =~ /^(?:Text|Wikitext)$/;
% $m->callback( CallbackName => 'ModifyFieldClasses', CustomField => $CustomField,
% Object => $Object, Classes => \@classes, Grouping => $Grouping );
<div class="form-row <% join(' ', @classes) %>" id="CF-<%$CustomField->id%>-ShowRow">
diff --git a/share/html/Ticket/Elements/ShowBasics b/share/html/Ticket/Elements/ShowBasics
index 36206a6e4..dfc0f748d 100644
--- a/share/html/Ticket/Elements/ShowBasics
+++ b/share/html/Ticket/Elements/ShowBasics
@@ -45,7 +45,7 @@
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
-<div>
+<div class="two-col">
<div class="id form-row">
<div class="label col-md-3"><&|/l&>Id</&>:</div>
<div class="value col-md-9"><span class="current-value form-control"><%$Ticket->Id %></span></div>
diff --git a/share/html/Ticket/Elements/ShowDates b/share/html/Ticket/Elements/ShowDates
index 7f9dc7ddd..42c72bd4e 100644
--- a/share/html/Ticket/Elements/ShowDates
+++ b/share/html/Ticket/Elements/ShowDates
@@ -45,7 +45,7 @@
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
-<div>
+<div class="two-col">
<div class="date form-row created">
<div class="label col-md-3"><&|/l&>Created</&>:</div>\
<div class="value col-md-9"><span class="form-control current-value"><% $Ticket->CreatedObj->AsString %></span></div>
diff --git a/share/html/Ticket/Elements/ShowPeople b/share/html/Ticket/Elements/ShowPeople
index 97a033ba6..66f446871 100644
--- a/share/html/Ticket/Elements/ShowPeople
+++ b/share/html/Ticket/Elements/ShowPeople
@@ -45,7 +45,7 @@
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
-<div>
+<div class="two-col">
<div class="form-row owner">
<div class="label col-md-3"><&|/l&>Owner</&>:</div>
% my $owner = $Ticket->OwnerObj;
diff --git a/share/static/css/elevator-light/ticket.css b/share/static/css/elevator-light/ticket.css
index fb8464af8..19872baa1 100644
--- a/share/static/css/elevator-light/ticket.css
+++ b/share/static/css/elevator-light/ticket.css
@@ -128,3 +128,15 @@ ul.select-queue li + li {
ul.select-queue li a:visited {
color: #000;
}
+
+ at media (min-width: 1200px) {
+ .two-col-full > .label.col-md-3 {
+ max-width: 12.5%;
+ flex: 0 0 12.5%;
+ }
+
+ .two-col-full > .col-md-9 {
+ max-width: 87.5%;
+ flex: 0 0 87.5%;
+ }
+}
diff --git a/share/static/js/util.js b/share/static/js/util.js
index 992fd78c5..2bdcf0ace 100644
--- a/share/static/js/util.js
+++ b/share/static/js/util.js
@@ -283,6 +283,57 @@ jQuery(function() {
};
};
});
+
+ jQuery('div.two-col').each(function() {
+ var container = jQuery(this);
+ var divs = container.children('div.form-row');
+
+ var left_divs = [];
+ var right_divs = [];
+ var full_count = 0;
+
+ for( var i = 0; i < divs.length; i++ ) {
+ var div = divs.eq(i);
+ if ( div.hasClass('two-col-full') ) {
+ left_divs.push(div);
+ full_count++;
+ }
+ else if ( div.hasClass('two-col-left') ) {
+ left_divs.push(div);
+ }
+ else if ( div.hasClass('two-col-right') ) {
+ right_divs.push(div);
+ }
+ else if ( left_divs.length - full_count > right_divs.length ) {
+ right_divs.push(div);
+ }
+ else {
+ left_divs.push(div);
+ }
+ }
+
+ while ( left_divs.length ) {
+ var row = jQuery('<div class="form-row"></div>').appendTo(container);
+ var left_div = left_divs.shift();
+ left_div.detach().appendTo(row);
+
+ if ( left_div.hasClass('two-col-full') ) {
+ left_div.wrap('<div class="col-xl-12"></div>');
+ }
+ else {
+ left_div.wrap('<div class="col-xl-6"></div>');
+ var right_div = right_divs.shift();
+ if ( right_div ) {
+ right_div.detach().appendTo(row).wrap('<div class="col-xl-6"></div>');
+ }
+ }
+ }
+
+ while ( right_divs.length ) {
+ var row = jQuery('<div class="form-row"></div>').appendTo(container);
+ right_divs.shift().detach().appendTo(row).wrap('<div class="col-xl-6 offset-xl-6"></div>');
+ }
+ });
});
function textToHTML(value) {
-----------------------------------------------------------------------
More information about the rt-commit
mailing list