Merge lp:~michael.nelson/launchpad/3-0-menu into lp:launchpad

Proposed by Michael Nelson
Status: Merged
Merged at revision: not available
Proposed branch: lp:~michael.nelson/launchpad/3-0-menu
Merge into: lp:launchpad
Diff against target: None lines
To merge this branch: bzr merge lp:~michael.nelson/launchpad/3-0-menu
Reviewer Review Type Date Requested Status
Martin Albisetti (community) ui Approve
Eleanor Berger (community) Approve
Review via email: mp+9577@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Michael Nelson (michael.nelson) wrote :
Download full text (3.6 KiB)

= Summary =

This branch is a first implementation of Martin's new location-header +
navigation tabs (facets), the mockup of which can be seen at:

http://people.canonical.com/~michaeln/menu_3-0/0-LP_new_design_Bugs_v3.1-from-beuno.png

== Proposed fix ==

This branch removes the old facet tabs from base-layout.pt and adds in
their place a simple styled list via a macro.

Following are a few unresolved questions that I have regarding the design.

What happens for contexts that do not have an image:logo?
=========================================================
See source package screenshot at:
http://people.canonical.com/~michaeln/menu_3-0/2-DistroSourcepkg-with-disabled-tabs.png

IDistributionSourcePackage does not provide IHasLogo, so passes up to
the nearest object that does, which is the distribution.

Note: in this specific case we actually want to update
IDistributionSourcePackage to implement IHasLogo and use the logo of the
upstream project - if it has one.

Alignment of menu text when first tab is highlighted (Code)?
============================================================

The provided mockup has the text of the first tab aligned with the text
of the heading above, but does not specify what should be aligned when
the first tab is active (ie. still the text, or the border of the
highlight?).

As a last-minute decision, I've gone with aligning the text of the first
tab when it is not active, and the margin/highlight when it is, as shown
by the first two examples at:

http://people.canonical.com/~michaeln/menu_3-0/4-alignment-of-first-tab.png

The third example shows you the other alternative (aligning the text
even when the first tab is active). Let me know what you'd prefer.

The location-portlet now becomes the top-portlet
================================================

I'm assuming from the mockup that the location portlet will always be
the top portlet when it is present. That is, the first content below it
should be separated with a thin gray line (ie. a normal portlet).

If this is so, it'll mean updating the 3.0 design instructions as people
can simply add class="portlet" to their first main-area portlet.

Other unspecified design decisions
==================================

Hover behaviour
---------------
I've just used a lower-contrasting gray. See

http://people.canonical.com/~michaeln/menu_3-0/1-DistroSearch-with-hover.png

Another point (which I haven't got an image for, but you can see the
behaviour if you merge the branch) is hovering over the current selected
tab.

Disabled location tabs
----------------------
I've grayed them out as shown at:
 http://people.canonical.com/~michaeln/menu_3-0/2-DistroSourcepkg-with-disabled-tabs.png

edge/staging warning message
----------------------------
As I've only implemented the location header/nav, I have not moved it so
it will still appear under the current 'breadcrumb'-like structure at
the top of the page.

== Implementation details ==

== Tests ==

bin/test -vvt tests/base-layout.txt

== Demo and Q/A ==

= Launchpad lint =

Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.

Linting chan...

Read more...

Revision history for this message
Eleanor Berger (intellectronica) :
review: Approve
Revision history for this message
Martin Albisetti (beuno) wrote :
Download full text (3.4 KiB)

> What happens for contexts that do not have an image:logo?
> =========================================================
> See source package screenshot at:
> http://people.canonical.com/~michaeln/menu_3-0/2-DistroSourcepkg-with-
> disabled-tabs.png
>
> IDistributionSourcePackage does not provide IHasLogo, so passes up to
> the nearest object that does, which is the distribution.
>
> Note: in this specific case we actually want to update
> IDistributionSourcePackage to implement IHasLogo and use the logo of the
> upstream project - if it has one.

I think that we should always have a default Logo, and a plan to eventually show something meaningful there.

> Alignment of menu text when first tab is highlighted (Code)?
> ============================================================
>
> The provided mockup has the text of the first tab aligned with the text
> of the heading above, but does not specify what should be aligned when
> the first tab is active (ie. still the text, or the border of the
> highlight?).
>
> As a last-minute decision, I've gone with aligning the text of the first
> tab when it is not active, and the margin/highlight when it is, as shown
> by the first two examples at:
>
> http://people.canonical.com/~michaeln/menu_3-0/4-alignment-of-first-tab.png
>
> The third example shows you the other alternative (aligning the text
> even when the first tab is active). Let me know what you'd prefer.

