Skip to content

Commit b9eff3e

Browse files
authored
Merge pull request #278 from Inchoo/feature/#237-edge-module-last-config-update
Added upload date to edge modules active modules list
2 parents 0b22ed2 + 5345e57 commit b9eff3e

File tree

7 files changed

+71
-6
lines changed

7 files changed

+71
-6
lines changed

Diff for: Controller/Adminhtml/FastlyCdn/Manifest/Save.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
use Magento\Framework\Exception\LocalizedException;
1515

1616
/**
17-
* Class Create
18-
*
17+
* Class Save
1918
* @package Fastly\Cdn\Controller\Adminhtml\FastlyCdn\Manifest
2019
*/
2120
class Save extends Action

Diff for: Controller/Adminhtml/FastlyCdn/Manifest/ToggleModules.php

+1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public function execute()
106106
}
107107
$manifest->setManifestId($moduleId);
108108
$manifest->setManifestStatus(0);
109+
$manifest->setLastUploaded(null);
109110
}
110111
$this->saveManifest($manifest);
111112
}

Diff for: Controller/Adminhtml/FastlyCdn/Manifest/Upload.php

+31-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
use Fastly\Cdn\Helper\Vcl;
1212
use Fastly\Cdn\Model\Config\Backend\CustomSnippetUpload;
1313
use Fastly\Cdn\Model\Modly\Manifest;
14+
use Fastly\Cdn\Model\ManifestFactory;
15+
use Fastly\Cdn\Model\ResourceModel\Manifest as ManifestResource;
1416
use Magento\Framework\Exception\LocalizedException;
1517

1618
class Upload extends Action
@@ -40,16 +42,28 @@ class Upload extends Action
4042
*/
4143
private $vcl;
4244

45+
/**
46+
* @var Manifest
47+
*/
4348
private $manifest;
4449

50+
/***
51+
* @var ManifestFactory
52+
*/
53+
private $manifestFactory;
54+
55+
/**
56+
* @var ManifestResource
57+
*/
58+
private $manifestResource;
59+
4560
/**
4661
* @var CustomSnippetUpload
4762
*/
4863
private $customSnippetUpload;
4964

5065
/**
5166
* Upload constructor.
52-
*
5367
* @param Context $context
5468
* @param Http $request
5569
* @param JsonFactory $resultJsonFactory
@@ -58,6 +72,8 @@ class Upload extends Action
5872
* @param Vcl $vcl
5973
* @param CustomSnippetUpload $customSnippetUpload
6074
* @param Manifest $manifest
75+
* @param ManifestFactory $manifestFactory
76+
* @param ManifestResource $manifestResource
6177
*/
6278
public function __construct(
6379
Context $context,
@@ -67,7 +83,9 @@ public function __construct(
6783
Api $api,
6884
Vcl $vcl,
6985
CustomSnippetUpload $customSnippetUpload,
70-
manifest $manifest
86+
Manifest $manifest,
87+
ManifestFactory $manifestFactory,
88+
ManifestResource $manifestResource
7189
) {
7290
$this->request = $request;
7391
$this->resultJson = $resultJsonFactory;
@@ -76,6 +94,8 @@ public function __construct(
7694
$this->vcl = $vcl;
7795
$this->customSnippetUpload = $customSnippetUpload;
7896
$this->manifest = $manifest;
97+
$this->manifestFactory = $manifestFactory;
98+
$this->manifestResource = $manifestResource;
7999
parent::__construct($context);
80100
}
81101

@@ -116,9 +136,17 @@ public function execute()
116136
$comment = ['comment' => 'Magento Module uploaded the "'.$moduleId.'" Edge Module'];
117137
$this->api->addComment($clone->number, $comment);
118138

139+
$moduleUploadDate = date("Y-m-d H:i:s");
140+
$manifest = $this->manifestFactory->create();
141+
$manifest->setManifestId($moduleId);
142+
$manifest->setLastUploaded($moduleUploadDate);
143+
144+
$this->manifestResource->save($manifest);
145+
119146
return $result->setData([
120147
'status' => true,
121-
'active_version' => $clone->number
148+
'active_version' => $clone->number,
149+
'last_uploaded' => $moduleUploadDate
122150
]);
123151
} catch (\Exception $e) {
124152
return $result->setData([

Diff for: Setup/UpgradeSchema.php

+26
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $con
5151
$this->createModlyManifestTable($installer);
5252
}
5353

54+
if (version_compare($context->getVersion(), '1.0.13', '<=')) {
55+
$this->upgradeModlyManifestTable($installer);
56+
}
57+
5458
$installer->endSetup();
5559
}
5660

@@ -181,4 +185,26 @@ public function createModlyManifestTable(
181185
$connection->createTable($table);
182186
}
183187
}
188+
189+
/**
190+
* @param SchemaSetupInterface $installer
191+
*/
192+
public function upgradeModlyManifestTable(
193+
SchemaSetupInterface $installer
194+
) {
195+
$connection = $installer->getConnection();
196+
$tableName = $installer->getTable('fastly_modly_manifests');
197+
198+
if ($installer->getConnection()->isTableExists($tableName) == true) {
199+
$connection->addColumn(
200+
$tableName,
201+
'last_uploaded',
202+
[
203+
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_DATETIME,
204+
'nullable' => true,
205+
'comment' => 'Last uploaded',
206+
]
207+
);
208+
}
209+
}
184210
}

