all files / lib/ui/ SaveAsCloseForm.js

76.92% Statements 20/26
50% Branches 1/2
33.33% Functions 2/6
90.91% Lines 20/22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40                                        
var _ = require('lodash');
 
var BaseWidget = require('base-widget');
 
var Slap = require('./Slap');
var SaveAsForm = require('./SaveAsForm');
var Button = require('./Button');
 
function SaveAsCloseForm (opts) {
  var self = this;
 
  Iif (!(self instanceof SaveAsCloseForm)) return new SaveAsCloseForm(opts);
 
  SaveAsForm.call(self, _.merge({}, Slap.global.options.saveAsCloseForm, opts));
 
  self.discardChangesButton = new Button(_.merge({
    parent: self,
    content: "Discard changes",
    top: 0,
    right: 0
  }, Slap.global.options.button.warning, self.options.discardChangesButton));
 
  self.pathField.right = BaseWidget.prototype.shrinkWidth.call(self.discardChangesButton);
}
SaveAsCloseForm.prototype.__proto__ = SaveAsForm.prototype;
 
SaveAsCloseForm.prototype._initHandlers = function () {
  var self = this;
  self.on('show', function () { self.screen.slap.header.message("unsaved changes, please save or discard", 'warning'); });
  self.on('save', function () { self.pane.close(); });
  self.on('discardChanges', function () {
    self.pane.editor.textBuf.reload();
    self.pane.close();
  });
  self.discardChangesButton.on('press', function () { self.emit('discardChanges'); });
  return SaveAsForm.prototype._initHandlers.apply(self, arguments);
};
 
module.exports = SaveAsCloseForm;