From 476cabd10952f026f331754baf9846b1aad917cd Mon Sep 17 00:00:00 2001
From: Jason Croft
Date: Mon, 9 May 2016 17:07:02 -0400
Subject: Attach to snippet classes.
---
public/js/index.js | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'public/js')
diff --git a/public/js/index.js b/public/js/index.js
index 3f0ed593..0b10c9e0 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -496,12 +496,14 @@ var ui = {
export: {
dropbox: $(".ui-save-dropbox"),
googleDrive: $(".ui-save-google-drive"),
- gist: $(".ui-save-gist")
+ gist: $(".ui-save-gist"),
+ snippet: $(".ui-save-snippet")
},
import: {
dropbox: $(".ui-import-dropbox"),
googleDrive: $(".ui-import-google-drive"),
gist: $(".ui-import-gist"),
+ snippet: $(".ui-import-snippet"),
clipboard: $(".ui-import-clipboard")
},
beta: {
--
cgit v1.2.3
From 70f6e5bc2cbdb15ff48bdf49b09d7c4bb78ea4ba Mon Sep 17 00:00:00 2001
From: Jason Croft
Date: Mon, 9 May 2016 22:38:13 -0400
Subject: Define events for snippet actions
---
public/js/index.js | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
(limited to 'public/js')
diff --git a/public/js/index.js b/public/js/index.js
index 0b10c9e0..17516169 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -1136,6 +1136,8 @@ 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");
//import from dropbox
ui.toolbar.import.dropbox.click(function () {
var options = {
@@ -1188,6 +1190,10 @@ function buildImportFromGoogleDrive() {
ui.toolbar.import.gist.click(function () {
//na
});
+//import from snippet
+ui.toolbar.import.snippet.click(function () {
+ //na
+});
//import from clipboard
ui.toolbar.import.clipboard.click(function () {
//na
@@ -1355,6 +1361,45 @@ $("#gistImportModalConfirm").click(function () {
}
});
+// snippet import modal
+$("#snippetImportModalClear").click(function () {
+ $("#snippetImportModalContent").val('');
+});
+$("#snippetImportModalConfirm").click(function () {
+ var snippeturl = $("#snippetImportModalContent").val();
+ if (!snippeturl) return;
+ $('#snippetImportModal').modal('hide');
+ $("#snippetImportModalContent").val('');
+ if (!isValidURL(snippeturl)) {
+ showMessageModal(' Import from Snippet', 'Not a valid URL :(', '', '', false);
+ return;
+ } else {
+ // TODO: Validate against config.gitlab.baseURL
+ ui.spinner.show();
+ $.get(snippeturl)
+ .success(function (data) {
+ if (data.files) {
+ var contents = "";
+ Object.keys(data.files).forEach(function (key) {
+ contents += key;
+ contents += '\n---\n';
+ contents += data.files[key].content;
+ contents += '\n\n';
+ });
+ replaceAll(contents);
+ } else {
+ showMessageModal(' Import from Snippet', 'Unable to fetch snippet files :(', '', '', false);
+ }
+ })
+ .error(function (data) {
+ showMessageModal(' Import from Snippet', 'Not a valid Snippet URL :(', '', JSON.stringify(data), false);
+ })
+ .complete(function () {
+ ui.spinner.hide();
+ });
+ }
+});
+
function parseToEditor(data) {
var parsed = toMarkdown(data);
if (parsed)
--
cgit v1.2.3
From 3dd3e6bc3596c0bba50dca3d1789f55883e0f681 Mon Sep 17 00:00:00 2001
From: Jason Croft
Date: Wed, 11 May 2016 17:05:25 -0400
Subject: Allow importing from GitLab snippet
---
public/js/index.js | 69 +++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 48 insertions(+), 21 deletions(-)
(limited to 'public/js')
diff --git a/public/js/index.js b/public/js/index.js
index 17516169..7b22f7fa 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -243,6 +243,15 @@ var lastInfo = {
};
var personalInfo = {};
var onlineUsers = [];
+var fileTypes = {
+ "pl": "perl",
+ "cgi": "perl",
+ "js": "javascript",
+ "php": "php",
+ "sh": "bash",
+ "rb": "ruby",
+ "html": "html"
+}
//editor settings
var textit = document.getElementById("textit");
@@ -1192,7 +1201,22 @@ ui.toolbar.import.gist.click(function () {
});
//import from snippet
ui.toolbar.import.snippet.click(function () {
- //na
+ $.get(serverurl + '/gitlab')
+ .success(function (data) {
+ $("#snippetImportModalAccessToken").val(data.accesstoken);
+ $("#snippetImportModalBaseURL").val(data.baseURL);
+ $("#snippetImportModalContent").prop('disabled', false);
+ $("#snippetImportModalConfirm").prop('disabled', false);
+ $("#snippetImportModalLoading").hide();
+ $("#snippetImportModal").modal('toggle');
+ })
+ .error(function (data) {
+ showMessageModal(' Import from Snippet', 'Unable to fetch gitlab parameters :(', '', '', false);
+ })
+ .complete(function () {
+ //na
+ });
+ return false;
});
//import from clipboard
ui.toolbar.import.clipboard.click(function () {
@@ -1370,32 +1394,35 @@ $("#snippetImportModalConfirm").click(function () {
if (!snippeturl) return;
$('#snippetImportModal').modal('hide');
$("#snippetImportModalContent").val('');
- if (!isValidURL(snippeturl)) {
- showMessageModal(' Import from Snippet', 'Not a valid URL :(', '', '', false);
- return;
+ if (!/^.+\/snippets\/.+$/.test(snippeturl)) {
+ showMessageModal(' Import from Snippet', 'Not a valid Snippet URL :(', '', '', false);
} else {
- // TODO: Validate against config.gitlab.baseURL
ui.spinner.show();
- $.get(snippeturl)
- .success(function (data) {
- if (data.files) {
- var contents = "";
- Object.keys(data.files).forEach(function (key) {
- contents += key;
- contents += '\n---\n';
- contents += data.files[key].content;
- contents += '\n\n';
+ var accessToken = '?access_token=' + $("#snippetImportModalAccessToken").val();
+ var fullURL = $("#snippetImportModalBaseURL").val() + '/api/v3' + snippeturl;
+ $.get(fullURL + accessToken)
+ .success(function(data) {
+ var content = '# ' + (data.title || "Snippet Import");
+ var fileInfo = data.file_name.split('.');
+ $.get(fullURL + '/raw' + accessToken)
+ .success(function (raw) {
+ if (raw) {
+ content += "\n\n```";
+ content += fileTypes[fileInfo[1]] + "=\n";
+ content += raw;
+ content += "\n```";
+ replaceAll(content);
+ }
+ })
+ .error(function (data) {
+ showMessageModal(' Import from Snippet', 'Not a valid Snippet URL :(', '', JSON.stringify(data), false);
+ })
+ .complete(function () {
+ ui.spinner.hide();
});
- replaceAll(contents);
- } else {
- showMessageModal(' Import from Snippet', 'Unable to fetch snippet files :(', '', '', false);
- }
})
.error(function (data) {
showMessageModal(' Import from Snippet', 'Not a valid Snippet URL :(', '', JSON.stringify(data), false);
- })
- .complete(function () {
- ui.spinner.hide();
});
}
});
--
cgit v1.2.3
From c16345ab128288b92023e789f09cabb5197d1181 Mon Sep 17 00:00:00 2001
From: Jason Croft
Date: Thu, 12 May 2016 11:19:14 -0400
Subject: Can now select from available projects and snippets to build import
URL.
---
public/js/index.js | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
(limited to 'public/js')
diff --git a/public/js/index.js b/public/js/index.js
index 7b22f7fa..199c678e 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -552,6 +552,10 @@ var ui = {
codemirrorSizer: $(".ui-edit-area .CodeMirror .CodeMirror-sizer"),
codemirrorSizerInner: $(".ui-edit-area .CodeMirror .CodeMirror-sizer > div"),
markdown: $(".ui-view-area .markdown-body")
+ },
+ modal: {
+ snippetProjects: $("#snippetImportModalProjects"),
+ snippetSnippets: $("#snippetImportModalSnippets")
}
};
@@ -1209,6 +1213,17 @@ ui.toolbar.import.snippet.click(function () {
$("#snippetImportModalConfirm").prop('disabled', false);
$("#snippetImportModalLoading").hide();
$("#snippetImportModal").modal('toggle');
+ $("#snippetImportModalProjects").find('option').remove().end().append('');
+ 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) {
+ $('');
+ data.forEach(function(snippet) {
+ $('');
+ 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) {
+ $('