I feel the third option is the best. Thank you so much for laying out my options so well :)

> The location-portlet now becomes the top-portlet
> ================================================
>
> I'm assuming from the mockup that the location portlet will always be
> the top portlet when it is present. That is, the first content below it
> should be separated with a thin gray line (ie. a normal portlet).
>
> If this is so, it'll mean updating the 3.0 design instructions as people
> can simply add class="portlet" to their first main-area portlet.

I don't quite understand what you mean by "location portlet".

> Other unspecified design decisions
> ==================================
>
> Hover behaviour
> ---------------
> I've just used a lower-contrasting gray. See
>
> http://people.canonical.com/~michaeln/menu_3-0/1-DistroSearch-with-hover.png
>
> Another point (which I haven't got an image for, but you can see the
> behaviour if you merge the branch) is hovering over the current selected
> tab.

Your instincts where right here. It's great as-is.

> Disabled location tabs
> ----------------------
> I've grayed them out as shown at:
> http://people.canonical.com/~michaeln/menu_3-0/2-DistroSourcepkg-with-
> disabled-tabs.png

Again, the right thing to do.

> edge/staging warning message
> ----------------------------
> As I've only implemented the location header/nav, I have not moved it so
> it will still appear under the current 'breadcrumb'-like structure at
> the top of the page.

I see you still haven't moved the breadcrumbs to beneath the title. To be honest, I don't know what to do with the edge notice, but I feel it's no longer as important to know about in which instance you are. It could very well be something th...

Read more...

review: Needs Information
Revision history for this message
Michael Nelson (michael.nelson) wrote :
Download full text (6.8 KiB)

> > What happens for contexts that do not have an image:logo?
> > =========================================================
> > See source package screenshot at:
> > http://people.canonical.com/~michaeln/menu_3-0/2-DistroSourcepkg-with-
> > disabled-tabs.png
> >
> > IDistributionSourcePackage does not provide IHasLogo, so passes up to
> > the nearest object that does, which is the distribution.
> >
> > Note: in this specific case we actually want to update
> > IDistributionSourcePackage to implement IHasLogo and use the logo of the
> > upstream project - if it has one.
>
> I think that we should always have a default Logo, and a plan to eventually
> show something meaningful there.

Yes, the tales logo formatter does this - it will display a default logo if it cannot find one for the given traversal path (ie. in the above example, if IDistribution did not provide IHasLogo, then a default logo would be displayed.

I'm not sure if you are saying that you'd prefer that the formatter didn't look up the traversal path (ie. if there is no logo for the IDistributionSourcePackage then it should just display the default logo, rather than looking to IDistribution first)? If so, then I think the wider implications of that change need to be considered (and I'd suggest it isn't part of this branch).

And to eventually get something meaningful here shouldn't be difficult as once the logos are displayed so visibly it will be up to the responsible teams to add IHasLogo support.

>
>
>
> > Alignment of menu text when first tab is highlighted (Code)?
> > ============================================================
> >
> > The provided mockup has the text of the first tab aligned with the text
> > of the heading above, but does not specify what should be aligned when
> > the first tab is active (ie. still the text, or the border of the
> > highlight?).
> >
> > As a last-minute decision, I've gone with aligning the text of the first
> > tab when it is not active, and the margin/highlight when it is, as shown
> > by the first two examples at:
> >
> > http://people.canonical.com/~michaeln/menu_3-0/4-alignment-of-first-tab.png
> >
> > The third example shows you the other alternative (aligning the text
> > even when the first tab is active). Let me know what you'd prefer.
>
> I feel the third option is the best. Thank you so much for laying out my
> options so well :)
>

No probs! I've pushed the change so the third option is used.

>
> > The location-portlet now becomes the top-portlet
> > ================================================
> >
> > I'm assuming from the mockup that the location portlet will always be
> > the top portlet when it is present. That is, the first content below it
> > should be separated with a thin gray line (ie. a normal portlet).
> >
> > If this is so, it'll mean updating the 3.0 design instructions as people
> > can simply add class="portlet" to their first main-area portlet.
>
> I don't quite understand what you mean by "location portlet".

