[zopeorg-checkins] CVS: Products/ZopeOrg-NV/skins/nzo - arrowDown.gif:1.1 arrowUp.gif:1.1 getObjSize.py:1.1 isExpired.py:1.1 nzoBasic.css.dtml:1.1 nzoStructure.css.dtml:1.1 nzoWidgets.css.dtml:1.1 stylesheet_properties.props:1.1 toPortalTime.py:1.1 folder_contents.html:1.2 main_template.html:1.9

Sidnei da Silva sidnei at x3ng.com.br
Mon Jun 10 21:32:48 EDT 2002


Update of /cvs-zopeorg/Products/ZopeOrg-NV/skins/nzo
In directory cvs.zope.org:/tmp/cvs-serv20814/skins/nzo

Modified Files:
	folder_contents.html main_template.html 
Added Files:
	arrowDown.gif arrowUp.gif getObjSize.py isExpired.py 
	nzoBasic.css.dtml nzoStructure.css.dtml nzoWidgets.css.dtml 
	stylesheet_properties.props toPortalTime.py 
Log Message:


=== Added File Products/ZopeOrg-NV/skins/nzo/arrowDown.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/arrowUp.gif ===
  <Binary-ish file>

=== Added File Products/ZopeOrg-NV/skins/nzo/getObjSize.py ===
## Script (Python) "getObjSize"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=obj
##title=
##
size=''

try:
    if hasattr(obj, 'get_size'): 
        size=obj.get_size()

    if size:
        if size<1024:
            return '1 K'
        elif size>1048576:
            return '%.02f M' % float(size/1048576.0)
        else:
            return str(int(size)/1024)+' K'

except:
     return size

return size


=== Added File Products/ZopeOrg-NV/skins/nzo/isExpired.py ===
## Script (Python) "isExpired"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=obj
##title=
##
#only if an expirationDate is explicitly Past will this return true

from DateTime import DateTime

try:
    if DateTime(obj.ExpirationDate()).isPast():
        return 1
except: pass

return 0


=== Added File Products/ZopeOrg-NV/skins/nzo/nzoBasic.css.dtml ===
<dtml-let last_modified="_.DateTime()-14"
          expires="_.DateTime()+7" >
<dtml-call "REQUEST.RESPONSE.setHeader( 'content/type', 'text/css' )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Last-Modified', last_modified.strftime('%a, %d %b %Y %H:%M:%S') )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Cache-Control', 'max-age=36000, must-revalidate' )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Expires', expires.strftime('%a, %d %b %Y %H:%M:%S') )" >
</dtml-let>

<dtml-with stylesheet_properties>


/*
 * Plone Basic CSS v1
 *
 * Zope CMF style sheet by Alexander Limi (http://limi.net)
 * 
 * Special thanks to Geir Bækholt (http://elvix.com) and 
 * Stian Søiland (http://stain.portveien.to) for invaluable 
 * input and code examples. You guys rock! :)
 *
 * I've tried to comment everything as concisely as possible. If there's anything
 * that you find confusing or just plain wrong, contact me and I'll fix it before the
 * next release.
 *
 */
 


body {
    font: &dtml-mainFont;;
    background: &dtml-mainBackground;;
    color: &dtml-mainFontColor;;
    margin: 0;
    padding: 0;

    scrollbar-base-color: &dtml-mainTabBackground;;
    scrollbar-highlight-color: &dtml-mainTabBackground;;
    scrollbar-track-color: &dtml-evenRowBackground;;
    scrollbar-darkshadow-color: &dtml-evenRowBackground;;
    scrollbar-3dlight-color: &dtml-mainTabBorderColorSelected;;
    scrollbar-shadow-color: &dtml-mainTabBorderColorSelected;;
    scrollbar-arrow-color: &dtml-mainTabFontColorSelected;;
}


a {
	text-decoration: none;
    color: &dtml-mainLinkColor;;
    background-color: transparent;
}

table {
    font: &dtml-mainFont;;
}


img {
/* turn off image borders. */
    border: none;
}

p {
/* Default paragraph style*/
    font: &dtml-contentFont;;
    margin: 1em 0em;
    text-align: justify;
}

p a {
    text-decoration: underline;
}

p a:visited {
	color: &dtml-contentLinkVisitedColor;;
    background-color: transparent;
}

p a:active {
	color: &dtml-contentLinkActiveColor;;
    background-color: transparent;
}

p img {
    border: &dtml-contentImageBorder;;
    margin: 1em;
}


hr {
    clear: both;
    height: 1px;
    color: &dtml-mainTabBorderColorSelected;;
    background-color: transparent;
}


h1, h2, h3, h4, h5, h6 {	/* Style for the headlines */
    color: &dtml-headingFontColor;;
    font: &dtml-headingFont;;
    margin-top: 0;
}

