Commit Graph

835 Commits

Author SHA1 Message Date
Matt-Yorkley
71fb3b1845 Focus search field after it's cleared, ready for immediate typing of new search term on mobile 2020-05-10 09:44:12 +02:00
Matt-Yorkley
2964ec138d Update display of join words in filters list and rearrange code a bit for clarity
Here we need to build a really dynamic structure on the page like "Results for: <search-term> in <filter1> or <filter2>" and the styling on each of the words needs to be a bit different, specifically the filter terms need to be differently styled to the join words like "in" and "or". We have to generate those bits on the Angular side, but they also have to be wrapped in HTML in a specific way.

$sce.trustAsHtml() marks the injected HTML as "safe" (in relation to security issues like XSS). In this case the injected content doesn't involve any user-defined data, so it should be fine.
2020-05-10 09:44:11 +02:00
Matt-Yorkley
026b98022c Add clear search button in shop searchbar 2020-05-10 09:44:11 +02:00
Matt-Yorkley
ebe00bdc31 Update filters clear button functionality 2020-05-10 09:44:11 +02:00
Matt-Yorkley
8e9833fd06 Implement overlaid sidebar on mobile and tablet 2020-05-10 09:44:11 +02:00
Matt-Yorkley
142cef3f3a Add filters count 2020-05-10 09:44:11 +02:00
Luis Ramos
3c7970f72f Add select oc message when there are multiple OCs 2020-05-07 12:18:40 +01:00
Luis Ramos
d4980893a1 Refactor darker-background directive, extract method 2020-05-07 12:17:43 +01:00
Luis Ramos
77d7d2b804 Make the background darker only in specific cases 2020-05-07 12:17:43 +01:00
Matt-Yorkley
13e4411b89 Add error message on cart populate failure and don't keep re-sending the data to the server.
This was triggering many requests to be continuously re-sent in a very problematic way (server-melting), and with no user feedback.
2020-05-05 17:22:10 +02:00
Matt-Yorkley
9a7807b134 Don't continuously re-post data on cart error 2020-05-05 16:04:05 +02:00
Pau Perez
c224df9b6a Do not trigger an orderChanged with null quantity
When loading the page $watchGroup calls the listener function for every
listed line item but with a set variant and null quantity and
max_quantity. There's no point on computing an order change when there
was none.

This saves an empty request on the second most used endpoint of the app,
specially busy when users are placing orders.
2020-04-24 15:54:46 +02:00
Luis Ramos
23f4faf192 Merge pull request #4841 from luisramos0/kill_rabl
Hide broken product taxons field, remove last rabl template and rabl itself
2020-04-21 18:49:12 +01:00
Luis Ramos
cedf1b26f2 If no flash is sent from the server, show the generic error 2020-04-14 14:31:34 +01:00
Luis Ramos
47a93568dc Make code simpler by extracting methods 2020-04-14 13:55:20 +01:00
Luis Ramos
62471bf2ab Clear Loading spinner when exception is caught 2020-04-14 13:50:38 +01:00
Luis Ramos
cdf5bcb7eb Improve unexpected error handling and add test cases for it 2020-04-14 13:44:58 +01:00
Luis Ramos
7414047b92 Switch from old success/error to modern then/catch structure
Catch() will get a few more errors then errors()

Also, add try/catch inside catch to detect any errors parsing the
response error payload
2020-04-14 13:04:28 +01:00
Matt-Yorkley
003341ef7a Add loading indicator when showing closed shops 2020-04-07 10:40:49 +02:00
Matt-Yorkley
bc859cf9f7 Add api/shops_controller and refactor 2020-04-04 17:02:27 +02:00
Matt-Yorkley
af48cac140 Load closed shops in a separate request on /shops page 2020-04-04 14:06:10 +02:00
Luis Ramos
445eb9f287 Merge pull request #5121 from Matt-Yorkley/flaky-maps-js
Update vendor/assets/angular-google-maps.min.js
2020-04-02 22:13:51 +01:00
Matt-Yorkley
838ffdbf00 Add code comment for dependency 2020-04-02 17:33:10 +02:00
Matt-Yorkley
18ee5254f9 Make Geo service calls more resilient in /shops page
The Geo service is used heavily in the /shops page and especially in the search function. If the google maps js library has failed to load it was throwing a lot of fatal errors, so this change ensures the /shops page can at least: a) load, b) show some shops, and c) search for shops by name (but not location)
2020-04-02 13:56:25 +02:00
Matt-Yorkley
40f8cf660c Update vendor/assets/angular-google-maps.min.js
Fixes an issue where if the js library from maps.googleapis.com failed to load in the <head>, all of our subsequent Angular would completely break.
See: https://github.com/angular-ui/angular-google-maps
Note: `bluebird.js` is a new dependency of `angular-google-maps.js`.
2020-04-02 13:32:55 +02:00
Luis Ramos
0e268a171f Switch to console.error so we get a bugsnag alert everytime a user has a problem with their card
Add paymentMethodsAPI specific mapping function, we had some errors in production with mastercards probably caused by ActiveMerchant not handling the card type correctly
2020-04-01 18:58:43 +01:00
Luis Ramos
73c4eedd06 Translate credit card brand so that active merchant code handles the payment correctly
Adds a simple console.log statement in case there is an error adding the
card
2020-04-01 18:58:10 +01:00
Luis Ramos
957b398a54 Add call to $evalAsync() after Loading and FlashLoader are updated so
that a angular digest is triggered

