Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-07-23 17:58:45 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-07-23 17:59:44 (GMT)
commit22726f09627cc730a5ca4512d6bf25925ade345a (patch)
tree1846d1a0a68dfea5e3b58e2456b84d3eb23e56da
parent178901a48163eef3cdee52ec3aab2fa6c21fa38b (diff)
Let developers enter release notes before uploading bundle #1087
-rw-r--r--site/app/controllers/components/editors.php28
-rw-r--r--site/app/controllers/developers_controller.php6
-rw-r--r--site/app/views/developers/uploader.thtml44
3 files changed, 54 insertions, 24 deletions
diff --git a/site/app/controllers/components/editors.php b/site/app/controllers/components/editors.php
index ed8d1f3..c13fd28 100644
--- a/site/app/controllers/components/editors.php
+++ b/site/app/controllers/components/editors.php
@@ -124,21 +124,18 @@ class EditorsComponent extends Object {
}
}
- $releasenotes = $this->controller->Version->findById($version['Version']['id'], array('Version.releasenotes'), null, -1);
-
$emailInfo = array('name' => $addon['Translation']['name']['string'],
'id' => $this->controller->Addon->id,
'reviewer' => $session['firstname'].' '.$session['lastname'],
'email' => implode(', ', $authors),
'comments' => $data['Approval']['comments'],
- 'version' => !empty($version) ? $version['Version']['version'] : '',
- 'releasenotes' => $releasenotes[0]['releasenotes']
+ 'version' => !empty($version) ? $version['Version']['version'] : ''
);
$this->controller->set('info', $emailInfo);
if ($data['Approval']['ActionField'] == 'public')
- $this->_sendReleaseNotes('', $emailInfo);
+ $this->_sendReleaseNotes('', $version['Version']['id'], $emailInfo);
if ($data['Approval']['ActionField'] != 'superreview') {
$this->controller->Email->template = 'email/nominated/'.$data['Approval']['ActionField'];
@@ -261,8 +258,6 @@ class EditorsComponent extends Object {
}
}
- $releasenotes = $this->controller->Version->findById($version['Version']['id'], array('Version.releasenotes'), null, -1);
-
$emailInfo = array('name' => $addon['Translation']['name']['string'],
'id' => $this->controller->Addon->id,
'reviewer' => $session['firstname'].' '.$session['lastname'],
@@ -271,13 +266,12 @@ class EditorsComponent extends Object {
'os' => $data['Approval']['os'],
'apps' => $data['Approval']['applications'],
'version' => !empty($version) ? $version['Version']['version'] : '',
- 'files' => $files,
- 'releasenotes' => $releasenotes[0]['releasenotes']
+ 'files' => $files
);
$this->controller->set('info', $emailInfo);
if ($data['Approval']['ActionField'] == 'public')
- $this->_sendReleaseNotes('', $emailInfo);
+ $this->_sendReleaseNotes('', $version['Version']['id'], $emailInfo);
if ($data['Approval']['ActionField'] != 'superreview') {
$this->controller->Email->template = 'email/pending/'.$data['Approval']['ActionField'];
@@ -531,8 +525,7 @@ class EditorsComponent extends Object {
'name' => $addon['Translation']['name']['string'],
'versionid' => $versionid,
'version' => $version['Version']['version'],
- 'comments' => 'Trusted activity',
- 'releasenotes' => SITE_URL . '/addon/' . $addonid . '#release-notes'
+ 'comments' => 'Trusted activity'
);
$this->controller->publish('info', $emailInfo, false);
@@ -551,7 +544,7 @@ class EditorsComponent extends Object {
}
if ($addon['Addon']['trusted'] == 1 && $release_notify)
- $this->_sendReleaseNotes('../editors/', $emailInfo);
+ $this->_sendReleaseNotes('../editors/', $version['Version']['id'], $emailInfo);
}
/**
@@ -908,13 +901,12 @@ class EditorsComponent extends Object {
return true;
}
- function _sendReleaseNotes($prefix, $emailInfo) {
+ function _sendReleaseNotes($prefix, $version_id, $emailInfo) {
global $SITE_RELEASE_EMAIL;
- if (!isset($emailInfo['releasenotes'])) {
- $emailInfo['releasenotes'] = SITE_URL.'/addon/'.$emailInfo['id'].'#release-notes';
- $this->controller->set('info', $emailInfo);
- }
+ $releasenotes = $this->controller->Version->findById($version_id, array('Version.releasenotes'), null, -1);
+ $emailInfo['releasenotes'] = $releasenotes[0]['releasenotes'];
+ $this->controller->set('info', $emailInfo);
foreach ($SITE_RELEASE_EMAIL as $lang => $props) {
$this->controller->Email->template = $prefix.'email/aslo/'.$props['template'];
diff --git a/site/app/controllers/developers_controller.php b/site/app/controllers/developers_controller.php
index 435cee0..939a66e 100644
--- a/site/app/controllers/developers_controller.php
+++ b/site/app/controllers/developers_controller.php
@@ -410,7 +410,11 @@ class DevelopersController extends AppController
$data['Version']['id'] = $version_id;
$this->Version->addCompatibleApp($data['Version']['id'], SITE_APP, $this->data['appversion_min'], $this->data['appversion_max']);
-
+
+ // Save translated fields (only releasenotes)
+ list($localizedFields, $unlocalizedFields) = $this->Version->splitLocalizedFields($this->data['Version']);
+ $this->Version->saveTranslations($version_id, $this->params['form']['data']['Version'], $localizedFields);
+
// Add Files
$data['File']['db']['version_id'] = $version_id;
$platforms = $data['File']['db']['platform_id'];
diff --git a/site/app/views/developers/uploader.thtml b/site/app/views/developers/uploader.thtml
index d294816..eff4eb7 100644
--- a/site/app/views/developers/uploader.thtml
+++ b/site/app/views/developers/uploader.thtml
@@ -60,7 +60,7 @@
?>
<?=$this->renderElement('noscript')?>
<?=$this->renderElement('developers/rolecheck')?>
- <div id="submission-area" class="rounded graybox">
+ <div id="submission-area">
<?php if ($type == 'new'): ?>
<div id="step-intro">
<h3><?=___('devcp_uploader_header_how')?></h3>
@@ -69,6 +69,7 @@
</div> <!-- /#step-intro -->
<?php endif; ?>
<?php $showAgreement = ($type == 'new' || !$hasAgreement); ?>
+
<?php if ($showAgreement): ?>
<div id="step-agreement" <?=($type != 'new' ? 'style="display:block"' : '')?>>
<?=___('devcp_uploader_licence')?><br/>
@@ -112,9 +113,11 @@
</div> <!-- /#step-agreement -->
<?php endif; ?>
- <div id="file-upload"<?=($showAgreement ? ' style="display: none;"' : '')?>>
- <form id="upload-form" method="post" enctype="multipart/form-data" action="<?=$html->url('/developers/json/fileupload/'.$type)?>" target="upload-frame" onsubmit="return upload.uploadFile();">
- <h3><?=___('devcp_versions_edit_header_compat')?></h3>
+ <div id="file-upload"<?=($showAgreement ? ' style="display: none;"' : '')?>>
+ <form id="upload-form" method="post" enctype="multipart/form-data" action="<?=$html->url('/developers/json/fileupload/'.$type)?>" target="upload-frame" onsubmit="return upload.uploadFile();">
+
+ <div class="graybox rounded spaced field">
+ <h4><?=___('devcp_versions_edit_header_compat')?></h4>
<p><?=sprintf(___('devcp_versions_edit_adjust'), '/pages/appversions')?></p>
<table id="edit-versions-targetapps-table" class="pretty-table"><tbody>
<?php
@@ -134,7 +137,37 @@
echo '</select></td>';
?>
</tbody></table>
+ </div>
+
+ <div>
+ <?php
+ // Retrieve language arrays from bootstrap.
+ global $valid_languages, $native_languages;
+ foreach (array_keys($valid_languages) as $key) {
+ $languages[$key] = $native_languages[$key]['native'];
+ }
+ ksort($languages);
+ $this->translationBox = array(
+ 'defaultLocale' => LANG,
+ 'languages' => $languages,
+ 'table' => 'Version',
+ 'loaded' => false
+ );
+
+ echo $this->renderElement('translationbox', array(
+ 'type' => 'textarea',
+ 'field' => 'releasenotes',
+ 'translations' => array(LANG => ''),
+ 'height' => '130',
+ 'width' => 'inherit',
+ 'displayName' => ___('devcp_versions_edit_transbox_releasenotes_name'),
+ 'description' => ___('devcp_versions_edit_transbox_releasenotes_description'),
+ ));
+ ?>
+ </div>
+
+ <div class="graybox rounded">
<h3><?=___('devcp_uploader_header_upload')?></h3>
<p><?=___('devcp_uploader_p_upload')?>
<br />
@@ -167,7 +200,8 @@
</div><!-- /#file-upload -->
</div><!-- /#submission-area -->
-
+ </div>
+
<div id="upload-success" class="greenbox-tr"><div class="greenbox-tl">
<?php if ($type == 'new'): ?>
<div id="addon-created-content">