From a47bd50bccd384da523b3c0bd43794138e6aa5c0 Mon Sep 17 00:00:00 2001 From: santipalenque Date: Thu, 23 Oct 2014 17:26:39 -0300 Subject: [PATCH] [spalenque] - #6968 *WIP --- .../code/ui/admin/MarketPlaceAdminPage.php | 103 +++++++++- marketplace/code/ui/admin/css/pdf.css | 98 ++++++++++ .../code/ui/utils/ApplianceSapphireRender.php | 4 + .../ui/utils/ConsultantSapphireRender.php | 21 ++ .../ui/utils/DistributionSapphireRender.php | 4 + .../ui/utils/PrivateCloudSapphireRender.php | 4 + .../ui/utils/PublicCloudSapphireRender.php | 4 + .../Layout/CloudsDirectoryPage_pdf.ss | 179 ++++++++++++++++++ .../Layout/ConsultantsDirectoryPage_pdf.ss | 128 +++++++++++++ .../Layout/DistributionsDirectoryPage_pdf.ss | 159 ++++++++++++++++ .../Layout/MarketPlaceAdminPage_appliance.ss | 3 + .../Layout/MarketPlaceAdminPage_consultant.ss | 3 + .../MarketPlaceAdminPage_distribution.ss | 3 + .../MarketPlaceAdminPage_private_cloud.ss | 3 + .../MarketPlaceAdminPage_public_cloud.ss | 3 + 15 files changed, 717 insertions(+), 2 deletions(-) create mode 100644 marketplace/code/ui/admin/css/pdf.css create mode 100644 marketplace/templates/Layout/CloudsDirectoryPage_pdf.ss create mode 100644 marketplace/templates/Layout/ConsultantsDirectoryPage_pdf.ss create mode 100644 marketplace/templates/Layout/DistributionsDirectoryPage_pdf.ss diff --git a/marketplace/code/ui/admin/MarketPlaceAdminPage.php b/marketplace/code/ui/admin/MarketPlaceAdminPage.php index 87bbccc..b5d6d41 100644 --- a/marketplace/code/ui/admin/MarketPlaceAdminPage.php +++ b/marketplace/code/ui/admin/MarketPlaceAdminPage.php @@ -187,7 +187,7 @@ class MarketPlaceAdminPage_Controller extends Page_Controller 'consultants', 'consultant', 'preview', - 'pdf,' + 'pdf', ); @@ -964,7 +964,7 @@ class MarketPlaceAdminPage_Controller extends Page_Controller case 'private_cloud': { $private_cloud = $this->private_clouds_repository->getBy($query); $private_cloud->IsPreview = true; - $render = new PrivatgeCloudSapphireRender($private_cloud); + $render = new PrivateCloudSapphireRender($private_cloud); return $render->draw(); } @@ -1032,7 +1032,106 @@ class MarketPlaceAdminPage_Controller extends Page_Controller } public function pdf(){ + $html_inner = ''; + $marketplace_type = $this->request->param('MARKETPLACETYPE'); + $instance_id = intval($this->request->param('ID')); + $base = Director::baseFolder(); + $query = new QueryObject(); + $query->addAddCondition(QueryCriteria::equal('ID', $instance_id)); + + switch (strtolower($marketplace_type)) { + case 'distribution': { + $distribution = $this->distribution_repository->getBy($query); + if (!$distribution) throw new NotFoundEntityException('', ''); + $render = new DistributionSapphireRender($distribution); + $distribution ->IsPreview = true; + $html_inner = $render->pdf(); + $css = @file_get_contents($base . "/marketplace/code/ui/admin/css/pdf.css"); + } + break; + case 'appliance': { + $appliance = $this->appliance_repository->getBy($query); + $appliance->IsPreview = true; + $render = new ApplianceSapphireRender($appliance); + $html_inner = $render->pdf(); + $css = @file_get_contents($base . "/themes/openstack/css/main.pdf.css"); + $css .= ' '.@file_get_contents($base . "/themes/openstack/css/chosen.css"); + //$css .= ' '.@file_get_contents($base . "/themes/openstack/css/combined.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/admin/css/colorpicker.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/frontend/css/marketplace.css"); + } + break; + case 'public_cloud': { + $public_cloud = $this->public_clouds_repository->getBy($query); + $public_cloud->IsPreview = true; + if (!$public_cloud) throw new NotFoundEntityException('', ''); + $render = new PublicCloudSapphireRender($public_cloud); + $html_inner = $render->pdf(); + $css = @file_get_contents($base . "/themes/openstack/css/main.pdf.css"); + $css .= ' '.@file_get_contents($base . "/themes/openstack/css/chosen.css"); + //$css .= ' '.@file_get_contents($base . "/themes/openstack/css/combined.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/admin/css/colorpicker.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/frontend/css/marketplace.css"); + } + break; + case 'private_cloud': { + $private_cloud = $this->private_clouds_repository->getBy($query); + $private_cloud->IsPreview = true; + $render = new PrivateCloudSapphireRender($private_cloud); + $html_inner = $render->pdf(); + $css = @file_get_contents($base . "/themes/openstack/css/main.pdf.css"); + $css .= ' '.@file_get_contents($base . "/themes/openstack/css/chosen.css"); + //$css .= ' '.@file_get_contents($base . "/themes/openstack/css/combined.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/admin/css/colorpicker.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/frontend/css/marketplace.css"); + + } + break; + case 'consultant': { + $consultant = $this->consultant_repository->getBy($query); + if (!$consultant) throw new NotFoundEntityException('', ''); + $consultant->IsPreview = true; + $render = new ConsultantSapphireRender($consultant); + $html_inner = $render->pdf(); + $css = @file_get_contents($base . "/themes/openstack/css/main.pdf.css"); + $css .= ' '.@file_get_contents($base . "/themes/openstack/css/chosen.css"); + //$css .= ' '.@file_get_contents($base . "/themes/openstack/css/combined.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/admin/css/colorpicker.css"); + $css .= ' '.@file_get_contents($base . "/marketplace/code/ui/frontend/css/marketplace.css"); + } + break; + default: + $this->httpError(404); + break; + } + + //create pdf + $file = FileUtils::convertToFileName('preview') . '.pdf'; + //$html_inner = $this->customise(array('BASEURL' => Director::protocolAndHost()))->renderWith("UserStoryPDF"); + + $html_outer = sprintf("
%s
", + str_replace("@host", $base, $css),$html_inner); + + + try { + $html2pdf = new HTML2PDF('P', 'A4', 'en', true, 'UTF-8', array(15, 5, 15, 5)); + //$html2pdf->addFont('Open Sans', '', $base.'/themes/openstack/assets/fonts/PT-Sans/PTC75F-webfont.ttf'); + $html2pdf->WriteHTML($html_outer); + //clean output buffer + ob_end_clean(); + $html2pdf->Output($file, "D"); + } catch (HTML2PDF_exception $e) { + $message = array( + 'errno' => '', + 'errstr' => $e->__toString(), + 'errfile' => 'UserStory.php', + 'errline' => '', + 'errcontext' => '' + ); + SS_Log::log($message, SS_Log::ERR); + $this->httpError(404,'There was an error on PDF generation!'); + } } } \ No newline at end of file diff --git a/marketplace/code/ui/admin/css/pdf.css b/marketplace/code/ui/admin/css/pdf.css new file mode 100644 index 0000000..dab222d --- /dev/null +++ b/marketplace/code/ui/admin/css/pdf.css @@ -0,0 +1,98 @@ +body, html { + width: 100%; + height: 100%; +} + +body, h1, h2, h3, h4, h5, h6 { + /*font-family: "Open Sans", Helvetica, Arial, sans-serif;*/ + font-weight: 400; +} + +h1 { + color: rgb(7, 94, 165); + font-size: 27px; + font-weight: 300; + margin-bottom: 10px; + text-align: center; + font-size: 25px; +} + +h2 { + color: rgb(7, 94, 165); + font-weight: 300; + margin-bottom: 10px; + margin-top:20px; + text-align: left; + font-size: 21px; +} + +h3 { + color: rgb(7, 94, 165); + font-size: 14px; + text-transform: uppercase; + margin-top: 8px; + margin-bottom: 5px; +} + +h5 { + color: #DA422F; + margin-bottom: 0; +} + +a, a:visited { + color: #30739C; +} + +th { + text-align: left; + padding: 0; +} + +.container { + font-size: 11px; + line-height: 1.1; + color: #333; + font-weight: 300; +} + +.primary-action-button { + background: none repeat scroll 0 0 #0595D4; + color: #FFFFFF!important; + display: inline-block; + font-size: 13px; + line-height: 1em; + margin-left: 16px; + padding: 5px 16px; + text-transform: uppercase; +} + +.grey-bar { + background-color: #edf2f7; + margin-top: 0; + padding-bottom: 8px; + padding-top: 8px; +} + +.grey-bar h1{ + margin-bottom:5px; + padding-top:5px; +} + +.marketplace-content{ + margin-top:32px; +} + +.pullquote p{ + font-size:120%; + margin-bottom:16px; +} + +.pullquote p.author{ + color:#7F7F7F; + font-size:80%; +} + +.info-area{ + border-left:1px solid #DDDDDD; + padding-left:8px; +} diff --git a/marketplace/code/ui/utils/ApplianceSapphireRender.php b/marketplace/code/ui/utils/ApplianceSapphireRender.php index 51104a5..168c4bb 100644 --- a/marketplace/code/ui/utils/ApplianceSapphireRender.php +++ b/marketplace/code/ui/utils/ApplianceSapphireRender.php @@ -20,4 +20,8 @@ final class ApplianceSapphireRender { Requirements::css("marketplace/code/ui/frontend/css/marketplace.css"); return Controller::curr()->Customise($this->appliance)->renderWith(array('DistributionsDirectoryPage_implementation', 'DistributionsDirectoryPage', 'MarketPlacePage')); } + + public function pdf(){ + return Controller::curr()->Customise($this->appliance)->renderWith(array('DistributionsDirectoryPage_pdf')); + } } \ No newline at end of file diff --git a/marketplace/code/ui/utils/ConsultantSapphireRender.php b/marketplace/code/ui/utils/ConsultantSapphireRender.php index 9a07b59..634b7f2 100644 --- a/marketplace/code/ui/utils/ConsultantSapphireRender.php +++ b/marketplace/code/ui/utils/ConsultantSapphireRender.php @@ -42,4 +42,25 @@ final class ConsultantSapphireRender { ) )->renderWith(array('ConsultantsDirectoryPage_consultant', 'ConsultantsDirectoryPage', 'MarketPlacePage')); } + + public function pdf(){ + $services = $this->consultant->getServicesOffered(); + $unique_services = array(); + $unique_regions = array(); + foreach ($services as $service) { + if (!array_key_exists($service->getType(), $unique_services)) + $unique_services[$service->getType()] = $service; + if (!array_key_exists($service->getRegionID(), $unique_regions)) { + $region = $this->region_repository->getById($service->getRegionID()); + $unique_regions[$service->getRegionID()] = $region; + } + } + return Controller::curr()->Customise( + array( + 'Consultant' => $this->consultant, + 'Services' => new DataObjectSet(array_values($unique_services)), + 'Regions' => new DataObjectSet(array_values($unique_regions)), + ) + )->renderWith(array('ConsultantsDirectoryPage_pdf')); + } } \ No newline at end of file diff --git a/marketplace/code/ui/utils/DistributionSapphireRender.php b/marketplace/code/ui/utils/DistributionSapphireRender.php index cc406cb..61bfd48 100644 --- a/marketplace/code/ui/utils/DistributionSapphireRender.php +++ b/marketplace/code/ui/utils/DistributionSapphireRender.php @@ -20,4 +20,8 @@ final class DistributionSapphireRender { Requirements::css("marketplace/code/ui/frontend/css/marketplace.css"); return Controller::curr()->Customise($this->distribution )->renderWith(array('DistributionsDirectoryPage_implementation', 'DistributionsDirectoryPage', 'MarketPlacePage')); } + + public function pdf(){ + return Controller::curr()->Customise($this->distribution )->renderWith(array('DistributionsDirectoryPage_pdf')); + } } \ No newline at end of file diff --git a/marketplace/code/ui/utils/PrivateCloudSapphireRender.php b/marketplace/code/ui/utils/PrivateCloudSapphireRender.php index a6f6b33..18011d9 100644 --- a/marketplace/code/ui/utils/PrivateCloudSapphireRender.php +++ b/marketplace/code/ui/utils/PrivateCloudSapphireRender.php @@ -27,4 +27,8 @@ final class PrivateCloudSapphireRender { Requirements::javascript("marketplace/code/ui/frontend/js/cloud.page.js"); return Controller::curr()->Customise($this->cloud)->renderWith(array('CloudsDirectoryPage_cloud', 'PrivateCloudsDirectoryPage', 'MarketPlacePage')); } + + public function pdf(){ + return Controller::curr()->Customise($this->cloud)->renderWith(array('CloudsDirectoryPage_pdf')); + } } \ No newline at end of file diff --git a/marketplace/code/ui/utils/PublicCloudSapphireRender.php b/marketplace/code/ui/utils/PublicCloudSapphireRender.php index 4f8afa5..7b7f75b 100644 --- a/marketplace/code/ui/utils/PublicCloudSapphireRender.php +++ b/marketplace/code/ui/utils/PublicCloudSapphireRender.php @@ -27,4 +27,8 @@ final class PublicCloudSapphireRender { Requirements::javascript("marketplace/code/ui/frontend/js/cloud.page.js"); return Controller::curr()->Customise($this->cloud)->renderWith(array('CloudsDirectoryPage_cloud', 'PublicCloudsDirectoryPage', 'MarketPlacePage')); } + + public function pdf(){ + return Controller::curr()->Customise($this->cloud)->renderWith(array('CloudsDirectoryPage_pdf')); + } } \ No newline at end of file diff --git a/marketplace/templates/Layout/CloudsDirectoryPage_pdf.ss b/marketplace/templates/Layout/CloudsDirectoryPage_pdf.ss new file mode 100644 index 0000000..444479e --- /dev/null +++ b/marketplace/templates/Layout/CloudsDirectoryPage_pdf.ss @@ -0,0 +1,179 @@ +
+
+