Diff for: etc/module.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
*/
2222
-->
2323
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
24-
<module name="Fastly_Cdn" setup_version="1.0.12">
24+
<module name="Fastly_Cdn" setup_version="1.0.13">
2525
<sequence>
2626
<module name="Magento_Store"/>
2727
<module name="Magento_PageCache" />

Diff for: view/adminhtml/templates/system/config/form/field/modlyActiveModules.phtml

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ $_colspan = $block->isAddAfter() ? 2 : 1;
2525
<?php foreach ($block->getColumns() as $columnName => $column) : ?>
2626
<th><?php /* @noEscape */ echo $column['label']; ?></th>
2727
<?php endforeach;?>
28+
<th class="col-date" colspan="<?php /* @noEscape */ echo $_colspan; ?>">Upload Date</th>
2829
<th class="col-actions" colspan="<?php /* @noEscape */ echo $_colspan; ?>">Action</th>
2930
</tr>
3031
</thead>

Diff for: view/adminhtml/web/js/modly.js

+10
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ define([
1313
let successAllModulesBtnMsg = $('#fastly-success-all-modules-button-msg');
1414
let errorAllModulesBtnMsg = $('#fastly-error-all-modules-button-msg');
1515
let warningAllModulesBtnMsg = $('#fastly-warning-all-modules-button-msg');
16+
let module_field;
1617

1718
let active_version = setServiceLabel.active_version;
1819

@@ -94,6 +95,7 @@ define([
9495
modal.modal('closeModal');
9596
resetAllMessages();
9697
successAllModulesBtnMsg.text($.mage.__('The '+ moduleId +' module has been successfully uploaded to the Fastly service.')).show();
98+
module_field.closest('tr').find('.col-date').text(response.last_uploaded);
9799
} else {
98100
resetAllMessages();
99101
showErrorMessage(response.msg);
@@ -221,10 +223,12 @@ define([
221223
let moduleNote = $('<p class="note"></p>');
222224
let moduleNoteSpan = $('<span></span>');
223225
let moduleActionCell = $('<td class="col-actions"></td>');
226+
let moduleDateCell = $('<td class="col-date"></td>');
224227
let moduleActionButton = $('<button title="Edit module" type="button">');
225228

226229
moduleRow.attr('id', 'fastly_' + index);
227230
moduleRow.append(moduleCell);
231+
moduleRow.append(moduleDateCell);
228232
moduleRow.append(moduleActionCell);
229233
moduleCell.append(moduleSpan);
230234
moduleCell.append(moduleNote);
@@ -235,6 +239,11 @@ define([
235239
moduleSpan.wrapInner('<b></b>');
236240
moduleNote.append(moduleNoteSpan);
237241
moduleNoteSpan.text(module.manifest_description);
242+
if (module.last_uploaded !== null) {
243+
moduleDateCell.text(module.last_uploaded);
244+
} else {
245+
moduleDateCell.text('Not uploaded');
246+
}
238247
moduleActionCell.append(moduleActionButton);
239248
moduleActionButton.attr('data-module-id', module.manifest_id);
240249
moduleActionButton.attr('id', 'fastly-edit-active-modules' + index);
@@ -702,6 +711,7 @@ define([
702711

703712
$('body').on('click', 'button.fastly-edit-active-modules-icon', function () {
704713
let module_id = $(this).data('module-id');
714+
module_field = $(this);
705715
let properties = [];
706716
let message = $('<div class="message"></div>');
707717
let title = '';

0 commit comments

Comments
 (0)