h1 {
    font-size: &dtml-headingSize1;;
}

h2 {
    font-size: &dtml-headingSize2;;
}

h3 {
    font-size: &dtml-headingSize3;;
}

h4 {
    font-size: &dtml-headingSize4;;
}

h5 {
    font-size: &dtml-headingSize5;;
}

h6 {
    font-size: &dtml-headingSize6;;
}

ul { 
    list-style-image: url("bullet.gif"); 
    margin-top: 1em;
    margin-bottom: 1em;
    margin-left: 2em;
    padding:0;
}

/* we advise you to use the div.group and span.legend elements instead of these, 
    as the only browser showing legends correctly is IE. They are just included here 
    for completeness */
fieldset {
    border: &dtml-groupBorder;;
    margin: 2em 0em 1em 0em;
    padding: 1em 0em;
}

legend {
    background: &dtml-mainBackground;;
    padding: 0.5em;
}


form {
    border: none;
}

textarea {
/* Small cosmetic hack which makes textarea gadgets look nicer.*/
    font: &dtml-inputFont;;
    border: &dtml-inputBorder;;  
    width: 100%;
    color: &dtml-mainFontColor;;
    background-color: white;
}

input {
/* Small cosmetic fix which makes input gadgets look nicer. */
    font: &dtml-inputFont;;
    border: &dtml-inputBorder;;  
    color: &dtml-mainFontColor;;
    background-color: white;
    margin: 0em 0em 1em 0em;
}

select {
    font: &dtml-inputFont;;
    border: &dtml-inputBorder;;  
    margin: 0em 0em 1em 0em;
}

abbr, acronym, .explain {
/* Help classes */
    border-bottom: 1px dotted &dtml-mainFontColor;;
    color: &dtml-mainFontColor;;
    background-color: transparent;
    cursor: help;
}



code {
    font-size: 120%;
    color: &dtml-mainFontColor;;
    background-color: &dtml-preBackground;;
}

pre {
    font-size: 120%;
    padding: 1em;
    border: &dtml-preBorder;;
    color: &dtml-mainFontColor;;
    background-color: &dtml-preBackground;;
}

.netscape4 {
/* This hides elements necessary for getting Netscape 4.x to look better. Mostly strategically placed hr tags and &middot;'s */
    display: none;
}


</dtml-with>


=== Added File Products/ZopeOrg-NV/skins/nzo/nzoStructure.css.dtml ===
<dtml-let last_modified="_.DateTime()-14"
          expires="_.DateTime()+7" >
<dtml-call "REQUEST.RESPONSE.setHeader( 'content/type', 'text/css' )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Last-Modified', last_modified.strftime('%a, %d %b %Y %H:%M:%S') )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Cache-Control', 'max-age=36000, must-revalidate' )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Expires', expires.strftime('%a, %d %b %Y %H:%M:%S') )" >
</dtml-let>

<dtml-with stylesheet_properties>

/*
 * Plone Structure CSS v1
 *
 * The Structure CSS contains elements that make up the structure of Plone,
 * generally stuff that is used once on a page - general layout, opposed to the Widgets, that are
 * used several times in a page.
 *
 * Zope CMF style sheet by Alexander Limi (http://limi.net)
 * 
 * Special thanks to Geir Bækholt (http://elvix.com) and 
 * Stian Søiland (http://stain.portveien.to) for invaluable 
 * input and code examples. You guys rock! :)
 *
 * I've tried to comment everything as concisely as possible. If there's anything
 * that you find confusing or just plain wrong, contact me and I'll fix it before the
 * next release.
 *
 * KNOWN BUG: The selected tab cannot have image backdrop. FIXME
 *
 */
 
div.top {
    /* Top section */
    background: &dtml-topBackground;;
    margin: &dtml-topMargin;;
    padding: &dtml-topPadding;;
    width: 100%;
}

.logo {
    /* Logo properties */
    margin: &dtml-logoMargin;;
    padding: &dtml-logoPadding;;
}

div.searchBox {
    /*searchbox style and positioning */
    background-color: transparent;
    color: &dtml-searchFontColor;;
    float: right;
    margin: &dtml-searchMargin;;
    padding: &dtml-searchPadding;;
    text-align: right;
    text-transform: &dtml-textTransform;;
}

input.searchGadget {
}

div.tabs {
    /* Navigational Plone Tabs(tm), implemented by customizing the a tag - they are surprisingly elegant. The power of CSS runs strong in these :) */
    background: &dtml-mainTabBackdrop;;
    border-collapse: collapse;
    border-bottom-color: &dtml-mainTabBorderColorSelected;;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    padding: 0.5em 0em 0em 2em;
    white-space: nowrap;
}