+ All Clouds +

+

$Name

+
+
+ +
+<% include MarketPlaceCompany %> +
+
+ <% if Capabilities %> +

OpenStack Services Offered

+ + + + + + + <% loop Capabilities %> + + + + + <% end_loop %> + +
ServiceOpenStack Version
+ <% loop ReleaseSupportedApiVersion %> + <% loop OpenStackComponent %> + $Name + <% end_loop %> + <% end_loop %> + + <% loop ReleaseSupportedApiVersion %> + <% loop Release %> + $Name + <% end_loop %> + <% end_loop %> +
+ <% end_if %> + <% if Top.PricingSchemas %> + +

Pricing Options

+ + + <% loop Top.PricingSchemas %> + + + + + <% end_loop %> + +
$Type
+ <% end_if %> + <% if HyperVisors %> +

Supported Hypervisors

+

+ <% loop HyperVisors %> + <% if First == 0 %>,<% end_if %> + $Type + <% end_loop %> +

+ <% end_if %> + + <% if Guests %> +
+

Supported Guests

+

+ <% loop Guests %> + <% if First == 0 %>,<% end_if %> + $Type + <% end_loop %> +

+ <% end_if %> + + <% if DataCenterRegions %> +
+

Regions

+ + + <% loop DataCenterRegions %> + + + + + <% end_loop %> + +
+ + $Name
+ <% end_if %> + <% if DataCenters %> +
+

