Skip to content
This repository has been archived by the owner on Dec 27, 2022. It is now read-only.

Commit

Permalink
Merge a268785 into ef46389
Browse files Browse the repository at this point in the history
  • Loading branch information
westonruter committed Feb 25, 2017
2 parents ef46389 + a268785 commit 861baff
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 90 deletions.
26 changes: 4 additions & 22 deletions js/compat/customize-snapshots.js
Expand Up @@ -348,7 +348,7 @@
}
} );

snapshot.editControlSettings.bind( function() {
snapshot.editControlSettings.bind( 'change', function() {
snapshot.snapshotButton.prop( 'disabled', false );
snapshot.updateButtonText();
} );
Expand Down Expand Up @@ -390,18 +390,6 @@
api.state( 'saved' )._value = true;
},

/**
* Toggles date notification.
*
* @return {void}.
*/
toggleDateNotification: function showDateNotification() {
var snapshot = this;
if ( ! _.isEmpty( snapshot.dateNotification ) ) {
snapshot.dateNotification.toggle( ! snapshot.isFutureDate() );
}
},

/**
* Overrides the autoSaveEditBox method used in api.Snapshots
* because we do not auto save in < 4.7.
Expand Down Expand Up @@ -480,13 +468,11 @@
populateSetting: function populateSetting() {
var snapshot = this,
date = snapshot.getDateFromInputs(),
scheduled, isDirtyDate, editControlSettings;
scheduled, isDirtyDate;

editControlSettings = _.extend( {}, snapshot.editControlSettings.get() );
snapshot.editControlSettings( 'title' ).set( snapshot.snapshotTitle.val() );

if ( ! date || ! snapshot.data.currentUserCanPublish ) {
editControlSettings.title = snapshot.snapshotTitle.val();
snapshot.editControlSettings.set( editControlSettings );
return;
}

Expand All @@ -495,11 +481,7 @@

isDirtyDate = scheduled && snapshot.isFutureDate();
snapshot.dirtyScheduleDate.set( isDirtyDate );

editControlSettings.title = snapshot.snapshotTitle.val();
editControlSettings.date = snapshot.formatDate( date );

snapshot.editControlSettings.set( editControlSettings );
snapshot.editControlSettings( 'date' ).set( snapshot.formatDate( date ) );

snapshot.updateCountdown();
snapshot.editContainer.find( '.reset-time' ).toggle( scheduled );
Expand Down
124 changes: 60 additions & 64 deletions js/customize-snapshots.js
Expand Up @@ -45,14 +45,15 @@
snapshot.data.uuid = snapshot.data.uuid || api.settings.changeset.uuid;
snapshot.data.title = snapshot.data.title || snapshot.data.uuid;

snapshot.editBoxAutoSaveTriggered = false;

if ( api.state.has( 'changesetStatus' ) && api.state( 'changesetStatus' ).get() ) {
api.state( 'snapshot-exists' ).set( true );
}

snapshot.editControlSettings = new api.Value( {
title: snapshot.data.title,
date: snapshot.data.publishDate
} );
snapshot.editControlSettings = new api.Values();
snapshot.editControlSettings.create( 'title', snapshot.data.title );
snapshot.editControlSettings.create( 'date', snapshot.data.publishDate );

api.bind( 'change', function() {
api.state( 'snapshot-submitted' ).set( false );
Expand Down Expand Up @@ -119,7 +120,7 @@
}

if ( snapshot.snapshotTitle && snapshot.snapshotTitle.val() && 'publish' !== status ) {
requestData.title = snapshot.editControlSettings.get().title;
requestData.title = snapshot.editControlSettings( 'title' ).get();
}

if ( ! _.isEmpty( snapshot.editContainer ) && snapshot.isFutureDate() && 'publish' !== status ) {
Expand Down Expand Up @@ -147,7 +148,7 @@
*/
sendUpdateSnapshotRequest: function sendUpdateSnapshotRequest( options ) {
var snapshot = this,
request, data, publishStatus;
request, data, isPublishStatus;

data = _.extend(
{
Expand All @@ -162,7 +163,7 @@

request = api.previewer.save( data );

publishStatus = 'publish' === data.status;
isPublishStatus = 'publish' === data.status;

request.always( function( response ) {
snapshot.spinner.removeClass( 'is-active' );
Expand Down Expand Up @@ -197,10 +198,10 @@

api.state( 'snapshot-exists' ).set( true );

snapshot.statusButton.disableSelect.set( publishStatus );
snapshot.statusButton.disableSelect.set( isPublishStatus );
snapshot.statusButton.disbleButton.set( true );
snapshot.snapshotExpandButton.toggle( ! publishStatus );
snapshot.previewLink.toggle( ! publishStatus );
snapshot.snapshotExpandButton.toggle( ! isPublishStatus );
snapshot.previewLink.toggle( ! isPublishStatus );

snapshot.statusButton.updateButtonText( 'alt-text' );

Expand Down Expand Up @@ -385,7 +386,7 @@
} );
} );

snapshot.editControlSettings.bind( function() {
snapshot.editControlSettings.bind( 'change', function() {
if ( api.state( 'snapshot-saved' ).get() ) {
snapshot.submitButton.prop( 'disabled', false );
}
Expand Down Expand Up @@ -430,7 +431,7 @@
} );
} );

snapshot.editControlSettings.bind( function() {
snapshot.editControlSettings.bind( 'change', function() {
if ( api.state( 'snapshot-saved' ).get() ) {
snapshot.saveButton.prop( 'disabled', false );
}
Expand All @@ -444,7 +445,7 @@
*/
editSnapshotUI: function editSnapshotUI() {
var snapshot = this, sliceBegin = 0,
sliceEnd = -2, updateUI;
sliceEnd = -2, updateUI, toggleDateNotification;

snapshot.snapshotEditContainerDisplayed = new api.Value( false );

Expand All @@ -469,6 +470,7 @@
snapshot.editContainer.hide().appendTo( $( '#customize-header-actions' ) );
snapshot.dateNotification = snapshot.editContainer.find( '.snapshot-future-date-notification' );
snapshot.countdown = snapshot.editContainer.find( '.snapshot-scheduled-countdown' );
snapshot.dateControl = snapshot.editContainer.find( '.snapshot-control-date' );

if ( snapshot.data.currentUserCanPublish ) {

Expand Down Expand Up @@ -498,27 +500,35 @@
snapshot.snapshotTitle.on( 'input', updateUI );
}

toggleDateNotification = function() {
if ( ! _.isEmpty( snapshot.dateNotification ) ) {
snapshot.dateNotification.toggle( ! snapshot.isFutureDate() );
}
};

// Set up toggling of the schedule container.
snapshot.snapshotEditContainerDisplayed.bind( function( isDisplayed ) {

snapshot.dateControl.toggle( 'future' === snapshot.statusButton.value.get() );

if ( isDisplayed ) {
snapshot.editContainer.stop().slideDown( 'fast' ).attr( 'aria-expanded', 'true' );
snapshot.snapshotExpandButton.attr( 'aria-pressed', 'true' );
snapshot.snapshotExpandButton.prop( 'title', snapshot.data.i18n.collapseSnapshotScheduling );
snapshot.toggleDateNotification();
toggleDateNotification();
} else {
snapshot.editContainer.stop().slideUp( 'fast' ).attr( 'aria-expanded', 'false' );
snapshot.snapshotExpandButton.attr( 'aria-pressed', 'false' );
snapshot.snapshotExpandButton.prop( 'title', snapshot.data.i18n.expandSnapshotScheduling );
}
} );

snapshot.editControlSettings.bind( function() {
snapshot.toggleDateNotification();
snapshot.editControlSettings( 'date' ).bind( function() {
toggleDateNotification();
} );

// Toggle schedule container when clicking the button.
snapshot.snapshotExpandButton.on( 'click', function( event ) {
event.preventDefault();
snapshot.snapshotExpandButton.on( 'click', function() {
snapshot.snapshotEditContainerDisplayed.set( ! snapshot.snapshotEditContainerDisplayed.get() );
} );

Expand Down Expand Up @@ -555,7 +565,7 @@
snapshot.snapshotEditContainerDisplayed.set( false );

api.state( 'snapshot-saved' ).bind( function( saved ) {
if ( saved ) {
if ( saved && ! snapshot.dirtyEditControlValues ) {
snapshot.updateSnapshotEditControls();
}
} );
Expand Down Expand Up @@ -587,18 +597,21 @@
*/
autoSaveEditBox: function() {
var snapshot = this, update,
delay = 2000, status, isValidChangesetStatus;
delay = 2000, status, isValidChangesetStatus, isFutureDateAndStatus;

snapshot.updatePending = false;
snapshot.dirtyEditControlValues = false;

update = _.debounce( function() {
status = snapshot.statusButton.value.get();
if ( 'publish' === status || ! snapshot.isFutureDate() ) {
isFutureDateAndStatus = 'future' === status && ! snapshot.isFutureDate();
if ( 'publish' === status || isFutureDateAndStatus ) {
snapshot.updatePending = false;
return;
}
snapshot.updatePending = true;
snapshot.editBoxAutoSaveTriggered = true;
snapshot.dirtyEditControlValues = false;
snapshot.updateSnapshot( status ).done( function() {
snapshot.updatePending = snapshot.dirtyEditControlValues;
if ( ! snapshot.updatePending ) {
Expand All @@ -609,15 +622,22 @@
snapshot.dirtyEditControlValues = false;
} ).fail( function() {
snapshot.updatePending = false;
snapshot.dirtyEditControlValues = true;
} );
}, delay );

snapshot.editControlSettings.bind( function() {
snapshot.editControlSettings( 'title' ).bind( function() {
snapshot.dirtyEditControlValues = true;
if ( ! snapshot.updatePending ) {
update();
}
} );

snapshot.editControlSettings( 'date' ).bind( function() {
if ( snapshot.isFutureDate() ) {
snapshot.dirtyEditControlValues = true;
if ( ! snapshot.updatePending ) {
update();
} else {
snapshot.dirtyEditControlValues = true;
}
}
} );
Expand All @@ -636,36 +656,17 @@
// @todo Show loader and disable button while auto saving.
api.bind( 'changeset-save', function() {
if ( isValidChangesetStatus() ) {
snapshot.updatePending = true;
snapshot.extendPreviewerQuery();
}
} );

api.bind( 'changeset-saved', function() {
api.state( 'saved' ).set( true ); // Suppress the AYS dialog.

if ( isValidChangesetStatus() ) {
snapshot.updatePending = false;
if ( 'auto-draft' !== api.state( 'changesetStatus' ).get() ) {
api.state( 'saved' ).set( true ); // Suppress the AYS dialog.
}
});
},

/**
* Toggles date notification.
*
* @return {void}.
*/
toggleDateNotification: function showDateNotification() {
var snapshot = this;
if ( ! _.isEmpty( snapshot.dateNotification ) ) {
snapshot.dateNotification.toggle( ! snapshot.isFutureDate() );

if ( 'future' === snapshot.statusButton.value.get() ) {
snapshot.statusButton.disbleButton.set( ! snapshot.isFutureDate() );
}
}
},

/**
* Get the preview URL with the snapshot UUID attached.
*
Expand Down Expand Up @@ -873,23 +874,17 @@
populateSetting: function populateSetting() {
var snapshot = this,
date = snapshot.getDateFromInputs(),
scheduled, editControlSettings;
scheduled;

editControlSettings = _.extend( {}, snapshot.editControlSettings.get() );
snapshot.editControlSettings( 'title' ).set( snapshot.snapshotTitle.val() );

if ( ! date || ! snapshot.data.currentUserCanPublish ) {
editControlSettings.title = snapshot.snapshotTitle.val();
snapshot.editControlSettings.set( editControlSettings );
return;
}

date.setSeconds( 0 );
scheduled = snapshot.formatDate( date ) !== snapshot.data.publishDate;

editControlSettings.title = snapshot.snapshotTitle.val();
editControlSettings.date = snapshot.formatDate( date );

snapshot.editControlSettings.set( editControlSettings );
snapshot.editControlSettings( 'date' ).set( snapshot.formatDate( date ) );

if ( 'future' === snapshot.statusButton.value.get() ) {
snapshot.updateCountdown();
Expand Down Expand Up @@ -969,11 +964,11 @@

api.previewer.query = function() {
var retval = originalQuery.apply( this, arguments );
if ( ! _.isEmpty( snapshot.editControlSettings.get() ) ) {
retval.customize_changeset_title = snapshot.editControlSettings.get().title;
if ( snapshot.isFutureDate() ) {
retval.customize_changeset_date = snapshot.editControlSettings.get().date;
}
if ( snapshot.editControlSettings( 'title' ).get() ) {
retval.customize_changeset_title = snapshot.editControlSettings( 'title' ).get();
}
if ( snapshot.editControlSettings( 'date' ).get() && snapshot.isFutureDate() ) {
retval.customize_changeset_date = snapshot.editControlSettings( 'date' ).get();
}
return retval;
};
Expand Down Expand Up @@ -1083,12 +1078,12 @@
},

/**
* Remove 'customize_changeset_status' if its already set.
* Remove 'customize_changeset_status' if it is being auto saved for edit box to avoid revisions.
*
* @return {void}
*/
prefilterAjax: function prefilterAjax() {
var removeParam, isSameStatus;
var snapshot = this, removeParam;

if ( ! api.state.has( 'changesetStatus' ) ) {
return;
Expand All @@ -1107,12 +1102,13 @@
};

$.ajaxPrefilter( function( options, originalOptions ) {
if ( ! originalOptions.data ) {
if ( ! originalOptions.data || ! snapshot.editBoxAutoSaveTriggered ) {
return;
}
isSameStatus = api.state( 'changesetStatus' ).get() === originalOptions.data.customize_changeset_status;
if ( 'customize_save' === originalOptions.data.action && isSameStatus && options.data ) {

if ( 'customize_save' === originalOptions.data.action && options.data && originalOptions.data.customize_changeset_status ) {
options.data = removeParam( options.data, 'customize_changeset_status' );
snapshot.editBoxAutoSaveTriggered = false;
}
} );
}
Expand Down

0 comments on commit 861baff

Please sign in to comment.