OK, so perhaps another point should have been that I don't know how to refer to this block of heading+application/navigation/facet/tabs. I started refering to it as the "location portlet" ...

Read more...

Revision history for this message
Michael Nelson (michael.nelson) wrote :

Martin,

I've just been talking with Curtis - which has helped clarify a few issues. In particular, what I've referred to above as the 'location portlet' is really the 'pillar heading'. So I'll need to do a bit of a re-work to straighten things out.

I'll hopefully be able to push the changes tomorrow morning.

Revision history for this message
Martin Albisetti (beuno) wrote :

> I'm not sure if you are saying that you'd prefer that the formatter didn't
> look up the traversal path (ie. if there is no logo for the
> IDistributionSourcePackage then it should just display the default logo,
> rather than looking to IDistribution first)? If so, then I think the wider
> implications of that change need to be considered (and I'd suggest it isn't
> part of this branch).

No, I think the current behavior is good for now.

> > I see you still haven't moved the breadcrumbs to beneath the title.
>
> No, Julian mentioned the other day that I was only to do the nav, not the
> breadcrumbs. But even if you do want me to do those, I'd still prefer to do
> them as a separate branch - if that's ok?

It is. The breadcrumb issue is something separate from the UI. They need to be more detailed, and I'm going to work on that with Salgado.
If you can handle the UI, while I work out the technical details with Salgado, it would be great.