Data Center Locations

+

+ <% loop DataCenters %> + <% if First == 0 %>,<% end_if %> + $City + <% end_loop %> +

+
+
+

Click any location to see availability zones and API endpoints

+ <% end_if %> + <% if RegionalSupports %> +
+

Regions where support is offered

+ + + <% loop RegionalSupports %> + + <% loop Region %> + + <% end_loop %> + + <% end_loop %> + +
$Name
+ <% end_if %> + <% if Capabilities %> +
+

OpenStack API Coverage

+ + + <% loop Capabilities %> + <% if SupportsVersioning %> + <% loop ReleaseSupportedApiVersion %> + <% if ApiVersion %> + <% loop OpenStackComponent %> + + + + + + <% end_if %> + <% end_loop %> + <% end_if %> + <% end_loop %> + +
+ $Name API + <% if SupportsExtensions %> & Extensions<% end_if %> + + $CodeName + <% end_loop %> + <% loop ApiVersion %> $Version<% end_loop %> +
+ <% end_if %> +
+
+
+ <% include MarketPlaceDirectoryPage_Rating_Placeholder %> + <% if Videos %> +
+ <% loop Videos %> +

$Name($FormattedLength)

+ + <% end_loop %> +
+ <% end_if %> + + <% if Resources %> +
+

