diff --git a/admin/assets/js/get_snippets.js b/admin/assets/js/get_snippets.js
new file mode 100644
index 000000000..1ecb6f60a
--- /dev/null
+++ b/admin/assets/js/get_snippets.js
@@ -0,0 +1,535 @@
+// start the moment the document is ready
+var returnError = '
');
+ jQuery('#libraries-display').show();
+ jQuery('#libraries-grid').trigger('display.uk.check');
+ }, 1000);
+}
+
+// set the snippets
+function setLibrary(name) {
+ // get useful ID
+ var keyID = getKeyID(name);
+ // build the library display
+ var html = '
';
+ html += '
';
+ html += '
' + name + '
';
+ html += '';
+ // set the data buttons
+ html += setLibButtons(name);
+ // close the box panel
+ html += '
';
+ html += '
';
+ // now we have the library
+ jQuery('#libraries-grid').append(html);
+}
+
+function setLibButtons(name) {
+ return '';
+}
+
+// get the snippets
+function getSnippets(path, libraryName) {
+ jQuery('#loading').show();
+ // get local values if set
+ var _paths = jQuery.jStorage.get('JCB-Snippets-Paths', null);
+ // always reset the grid
+ jQuery('#snippets-grid').html('');
+ // always hide libraries
+ jQuery('#libraries-display').hide();
+ // set the ajax scope
+ ajaxcall = 'snippets';
+ fromLocal = false;
+ if (_paths) {
+ setSnippets(_paths, libraryName);
+ jQuery('#snippets-github').html('
';
+ html += snippet.heading + '';
+ // set the data buttons
+ html += setDataButtons(snippet, key, status);
+ // set the snippet ref button
+ html += setRefButtons(snippet, key, status, keyID);
+ // set the contributor buttons
+ html += setContributorButtons(snippet, key);
+ // close the box panel
+ html += '
';
+ html += '
';
+ // now we have the snippet
+ jQuery('#snippets-grid').append(html);
+}
+
+// set the snippet status
+function getSnippetStatus(snippet, key) {
+ // check if JCB already has this snippet
+ if(local_snippets.hasOwnProperty(key)){
+ // first get local time stamp
+ var local_created = strtotime(local_snippets[key].created);
+ var local_modified = strtotime(local_snippets[key].modified);
+ // now get github time stamps
+ var created = strtotime(snippet.created);
+ var modified = strtotime(snippet.modified);
+ // work out the status
+ if (local_created == created) {
+ if (local_modified == modified) {
+ return 'equal';
+ } else if (local_modified > modified) {
+ return 'ahead';
+ } else if (local_modified < modified) {
+ return 'behind';
+ }
+ }
+ return 'diverged';
+ }
+ return 'new';
+}
+
+function setDataButtons(snippet, key, status) {
+ var html = '
';
+ html += '';
+ html += '';
+ html += '';
+ html += '
';
+ // return data buttons
+ return html;
+}
+
+function setRefButtons(snippet, key, status, keyID) {
+ var html = '
';");
- // need to add some language strings
- $this->document->addScriptDeclaration("var lang_Community_Snippets = '".JText::_('COM_COMPONENTBUILDER_JCB_COMMUNITY_SNIPPETS')."';");
- $this->document->addScriptDeclaration("var lang_Snippets = '".JText::_('COM_COMPONENTBUILDER_SNIPPETS')."';");
- $this->document->addScriptDeclaration("var lang_Snippet = '".JText::_('COM_COMPONENTBUILDER_SNIPPET')."';");
- $this->document->addScriptDeclaration("var lang_Snippet_Tooltip = '".JText::_('COM_COMPONENTBUILDER_VIEW_SNIPPET_OF_COMMUNITY_VERSION')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippet = '".JText::_('COM_COMPONENTBUILDER_GET_SNIPPET')."';");
- $this->document->addScriptDeclaration("var lang_Dont_Get_Snippet = '".JText::_('COM_COMPONENTBUILDER_LOCAL_SNIPPET')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippet_Tooltip = '".JText::_('COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_UPDATE_THE_LOCAL_VERSION')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippet_New_Tooltip = '".JText::_('COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_INSTALL_IT_LOCALLY')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippet_Dont_Tooltip = '".JText::_('COM_COMPONENTBUILDER_NO_NEED_TO_GET_IT_SINCE_IT_IS_ALREADY_IN_SYNC_WITH_YOUR_LOCAL_VERSION')."';");
- $this->document->addScriptDeclaration("var lang_Usage = '".JText::_('COM_COMPONENTBUILDER_USAGE')."';");
- $this->document->addScriptDeclaration("var lang_Usage_Tooltip = '".JText::_('COM_COMPONENTBUILDER_VIEW_USAGE_OF_COMMUNITY_VERSION')."';");
- $this->document->addScriptDeclaration("var lang_Description = '".JText::_('COM_COMPONENTBUILDER_DESCRIPTION')."';");
- $this->document->addScriptDeclaration("var lang_Description_Tooltip = '".JText::_('COM_COMPONENTBUILDER_VIEW_DESCRIPTION_OF_COMMUNITY_VERSION')."';");
- $this->document->addScriptDeclaration("var lang_View_Blame = '".JText::_('COM_COMPONENTBUILDER_VIEW_BLAME')."';");
- $this->document->addScriptDeclaration("var lang_View_Blame_Tooltip = '".JText::_('COM_COMPONENTBUILDER_VIEW_WHO_CONTRIBUTED_TO_THIS_SNIPPET')."';");
- $this->document->addScriptDeclaration("var lang_URL_Tooltip = '".JText::_('COM_COMPONENTBUILDER_VIEW_SNIPPET_REFERENCE_URL')."';");
- $this->document->addScriptDeclaration("var lang_Update_Error_Tooltip = '".JText::_('COM_COMPONENTBUILDER_SNIPPET_COULD_NOT_BE_UPDATEDSAVED')."';");
- $this->document->addScriptDeclaration("var lang_Updates_Error_Tooltip = '".JText::_('COM_COMPONENTBUILDER_SNIPPETS_COULD_NOT_BE_UPDATEDSAVED')."';");
- $this->document->addScriptDeclaration("var lang_Contributor_URL_Tooltip = '".JText::_('COM_COMPONENTBUILDER_LINK_TO_THE_CONTRIBUTOR')."';");
- $this->document->addScriptDeclaration("var lang_Contributor_Modal_Tooltip = '".JText::_('COM_COMPONENTBUILDER_VIEW_THE_CONTRIBUTOR_DETAILS')."';");
- $this->document->addScriptDeclaration("var lang_JCB_Community = '".JText::_('COM_COMPONENTBUILDER_JCB_COMMUNITY')."';");
- $this->document->addScriptDeclaration("var lang_Company_Name = '".JText::_('COM_COMPONENTBUILDER_COMPANY_NAME')."';");
- $this->document->addScriptDeclaration("var lang_Author_Name = '".JText::_('COM_COMPONENTBUILDER_AUTHOR_NAME')."';");
- $this->document->addScriptDeclaration("var lang_Author_Email = '".JText::_('COM_COMPONENTBUILDER_AUTHOR_EMAIL')."';");
- $this->document->addScriptDeclaration("var lang_Author_Website = '".JText::_('COM_COMPONENTBUILDER_AUTHOR_WEBSITE')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippets_New_Tooltip = '".JText::_('COM_COMPONENTBUILDER_THERE_ARE_NO_NEW_SNIPPETS_AT_THIS_TIME')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippets_Diverged_Tooltip = '".JText::_('COM_COMPONENTBUILDER_THERE_ARE_NO_DIVERGED_SNIPPETS_AT_THIS_TIME')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippets_Ahead_Tooltip = '".JText::_('COM_COMPONENTBUILDER_THERE_ARE_NO_AHEAD_SNIPPETS_AT_THIS_TIME')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippets_Behind_Tooltip = '".JText::_('COM_COMPONENTBUILDER_THERE_ARE_NO_OUT_OF_DATE_SNIPPETS_AT_THIS_TIME')."';");
- $this->document->addScriptDeclaration("var lang_Get_Snippets_All_Tooltip = '".JText::_('COM_COMPONENTBUILDER_THERE_ARE_NO_SNIPPETS_TO_UPDATE_AT_THIS_TIME')."';");
- $this->document->addScriptDeclaration("var lang_Available_Libraries = '".JText::_('COM_COMPONENTBUILDER_AVAILABLE_LIBRARIES')."';");
- $this->document->addScriptDeclaration("var lang_Open_Lib_Snippets = '".JText::_('COM_COMPONENTBUILDER_OPEN_LIBRARY_SNIPPETS')."';");
+ // error message strings
+ JText::script('COM_COMPONENTBUILDER_AN_ERROR_HAS_OCCURRED');
+ JText::script('COM_COMPONENTBUILDER_PLEASE_TRY_AGAIN_LATER');
+ // need to add some language strings
+ JText::script('COM_COMPONENTBUILDER_JCB_COMMUNITY_SNIPPETS');
+ JText::script('COM_COMPONENTBUILDER_SNIPPETS');
+ JText::script('COM_COMPONENTBUILDER_SNIPPET');
+ JText::script('COM_COMPONENTBUILDER_VIEW_SNIPPET_OF_COMMUNITY_VERSION');
+ JText::script('COM_COMPONENTBUILDER_GET_SNIPPET');
+ JText::script('COM_COMPONENTBUILDER_LOCAL_SNIPPET');
+ JText::script('COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_UPDATE_THE_LOCAL_VERSION');
+ JText::script('COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_INSTALL_IT_LOCALLY');
+ JText::script('COM_COMPONENTBUILDER_NO_NEED_TO_GET_IT_SINCE_IT_IS_ALREADY_IN_SYNC_WITH_YOUR_LOCAL_VERSION');
+ JText::script('COM_COMPONENTBUILDER_USAGE');
+ JText::script('COM_COMPONENTBUILDER_VIEW_USAGE_OF_COMMUNITY_VERSION');
+ JText::script('COM_COMPONENTBUILDER_DESCRIPTION');
+ JText::script('COM_COMPONENTBUILDER_VIEW_DESCRIPTION_OF_COMMUNITY_VERSION');
+ JText::script('COM_COMPONENTBUILDER_VIEW_BLAME');
+ JText::script('COM_COMPONENTBUILDER_VIEW_WHO_CONTRIBUTED_TO_THIS_SNIPPET');
+ JText::script('COM_COMPONENTBUILDER_VIEW_SNIPPET_REFERENCE_URL');
+ JText::script('COM_COMPONENTBUILDER_SNIPPET_COULD_NOT_BE_UPDATEDSAVED');
+ JText::script('COM_COMPONENTBUILDER_SNIPPETS_COULD_NOT_BE_UPDATEDSAVED');
+ JText::script('COM_COMPONENTBUILDER_LINK_TO_THE_CONTRIBUTOR');
+ JText::script('COM_COMPONENTBUILDER_VIEW_THE_CONTRIBUTOR_DETAILS');
+ JText::script('COM_COMPONENTBUILDER_JCB_COMMUNITY');
+ JText::script('COM_COMPONENTBUILDER_COMPANY_NAME');
+ JText::script('COM_COMPONENTBUILDER_AUTHOR_NAME');
+ JText::script('COM_COMPONENTBUILDER_AUTHOR_EMAIL');
+ JText::script('COM_COMPONENTBUILDER_AUTHOR_WEBSITE');
+ JText::script('COM_COMPONENTBUILDER_THERE_ARE_NO_NEW_SNIPPETS_AT_THIS_TIME');
+ JText::script('COM_COMPONENTBUILDER_THERE_ARE_NO_DIVERGED_SNIPPETS_AT_THIS_TIME');
+ JText::script('COM_COMPONENTBUILDER_THERE_ARE_NO_AHEAD_SNIPPETS_AT_THIS_TIME');
+ JText::script('COM_COMPONENTBUILDER_THERE_ARE_NO_OUT_OF_DATE_SNIPPETS_AT_THIS_TIME');
+ JText::script('COM_COMPONENTBUILDER_THERE_ARE_NO_SNIPPETS_TO_UPDATE_AT_THIS_TIME');
+ JText::script('COM_COMPONENTBUILDER_AVAILABLE_LIBRARIES');
+ JText::script('COM_COMPONENTBUILDER_OPEN_LIBRARY_SNIPPETS');
// add some lang verfy messages
- $this->document->addScriptDeclaration("
- // set the snippet from gitHub
- function getConfirmUpdate(status) {
- switch(status) {
- case 'new':
- return '".JText::_('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_ADD_THIS_NEW_JCB_COMMUNITY_SNIPPET_TO_YOUR_LOCAL_SNIPPETS')."';
- break;
- case 'behind':
- return '".JText::_('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_UPDATE_YOUR_LOCAL_SNIPPET_WITH_THIS_NEWER_JCB_COMMUNITY_SNIPPET')."';
- break;
- case 'ahead':
- return '".JText::_('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_UPDATE_YOUR_LOCAL_SNIPPET_WITH_THIS_OLDER_JCB_COMMUNITY_SNIPPET')."';
- break;
- case 'diverged':
- return '".JText::_('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPLACE_YOUR_LOCAL_SNIPPET_WITH_THIS_JCB_COMMUNITY_SNIPPET')."';
- break;
- default:
- return '".JText::_('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_CONTINUE')."';
- break;
- }
- }
- ");
+ JText::script('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_ADD_THIS_NEW_JCB_COMMUNITY_SNIPPET_TO_YOUR_LOCAL_SNIPPETS');
+ JText::script('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_UPDATE_YOUR_LOCAL_SNIPPET_WITH_THIS_NEWER_JCB_COMMUNITY_SNIPPET');
+ JText::script('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_UPDATE_YOUR_LOCAL_SNIPPET_WITH_THIS_OLDER_JCB_COMMUNITY_SNIPPET');
+ JText::script('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_REPLACE_YOUR_LOCAL_SNIPPET_WITH_THIS_JCB_COMMUNITY_SNIPPET');
+ JText::script('COM_COMPONENTBUILDER_ARE_YOU_SURE_YOU_WOULD_LIKE_TO_CONTINUE');
// Set the Time To Live To JavaScript
$this->document->addScriptDeclaration("var expire = ". (int) $expire.";");
// load the local snippets
@@ -253,527 +237,9 @@ class ComponentbuilderViewGet_snippets extends JViewLegacy
$this->document->addScriptDeclaration("var local_snippets = ". json_encode($local_snippets).";");
}
// add the document default css file
- $this->document->addStyleSheet(JURI::root(true) .'/administrator/components/com_componentbuilder/assets/css/get_snippets.css');
- // Set the Custom JS script to view
- $this->document->addScriptDeclaration("
- // start the moment the document is ready
- jQuery(document).ready(function () {
- // just get the available libraries
- getLibraries(snippetsPath);
- });
-
- // add an ajax call tracker
- var ajaxcall = null;
- var fromLocal = false;
-
- jQuery(document).ready(function(){
- jQuery('body').on('click','.getreaction',function(){
- // Ajax request
- var btn = jQuery(this);
- btn.prop('disabled', true);
- setTimeout(function(){
- btn.prop('disabled', false);
- }, 3000);
- var type = btn.data('type');
- if ('getLibraries' === type) {
- getLibraries(snippetsPath);
- } else if ('getSnippets' === type) {
- var name = btn.data('name');
- getSnippets(snippetsPath, name);
- } else if ('all' === type) {
- var status = btn.data('status');
- bulkSnippetGithub(status);
- } else if ('bulk' === type) {
- checkBulkSnippetGithub();
- } else if ('get' === type) {
- var path = btn.data('path');
- var status = btn.data('status');
- setSnippetGithub(path, status);
- } else {
- var path = btn.data('path');
- getSnippetModal(path, type);
- }
- });
- });
-
- // load every thing once ready
- jQuery(document).ajaxStop(function () {
- if (0 === jQuery.active) {
- //do something special
- if ('snippets' === ajaxcall) {
- setTimeout( function() {
- jQuery('#snippets-github').html('
'+lang_Community_Snippets+'
');
- jQuery('#snippets-display').show();
- jQuery('#snippets-grid').trigger('display.uk.check');
- jQuery('#loading').hide();
- }, 1000);
- }
- }
- });
-
- // get the libraries
- function getLibraries(path) {
- var _paths = jQuery.jStorage.get('JCB-Snippets-Paths', null);
- // always hide the snippets display
- jQuery('#snippets-display').hide();
- // always reset the grid
- jQuery('#libraries-grid').html('');
- // set the ajax scope
- ajaxcall = 'libraries';
- if (_paths) {
- buildLibraries(_paths);
- } else {
- jQuery.get(path)
- .success(function(paths) {
- // load only this library paths
- jQuery.jStorage.set('JCB-Snippets-Paths', paths, {TTL: expire});
- buildLibraries(paths);
- })
- .error(function(jqXHR, textStatus, errorThrown) {
- jQuery('#snippets-github').html(returnError);
- });
- }
- }
-
- // build the ibraries object
- function buildLibraries(paths) {
- var _temp = jQuery.jStorage.get('JCB-Libraries', null);
- if (_temp) {
- setLibraries(_temp);
- } else {
- var temp = {};
- jQuery.each(paths.tree, function(key,value) {
- if (value.path.match(\".json$\")) {
- var libName = value.path.split(/ -(.+)/)[0];
- libName = libName.trim()
- temp[libName] = libName;
- }
- });
- // load only this library paths
- jQuery.jStorage.set('JCB-Libraries', temp, {TTL: expire});
- setLibraries(temp);
- }
- }
-
- // set the libraries
- function setLibraries(names) {
- // now load the lib buttons
- jQuery.each(names, function(value) {
- setLibrary(value);
- });
- setTimeout( function() {
- jQuery('#snippets-github').html('
'+lang_Available_Libraries+'
');
- jQuery('#libraries-display').show();
- jQuery('#libraries-grid').trigger('display.uk.check');
- }, 1000);
- }
-
- // set the snippets
- function setLibrary(name) {
- // get useful ID
- var keyID = getKeyID(name);
- // build the library display
- var html = '
';
- html += '
';
- html += '
' + name + '
';
- html += '';
- // set the data buttons
- html += setLibButtons(name);
- // close the box panel
- html += '
';
- html += '
';
- // now we have the library
- jQuery('#libraries-grid').append(html);
- }
-
- function setLibButtons(name) {
- return '';
- }
-
- // get the snippets
- function getSnippets(path, libraryName) {
- jQuery('#loading').show();
- // get local values if set
- var _paths = jQuery.jStorage.get('JCB-Snippets-Paths', null);
- // always reset the grid
- jQuery('#snippets-grid').html('');
- // always hide libraries
- jQuery('#libraries-display').hide();
- // set the ajax scope
- ajaxcall = 'snippets';
- fromLocal = false;
- if (_paths) {
- setSnippets(_paths, libraryName);
- jQuery('#snippets-github').html('
'+lang_Community_Snippets+'
');
- } else {
- jQuery.get(path)
- .success(function(paths) {
- // load only this library paths
- jQuery.jStorage.set('JCB-Snippets-Paths', paths, {TTL: expire});
- setSnippets(paths, libraryName);
- })
- .error(function(jqXHR, textStatus, errorThrown) {
- jQuery('#snippets-github').html(returnError);
- });
- }
- // only use if loading localy
- if (fromLocal) {
- jQuery('#snippets-display').show();
- jQuery('#snippets-grid').trigger('display.uk.check');
- jQuery('#loading').hide();
- }
- }
-
- // set the snippets
- function setSnippets(paths, libraryName) {
- // set the ajax scope
- ajaxcall = 'snippets';
- jQuery.each(paths.tree, function(key,value) {
- if (value.path.match(\".json$\") && value.path.match(\"^\"+libraryName)) {
- var _snippet = jQuery.jStorage.get(value.path, null);
- if (_snippet) {
- setSnippet(_snippet, value.path);
- fromLocal = true;
- } else {
- jQuery.get(snippetPath+value.path)
- .success(function(snippet) {
- // convert the string to json.object
- snippet = jQuery.parseJSON(snippet);
- jQuery.jStorage.set(value.path, snippet, {TTL: expire});
- setSnippet(snippet, value.path);
- })
- .error(function(jqXHR, textStatus, errorThrown) {
- // we could do more
- });
- }
- }
- });
- }
-
- // set the snippets
- function setSnippet(snippet, key) {
- // get useful ID
- var keyID = getKeyID(key);
- // get the status
- var status = getSnippetStatus(snippet, key);
- // add to bulk updater
- if ('equal' !== status) {
- bulkItems[status].push(key);
- }
- // build the snippet display
- var html = '
';
- html += snippet.heading + '';
- // set the data buttons
- html += setDataButtons(snippet, key, status);
- // set the snippet ref button
- html += setRefButtons(snippet, key, status, keyID);
- // set the contributor buttons
- html += setContributorButtons(snippet, key);
- // close the box panel
- html += '
';
- html += '
';
- // now we have the snippet
- jQuery('#snippets-grid').append(html);
- }
-
- // set the snippet status
- function getSnippetStatus(snippet, key) {
- // check if JCB already has this snippet
- if(local_snippets.hasOwnProperty(key)){
- // first get local time stamp
- var local_created = strtotime(local_snippets[key].created);
- var local_modified = strtotime(local_snippets[key].modified);
- // now get github time stamps
- var created = strtotime(snippet.created);
- var modified = strtotime(snippet.modified);
- // work out the status
- if (local_created == created) {
- if (local_modified == modified) {
- return 'equal';
- } else if (local_modified > modified) {
- return 'ahead';
- } else if (local_modified < modified) {
- return 'behind';
- }
- }
- return 'diverged';
- }
- return 'new';
- }
-
- function setDataButtons(snippet, key, status) {
- var html = '
';
- html += '';
- html += '';
- html += '';
- html += '
';
- // return data buttons
- return html;
- }
-
- function setRefButtons(snippet, key, status, keyID) {
- var html = '