This is required so that Loading.clear triggers a refresh and makes its placeholder to be cleared
2020-04-01 12:08:55 +01:00
Maikel Linke
5a9b5660f1 Simplify logic in PageSelectionCtrl 2020-03-19 15:38:00 +11:00
Maikel Linke
1d42ce885b Stay on shop page when opening login modal
The login modal changes the URL to `#/login` which interfers with our
shop pages. In order to show the right shop page, we need to know which
pages are valid and where we have been before we clicked on Login.
2020-03-19 15:38:00 +11:00
Maikel Linke
17751c448f Rename PageSelectionCtrl for clarity 2020-03-19 15:37:13 +11:00
Maikel Linke
4b8d9d18d7 Simplify PagesetCtrl 2020-03-19 15:37:13 +11:00
Maikel Linke
ea80ae3832 Enable page navigation via URL fragment
The broadcasting of notifications didn't update properly and I couldn't
find a way to listen to $location updates. I replaced the three
intertwined directives with one controller and a bit more HTML code. Now
we have only one scope that listens to $location and all browser actions
like the back button is reflected in the page.

As nice side-effect, the menu links have now the right destination so
that you can copy the link and paste it into another browser window.

40 lines less code.
2020-03-19 15:37:13 +11:00
Maikel Linke
bf26a26743 Reduce complexity by removing unused code branch 2020-03-19 15:36:24 +11:00
Maikel Linke
e3f840f48c Remove dependency to Tabsets 2020-03-19 15:36:23 +11:00
Maikel Linke
42ca7888c0 Simplify by reducing unused options 2020-03-19 15:36:23 +11:00
Maikel Linke
8aa892136e Duplicate shop tab code for rewrite
The old code is still used on the user page.
2020-03-19 15:36:23 +11:00
Luis Ramos
da2598282b Can be object or {}, it's what the injector is doing, not related to rabl any more 2020-03-17 15:51:26 +00:00
luisramos0
c773cde191 Add admin payment template for stripe sca and respective js code to make it work 2020-02-21 10:52:29 +00:00
luisramos0
f691d1aafd Add new payment method StripeSCA that will use the Stripe Payment Intents API instead of the Stripe Charges API that the current StripeConnect gatreway uses 2020-02-21 10:52:29 +00:00
Maikel Linke
b63042236d Activate Foundation's dropdowns after tab switch
If the dropdown doesn't exist during page load, Foundation misses it. We
need to initialise it again.
2020-01-30 17:02:23 +11:00
Matt-Yorkley
d508e7772c Fix angular templates bug
Angular controller data was being partially preserved when switching back and forth between tab templates, causing the ProductsCtrl to hold duplicate datasets when it is re-initialized after going from the shop tab to another tab, then back again.
2020-01-13 17:05:28 +01:00
Matt-Yorkley
17cf099f99 Always keep one shop tab open (don't toggle closed) 2020-01-13 17:05:28 +01:00
Matt-Yorkley
7b0c55e15a Ensure producer properties are included in properties results 2019-10-18 21:15:13 +01:00
Matt-Yorkley
cbe2477d04 Fix property filters and improve test coverage 2019-10-18 21:15:13 +01:00
Matt-Yorkley
37e5e1923c Improve filter buttons UX 2019-10-18 21:15:13 +01:00
Matt-Yorkley
bf8c632fce Refactor ProductsCtrl request params 2019-10-18 21:15:13 +01:00
Matt-Yorkley
573a69477f Fix filters not updating on OC change 2019-10-18 21:15:13 +01:00
Matt-Yorkley
2539b84b33 Fix product.meta_keywords not searchable 2019-10-18 21:15:13 +01:00
Matt-Yorkley
c54cff10d4 Adjust API endpoint params 2019-10-18 21:15:13 +01:00