More Resources

+
    + <% loop Resources %> +
  • $Name
  • + <% end_loop %> +
+
+ <% end_if %> + +
+
+ \ No newline at end of file diff --git a/marketplace/templates/Layout/ConsultantsDirectoryPage_pdf.ss b/marketplace/templates/Layout/ConsultantsDirectoryPage_pdf.ss new file mode 100644 index 0000000..22f2c99 --- /dev/null +++ b/marketplace/templates/Layout/ConsultantsDirectoryPage_pdf.ss @@ -0,0 +1,128 @@ +
+
+

+ All Providers +

+

$Name

+
+
+<% loop Consultant %> +
+ <% include MarketPlaceCompany %> +
+
+ <% if ExpertiseAreas %> +

Areas of OpenStack Expertise

+ + + <% loop ExpertiseAreas %> + + + + + <% end_loop %> + +
$Name$CodeName
+ <% end_if %> + <% if Top.Services %> +
+

Services Offered

+
    + <% loop Top.Services %> +
  • $Type
  • + <% end_loop %> +
+ <% end_if %> + <% if PreviousClients %> +
+

Select Clients

+
    + <% loop PreviousClients %> +
  • $Name
  • + <% end_loop %> +
+ <% end_if %> + <% if ConfigurationManagementExpertises %> +
+

