From e87c4135e988aa548ca67a654052b1c6482b1af1 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Wed, 8 Jul 2015 16:53:17 -0700 Subject: [PATCH 01/12] Fix taxons page with new Spree.ajax calls This was missing a necessary {"X-Spree-Token": Spree.api_key }, which was causing the API call to error. Also cleaned up the rest of the ajax calls in the file. --- .../assets/javascripts/spree/backend/taxonomy.js.coffee | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index d365b8c3bad..8761cad85f1 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -28,12 +28,11 @@ handle_create = (e, data) -> Spree.ajax type: "POST", dataType: "json", - url: base_url.toString(), + url: base_url, data: { "taxon[name]": name, "taxon[parent_id]": new_parent.prop("id"), "taxon[child_index]": position, - token: Spree.api_key }, error: handle_ajax_error, success: (data,result) -> @@ -65,10 +64,9 @@ handle_delete = (e, data) -> Spree.ajax type: "POST", dataType: "json", - url: delete_url.toString(), + url: delete_url, data: { _method: "delete", - token: Spree.api_key }, error: handle_ajax_error else @@ -82,7 +80,7 @@ root.setup_taxonomy_tree = (taxonomy_id) -> root.base_url = Spree.routes.taxonomy_taxons_path Spree.ajax - url: Spree.url(base_url.path().replace("/taxons", "/jstree")).toString(), + url: base_url.replace("/taxons", "/jstree"), success: (taxonomy) -> last_rollback = null @@ -90,6 +88,7 @@ root.setup_taxonomy_tree = (taxonomy_id) -> json_data: data: taxonomy, ajax: + headers: { "X-Spree-Token": Spree.api_key } url: (e) -> "#{base_url}/#{e.prop('id')}/jstree" themes: From ef8e5682c9cb939c8e225bbd717e44bcb67d7595 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 12:27:17 -0700 Subject: [PATCH 02/12] Just use HTTP methods instead of _method --- .../javascripts/spree/backend/taxonomy.js.coffee | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index 8761cad85f1..390086b940f 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -10,10 +10,10 @@ handle_move = (e, data) -> url = "#{base_url}/#{node.prop("id")}" Spree.ajax - type: "POST", + type: "PUT", dataType: "json", url: url, - data: ({_method: "put", "taxon[parent_id]": new_parent.prop("id"), "taxon[child_index]": position }), + data: ({"taxon[parent_id]": new_parent.prop("id"), "taxon[child_index]": position }), error: handle_ajax_error true @@ -46,11 +46,10 @@ handle_rename = (e, data) -> url = "#{base_url}/#{node.prop("id")}" Spree.ajax - type: "POST", + type: "PUT", dataType: "json", url: url, data: { - _method: "put", "taxon[name]": name, }, error: handle_ajax_error @@ -62,12 +61,9 @@ handle_delete = (e, data) -> jConfirm Spree.translations.are_you_sure_delete, Spree.translations.confirm_delete, (r) -> if r Spree.ajax - type: "POST", + type: "DELETE", dataType: "json", url: delete_url, - data: { - _method: "delete", - }, error: handle_ajax_error else $.jstree.rollback(last_rollback) From 770671aa9c55afd586cecfa77d6baf3c1cbd43a2 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 12:31:27 -0700 Subject: [PATCH 03/12] Fix rollback on js errors in taxonomy.js --- backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index 390086b940f..c0e2cd0785b 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -1,3 +1,5 @@ +last_rollback = null + handle_ajax_error = (XMLHttpRequest, textStatus, errorThrown) -> $.jstree.rollback(last_rollback) $("#ajax_error").show().html("" + server_error + "
" + taxonomy_tree_error) From 8887148ead8f2a555a2fc3235d44d85f70070638 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 12:36:06 -0700 Subject: [PATCH 04/12] Use native browser confirm instead of jquery.alert --- .../spree/backend/taxonomy.js.coffee | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index c0e2cd0785b..fed7b2c753b 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -60,16 +60,15 @@ handle_delete = (e, data) -> last_rollback = data.rlbk node = data.rslt.obj delete_url = "#{base_url}/#{node.prop("id")}" - jConfirm Spree.translations.are_you_sure_delete, Spree.translations.confirm_delete, (r) -> - if r - Spree.ajax - type: "DELETE", - dataType: "json", - url: delete_url, - error: handle_ajax_error - else - $.jstree.rollback(last_rollback) - last_rollback = null + if confirm(Spree.translations.are_you_sure_delete) + Spree.ajax + type: "DELETE", + dataType: "json", + url: delete_url, + error: handle_ajax_error + else + $.jstree.rollback(last_rollback) + last_rollback = null root = exports ? this root.setup_taxonomy_tree = (taxonomy_id) -> From fb8f68f37b6efb1af23eee2e232d4ad3a87ba056 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 12:37:18 -0700 Subject: [PATCH 05/12] Remove jquery.alerts This was no longer being used. --- .../app/assets/javascripts/spree/backend.js | 1 - .../app/assets/stylesheets/spree/backend.css | 2 - .../views/spree/admin/shared/_head.html.erb | 1 - backend/lib/spree/backend/engine.rb | 1 - .../images/jquery.alerts/images/help.gif | Bin 1574 -> 0 bytes .../images/jquery.alerts/images/important.gif | Bin 1484 -> 0 bytes .../images/jquery.alerts/images/info.gif | Bin 1479 -> 0 bytes .../images/jquery.alerts/images/title.gif | Bin 309 -> 0 bytes .../jquery.alerts/jquery.alerts.js | 235 ------------------ .../jquery.alerts/jquery.alerts.css.erb | 57 ----- .../jquery.alerts/jquery.alerts.spree.css | 29 --- 11 files changed, 326 deletions(-) delete mode 100755 backend/vendor/assets/images/jquery.alerts/images/help.gif delete mode 100755 backend/vendor/assets/images/jquery.alerts/images/important.gif delete mode 100755 backend/vendor/assets/images/jquery.alerts/images/info.gif delete mode 100755 backend/vendor/assets/images/jquery.alerts/images/title.gif delete mode 100755 backend/vendor/assets/javascripts/jquery.alerts/jquery.alerts.js delete mode 100755 backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.css.erb delete mode 100644 backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.spree.css diff --git a/backend/app/assets/javascripts/spree/backend.js b/backend/app/assets/javascripts/spree/backend.js index 2401d4153a6..800f34e19b6 100644 --- a/backend/app/assets/javascripts/spree/backend.js +++ b/backend/app/assets/javascripts/spree/backend.js @@ -7,7 +7,6 @@ //= require modernizr //= require jquery.cookie //= require jquery.jstree/jquery.jstree -//= require jquery.alerts/jquery.alerts //= require jquery.powertip //= require jquery.vAlign //= require equalize diff --git a/backend/app/assets/stylesheets/spree/backend.css b/backend/app/assets/stylesheets/spree/backend.css index eeb84ea1520..611cc108170 100644 --- a/backend/app/assets/stylesheets/spree/backend.css +++ b/backend/app/assets/stylesheets/spree/backend.css @@ -3,8 +3,6 @@ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at * the top of the compiled file, but it's generally better to create a new file per style scope. - *= require jquery.alerts/jquery.alerts - *= require jquery.alerts/jquery.alerts.spree *= require responsive-tables *= require normalize *= require skeleton diff --git a/backend/app/views/spree/admin/shared/_head.html.erb b/backend/app/views/spree/admin/shared/_head.html.erb index e2331c5b764..a46e077ff71 100644 --- a/backend/app/views/spree/admin/shared/_head.html.erb +++ b/backend/app/views/spree/admin/shared/_head.html.erb @@ -21,7 +21,6 @@ <%= render "spree/admin/shared/translations" %> <%= javascript_tag do -%> - jQuery.alerts.dialogClass = 'spree'; var AUTH_TOKEN = "<%= form_authenticity_token %>"; Spree.api_key = "<%= try_spree_current_user.try(:spree_api_key) %>"; Spree.env = "<%= Rails.env %>"; diff --git a/backend/lib/spree/backend/engine.rb b/backend/lib/spree/backend/engine.rb index d627063d586..1f045082540 100644 --- a/backend/lib/spree/backend/engine.rb +++ b/backend/lib/spree/backend/engine.rb @@ -23,7 +23,6 @@ class Engine < ::Rails::Engine jquery.jstree/themes/apple/* fontawesome-webfont* select2_locale* - jquery.alerts/images/* ] end end diff --git a/backend/vendor/assets/images/jquery.alerts/images/help.gif b/backend/vendor/assets/images/jquery.alerts/images/help.gif deleted file mode 100755 index fbb5b329d4c841a11de54ee5cbd1286d5c7bdc2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1574 zcmV+>2HE*XNk%v~VITk?0Qdg@ftATIY19By)8y*(0Y$ncH=K#G^kS3d07=4csQ(&X z(dz8=8bqk<@%PQv>NrNC3roHrT+OS`|3i4w09o7{SPmH8rU=6$U5 zMPst`_4yGqq#iGHmg0uan%>SCf`vOS5jJNqidEQZl;Q%?Y ztGwPVWyuXrz`n%cMU3+(aP}i%+HtEt+2HOraMl|! zn^S|*dwaXt;_(1P!4Xl&E^*#cknR8d^Zxtw2NsV%dfauD&`EvT|Ns5}|M^IL)&2eZ z|Nr#;`}hDvwp@+nTZYdCKdlf$yB{T!PHeVYT&yKu&^lVK4^GH5Jf0mZn*aa*|Nr~{ z|Nb|7=5&R@I(*{>K(26|>;O8fK863=8{ zH*(v0pxsQ4@ob^$S%AuJo!^$k{qXJR2qmB#Adiur&5NhlnWN8`sME;N=+58sB`cMp zrO{rc|7o4=ZlLf1JEyq5-e!)|T#)Vh`}lvW@sg6pXqV}l#{X)agfOd`FNMm5h<1R z`1x3l>2jXuEC2ui03ZM$000R804E6?NU)&6g9sBUT!?UuF#wFXFkm2q!zFwj7#?iJ zq22@@S~h55=5GcAF2sgYrUxLwtfsB5#$0uv--5?~qiV1-5pTm;?9kt9eP1Jck) zlePn0x^qP2_*m#bMwT2Bk|g=Z%g>oByi`y#aR6F|5+0@^T)@Q}(I82%oq_h*8i zx=^CTXfneSym_Gtu3>Stvl1n990Tl%Yr?1YN*D1{$OaDGDeIp@SN|WJE=p z(SxeMqJTgbuc)DeA;=bL0}wDk5YHm25LC$&^XQ^MwZWEgj2?uf0cEn_Ci2b?bR2|A zDO8*?M6h_0SO;r zBs7H>0hFMCu{v1e4GuPt07Nq|WOB#I(=6nS9Hm&|$|?kq@Wd0FeA`SS5WFJ_AKYkk zfe0R)fQKtO;2;GA5J-W8Jn{U13@9s2vc?OM{E$KfAAF!d1@R~X%p!Cw7q&nRgi*u; Y1&ASrB#|@=^1?cE2QK*F1O)^DJ4t&2g8%>k diff --git a/backend/vendor/assets/images/jquery.alerts/images/important.gif b/backend/vendor/assets/images/jquery.alerts/images/important.gif deleted file mode 100755 index 654942362fc19ef69427b751ad115ce64373ace4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484 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 diff --git a/backend/vendor/assets/images/jquery.alerts/images/title.gif b/backend/vendor/assets/images/jquery.alerts/images/title.gif deleted file mode 100755 index 12253c7a44f0ad620bbb597f3ce64268b63a7b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmXw!J4?e*0EI7VrIbn$3+?7(sYpSPXnhSj_yQ*ft8Q)%9r_z|D&k^sDu|PRz@K0@ zO>df*c$+5o<~FaJ+oov;cU!@4IvhR@oTHP&&BApIWWdiZa2;nb81#C*X0zF7G(=I1 zq9_bQMV574M+kK}r@3=06FzojY!!%6uYmCY{*V}DP)4nw=V9Xn7j!Q7{JTC|s zgc2bn>PJw5wryLM#TX+POOk|Ih*}gAVj2d<*mYgc_eLvrr(@e4MNwD~e2Su~s' + - '

' + - '' + - ''); - - if( $.alerts.dialogClass ) $("#popup_container").addClass($.alerts.dialogClass); - - // IE6 Fix - var pos = ($.browser.msie && parseInt($.browser.version) <= 6 ) ? 'absolute' : 'fixed'; - - $("#popup_container").css({ - position: pos, - zIndex: 99999, - padding: 0, - margin: 0 - }); - - $("#popup_title").text(title); - $("#popup_content").addClass(type); - $("#popup_message").text(msg); - $("#popup_message").html( $("#popup_message").text().replace(/\n/g, '
') ); - - $("#popup_container").css({ - minWidth: $("#popup_container").outerWidth(), - maxWidth: $("#popup_container").outerWidth() - }); - - $.alerts._reposition(); - $.alerts._maintainPosition(true); - - switch( type ) { - case 'alert': - $("#popup_message").after(''); - $("#popup_ok").click( function() { - $.alerts._hide(); - callback(true); - }); - $("#popup_ok").focus().keypress( function(e) { - if( e.keyCode == 13 || e.keyCode == 27 ) $("#popup_ok").trigger('click'); - }); - break; - case 'confirm': - $("#popup_message").after(''); - $("#popup_ok").click( function() { - $.alerts._hide(); - if( callback ) callback(true); - }); - $("#popup_cancel").click( function() { - $.alerts._hide(); - if( callback ) callback(false); - }); - $("#popup_ok").focus(); - $("#popup_ok, #popup_cancel").keypress( function(e) { - if( e.keyCode == 13 ) $("#popup_ok").trigger('click'); - if( e.keyCode == 27 ) $("#popup_cancel").trigger('click'); - }); - break; - case 'prompt': - $("#popup_message").append('
').after(''); - $("#popup_prompt").width( $("#popup_message").width() ); - $("#popup_ok").click( function() { - var val = $("#popup_prompt").val(); - $.alerts._hide(); - if( callback ) callback( val ); - }); - $("#popup_cancel").click( function() { - $.alerts._hide(); - if( callback ) callback( null ); - }); - $("#popup_prompt, #popup_ok, #popup_cancel").keypress( function(e) { - if( e.keyCode == 13 ) $("#popup_ok").trigger('click'); - if( e.keyCode == 27 ) $("#popup_cancel").trigger('click'); - }); - if( value ) $("#popup_prompt").val(value); - $("#popup_prompt").focus().select(); - break; - } - - // Make draggable - if( $.alerts.draggable ) { - try { - $("#popup_container").draggable({ handle: $("#popup_title") }); - $("#popup_title").css({ cursor: 'move' }); - } catch(e) { /* requires jQuery UI draggables */ } - } - }, - - _hide: function() { - $("#popup_container").remove(); - $.alerts._overlay('hide'); - $.alerts._maintainPosition(false); - }, - - _overlay: function(status) { - switch( status ) { - case 'show': - $.alerts._overlay('hide'); - $("BODY").append(''); - $("#popup_overlay").css({ - position: 'absolute', - zIndex: 99998, - top: '0px', - left: '0px', - width: '100%', - height: $(document).height(), - background: $.alerts.overlayColor, - opacity: $.alerts.overlayOpacity - }); - break; - case 'hide': - $("#popup_overlay").remove(); - break; - } - }, - - _reposition: function() { - var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) + $.alerts.verticalOffset; - var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) + $.alerts.horizontalOffset; - if( top < 0 ) top = 0; - if( left < 0 ) left = 0; - - // IE6 fix - if( $.browser.msie && parseInt($.browser.version) <= 6 ) top = top + $(window).scrollTop(); - - $("#popup_container").css({ - top: top + 'px', - left: left + 'px' - }); - $("#popup_overlay").height( $(document).height() ); - }, - - _maintainPosition: function(status) { - if( $.alerts.repositionOnResize ) { - switch(status) { - case true: - $(window).bind('resize', $.alerts._reposition); - break; - case false: - $(window).unbind('resize', $.alerts._reposition); - break; - } - } - } - - } - - // Shortuct functions - jAlert = function(message, title, callback) { - $.alerts.alert(message, title, callback); - } - - jConfirm = function(message, title, callback) { - $.alerts.confirm(message, title, callback); - }; - - jPrompt = function(message, value, title, callback) { - $.alerts.prompt(message, value, title, callback); - }; - -})(jQuery); \ No newline at end of file diff --git a/backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.css.erb b/backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.css.erb deleted file mode 100755 index 6eca847c454..00000000000 --- a/backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.css.erb +++ /dev/null @@ -1,57 +0,0 @@ -#popup_container { - font-family: Arial, sans-serif; - font-size: 12px; - min-width: 300px; /* Dialog will be no smaller than this */ - max-width: 600px; /* Dialog will wrap after this width */ - background: #FFF; - border: solid 5px #999; - color: #000; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; -} - -#popup_title { - font-size: 14px; - font-weight: bold; - text-align: center; - line-height: 1.75em; - color: #666; - background: #CCC url(<%= asset_path('jquery.alerts/images/title.gif') %>) top repeat-x; - border: solid 1px #FFF; - border-bottom: solid 1px #999; - cursor: default; - padding: 0em; - margin: 0em; -} - -#popup_content { - background: 16px 16px no-repeat url(<%= asset_path('jquery.alerts/images/info.gif') %>); - padding: 1em 1.75em; - margin: 0em; -} - -#popup_content.alert { - background-image: url(<%= asset_path('jquery.alerts/images/info.gif') %>); -} - -#popup_content.confirm { - background-image: url(<%= asset_path('jquery.alerts/images/important.gif') %>); -} - -#popup_content.prompt { - background-image: url(<%= asset_path('jquery.alerts/images/help.gif') %>); -} - -#popup_message { - padding-left: 48px; -} - -#popup_panel { - text-align: center; - margin: 1em 0em 0em 1em; -} - -#popup_prompt { - margin: .5em 0em; -} \ No newline at end of file diff --git a/backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.spree.css b/backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.spree.css deleted file mode 100644 index c4b8cb60d2f..00000000000 --- a/backend/vendor/assets/stylesheets/jquery.alerts/jquery.alerts.spree.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Spree Custom dialog styles */ -#popup_container.spree { - color: #fff; - background: #005294; - border-color: #113F66; -} - -#popup_container.spree #popup_title { - color: #FFF; - font-weight: normal; - text-align: left; - background: #76A5CC; - border: solid 1px #005294; - padding-left: 1em; -} - -#popup_container.spree #popup_content { - background: none; -} - -#popup_container.spree #popup_message { - padding-left: 0em; -} - -#popup_container.spree input[type='button'] { - border: outset 2px #76A5CC; - color: #fff; - background: #3778AE; -} From a86ced6a0037a565185eb7c0e185bf2fb0c06f6f Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 12:45:07 -0700 Subject: [PATCH 06/12] Set base_url in the iffe instead of on window --- .../app/assets/javascripts/spree/backend/taxonomy.js.coffee | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index fed7b2c753b..c116e531714 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -1,4 +1,5 @@ last_rollback = null +base_url = null handle_ajax_error = (XMLHttpRequest, textStatus, errorThrown) -> $.jstree.rollback(last_rollback) @@ -70,11 +71,10 @@ handle_delete = (e, data) -> $.jstree.rollback(last_rollback) last_rollback = null -root = exports ? this -root.setup_taxonomy_tree = (taxonomy_id) -> +@setup_taxonomy_tree = (taxonomy_id) -> if taxonomy_id != undefined # this is defined within admin/taxonomies/edit - root.base_url = Spree.routes.taxonomy_taxons_path + base_url = Spree.routes.taxonomy_taxons_path Spree.ajax url: base_url.replace("/taxons", "/jstree"), From 5342022a1ab64ac20994819a6ab4cbd259fd980b Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 13:13:28 -0700 Subject: [PATCH 07/12] Simplify taxonomy.js error handling --- .../spree/backend/taxonomy.js.coffee | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index c116e531714..fbd994b35f5 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -1,12 +1,12 @@ -last_rollback = null base_url = null -handle_ajax_error = (XMLHttpRequest, textStatus, errorThrown) -> - $.jstree.rollback(last_rollback) - $("#ajax_error").show().html("" + server_error + "
" + taxonomy_tree_error) +tree_error_handler = (data) -> + rollback = data.rlbk + (XMLHttpRequest, textStatus, errorThrown) -> + $.jstree.rollback(rollback) + $("#ajax_error").show().html("#{server_error}
" + taxonomy_tree_error) handle_move = (e, data) -> - last_rollback = data.rlbk position = data.rslt.cp node = data.rslt.o new_parent = data.rslt.np @@ -17,12 +17,11 @@ handle_move = (e, data) -> dataType: "json", url: url, data: ({"taxon[parent_id]": new_parent.prop("id"), "taxon[child_index]": position }), - error: handle_ajax_error + error: tree_error_handler(data) true handle_create = (e, data) -> - last_rollback = data.rlbk node = data.rslt.obj name = data.rslt.name position = data.rslt.position @@ -37,12 +36,11 @@ handle_create = (e, data) -> "taxon[parent_id]": new_parent.prop("id"), "taxon[child_index]": position, }, - error: handle_ajax_error, + error: tree_error_handler(data) success: (data,result) -> node.prop('id', data.id) handle_rename = (e, data) -> - last_rollback = data.rlbk node = data.rslt.obj name = data.rslt.new_name @@ -55,10 +53,9 @@ handle_rename = (e, data) -> data: { "taxon[name]": name, }, - error: handle_ajax_error + error: tree_error_handler(data) handle_delete = (e, data) -> - last_rollback = data.rlbk node = data.rslt.obj delete_url = "#{base_url}/#{node.prop("id")}" if confirm(Spree.translations.are_you_sure_delete) @@ -66,10 +63,9 @@ handle_delete = (e, data) -> type: "DELETE", dataType: "json", url: delete_url, - error: handle_ajax_error + error: tree_error_handler(data) else - $.jstree.rollback(last_rollback) - last_rollback = null + $.jstree.rollback(data.rlbk) @setup_taxonomy_tree = (taxonomy_id) -> if taxonomy_id != undefined From 53d4a84752b6579956f588c74883cf5788ac9a94 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 13:26:56 -0700 Subject: [PATCH 08/12] Remove dblclick event handler on taxon tree This wasn't working for me in either chrome or firefox, and is unnecessary as rename is available in the right click menu. --- .../app/assets/javascripts/spree/backend/taxonomy.js.coffee | 3 --- 1 file changed, 3 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index fbd994b35f5..f5328f5697e 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -119,9 +119,6 @@ handle_delete = (e, data) -> .bind "loaded.jstree", -> $(this).jstree("core").toggle_node($('.jstree-icon').first()) - $("#taxonomy_tree a").on "dblclick", (e) -> - $("#taxonomy_tree").jstree("rename", this) - # surpress form submit on enter/return $(document).keypress (e) -> if e.keyCode == 13 From ae04696379950dcca6b9714217067fbdf6e71bcd Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 13:44:09 -0700 Subject: [PATCH 09/12] Remove hack preventing enter from working There's no reason for this, renaming works fine without it. --- .../app/assets/javascripts/spree/backend/taxonomy.js.coffee | 5 ----- 1 file changed, 5 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee index f5328f5697e..6a4eda05b27 100644 --- a/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/taxonomy.js.coffee @@ -118,8 +118,3 @@ handle_delete = (e, data) -> .bind("rename.jstree", handle_rename) .bind "loaded.jstree", -> $(this).jstree("core").toggle_node($('.jstree-icon').first()) - - # surpress form submit on enter/return - $(document).keypress (e) -> - if e.keyCode == 13 - e.preventDefault() From 68401b6bd3dc267e2c5469f3498344d1c2ab4bd8 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 13:45:49 -0700 Subject: [PATCH 10/12] Remove extra spinner from taxonomies/edit There's already a standard spinner, with the same id as this one. I don't think it was being displayed. --- backend/app/views/spree/admin/taxonomies/edit.erb | 3 --- 1 file changed, 3 deletions(-) diff --git a/backend/app/views/spree/admin/taxonomies/edit.erb b/backend/app/views/spree/admin/taxonomies/edit.erb index 75d846e060d..99129d14755 100755 --- a/backend/app/views/spree/admin/taxonomies/edit.erb +++ b/backend/app/views/spree/admin/taxonomies/edit.erb @@ -26,9 +26,6 @@
-
<%= Spree.t(:taxonomy_tree_instruction) %>
From fbf58e8f3bc5a98c50b8cccef3b8d3f941917075 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Jul 2015 13:54:59 -0700 Subject: [PATCH 11/12] Separate taxonomy edit buttons from taxon tree The update button on this page is only used for updating the name of the taxonomy, having it under the tree suggests that it would be used for updating the tree's structure as well. --- .../app/views/spree/admin/taxonomies/edit.erb | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/backend/app/views/spree/admin/taxonomies/edit.erb b/backend/app/views/spree/admin/taxonomies/edit.erb index 99129d14755..34e1971936a 100755 --- a/backend/app/views/spree/admin/taxonomies/edit.erb +++ b/backend/app/views/spree/admin/taxonomies/edit.erb @@ -17,24 +17,23 @@ <%= form_for [:admin, @taxonomy] do |f| %>
<%= render :partial => 'form', :locals => { :f => f } %> -
- <%= label_tag nil, Spree.t(:tree) %>
- -
-
- -
<%= Spree.t(:taxonomy_tree_instruction) %>
- -
-
<%= button Spree.t('actions.update'), 'refresh' %> <%= Spree.t(:or) %> <%= button_link_to Spree.t('actions.cancel'), admin_taxonomies_path, :icon => 'remove' %>
+ + +
+ <%= label_tag nil, Spree.t(:tree) %>
+ +
+ +
<%= Spree.t(:taxonomy_tree_instruction) %>
+
<% end %> From 1a677090d41693c805e425a49a80362b7e13d5a5 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 23 Jul 2015 12:14:09 -0700 Subject: [PATCH 12/12] Add feature spec for taxon tree JS --- backend/spec/features/admin/taxons_spec.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/spec/features/admin/taxons_spec.rb b/backend/spec/features/admin/taxons_spec.rb index 1ad3532add1..64223709763 100644 --- a/backend/spec/features/admin/taxons_spec.rb +++ b/backend/spec/features/admin/taxons_spec.rb @@ -21,4 +21,11 @@ click_button "Update" expect(page).to have_content("Taxon \"Shirt\" has been successfully updated!") end + + it "can see taxon tree", js: true do + taxonomy = create :taxonomy + + visit spree.edit_admin_taxonomy_path(taxonomy) + expect(page).to have_content('Brand') + end end