div.tabs a {
    /* The normal, unselected tabs. They are all links */
    background: &dtml-mainTabBackgroundNotSelected;;
    border-color: &dtml-mainTabBorderColor;;
    border-width: 1px; 
    border-style: solid solid none solid;
    color: &dtml-mainTabFontColor;;
    font-weight: &dtml-mainTabFontWeight;;
    margin-right: 0.5em;
    padding: 0em 2em;
    text-transform: &dtml-textTransform;;
}

div.tabs a.selected {
    /* The selected tab. There's only one of this */
    background: &dtml-mainTabBackground;;
    border: 1px solid &dtml-mainTabBorderColorSelected;;
    border-bottom: &dtml-mainTabBackground; 1px solid;
    color: &dtml-mainTabFontColorSelected;;
    font-weight: &dtml-mainTabFontWeight;;
}

div.tabs a:hover {
    background: &dtml-mainTabBackground;;
    border-color: &dtml-mainTabBorderColorSelected;;
    border-bottom-color: &dtml-mainTabBackground;;
    color: &dtml-mainTabFontColorSelected;;
}

div.personalBar {
    /* Bar with personalized menu (user preferences, favorites etc) */
    background: &dtml-mainTabBackground;;
    border-bottom-color: &dtml-mainTabBorderColorSelected;;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    color: &dtml-mainFontColor;;
    padding-right: 3em;
    text-align: right;
    text-transform: &dtml-textTransform;;
}

div.personalBar a{
    background-color: transparent;
	color: &dtml-mainTabFontColorSelected;;
    font-weight: &dtml-mainTabFontWeight;;
}

div.pathBar {
    /* The path bar, including breadcrumbs and add to favorites */
    border-bottom-color: &dtml-mainTabBorderColorSelected;;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    padding-left: 2em;
    padding-right: 2em;
    text-transform: &dtml-textTransform;;
}

.breadcrumbs {
    float: left;
    text-transform: &dtml-textTransform;;
}

.addFavorite {
    vertical-align: bottom;
}

.clock {
    /* The portal time indicator */
    float: right;
    text-transform: &dtml-textTransform;;
    white-space: nowrap;
}

table.columns {
	width: 100%;
}

table.columns td.left {
    vertical-align: top;
    width: &dtml-leftColumnWidth;;
    padding: 2em 1em 1em 2em;
}

table.columns td.main {
    vertical-align: top;
    padding: 2em 2em 1em 1em;
    margin: 0;
}

table.columns td.right {
    vertical-align: top;
    width: &dtml-rightColumnWidth;;
    padding: 2em 2em 1em 0em;
}

div.contentTabs {
    /* Local Plone Tabs(tm), used in the content display */
    background: &dtml-contentTabBackdrop;;
    border-collapse: collapse;
    border-bottom: &dtml-contentTabBorder;;
    padding-left: 1em;
    white-space: nowrap;
}

div.contentTabs a {
    /* The normal, unselected tabs. They are all links */
    background: &dtml-contentTabBackgroundNotSelected;;
    border: &dtml-contentTabBorder;;
    color: &dtml-contentTabFontColor;;
    font-weight: &dtml-contentTabFontWeight;;
    margin-right: 0.5em;
    padding: 0em 2em;
    text-transform: &dtml-textTransform;;
}

div.contentTabs a.selected {
    /* The selected tab. There's only one of this */
    background: &dtml-contentTabBackground;;
    border-bottom: &dtml-contentTabBackground; 1px solid;
    color: &dtml-contentTabFontColorSelected;;
    font-weight: &dtml-contentTabFontWeight;;
}

div.contentTabs a:hover {
    background-color: &dtml-contentTabBackground;;
    color: &dtml-contentTabFontColor;;
}

div.contentBar {
    background: &dtml-contentTabBackground;;
    border-left: &dtml-contentTabBorder;;
    border-right: &dtml-contentTabBorder;;
    color: &dtml-contentTabFontColor;;
    text-align: right;
    text-transform: &dtml-textTransform;;
}

div.document {
    /* The document class encloses the object content when editing is not permitted */
    background: &dtml-contentBackground;;
    padding: 0;
    margin: 0em 0em 2em 0em;
}

div.editableDocument {
    /* The class surrounding content when editing is permitted */
    background: &dtml-contentBackground;;
    border: &dtml-contentTabBorder;;
    margin: 0em 0em 2em 0em;
    padding: 2em;
}

div.message {
    /* The portal messages for cut/paste operations etc */
    background: &dtml-messageBackground;;
    border: &dtml-messageBorder;;
    color: &dtml-mainFontColor;;
    font: &dtml-messageFont;;
    margin: 0em 0em 1em 0em;
    padding: 0.5em 1em;
    vertical-align: middle;
    
}

div.message a {
	color: &dtml-mainFontColor;;
    text-decoration: underline;
}


.description {
    /* The summary text describing the document */
    font: &dtml-descriptionFont;;
    display: block;
    margin-bottom: 1em;
}

