Unverified Commit b52b394b authored by Claude Petit's avatar Claude Petit Committed by GitHub
Browse files

Add base url support (#140)

parent ccc5049b
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -2,8 +2,9 @@

///// represents a single document

var haste_document = function() {
var haste_document = function(app) {
  this.locked = false;
  this.app = app;
};

// Escapes HTML tag characters
@@ -18,7 +19,7 @@ haste_document.prototype.htmlEscape = function(s) {
// Get this document from the server and lock it here
haste_document.prototype.load = function(key, callback, lang) {
  var _this = this;
  $.ajax('/documents/' + key, {
  $.ajax(_this.app.baseUrl + 'documents/' + key, {
    type: 'get',
    dataType: 'json',
    success: function(res) {
@@ -60,7 +61,7 @@ haste_document.prototype.save = function(data, callback) {
  }
  this.data = data;
  var _this = this;
  $.ajax('/documents', {
  $.ajax(_this.app.baseUrl + 'documents', {
    type: 'post',
    data: data,
    dataType: 'json',
@@ -101,7 +102,8 @@ var haste = function(appName, options) {
  // If twitter is disabled, hide the button
  if (!options.twitter) {
    $('#box2 .twitter').hide();
  }
  };
  this.baseUrl = options.baseUrl || '/';
};

// Set the page title - include the appName
@@ -148,9 +150,9 @@ haste.prototype.configureKey = function(enable) {
// and set up for a new one
haste.prototype.newDocument = function(hideHistory) {
  this.$box.hide();
  this.doc = new haste_document();
  this.doc = new haste_document(this);
  if (!hideHistory) {
    window.history.pushState(null, this.appName, '/');
    window.history.pushState(null, this.appName, this.baseUrl);
  }
  this.setTitle();
  this.lightKey();
@@ -209,7 +211,7 @@ haste.prototype.loadDocument = function(key) {
  var parts = key.split('.', 2);
  // Ask for what we want
  var _this = this;
  _this.doc = new haste_document();
  _this.doc = new haste_document(this);
  _this.doc.load(parts[0], function(ret) {
    if (ret) {
      _this.$code.html(ret.value);
@@ -244,7 +246,7 @@ haste.prototype.lockDocument = function() {
    else if (ret) {
      _this.$code.html(ret.value);
      _this.setTitle(ret.key);
      var file = '/' + ret.key;
      var file = _this.baseUrl + ret.key;
      if (ret.language) {
        file += '.' + _this.lookupExtensionByType(ret.language);
      }
@@ -303,7 +305,7 @@ haste.prototype.configureButtons = function() {
      },
      shortcutDescription: 'control + shift + r',
      action: function() {
        window.location.href = '/raw/' + _this.doc.key;
        window.location.href = _this.baseUrl + 'raw/' + _this.doc.key;
      }
    },
    {
+7 −5
Original line number Diff line number Diff line
@@ -17,9 +17,9 @@
			var app = null;
			// Handle pops
			var handlePop = function(evt) {
				var path = evt.target.location.pathname;
				if (path === '/') { app.newDocument(true); }
				else { app.loadDocument(path.substring(1, path.length)); }
				var path = evt.target.location.href;
				if (path === app.baseUrl) { app.newDocument(true); }
				else { app.loadDocument(path.split('/').slice(-1)[0]); }
			};
			// Set up the pop state to handle loads, skipping the first load
			// to make chrome behave like others:
@@ -31,7 +31,9 @@
			}, 1000);
			// Construct app and load initial path
			$(function() {
				app = new haste('hastebin', { twitter: true });
				var baseUrl = window.location.href.split('/');
				baseUrl = baseUrl.slice(0, baseUrl.length - 1).join('/') + '/';
				app = new haste('hastebin', { twitter: true, baseUrl: baseUrl });
				handlePop({ target: window });
			});
		</script>
@@ -44,7 +46,7 @@
		<div id="key">
		  <div id="pointer" style="display:none;"></div>
			<div id="box1">
				<a href="/about.md" class="logo"></a>
				<a href="about.md" class="logo"></a>
			</div>
			<div id="box2">
				<button class="save function button-picture">Save</button>