diff options
author | Aleksey 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) |
commit | 22726f09627cc730a5ca4512d6bf25925ade345a (patch) | |
tree | 1846d1a0a68dfea5e3b58e2456b84d3eb23e56da | |
parent | 178901a48163eef3cdee52ec3aab2fa6c21fa38b (diff) |
Let developers enter release notes before uploading bundle #1087
-rw-r--r-- | site/app/controllers/components/editors.php | 28 | ||||
-rw-r--r-- | site/app/controllers/developers_controller.php | 6 | ||||
-rw-r--r-- | site/app/views/developers/uploader.thtml | 44 |
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"> |