.footer {
    background: &dtml-footerBackground;;
    border-top: &dtml-footerBorder;;
    border-bottom: &dtml-footerBorder;;
    color: &dtml-mainFontColor;;
    clear: both;
    float: none;
    margin: 2em 0em;
    padding: 0.5em 0em 1em 0em;
    text-align: center;
}


</dtml-with>









=== Added File Products/ZopeOrg-NV/skins/nzo/nzoWidgets.css.dtml ===
<dtml-let last_modified="_.DateTime()-14"
          expires="_.DateTime()+7" >
<dtml-call "REQUEST.RESPONSE.setHeader( 'content/type', 'text/css' )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Last-Modified', last_modified.strftime('%a, %d %b %Y %H:%M:%S') )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Cache-Control', 'max-age=36000, must-revalidate' )">
<dtml-call "REQUEST.RESPONSE.setHeader( 'Expires', expires.strftime('%a, %d %b %Y %H:%M:%S') )" >
</dtml-let>

<dtml-with stylesheet_properties>

/*
 * Plone Widgets CSS v1
 *
 * Zope CMF style sheet by Alexander Limi (http://limi.net)
 * 
 * Special thanks to Geir Bækholt (http://elvix.com) and 
 * Stian Søiland (http://stain.portveien.to) for invaluable 
 * input and code examples. You guys rock! :)
 *
 * I've tried to comment everything as concisely as possible. If there's anything
 * that you find confusing or just plain wrong, contact me and I'll fix it before the
 * next release.
 *
 * TODO: table.listing, 
 *       table.box
 *
 */

input.standalone {
    background: &dtml-standaloneButtonBackground;;
    color: &dtml-standaloneButtonFontColor;;
    cursor: pointer;
    font-weight: &dtml-buttonWeight;;
    padding: &dtml-standaloneButtonPadding;;
    text-transform: &dtml-textTransform;;
}

input.context {
    background: &dtml-contextButtonBackground;;
    color: &dtml-contextButtonFontColor;;
    cursor: pointer;
    font-weight: &dtml-buttonWeight;;
    padding: &dtml-contextButtonPadding;;
    text-transform: &dtml-textTransform;;
}

input.noborder {
    /* radiobuttons and checkmarks, different behaviour in Moz and IE. 
       Border necessary in Moz, not in IE */
    border: &dtml-noBorder;;
    margin: 0;
    background-color: transparent;
}

div.row {
    clear: both;
    min-height: 4em;
    margin-top: 1em;
}

.group {
    border: &dtml-groupBorder;;
    margin: 2em 0em 1em 0em;
    width: 94%;
    padding: 1em 0em;
}
.legend {
    position : relative;
    top: -1.8em;
    left: 1em;
    background: &dtml-mainBackground;;
    padding: 0.5em;
}

span.label {
    float: left;
    font-weight: bold;
    text-align: right;
    width: 15%;
    position : relative;
    left: -1em;
}

span.field {
    float: left;
    text-align: left;
    width: 55%;
}

span.info {
    background-color: transparent;
    float: right;
    text-align: left;
    width: 28%;
}

.error {
    /* Class for error indication in forms */
    background: &dtml-messageBackground;;
    border: &dtml-messageBorder;;
    margin: 1em;
}

.required {
    /* Used in addition to class "label" on required elements */
    background: &dtml-requiredField;;
}

span.card {
    background: &dtml-mainTabBackground;;
    border-color: &dtml-mainTabBorderColor;;
    border-width: 1px;
    border-style: solid;
    float: left;
    margin: 1em;
    padding: 1em;
    text-align: center;
    width: 15%;
}

table.listing {
    /* The default table for document listings. Contains name, document types, modification times etc in a file-browser-like fashion */
    border-collapse: collapse;
    border-left: &dtml-listingBorder;;
    border-bottom: &dtml-listingBorder;;
    margin: 1em 0em 1em 0em;
}

table.listing th {
    background: &dtml-listingHeaderBackground;;
    border-top: &dtml-listingBorder;;
    border-bottom: &dtml-listingBorder;;
    border-right: &dtml-listingBorder;;
    color: &dtml-listingHeaderFontColor;;
    font-weight: normal;
    padding: 0em 1em 0em 1em;
    text-transform: &dtml-textTransform;;
}

table.listing tr.odd {
    /*every second line should be shaded */
    background: &dtml-listingOddBackground;;
}

table.listing tr.even {
    background: &dtml-listingEvenBackground;;
}

table.listing td {
    border-right: &dtml-listingBorder;;
    padding: 0em 1em;
}

table.listing a:hover {
    text-decoration: &dtml-listingLinkHover;;
}

table.listing img{
	vertical-align: middle;
}

