diff options
author | Andreas Mantke <maand@gmx.de> | 2011-04-25 18:40:32 +0200 |
---|---|---|
committer | Andreas Mantke <maand@gmx.de> | 2011-04-25 18:40:32 +0200 |
commit | f0ed7d9689d3cc032dccf8ef49fa90ce9f5af346 (patch) | |
tree | 7a6bf97b3628b6355c597c8778f07ebededccd54 | |
parent | 322437f20394218b94fea2d759be41fb58fbf60a (diff) |
files with the right naming for LiboExtensionCenter
16 files changed, 2262 insertions, 0 deletions
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_categories_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_categories_view.pt new file mode 100644 index 0000000..a1b16cb --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_categories_view.pt @@ -0,0 +1,69 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="liboextensioncenter"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + +<div metal:fill-slot="main" + tal:define="categories python:modules['am.LiboExtensionCenter.config'].CATEGORY_LIST"> + + <div metal:define-macro="main"> + + <h1 class="documentFirstHeading"> + <img tal:replace="structure here/product_icon.gif" /> + <span tal:replace="here/title_or_id">Title or id</span> + </h1> + + <a href="" + class="link-parent" + i18n:translate="label_up_to_product_page" + tal:define="parent_url python:here.navigationParent(here, template.getId())" + tal:condition="parent_url" + tal:attributes="href parent_url"> + « Back to project overview + </a> + + <p class="documentDescription" + tal:content="here/Description"> + description + </p> + + <h2 i18n:translate="heading_available_categories"> + Available categories + </h2> + + <tal:categories repeat="category categories"> + <h3 tal:content="category"> + Category + </h3> + <tal:catalog define="results python:here.portal_catalog.searchResults( + portal_type='LECProject' + , Categories=category + , review_state='published')[:5]"> + <ul tal:condition="results" tal:repeat="obj results"> + <li tal:content="obj/Title"> + Project + </li> + </ul> + </tal:catalog> + </tal:categories> + + </div> + +</div> + +</body> + +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_file_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_file_view.pt new file mode 100644 index 0000000..9f103e1 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_file_view.pt @@ -0,0 +1,70 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="liboextensioncenter"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + +<div metal:fill-slot="main"> + + <div metal:define-macro="main" + tal:define="view here/@@file_view"> + + <dl class="portalMessage info" + tal:define="is_editable context/@@plone_context_state/is_editable;" + tal:condition="python: is_editable"> + <dt>Info</dt> + <dd> + <span i18n:translate="help_message_remember_is_editable">Remember to publish your release once all files have been added by </span> + <a href="" tal:attributes="href here/aq_parent/absolute_url"> + <span i18n:translate="help_message_remember_back_release_page"> going back to the release page</span> + </a>. + </dd> + </dl> + + <h1 class="documentFirstHeading"> + <img tal:replace="structure here/product_icon.gif" /> + <span tal:replace="here/aq_parent/title_or_id">Title or id</span> - + <span tal:replace="here/title_or_id">Title or id</span> + </h1> + + <div tal:content="structure provider:plone.belowcontenttitle" /> + + <p class="documentDescription" + tal:content="here/aq_parent/Description"> + description + </p> + + <p tal:define="downloadURL view/direct_url"> + <a tal:attributes="href downloadURL" + tal:condition="view/file_size"> + <img tal:replace="structure here/download_icon.gif" /> + </a> + <a tal:attributes="href downloadURL" + tal:define="filename python:here.getFilename('downloadableFile')"> + Download <tal:filename condition="filename" + replace="string:$filename" /> + </a> + <tal:size define="fileSize view/file_size" + condition="fileSize"> + (<span tal:replace="fileSize">256KB</span>) + </tal:size> + </p> + + </div> + +</div> + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_listing.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_listing.pt new file mode 100644 index 0000000..3ee1d88 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_listing.pt @@ -0,0 +1,146 @@ +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" + lang="en-US" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="plone"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + + +<div metal:fill-slot="main" + tal:define="view context/@@roadmap_view; + state python:request.get('state', []); + plips python:view.improvement_proposals(review_state = state); + b_start python:request.get('b_start', 0); + Batch python:modules['Products.CMFPlone'].Batch; + batch python:Batch(plips, 50, int(b_start), orphan=0); + releaseFolderUrl python:'/'.join(here.absolute_url().split('/')[:-1]) + '/releases'; + "> + + <h1> + <span i18n:translate="label_improvements_listing">Improvement Proposals </span> + <span tal:condition="state">"</span><span tal:replace="python:(', ').join(state).capitalize()" /><span tal:condition="state">"</span> + <span i18n:translate="label_improvements_proposals_for"> for </span> + <span tal:replace="here/aq_parent/Title" /> + </h1> + + <p class="documentDescription" + tal:condition="plips"> + <span i18n:translate="help_improvements_listing"> + If you want to see the feature proposals displayed according + to what release they are assigned to, go to the + </span> + <a href="lec_roadmap" title="Roadmap page" + i18n:attributes="title title_improvements_listing_roadmap_page"> + <span i18n:translate="title_improvements_listing_roadmap_page">Roadmap page</span> + </a>. + </p> + + + + <!-- Navigation --> + <div metal:use-macro="here/batch_macros/macros/navigation" /> + + <table id="sortable" + class="listing" + summary="Improvement Proposal listing" + tal:condition="plips"> + + <thead> + + <tr> + + <th style="width: 50%"> <tal:title i18n:translate="listingheader_title" + >Title</tal:title> </th> + + <th> <tal:title i18n:translate="listingheader_title" + >Category</tal:title> </th> + + <th> <tal:modified i18n:translate="listingheader_modified" + >Modified</tal:modified> </th> + + <th> <tal:state i18n:translate="listingheader_status" + >Status</tal:state> </th> + + <th> <tal:version i18n:translate="listingheader_target_release" + >Target Release</tal:version> </th> + </tr> + </thead> + + <tbody> + <metal:block tal:repeat="item batch"> + <tr tal:define="oddrow repeat/item/odd; + review_state item/review_state;" + tal:attributes="class python:test(oddrow, 'even', 'odd')"> + + <td> + <a href="#" tal:attributes="href item/getURL; title item/Description;"> + <img + alt="" tal:attributes="src string:${portal_url}/improvementproposal_icon.gif" + /> <span tal:replace="item/Title">Title</span> + </a> + </td> + + <td tal:content="python: ', '.join(item.getProposalTypes)"> + Category + </td> + + <td tal:content="item/ModificationDate"> + 08/19/2001 03:01 AM + </td> + + <td> + <a tal:attributes="href string:${here/absolute_url}/${template/id}?state=${review_state}; + class string:state-$review_state" + tal:content="structure python:test(review_state, review_state, ' ')" + i18n:translate=""> + State + </a> + </td> + + <td> + + <span tal:repeat="release item/getRelatedReleases"> + <a tal:content="release" + tal:attributes="href string:${releaseFolderUrl}/${release}"> + [item] + </a> + </span> + </td> + </tr> + </metal:block> + </tbody> + </table> + + <a style="display:block; text-align:right" + href="" title="Show all" + tal:condition="state" + tal:attributes="href string:${here/absolute_url}/${template/id}" + i18n:attributes="title title_improvements_listing_show_all"> + <span i18n:translate="label_improvements_listing_show_all">Show all</span> + </a> + + <p class="discreet" + tal:condition="not: plips" + i18n:translate="label_improvements_listing_no_proposals_added"> + There are no improvement proposals added for any versions. Use the add + menu to add proposals and/or feature specifications to be used in the + roadmap. + </p> + + <!-- Navigation --> + <div metal:use-macro="here/batch_macros/macros/navigation" /> +</div> + + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_view.pt new file mode 100644 index 0000000..3627fd7 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_view.pt @@ -0,0 +1,113 @@ +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" + lang="en-US" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="plone"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + + +<body> +<div metal:fill-slot="main" + tal:define="view here/@@proposal_view; + wtool context/portal_workflow; + portal_type python:here.getPortalTypeName().lower(); + view_template python:'%s_view' % portal_type; + view_macros python:path('here/%s/macros|nothing' % view_template); + body_macro view_macros/body|nothing; + errors python:request.get('errors', {})"> + + <h1> + <span tal:replace="view/title" /> + </h1> + + + <tal:fields define="fieldNames python: ['definitions', + 'motivation', + 'assumptions', + 'proposal', + 'implementation', + 'deliverables', + 'risks', + 'timeline', + 'participants']"> + + <dl class="portlet" style="margin-left: 0.5em; width: 40%; float: right; clear: right;"> + <dt class="portletHeader" i18n:translate="heading_improvements_contents">Contents</dt> + <dd class="portletItem"> + <ol> + <tal:section tal:repeat="f fieldNames"> + <li tal:define="field python: here.Schema()[f]" + tal:condition="python: field.getAccessor(here)()"> + <a href="" + tal:attributes="href string:${here/absolute_url}#${field/getName}" + tal:content="field/widget/label" /> + </li> + </tal:section> + </ol> + </dd> + </dl> + + <div tal:replace="structure provider:plone.belowcontenttitle" /> + + <p class="documentDescription" + tal:content="here/Description"> + Description + </p> + + <dl> + <dt i18n:translate="label_improvements_proposed_by">Proposed by</dt> <dd tal:content="here/getProposer" /> + <tal:seconder tal:condition="here/getSeconder"> + <dt i18n:translate="label_improvements_seconded_by">Seconded by</dt> <dd tal:content="here/getSeconder" /> + </tal:seconder> + <dt i18n:translate="label_improvements_proposal_type">Proposal type</dt> <dd tal:content="python: ', '.join(here.getProposalTypes())" /> + + <tal:releases define="releases here/getBackReferences" + condition="releases"> + <dt i18n:translate="label_improvements_assigned_release">Assigned to release</dt> + <dd> + <ul> + <li tal:repeat="release releases"> + <a tal:attributes="href release/absolute_url" + tal:content="release/Title"/> + </li> + </ul> + </dd> + </tal:releases> + + <tal:branch condition="here/getBranch"> + <dt i18n:translate="label_improvements_repository_branch">Repository branch</dt> + <dd> <a tal:content="python: here.getBranch().split('/')[-1]" + tal:attributes="href here/getBranch">Branch name</a> </dd> + </tal:branch> + + <dt i18n:translate="label_improvements_state">State</dt> <dd tal:content="python: wtool.getInfoFor(context, 'review_state')" /> + </dl> + + <div class="visualClear"></div> + + <tal:sections repeat="f fieldNames"> + <tal:section tal:define="field python: here.Schema()[f]" + tal:condition="python: field.getAccessor(here)()"> + <a tal:attributes="name field/getName" + tal:content="nothing">Anchor</a> + <h2 tal:content="field/widget/label" /> + <span metal:use-macro="python: here.widget(field.getName(), + mode='view', + use_label=0)" /> + </tal:section> + </tal:sections> + + </tal:fields> + +</div> + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_project_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_project_view.pt new file mode 100644 index 0000000..09401c6 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_project_view.pt @@ -0,0 +1,269 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="liboextensioncenter"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + +<div metal:fill-slot="main" + tal:define="view context/@@project_view"> + + <div metal:define-macro="main" tal:define="latestRelease view/latest_release; + all_releases view/all_releases; + is_editable context/@@plone_context_state/is_editable; + upcomingReleases view/upcoming_releases | nothing"> + + <h1 class="documentFirstHeading"> + <span tal:replace="here/title_or_id">Title or id</span> + </h1> + + <dl class="portalMessage error" tal:condition="context/mayBeUnmaintained"> + <dt>Warning</dt> + <dd>This product has not had a release in over 1 year and may no longer be maintained. </dd> + </dl> + + <div tal:content="structure provider:plone.belowcontenttitle" /> + <p class="documentDescription" + tal:content="here/Description"> + description + </p> + + <p class="portalMessage info" + tal:condition="python: is_editable and not view.is_public()" + i18n:domain="plone" i18n:translate="description_cannot_add_before_approved"> + You can not add releases, documentation or feature proposals until the + project itself is approved, make sure you submit it for approval when + the relevant project information has been entered. + </p> + + + <h2 i18n:translate="label_project_description">Project Description</h2> + + <div id="project_logo_wrapper" + tal:condition="here/getLogo | nothing"> + <a tal:omit-tag="not: here/getLogoURL" + tal:attributes="href here/getLogoURL"> + <img tal:replace="structure here/getLogo" /> + </a> + </div> + + <div tal:replace="structure here/getText" /> + + <div class="visualClear"></div> + + <tal:block tal:condition="python: view.has_criteria_info()"> + <h2 i18n:translate="label_self_certification">Self-Certification</h2> + <tal:block repeat="criterion view/criteria_info"> + <p> + <tal:block condition="criterion/selected">[X]</tal:block> + <tal:block condition="not:criterion/selected">[ ]</tal:block> + <tal:block content="criterion/text" /> + </p> + </tal:block> + </tal:block> + + <tal:block tal:condition="view/has_review_comment|nothing"> + <h2 i18n:translate="label_independent_review">Independent Review</h2> + <p content="structure here/getReviewComment" /> + <p tal:condition="here/isApproved|nothing"> + <i i18n:translate="help_independent_review">This project has been approved via independent review.</i> + </p> + </tal:block> + + <div class="visualClear"></div> + <tal:nostable condition="nocall:not:latestRelease"> + + <h2 i18n:translate="label_current_stable_release">Current Release</h2> + <p + i18n:translate="help_not_stable_release"> + No stable release available yet. + </p> + + <tal:noreleases tal:condition="python:latestRelease is None and not upcomingReleases"> + + <p class="discreet" + tal:condition="here/getRepository"> + <span i18n:translate="label_resource_getting_code"> + If you are interested in getting the source code of + this project, you can get it from the + </span> + <a href="" + class="link-plain" + title="Version control repository location for this project" + i18n:attributes="title title_resource_code_repository" + tal:attributes="href here/getRepository"> + <span i18n:translate="label_resource_code_repository"> code repository</span> + </a>. + </p> + + <p class="discreet" + tal:condition="python: is_editable and view.is_public()"> + <a i18n:translate="label_goto_release_folder" + tal:attributes="href view/release_folder_url"> + Go to the release folder to add or publish a release. + </a> + </p> + + <p class="discreet" + tal:condition="python:is_editable and view.is_public()"> + <tal:noreleases i18n:translate="description_no_available_releases"> + There are no published releases in this project yet. + </tal:noreleases> + <tal:prioritize i18n:translate="description_prioritize_releases"> + This listing will prioritize final releases, + but will list the latest published release of any + other type if no final release exists. If you list + the source code repository in this project, it + will show up, so people know where to go to check + out in the code in the meantime. + </tal:prioritize> + </p> + + </tal:noreleases> + + </tal:nostable> + + + <tal:stable condition="nocall:latestRelease"> + <div class="pane"> + <h2> + Current Release <br /> + <a href="#" title="Current release for the project" + i18n:attributes="title title_latest_release_project" + tal:attributes="href latestRelease/absolute_url" + tal:content="latestRelease/Title">Ploneboard 1.0 + </a> + </h2> + + <p class="discreet"> + <tal:releasedate condition="latestRelease/effective"> + Released <span tal:replace="view/latest_release_date" /> + </tal:releasedate> + + <tal:compatibility condition="latestRelease/getCompatibility"> + — tested with + <metal:versions + metal:use-macro="python:latestRelease.widget('compatibility')"> + Plone 1.0, Plone 2.0... + </metal:versions> + </tal:compatibility> + </p> + + <p tal:condition="latestRelease/Description"> + <span tal:replace="latestRelease/Description"> + Main focus for this release is blah blah. + </span><br /> + <a href="#" + i18n:translate="label_release_details" + tal:attributes="href latestRelease/absolute_url">More about this release…</a> + </p> + + <dl> + <tal:downloads repeat="file latestRelease/contentValues"> + <dt> + <a class="link-plain" title="Download file" + i18n:attributes="title" + tal:attributes="href file/@@file_view/direct_url"> + <img src="" alt="Download file" i18n:attributes="alt" + style="float: left; clear:left; display: block; margin: 0 0.5em 0.5em 0;" + tal:attributes="src string:${here/portal_url}/${file/@@file_view/downloadicon_name}" /> + </a> + + <a class="link-plain" + tal:attributes="href file/@@file_view/direct_url"> + <span i18n:translate="label_get">Get</span> + <span tal:replace="here/Title">Ploneboard 1.0</span> + for + <span tal:replace="file/getPlatform" /></a> + + <!--comment out size + <span class="discreet" + tal:define="fileSize file/@@file_view/file_size"> + <tal:size tal:condition="fileSize"> + (<span tal:replace="fileSize">256KB</span>) + </tal:size> + <tal:extsize condition="not: fileSize"> + <tal:extfile condition="file/getExternalFileSize" tal:on-error="string:Unknown"> + (<span tal:replace="file/getExternalFileSize">256KB</span>) + </tal:extfile> + </tal:extsize> + </span> + --> + </dt> + + <dd class="discreet" tal:content="file/Title"> + Windows installer. + </dd> + + </tal:downloads> + <dt>If you have difficulties with the installation of the extension see <A href="http://libreoffice.org">our howto on installing extensions</a> for more information. + </dt> + </dl> + </div> + </tal:stable> + + <div class="pane"> + <h2>All Releases</h2> + <table class="listing release_table"> + <thead> + <tr> + <th>Version</th> + <th>Released</th> + <th>Description</th> + <th>Compatibility</th> + <th>Status</th> + </tr> + </thead> + <tbody> + <tal:loop repeat="release all_releases"> + <tr tal:define="maturity release/getMaturity; + stable python:maturity not in ['pre-release', 'alpha', 'beta']; + stability python:stable and 'stable-release' or 'unstable-release'" + tal:attributes="class stability"> + <td class="version"> + <a tal:content="release/id" + tal:attributes="href release/absolute_url"/> + </td> + <td class="release-date"> + <span tal:condition="python:stable and release.effective()"> + <span tal:replace="python:context.toLocalizedTime(release.effective())" /> + </span> + </td> + <td class="release-description"> + <span tal:content="release/Description"/> + <a href="#" + i18n:translate="label_release_details" + tal:attributes="href release/absolute_url">More about this release…</a> + + </td> + <td class="compatability"> + <tal:loop repeat="compatibility release/compatibility"> + <div tal:content="compatibility"/> + </tal:loop> + </td> + <td class="maturity" tal:content="maturity"/> + </tr> + </tal:loop> + </tbody> + </table> + </div> + + <div class="visualClear"></div> + + </div> + +</div> + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_listing.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_listing.pt new file mode 100644 index 0000000..50361e7 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_listing.pt @@ -0,0 +1,60 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="context/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="liboextensioncenter"> + +<body> + +<!-- Macro used to show releases, since we need two near identical lists --> +<!-- Call this with a variable 'releases' defined --> + +<metal:macro define-macro="release_listing"> + + <tal:releases repeat="release releases"> + + <div class="visualIEFloatFix" style="margin-top: 1em;"> + + <dl> + + <dt> + <a href="#" title="" + tal:content="release/Title" + tal:attributes="href release/absolute_url; + title release/Title">Ploneboard 1.0</a> + + <tal:released condition="release/EffectiveDate"> + (<span tal:replace="python:context.toLocalizedTime(release.EffectiveDate())"> + Feb 1, 2009 + </span>) + </tal:released> + </dt> + + <dd> + <span tal:replace="release/Description"> + Main focus for this release is blah blah. + </span> + + <br /> + <a href="#" title="Read more…" + i18n:attributes="title label_read_more" + tal:attributes="href release/absolute_url"> + <span i18n:translate="label_read_more">Read more…</span> + </a> + + </dd> + + + </dl> + </div> + + <div class="visualClear"></div> + + </tal:releases> +</metal:macro> + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_view.pt new file mode 100644 index 0000000..4e3c985 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_view.pt @@ -0,0 +1,244 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="liboextensioncenter"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + +<div metal:fill-slot="main"> + + <div metal:define-macro="main" + tal:define="view here/@@release_view; + maturity here/getMaturity; + released python:maturity != 'pre-release'; + final python:maturity == 'final'; + outdated view/is_outdated; + is_editable context/@@plone_context_state/is_editable; + wftool here/portal_workflow"> + + <h1 class="documentFirstHeading"> + <span tal:replace="here/title_or_id">Title or id</span> + <span tal:condition="view/release_date"> + (<span tal:replace="view/release_date">Feb 1, 2009</span>) + </span> + </h1> + + <div style="float:right; margin: 0 0 1em 1em;" + tal:condition="here/getLogo | nothing"> + <a tal:omit-tag="not: here/getLogoURL" + tal:attributes="href here/getLogoURL"> + <img tal:replace="structure here/getLogo" /> + </a> + </div> + + <p class="portalMessage warning" tal:condition="python:outdated and released" + i18n:translate="label_message_no_longer_supported"> + This release is no longer supported! If you are using this release, + please upgrade to a newer version if possible. + </p> + + <p class="portalMessage info" tal:condition="not:final" + i18n:translate="label_message_not_final_release"> + This is not a final release. Experimental releases should only be used for + testing and development. Do not use these on production sites, and make + sure you have proper backups before installing. + </p> + + <p class="documentDescription" + tal:content="here/Description"> + description + </p> + + <p class="discreet" + tal:condition="python: is_editable and not released" + i18n:translate="label_message_not_released"> + A release needs to be published before it will show up in the download + listings of the extension center. You should make a release using the + 'state' drop-down when work on the release is completed and downloadable + files have been added. There is no approval required to make a release. + </p> + + <p tal:define="parent_url python:here.aq_parent.aq_parent.absolute_url()" + tal:condition="parent_url"> + <a href="" tal:attributes="href parent_url" title="The project page" + i18n:attributes="title title_release_additional_information"> + <span i18n:translate="label_release_additional_information"> + For additional information about this project, please visit the overview page + </span> + </a>. + </p> + + <h2 i18n:translate="heading_available_downloads"> + Available downloads + </h2> + + <div style="margin-top: 1em;"> + + <tal:nodownloads tal:condition="not: here/contentValues"> + + <div class="discreet"> + <span i18n:translate="description_no_available_files"> + There are no available extension files in this release yet. + </span> + <span tal:condition="is_editable" + i18n:translate="description_use_add_menu_to_add_files"> + Use the Add menu to add extension files. + </span> + </div> + + </tal:nodownloads> + + <div tal:repeat="file here/contentValues"> + <a class="link-plain" + tal:attributes="href file/@@file_view/direct_url"> + <img src="" alt="" + style="float: left; display: block; margin: 0 0.5em 0.5em 0;" + tal:attributes="src string:${here/portal_url}/${file/@@file_view/downloadicon_name}" /> + </a> + + <a class="link-plain" + tal:attributes="href file/@@file_view/direct_url"> + <span tal:replace="file/Title">Product Package</span> + </a> + + <p class="discreet" + tal:define="fileSize file/@@file_view/file_size"> + For + <span tal:replace="file/getPlatform" /> + <tal:size tal:condition="fileSize"> + (<span tal:replace="fileSize">256KB</span>) + </tal:size> + <tal:extsize condition="not: fileSize"> + <tal:extfile condition="file/getExternalFileSize" tal:on-error="string:Unknown"> + (<span tal:replace="file/getExternalFileSize">256KB</span>) + </tal:extfile> + </tal:extsize> + </p> + + </div> + + + + </div> + + + + <div class="visualClear"></div> + + <tal:relnotes condition="here/getText"> + <h2 i18n:translate="heading_release_notes">Release Notes</h2> + + <table class="vertical listing" style="float: right; margin: 0 0 1em 1em;"> + <tr tal:condition="here/compatibility"> + <th i18n:translate="heading_tested_with"> + Tested with + </th> + <td> + <metal:versions + metal:use-macro="python:context.widget('compatibility')"> + Plone 1.0, Plone 2.0... + </metal:versions> + </td> + </tr> + <tr> + <th i18n:translate="heading_state">State</th> + <td tal:content="python:wftool.getTitleForStateOnType(here.getMaturity(), 'LECRelease')" + i18n:translate=""> + Stable + </td> + </tr> + <tr tal:define="licenseData python:here.getDataGridRow('availableLicenses', here.getLicense())" + tal:condition="licenseData"> + <th i18n:translate="heading_license">License</th> + <td> + <a class="link-plain" + tal:content="licenseData/id" + tal:attributes="href licenseData/url; + title licenseData/title" + i18n:translate=""> + GPL + </a> + </td> + </tr> + <tr tal:condition="here/getReleaseManager"> + <th i18n:translate="heading_relmanager">Release Manager</th> + <td> + <a href="" + tal:omit-tag="not: here/getReleaseManagerContact" + tal:attributes="href string:mailto:${here/getReleaseManagerContact}"> + <span tal:replace="here/getReleaseManager">Some Guy</span> + </a> + </td> + </tr> + <tr tal:condition="here/getExpectedReleaseDate"> + <th tal:condition="not:released" + i18n:translate="heading_expecteddate"> + Expected Release</th> + <th tal:condition="released" + i18n:translate="heading_released"> + Released</th> + <td i18n:translate="" + tal:content="here/getExpectedReleaseDate">Date</td> + </tr> + </table> + + <div tal:replace="structure here/getText" /> + + </tal:relnotes> + + <div class="visualClear"></div> + + <tal:proposals define="proposals here/getRelatedFeatures;" + condition="nocall:proposals"> + + <h2 + i18n:translate="heading_feature_enhancements_release"> + Feature enhancements in this release + </h2> + + <p i18n:translate="help_feature_enhancements_release"> + The following features are associated with this release: + </p> + + <dl> + <tal:proposals repeat="proposal proposals"> + + <dt> + <a tal:attributes="href proposal/absolute_url;" + tal:content="proposal/title_or_id"> + #1: Improvement Title + </a> + </dt> + + <dd tal:content="proposal/Description"> + Improvement Description + </dd> + + </tal:proposals> + </dl> + + </tal:proposals> + + <tal:changelog condition="here/getChangelog"> + <h2 i18n:translate="heading_change_log">Change log</h2> + + <div tal:replace="structure here/getChangelog"></div> + </tal:changelog> + + </div> + +</div> + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_releasefolder_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_releasefolder_view.pt new file mode 100644 index 0000000..4b693f2 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_releasefolder_view.pt @@ -0,0 +1,163 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="context/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="liboextensioncenter"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + +<div metal:fill-slot="main" + tal:define="view context/@@releasefolder_view; + is_editable context/@@plone_context_state/is_editable; + wtool context/portal_workflow;"> + + <div metal:define-macro="main"> + + <h1 class="documentFirstHeading"> + <span tal:replace="context/title_or_id">Title or id</span> + </h1> + + <p class="documentDescription" + tal:content="context/Description"> + description + </p> + + <p> + <a href="" + class="link-parent" + i18n:translate="label_up_to_product_page" + tal:define="parent_url python:here.aq_parent.absolute_url()" + tal:condition="parent_url" + tal:attributes="href parent_url"> + « Back to project page + </a> + </p> + <p class="portalMessage" + tal:condition="python: is_editable and wtool.getInfoFor(context.aq_parent, 'review_state')!='published'" + i18n:domain="plone" i18n:translate="description_cannot_add_before_approved"> + You can not add releases, documentation or feature proposals until the + project itself is approved, make sure you submit it for approval when + the relevant project information has been entered. + </p> + + <tal:releases define="upcoming view/upcoming_releases; + previous view/previous_releases"> + + <tal:noreleases condition="python:not(upcoming or previous)"> + <div class="discreet"> + <span i18n:translate="description_no_available_releases"> + No releases found. + </span> + <span tal:condition="is_editable" + i18n:translate="description_use_add_menu_to_add_releases"> + Use the Add menu to add releases. + </span> + </div> + </tal:noreleases> + + +<tal:comment replace="nothing"> + +<!-- XXX Why does this release_listing macro fail w/traversal error? It appears to be a valid macro. --> + + <tal:block define="global releases upcoming" condition="nocall:upcoming"> + <h2 i18n:translate="heading_experimental_releases">Experimental Releases</h2> + <metal:macro use-macro="context/lec_release_listing/macros/release_listing"/> + </tal:block> + + <tal:block define="global releases previous" condition="nocall:previous"> + <h2 i18n:translate="heading_stable_releases">Stable Releases</h2> + <metal:macro use-macro="context/lec_release_listing/macros/release_listing"/> + </tal:block> + +</tal:comment> + + <h2 i18n:translate="heading_experimental_releases">Experimental Releases</h2> + <tal:release_iter repeat="release upcoming"> + <div class="visualIEFloatFix" style="margin-top: 1em;"> + <dl> + <dt> + <a href="#" title="" + tal:content="release/Title" + tal:attributes="href release/absolute_url; + title release/Title">Ploneboard 1.0</a> + + <tal:released condition="release/EffectiveDate"> + (<span tal:replace="python:context.toLocalizedTime(release.EffectiveDate())"> + Feb 1, 2009 + </span>) + </tal:released> + </dt> + + <dd> + <span tal:replace="release/Description"> + Main focus for this release is blah blah. + </span> + + <br /> + <a href="#" title="Read more…" + i18n:attributes="title label_read_more" + tal:attributes="href release/absolute_url"> + <span i18n:translate="label_read_more">Read more…</span> + </a> + + </dd> + </dl> + </div> + <div class="visualClear"></div> + </tal:release_iter> + + <h2 i18n:translate="heading_stable_releases">Stable Releases</h2> + <tal:release_iter repeat="release previous"> + <div class="visualIEFloatFix" style="margin-top: 1em;"> + <dl> + <dt> + <a href="#" title="" + tal:content="release/Title" + tal:attributes="href release/absolute_url; + title release/Title">Ploneboard 1.0</a> + + <tal:released condition="release/EffectiveDate"> + (<span tal:replace="python:context.toLocalizedTime(release.EffectiveDate())"> + Feb 1, 2009 + </span>) + </tal:released> + </dt> + + <dd> + <span tal:replace="release/Description"> + Main focus for this release is blah blah. + </span> + + <br /> + <a href="#" title="Read more…" + i18n:attributes="title label_read_more" + tal:attributes="href release/absolute_url"> + <span i18n:translate="label_read_more">Read more…</span> + </a> + + </dd> + </dl> + </div> + <div class="visualClear"></div> + </tal:release_iter> + + </tal:releases> + + </div> + +</div> + + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_roadmap.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_roadmap.pt new file mode 100644 index 0000000..212d1f6 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_roadmap.pt @@ -0,0 +1,303 @@ +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" + lang="en-US" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="plone"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + +<div metal:fill-slot="main" + tal:define="view context/@@roadmap_view; + wtool context/portal_workflow; + current_page_url context/@@plone_context_state/current_page_url; + is_editable context/@@plone_context_state/is_editable; + upcoming view/upcoming_releases;"> + <h1 i18n:translate="label_roadmap_title_project"> + Roadmap for <span i18n:name="title_project" tal:replace="here/aq_parent/Title" /> + </h1> + + <dl class="portlet" + style="margin-left: 0.5em; width: 35%; float: right; clear: right;" + tal:condition="upcoming"> + <dt class="portletHeader" i18n:translate="label_roadmap_index">Roadmap index</dt> + <dd class="portletItem"> + <ul> + <tal:release repeat="release upcoming"> + <li> + <a href="" + tal:content="release/Title" + tal:attributes="href string:${current_page_url}#${release/id}"> + Some release + </a> + </li> + </tal:release> + + <li> + <a href="" tal:attributes="href string:${current_page_url}#discussion" + i18n:translate="label_roadmap_proposals_being_discussed"> + Proposals being discussed + </a> + </li> + <li> + <a href="" tal:attributes="href string:${current_page_url}#rejected" + i18n:translate="label_roadmap_rejected_deferred_draft_proposals"> + Rejected/deferred/draft proposals + </a> + </li> + </ul> + </dd> + </dl> + + <p class="documentDescription" i18n:translate="help_roadmap_title_project"> + An overview of the upcoming releases for this project. Participants in the + project can add new features to the list. + </p> + + <p class="portalMessage" + tal:condition="python: is_editable and wtool.getInfoFor(here.aq_parent, 'review_state')!='published'" + i18n:translate="description_cannot_add_before_approved"> + You can not add releases, documentation or feature proposals until the + project itself is approved, make sure you submit it for approval when + the relevant project information has been entered. + </p> + + <div class="visualClear"></div> + + <tal:releases repeat="release upcoming"> + <tal:release define="features release/getRelatedFeatures"> + + <h2 tal:attributes="id release/id"> + <a href="" tal:attributes="href release/absolute_url"> + <tal:date condition="release/getExpectedReleaseDate"> + <span tal:replace="python: here.toLocalizedTime(release.getExpectedReleaseDate())">Relase date</span>: + </tal:date> + <span tal:replace="release/Title">Release Name</span> + <tal:codename condition="release/getCodename">— + <span tal:replace='string:"${release/getCodename}"'>codename</span> + </tal:codename> + </a> + </h2> + + <table class="vertical listing" style="width: 35%; float: right; margin: 1em 0 0.5em 0.5em;" + tal:define="released python:wtool.getInfoFor(release, 'review_state')=='published'"> + <tr tal:condition="release/compatibility"> + <th i18n:translate="heading_tested_with"> + Tested with + </th> + <td> + <metal:versions + metal:use-macro="python:release.widget('compatibility')"> + Plone 1.0, Plone 2.0... + </metal:versions> + </td> + </tr> + <tr tal:define="licenseData python:here.getDataGridRow('availableLicenses', release.getLicense())"> + <th i18n:translate="heading_license">License</th> + <td tal:condition="licenseData"> + <a class="link-plain" + tal:content="licenseData/id" + tal:attributes="href licenseData/url; + title licenseData/title" + i18n:translate=""> + GPL + </a> + </td> + </tr> + <tr tal:condition="release/getImprovementProposalFreezeDate"> + <th i18n:translate="heading_improvementproposalfreezedate"> + Proposal freeze</th> + <td i18n:translate="" + tal:content="python: here.toLocalizedTime(release.getImprovementProposalFreezeDate())">Date</td> + </tr> + <tr tal:condition="release/getFeatureFreezeDate"> + <th i18n:translate="heading_featurefreezedate"> + Feature freeze</th> + <td i18n:translate="" + tal:content="python: here.toLocalizedTime(release.getFeatureFreezeDate())">Date</td> + </tr> + <tr tal:condition="release/getExpectedReleaseDate"> + <th tal:condition="not:released" + i18n:translate="heading_expecteddate"> + Expected Release</th> + <th tal:condition="released" + i18n:translate="heading_released"> + Released</th> + <td i18n:translate="" + tal:content="python: here.toLocalizedTime(release.getExpectedReleaseDate())">Date</td> + </tr> + <tr tal:condition="release/getRepository"> + <th i18n:translate="heading_repository"> + Repository branch</th> + <td> + <a class="link-plain" + tal:content="python: release.getRepository().split('/')[-1]" + tal:attributes="href release/getRepository">Branch name + </a> + </td> + </tr> + </table> + + <p class="discreet" + tal:condition="release/getReleaseManager"> + <span i18n:translate="heading_relmanager">Release Manager:</span> + <a href="" + tal:omit-tag="not: release/getReleaseManagerContact" + tal:attributes="href string:mailto:${release/getReleaseManagerContact}"> + <span tal:replace="release/getReleaseManager">Some Guy</span> + </a> + </p> + + <p tal:content="release/Description"> + Release description + </p> + + <p> + <a href="" tal:attributes="href release/absolute_url" + i18n:translate="label_roadmap_read_more">Read more…</a> + </p> + + <tal:header condition="nocall:features"> + <h3 i18n:translate="label_roadmap_associated_feature_proposals">Associated feature proposals</h3> + </tal:header> + + <p class="discreet" tal:condition="not:nocall:features" + i18n:translate="label_roadmap_not_improvement_proposals"> + No improvement proposals associated with this release. + </p> + + <dl tal:define="states python:['in-progress', + 'ready-for-merge', + 'completed']" + tal:condition="nocall:features"> + + <tal:state repeat="state states"> + + <tal:details define="plips python:release.getRelatedFeatures(state);" + condition="nocall:plips"> + + <dt tal:content="python: view.getStateTitle(state)"> + Workflow state + </dt> + + <tal:plips repeat="plip plips"> + <dd> + <a tal:attributes="href plip/absolute_url"><img tal:replace="structure here/improvementproposal_icon.gif" /></a> + <a href="" + tal:content="plip/Title" + tal:attributes="href plip/absolute_url; + title plip/Description">PLIP title</a> + <span class="discreet"> + (<span tal:replace="plip/getProposer" + /><span tal:condition="plip/getSeconder" tal:replace="string:, ${plip/getSeconder}" />) + </span> + </dd> + </tal:plips> + </tal:details> + </tal:state> + + </dl> + + <div class="visualClear"></div> + + </tal:release> + </tal:releases> + + <h2><a name="discussion" i18n:translate="label_proposals_being_discussed">Proposals being discussed</a></h2> + <p i18n:translate="help_proposals_being_discussed"> + These proposals are currently under consideration for inclusion in an + upcoming release. + </p> + + <table class="listing"> + <thead> + <tr> + <th i18n:translate="label_pbd_proposal">Proposal</th> + <th i18n:translate="label_pbd_type">Type</th> + <th i18n:translate="label_pbd_proposed_by">Proposed by</th> + <th i18n:translate="label_pbd_added">Added</th> + <th i18n:translate="label_pbd_target_release">Target Release</th> + </tr> + </thead> + + <tbody> + <tal:proposals define="releaseFolderUrl python:'/'.join(here.absolute_url().split('/')[:-1]) + '/releases'" + repeat="proposal python:view.improvement_proposals(review_state=['being-discussed'])"> + <tr tal:define="oddrow repeat/proposal/odd" + tal:attributes="class python:test(oddrow, 'even', 'odd')"> + <td> + <a href="" tal:content="proposal/Title" + tal:attributes="href proposal/getURL; + title proposal/Description"> + Test proposal + </a> + </td> + <td tal:content="python: ', '.join(proposal.getProposalTypes)"> + Process + </td> + <td tal:define="proposer proposal/getProposer | nothing; + seconder proposal/getSeconder | nothing"> + <span tal:replace="proposer"/> + <span tal:omit-tag="" tal:condition="python:proposer and seconder">,</span> + <span tal:replace="seconder"/> + </td> + <td tal:content="python:here.toLocalizedTime(proposal.created)"> + 123 days ago + </td> + <td> + <tal:block repeat="release proposal/getRelatedReleases"> + <a tal:content="release" tal:attributes="href string:${releaseFolderUrl}/${release}">[item]</a> + </tal:block> + </td> + </tr> + </tal:proposals> + </tbody> + </table> + + + <h2> + <a name="rejected" + i18n:translate="label_rejected_and_deferred_proposals"> + Rejected and Deferred Proposals + </a> + </h2> + + <p> + <a href="" title="View rejected and deferred proposals" + tal:attributes="href string:${here/absolute_url}/lec_improvements_listing?state:list=rejected&state=deferred" + i18n:attributes="title title_roadmap_rejected_deferred_proposals"> + <span i18n:translate="label_roadmap_rejected_deferred_proposals">Rejected and deferred proposals</span> + </a> + <span i18n:translate="label_roadmap_rejected_deferred_proposals_moved"> have been moved to a separate page.</span> + </p> + + <p> + <span i18n:translate="label_roadmap_all_proposals">You can also </span> + <a href="" title="View all proposals" + tal:attributes="href string:${here/absolute_url}/lec_improvements_listing" + i18n:attributes="title title_roadmap_view_all_proposals"> + <span i18n:translate="label_roadmap_view_all_proposals">view all proposals</span> + </a> + <span i18n:translate="label_roadmap_all_proposals1"> or </span> + <a href="" title="View only draft proposals" + tal:attributes="href string:${here/absolute_url}/lec_improvements_listing?state:list=draft" + i18n:attributes="title title_roadmap_view_draft_proposals"> + <span i18n:translate="label_roadmap_view_draft_proposals">draft proposals</span> + </a>. + </p> + + +</div> + + + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt new file mode 100644 index 0000000..b785269 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt @@ -0,0 +1,270 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + metal:use-macro="here/main_template/macros/master" + i18n:domain="plonehelpcenter"> + +<head> + <metal:block fill-slot="top_slot"> + <tal:noborder condition="python:not user.has_permission('Modify portal content', context)"> + <tal:noborderset tal:define="dummy python:request.set('disable_border', 1)" /> + </tal:noborder> + </metal:block> +</head> + +<body> +<div metal:fill-slot="main" + tal:define="view context/@@category_view; + lec context/@@extensioncenter_view; + global getInfoFor nocall:here/portal_workflow/getInfoFor; + catalog nocall:here/portal_catalog; + herePath python:'/'.join(here.getPhysicalPath()); + sort_on request/sort_on | string:featured; + currentCategory request/getCategories | string:; + currentVersion request/getCompatibility |view/get_latest_plone_release; + SearchableText request/SearchableText | string:; + getCategoryName nocall:view/category_name; + cropText nocall:context/@@plone/cropText; + toLocalizedTime nocall:context/@@plone/toLocalizedTime;"> + + +<div class="grid-row"> + + <div class="grid-cell position-two-thirds width-third"> + <div class="splash pullout" id="sidebar-downloads"> + <h1>Add-on Products</h1> + <p>Add-ons extend your Plone site with additional functionality. + Currently there are <span tal:replace="lec/project_count" /> projects + with <span tal:replace="lec/release_count" /> releases available. + </p> + <a class="pointer" tal:attributes="href string:${here/absolute_url}/createObject?type_name=LECProject">Submit your add-on</a> + </div> + </div> + + <tal:featured_project tal:condition="lec/featured_project"> + + <div class="grid-cell position-leftmost width-two-thirds"> + <div class="splash" id="splash-downloads" + tal:define="download_url lec/featured_project_release_url"> + + <h1>Get + <span tal:replace="lec/featured_project_title">Project</span> + For Your Platform + </h1> + + <tal:featured_project_release tal:condition="lec/featured_project_release"> + + <p>Latest release: + <span tal:replace="lec/featured_project_title"> + Project + </span> + + <span tal:replace="lec/featured_project_release_id"> + 3.4.5 + </span> + + (<span tal:replace="lec/featured_project_release_date"> + December 2008 + </span>) + </p> + + <a id="splash-download-plone" href="" tal:attributes="href download_url">Download Plone</a> + + <div id="splash-download-package"></div> + + </tal:featured_project_release> + + </div> + + </div> + + </tal:featured_project> + +</div> <!-- End row --> + + +<div class="grid-row"> + <div class="grid-cell position-leftmost width-two-thirds"> + + <div class="pane"> + + <h2>Add-on Product Releases</h2> + + + <div id="sort-by"> + <form id="product_select" style="margin-bottom: 1em" tal:attributes="action string:${here/absolute_url}"> + <label class="hiddenStructure">Show</label> + <select name="getCategories" onchange="this.form.submit()"> + <option value="">All categories</option> + <tal:block tal:repeat="cat here/availableCategories"> + <option tal:define="csplit python:[s.strip() for s in cat.split('|')]; cid python:csplit[0]" + tal:content="python:csplit[1]" + tal:attributes="value cid; selected python:test(cid==currentCategory,'selected',nothing)" /> + </tal:block> + </select> + <select name="getCompatibility" onchange="this.form.submit()"> + <tal:block tal:repeat="version here/getAvailableVersions"> + <option tal:content="version" + tal:attributes="value version; + selected python:test(currentVersion==version,'selected',nothing)"> + Plone 3.0 + </option> + </tal:block> + <option value="any" tal:attributes="selected python:test(currentVersion=='','selected',nothing)" + i18n:translate="label_any_version"> + Any version + </option> + <tal:block condition="nothing" tal:repeat="version python:catalog.uniqueValuesFor('getCompatibility')"> + <option tal:content="version" + tal:attributes="value version; + selected python:test(currentVersion==version,'selected',nothing)"> + Plone 3.0 + </option> + </tal:block> + </select> + + <label for="project-sort">Sort On</label> + <select name="sort_on" id="project-sort" + onchange="this.form.submit()"> + <tal:comment>Featured items are sorted by rating</tal:comment> + <option value="featured" + tal:attributes="selected python:sort_on == 'featured' and 'selected' or ''" + >Featured</option> + <option value="positive_ratings" + tal:attributes="selected python:sort_on == 'positive_ratings' and 'selected'" + >Highest Rated</option> + <option value="getDownloadCount" + tal:attributes="selected python:sort_on == 'getDownloadCount' and 'selected'" + >Most Downloaded</option> + <option value="getLatestReleaseDate" + tal:attributes="selected python:sort_on == 'getLatestReleaseDate' and 'selected' or ''" + >Recently Updated</option> + <option value="created" + tal:attributes="selected python:sort_on == 'created' and 'selected' or ''" + >Newest</option> + </select> + + <input type="hidden" name="path" tal:attributes="value python:'/'.join(here.getPhysicalPath())" /> + <input type="hidden" name="portal_type" value="LECProject" /> + <input type="search" name="SearchableText" tal:attributes="value SearchableText" value="" + class="inputLabel" size="20" + /> + <input type="submit" value="Search" /> + + </form> + </div> + + <div class="" id="categories" + tal:define=" + results python:view.get_products(currentCategory, currentVersion, sort_on, SearchableText); + Batch python:modules['Products.CMFPlone'].Batch; + b_size python:10;b_start python:0;b_start request/b_start | b_start; + desc_length site_properties/search_results_description_length; + desc_ellipsis site_properties/ellipsis;"> + + <p tal:condition="not: results"> + <strong i18n:translate="description_no_results_found">No results were found.</strong> + </p> + + <p id="numreleases"> + <span tal:replace="python:len(results)">234</span> projects matching your criteria. + </p> + + <tal:results condition="results" + define="batch python:Batch(results, b_size, int(b_start), orphan=1);"> + + <ul class="downloads"> + <li tal:repeat="result batch"> + <tal:entry + define="project result/getObject; + url result/getURL; + projectURL project/absolute_url; + result_type result/portal_type; + zoomid python:project.id.replace('.', '_'); + screenshot project/getScreenshot | nothing"> + + <h3 style="border-top: none"> + <a href="" + tal:attributes="href projectURL;" + tal:content="result/pretty_title_or_id">Product One</a> + </h3> + <div tal:content="structure project/@@rate-if-you-dare"/> + <div class="project-thumb thumbzoom" + tal:condition="screenshot"> + <a tal:attributes="href projectURL"> + <img + tal:condition="project/screenshot_thumb|nothing" + tal:replace="structure project/screenshot_thumb" /> + </a> + </div> + + <span class="project-thumb" + tal:condition="not:screenshot"> + <img tal:condition="project/logo|nothing" + tal:replace="structure project/logo" /> + </span> + + <div class="product-details"> + <span class="product-leadin"> + <span tal:replace="python:toLocalizedTime(result.getLatestReleaseDate or result.modified, long_format=0)"> + Sept. 3, 2008 + </span> + in + <span tal:replace="python:', '.join([getCategoryName(id) for id in result.getCategories])" tal:on-error="string:"></span> + </span> + <p class="product-description" + tal:content="python:cropText(project.Description(), desc_length, desc_ellipsis)"> + Project Description. + </p> + + <div class="project-compatibilities" + tal:define="compatibilities python:result.getCompatibility or project.getCompatibility();" + tal:condition="compatibilities"> + Latest release compatible with: + <tal:loop repeat="compatibility compatibilities"> + <span class="project-compatibility"> + <span tal:content="compatibility" tal:omit-tag="python:True"/> + <span tal:condition="not:repeat/compatibility/end" + tal:omit-tag="python:True">, </span> + </span> + + </tal:loop> + </div> + + + </div> + + <div class="visualClear" ></div> + </tal:entry> + </li> + </ul> + + <div metal:use-macro="here/batch_macros/macros/navigation" /> + + </tal:results> + </div> + </div> <!-- End pane --> + </div> <!-- End cell --> + + <div class="grid-cell position-two-thirds width-third"> + <div class="sidebar"> + <h2>Browse add-ons by category</h2> + + <ol id="add-on-categories"> + <tal:categories repeat="cat here/availableCategories"> + <li><a href="" + tal:define="csplit python:[s.strip() for s in cat.split('|')]; cid python:csplit[0]" + tal:attributes="href string:${here/absolute_url}?getCategories=${cid}" + tal:content="python:csplit[1]" + >Plone releases</a></li> + </tal:categories> + </ol> + + </div> + </div> + +</div> <!-- End row --> + +</div> +</body> +</html>
\ No newline at end of file diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt.metadata b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt.metadata new file mode 100644 index 0000000..634f48d --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt.metadata @@ -0,0 +1,2 @@ +[default] +title= View by project diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter.css.dtml b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter.css.dtml new file mode 100644 index 0000000..2914904 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter.css.dtml @@ -0,0 +1,66 @@ +/* +** LiboExtensionCenter style sheet for CSS2-capable browsers. +** +** Copyright Alexander Limi - http://www.plonesolutions.com +** +** Feel free to use whole or parts of this for your own designs, but give credit +** where credit is due. +** +*/ + +/* <dtml-with base_properties> */ + +.portletHalfWidth { + width: 45%; + float: left; + margin: 0 1em 1em 0 !important; +} + +.portletThirdWidth { + width: 30%; + float: left; + margin: 0 1em 1em 0 !important; +} + +/* This portlet link selector can be removed once Plone 2.1.3 and later is more common */ +.portlet a { + display: inline; +} + + +.state-being-discussed { + color: Black; +} + +.state-in-progress { + color: &dtml-notifyBorderColor;; +} + +.state-completed { + color: &dtml-linkColor;; +} + +.state-rejected { + color: &dtml-discreetColor;; +} + +.state-deferred { + color: Red; +} + +.state-ready-for-merge { + color: #74AE0B; +} + +.poweredBy { +} + +.note { + border-color: #CCCCCC; + border-style: solid; + border-width: thin 0 0 thin; + margin: 2em; + padding: 0 0.5em 0 1em; +} + +/* </dtml-with> */ diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt new file mode 100644 index 0000000..e130f91 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt @@ -0,0 +1,314 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="here/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="plonehelpcenter"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"> + </style> + <style type="text/css"> + .screenshot { + float: right; + } + .project { + margin-top: 1em; + padding-top: 1em; + border-top: 1px solid #8CACBB; + } + </style> + </metal:css> + <metal:block fill-slot="top_slot"> + <tal:noborder condition="python:not user.has_permission('Modify portal content', context)"> + <tal:noborderset tal:define="dummy python:request.set('disable_border', 1)" /> + </tal:noborder> + </metal:block> +</head> + +<body> + <div metal:fill-slot="main" + tal:define="view context/@@category_view; + global getInfoFor nocall:here/portal_workflow/getInfoFor; + catalog nocall:here/portal_catalog; + herePath python:'/'.join(here.getPhysicalPath()); + currentCategory request/getCategories | string:; + currentVersion request/getCompatibility | string:any; + currentVersion python:test(currentVersion=='current',['Plone 3.0','Plone 2.5'],currentVersion); + currentVersion python:test(currentVersion=='any','',currentVersion); + getCategoryName nocall:view/category_name; + normalizeString nocall:context/@@plone/normalizeString; + toLocalizedTime nocall:context/@@plone/toLocalizedTime; + cropText nocall:context/@@plone/cropText;"> + + <h1 tal:content="here/title_or_id" class="documentFirstHeading"> + Title or id + </h1> + + <div class="feedButton" > + <a href="" tal:attributes="href string:${context/absolute_url}/search_rss?portal_type=LECRelease"><img + i18n:attributes="title title_rss_feed; alt label_rss_feed;" + tal:attributes="src string:$portal_url/rss.gif" src="rss.gif" + alt="RSS Feed" title="RSS feed of the latest releases" /></a> + </div> + + <p class="discreet" tal:define="projectsCount python:len(catalog(portal_type = 'LECProject', path = herePath)); + releasesCount python:len(catalog(portal_type = 'LECRelease', path = herePath))" + i18n:translate="help_download_currently_listing"> + Currently listing <span i18n:name="results_projects_count" tal:replace="projectsCount" /> projects with <span i18n:name="results_releases_count" tal:replace="releasesCount" /> releases. + </p> + + <p class="documentDescription" tal:content="here/Description"> + Description + </p> + + <div class="visualClear"><!-- --></div> + + <tal:featured_project_wrapper tal:condition="python: here.getFeaturedProject()"> + <dl class="portlet" style="width: 23em; float: left"> + <dt class="portletHeader" i18n:translate="label_lec_ploneorg_featured_project"> + Get <tal:featured_project tal:replace="python: here.getFeaturedProject().Title()" + i18n:name="label_lec_ploneorg_get_featured_project"> + Featured Project </tal:featured_project> + for your platform + </dt> + <dd class="portletItem" style="text-align: center" + tal:define="project_url python: here.getFeaturedProject().absolute_url()"> + <a tal:attributes="href project_url"><img + height="40" width="40" alt="Windows" src="platform_windows.gif" /><img + height="40" width="40" alt="Mac" src="platform_mac_os_x.gif" /><img + height="40" width="40" alt="Linux" src="platform_linux.gif" /></a> + <h3> + <a tal:attributes="href project_url" title="Download projects" + style="border-bottom: 1px solid #8CACBB" + i18n:attributes="title title_lec_ploneorg_get_download"> + <span i18n:translate="label_lec_ploneorg_get_download">Download</span> + <tal:featured_project tal:replace="python: here.getFeaturedProject().Title()">Featured Project</tal:featured_project> + </a> + </h3> + <span class="discreet" + i18n:translate="label_lec_ploneorg_latest_release">Latest release: + <tal:latest_release tal:replace="python: here.getFeaturedProjectRelease().getId()" + i18n:name="title_lec_ploneorg_latest_release"> + Latest Release + </tal:latest_release> + </span> + </dd> + </dl> + </tal:featured_project_wrapper> + + <dl class="portlet" style="float:right; width: 23em;"> + <dt class="portletHeader" + i18n:translate="heading_search_addon_packages">Search for add-on packages</dt> + + <dd class="portletItem"> + <form style="text-align: center;" + name="searchform" id="searchform" + action="/search" tal:attributes="action string:${portal_url}/search"> + + <label for="searchGadget" + class="hiddenStructure"> + Search add-ons + </label> + <input type="hidden" name="path" tal:attributes="value python:'/'.join(here.getPhysicalPath())" /> + <input type="hidden" name="portal_type" value="LECProject" /> + <input name="SearchableText" type="text" + size="12" + style="font-size: 150%" + title="Search add-ons" + accesskey="accesskeys-search" + i18n:attributes="title label_search_addon" + tabindex="0" /> + + <input class="searchButton" name="Search" + style="font-size: 150%; background-position: 3px 5px; padding-left: 25px; padding-right: 10px" + type="submit" value="Search" i18n:attributes="value label_search_package_releases" + accesskey="accesskeys-search" /> + </form> + </dd> + </dl> + + <dl class="portlet" style="float:right; clear: right; width: 23em"> + + <dt class="portletHeader" + i18n:translate="heading_want_addon_package">Want to list your add-on package?</dt> + <dd class="portletItem" style="text-align: center"> + <form action="createObject" + tal:condition="python: user.has_permission('LiboExtensionCenter: Add Project', context)"> + <input name="type_name" + type="hidden" + value="LECProject" + /> + <input class="standalone" + type="submit" + style="font-size: 110%; padding: 3px 5px 3px 26px; background-position: 10px 5px" + value="Add new project" + i18n:attributes="value label_add_new_project" + /> + </form> + + <form tal:define="pss modules/Products/PythonScripts/standard; + isAnon context/@@plone_portal_state/anonymous;" + tal:condition="python: not user.has_permission('Add portal content', context) and isAnon" + tal:attributes="action python:'%s/login_form?came_from=%s' % + (here.portal_url(), + pss.url_quote(request['URL']))"> + + <input class="standalone" + type="submit" + style="font-size: 110%; padding: 3px 5px 3px 26px; background-position: 10px 5px" + value="Log in to add your project" + i18n:attributes="value label_login_add_project" + /> + </form> + </dd> + </dl> + + <!-- <select style="float: left;" + onchange="window.location.href=this.options[this.selectedIndex].value"> + <option value="">Go directly to project…</option> + <option tal:repeat="project here/getActiveProjects" + tal:content="python:project.Title[:30]" + tal:attributes="value project/getURL"> + </option> + </select> --> + + + + <div class="visualClear"><!----></div> + + <h2 style="margin-top:1em" i18n:translate="heading_addon_package_releases"> + Add-on Package Releases + </h2> + + <form id="product_select" class="even" style="padding: 1em" action="#" tal:attributes="action string:${here/absolute_url}"> + <label i18n:translate="label_show">Show</label> + <select name="getCategories"> + <option value="" i18n:translate="label_all_categories">All categories</option> + <tal:block tal:repeat="cat here/availableCategories"> + <option tal:define="csplit python:[s.strip() for s in cat.split('|')]; + cid python:csplit[0]" + tal:content="python:csplit[1]" + tal:attributes="value cid; + selected python:test(cid==currentCategory,'selected',nothing)" /> + </tal:block> + </select> + <label i18n:translate="label_for">for</label> + <select name="getCompatibility"> + <tal:block tal:repeat="version here/getAvailableVersions"> + <option tal:content="version" + tal:attributes="value version; + selected python:test(currentVersion==version,'selected',nothing)"> + Plone 3.0 + </option> + </tal:block> + <option value="any" tal:attributes="selected python:test(currentVersion=='','selected',nothing)" + i18n:translate="label_any_version"> + Any version + </option> + <tal:block condition="nothing" tal:repeat="version python:catalog.uniqueValuesFor('getCompatibility')"> + <option tal:content="version" + tal:attributes="value version; + selected python:test(currentVersion==version,'selected',nothing)"> + Plone 3.0 + </option> + </tal:block> + </select> + + <input class="context" type="submit" name="product_search" value="Update" + i18n:attributes="value label_update_form_package_releases" /> + </form> + + <div tal:define="results python:catalog(getCategories=currentCategory, + getCompatibility=currentVersion, + portal_type='LECRelease', + sort_on='effective', + sort_order='reverse'); + Batch python:modules['Products.CMFPlone'].Batch; + b_size python:20;b_start python:0;b_start request/b_start | b_start; + desc_length site_properties/search_results_description_length; + desc_ellipsis site_properties/ellipsis;"> + + <p tal:condition="not: results"> + <strong i18n:translate="description_no_results_found">No results were found.</strong> + </p> + + <p class="discreet" i18n:translate="help_releases_matching_criteria"> + <span i18n:name="results_releases_matching_criteria" tal:replace="python:len(results)">234</span> releases matching your criteria, sorted with latest releases first. + </p> + + <div tal:condition="results" + tal:define="batch python:Batch(results, b_size, int(b_start), orphan=1);"> + + <div class="project" tal:repeat="result batch"> + <tal:entry define="obj result/getObject; + project python:obj.aq_parent.aq_parent; + project python:test(project.portal_type=='LECProject',project,obj); + url result/getURL; + projectURL project/absolute_url; + result_type result/portal_type;"> + + <div class="screenshot" tal:condition="project/logo|nothing"> + <a href="#" tal:attributes="href projectURL"><img tal:replace="structure project/logo" /></a> + </div> + + <div class="project_details"> + <h3 tal:define="item_wf_state result/review_state; + item_wf_state_class python:'state-' + normalizeString(item_wf_state);" + tal:attributes="class item_wf_state_class"> + + <a href="#" style="border-bottom: 1px solid #8CACBB" tal:attributes="href projectURL;" + tal:content="result/pretty_title_or_id">Extension Project</a> + + <span class="discreet" tal:content="python:toLocalizedTime(result.ModificationDate, long_format=0)"> + Modification Date + </span> + + </h3> + + <p class="discreet" + tal:condition="not:currentCategory"> + in <span tal:replace="python:', '.join([getCategoryName(id) for id in result.getCategories])" /> + </p> + + <div class="description"> + <p tal:content="python:cropText(project.Description(), desc_length, desc_ellipsis)"> + Project Description + </p> + <p> + <strong i18n:translate="label_new_this_release">New in this release:</strong> <br /> + <span tal:content="python:cropText(result.Description, desc_length, desc_ellipsis)"> + Release Description + </span> + </p> + </div> + </div> + </tal:entry> + </div> + + <!-- Navigation --> + <div metal:use-macro="here/batch_macros/macros/navigation" /> + + </div> + </div> + + + <div class="visualClear"><!----></div> + + <div class="poweredBy" i18n:translate="label_powered_by_ploneorg"> + Powered by <img src="product_icon.gif" alt="Libo Extension Center's Home Page" + i18n:attributes="alt label_lec_homepage"> + <a class="link-plain" + href="http://plone.org/products/liboextensioncenter" + title="Libo Extension Center's Home Page" + i18n:attributes="title title_lec_homepage">Libo Extension Center</a> + </div> + + </div> + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt.metadata b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt.metadata new file mode 100644 index 0000000..3873470 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt.metadata @@ -0,0 +1,2 @@ +[default] +title= View by release diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt new file mode 100644 index 0000000..ceb1f01 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt @@ -0,0 +1,169 @@ +<html xmlns="http://www.w3.org/1999/xhtml" + xml:lang="en" + lang="en" + xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal" + metal:use-macro="context/main_template/macros/master" + xmlns:i18n="http://xml.zope.org/namespaces/i18n" + i18n:domain="liboextensioncenter"> + +<head> + <metal:css fill-slot="style_slot"> + <style type="text/css" media="all" + tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style> + </metal:css> +</head> + +<body> + + <div metal:fill-slot="main" + tal:define="view context/@@extensioncenter_view"> + + <h1 tal:content="context/title_or_id" class="documentFirstHeading"> + Title or id + </h1> + + <div class="feedButton" > + <a href="" tal:attributes="href view/rss_url"> + <img i18n:attributes="title title_rss_feed; alt label_rss_feed;" + tal:attributes="src string:$portal_url/rss.gif" + src="rss.gif" + alt="RSS Feed" + title="RSS feed of the latest releases" /> + </a> + </div> + + <p class="documentDescription" + tal:content="context/Description"> + Description. + </p> + + <form> + <select style="float: right; clear: right" + onchange="window.location.href=this.options[this.selectedIndex].value"> + <option value="" i18n:translate="label_go_directly_project">Go directly to project…</option> + <option tal:repeat="project view/active_projects" + tal:content="python:project.Title[:30]" + tal:attributes="value project/getURL"> + </option> + </select> + </form> + + <form action="createObject" + tal:condition="view/can_add_project"> + <input name="type_name" + type="hidden" + value="LECProject" + /> + <input class="standalone" + type="submit" + value="Add New Extension Project" + i18n:attributes="value label_add_new_extension_project" + /> + </form> + + <form action="createObject" + tal:condition="context/@@plone_portal_state/anonymous"> + + <input name="type_name" + type="hidden" + value="LECProject" + /> + <input class="standalone" + type="submit" + value="Log in to add Extension Project" + i18n:attributes="value" + /> + </form> + + <p class="discreet" + style="text-align: right; clear: both;" + i18n:translate="label_currently_listing_projects_releases"> + Currently listing <span i18n:name="label_project_count" tal:replace="view/project_count" /> projects + with <span i18n:name="label_release_count" tal:replace="view/release_count" /> releases. + </p> + + + <p class="discreet" i18n:translate="help_latest_releases_each_category"> + The latest releases in each category. To see all projects in a specific + category, click "Show all". + </p> + + <div tal:repeat="category view/categories"> + <dl class="portlet portletThirdWidth"> + <dt class="portletHeader"> + <tal:syndicate condition="context/portal_syndication/isSiteSyndicationAllowed"> + <a class="feedButton" href="" tal:attributes="href category/rss_url"> + <img i18n:attributes="title title_rss_feed; alt label_rss_feed;" + tal:attributes="src string:$portal_url/rss.gif" + src="rss.gif" + alt="RSS" + title="RSS feed for the latest releases in this category" /> + </a> + </tal:syndicate> + <a href="" + tal:content="category/name" + tal:attributes="href string:${context/absolute_url}/by-category/${category/id}" + i18n:translate=""> + Category heading + </a> + </dt> + <tal:releases tal:define="releases category/releases" + tal:condition="nocall:releases"> + + <tal:list repeat="release releases"> + + <dd class="portletItem" + tal:define="oddrow repeat/release/odd" + tal:attributes="class python:test(oddrow, 'portletItem even', 'portletItem odd')"> + <a href="" + tal:attributes="href release/parent_url; + title release/description; + class string:state-${release/review_state}"> + <img tal:replace="structure context/product_icon.gif" /> + <span tal:replace="release/title">Project</span> + <span class="portletItemDetails" + tal:content="python:context.toLocalizedTime(release['date'])">May 5</span> + + </a> + </dd> + </tal:list> + + <tal:nolist condition="not:nocall:releases"> + <dd class="portletItem odd"> + <span class="discreet" i18n:translate="no_releases_found"> + No releases made in this category yet + </span> + </dd> + </tal:nolist> + + <dd class="portletFooter"> + <a href="" title="Show all the projects in this category" + tal:attributes="href string:${context/absolute_url}/by-category/${category/id}" + i18n:attributes="title title_lec_show_all_projects"> + <span i18n:translate="label_lec_show_all_projects">Show all </span> + <span tal:content="category/num_projects" /> + <span i18n:translate="label_lec_show_all_projects_category"> projects in this category…</span> + </a> + </dd> + </tal:releases> + </dl> + + <div class="visualClear" tal:condition="python: repeat['category'].number() % 3 == 0"><!----></div> + </div> + + <div class="visualClear"><!----></div> + + <div class="poweredBy"> + <span i18n:translate="label_powered_by">Powered by </span> + <a class="link-plain" href="http://libreoffice.org" + title="The homepage of LibreOffice" + i18n:attributes="title title_lec_homepage"> + <span i18n:translate="label_powered_by_lec">the LibreOffice community</span> + </a> + </div> + + </div> + +</body> +</html> diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt.metadata b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt.metadata new file mode 100644 index 0000000..a7f5165 --- /dev/null +++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt.metadata @@ -0,0 +1,2 @@ +[default] +title= View by topic |