Here is the list of tasks for this branch.
-
Improove CSS
Redesign the default CSS - Issue already created: #2191351: Redesign the default CSS
-
Improve JS
Use Jquery UI. Make the module use JQuery UI (Included on D7 core)
We can create other great effects using this library:
http://jqueryui.com/effect/ -
More than two displays. (multiple breakpoints)
This implies being able to create a list of different configurations for different displays.
For example, we might need the Left Drawer effect with a 50% width for a tablet landscape view, the Top drawer effect with the 40% for the tablet portrait and for the mobile 35% with the expand in place effect.
This feature will be possible with the new Mobile Navigation Architecture #2205819: Mobile Navigation 7.x-2.x Architecture -
Multiple menus with different configurations
We need to be able to make two or more drupal menus responsive. So we need a list of menus each of wich will have its own configuration for each of the defined displays.
This feature will be possible with the new #2205819: Mobile Navigation 7.x-2.x Architecture -
Rendering the menu on the server, using php instead of cloning it using JS.
Show the menu in a Block. This way it would be possible to place it on any part of the website.
- Allow an option for the menu to be expanded by default. (Not collapsed)
- Add option to remove the tab handler and the menu button.
- Make menu button and tab handler titles independently cofigurable having for each, a checkbox to show the character ☰
- Two issues im including from the Mobile Navigation OLD project.
* Making Mobile Range media query not required, making it always visible if left blank - #2080207: Why is the "Not mobile range media query" field required?
* Fix this in the .info file (oups!) - #2080179: configure path in .info file is not correct
Tasks for the MN 7.x-2.x Architecture Sprint.
Refer to Mobile Navigation 7.x-2.x Architecture Issue #2205819: Mobile Navigation 7.x-2.x Architecture
- Implement Squema
* Displays Table
* MenusDisplays Table
* Define Default Values - Implement /admin/config/user-interface/mobile-navigation:
Commits: #10
* List of Displays (Reordering)
* Add, edit and delete Displays - Implement /admin/structure/menu/manage/MENU_NAME/mobile-navigation:
*A form with a select for adding display configurations to current menu.
* Implement Display Configuration Form
Rendering the menus
Issue: #2208361: Rendering menus
Add menus to the page_bottom region at hook_page_build().Add the javascript mobile menu definitions at hook_page_build().
JavaScript Changes
Tasks for the JS refactoring. Lots of changes:
Support for multiple configurations. a new parameters configuration definition for the construction of the main mobile_menu object.- Define New JS architecture:
* JS will no longer clone the menu. It will only apply behavior and bindings to a menu that has already been redered at the server and came included with the HTML of the current page. mobile_navigation_displays and mobile_navigation_configurations are created at Drupal.settings-
Integrating all plugins to new aproach, where each plugin is a separated class with the needed methods.
* Basic plugin
* Acordion
* Slide navigation
* expand in place
* top modal
* left modal
* right modal
* bottom modal
* top drawer
* left drawer
* right drawer
TODO in future releases
Not working on this now for this will not be included in the 2.0 stable release.
This are to be implemented after the 2.0 release ir lauched.
- A expand in place modal show/hide effect. Current expand in place pushes all content under it down, when it expands. Making a modal effect that opens the menu expanding it over the content below it.
- More effects with easing. (using Jquery UI to enhance effects).
- Configurable speed.
- Adding a simple select tag plugin. Superfish has this but in case someone needs to implement this kind of transformation to any menu.
- CSS refactoring: Redesign the default CSS - Issue already created: #2191351: Redesign the default CSS
- adding contextual links to access directly to each menu configuration, in both, the generated Menu button block and the place where the menu is rendered.
This issue is open for discussion. Please comment and edit!
Comments
Comment #1
x7ian commentedComment #2
x7ian commentedAdding Task:
Rendering the menu on the server, using php instead of making a copy using JS.
Comment #3
x7ian commentedComment #4
x7ian commentedHere is a new issue to discuss about the architecture of MN2.x
https://drupal.org/node/2205819
Comment #5
x7ian commentedAdding list of tasks for the Mobile Navigation 7.x-2.x Architecure implementation.
Comment #6
x7ian commentedAdding the JavaScript Changes section to address the tasks for JS refactoring.
Comment #7
x7ian commentedCommited:
Starting with JS refactoring
- Removed all methods from the mobile_menu class. The old code is left in a file called mobile_menu_old.js
- Changes in the scructure of the configuration specification at mobile_navigation.js. Added two main items: displays and configurations.
- Added method getCurrentDisplay. Returns the name of the current display acording to the media queries results. Uses the same checkQuery Method, iterating over the displays list to get the current one.
- onResize() method calls getCurrentDisplay() method. Then it determines if the current display has been set before to apply configuration only once for each configuration set.
http://drupalcode.org/project/mobile_navigation.git/commit/11fe63e
Commited:
Implementation of Squema for mobile_navigation_displays Table and mobile_navigation_menu_display_configurations Table on .install file.
http://drupalcode.org/project/mobile_navigation.git/commit/82d4a37
Comment #8
x7ian commentedComment #9
x7ian commentedComment #10
x7ian commentedImplementation of displays table at /admin/config/user-interface/mobile-navigation
* List of display is now orderable modifying the values of the weight directly in the table weight column.
* Displays can also be removed using a 'Remove display' checkbox in the delete column.
Commit - http://drupalcode.org/project/mobile_navigation.git/commit/cafe929
Comment #11
x7ian commentedCommited: Implemented display configurations list as a tab on menus configuration at /admin/structure/menu/manage/%menu/mobile-navigation
* implemented list of display configuration for current menu.
* displays can be added and removed from the list. is only permited to add displays that haven been added yet.
* The list has a link to edit the configuration at
admin/structure/menu/manage/%menu/mobile-navigation/configuration/%display.
This link shows the configuration form.
Comment #12
x7ian commentedCommit: http://drupalcode.org/project/mobile_navigation.git/commit/7c8132e
Comment #13
x7ian commentedComment #14
x7ian commentedCommited 8e4b83c: Continue with mobile navigation UI implementation.
- Default values defined. When a display configuration is added to a menu this configuration is initialized with the default values declared in a series of constants.
- Configuration form is completed with the values needed for the features of mobile navigaiton, including the new features to be added on 7.x-2.x
- fixes and adjustments to the schema sctructure.
- Configuration form is completed. It is populated with values form the corresponding record at the configurations table.
Comment #15
x7ian commentedComment #16
x7ian commentedComment #17
x7ian commentedComment #18
x7ian commentedAdded the file mobile_navigation.inc
* This file is included on the mobile_navigations init hook.
* Mooved helper functions to this files. mobile_navigation_get_plugins() mobile_navigation_get_effects()
* also added a bunch of functions to re-use code for fetching displays and configuration info.
Commit: http://drupalcode.org/project/mobile_navigation.git/commit/9779149
Comment #19
x7ian commentedMenus are now being redered at hook_page_build().
* One redered menu for each defined configuration is placed at the page_bottom region.
* Each menu shows in a div container with an id of the form "menu-name_display-name", example: main-menu_mobile
* All menus are contained in a div with the id mobile-navigation-menus.
Commit: http://drupalcode.org/project/mobile_navigation.git/commit/21e1bbb
Comment #20
x7ian commentedComment #21
x7ian commentedTwo data definitions are created on Drupal.settings:
* mobile_navigation_displays: Like:
* mobile_navigation_configurations
Comment #22
x7ian commentedCommited: http://drupalcode.org/project/mobile_navigation.git/commit/90b8d70
We now have most of what we need for handdling Mobile Navigation at the Backend.
Not much has been done at the Front end, that is at the Clients JS.
So now that we have Drupal serving all the configurations and displays defined by the user to JS using the variables Drupal.settings.mobile_navigation_displays and Drupal.settings.mobile_navigation_configurations, we have now to do the mobile navigation magic so its DOM Time and JQuery Time.
Time to Focus on the mobile_menu.js libraries refactoring.
Comment #23
x7ian commentedComment #24
lauriiiThe roadmap seems nice. Gonna start work on this as soon as possible.
Comment #25
x7ian commentedComment #26
x7ian commentedComment #27
x7ian commentedOk, the migration of code from the previous to the new JS aproach is finished.
Ready for testing!
I have teste all the functionality with only one menu.
Now ill test the functionality with multiple menus configurations.
Everybody Please test all functionality of the 7.x-2.x-dev version of the mobile navigation module and give feedback.
Feel free to change the status to needs work if you find bugs or whatever.
Comment #28
x7ian commentedComment #29
izmeez commentedHope no one minds. I've taken a stab at editing the summary to include issues by number so that the status is also reflected.
Comment #30
izmeez commentedTwo more links modified.
Also changed the version to 7.2.x-dev to help those who search by version and want to see where it is going.
Thanks.
Comment #31
izmeez commentedComment #32
izmeez commentedReversed the change I made of the link to the comment. Didn't work as I expected. Hope the rest in the summary are fine now.
Comment #33
x7ian commentedMany things still have changed in the module so more testing is needed.
However i think im finnaly getting to a very stable version ado Im doing lots of testing this afternoon and anfter that ill be needing more people to test it.
Thank you @izmeez.
Comment #34
x7ian commentedThank you everybody for your ideas and feedback on your experience using Mobile Navigation module.
After me reviewing and testing it, i belive this chicken is almost cooked.
However we need some more people to test the last version and also need someone(that is not me) to change the status of this post to RTBC before we can launch the new release.
So i call everybody to test the current 7.x-2.x-dev version and give feedback.
Meanwhile, i will finish with the documentation and change the modules page contents, preparing for the release day.
I will also create the Drupal 8 branch so we start working in a 8.x-1.x-dev version. I think we are still in good time to have a stable version before the release of D8.
Comment #35
x7ian commentedComment #36
x7ian commentedAdding new tasks.
Not working on this now for this will not be included in the 2.0 stable release.
This are to be implemented after the 2.0 release ir lauched.
Comment #37
lvpapa commentedThere seems to be a conflict with 7.2 and Flexslider. When Mobile navigation is enabled, Flexslider does not function at all.
Comment #38
ksi commentedI have tested Mobile navigation module v2 and wanted to use it in a production site.
These issues came up:
- Conflicts with other modules using Javascript:
-- Flexslider: no function at all
-- Fivestar: changes from iconic view ti pop-up
-- Hierarchical Select: not sure,
Browser (Firefox 40) seems to run in cpu loop when using hierarchical select input.
- Mobile button
I defined a button for smartphones and tablets each with including the button per block in the site dependant on device type (non for desktop devices). For wider smartphone display (landscape) the button is not shown.
Installed versions are:
- Drupal core 8.38
- jQuery 1.7
- Mobile navigation 7.x-2.x-dev
- Flex slider 7.x-1.0-rc3
- Fivestar 7.x-2.1
- Hierarchical Select 7.x-3.0-alpha5
Comment #39
ksi commentedUnfortunately I found additional issues:
- Conflict with module lang_dropdown. JS for language changing doesn't work anymore.
- Changing the content and interface language doesn't change the language of the menuitems in mobile navigation block.
- When zooming in the menu background graphics and icons for sub-level don't match.