Aaron Parecki
7 years ago
No known key found for this signature in database
GPG Key ID: 276C2817346D6056
4 changed files with 226 additions and 0 deletions
-
102controllers/controllers.php
-
5public/css/style.css
-
116views/new-code.php
-
3views/partials/code-bookmarklet.php
@ -0,0 +1,116 @@ |
|||||
|
<div class="narrow"> |
||||
|
<?= partial('partials/header') ?>
|
||||
|
|
||||
|
<div style="clear: both;" class="notice-pad"> |
||||
|
<div class="alert alert-success hidden" id="test_success"><strong>Success!</strong><br>Your post should be on your website now!<br><a href="" id="post_href">View your post</a></div> |
||||
|
<div class="alert alert-danger hidden" id="test_error"><strong>Your endpoint did not return a Location header.</strong><br>See <a href="/creating-a-micropub-endpoint">Creating a Micropub Endpoint</a> for more information.</div> |
||||
|
</div> |
||||
|
|
||||
|
<form role="form" style="margin-top: 20px;" id="note_form"> |
||||
|
|
||||
|
|
||||
|
<div class="form-group" id="note-name"> |
||||
|
<label for="note_name">File Name (optional)</label> |
||||
|
<input type="text" id="note_name" value="<?= htmlspecialchars($this->edit_data['name']) ?>" class="form-control" placeholder=""> |
||||
|
</div> |
||||
|
|
||||
|
<div class="form-group"> |
||||
|
<label for="note_content">Code</label> |
||||
|
<textarea id="note_content" value="" class="form-control code-snippet" style="height: 12em;"><?= htmlspecialchars($this->edit_data['content']) ?></textarea>
|
||||
|
</div> |
||||
|
|
||||
|
<? if(!$this->url): ?>
|
||||
|
<label for="note_language">Language</label> |
||||
|
<select class="form-control" id="note_language"> |
||||
|
<?php |
||||
|
foreach($this->languages as $lang=>$exts): |
||||
|
?>
|
||||
|
<option value="<?= $lang ?>"<?= $lang == 'text' ? ' selected="selected"' : '' ?>><?= $lang ?></option>
|
||||
|
<?php |
||||
|
endforeach; |
||||
|
?>
|
||||
|
</select> |
||||
|
<? endif; ?>
|
||||
|
|
||||
|
<div style="float: right; margin-top: 6px;"> |
||||
|
<button class="btn btn-success" id="btn_post"><?= $this->url ? 'Save' : 'Post' ?></button>
|
||||
|
</div> |
||||
|
|
||||
|
<input type="hidden" id="edit_url" value="<?= $this->url ?>"> |
||||
|
</form> |
||||
|
|
||||
|
<div style="clear: both;"></div> |
||||
|
|
||||
|
<hr> |
||||
|
<div style="text-align: right;" id="bookmarklet"> |
||||
|
Bookmarklet: <a href="javascript:<?= js_bookmarklet('partials/code-bookmarklet', $this) ?>" class="btn btn-default btn-xs">code</a> |
||||
|
</div> |
||||
|
|
||||
|
</div> |
||||
|
<script> |
||||
|
$(function(){ |
||||
|
|
||||
|
var language_map = <?= json_encode($this->language_map) ?>;
|
||||
|
|
||||
|
$("#note_name").on("keyup", function(){ |
||||
|
var name = $("#note_name").val(); |
||||
|
if(name && (m=name.match(/\.([a-z]+)$/))) { |
||||
|
if(language_map[m[1]]) { |
||||
|
$("#note_language").val(language_map[m[1]]); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
$("#note_content").on('keyup', function(){ |
||||
|
var scrollHeight = document.getElementById("note_content").scrollHeight; |
||||
|
var currentHeight = parseInt($("#note_content").css("height")); |
||||
|
if(Math.abs(scrollHeight - currentHeight) > 20) { |
||||
|
$("#note_content").css("height", (scrollHeight+30)+"px"); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
$("#btn_post").click(function(){ |
||||
|
$("#btn_post").addClass("loading disabled"); |
||||
|
|
||||
|
var syndications = []; |
||||
|
$("#syndication-container button.btn-info").each(function(i,btn){ |
||||
|
syndications.push($(btn).data('syndication')); |
||||
|
}); |
||||
|
|
||||
|
var params = { |
||||
|
content: $("#note_content").val(), |
||||
|
}; |
||||
|
if($("#edit_url").val() != "") { |
||||
|
params['edit'] = $("#edit_url").val(); |
||||
|
} else { |
||||
|
params['language'] = $("#note_language").val(); |
||||
|
} |
||||
|
if($("#note_name").val() != "") { |
||||
|
params['name'] = $("#note_name").val(); |
||||
|
} |
||||
|
|
||||
|
$.post("/code", params, function(response){ |
||||
|
if(response.location != false) { |
||||
|
|
||||
|
$("#test_success").removeClass('hidden'); |
||||
|
$("#test_error").addClass('hidden'); |
||||
|
$("#post_href").attr("href", response.location); |
||||
|
$("#note_form").addClass('hidden'); |
||||
|
|
||||
|
window.location = response.location; |
||||
|
} else { |
||||
|
$("#test_success").addClass('hidden'); |
||||
|
$("#test_error").removeClass('hidden'); |
||||
|
if(response.error_details) { |
||||
|
$("#test_error").text(response.error_details); |
||||
|
} |
||||
|
$("#btn_post").removeClass("loading disabled"); |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
return false; |
||||
|
}); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
</script> |
@ -0,0 +1,3 @@ |
|||||
|
(function(){ |
||||
|
window.open("<?= Config::$base_url ?>code?"+(window.location.hostname=='<?= $this->my_hostname ?>'?"edit="+encodeURIComponent(window.location.href)+"&":"")+"token=<?= $this->token ?>"); |
||||
|
})(); |
Write
Preview
Loading…
Cancel
Save
Reference in new issue