Enable snippet exporting.

This commit is contained in:
Jason Croft 2016-05-12 12:28:08 -04:00
parent c16345ab12
commit 30e602a740
3 changed files with 103 additions and 7 deletions

View file

@ -554,8 +554,8 @@ var ui = {
markdown: $(".ui-view-area .markdown-body")
},
modal: {
snippetProjects: $("#snippetImportModalProjects"),
snippetSnippets: $("#snippetImportModalSnippets")
snippetImportProjects: $("#snippetImportModalProjects"),
snippetImportSnippets: $("#snippetImportModalSnippets")
}
};
@ -1150,7 +1150,33 @@ ui.toolbar.export.googleDrive.click(function (e) {
//export to gist
ui.toolbar.export.gist.attr("href", noteurl + "/gist");
//export to snippet
ui.toolbar.export.snippet.attr("href", noteurl + "/snippet");
ui.toolbar.export.snippet.click(function() {
$.get(serverurl + '/gitlab')
.success(function (data) {
$("#snippetExportModalAccessToken").val(data.accesstoken);
$("#snippetExportModalBaseURL").val(data.baseURL);
$("#snippetExportModalLoading").hide();
$("#snippetExportModal").modal('toggle');
$("#snippetExportModalProjects").find('option').remove().end().append('<option value="init" selected="selected" disabled="disabled">Select From Available Projects</option>');
if (data.projects) {
data.projects.sort(function(a,b) {
return (a.path_with_namespace < b.path_with_namespace) ? -1 : ((a.path_with_namespace > b.path_with_namespace) ? 1 : 0);
});
data.projects.forEach(function(project) {
$('<option>').val(project.id).text(project.path_with_namespace).appendTo("#snippetExportModalProjects");
});
$("#snippetExportModalProjects").prop('disabled',false);
}
$("#snippetExportModalLoading").hide();
})
.error(function (data) {
showMessageModal('<i class="fa fa-gitlab"></i> Import from Snippet', 'Unable to fetch gitlab parameters :(', '', '', false);
})
.complete(function () {
//na
});
return false;
});
//import from dropbox
ui.toolbar.import.dropbox.click(function () {
var options = {
@ -1256,7 +1282,7 @@ ui.toolbar.beta.slide.attr("href", noteurl + "/slide");
//modal actions
//snippet projects
ui.modal.snippetProjects.change(function() {
ui.modal.snippetImportProjects.change(function() {
var accesstoken = $("#snippetImportModalAccessToken").val(),
baseURL = $("#snippetImportModalBaseURL").val(),
project = $("#snippetImportModalProjects").val();
@ -1280,7 +1306,7 @@ ui.modal.snippetProjects.change(function() {
});
});
//snippet snippets
ui.modal.snippetSnippets.change(function() {
ui.modal.snippetImportSnippets.change(function() {
var project = $("#snippetImportModalProjects").val(),
snippet = $("#snippetImportModalSnippets").val();
@ -1478,6 +1504,31 @@ $("#snippetImportModalConfirm").click(function () {
}
});
//snippet export modal
$("#snippetExportModalConfirm").click(function() {
var accesstoken = $("#snippetExportModalAccessToken").val(),
baseURL = $("#snippetExportModalBaseURL").val(),
data = {
title: $("#snippetExportModalTitle").val(),
file_name: $("#snippetExportModalFileName").val(),
code: editor.getValue(),
visibility_level: $("#snippetExportModalVisibility").val()
};
$("#snippetExportModalLoading").show();
var fullURL = baseURL + '/api/v3/projects/' + $("#snippetExportModalProjects").val() + '/snippets?access_token=' + accesstoken;
$.post(fullURL
, data
, function(ret) {
$("#snippetExportModalLoading").hide();
$('#snippetExportModal').modal('hide');
var redirect = baseURL + '/' + $("#snippetExportModalProjects option[value='" + $("#snippetExportModalProjects").val() + "']").text() + '/snippets/' + ret.id;
showMessageModal('<i class="fa fa-gitlab"></i> Export to Snippet', 'Export Successful!', redirect, 'View Snippet Here', true);
}
, 'json'
);
});
function parseToEditor(data) {
var parsed = toMarkdown(data);
if (parsed)