Skip to content

Commit

Permalink
Add base url support (#140)
Browse files Browse the repository at this point in the history
  • Loading branch information
doodadjs authored Mar 6, 2023
1 parent ccc5049 commit b52b394
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 14 deletions.
20 changes: 11 additions & 9 deletions static/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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) {
Expand Down Expand Up @@ -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',
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -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;
}
},
{
Expand Down
12 changes: 7 additions & 5 deletions static/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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>
Expand All @@ -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>
Expand Down

0 comments on commit b52b394

Please sign in to comment.