Mockups for some of the Melange views, adapted from the existing GSoC web app
(but in some cases significantly altered). All of the relative links assume
/svn/trunk/mockups/ so that the pages will display properly when accessed from
http://soc.googlecode.com/svn/trunk/mockups/.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/content/css/mockups.css Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,919 @@
+body {
+ background-color: white;
+ color: black;
+ font-family: Arial, sans-serif;
+ font-size: small;
+ margin: 8px;
+ margin-top: 3px;
+}
+
+img {
+ border: 0;
+}
+
+table {
+ border-collapse: collapse;
+}
+
+th, td {
+ padding: 0;
+ vertical-align: top;
+ text-align: left;
+}
+
+a:link {
+ color: #0000cc;
+}
+
+a:active {
+ color: #cc0000;
+}
+
+a:visited {
+ color: #551a8b;
+}
+
+h1 {
+ font-size: x-large;
+ margin-top: 0px;
+}
+
+h2 {
+ font-size: large;
+}
+
+h3 {
+ font-size: medium;
+}
+
+h4 {
+ font-size: small;
+}
+
+form {
+ margin: 0;
+ padding: 0;
+}
+
+li {
+ margin-bottom: 0.25em;
+}
+
+pre, code {
+ color: #007000;
+ font-family: "bogus font here", monospace;
+ font-size: 100%;
+}
+
+pre {
+ border: 1px solid silver;
+ background-color: #f5f5f5;
+ padding: 0.5em;
+ overflow: auto;
+ margin: 2em;
+}
+
+pre ins {
+ color: #cc0000;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+.newmark {
+ color: red;
+ font-size: 80%;
+ vertical-align: top;
+}
+
+a.selected, .selected a, .selected {
+ color: black;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+a.selected:visited, .selected a:visited {
+ color: black;
+}
+
+#login {
+ text-align: right;
+}
+
+#header {
+ height: 50px;
+ margin-bottom: 11px;
+ position: relative;
+}
+
+#logo {
+ padding-right: 18px;
+ position: absolute;
+ left: 0;
+ top: -5px;
+}
+
+#logo img {
+ width: 143px;
+ height: 59px;
+}
+
+#title {
+ border-top: 1px solid #3366cc;
+ background-color: #e5ecf9;
+ font-size: large;
+ font-weight: bold;
+ margin: 0;
+ padding: 0;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ margin-top: 5px;
+}
+
+#title, #breadcrumbs {
+ margin-left: 200px;
+ padding-left: 3px;
+}
+
+#breadcrumbs {
+ margin-top: 3px;
+}
+
+#side {
+ width: 200px;
+ margin-bottom: 3em;
+ float: left;
+}
+
+#menu ul {
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+ margin-bottom: 1em;
+ font-size: 95%;
+}
+
+#menu ul ul {
+ margin-left: 10px;
+ margin-bottom: 0;
+}
+
+#menu li {
+ margin-top: 4px;
+}
+
+#menu h4 {
+ margin: 0;
+ padding: 0;
+ margin-bottom: 1em;
+}
+
+#badge {
+ clear: both;
+ margin-top: 3.5em;
+ margin-bottom: 1em;
+ height: 53px;
+ font-style: italic;
+}
+
+#search {
+ margin-top: 2em;
+}
+
+#search .header {
+ font-weight: bold;
+ font-size: 90%;
+ margin-bottom: 1px;
+}
+
+#search .button {
+ margin-top: 1px;
+}
+
+#search .input input {
+ width: 125px;
+}
+
+#body {
+ border-left: 1px dotted silver;
+ margin-left: 200px;
+ margin-right: 25px;
+ padding-left: 18px;
+ padding-bottom: 25px;
+}
+
+#footer {
+ clear: both;
+ text-align: center;
+ margin-top: 3.5em;
+ margin-bottom: 1em;
+ background-image: url("http://www.google.com/images/art.gif");
+ height: 53px;
+ background-repeat: no-repeat;
+ background-position: left center;
+}
+
+#footer .text {
+ padding-top: 20px;
+}
+
+div.download {
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+}
+
+div.download a {
+ border: 1px solid #3366cc;
+ background-color: #e5ecf9;
+ padding: 0.5em;
+ position: relative;
+ font-weight: bold;
+}
+
+.termsagree {
+ margin-top: 1em;
+ margin-bottom: 1em;
+ background-color: #e5ecf9;
+ padding: 0.5em;
+}
+
+.termsagree .button {
+ padding-top: 0.5em;
+}
+
+.termsagree .text {
+ font-weight: bold;
+}
+
+.termsagree .text .printable {
+ font-weight: normal;
+}
+
+.termsagree .text, .termsagree .button {
+ padding-left: 5px;
+}
+
+@media print {
+ .noprint {
+ display: none;
+ }
+
+ #header, #side, #login {
+ display: none;
+ }
+
+ #body {
+ margin: 0;
+ border: 0;
+ padding: 0;
+ }
+}
+
+table.programorgs {
+ text-align: left;
+ width: 100%;
+ border-color: #e5ecf9;
+ border-width: 5px;
+ border-left-style: solid;
+ border-right-style: solid;
+ border-bottom-style: solid;
+}
+
+table.programorgs td {
+ padding-left: 5px;
+}
+
+table.programorgs td.triangle {
+ width: 10px;
+}
+
+table.programorgs td.letter {
+ width: 1em;
+}
+
+table.tabletabs {
+ width: 100%;
+}
+
+table.tabletabs td {
+ text-align: center;
+}
+
+table.tabletabs td.notab {
+ border-bottom-width: 5px;
+ border-bottom-style: solid;
+ border-bottom-color: #e5ecf9;
+ border-right-style: hidden;
+}
+
+table.tabletabs td.tab {
+ border-bottom: 5px solid #e5ecf9;
+ border-top: 2px solid #e5ecf9;
+ border-right: 2px solid #e5ecf9;
+ border-left: 2px solid #e5ecf9;
+}
+
+table.tabletabs td.selectedtab {
+ border: 5px #e5ecf9;
+ border-style: solid solid hidden solid;
+ font-weight: bold;
+}
+
+table.profile {
+ text-align: left;
+ width: 100%;
+ border-width: 0px 0px 0px 0px;
+ border-spacing: 2px;
+ border-style: hidden hidden hidden hidden;
+ border-collapse: separate;
+}
+
+table.profile td {
+ padding-left: 5px;
+}
+
+table.profile td.explain {
+ padding-left: 5px;
+ font-size: 75%;
+ vertical-align: top;
+}
+
+table.profile td.submit {
+ text-align: center;
+}
+
+table.profile th {
+ padding-top: 5px;
+ text-align: left;
+ font-weight: bold;
+ font-style: italic;
+}
+
+table.user_roles {
+ text-align: left;
+ width: 100%;
+ border-width: 0px 0px 0px 0px;
+ border-spacing: 2px;
+ border-style: hidden hidden hidden hidden;
+ border-collapse: separate;
+}
+
+table.user_roles td {
+ border-width: 0px 0px 0px 0px;
+ padding: 2px 2px 2px 2px;
+ border-style: hidden hidden hidden hidden;
+ -moz-border-radius: 0px 0px 0px 0px;
+ font-family: sans-serif;
+ text-align: left;
+}
+
+table.user_roles td.program_last {
+ border-width: 0px 0px 1px 0px;
+ padding: 2px 2px 2px 2px;
+ border-style: hidden hidden solid hidden;
+ -moz-border-radius: 0px 0px 0px 0px;
+ font-family: sans-serif;
+ text-align: left;
+}
+
+table.user_roles td.org_last {
+ border-width: 0px 0px 1px 0px;
+ padding: 2px 2px 2px 2px;
+ border-style: hidden hidden dotted hidden;
+ -moz-border-radius: 0px 0px 0px 0px;
+ font-family: sans-serif;
+ text-align: left;
+}
+
+td.h1 {
+ text-align: left;
+ font-family: sans-serif;
+ font-weight: bold;
+}
+
+td.h2 {
+ text-align: center;
+ font-family: sans-serif;
+ font-style: italic;
+ font-weight: bold;
+ border-bottom-width: 1px;
+ border-style: none none solid none;
+ background: #c3d9ff;
+}
+
+td.program {
+}
+
+td.org {
+}
+
+td.role {
+}
+
+td.error {
+ color: #cc0000;
+ border-style: solid;
+ border-color: red;
+ font-size: 80%;
+}
+
+td.error_outline {
+ color: #cc0000;
+ border-style: solid;
+ border-color: red;
+}
+
+th.error {
+ color: #cc0000;
+}
+
+table.input {
+ font-size: 100%;
+ background: #c3d9ff;
+ -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px; -moz-border-radius-bottomleft: 4px;
+}
+
+table.input td {
+ background: #c3d9ff;
+ padding-left: 5px;
+}
+
+table.input td.help {
+ background: #c3d9ff;
+ padding-left: 5px;
+ font-size: 75%;
+}
+
+td.explain {
+ width: 200px;
+ /*color: #676767; */
+ vertical-align: top;
+}
+
+table.input th {
+ padding-top: 5px;
+ text-align: left;
+ font-size: 120%;
+}
+
+.important {
+ color:#cc0000;
+ font-style:italic;
+}
+
+.important a {
+ color:#cc0000;
+}
+
+.statusmsg {
+ font-style:italic;
+ font-size:x-small;
+}
+
+#panel {
+ margin-top: 4ex;
+}
+
+#panel input {
+ width: 150px;
+ margin-bottom: 4px;
+}
+
+table.mentororg {
+ width: 100%;
+}
+
+td.mentororg {
+ background:#bbcced ;
+ padding: 5px;
+}
+
+td.mentororg a {
+ color: #aa0033;
+}
+
+td.mentorapp {
+ padding-left: 20px;
+ background: #e8e8e8;
+}
+
+span.would {
+ background-color: yellow;
+}
+
+span.interested {
+ background-color: green;
+}
+
+span.indifferent {
+ background-color: blue;
+}
+
+span.disagree {
+ background-color: red;
+}
+
+table.applist {
+ background: #C3D9FF;
+ border-spacing: 0px;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-border-radius-bottomleft: 4px;
+}
+
+table.applist td, th {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+tr.listapp {
+ background: #E8EEF7;
+}
+
+tr.listrequestapp {
+ background: #c2bddd;
+}
+
+tr.listapp:hover {
+ background: #ffeac0;
+ cursor: pointer;
+}
+
+tr.listrequestapp:hover {
+ background: #ffeac0;
+ cursor: pointer;
+}
+
+tr.lastacceptlistapp {
+ text-align: center;
+}
+
+table.mentors {
+ width: 100%;
+ border-spacing: 0px;
+ background: #C3D9FF;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-border-radius-bottomleft: 4px;
+}
+
+td.orgapp {
+ padding-left: 20px;
+ background: #e8eef7;
+}
+
+th.orgapp {
+ text-align: left;
+ padding-left: 10px;
+ background: #e8eef7;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+table.apptable {
+ background: #c3d9ff;
+ -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px; -moz-border-radius-bottomleft: 4px;
+ width: 100%;
+ border-spacing: 0px;
+}
+
+table.apptable td {
+ background: none;
+}
+
+table.apptable a {
+ color: #3366cc;
+}
+
+td.newapp a {
+ color: #008000;
+}
+
+tr.appodd {
+}
+
+tr.appeven {
+ background: #e5ecf9;
+}
+
+td.time {
+ font-size: 60%;
+}
+
+pre {
+ overflow: auto;
+}
+
+h2 {
+ font-size: large;
+}
+
+div.extern_app {
+ background: #bbcced;
+ margin: 10px;
+ padding: 2px;
+}
+
+td.extern_app {
+ vertical-align:top;
+}
+
+div.extern_orginfo {
+ width: 200px;
+ border-style: solid;
+ border-color: #3399cc;
+ padding: 10px;
+}
+
+td.extern_orginfo {
+ vertical-align:top;
+}
+
+table.organizations td {
+ padding-right: 25px;
+ vertical-align: top;
+}
+
+div.sidebar a {
+ color: #3366cc;
+}
+
+div.sidebar {
+ padding: 1px;
+}
+
+div.sidebarselect {
+ padding: 3px;
+ background: #C3D9FF;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-bottomleft: 4px;
+}
+
+div.sidebarselect a {
+ color: #3366cc;
+}
+
+td.frameleft {
+ padding: 3px;
+ background: #C3D9FF;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-bottomleft: 4px;
+}
+
+td.frameright {
+ padding: 3px;
+ background: #C3D9FF;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px;
+}
+
+div.frametop {
+ padding: 3px;
+ background: #C3D9FF;
+ width: 100%;
+}
+
+div.info {
+ background: #FFcc33;
+ text-align: center;
+ width: 100%;
+}
+
+div.orgabout {
+ padding: 5px
+}
+
+div.orgaboutdescript {
+ padding: 5px
+}
+
+div.question {
+ padding: 10px;
+ font-size: 120%;
+ font-weight: bold;
+}
+
+div.section {
+ padding: 10px;
+ font-size: 130%;
+ font-weight: bold;
+ text-align: center;
+}
+
+div.sectionlist {
+ padding: 10px;
+ font-size: 120%;
+ font-weight: bold;
+}
+
+div.app_text {
+ background-color: #ffffff;
+ padding-left: 5px;
+ font-family: Fixed,monospace;
+ -moz-border-radius-topleft: 6px;
+ -moz-border-radius-topright: 6px;
+ -moz-border-radius-bottomright: 6px;
+ -moz-border-radius-bottomleft: 6px;
+}
+
+div.comment_group {
+ width: 100%;
+ margin-bottom: 5px;
+}
+
+div.comment {
+ background-color: #e8e8e8;
+ margin: 5px;
+ padding: 2px;
+}
+
+div.comment_time {
+ width: auto;
+ background: #C3D9FF;
+ padding: 2px;
+}
+
+div.comment_text {
+ margin-top: 2px;
+}
+
+h2.infosection {
+ border-bottom: 1px solid black;
+}
+
+td.navanchor {
+ text-align: right;
+ font-size: x-small;
+}
+
+.tB {
+ padding: 3px;
+ border: 1px solid #ffdea0;
+ background-color: #fff8dc;
+ margin-bottom:0.5em;
+ margin-top:1em;
+ font-weight:bold;
+}
+
+.tB td{
+ background-color:#fff8dc;
+}
+
+.tB a {
+ font-weight:normal;
+ font-size:x-small;
+}
+
+.tBRed {
+ padding: 3px;
+ border: 1px solid #cdc9c9;
+ background-color: #ffe5e5;
+ margin-bottom:0.5em;
+ margin-top:1em;
+ font-weight:bold;
+}
+
+table.tB2 {
+ border: 1px solid #ffdea0;
+ border-spacing: 0px;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-border-radius-bottomleft: 4px;
+}
+
+table.tB2 th{
+ background-color: #e5ecf9;
+ border-top: 1px solid #ffdea0;
+ border-bottom: 1px solid #ffdea0;
+ padding: 1px
+}
+
+table.tB2 td {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.tBRed td {
+ background-color:#ffe5e5;
+}
+
+.tBRed a {
+ font-weight: normal;
+ font-size: x-small;
+}
+
+.ftl {
+ font-weight: bold;
+}
+
+dt {
+ font-weight: bold;
+}
+
+dd {
+ margin:0em 0em 1em 1em;
+}
+
+ul {
+ margin-top: 0;
+}
+
+.colorswatch {
+ height: 18px;
+ width: 20px;
+}
+
+.colorhover {
+ border: 1px solid blue;
+ cursor: pointer;
+ background: #fff;
+}
+
+.colorchooser {
+ position: absolute;
+ display:none; z-index:999;
+}
+
+.mono {
+ font-family: "Courier New", Courier, monospace;
+}
+
+table.palette {
+ font-size: 5px;
+ border: 1px solid #999;
+ border-collapse: collapse;
+}
+
+table.palette td a {
+ display: block;
+ text-decoration: none;
+}
+
+table.palette td a div {
+ width: 20px;
+ height: 20px;
+}
+
+table.palette a {
+ border: 1px solid #ccc;
+ padding: 1px;
+}
+
+table.palette a:hover {
+ border: 1px solid red;
+ cursor: pointer;
+}
+
+span.selectedresponse {
+ font-weight: bold;
+ border-bottom: 1px solid #ffdea0;
+ border-right: 1px solid #ffdea0;
+ background-color: #fff8dc;
+}
+
+.popup {
+ cursor: help;
+ text-decoration: none;
+}
+
+.blog {
+ border: 10px solid #e5ecf9;
+ border-top: 1px solid #3366cc;
+}
+
+.blog h2 {
+ margin-top: 0.1em;
+ background-color: #e5ecf9;
+}
+
+.blog h2 a, .blog h2 a:visited {
+ text-decoration: none;
+ color: black;
+}
+
+.blog .entry {
+ margin-bottom: 1em;
+}
+
+.blog .title {
+ font-size: medium;
+}
+
+.blog .author {
+ color: gray;
+ margin-bottom: 0.5em;
+}
+
+.blog .snippet {
+ background-color: white;
+}
+
+.todo {
+ color: #cc0000;
+ font-size: 80%;
+}
+
Binary file mockups/content/images/GHOP.jpg has changed
Binary file mockups/content/images/GSOC.jpg has changed
Binary file mockups/content/images/logo-custom.gif has changed
Binary file mockups/content/images/opentriangle.gif has changed
Binary file mockups/content/images/triangle.gif has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/content/js/blog.js Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,76 @@
+/* Copyright 2008 the Melange authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+function BlogPreview(container) {
+ this.container_ = container;
+}
+
+BlogPreview.prototype.show = function(url, title, title_link) {
+ var feed = new google.feeds.Feed(url);
+ var preview = this;
+ feed.load(function(result) {
+ preview.render_(result, title, title_link);
+ });
+}
+
+BlogPreview.prototype.render_ = function(result, title, title_link) {
+ if (!result.feed || !result.feed.entries) return;
+ while (this.container_.firstChild) {
+ this.container_.removeChild(this.container_.firstChild);
+ }
+
+ var blog = this.createDiv_(this.container_, "blog");
+ var header = this.createElement_("h2", blog, "");
+ if (!title) {
+ title = result.feed.title;
+ }
+ if (!title_link) {
+ title_link = result.feed.link;
+ }
+ this.createLink_(header, title_link, title);
+
+ for (var i = 0; i < result.feed.entries.length; i++) {
+ var entry = result.feed.entries[i];
+ var div = this.createDiv_(blog, "entry");
+ var linkDiv = this.createDiv_(div, "title");
+ this.createLink_(linkDiv, entry.link, entry.title);
+ if (entry.author) {
+ this.createDiv_(div, "author", "Posted by " + entry.author);
+ }
+ this.createDiv_(div, "snippet", entry.contentSnippet);
+ }
+}
+
+BlogPreview.prototype.createDiv_ = function(parent, className, opt_text) {
+ return this.createElement_("div", parent, className, opt_text);
+}
+
+BlogPreview.prototype.createLink_ = function(parent, href, text) {
+ var link = this.createElement_("a", parent, "", text);
+ link.href = href;
+ return link;
+}
+
+BlogPreview.prototype.createElement_ = function(tagName, parent, className,
+ opt_text) {
+ var div = document.createElement(tagName);
+ div.className = className;
+ parent.appendChild(div);
+ if (opt_text) {
+ div.appendChild(document.createTextNode(opt_text));
+ }
+ return div;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/program/community/gsoc2009/gsoc2009comm.html Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,416 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+ <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+ <title>Google Summer of Code 2008</title>
+ </head>
+
+ <body>
+
+ <div id="login">
+ <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> |
+ <a href="/">Sign in</a>
+ </div>
+
+ <div id="header">
+ <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/GSOC.jpg" alt="Google Summer of Code"/></a>
+ <span title=" TODO: logo can change from year to year, program to program " class="popup">
+<small>*</small>
+ </span>
+ </div>
+
+ <div id="title">
+GSoC 2009 Community
+ </div>
+ <div id="breadcrumbs">
+ <span class="item">
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ </span>
+>
+ <span class="item">
+<a href="/svn/trunk/mockups/programs/home/gsoc2009/gsoc2009home.html">Google Summer of Code 2009</a>
+ </span>
+>
+ <span class="selected">
+<a href="/svn/trunk/mockups/programs/community/gsoc2009/gsoc2009comm.html">Community</a>
+ </span>
+ </div>
+ </div>
+
+ <div id="side" dir="ltr">
+ <div id="menu">
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+ </li>
+ </ul>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+ <ul>
+ <li>
+<a class="selected" href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/faqs/faqs.html">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/tos/tos.html">Terms of Service</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/faqs/">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/rules/rules.html">Contest Rules</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <div id="search">
+ <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+ <input type="hidden" name="cof" value="FORID:0" />
+ <div class="header">
+Search Google Open Source:
+ </div>
+ <input name="q" type="text" size="20" />
+ <input type="submit" name="sa" value="Search" />
+ <br/>
+ </form>
+ <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+ </script></form>
+ </div>
+
+ <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+ <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+ </span>
+ </div>
+ </div>
+
+ <div id="body">
+ <div style="line-height: 140%;">
+<p>
+This is generic HTML that can be configured via the site administration
+interface.
+</p>
+<h2>Mentoring Organizations Participating in
+ <i>Google Summer of Code</i> 2009</h2>
+
+<p class="todo">
+TODO: tabbed control for browsing organizations who participated in
+this historical program, by programming language, primary area of interest,
+alphabetical, etc. (and definitely not as ugly as this quick mockup...)
+</p>
+
+<p>
+ <table class="tabletabs">
+ <tr>
+ <td class="selectedtab">Alphabetical</td>
+ <td class="tab">Area of Interest</td>
+ <td class="tab">Programming Language</td>
+ <td class="tab">License</td>
+ <td class="notab"></td>
+ </tr>
+ </table>
+ <table class="programorgs" style="position: relative">
+ <tr>
+ <td class="triangle">
+<img src="/svn/trunk/mockups/content/images/opentriangle.gif" alt="A open"/>
+ </td>
+ <td class="letter">
+A
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td>
+ <div>
+<a rel=nofollow href="/org/about/gsoc2009/abisource/abisource.html">AbiSource</a>
+ </div>
+ <div>
+<a rel=nofollow href="/org/about/gsoc2009/adium/">Adium</a>
+ </div>
+ <div>
+<a rel=nofollow href="/org/about/gsoc2009/asf/">The Apache Software Foundation</a>
+ </div>
+ <div>
+<a rel=nofollow href="/org/about/gsoc2009/argouml/">ArgoUML</a>
+ </div>
+ <div>
+<a rel=nofollow href="/org/about/gsoc2009/atheme/">atheme.org</a>
+ </div>
+ <div>
+<a rel=nofollow href="/org/about/gsoc2009/audacity/">Audacity</a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="B closed"/>
+ </td>
+ <td>
+B
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+C
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+D
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+E
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+F
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+G
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+H
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+I
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+J
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+K
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+L
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+M
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+N
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+O
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+P
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+Q
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+R
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+S
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+T
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+U
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+V
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+W
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+X
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+Y
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>
+<img src="/svn/trunk/mockups/content/images/triangle.gif" alt="closed"/>
+ </td>
+ <td>
+Z
+ </td>
+ <td></td>
+ </tr>
+ </table>
+</p>
+ </div>
+
+ <div id="footer" dir="ltr">
+ <div class="text">
+©2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+ </div>
+ </div>
+ </div>
+
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </script>
+
+ <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+ </script>
+
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/program/home/ghop2008/ghop2008home.html Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+ <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+ <title>Google Highly Open Participation 2008</title>
+
+
+ <script type="text/javascript" src="http://www.google.com/jsapi"></script>
+ <script type="text/javascript" src="/svn/trunk/mockups/content/js/blog.js"></script>
+ <script type="text/javascript">
+
+ google.load("feeds", "1");
+
+ function initialize() {
+ var blog = new BlogPreview(document.getElementById("blog"));
+ blog.show("http://google-opensource.blogspot.com/feeds/posts/default/-/ghop", "Google Highly Open Participation Blog");
+ }
+ google.setOnLoadCallback(initialize);
+
+ </script>
+
+ </head>
+
+ <body>
+
+ <div id="login">
+ <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> |
+ <a href="/">Sign out</a>
+ </div>
+
+ <div id="header">
+ <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/GHOP.jpg" alt="Google Highly Open Participation"/></a>
+ <span title=" TODO: logo updated in program sponsor interface " class="popup">
+<small>*</small>
+ </span>
+ </div>
+
+ <div id="title">
+Google Highly Open Participation 2008
+ </div>
+ <div id="breadcrumbs">
+ <span class="item">
+<a href="/svn/trunk/mockups/">Google Open Source Programs</a>
+ </span>
+>
+ <span class="selected">
+<a href="/svn/trunk/mockups/programs/home/ghop2008/ghop2008home.html">Google Highly Open Participation 2008</a>
+ </span>
+ </div>
+ </div>
+
+ <div id="side" dir="ltr">
+ <div id="menu">
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+ </li>
+ </ul>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/faqs/gsoc2009faqs.html">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/tos/gsoc2009tos.html">Terms of Service</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+<a class="selected" href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/faqs/">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/rules/rules.html">Contest Rules</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <div id="search">
+ <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+ <input type="hidden" name="cof" value="FORID:0" />
+ <div class="header">
+Search Google Open Source:
+ </div>
+ <input name="q" type="text" size="20" />
+ <input type="submit" name="sa" value="Search" />
+ <br/>
+ </form>
+ <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+ </script></form>
+ </div>
+
+ <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+ <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+ </span>
+ </div>
+ </div>
+
+ <div id="body">
+ <div style="line-height: 140%;">
+<p>
+This is generic HTML that can be configured via the site administration
+interface.
+</p>
+<p>
+For a list of organizations currently participating in the Google Highly Open
+Participation Contest for 2008, please visit the
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a> page.
+</p>
+ <div id="blog"></div>
+<p class="todo">
+The site administration interface will provide a mechanism to select a feed to
+be displayed here.
+</p>
+ </div>
+
+ <div id="footer" dir="ltr">
+ <div class="text">
+©2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+ </div>
+ </div>
+ </div>
+
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </script>
+
+ <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+ </script>
+
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/program/home/gsoc2009/gsoc2009home.html Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+ <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+ <title>Google Summer of Code 2009</title>
+
+
+ <script type="text/javascript" src="http://www.google.com/jsapi"></script>
+ <script type="text/javascript" src="/svn/trunk/mockups/content/js/blog.js"></script>
+ <script type="text/javascript">
+
+ google.load("feeds", "1");
+
+ function initialize() {
+ var blog = new BlogPreview(document.getElementById("blog"));
+ blog.show("http://google-opensource.blogspot.com/feeds/posts/default/-/gsoc", "Google Summer of Code Blog");
+ }
+ google.setOnLoadCallback(initialize);
+
+ </script>
+
+ </head>
+
+ <body>
+
+ <div id="login">
+ <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> |
+ <a href="/">Sign in</a>
+ </div>
+
+ <div id="header">
+ <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/GSOC.jpg" alt="Google Summer of Code"/></a>
+ <span title=" TODO: logo updated in program sponsor interface " class="popup">
+<small>*</small>
+ </span>
+ </div>
+
+ <div id="title">
+Google Summer of Code 2009
+ </div>
+ <div id="breadcrumbs">
+ <span class="item">
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ </span>
+>
+ <span class="selected">
+<a href="/svn/trunk/mockups/programs/home/gsoc2009/gsoc2009home.html">Google Summer of Code 2009</a>
+ </span>
+ </div>
+ </div>
+
+ <div id="side" dir="ltr">
+ <div id="menu">
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+ </li>
+ </ul>
+ <ul>
+ <li>
+<a class="selected" href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/faqs/faqs.html">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/gsoc2009/tos/tos.html">Terms of Service</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/faqs/">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/ghop2008/rules/rules.html">Contest Rules</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <div id="search">
+ <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+ <input type="hidden" name="cof" value="FORID:0" />
+ <div class="header">
+Search Google Open Source:
+ </div>
+ <input name="q" type="text" size="20" />
+ <input type="submit" name="sa" value="Search" />
+ <br/>
+ </form>
+ <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+ </script></form>
+ </div>
+
+ <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+ <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+ </span>
+ </div>
+ </div>
+
+ <div id="body">
+ <div style="line-height: 140%;">
+<p>
+This is generic HTML that can be configured via the site administration
+interface.
+<p>
+For a list of organizations currently participating in the Google Summer of
+Code for 2009, please visit the
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a> page.
+</p>
+</p>
+ <div id="blog"></div>
+<p class="todo">
+The site administration interface will provide a mechanism to select a feed to
+be displayed here.
+</p>
+ </div>
+
+ <div id="footer" dir="ltr">
+ <div class="text">
+©2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+ </div>
+ </div>
+ </div>
+
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </script>
+
+ <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+ </script>
+
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/sitehome.html Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+ <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+ <title>Google Open Source Programs</title>
+
+
+ <script type="text/javascript" src="http://www.google.com/jsapi"></script>
+ <script type="text/javascript" src="/svn/trunk/mockups/content/js/blog.js"></script>
+ <script type="text/javascript">
+
+ google.load("feeds", "1");
+
+ function initialize() {
+ var blog = new BlogPreview(document.getElementById("blog"));
+ blog.show("http://google-opensource.blogspot.com/feeds/posts/default");
+ }
+ google.setOnLoadCallback(initialize);
+
+ </script>
+
+ </head>
+
+ <body>
+
+ <div id="login">
+ <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> |
+ <a href="/">Sign in</a>
+ </div>
+
+ <div id="header">
+ <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/logo-custom.gif" alt="Google Open Source Programs"/></a>
+ <span title=" TODO: logo updated in site sponsor interface " class="popup">
+<small>*</small>
+ </span>
+ </div>
+
+ <div id="title">
+Google Open Source Programs
+ </div>
+ </div>
+
+ <div id="side" dir="ltr">
+ <div id="menu">
+ <ul>
+ <li>
+<a class="selected" href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign In)</a>
+ <span title=" No Profile or Roles sidebar menu items until user signs in " class="popup">
+<small>*</small>
+ </span>
+
+ </li>
+ </ul>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/gsoc2009/gsoc2009faq.html">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/tos/gsoc2009/gsoc2009tos.html">Terms of Service</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/ghop2008/">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/rules/ghop2008/ghop2008rules.html">Contest Rules</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <div id="search">
+ <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+ <input type="hidden" name="cof" value="FORID:0" />
+ <div class="header">
+Search Google Open Source:
+ </div>
+ <input name="q" type="text" size="20" />
+ <input type="submit" name="sa" value="Search" />
+ <br/>
+ </form>
+ <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+ </script></form>
+ </div>
+
+ <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+ <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+ </span>
+ </div>
+ </div>
+
+ <div id="body">
+ <div style="line-height: 140%;">
+<p class="todo">
+This is generic HTML that can be configured via the site administration
+interface. It is unclear if the site admin can be trusted and allowed to enter
+any arbitrary HTML (more flexible and powerful) or if only a whitelist of "safe"
+HTML tags should be permitted (to prevent XSS, etc.).
+(<a href="http://www.feedparser.org/"><code>feedparser</code></a> is useful for
+this and is written in Python, should whitelisting be necessary.)
+</p>
+<p>
+Welcome to Google Open Source Programs, the home of
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+and the
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a> contest.
+</p>
+<p class="todo">
+The site administration interface will provide a mechanism to select a feed to
+be displayed here.
+</p>
+ <div id="blog"></div>
+ </div>
+
+ <div id="footer" dir="ltr">
+ <div class="text">
+©2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+ </div>
+ </div>
+ </div>
+
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </script>
+
+ <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+ </script>
+
+ </body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mockups/user/profile/linkname/profile.html Mon Jul 28 20:42:10 2008 +0000
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+ <head>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+ <link rel="stylesheet" href="/svn/trunk/mockups/content/css/mockups.css" type="text/css"/>
+ <title>User Profile</title>
+ </head>
+
+ <body>
+
+ <div id="login">
+ <b>logged.in.user@gmail.com</b>
+ <span title=" Google Account displayed once user signs in " class="popup">
+<small>*</small>
+ </span>
+ | <a href="http://code.google.com/p/soc/issues/list">Report bugs</a> |
+ <a href="/">Sign out</a>
+ </div>
+
+ <div id="header">
+ <div id="logo">
+<a href="/"><img src="/svn/trunk/mockups/content/images/logo-custom.gif" alt="Google Open Source Programs"/></a>
+ <span title=" TODO: logo updated in site sponsor interface " class="popup">
+<small>*</small>
+ </span>
+ </div>
+
+ <div id="title">
+User Profile for <i>Givenname Surname</i>
+ <span title=" Display name not shown until entered and saved the first time " class="popup">
+<small>*</small>
+ </span>
+<a href="mailto:logged.in.user@gmail.com"><logged.in.user@gmail.com></a>
+ </div>
+ <div id="breadcrumbs">
+ <span class="item">
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ </span>
+>
+ <span class="item">
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign in)</a>
+ </span>
+>
+ <span class="item">
+<a class="selected" href="/svn/trunk/mockups/user/profile/linkname/profile.html">Profile</a>
+ </span>
+ </div>
+ </div>
+
+ <div id="side" dir="ltr">
+ <div id="menu">
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/sitehome.html">Google Open Source Programs</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/user/profile/linkname/profile.html">User (Sign out)</a>
+ <span title=" changes to (Sign out) after user signs in " class="popup">
+<small>*</small>
+ </span>
+ <ul>
+ <li>
+<a class="selected" href="/svn/trunk/mockups/user/profile/linkname/profile.html">Profile</a>
+ <span title=" Profile sidebar menu item present after user signs in " class="popup">
+<small>*</small>
+ </span>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/user/roles/linkname/roles.html">Roles</a>
+ <span title=" Roles sidebar menu item present after user signs in " class="popup">
+<small>*</small>
+ </span>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/home/gsoc2009/gsoc2009home.html">Google Summer of Code</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/gsoc2009/gsoc2009comm.html">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/gsoc2009/gsoc2009faqs.html">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/tos/gsoc2009/gsoc2009tos.html">Terms of Service</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/home/ghop2008/ghop2008home.html">Google Highly Open Participation</a>
+ <ul>
+ <li>
+<a href="/svn/trunk/mockups/program/community/ghop2008/">Community</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/faqs/ghop2008/">Program FAQs</a>
+ </li>
+ <li>
+<a href="/svn/trunk/mockups/program/docs/rules/ghop2008/ghop2008rules.html">Contest Rules</a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <div id="search">
+ <form id="searchbox_015986126177484454297:pfmwlvdl42y" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="015986126177484454297:pfmwlvdl42y" />
+ <input type="hidden" name="cof" value="FORID:0" />
+ <div class="header">
+Search Google Open Source:
+ </div>
+ <input name="q" type="text" size="20" />
+ <input type="submit" name="sa" value="Search" />
+ <br/>
+ </form>
+ <script type="text/javascript" src="http://google.com/coop/cse/brand?form=searchbox_015986126177484454297:pfmwlvdl42y">
+ </script></form>
+ </div>
+
+ <div id="badge">
+<a href="http://code.google.com/p/soc/" target="_blank">Powered by Melange</a>
+ <span title=" TODO: need a Melange logo " class="popup">
+<small>*</small>
+ </span>
+ </div>
+ </div>
+
+ <div id="body">
+ <div style="line-height: 140%;">
+<p class="todo">
+This is the landing page after a user signs in using the
+<a href="http://code.google.com/appengine/docs/users/loginurls.html">Google
+Account login facility provided by Google App Engine</a>.
+</p>
+
+Please use this form to set basic site-wide settings for your participation
+in Google Open Source Programs.
+ </div>
+<br>
+ <div style="line-height: 140%;">
+ <form method="post" action="profile_save.html" name="user_profile">
+ <table class="profile">
+ <tbody>
+ <tr>
+ <th>
+Display name:
+ </th>
+ <td>
+<input size="40" name="displayname" value="Givenname Surname">
+ </td>
+ <td class="explain">
+Human-readable name displayed throughout the site for this user. UTF-8
+characters are permitted.
+ </td>
+ </tr>
+ <tr>
+ <th class="error">
+Linkname:
+ </th>
+ <td class="error_outline">
+<input size="40" name="linkname" value="logged_dot_in_dot_user_at_gmail_dot_com">
+<br>
+Please select another linkname: <i>(list of potential error messages)</i>
+ <ul>
+ <li>
+<i>logged_dot_in_dot_user_at_gmail_dot_com</i> is already in use.
+ </li>
+ <li>
+<i>logged_dot_in_dot_user_at_gmail_dot_com</i> is too long.
+ </li>
+ <li>
+<i>logged_dot_in_dot_user_at_gmail_dot_com</i> contains invalid characters.
+ </li>
+ <li>
+Etc.
+ </li>
+ </ul>
+ </td>
+ <td class="explain">
+Short nickname, used in site URLs referring to this user's content. This
+linkname is must only contain alphanumeric <code>[A-Za-z0-9]</code>
+characters or the underscore <code>_</code> (no spaces or other punctuation).
+Also, it must be unique. If some other user is already using a given linkname,
+it will be unavailable and a different linkname will need to be selected.
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+<b><i>TODO</i></b>: site-wide privacy settings go here...
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <input type="checkbox" name="agreetoterms" value="agree" checked>
+ I have read and agree to the <i>Google Open Source Programs</i>
+ <a href="/svn/trunk/mockups/site/docs/tos/tos.html">Terms of Service</a>.
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="submit">
+<br>
+<input type="submit" name="save_changes" value="Save Changes" />
+<br>
+ </td>
+ <td></td>
+ </tr>
+ </tbody>
+ </table>
+ </form>
+ </div>
+ </div>
+
+ <div id="footer" dir="ltr">
+ <div class="text">
+©2008 Google -
+<a href="http://www.google.com/">Google Home</a> -
+<a href="http://www.google.com/privacy.html">Privacy Policy</a>
+ </div>
+ </div>
+
+ <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+ </script>
+
+ <script type="text/javascript">
+_uacct="UA-4291635-1"; // code.google.com site-wide tracking
+_uanchor=1;
+_uff=0;
+urchinTracker();
+ </script>
+
+ </body>
+</html>