table.box {
    /* The Plone Box(tm) (Navigation, Related etc) */
    background: transparent;
    border-collapse: collapse;
    border-bottom: &dtml-boxBorder;;
    border-left: &dtml-boxBorder;;
    margin: 0;
    margin-bottom: 2em;
}

table.box th {
    background: &dtml-boxHeaderBackground;;
    border-top: &dtml-boxBorder;;
    border-bottom: &dtml-boxBorder;;
    border-right: &dtml-boxBorder;;
    color: &dtml-boxHeaderFontColor;;
    font-weight: normal;
    padding: 0em 1em;
    text-align: left;
    text-transform: &dtml-textTransform;;
}

table.box th.empty {
    background-color: transparent;
    border: none;
    border-bottom: &dtml-boxBorder;;
}

table.box tr.odd {
    /*every second line should be shaded */
    background: &dtml-boxOddBackground;;
}

table.box tr.even {
    background-color: &dtml-boxEvenBackground;;
}

table.box td {
    border-right: &dtml-boxBorder;;
    padding: 1em;
}

table.box img{
	vertical-align: middle;
}

div.boxDetails {
    /*the line that contains the date for news and other info */
    text-align: right;
}

table.box a {
}

table.box a.comment {
    /* special link for comments - default behavior is to display the discussion icon next to the link */
    background-image: url(<dtml-var "portal_url() + '/'+ portal_types.getTypeInfo('Discussion Item').getIcon()">); 
    background-repeat: no-repeat;
    background-position: 0px -2px;
    padding: 0em 0em 0.5em 2em;
    margin: 0;
    display: block;
}

table.box a.marker {
    /* special format for links inside boxes - adds link image and displays the link as a block (which in this case means the text will not float under the link image, plus the whole thing is clickable) */
    background: &dtml-boxLinkBackground;;
    display: block;
    padding: 0em 0em 0em 1.5em;
    vertical-align: top;
}

span.folderName {
    /* The folder name in folder_contents */
    font-size: 150%;
    font-weight: bold;
}

div.category {
	float: left;
    margin-right: 1em;
    margin-bottom: 2em;
    width: 20em;
}

div.category a.heading {
    display: block;
    padding: 0em 0em 0.5em 0em;
    font-size: &dtml-headingSize1;;
    text-decoration: underline;
}

div.category a {
    text-decoration: underline;
}

div.box {
	float: left;
    margin-right: 1em;
    margin-bottom: 2em;
    width: 20em;
    background: transparent;
    border-collapse: collapse;
    border: &dtml-boxBorder;;
}

div.box div.heading {
    background: &dtml-boxHeaderBackground;;
    border-bottom: &dtml-boxBorder;;
    color: &dtml-boxHeaderFontColor;;
    font-weight: normal;
    padding: 0em 0em 0em 1em;
    text-align: left;
    text-transform: &dtml-textTransform;;
}

div.box a.close {
	float: right;
    text-transform: none;
    border-left: &dtml-boxBorder;;
    padding: 0em 0.2em;
}

div.box div.odd {
    background: &dtml-boxOddBackground;;
    padding: 1em;
}

div.box div.even {
    background-color: &dtml-boxEvenBackground;;
    padding: 1em;
}




div.spacer {
	margin: 3em;
}

.private {
    color: Black;
}

.published {
    color: #74AE0B;
}

.pending {
    color: #FFA500;
}

.syndicated {
    color: #008000;
}

.expired {
    color: Red;
}


div.listingBar {
    background: &dtml-mainTabBackground;;
    border-color: &dtml-mainTabBorderColorSelected;;
    border-style: solid;
    border-width: 1px;
    padding: 0em 1em;
    text-align: right;
    text-transform: &dtml-textTransform;;
    height: 1em;
    clear: both;
}

div.listingBar span.previous {
    text-align: left;
    float: left;
}

div.listingBar span.next {
    text-align: right;
    float: right;
}

div.workspace {
}

div.workspace span.small {
    float: left;
    height: 30em;
    width: 20em;
    margin-right: 1em;
    margin-bottom: 1em;
}

div.workspace span.big {
    float: left;
    height: 40em;
    width: 40em;	
    margin-right: 1em;
    margin-bottom: 1em;
}


</dtml-with>