Configuration Management Expertise

+
    + <% loop ConfigurationManagementExpertises %> +
  • $Type
  • + <% end_loop %> +
+ <% end_if %> + <% if SpokenLanguages %> +
+

Languages

+
    + <% loop SpokenLanguages %> +
  • $Name
  • + <% end_loop %> +
+ <% end_if %> + <% if Top.Regions %> +
+

Regions with local offices

+
    + <% loop Top.Regions %> +
  • $Name
  • + <% end_loop %> +
+ <% end_if %> + <% if Offices %> +
+

Offices

+ +
+
+

+ Click any map pin to see office address +

+ <% end_if %> + <% if RegionalSupports %> +
+

Regions where support is offered

+ + + <% loop RegionalSupports %> + + <% loop Region %> + + <% end_loop %> + + <% end_loop %> + +
$Name
+ <% end_if %> +
+
+
+ <% include MarketPlaceDirectoryPage_Rating_Placeholder %> + <% if Videos %> +
+ <% loop Videos %> +

$Name($FormattedLength)

+ + <% end_loop %> +
+ <% end_if %> + + <% if Resources %> +
+

More Resources

+
    + <% loop Resources %> +
  • $Name
  • + <% end_loop %> +
+
+ <% end_if %> + +
+
+ +<% end_loop %> \ No newline at end of file diff --git a/marketplace/templates/Layout/DistributionsDirectoryPage_pdf.ss b/marketplace/templates/Layout/DistributionsDirectoryPage_pdf.ss new file mode 100644 index 0000000..8b05dc9 --- /dev/null +++ b/marketplace/templates/Layout/DistributionsDirectoryPage_pdf.ss @@ -0,0 +1,159 @@ +
+

$Name

+
+
+ + + + + + + + + + + + + +
+ $Company.SmallLogoPreview(150) +

About $Company.Name

+

$Company.Overview

+
+
+

$Company.Name Commitment

+
class="commitment"<% end_if %>>$Company.Commitment
+ <% if Company.CommitmentAuthor %> +

—$Company.CommitmentAuthor, $Company.Name

+ <% end_if %> +
+
+
+

+ $Name +

+

$Overview

+
+
+
+ <% if Capabilities %> +

OpenStack Services Enabled

+ + + + + + + <% loop Capabilities %> + + + + + <% end_loop %> + +
ServiceOpenStack Version
+ <% loop ReleaseSupportedApiVersion %> + <% loop OpenStackComponent %> + $Name + <% end_loop %> + <% end_loop %> + + <% loop ReleaseSupportedApiVersion %> + <% loop Release %> + $Name + <% end_loop %> + <% end_loop %> +
+ <% end_if %> +
+ <% if HyperVisors %> +

Supported Hypervisors

+

+ <% loop HyperVisors %> + <% if First == 0 %>,<% end_if %> + $Type + <% end_loop %> +

+ <% end_if %> + <% if Guests %> +

Supported Guests

+

+ <% loop Guests %> + <% if First == 0 %>,<% end_if %> + $Type + <% end_loop %> +