> This change will affect any page that uses the 3-0 templates (main_only,
> main_side, searchless, locationless.) So, I was wanting to check with Curtis,
> but I was planning on landing this change without updating any other templates
> (it just so happens that Curtis has already landed the searchless template
> changes such as the Distribution search that I used in the examples here and
> that you can see locally). I was under the impression (from Curtis' conversion
> page) that we cannot yet land any changes that update templates to 3-0? (see
> the section "There are some bugs that must be fixed before layouts changes can
> start" at the beginning of the page
> https://dev.launchpad.net/VersionThreeDotO/UI/Conversion)

Sounds good to me.

Revision history for this message
Michael Nelson (michael.nelson) wrote :

OK, I've updated this branch after talking with both Curtis and Martin.

The complete diff is: Diff: http://pastebin.ubuntu.com/247929/ (easier to read).

Changes
=======

1. I added a location_title formatter which, similar to the logo formatter, checks for the nearest IHasLogo implementer in the canonical url, and displays returns the title. This allows the location portlet to display the *person* who owns the PPA currently being browsed, like this:

http://people.canonical.com/~michaeln/menu_3-0/5-default-h2-location-heading.png

Note: when discussing this with Curtis, we had planned for this to be 'pillar_title', but I also understood that when viewing a PPA, the location should be the person, as shown in the image. Other options for the formatter would be 'piller_or_person_title' depending on what Curtis thinks.

2. I've ensured that if we cannot display a piller/person title (because there is no pillar or person present) then we display 'Launchpad' like this:

http://people.canonical.com/~michaeln/menu_3-0/6-no-location-default-launchpad.png

Note1: I assume 'Launchpad Home' will be disappearing, according to beuno' design?
Note2: The logo formatter already does this by default - so that didn't require any change.

Questions
=========

Now I'm left with the following question:

1. Why is the default heading used in the "heading" metal slot h2? Shouldn't it always be h1 (given that the heading in the location is always h2).

Note: I did do a revision where the location_title marked up the title with h1 or h2 depending on whether the current context itself implemented IHasLogo, but that didn't work for pages like:

http://people.canonical.com/~michaeln/menu_3-0/7-ubuntu-search.png

where the context *is* the ubuntu distribution, but we have an h1 heading related to search.

Thanks for your time!

Revision history for this message
Martin Albisetti (beuno) wrote :

Changes are awesome.

> Note1: I assume 'Launchpad Home' will be disappearing, according to beuno'
> design?

Yes.

> 1. Why is the default heading used in the "heading" metal slot h2? Shouldn't
> it always be h1 (given that the heading in the location is always h2).
>
> Note: I did do a revision where the location_title marked up the title with h1
> or h2 depending on whether the current context itself implemented IHasLogo,
> but that didn't work for pages like:
>
> http://people.canonical.com/~michaeln/menu_3-0/7-ubuntu-search.png
>
> where the context *is* the ubuntu distribution, but we have an h1 heading
> related to search.

I don't think I quite understand this, but if there's only one heading, then it should be h1

review: Approve (ui)
Revision history for this message
Curtis Hovey (sinzui) wrote :

Hi Michael.

This is a good improvement. I think I have just as may questions as you. I do not think I have any answers. I think Martin needs to give some directions here.

Martin mentioned that the the Overview tab going away. I believe that will
cause havoc here. How do I get from translations to my profile? Do I
click on the icon or pillar title?

If overview is gone, how do we handle the Launchpad Home hack? I do not
think search is Launchpads root page. It is most like a collection such as
people/ and projects/. I guess my concern is about distinguishing the
launchpad application that is being used and our projects. They have the
same icons which confuses me. Is it possible to have a different icon
for the projects and the application?

I wonder what sprint looks like? It is the only non-pillar-person that
has logos. Since a sprint is antonymous from pillars and teams, it probably
should have an icon.

/me can see the PPA is private because the left margin has a stripe.

The default heading is a <h2> because we assume the <h1> is an exception.
The engineer and reviewer need to know when the template must pass a
<h1> to the heading slot because we are looking at the object itself. I
cannot explain this rule. This ws very frustrating for me. I gave up
working on this issue. Let me show you some examples that illustrate
my understanding:

    Distroseries Karmic (has bread crumbs):
        <title> Search packages in Ubuntu Karmic

        {@} Ubuntu Linux
        <h2> Karmic
             Ubuntu > Karmic

        <h1> Search packages in Karmic

    Project edit (no bread crumbs because this is the top):
        <title> Change Bazaar details

        {@} Bazaar Distributed Version Control
        <h2> Bazaar

        <h1> Change details <this is the form label>

    Project (no bread crumbs and pass a <h1>):
        <title> Bazaar Distributed Version Control

        {@} Bazaar Distributed Version Control
        <h1> Bazaar

    Team PPA history
        <title> Launchpad dependencies history

        {@} Canonical Launchpad Developers
        <h2> Launchpad dependencies
             launchpad developers > ppas

        <h1> Launchpad dependencies history

Revision history for this message
Michael Nelson (michael.nelson) wrote :
Download full text (4.3 KiB)

> Hi Michael.
>
> This is a good improvement. I think I have just as may questions as you. I do
> not think I have any answers. I think Martin needs to give some directions
> here.

Thanks for your time Curtis! Just to aid our call, here are some thoughts.

>
> Martin mentioned that the the Overview tab going away. I believe that will
> cause havoc here. How do I get from translations to my profile? Do I
> click on the icon or pillar title?

Yes, I have not done any removing - I was just noting that that's why my screenshot didn't look exactly like his mockup.

>
> If overview is gone, how do we handle the Launchpad Home hack? I do not
> think search is Launchpads root page. It is most like a collection such as
> people/ and projects/.

OK, I'm not sure I understand this point. Looking at:

http://people.canonical.com/~michaeln/menu_3-0/6-no-location-default-launchpad.png

which I assume would (currently in the branch) also apply to collections, could we not make the icon itself the link to Launchpad? (and if we wanted, also in other contexts, to the project/person etc.)

> I guess my concern is about distinguishing the
> launchpad application that is being used and our projects. They have the
> same icons which confuses me. Is it possible to have a different icon
> for the projects and the application?

Ah, I see the confusion. So it is really just an isolated case for the Launchpad project right? Hmm.. or maybe I've misunderstood?

>
> I wonder what sprint looks like? It is the only non-pillar-person that
> has logos. Since a sprint is antonymous from pillars and teams, it probably
> should have an icon.
>

Currently it would look something like this:
http://people.canonical.com/~michaeln/menu_3-0/11-sprint.png

> /me can see the PPA is private because the left margin has a stripe.
>
>
> The default heading is a <h2> because we assume the <h1> is an exception.
> The engineer and reviewer need to know when the template must pass a
> <h1> to the heading slot because we are looking at the object itself. I
> cannot explain this rule. This ws very frustrating for me. I gave up
> working on this issue. Let me show you some examples that illustrate
> my understanding:
>
> Distroseries Karmic (has bread crumbs):
> <title> Search packages in Ubuntu Karmic
>
> {@} Ubuntu Linux
> <h2> Karmic
> Ubuntu > Karmic
>
> <h1> Search packages in Karmic
>

OK, I don't think this one is an issue - it seems more like the heading just needs updating like this:

http://people.canonical.com/~michaeln/menu_3-0/8-distroseries-search-change.png

And to highlight why I thought the heading slot should default to h1, here's the example where we *would* use the default heading:

http://people.canonical.com/~michaeln/menu_3-0/9-distroseries-index.png

>
> Project edit (no bread crumbs because this is the top):
> <title> Change Bazaar details
>
> {@} Bazaar Distributed Version Control
> <h2> Bazaar
>
> <h1> Change details <this is the form label>

Similar to the distroseries search above, I'm not sure why the template wouldn't just override the heading slot with <h1> Change...

Read more...

Revision history for this message
Martin Albisetti (beuno) wrote :

On Wed, Aug 5, 2009 at 12:48 PM, Michael
Nelson<email address hidden> wrote:
> So here there is a small issue, in that I think the h1 heading will or should replicate the {@} <h2> Bazaar Distributed Version Control </h2>.
>
> Like this:
>
> http://people.canonical.com/~michaeln/menu_3-0/10-project-index.png

I this case, the title would be "Overview", in h2, like in the mock
up: https://devpad.canonical.com/~beuno/LP_new_design_Home.png

--
Martin

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/canonical/launchpad/icing/style-3-0.css'
2--- lib/canonical/launchpad/icing/style-3-0.css 2009-07-29 00:30:50 +0000
3+++ lib/canonical/launchpad/icing/style-3-0.css 2009-08-03 10:51:41 +0000
4@@ -372,6 +372,57 @@
5 padding-left: 1em;
6 }
7
8+/* == Location portlet heading styles */
9+div.location-portlet img {
10+ float: left;
11+ margin: 0 1.5em 0 0;
12+}
13+div.location-portlet h1, div.location-portlet h2 {
14+ padding-top: 0.1em;
15+ margin-bottom: 0.8em;
16+ color: #000000;
17+ font-weight: bold;
18+ clear: none;
19+}
20+div.location-portlet h1 {
21+ margin-bottom: 0.2em;
22+}
23+
24+/* === Location portlet tabs === */
25+/* In most pages, we present a list of six application facets: */
26+.location-portlet li {
27+ display:inline;
28+ list-style-type: none;
29+}
30+.location-portlet li a {
31+ padding: 0.3em 0.5em;
32+}
33+/* The text of the first tab should align with the heading directly
34+ above it - unless the first tab is active, in which case the highlight
35+ (margin) should align instead */
36+.location-portlet li:first-child a {
37+ margin-left: -0.5em;
38+}
39+.location-portlet li:first-child.active a {
40+ margin-left: 0
41+}
42+.location-portlet li a:link, .location-portlet li a:visited {
43+ color: #000;
44+ background-color: #fff;
45+ text-decoration: none;
46+}
47+.location-portlet li.active a {
48+ font-weight: bold;
49+ color: #fff;
50+ background-color: #747474;
51+}
52+.location-portlet li a:hover {
53+ color: #000;
54+ background-color: #f3f3f3;
55+}
56+.location-portlet li.disabled-tab {
57+ color: #747474;
58+}
59
60 /* Side content exceptions */
61 .side {
62
63=== modified file 'lib/canonical/launchpad/icing/style.css'
64--- lib/canonical/launchpad/icing/style.css 2009-07-30 22:35:16 +0000
65+++ lib/canonical/launchpad/icing/style.css 2009-08-03 07:22:41 +0000
66@@ -798,6 +798,8 @@
67 }
68
69 /* === Location application tabs === */
70+/* NOTE: This whole section (everything for #lp-apps) can be removed once
71+ * pages have updated to the 3.0 templates */
72 /* In most pages, the location bar includes six centered application tabs: */
73 #lp-apps {
74 position: relative;
75
76=== modified file 'lib/lp/app/browser/tests/base-layout.txt'
77--- lib/lp/app/browser/tests/base-layout.txt 2009-07-31 22:34:24 +0000
78+++ lib/lp/app/browser/tests/base-layout.txt 2009-08-03 09:34:26 +0000
79@@ -46,13 +46,16 @@
80 <div id="locationbar"> ...
81 <form id="globalsearch" ...
82 <div id="lp-hierarchy" class="home">...
83- <div id="lp-apps" ...
84 <div class="yui-t4">
85 <div id="maincontent" class="yui-main">
86 <div class="yui-b" dir="ltr">
87- <h1>Heading</h1>
88- <!-- future breadcrumb rule -->
89- <div class="top-portlet">
90+ <div class="location-portlet top-portlet">
91+ <img ...
92+ <h1>Heading</h1>
93+ <!-- Application Menu -->
94+ <ul>...
95+ </div>...
96+ <div class="portlet">
97 <p class="registered">
98 Registered on 2005-09-16
99 by <a class="sprite team" href="#">Illuminati team</a>
100@@ -100,12 +103,15 @@
101 <div id="locationbar"> ...
102 <form id="globalsearch" ...
103 <div id="lp-hierarchy" class="home">...
104- <div id="lp-apps" ...
105 <div id="maincontent" class="yui-main">
106 <div class="yui-b" dir="ltr">
107- <h2>Waffles</h2>
108- <!-- future breadcrumb rule -->
109- <div class="top-portlet">
110+ <div class="location-portlet top-portlet">
111+ <img ...
112+ <h2>Waffles</h2>
113+ <!-- Application Menu -->
114+ <ul>...
115+ </div>...
116+ <div class="portlet">
117 <h1>Heading</h1>
118 <p class="registered">
119 Registered on 2005-09-16
120@@ -149,13 +155,16 @@
121 <div id="locationbar">
122 <div id="logincontrol"><a href="...">Log in / Register</a></div>
123 <div id="lp-hierarchy" class="home">...
124- <div id="lp-apps" ...
125 </div><!--id="locationbar"-->
126 <div id="maincontent" class="yui-main">
127 <div class="yui-b" dir="ltr">
128- <h2>Waffles</h2>
129- <!-- future breadcrumb rule -->
130- <div class="top-portlet">
131+ <div class="location-portlet top-portlet">
132+ <img ...
133+ <h2>Waffles</h2>
134+ <!-- Application Menu -->
135+ <ul>...
136+ </div>...
137+ <div class="portlet">
138 <h1>Heading</h1>
139 <p class="registered">
140 Registered on 2005-09-16
141
142=== modified file 'lib/lp/app/browser/tests/testfiles/main-only.pt'
143--- lib/lp/app/browser/tests/testfiles/main-only.pt 2009-07-31 22:34:24 +0000
144+++ lib/lp/app/browser/tests/testfiles/main-only.pt 2009-08-03 07:22:41 +0000
145@@ -13,7 +13,7 @@
146
147 <body>
148 <tal:main metal:fill-slot="main">
149- <div class="top-portlet">
150+ <div class="portlet">
151 <h1>Heading</h1>
152 <p class="registered">
153 Registered on 2005-09-16
154
155=== modified file 'lib/lp/app/browser/tests/testfiles/main-side.pt'
156--- lib/lp/app/browser/tests/testfiles/main-side.pt 2009-07-30 20:38:50 +0000
157+++ lib/lp/app/browser/tests/testfiles/main-side.pt 2009-08-03 07:22:41 +0000
158@@ -14,7 +14,7 @@
159 <body>
160 <tal:heading metal:fill-slot="heading"><h1>Heading</h1></tal:heading>
161 <tal:main metal:fill-slot="main">
162- <div class="top-portlet">
163+ <div class="portlet">
164 <p class="registered">
165 Registered on 2005-09-16
166 by <a class="sprite team" href="#">Illuminati team</a>
167
168=== modified file 'lib/lp/app/browser/tests/testfiles/searchless.pt'
169--- lib/lp/app/browser/tests/testfiles/searchless.pt 2009-07-31 22:34:24 +0000
170+++ lib/lp/app/browser/tests/testfiles/searchless.pt 2009-08-03 07:22:41 +0000
171@@ -13,7 +13,7 @@
172
173 <body>
174 <tal:main metal:fill-slot="main">
175- <div class="top-portlet">
176+ <div class="portlet">
177 <h1>Heading</h1>
178 <p class="registered">
179 Registered on 2005-09-16
180
181=== modified file 'lib/lp/app/templates/base-layout-macros.pt'
182--- lib/lp/app/templates/base-layout-macros.pt 2009-07-17 17:59:07 +0000
183+++ lib/lp/app/templates/base-layout-macros.pt 2009-08-03 09:54:53 +0000
184@@ -297,4 +297,35 @@
185 </script>
186 </metal:lp-client-cache>
187
188+
189+<metal:location-tabs define-macro="location-tabs">
190+ <!-- Application Menu -->
191+ <ul
192+ tal:condition="view/macro:pagehas/applicationtabs"
193+ tal:define="facetmenu view/menu:facet">
194+ <tal:facet repeat="link facetmenu">
195+ <li
196+ tal:condition="python: link.enabled and link.selected"
197+ tal:attributes="title link/summary; class string:${link/name} active"
198+ ><a
199+ tal:condition="link/linked"
200+ tal:attributes="href link/url"
201+ tal:content="structure link/escapedtext" /></li>
202+ <li
203+ tal:condition="python: link.enabled and not link.selected"
204+ tal:attributes="title link/summary; class link/name"
205+ ><a
206+ tal:condition="link/enabled"
207+ tal:attributes="href link/url"
208+ tal:content="structure link/escapedtext"
209+ /></li>
210+ <li
211+ tal:condition="not:link/enabled"
212+ tal:attributes="class string:${link/name} disabled-tab"
213+ ><tal:disabled-link-text
214+ tal:content="link/escapedtext" /></li>
215+ </tal:facet>
216+ </ul>
217+</metal:location-tabs>
218+
219 </macros>
220
221=== modified file 'lib/lp/app/templates/base-layout.pt'
222--- lib/lp/app/templates/base-layout.pt 2009-07-31 22:34:24 +0000
223+++ lib/lp/app/templates/base-layout.pt 2009-08-03 09:54:53 +0000
224@@ -88,36 +88,6 @@
225 <input type="search" id="search-text" name="field.text" />
226 </form>
227 <tal:hierarchy replace="structure context/@@+hierarchy" />
228- <div id="lp-apps" class="clearfix"
229- tal:condition="view/macro:pagehas/applicationtabs"
230- tal:define="facetmenu view/menu:facet">
231- <!-- :-) --><tal:facet repeat="link facetmenu">
232- <span
233- tal:condition="python: link.enabled and link.selected"
234- tal:attributes="title link/summary; class string:${link/name} active"
235- ><strong
236- tal:condition="not:link/linked"
237- tal:content="structure link/escapedtext"
238- /><a
239- tal:condition="link/linked"
240- tal:attributes="href link/url"
241- tal:content="structure link/escapedtext" /></span>
242- <span
243- tal:condition="python: link.enabled and not link.selected"
244- tal:attributes="title link/summary; class link/name"
245- ><a
246- tal:condition="link/enabled"
247- tal:attributes="href link/url"
248- tal:content="structure link/escapedtext"
249- /></span>
250- <span
251- tal:condition="not:link/enabled"
252- tal:attributes="class string:${link/name} disabled-tab"
253- ><strong
254- tal:content="structure link/escapedtext" /></span>
255- <small tal:condition="not:repeat/link/end"> / </small>
256- </tal:facet>
257- </div>
258 </div><!--id="locationbar"-->
259
260 <tal:maintenance replace="structure context/@@+maintenancemessage" />
261@@ -136,15 +106,16 @@
262 lang view/lang|default_language|default;
263 xml:lang view/lang|default_language|default;
264 dir view/dir|string:ltr">
265- <tal:location condition="view/macro:pagehas/applicationtabs">
266+ <div class="location-portlet top-portlet"
267+ tal:condition="view/macro:pagehas/applicationtabs">
268+ <span tal:replace="structure context/image:logo"></span>
269 <h2
270 tal:condition="context/title|nothing"
271 tal:content="context/title"
272 metal:define-slot="heading" />
273- <tal:breadcrumbs>
274- <!-- future breadcrumb rule -->
275- </tal:breadcrumbs>
276- </tal:location>
277+ <metal:heading_nav use-macro="
278+ context/@@+base-layout-macros/location-tabs"/>
279+ </div>
280 <metal:main define-slot="main" />
281 </div><!-- yui-b -->
282 </div><!-- yui-main -->
283
284=== modified file 'lib/lp/registry/templates/distribution-search.pt'
285--- lib/lp/registry/templates/distribution-search.pt 2009-07-31 22:34:24 +0000
286+++ lib/lp/registry/templates/distribution-search.pt 2009-08-03 07:22:41 +0000
287@@ -9,7 +9,7 @@
288 <body>
289
290 <div metal:fill-slot="main">
291- <div class="top-portlet">
292+ <div class="portlet">
293 <h1>Search packages in <tal:title replace="context/title" /></h1>
294 <form name="search" method="GET">
295 <div>