=== Added File Products/ZopeOrg-NV/skins/nzo/stylesheet_properties.props ===
plone_skin:string=Plone Default
mainFont:string=1em Tahoma, Helvetica, Arial, sans-serif
mainBackground:string=White
mainFontColor:string=Black
mainLinkColor:string=#436976
mainTabBorderColor:string=#8CACBB
mainTabBorderColorSelected:string=#8CACBB
mainTabBackground:string=#DEE7EC
mainTabBackgroundNotSelected:string=transparent
mainTabBackdrop:string=transparent
mainTabFontWeight:string=normal
mainTabFontColor:string=#436976
mainTabFontColorSelected:string=#436976
headingFont:string=1em Tahoma, Helvetica, Arial, sans-serif
headingFontColor:string=Black
headingSize1:string=1.1em
headingSize2:string=1em
headingSize3:string=0.95em
headingSize4:string=0.9em
headingSize5:string=0.85em
headingSize6:string=0.80em
descriptionFont:string=bold 1em Tahoma, Helvetica, Arial, sans-serif
contentFont:string=1em Verdana, Helvetica, Arial, sans-serif
contentBackground:string=transparent
contentImageBorder:string=1px solid Black
contentLinkActiveColor:string=Red
contentLinkVisitedColor:string=Purple
contentTabBorder:string=1px solid #74AE0B
contentTabBackground:string=#CDE2A7
contentTabBackgroundNotSelected:string=transparent
contentTabBackdrop:string=transparent
contentTabFontWeight:string=normal
contentTabFontColor:string=#578308
contentTabFontColorSelected:string=#578308
preBorder:string=1px solid #8cacbb
preBackground:string=#dee7ec
messageFont:string=bold 100% Tahoma, Helvetica, Arial, sans-serif
messageBackground:string=#FFCE7B
messageBorder:string=1px solid #FFA500
textTransform:string=lowercase
noBorder:string=none
evenRowBackground:string=#F7F9FA
oddRowBackground:string=transparent
groupBorder:string=1px solid #8cacbb
requiredField:string=url(required.gif) 2em no-repeat
inputFont:string=bold 0.8em Tahoma, Helvetica, Arial, sans-serif
inputBorder:string=1px solid #8cacbb
contextButtonBackground:string=White url(linkTransparent.gif) left no-repeat
contextButtonPadding:string=1px 1px 1px 15px
contextButtonFontColor:string=Black
standaloneButtonBackground:string=#DEE7EC url(linkOpaque.gif) left no-repeat
standaloneButtonPadding:string=1px 1px 1px 15px
standaloneButtonFontColor:string=Black
buttonWeight:string=normal
boxBorder:string=1px solid #8CACBB
boxHeaderBackground:string=#DEE7EC
boxHeaderFontColor:string=Black
boxLinkBackground:string=url(linkTransparent.gif) -0.5em 0px no-repeat
boxLinkColor:string=#436976
boxEvenBackground:string=#F7F9FA
boxOddBackground:string=transparent
boxHighlight:string=2px solid #FFA500
listingBorder:string=1px solid #8CACBB
listingHeaderBackground:string=#DEE7EC
listingHeaderFontColor:string=Black
listingLinkHover:string=underline
listingEvenBackground:string=#F7F9FA
listingOddBackground:string=transparent
topBackground:string=transparent
topMargin:string=0
topPadding:string=0
logoMargin:string=1em 0em 1em 2em
logoPadding:string=0
searchMargin:string=3em 0em 0em 0em
searchPadding:string=0em 2em 0em 0em
searchFontColor:string=Black
footerBackground:string=#DEE7EC
footerBorder:string=1px solid #8CACBB
leftColumnWidth:string=15%
rightColumnWidth:string=15%
deprecated_properties:string=Below -- taken from Nouvelle
alink_color:string=#FF0000
base_font_color:string=#000000
base_font_size:string=8pt
bg_color:string=#FFFFFF
guest_actions_color:string=#FFEEEE
guest_actions_link_color:string=#660000
highlight_color:string=#888888
highlight_font_color:string=#000000
hover_color:string=#FF0000
link_color:string=#c4bd58
primary_accent_alink_color:string=#FF0000
primary_accent_color:string=#000000
primary_accent_font_color:string=#A28144
primary_accent_link_color:string=#A28144
primary_accent_text_color:string=#A28144
primary_accent_vlink_color:string=#A28144
primary_font_family:string=Tahoma, Arial, Helvetica, sans-serif
secondary_accent_alink_color:string=#FF0000
secondary_accent_color:string=#A28144
secondary_accent_font_color:string=#000000
secondary_accent_link_color:string=#FFFFFF
secondary_accent_vlink_color:string=#FFFFFF
secondary_font_family:string=Tahoma, Arial, Helvetica, sans-serif
select_stylesheet_id:string=nouvelle_stylesheet
title:string=New Style
vlink_color:string=#c4bd58


=== Added File Products/ZopeOrg-NV/skins/nzo/toPortalTime.py ===
## Script (Python) "toPortalTime"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=time=None
##title=
##
#given a time string convert it into a DateTime and then format it appropariately
from DateTime import DateTime
if hasattr(context.portal_properties, 'localTimeFormat'):
	format=context.portal_properties.localTimeFormat
else:
	format="%Y-%m-%d %H:%M:%S"

portal_time=None
if time is None: 
    time=DateTime()
try:
    portal_time=DateTime(str(time)).strftime(format)
except:
    portal_time=time
return portal_time


