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

x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes

Adding Task:
Rendering the menu on the server, using php instead of making a copy using JS.

x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes

Here is a new issue to discuss about the architecture of MN2.x
https://drupal.org/node/2205819

x7ian’s picture

Issue summary: View changes

Adding list of tasks for the Mobile Navigation 7.x-2.x Architecure implementation.

x7ian’s picture

Issue summary: View changes

Adding the JavaScript Changes section to address the tasks for JS refactoring.

x7ian’s picture

Issue summary: View changes

Commited:

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

x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes

Implementation 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

x7ian’s picture

Issue summary: View changes

Commited: 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.

x7ian’s picture

x7ian’s picture

Issue summary: View changes
x7ian’s picture

Commited 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.

x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes
x7ian’s picture

Added 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

x7ian’s picture

Menus 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

x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes

Two data definitions are created on Drupal.settings:
* mobile_navigation_displays: Like:

{
  mobile : "(min-width:0px)",
  normal : "all and (min-width:420px)"
}

* mobile_navigation_configurations

{
  "<menu-name_display-name" : { 
            'menu' => menu_name,
            'menu_selector' => menu_selector,
            'display' => display_id,
            'plugin' => plugin,
            'show_items_policy' => show_items_policy,
            'expand_active_trail_automatically' => expand_active_trail_automatically,
            'show_hide_effect' => show_hide_effect,
            'collapse_by_default' => collapse_by_default,
            'menu_width' => menu_width,
            'use_button' => use_button,
            'button_title' => button_title,
            'use_handler' => use_handler,
            'handler_title' => handler_title,
            'use_mask' => use_mask,
            'use_classes' => use_classes, }
}
x7ian’s picture

Commited: 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.

x7ian’s picture

Issue summary: View changes
lauriii’s picture

The roadmap seems nice. Gonna start work on this as soon as possible.

x7ian’s picture

Issue summary: View changes
x7ian’s picture

Issue summary: View changes
x7ian’s picture

Status: Active » Needs review

Ok, 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.

x7ian’s picture

Issue summary: View changes
izmeez’s picture

Issue summary: View changes

Hope no one minds. I've taken a stab at editing the summary to include issues by number so that the status is also reflected.

izmeez’s picture

Version: 7.x-1.x-dev » 7.x-2.x-dev
Issue summary: View changes

Two 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.

izmeez’s picture

Issue summary: View changes
izmeez’s picture

Issue summary: View changes

Reversed 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.

x7ian’s picture

Many 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.

x7ian’s picture

Thank 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.

x7ian’s picture

Assigned: Unassigned » x7ian
x7ian’s picture

Issue summary: View changes

Adding 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.

  • 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.
lvpapa’s picture

There seems to be a conflict with 7.2 and Flexslider. When Mobile navigation is enabled, Flexslider does not function at all.

ksi’s picture

I 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

ksi’s picture

Unfortunately 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.