From ae62daf588773c09a206fc0493397cd92cebf52a Mon Sep 17 00:00:00 2001 From: Erik Clarizio Date: Fri, 2 Dec 2016 07:42:23 -0800 Subject: [PATCH 1/5] Add new retrieve git datastore click handler in GitImport javascript https://bugzilla.redhat.com/show_bug.cgi?id=1393982 --- app/assets/javascripts/git_import.js | 48 +++++++++ spec/javascripts/git_import_spec.js | 148 +++++++++++++++++++++++++++ 2 files changed, 196 insertions(+) create mode 100644 app/assets/javascripts/git_import.js create mode 100644 spec/javascripts/git_import_spec.js diff --git a/app/assets/javascripts/git_import.js b/app/assets/javascripts/git_import.js new file mode 100644 index 00000000000..3012b0422eb --- /dev/null +++ b/app/assets/javascripts/git_import.js @@ -0,0 +1,48 @@ +/* global miqSparkleOn miqSparkleOff showErrorMessage clearMessages */ + +var GitImport = { + retrieveDatastoreClickHandler: function() { + $('.git-retrieve-datastore').click(function(event) { + event.preventDefault(); + miqSparkleOn(); + clearMessages(); + + $.post('retrieve_git_datastore', $('#retrieve-git-datastore-form').serialize(), function(data) { + var parsedData = JSON.parse(data); + var messages = parsedData.message; + if (messages && messages.level === "error") { + showErrorMessage(messages.message); + miqSparkleOff(); + } else { + GitImport.pollForGitTaskCompletion(parsedData); + } + }); + }); + }, + + pollForGitTaskCompletion: function(gitData) { + $.get('check_git_task', gitData, function(data) { + var parsedData = JSON.parse(data); + if (parsedData.state) { + setTimeout(GitImport.pollForGitTaskCompletion, 1500, gitData); + } else { + GitImport.gitTaskCompleted(parsedData); + } + }); + }, + + gitTaskCompleted: function(data) { + if (data.success) { + var postMessageData = { + git_repo_id: data.git_repo_id, + git_branches: data.git_branches, + git_tags: data.git_tags, + message: data.message + }; + + parent.postMessage(postMessageData, '*'); + } else { + parent.postMessage({message: data.message}, '*'); + } + }, +}; diff --git a/spec/javascripts/git_import_spec.js b/spec/javascripts/git_import_spec.js new file mode 100644 index 00000000000..af32a996fd2 --- /dev/null +++ b/spec/javascripts/git_import_spec.js @@ -0,0 +1,148 @@ +describe('GitImport', function() { + describe('#retrieveDatastoreClickHandler', function() { + var retrieveGitDatastoreCallback; + + beforeEach(function() { + var html = ''; + html += '
'; + html += ' '; + html += '