=== Products/ZopeOrg-NV/skins/nzo/folder_contents.html 1.1 => 1.2 ===
-<body metal:fill-slot="main">
+<body metal:fill-slot="main"
+      tal:define="dummy here/filterCookie;
+                 folderfilter python:request.get('folderfilter', '');
+                 global decodedFilter python:here.decodeFolderFilter(folderfilter);
+                 global filterValues decodedFilter;
+                 global filter decodedFilter;
+                 global portal_url here/portal_url">
       <div tal:condition="python: not(here.portal_membership.checkPermission('List folder contents', here))">
 
         <span tal:define="redirect python: request.RESPONSE.redirect(here.absolute_url())">
 
         </span>
       </div>
+    <form name="folderContentsForm"
+          method="post"
+          action="folder_object"
+          tal:attributes="action here/absolute_url"
+          tal:define="global folder_contents python:here.listFolderContents( contentFilter=filter ); 
+                      b_start python:request.get('b_start', 0);
+                      results folder_contents;
+                      global DateTime python:modules['DateTime'].DateTime;
+                      Batch python:modules['ZTUtils'].Batch;
+                      global batch python:Batch(results, 5000, int(b_start), orphan=0);">
+
+        <input type="hidden" name="filter_state" value="set_view_filter" />
+
+     <metal:block tal:condition="folder_contents">
+     
+            <table id="sortable"
+                   class="listing"
+                   summary="Content listing"
+                   cellpadding="0" cellspacing="0"
+                   metal:define-macro="folder_listing">
+    
+                <thead> 
+                    <tr>
+                        <th>&nbsp;</th>
+                        <th>Title <img src="arrowUp.gif" alt="Sort" height="6" width="9" /></th>
+                        <th>Type</th>
+                        <th>Size</th>
+                        <th>Modified</th>
+                        <th>Status</th>
+                    </tr>
+                </thead>
+    
+                <tbody>
+                <metal:block tal:repeat="item batch"> 
+                    <tr tal:define="oddrow repeat/item/odd"
+                      tal:attributes="class python:test(oddrow, 'even', 'odd')" > 
+    
+                        <td>
+                            <input type="checkbox" class="noborder" name="ids:list" id="#"
+                                   value="#"
+                                   tal:attributes="value item/getId;
+                                                   id python: 'cb_'+item.getId();
+                                                   checked request/ids_checked|nothing;"/>
+                        </td>
+    
+                        <td tal:define="action python:item.getTypeInfo().getActionById('view');
+                                        url python:test(action, item.absolute_url()+'/'+action, item.absolute_url()+'/folder_contents');"> 
+    
+                            <a href="#" tal:attributes="href url">
+                                <img src="" alt="Folder" border="0"
+                                     height="16"
+                                     width="16"
+                                     tal:attributes="src string:$portal_url/${item/getIcon};
+                                                     alt item/Type;"
+                             />&nbsp;<span tal:replace="item/title_or_id">Title</span>
+                            </a> 
+    
+                          <span class="expired"
+                                tal:condition="python:container.isExpired(item)">expired</span>
+                        </td>
+    
+                        <td tal:content="item/Type">
+                        folder
+                        </td>
+    
+                        <td tal:define="size python:here.getObjSize(item)"
+                            tal:content="structure python:test(size, size, '&nbsp;')">
+                        size
+                        </td>
+    
+                        <td tal:content="python:here.toPortalTime(item.ModificationDate())">
+                        08/19/2001 03:01 AM 
+                        </td>
+    
+                        <td class="private"
+                            tal:define="review_state python:container.portal_workflow.getInfoFor(item, 'review_state', '')"
+                            tal:content="structure python:test(review_state, review_state, '&nbsp;')"
+                            tal:attributes="class python:test(review_state, review_state, 'private')">&nbsp;
+                        </td>
+                    </tr>
+                </metal:block>
+                </tbody> 
+            </table>
+    
+            </metal:block>
 
-      <form action="" method="POST"
-            tal:attributes="action here/absolute_url">
-        <table width="100%" id="FolderContents"
-               cellpadding="2" cellspacing="0"
-               tal:define="b_start string:0;b_start request/b_start | b_start; filterString python: request.get('folderfilter', ''); filter python: here.decodeFolderFilter(filterString); items python: here.listFolderContents(contentFilter=filter); Batch python:modules['ZTUtils'].Batch; global batch python:Batch(items, 30, int(b_start), orphan=0)">
-
-<thead>
 
+<table border="0" cellspacing="0" cellpadding=2>
 <tr>
