Frederic Merizen
a94397a70c
[ Fix #2562 ] Make dossier filters case insensitive
2018-09-13 10:29:22 +02:00
Paul Chavard
bfe7240235
Fix event bubbling on Mobile Safari
2018-09-13 09:19:09 +02:00
gregoirenovel
0b6debf9a6
Fix a typo
2018-09-12 18:33:54 +02:00
Paul Chavard
55a9b31b93
Cleanup SIRET champ
2018-09-12 15:53:02 +02:00
gregoirenovel
2330d4ba71
In the messagerie, reduce the space between the file input and its label
2018-09-12 15:39:21 +02:00
Paul Chavard
3f6cc668a7
Implement check_availability route
2018-09-12 12:37:15 +02:00
Paul Chavard
14bf543976
Add enable and disable element helpers
2018-09-12 11:00:01 +02:00
Pierre de La Morinerie
926dc3e107
dossier: display latest message on summary page
2018-09-12 10:09:16 +02:00
Pierre de La Morinerie
b4eb382e26
Extract a part of #commentaire_is_from_me_class
2018-09-12 10:09:16 +02:00
gregoirenovel
f9230b85b2
Change CommentaireHelper#commentaire_is_from_me_class’s signature
2018-09-12 10:09:16 +02:00
Paul Chavard
2f189826ab
Add some usefull polyfills for old browsers
2018-09-11 20:37:08 +02:00
gregoirenovel
c1bec7cf0b
Pass the connected_user object instead of its email
2018-09-11 18:17:40 +02:00
gregoirenovel
f8a6765367
[ Fix #2540 ] Allow an instructeur to send a dossier to several instructeurs
2018-09-11 18:00:24 +02:00
gregoirenovel
523edac4c5
Scope the select2 config call
2018-09-11 18:00:23 +02:00
gregoirenovel
fc470e9c71
Fix some spacing issues in the footer
2018-09-11 16:30:54 +02:00
gregoirenovel
04c5667b92
For footer columns, keep the same bottom margin at any width
2018-09-11 16:30:15 +02:00
gregoirenovel
61c41fa9cb
Lower the footer inner padding
2018-09-11 16:28:08 +02:00
gregoirenovel
1def444d0f
Do not add an empty ul to the DOM
2018-09-11 16:02:09 +02:00
Paul Chavard
631df3197a
Add uniqueness validation to procedure path
2018-09-11 10:38:31 +02:00
Paul Chavard
2770f1db82
Archive only when path changes owner
2018-09-11 10:38:31 +02:00
Paul Chavard
be51802983
Add reopen aasm event
2018-09-11 10:38:31 +02:00
Paul Chavard
5a794cbb08
Use Procedure#publish_or_reopen!
2018-09-11 10:38:31 +02:00
Paul Chavard
ec3a0dc4cf
Use Procedure#publish_with_path!
2018-09-11 10:38:31 +02:00
Paul Chavard
b3f8b68b99
Add Procedure#publish_with_path!
2018-09-11 10:38:31 +02:00
Paul Chavard
e6485603c4
Add ProcedurePath#valid?
2018-09-11 10:38:31 +02:00
Paul Chavard
f2f3c54147
Procedure: update -> update!
2018-09-11 10:38:31 +02:00
Paul Chavard
7a322266fa
Make aasm related methods private
2018-09-11 10:38:31 +02:00
Paul Chavard
de908ef4be
Extract ProcedurePath#find_by_path
2018-09-11 10:38:31 +02:00
gregoirenovel
50019e5317
Show user satisfaction in percentages
2018-09-11 10:17:40 +02:00
gregoirenovel
26e0ada3d4
Improve the ratings stats
...
Make sure that for each data point, we have do not
have any partial data (e.g. a week that hasn’t
finished yet)
2018-09-11 10:17:40 +02:00
gregoirenovel
05d2988f61
Format FeedbackController like the other controllers
2018-09-11 10:10:43 +02:00
gregoirenovel
d504af3216
FeedbacksController should inherit from UserController
2018-09-11 10:10:43 +02:00
gregoirenovel
ce458764f1
from-me is only relevant when the message is in a messages-list
2018-09-08 10:12:28 +02:00
gregoirenovel
6a475981e3
The relative message width is only relevant in messages-list
2018-09-08 10:12:28 +02:00
gregoirenovel
afae82c5ba
Remove a useless import in messagerie.scss
2018-09-08 10:12:28 +02:00
gregoirenovel
7482b859d5
Extract the message class into its own file
2018-09-08 10:12:28 +02:00
gregoirenovel
a4367c0809
Extract some more CSS classes from .messagerie to .messagge
2018-09-08 10:12:28 +02:00
gregoirenovel
94e5f856d3
Extract some CSS in a .message class
2018-09-08 10:12:28 +02:00
gregoirenovel
e2091fabdf
Unscope .messages-list
2018-09-08 10:12:28 +02:00
Paul Chavard
b63038faca
Allow administrateur to try dossier info on aperçu page
2018-09-07 19:41:34 +01:00
Paul Chavard
f3333595a0
Drop text_summary endpoint
2018-09-07 19:41:34 +01:00
Paul Chavard
212dee1565
Drop unused js
2018-09-07 19:41:33 +01:00
Paul Chavard
c49db4b5a4
Add a champs/dossier_link endpoint and use it to fetch dossier info
2018-09-07 19:41:33 +01:00
Paul Chavard
e2a2748e79
Expose authenticated_logged_user! method
2018-09-07 17:11:19 +01:00
Paul Chavard
7e94f7778a
Disable csrf forgery protection in test environement
2018-09-07 17:11:19 +01:00
Paul Chavard
5dadaa1a8d
Show brouillon tag on procedure names in user and instructeur lists
2018-09-07 11:21:50 +01:00
Paul Chavard
23017f4b17
Show better lien information on procedure page
2018-09-07 11:21:07 +01:00
Paul Chavard
23170f54c0
Instructeur should see published drafts
2018-09-07 11:20:16 +01:00
Pierre de La Morinerie
1da0321c26
messagerie: never display full sender email
...
See #2307
2018-09-07 12:02:26 +02:00
Pierre de La Morinerie
353ab812fc
messagerie: fix 'Invité' label in message sender
2018-09-07 12:02:26 +02:00
Pierre de La Morinerie
211674435e
messagerie: better format message dates
2018-09-07 12:02:26 +02:00
Pierre de La Morinerie
fe13871380
messagerie: add explanation for usagers
2018-09-07 12:02:26 +02:00
Pierre de La Morinerie
21dc9f8109
messagerie: improve success message
2018-09-07 12:02:26 +02:00
Pierre de La Morinerie
a6aac28b66
messagerie: move "Send" button to the right
2018-09-07 12:02:26 +02:00
Pierre de La Morinerie
6cd88db853
messagerie: make "Send" button primary
2018-09-07 12:02:26 +02:00
gregoirenovel
9c6a66ae75
Change the route for DossierController#modifier
...
If we submit the form, and there’s an error, the
URL would be `/dossiers/:id`, therefore
`dossier_path(dossier)`, so the Résumé tab would
be active, not the messagerie tab. This change
prevents this behaviour.
2018-09-07 11:30:00 +02:00
gregoirenovel
038cabfae3
The Demande tab should be active when we’re editing the demande
2018-09-07 11:30:00 +02:00
gregoirenovel
ee4d71a3f4
dynamic_tab_item now handles url arrays
2018-09-07 11:30:00 +02:00
gregoirenovel
59e809f029
active_tab_item → dynamic_tab_item
2018-09-07 11:06:26 +02:00
gregoirenovel
23405efd3a
Mutualize some code in #update_dossier_and_compute_errors
2018-09-07 10:19:10 +02:00
gregoirenovel
6fe1f912c8
Refactor DossiersController#update
...
Nested ifs are heavier but easier to understand
as related conditions are visually grouped
2018-09-07 10:19:10 +02:00
gregoirenovel
230bf22b77
Redactor DossierController#update_brouillon
2018-09-07 10:19:10 +02:00
gregoirenovel
f5debfef46
DossierController#draft? → #save_draft?
2018-09-07 10:19:10 +02:00
gregoirenovel
87e59e2bfb
Streamline DossierController#update_brouillon and #update
2018-09-07 10:19:10 +02:00
gregoirenovel
1341074325
Add DossierController#update
2018-09-07 10:19:10 +02:00
gregoirenovel
cd46ee06e1
Add DossierController#modifier
2018-09-07 10:19:10 +02:00
gregoirenovel
338ffb8b50
DossierController#update → #update_brouillon
2018-09-07 10:19:10 +02:00
gregoirenovel
5ac8117c69
DossierController#modifier → #brouillon
2018-09-07 10:19:10 +02:00
Paul Chavard
f1c1eb573c
Do not triger validation errors on path field on description page
2018-09-06 15:48:11 +01:00
Paul Chavard
8c8e7f3ef3
Patch remote ujs handler with debounced input support
2018-09-06 15:09:02 +01:00
Paul Chavard
fb883e2ebc
Fix contact_link tag rendering on a11y page
2018-09-06 14:15:58 +01:00
Pierre de La Morinerie
19908ede25
gestionnaire: fix dossier printing page
...
Fix the invalid template, and add tests.
2018-09-05 16:17:26 +02:00
gregoirenovel
088d1c74d3
Commentaires → Messages
2018-09-05 15:59:41 +02:00
gregoirenovel
00ecae5f93
Procédure → Démarche
2018-09-05 15:46:24 +02:00
lucien mollard
b2f2e75f43
mailer: add layout for notifications emails
2018-09-05 15:31:08 +02:00
gregoirenovel
80c35c284f
Properly handle a long title in a stats card
2018-09-05 14:32:11 +02:00
gregoirenovel
21776e360b
Improve a stats title to better reflect reality
2018-09-05 14:32:11 +02:00
gregoirenovel
18a7d4c794
Fix typo
2018-09-05 14:32:11 +02:00
gregoirenovel
43b406e51c
Procédures → démarches
2018-09-05 14:32:11 +02:00
gregoirenovel
be3b9382e5
Rename status partial to status_badge
2018-09-05 14:10:13 +02:00
Pierre de La Morinerie
af5df2d661
dossier: add "Messagerie" tab
2018-09-05 14:02:12 +02:00
Pierre de La Morinerie
5cfb200417
dossier: cache the dossier value
2018-09-05 13:56:12 +02:00
Pierre de La Morinerie
63472f00e6
messagerie: generalize the current user email
2018-09-05 13:56:12 +02:00
Pierre de La Morinerie
4e2a5f0b9b
messagerie: move templates to a shared location
2018-09-05 13:56:12 +02:00
Pierre de La Morinerie
d99e606206
dossier: rename status_progress to status_overview
2018-09-05 11:52:04 +02:00
gregoirenovel
37c0552c64
Add titles
2018-09-05 11:35:03 +02:00
gregoirenovel
6b88968889
Formulaire → demande, when not editable
2018-09-05 11:07:11 +02:00
gregoirenovel
b9a32633bb
Rename a file with a more explicit filename
2018-09-05 10:09:59 +02:00
gregoirenovel
81e94ca631
Improve _status.html.haml
2018-09-05 10:09:59 +02:00
Pierre de La Morinerie
750e1e0c83
gestionnaire: move commentaire creation into a service
2018-09-04 18:52:43 +02:00
gregoirenovel
b2dc502ed5
Use an env var for Carrierwave's cache_dir
2018-09-04 16:07:59 +02:00
gregoirenovel
d05209d28f
Make the stats code more robust to empty databases
2018-09-03 17:35:14 +02:00
gregoirenovel
df742421a8
Remove an env var
2018-09-03 16:13:38 +02:00
gregoirenovel
e927f56e0d
Use a proper HAML comment
2018-09-03 11:41:25 +02:00
gregoirenovel
bdb961f280
Rename support-navigator-banner to outdated-browser-banner
2018-09-03 11:41:03 +02:00
gregoirenovel
1b545123fa
Improve the outdated browser support banner style
...
- In the new design, it is now at the top of the
page
- In the new design, it no longer covers up the UI
- In the new design, the text is now left-aligned
which makes it easier to read
- In the new design, its height has been reduced
which makes it less annoying
2018-09-03 11:35:08 +02:00
gregoirenovel
75ee41b7fa
[ Fix #2494 ] Improve deletion warning text
2018-08-31 15:41:51 +02:00
Paul Chavard
72dded2a5a
Fix safari bug
...
Fix #2452
2018-08-31 11:58:33 +01:00
gregoirenovel
66af573ca4
Add a warning in the attachements part of the form
2018-08-31 00:10:16 +02:00
Frederic Merizen
559d080ca6
[ #1946 ] Show data retention time in footer
2018-08-30 18:03:01 +02:00
Paul Chavard
5d5a356ade
Cleanup contact_link helper
2018-08-30 15:12:50 +01:00
Paul Chavard
0c582197da
Do not send messages to brouillon dossier
2018-08-30 15:12:50 +01:00
Paul Chavard
854bc62caa
Fix class name
2018-08-30 15:12:50 +01:00
Paul Chavard
ea5248dde1
Flatten tags list, cast to array and remove blank elements
2018-08-30 15:12:50 +01:00
Paul Chavard
b60805a54c
Use mailto in error message
2018-08-30 15:12:50 +01:00
Paul Chavard
441e123e8a
Do not lose form content on errors
2018-08-30 15:12:50 +01:00
Paul Chavard
7ac4dc355f
Add default dossier_id to contact form on dossier pages
2018-08-30 15:12:50 +01:00
gregoirenovel
6a33c30812
Rename the last “Gestionnaire” occurence in the UI to “Instructeur”
2018-08-30 14:42:09 +02:00
gregoirenovel
c015365057
Fix case typos
2018-08-30 14:23:45 +02:00
Frederic Merizen
7326065590
[ fix #2486 ] Include all needed attributes on downloadable_sorted
...
to avoid N+1 select
2018-08-30 14:13:32 +02:00
Frederic Merizen
9403d4c042
[ #2486 ] followers_gestionnaires should not be a method
...
To help activerecord caching
2018-08-30 14:13:32 +02:00
Frederic Merizen
37c45f0d29
[ #2486 ] Always order champs
...
to help activerecord cache the champs collection
2018-08-30 14:13:32 +02:00
gregoirenovel
04c6a653da
Unify the CSS filenames’ case
2018-08-30 13:16:14 +02:00
gregoirenovel
89af9c2b36
Remove extra blank lines
2018-08-30 13:16:14 +02:00
gregoirenovel
e60aa0c37b
Use scopes when possible
2018-08-30 13:16:14 +02:00
gregoirenovel
47962ef795
Simplify route_authorization
2018-08-30 13:16:14 +02:00
gregoirenovel
bf9f3b40df
Remove useless .to_s
2018-08-30 13:16:14 +02:00
gregoirenovel
de48dab031
Alignment
2018-08-30 13:16:14 +02:00
gregoirenovel
15d1b01a90
Code simplification
2018-08-30 13:16:14 +02:00
gregoirenovel
3662b82039
accompagnateur → instructeur
2018-08-29 23:09:08 +02:00
Paul Chavard
5f12ea43a7
Add helpscout webhook
2018-08-29 21:41:14 +01:00
gregoirenovel
4b071ecf06
Use enum to the fullest with Dossier.states
2018-08-29 17:31:08 +02:00
gregoirenovel
2d3b553e4d
Use enum to the fullest with TypeDeChamp.type_champs
2018-08-29 17:31:08 +02:00
gregoirenovel
16a719922b
Use enum to the fullest with User.loged_in_with_france_connects
2018-08-29 17:31:08 +02:00
gregoirenovel
606b56033a
Use enum to the fullest with VirusScan.statuses
2018-08-29 17:31:08 +02:00
Paul Chavard
509613afe6
Use contact_link helper instead of mailto
2018-08-29 16:08:01 +01:00
Paul Chavard
a5bc8a0b09
Add contact_link helper
2018-08-29 16:08:01 +01:00
Paul Chavard
f5579aa14b
Add type param to support form
2018-08-29 16:08:01 +01:00
gregoirenovel
0ac160c824
Remove the now useless stats API
2018-08-29 14:54:49 +02:00
gregoirenovel
85105ea156
Add some space below the title in big number cards
2018-08-29 14:54:49 +02:00
gregoirenovel
00610991b7
[ Fixes #2480 ] Add 30-days evolution stats to the stats page
2018-08-29 14:54:49 +02:00
Paul Chavard
bad107ffae
Add contact form
2018-08-29 10:44:12 +01:00
Paul Chavard
41815cfb1c
Add logged_in? helper
2018-08-29 10:43:47 +01:00
Paul Chavard
6453b53a41
Add helpscout API adapter
2018-08-29 10:43:00 +01:00
gregoirenovel
6b1ab9b552
Remove a now useless facade
2018-08-28 15:38:39 +02:00
gregoirenovel
cccad7dbdf
Remove a now useless method
2018-08-28 15:19:54 +02:00
gregoirenovel
19789b6848
Remove the stats part of the procedure info page for admins
...
- the numbers are wrong (:termine state does not
exist)
- the chart does not work
2018-08-28 15:19:31 +02:00
Paul Chavard
b8ef5d823f
Fix modal close action
2018-08-28 12:18:43 +01:00
Paul Chavard
3d506a8cdc
Fix autocomplete
2018-08-28 11:04:44 +01:00
gregoirenovel
9284afc649
Use a constant for the API Entreprise URL
2018-08-28 10:44:16 +02:00
gregoirenovel
66c5f080cc
Add AR validation for Feedback rating
2018-08-28 10:36:36 +02:00
gregoirenovel
9f3650b12f
Remove 2 months old call for suggestions
2018-08-28 10:11:09 +02:00
gregoirenovel
4c7f9af73d
Order the legend in the same order as the enum
2018-08-27 18:18:26 +02:00
gregoirenovel
b535f7ce3b
Fix the colors in the satisfaction graph
...
I forgot to change it after I switched to an enum
in the previous PR and changed the values order
2018-08-27 18:18:07 +02:00
gregoirenovel
577496cb06
Fix a typo
2018-08-27 17:58:53 +02:00
gregoirenovel
18624ff872
Update the stats code to use ratings instead of marks
2018-08-27 17:12:01 +02:00
gregoirenovel
3ba4ce0d37
Create feedbacks with ratings instead of marks
2018-08-27 17:12:01 +02:00
gregoirenovel
4103861f90
Add the rating column to feedbacks
2018-08-27 17:03:11 +02:00
gregoirenovel
c81206f4d1
Scroll to top after having given feedback
2018-08-27 14:16:20 +02:00
gregoirenovel
62878f9c5a
Encourage users that give us feedback to write to us
2018-08-27 14:16:20 +02:00
gregoirenovel
3d7b239f2b
Improve the feedback form question
2018-08-27 14:16:20 +02:00
gregoirenovel
98f70cc815
Allow a user to rate the service each month
2018-08-27 14:16:20 +02:00
gregoirenovel
a700fc16cf
Remove a now useless GA call
2018-08-27 14:09:43 +02:00
gregoirenovel
047d022c8a
Add a CTA at the bottom of the admin landing page
2018-08-27 14:09:43 +02:00
gregoirenovel
83e081426c
Redirect admins requests to the admin page after the form submission
2018-08-27 14:09:43 +02:00
gregoirenovel
100974ff9a
Do not open the admin account form in a new tab
2018-08-27 14:09:43 +02:00
gregoirenovel
40da6ccf40
Use a blue button for the admin CTA
2018-08-27 14:09:43 +02:00
gregoirenovel
d240be8948
Fix the focus state of .cta-panel-button-black
2018-08-27 14:09:43 +02:00
gregoirenovel
df6d9151b8
Factorize code in a mixin
...
In this file we factorise with a mixing, not
several classes
2018-08-27 14:09:43 +02:00
gregoirenovel
1578c3bca6
Stop having several class that do the exact same things
2018-08-27 14:09:43 +02:00
gregoirenovel
b158a92493
Add a graph showing the user satisfaction
2018-08-27 14:00:34 +02:00
gregoirenovel
f381d45d1a
Add a chart showing the dossiers state repartition
2018-08-27 14:00:34 +02:00
lucien mollard
9292e243ef
Add a button to download the stats in CSV
2018-08-27 14:00:34 +02:00
gregoirenovel
23aab2d044
Use a period at the end of a sentence
2018-08-27 09:24:26 +02:00
Paul Chavard
9abb3c7a5a
[ENV] Pipedrive key config
2018-08-23 15:55:32 +02:00
Paul Chavard
14f4b16fa4
[ENV] Signing key config
...
# Conflicts:
# config/secrets.yml
2018-08-23 15:55:32 +02:00
Paul Chavard
c79827d551
[ENV] Configure default_url_options
2018-08-23 15:55:32 +02:00
Paul Chavard
296e3a9b09
[ENV] Add fog config
2018-08-23 15:55:32 +02:00
Mathieu Magnin
db8e750f1a
[ENV] Configure Api Entreprise token
2018-08-23 15:55:32 +02:00
Mathieu Magnin
d37958d1ae
[ENV] Basic auth config
2018-08-23 15:55:32 +02:00
simon lehericey
d9a9677d1d
[ fix #2397 ] Manager: update crm conf
2018-08-23 12:12:39 +02:00
simon lehericey
ee43650c32
Demande: add nb_of_procedure, deadline and nb_of_dossier fields
2018-08-23 12:12:39 +02:00
Frederic Merizen
cef0eafb1a
[ #2179 ] Tolerate spurious spaces around search terms
2018-08-23 11:57:06 +02:00
Frederic Merizen
1134877d59
[ #2179 ] Remove newly dead code
2018-08-23 11:57:06 +02:00
Frederic Merizen
d681b1116f
[ Fix #2179 ] Use new full text search
2018-08-23 11:57:06 +02:00
Frederic Merizen
8fc359c54d
[ #2179 ] Simplify matching_dossiers_for_gestionnaire
2018-08-23 11:57:06 +02:00
Frederic Merizen
8744e9b83d
[ #2179 ] Simplify dossier_by_exact_id_for_gestionnaire
2018-08-23 11:57:06 +02:00
Frederic Merizen
20b886fb85
[ #2179 ] Simplify dossiers_by_id
2018-08-23 11:57:06 +02:00
Frederic Merizen
a42c4ade4c
[ #2179 ] Simplify id_compatible?
2018-08-23 11:57:06 +02:00
Frederic Merizen
b3cb06b7e5
[ #2179 ] Extract dossier_by_full_text_for_gestionnaire method
2018-08-23 11:57:06 +02:00
Frederic Merizen
d734f978a3
[ #2179 ] Extract dossiers_by_exact_id_for_gestionnaire method
2018-08-23 11:57:06 +02:00
Frederic Merizen
a72388bb37
[ #2179 ] Don't depend on current_gestionnaire in DossierSearchService
2018-08-23 11:57:06 +02:00
Frederic Merizen
57fd59b8d5
[ #2179 ] Move code to DossierSearchService
2018-08-23 11:57:06 +02:00
Frederic Merizen
650a740642
[ #2179 ] Remove dead code
2018-08-23 11:57:06 +02:00
Paul Chavard
1af4b2aa6e
Fix transfer modal not opening
2018-08-23 11:22:03 +02:00
gregoirenovel
a86e3a3156
Don’t change a button’s text when disabled after click
2018-08-23 10:59:11 +02:00
Frederic Merizen
3b2919a326
[ #2179 ] Use new updated value for search terms
...
Rather than old in-database value
2018-08-23 10:34:25 +02:00
Frederic Merizen
333f4e8824
[ #2179 ] update champ and individual association with default
...
That way, they are safe to read in update_search_terms, and no
reload is needed later
2018-08-23 10:34:25 +02:00
Paul Chavard
e1f1827320
Replace typeahead with simpler autocomplete
2018-08-22 17:17:33 +02:00
Paul Chavard
2500cd516b
Use delegation in SIRET champ code
2018-08-22 16:42:55 +02:00
Paul Chavard
e8e62b0e63
Remove unused modules from old design
2018-08-22 16:42:46 +02:00
Paul Chavard
a17fb60aea
Include select2 from the file where it is used
2018-08-22 16:42:29 +02:00
Paul Chavard
1109a4500f
Add csrf token protection to jQuery initiated requests
2018-08-22 14:13:10 +02:00
gregoirenovel
1fb3f516bf
Add a new color variable
2018-08-22 11:23:06 +02:00
gregoirenovel
e6442436ba
Remove a space before a final period
2018-08-22 11:23:06 +02:00
gregoirenovel
af56e73572
Open the browser-update.org link in a new tab
2018-08-22 11:21:00 +02:00
gregoirenovel
0b7060d48b
Improve the outdated browser message
2018-08-22 11:21:00 +02:00
gregoirenovel
e0bb0ac7b6
Use the proper product name
2018-08-21 18:05:09 +02:00
Paul Chavard
f4f3a302b9
Do not rely on rails env to detect staging
2018-08-21 15:43:06 +02:00
Pierre de La Morinerie
2e762e268e
views: add tab_item
and active_tab_item
helpers
2018-08-16 16:36:37 +02:00