[freeside-commits] freeside/rt/share/html/m/_elements footer, NONE, 1.1 full_site_link, NONE, 1.1 header, NONE, 1.1 menu, NONE, 1.1 raw_style, NONE, 1.1 ticket_list, NONE, 1.1 ticket_menu, NONE, 1.1 wrapper, NONE, 1.1
Mark Wells
mark at wavetail.420.am
Wed Apr 27 01:31:04 PDT 2011
- Previous message: [freeside-commits] freeside/rt/share/html/m dhandler, NONE, 1.1 index.html, NONE, 1.1 login, NONE, 1.1 logout, NONE, 1.1 style.css, NONE, 1.1
- Next message: [freeside-commits] freeside/rt/share/html/m/ticket create, NONE, 1.1 history, NONE, 1.1 modify, NONE, 1.1 reply, NONE, 1.1 select_create_queue, NONE, 1.1 show, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/cvsroot/freeside/rt/share/html/m/_elements
In directory wavetail.420.am:/tmp/cvs-serv23959/rt/share/html/m/_elements
Added Files:
footer full_site_link header menu raw_style ticket_list
ticket_menu wrapper
Log Message:
RT mobile UI, #11630
--- NEW FILE: full_site_link ---
<a id="fullsite" href="<%RT->Config->Get('WebPath')%>/m/index.html?NotMobile=1"><&|/l&>Not using a mobile browser?</&></a>
--- NEW FILE: footer ---
<& /elements/footer.html &>
% if ( 0 ) {
<div id="bpscredits">
<& /Elements/Logo, ShowName => 0 &>
<div id="copyright">
<&|/l, '', '', '2010', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>', &>[_1] RT [_2] Copyright 1996-[_3] [_4].</&>
</div>
</div>
</body>
</html>
% }
--- NEW FILE: menu ---
<&| /Widgets/TitleBox, class => 'menu'&>
<ul class="menu">
% for my $item (@menu) {
% if (exists $item->{html}) {
<li><%$item->{html} |n%></li>
% } else {
<li><a href="<%RT->Config->Get('WebPath')%><%$item->{url}%>"><%$item->{label}%></a></li>
% }
% }
</ul>
</&>
<%init>
use RT::SavedSearches;
my @menu = (
{ html => '<form method="GET" id="search" action="'
. RT->Config->Get('WebPath')
. '/m/tickets/search">'
. loc("Search")
. ': <input type="text" name="q" id="q" value=""/>'
. '<input type="submit" value="'
. loc("Go")
. '"/></form>'
},
{ label => loc("New ticket"),
url => '/m/ticket/select_create_queue',
},
{ label => loc("Bookmarked tickets"),
url => '/m/tickets/search?name=Bookmarked%20Tickets',
},
{ label => loc("Tickets I own"),
url => '/m/tickets/search?name=My%20Tickets',
},
{ label => loc("Unowned tickets"),
url => '/m/tickets/search?name=Unowned%20Tickets',
},
{ label => loc("All tickets"),
url => '/m/tickets/search?query=id!%3d0&order_by=id&order=DESC'
},
);
if ( $session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch', Object => $RT::System))
{
my @Objects = RT::SavedSearches->new( $session{CurrentUser} )->_PrivacyObjects;
push @Objects, RT::System->new( $session{'CurrentUser'} )
if $session{'CurrentUser'}->HasRight(
Object => $RT::System,
Right => 'SuperUser'
);
foreach my $object (@Objects) {
my @searches = $object->Attributes->Named('SavedSearch');
foreach my $search (@searches) {
next unless $search->SubValue("SearchType") eq 'Ticket';
push @menu, { label => $search->Description, url => '/m/tickets/search?query=' . $search->SubValue("Query").'&order='.$search->SubValue("Order").'&order_by='.$search->SubValue("OrderBy") };
}
}
}
push @menu, { label => loc("Logout"), url => '/m/logout', }
if !RT->Config->Get('WebExternalAuth');
</%init>
--- NEW FILE: wrapper ---
<%args>
$title => ''
$show_home_button => 1
</%args>
<%init>
if ($m->request_args->{'NotMobile'}) {
$session{'NotMobile'} = 1;
RT::Interface::Web::Redirect(RT->Config->Get('WebURL'));
$m->abort();
}
$m->comp('header', title => $title, show_home_button => $show_home_button);
$m->out($m->content);
$m->comp('footer');
$m->abort();
</%init>
--- NEW FILE: header ---
<%args>
$title => undef
$show_home_button => 1
</%args>
<%init>
$r->headers_out->{'Pragma'} = 'no-cache';
$r->headers_out->{'Cache-control'} = 'no-cache';
my $head = '';
my $etc = '';
</%init>
<& /elements/header.html, {
'title' => $title,
'head' => $head,
'etc' => $etc,
'nocss' => 1,
'nobr' => 1,
'mobile' => 1,
} &>
<link rel="stylesheet" type="text/css" href="<%RT->Config->Get('WebPath')|n%>/m/style.css"/>
% if ( 0 ) { # Disabled in favor of Freeside header
<html>
<head>
<title><%$title%></title>
</head>
<body>
% if ($show_home_button) {
% # The align is for older browsers, like the blackberry
<div id="gohome" align="right">
<a href="<%RT->Config->Get('WebPath')%>/m/"><&|/l&>Homepage</&></a>
</div>
% }
% if ($title) {
<h1><%$title%></h1>
% }
% } # disabled
--- NEW FILE: ticket_list ---
<%args>
$order => undef
$order_by => undef
$query => ''
$page => 1
</%args>
<%init>
my $collection = RT::Tickets->new($session{'CurrentUser'});
$collection->FromSQL($query);
$collection->RowsPerPage(10);
$collection->GotoPage($page-1);
# XXX: ->{'order_by'} is hacky, but there is no way to check if
# collection is ordered or not
if ( $order_by) {
my @order_by = split /\|/, $order_by;
my @order = split /\|/,$order;
$collection->OrderByCols(
map { { FIELD => $order_by[$_], ORDER => $order[$_] } }
( 0 .. $#order_by )
);
}
$collection->RedoSearch();
if ($page > 1 && ! @{$collection->ItemsArrayRef||[]}) {
RT::Interface::Web::Redirect( RT->Config->Get('WebURL')."m/tickets/search?page=".($page-1)."&query=".$query."&order=$order&order_by=$order_by");
}
</%init>
<&| /m/_elements/wrapper, title =>
loc("Found [quant,_1,ticket]",$collection->Count) &>
<&|/Widgets/TitleBox, class => 'search'
&>
<ul class="ticketlist">
% while (my $ticket = $collection->Next()) {
<li class="ticket">
<a class="ticket" href="<%RT->Config->Get('WebPath')%>/m/ticket/show?id=<%$ticket->id%>"><%$ticket->id%>: <%$ticket->Subject%></a>
<div class="metadata">
<%perl>
</%perl>
<div class="requestors"><span class="label"><&|/l&>Requestors</&>:</span> <& /Ticket/Elements/ShowGroupMembers, Group => $ticket->Requestors, Ticket => $ticket &></div>
<div class="status"><span class="label"><&|/l&>Status</&>:</span> <%$ticket->Status%></div>
<div class="owner"><span class="label"><&|/l&>Owner</&>:</span> <& /Elements/ShowUser, User => $ticket->OwnerObj, Ticket => $ticket &></div>
<div class="created"><span class="label"><&|/l&>Created</&>:</span> <%$ticket->CreatedObj->AgeAsString()%></div>
% if ($ticket->Priority) {
<div class="priority"><span class="label"><&|/l&>Priority</&>:</span> <%$ticket->Priority%></div>
% }
</div>
</li>
% }
</ul>
<div id="paging">
% if ($page > 1) {
<a href="<%RT->Config->Get('WebPath')%>/m/tickets/search?page=<%$page-1%>&query=<%$query%>&order=<%$order%>&order_by=<%$order_by%>">Back</a>
% }
Page <%$page%>
<a href="<%RT->Config->Get('WebPath')%>/m/tickets/search?page=<%$page+1%>&query=<%$query%>&order=<%$order%>&order_by=<%$order_by%>">Next</a>
</div>
</&>
</&>
--- NEW FILE: ticket_menu ---
<%args>
$ticket
</%args>
<div class="ticket_menu">
<ul>
% for my $item (@menu) {
<li><a href="<%RT->Config->Get('WebPath')%><%$item->{url}%>"><%$item->{label}%></a></li>
% }
</ul>
</div>
<%init>
my @menu = (
{ label => loc("Basics"),
url => '/m/ticket/show?id='.$ticket->id
},
{
label => loc("History"),
url => '/m/ticket/history?id='.$ticket->id
},
#{ label => loc("Modify"), url => '/m/ticket/modify?id='.$ticket->id },
{
label => loc("Reply"),
url => '/m/ticket/reply?id='.$ticket->id
}
);
my $width = int(100/ ($#menu +1))-5;
</%init>
--- NEW FILE: raw_style ---
body {
font-family: helvetica, arial, sans-serif;
/*background-color: #ccf;*/
background-color: #f8f8f8;
margin: 0;
}
h1 {
font-size: 1.2em;
padding-top: 0.5em;
padding-left: 0.2em;
display: block;
background-color: #f8f8f8;
}
div.buttons {
text-align: right;
padding-right: 0.5em;
padding-bottom: 0.5em;
}
.titlebox-title {
font-size: 1.1em;
margin-left: 0.5em;
margin-top: -1.2em;
top: -0.5em;
padding: 0.5em;
position: relative;
display: inline-block;
text-decoration: none;
/*background-color: #fff;*/
background-color: #ccc;
-moz-border-radius: 0.25em;
-webkit-border-radius: 0.25em;
-webkit-box-shadow: #333 0px 0px 5px;
-moz-box-shadow: #333 0px 0px 5px;
box-shadow: #333 0px 0px 5px;
}
ul.menu
{
text-align: left;
list-style: none;
padding: 0;
margin: -0.6em;
left: 0;
}
ul.menu li
{
display: block;
margin: 0;
padding: 0;
font-weight: bold;
}
ul.ticketlist li:active, ul.ticketlist li:hover,
ul.menu li:active, ul.menu li:hover {
background-color: #eee;
}
ul.menu li
{
display: block;
padding: 1em;
margin: 0;
border:0;
border-top-width: 1px;
border-top-color: #666;
border-style: solid;
text-decoration: none;
}
ul.menu li:first-child{
border: none;
}
ul.menu li#active a
{
color: #800000;
}
div.titlebox, #bpscredits, .ticket_menu{
-moz-border-radius: 1em;
-webkit-border-radius: 1em;
margin: 0.5em;
background-color: #fff;
padding-top: 1em;
padding-bottom: 0.8em;
margin-top: 1.25em;
-webkit-box-shadow: #333 0px 0px 5px;
-moz-box-shadow: #333 0px 0px 5px;
box-shadow: #333 0px 0px 5px;
margin-bottom: 1em;
}
div .titlebox-content {
padding-left: 0.5em;
padding-right: 0.5em;
}
hr.clear {
display: none;
}
.label, .labeltop {
font-weight: normal;
}
.value {
font-weight: bold;
display:inline-block;
}
ul.ticketlist {
list-style: none;
padding-left: -0.5em;
padding-right: -0.5em; /* to counteract the titlebox and get shading to the end*/
margin-left: -0.5em;
margin-right: -0.5em;
padding: 0em;
padding-bottom: 1em;
}
ul.ticketlist li.ticket {
padding: 0.5em;
font-weight: bold;
border-bottom: 1px solid #999;
}
ul.ticketlist li.ticket:first-child {
border-top: 1px solid #999;
}
ul.ticketlist li.ticket a.ticket{
display: inline-block;
font-size: 1em;
width: 100%;
padding: 0.5em;
padding-bottom: 5em;
margin-bottom: -5em;
}
ul.ticketlist li.ticket div.metadata {
}
ul.ticketlist li.ticket div.metadata div {
padding: 0.2em;
font-size:0.8em;
display: block;
}
ul.ticketlist li.ticket div.metadata .label {
display: inline-block;
width: 6em;
font-size: 0.8em;
text-align: right;
color: #666;
}
div#paging {
text-align: center;
}
.ticket-reply .titlebox-title, .titlebox.search .titlebox-title, .titlebox.menu .titlebox-title, .ticket_menu .titlebox-title, .history .titlebox-title, #ticket-create-basics .titlebox-title{
display: none;
}
a {
color: #000;
}
.ticket_menu a, .menu a {
text-decoration: none;
}
ul.menu a {
padding: 0.5em;
margin-top: -0.5em;
margin-bottom: -0.5em;
display: inline-block;
width: 100%;
}
ul.menu a:after {
color: #666;
float: right;
content: ">";
font-size: 1.5em;
padding: 0;
margin: 0;
padding-right: 1em;
}
ul.menu form {
display: inline;
}
ul.menu form * {
display: inline;
}
ul.menu form input[type=text] {
width: 7em;
}
ul.menu form input{
width: auto;
padding: 0.5em;
margin: -0.5em;
margin-left: 1em;
}
.ticket_menu {
text-align: center;
}
.ticket_menu ul {
display: block;
margin: 0;
padding: 0;
}
.ticket_menu ul li {
display: inline-block;
text-align: center;
padding-bottom: 0.25em;
padding-top: 0.25em;
font-size: 1em;
width: 28%;
padding-right: 0.3em;
padding-left: 0.2em;
border-right: 1px solid #000;
}
.ticket_menu ul li:last-child {
padding-right: 0;
border-right: 0;
}
.ticket-info-reminders table {
width: 100%;
}
#ticket-create .label:after {
content: ": ";
padding-right: 0.25em;
}
#ticket-create .content-label {
width: auto;
display: block;
text-align: left;
}
#ticket-show .label, .login-body .label {
display: inline-block;
text-align: right;
width: 6em;
padding-right: 0.25em;
font-size: 0.8em;
}
.login-body .value {
width: auto;
}
.history ul.history-list {
padding: 0;
margin: 0;
padding-bottom: 2em;
}
.history ul.history-list li:first-child {
border-top: 1px solid #ccc;
}
.history ul.history-list li {
list-style: none;
border-bottom: 1px solid #ccc;
padding: 0.5em;
}
.history .age {
display: inline-block;
min-width: 8em;
text-align: right;
}
div#login-box div.titlebox {
width: 100%;
margin-left:auto;
margin-right: auto;
}
div#login-box input[type=text], div#login-box input[type=password] {
width: 100%;
}
#bpscredits img {
padding-bottom: 1em;
}
#bpscredits {
float: right;
text-align: right;
width: auto;
font-size: 0.8em;
padding: 1em;
}
:focus {
background-color: #ffc;
border-color: #000;
border-weight: 3px;
}
input[type=submit], input[type=button], button, #paging a {
border: 2px outset;
margin: 0.3em;
padding: 0.3em;
padding-left: 0.6em;
padding-right: 0.6em;
-moz-border-radius: 0.5em;
-webkit-border-radius: 0.5em;
background-color: #006699;
color: #fff;
}
form {
margin:0;
}
#gohome {
position: absolute;
top: 0;
right: 0;
border-left: 1px solid black;
border-bottom: 1px solid black;
-moz-border-radius-bottomleft: 1em;
-webkit-border-bottom-left-radius: 1em;
padding: 0.5em;
background-color: #fff;
}
#gohome a {
font-size: 1em;
padding: 0.25em;
color: #000;
}
div.txn-content {
font-size:0.8em;
padding-left:1em;
padding-top:0.5em;
margin-top: 0.5em;
margin-left: 2em;
padding-bottom: 0.5em;
border-left: 5px solid #00c;
}
.label {
text-align: left;
width: 10em;
color: #666;
display: block;
padding-bottom: 0.2em;
padding-right: 0.2em;
}
div.entry, tr.input-row {
margin-bottom: 0.25em;
padding-bottom: 0.25em;
border-bottom: 1px solid #ccc;
display: block;
width: 100%;
min-height: 1em;
}
input, input[type=text], input[type=password], select {
width: 100%;
}
.timefield input {
width: 5em;
}
.timefield select {
width: auto;
}
textarea {
width: 100%;
}
a#fullsite {
padding-left: 1em;
}
- Previous message: [freeside-commits] freeside/rt/share/html/m dhandler, NONE, 1.1 index.html, NONE, 1.1 login, NONE, 1.1 logout, NONE, 1.1 style.css, NONE, 1.1
- Next message: [freeside-commits] freeside/rt/share/html/m/ticket create, NONE, 1.1 history, NONE, 1.1 modify, NONE, 1.1 reply, NONE, 1.1 select_create_queue, NONE, 1.1 show, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the freeside-commits
mailing list