function makeUndoable(node) {
  $('.undoable').remove();
  node.addClass('undoable');
  $('.undo').not('#undo_template').remove();
  const button = $('#undo_template').clone();
  button.removeAttr('id');
  node.after(button);
  button.show('slow');
}
/**
 * Marks the given node for possible future undo. Adds an "undo" button to do
 * it. Deletes any preexisting undoable nodes and undo buttons.
 * @param {!Node} node The DOM fragment to hide and re-show.
 */
Marks the given node for possible future undo. Adds an "undo" button to do
it. Deletes any preexisting undoable nodes and undo buttons.
@param {!Node} node The DOM fragment to hide and re-show.
Marks the given node for possible future undo . Adds an " undo " button to do it . Deletes any preexisting undoable nodes and undo buttons . @param { !Node } node The DOM fragment to hide and re - show .
function makeUndoable(node) {
  $('.undoable').remove();
  node.addClass('undoable');
  $('.undo').not('#undo_template').remove();
  const button = $('#undo_template').clone();
  button.removeAttr('id');
  node.after(button);
  button.show('slow');
}
function makeUndoable ( node ) { $ ( '.undoable' ) . remove ( ) ; node . addClass ( 'undoable' ) ; $ ( '.undo' ) . not ( '#undo_template' ) . remove ( ) ; const button = $ ( '#undo_template' ) . clone ( ) ; button . removeAttr ( 'id' ) ; node . after ( button ) ; button . show ( 'slow' ) ; }
Marks the given node for possible future undo.
Marks the given node for possible future undo .