- <td colspan="3">
-      <div style="padding-top: 12px"
-           tal:condition="python: here.portal_membership.checkPermission('List folder contents', here, 'aq_parent')"
-           tal:define="upNav python: hasattr(here.aq_parent, 'portal_url'); upID python: here.aq_parent.getId()">
-      <span tal:condition="upNav|nothing">
-        <a href="../folder_contents">
-          <img tal:attributes="src python: here.portal_url() + '/UpFolder_icon.gif'"
-               src="" alt="[Link]" border="0" /></a>
-      </span>
-
-         
-      <span tal:condition="upNav">Up to 
-      <a href="../folder_contents" tal:content="upID">Up ID</a>
-      </span>
-
-      <span tal:condition="python: not(upNav)">Root</span>
-            </div>
-
-  </td>
-</tr>
-
-<tr style="background-color: #CCCCCC">
-  <td style="background-color: #CCCCCC">&nbsp;</td>
-  <td style="background-color: #CCCCCC"><strong>Type</strong>&nbsp;</td>
-  <td style="background-color: #CCCCCC"><strong>Id (Title)</strong></td>
-  <td style="background-color: #CCCCCC"><strong>Size</strong></td>
-  <td style="background-color: #CCCCCC"><strong>Last Modified</strong></td>
-</tr>
-</thead>
-
-<tbody>
-<tr align="top" tal:repeat="item batch">
-  <td align="left" width="5" nowrap="NOWRAP"
-      tal:define="folderish item/isPrincipiaFolderish; portalish item/isPortalContent|nothing; global methodID python: folderish and 'folder_contents' or (portalish and 'view' or ''); global icon item/getIcon|item/icon|nothing">
-
-    <input type="checkbox" name="ids:list" value="" id=""
-           tal:attributes="value item/getId; id python: 'cb_' + item.getId()" />
-  </td>
-
-  <td align="center">
-    <span tal:condition="icon">
-    <a href=""
-       tal:attributes="href python: item.getId() + '/' + methodID">
-    <img src="" alt="" border="0"
-         tal:attributes="src python: here.portal_url() + '/' + icon; alt item/Type|nothing" /></a>
+  <td align="left" valign="top" width="16"></td>
+  <td align="left" valign="top">
+  <span tal:condition="python: here.portal_membership.checkPermission('Add portal content', here)">
+    <input type="submit" name="folder_factories:method" value="New...">
+  </span>
+  <span tal:condition="python: here.portal_membership.checkPermission('View management screens', here)">
+    <input type="submit" name="folder_rename_form:method" value="Rename">
+    <input type="submit" name="folder_cut:method" value="Cut"> 
+    <input type="submit" name="folder_copy:method" value="Copy">
+    <span tal:condition="here/cb_dataValid">
+    <input type="submit" name="folder_paste:method" value="Paste">
     </span>
+  </span>
+  <span tal:condition="python: here.portal_membership.checkPermission('Delete objects', here)">
+    <input type="submit" name="folder_delete:method" value="Delete">
+  </span>
   </td>
-  <td>
-     <a href=""
-        tal:attributes="href python: item.getId() + '/' + methodID">
-     <span tal:replace="item/getId">ID</span>
-     <span tal:condition="item/Title"
-           tal:replace="python: '(' + item.Title() + ')'">(Title)</span></a>
-	     </td>
-
-  <td tal:content="string: ${item/get_size} bytes"
-      tal:on-error="python: None">7,000 bytes</td>
-
-  <td tal:content="item/Date">2001-12-01 01:23:44</td>
-
 </tr>
-</tbody>
 </table>
+
 </form>
 
 <div>
@@ -95,6 +137,7 @@
   </span>
 </div>
 
+<span tal:replace="structure here/folder_filter_form">Filter Form Here</span>
 
 </body>
 </html>


=== Products/ZopeOrg-NV/skins/nzo/main_template.html 1.8 => 1.9 ===
 
   <link href="css_default.css" rel="stylesheet" type="text/css"
-        tal:attributes="href here/css_default/absolute_url" />
+        tal:attributes="href here/css_default.css/absolute_url" />
 
-  <link href="sitefonts.css" rel="stylesheet" type="text/css"
-        tal:attributes="href here/sitefonts/absolute_url" />
-  <style type="text/css" media="all"
-         tal:content="here/sitefonts/absolute_url">
- at import "sitefonts.css";
+  <link href="nzoWidgets.css" rel="stylesheet" type="text/css"
+        tal:attributes="href here/nzoWidgets.css/absolute_url" />
+
+  <link href="nzoBasic.css" rel="stylesheet" type="text/css"
+        tal:attributes="href here/nzoBasic.css/absolute_url" />
+
+  <link href="nzoStructure.css" rel="stylesheet" type="text/css"
+        tal:attributes="href here/nzoStructure.css/absolute_url" />
+
+  <style type="text/css" media="all">
+         @import "nzoWidgets.css";
+         @import "nzoBasic.css";
+         @import "nzoStructure.css";
+         @import "css_default.css";
   </style>
 
 </head>






More information about the zopeorg-checkins mailing list