+ <% end_if %> + <% if RegionalSupports %> +
+

Regions where support is offered

+ + + <% loop RegionalSupports %> + + <% loop Region %> + + <% end_loop %> + + <% end_loop %> + +
$Name
+ <% end_if %> + <% if Capabilities %> +
+

OpenStack API Coverage

+ + + <% loop Capabilities %> + <% if SupportsVersioning %> + <% loop ReleaseSupportedApiVersion %> + <% if ApiVersion %> + <% loop OpenStackComponent %> + + + + + <% end_if %> + <% end_loop %> + + + <% end_if %> + <% end_loop %> + +
+ $Name API + <% if SupportsExtensions %> & Extensions<% end_if %> + + $CodeName + <% end_loop %> + <% loop ApiVersion %> $Version<% end_loop %> + + $CoveragePercent % +
+ <% end_if %> +
+
+ <% include MarketPlaceDirectoryPage_Rating_Placeholder %> + <% if Videos %> +
+ <% loop Videos %> +

$Name($FormattedLength)

+ + <% end_loop %> +
+ <% end_if %> + + <% if Resources %> +
+

More Resources

+
    + <% loop Resources %> +
  • $Name
  • + <% end_loop %> +
+
+ <% end_if %> +
+
\ No newline at end of file diff --git a/marketplace/templates/Layout/MarketPlaceAdminPage_appliance.ss b/marketplace/templates/Layout/MarketPlaceAdminPage_appliance.ss index 12b3aa8..1b250e9 100644 --- a/marketplace/templates/Layout/MarketPlaceAdminPage_appliance.ss +++ b/marketplace/templates/Layout/MarketPlaceAdminPage_appliance.ss @@ -6,6 +6,9 @@ <% if CurrentAppliance %> Preview <% end_if %> + <% if CurrentAppliance %> + Download PDF + <% end_if %> << Back to Products
diff --git a/marketplace/templates/Layout/MarketPlaceAdminPage_consultant.ss b/marketplace/templates/Layout/MarketPlaceAdminPage_consultant.ss index f27ff5a..0410ce0 100644 --- a/marketplace/templates/Layout/MarketPlaceAdminPage_consultant.ss +++ b/marketplace/templates/Layout/MarketPlaceAdminPage_consultant.ss @@ -6,6 +6,9 @@ <% if CurrentConsultant %> Preview <% end_if %> + <% if CurrentConsultant %> + Download PDF + <% end_if %> << Back to Products
diff --git a/marketplace/templates/Layout/MarketPlaceAdminPage_distribution.ss b/marketplace/templates/Layout/MarketPlaceAdminPage_distribution.ss index 8fa6369..0278cbf 100644 --- a/marketplace/templates/Layout/MarketPlaceAdminPage_distribution.ss +++ b/marketplace/templates/Layout/MarketPlaceAdminPage_distribution.ss @@ -6,6 +6,9 @@ <% if CurrentDistribution %> Preview <% end_if %> + <% if CurrentDistribution %> + Download PDF + <% end_if %> << Back to Products
diff --git a/marketplace/templates/Layout/MarketPlaceAdminPage_private_cloud.ss b/marketplace/templates/Layout/MarketPlaceAdminPage_private_cloud.ss index b0548b5..f0a11b7 100644 --- a/marketplace/templates/Layout/MarketPlaceAdminPage_private_cloud.ss +++ b/marketplace/templates/Layout/MarketPlaceAdminPage_private_cloud.ss @@ -6,6 +6,9 @@ <% if CurrentPrivateCloud %> Preview <% end_if %> + <% if CurrentPrivateCloud %> + Download PDF + <% end_if %> << Back to Products
diff --git a/marketplace/templates/Layout/MarketPlaceAdminPage_public_cloud.ss b/marketplace/templates/Layout/MarketPlaceAdminPage_public_cloud.ss index 5d127fe..5a65187 100644 --- a/marketplace/templates/Layout/MarketPlaceAdminPage_public_cloud.ss +++ b/marketplace/templates/Layout/MarketPlaceAdminPage_public_cloud.ss @@ -6,6 +6,9 @@ <% if CurrentPublicCloud %> Preview <% end_if %> + <% if CurrentPublicCloud %> + Download PDF + <% end_if %> << Back to Products