diff --git a/app/Quicksave.php b/app/Quicksave.php
index aca14a0..a87e2f5 100644
--- a/app/Quicksave.php
+++ b/app/Quicksave.php
@@ -45,7 +45,7 @@ class Quicksave {
public function rollback( $hash, $environment = "production", $version, $type, $value = "" ) {
if ( $type == "all") {
$command = "quicksave rollback {$this->site_id}-{$environment} $hash --version=$version --all";
- $response = Run::CLI( $command );
+ $response = Run::task( $command );
return $response;
}
$command = "quicksave rollback {$this->site_id}-{$environment} $hash --version=$version --$type=$value";
diff --git a/templates/core.php b/templates/core.php
index d056562..43d7b3b 100644
--- a/templates/core.php
+++ b/templates/core.php
@@ -3168,10 +3168,11 @@ if ( is_plugin_active( 'arve-pro/arve-pro.php' ) ) { ?>
{{ item.created_at | pretty_timestamp_epoch }} {{ item.status }}
-
+
+ Revert changes mdi-restore
+ Reapply changes mdi-redo
+ View Changes mdi-file-compare
+
@@ -3757,7 +3758,8 @@ if ( is_plugin_active( 'arve-pro/arve-pro.php' ) ) { ?>
{{ item.status }}
- Rollback Everything mdi-restore
+ Revert changes mdi-restore
+ Reapply changes mdi-redo
View Changes mdi-file-compare
@@ -12477,10 +12479,15 @@ new Vue({
.catch( error => console.log( error ) );
},
- QuicksavesRollback( site_id, quicksave ) {
- date = this.$options.filters.pretty_timestamp_epoch(quicksave.created_at)
+ QuicksavesRollback( site_id, quicksave, version ) {
site = this.dialog_site.site
- should_proceed = confirm("Will rollback all themes/plugins on " + site.name + " to " + date + ". Proceed?")
+ environment = this.dialog_site.environment_selected
+ created_at = quicksave.created_at
+ if ( version == 'previous' ) {
+ created_at = quicksave.previous_created_at
+ }
+ date = this.$options.filters.pretty_timestamp_epoch(created_at)
+ should_proceed = confirm("Will rollback all themes/plugins on " + environment.home_url + " to " + date + ". Proceed?")
if ( ! should_proceed ) {
return;
@@ -12491,25 +12498,60 @@ new Vue({
job_id = Math.round((new Date()).getTime());
this.jobs.push({"job_id": job_id,"description": description, "status": "queued", stream: []});
- var data = {
- 'action': 'captaincore_install',
- 'post_id': site.site_id,
- 'hash': quicksave.hash,
- 'command': 'quicksave_rollback',
- 'environment': this.dialog_site.environment_selected.environment,
- };
-
- self = this;
-
- axios.post( ajaxurl, Qs.stringify( data ) )
- .then( response => {
- quicksave.loading = false;
- self.jobs.filter(job => job.job_id == job_id)[0].job_id = response.data;
- self.runCommand( response.data );
- self.snackbar.message = "Rollback in process.";
- self.snackbar.show = true;
+ axios.post(
+ `/wp-json/captaincore/v1/quicksaves/${quicksave.hash}/rollback`, {
+ site_id: site.site_id,
+ environment: environment.environment,
+ version: version,
+ type: "all"
+ },
+ { headers: {'X-WP-Nonce':this.wp_nonce} }
+ )
+ .then(response => {
+ this.jobs.filter(job => job.job_id == job_id)[0].job_id = response.data;
+ quicksave.loading = false
+ this.runCommand( response.data );
+ this.snackbar.message = "Rollback in progress.";
+ this.snackbar.show = true;
+ })
+ },
+ rollbackUpdates( site_id, quicksave, previous ) {
+ hash = quicksave.hash_after
+ created_at = quicksave.created_at
+ if ( previous ) {
+ hash = quicksave.hash_before
+ created_at = quicksave.started_at
+ }
+ date = this.$options.filters.pretty_timestamp_epoch(created_at)
+ site = this.dialog_site.site
+ environment = this.dialog_site.environment_selected
+ should_proceed = confirm("Will rollback all themes/plugins on " + environment.home_url + " to " + date + ". Proceed?")
+
+ if ( ! should_proceed ) {
+ return;
+ }
+
+ // Start job
+ description = "Quicksave rollback all themes/plugins on " + site.name + " to " + date + ".";
+ job_id = Math.round((new Date()).getTime());
+ this.jobs.push({"job_id": job_id,"description": description, "status": "queued", stream: []});
+
+ axios.post(
+ `/wp-json/captaincore/v1/quicksaves/${hash}/rollback`, {
+ site_id: site.site_id,
+ environment: environment.environment,
+ version: 'this',
+ type: "all"
+ },
+ { headers: {'X-WP-Nonce':this.wp_nonce} }
+ )
+ .then(response => {
+ this.jobs.filter(job => job.job_id == job_id)[0].job_id = response.data;
+ quicksave.view_quicksave = false;
+ this.runCommand( response.data );
+ this.snackbar.message = "Rollback in progress.";
+ this.snackbar.show = true;
})
- .catch( error => console.log( error ) );
},
viewQuicksavesChanges( site_id, quicksave ) {