all files / lib/ui/ SaveAsForm.js

61.29% Statements 19/31
12.5% Branches 1/8
40% Functions 2/5
63.33% Lines 19/30
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62                                                                                      
var _ = require('lodash');
 
var BaseWidget = require('base-widget');
var Field = require('editor-widget').Field;
var Slap = require('./Slap');
var BaseForm = require('./BaseForm');
 
SaveAsForm._label = " save as: ";
function SaveAsForm (opts) {
  var self = this;
 
  Iif (!(self instanceof SaveAsForm)) return new SaveAsForm(opts);
 
  BaseForm.call(self, _.merge({
    field: {left: SaveAsForm._label.length}
  }, Slap.global.options.form.saveAs, opts));
 
  self.saveAsLabel = new BaseWidget(_.merge({
    parent: self,
    tags: true,
    content: SaveAsForm._label,
    top: 0,
    height: 1,
    left: 0,
    width: SaveAsForm._label.length,
    style: self.options.style
  }, self.options.saveAsLabel));
 
  self.pathField = new Field(_.merge({
    parent: self,
    top: 0,
    left: SaveAsForm._label.length,
    right: 0
  }, Slap.global.options.editor, Slap.global.options.field, self.options.pathField));
}
SaveAsForm.prototype.__proto__ = BaseForm.prototype;
 
SaveAsForm.prototype._initHandlers = function () {
  var self = this;
  self.on('show', function () {
    self.pathField.textBuf.setText(self.pane.editor.textBuf.getPath() || '');
    self.pathField.selection.setHeadPosition([0, Infinity]);
    self.pathField.focus();
  });
  self.on('submit', function () {
    var path = self.pathField.textBuf.getText();
    if (!path) {
      self.screen.slap.header.message("couldn't save, no filename passed", 'error');
      return;
    }
    self.pane.save(path).done(function (newPath) {
      if (newPath) {
        self.hide();
        self.emit('save', newPath);
      }
    });
  });
  return BaseForm.prototype._initHandlers.apply(self, arguments);
}
 
module.exports = SaveAsForm;