fixed #1989, login block hover on ipad
This commit is contained in:
		
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -50,6 +50,7 @@ import VMainContent from 'vuejs/components/Content/MainContent' | |||||||
| import VSearchBlock from 'vuejs/components/Block/SearchBlock' | import VSearchBlock from 'vuejs/components/Block/SearchBlock' | ||||||
| import VLeftContent from 'vuejs/components/Content/LeftContent' | import VLeftContent from 'vuejs/components/Content/LeftContent' | ||||||
| import VHeaderMenu from 'vuejs/components/Content/HeaderMenu' | import VHeaderMenu from 'vuejs/components/Content/HeaderMenu' | ||||||
|  | import VLanguageSwitcher from 'vuejs/components/Content/LanguageSwitcher' | ||||||
| import GlobCoolLightBox from 'vuejs/components/Content/GlobCoolLightBox' | import GlobCoolLightBox from 'vuejs/components/Content/GlobCoolLightBox' | ||||||
|  |  | ||||||
| import { mapState } from 'vuex' | import { mapState } from 'vuex' | ||||||
| @@ -62,7 +63,7 @@ import 'theme/assets/styles/print.scss' | |||||||
|  |  | ||||||
| import MA from 'vuejs/api/ma-axios' | import MA from 'vuejs/api/ma-axios' | ||||||
|  |  | ||||||
| export let _v_sitebranding_block, _v_user_block, _v_header_menu, | export let _v_sitebranding_block, _v_user_block, _v_header_menu, _v_language_switcher, | ||||||
|   _v_pagetitle_block, _v_search_block, |   _v_pagetitle_block, _v_search_block, | ||||||
|   _v_main_content, _v_left_content, |   _v_main_content, _v_left_content, | ||||||
|   _v_glob_coollightbox |   _v_glob_coollightbox | ||||||
| @@ -119,6 +120,7 @@ export let _v_sitebranding_block, _v_user_block, _v_header_menu, | |||||||
|         initVSiteBrandingBlock() |         initVSiteBrandingBlock() | ||||||
|         initVPagetitleBlock() |         initVPagetitleBlock() | ||||||
|         initVHeaderMenu() |         initVHeaderMenu() | ||||||
|  |         initVLanguageSwitcher() | ||||||
|         initHamburgerMenu() |         initHamburgerMenu() | ||||||
|         initVSearchBlock() |         initVSearchBlock() | ||||||
|         initVMainContent() |         initVMainContent() | ||||||
| @@ -206,6 +208,21 @@ export let _v_sitebranding_block, _v_user_block, _v_header_menu, | |||||||
|       }) |       }) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     function initVLanguageSwitcher () { | ||||||
|  |       console.log('initVLanguageSwitcher') | ||||||
|  |       const id = 'block-languageswitcher' | ||||||
|  |       const $html_obj = document.querySelector('#' + id) | ||||||
|  |       console.log('initVLanguageSwitcher $html_obj', $html_obj) | ||||||
|  |       const html = $html_obj.outerHTML | ||||||
|  |       console.log('initVLanguageSwitcher html', html) | ||||||
|  |       _v_language_switcher = new Vue({ | ||||||
|  |         store, | ||||||
|  |         i18n, | ||||||
|  |         router, | ||||||
|  |         render: h => h(VLanguageSwitcher, { props: { id: id, dom_html: html } }) | ||||||
|  |       }).$mount('#' + id) | ||||||
|  |     } | ||||||
|  |  | ||||||
|     function updateLanguageLinksBlock (path) { |     function updateLanguageLinksBlock (path) { | ||||||
|       // update block language selection |       // update block language selection | ||||||
|       console.log('router beforeEach path ', path) |       console.log('router beforeEach path ', path) | ||||||
|   | |||||||
| @@ -0,0 +1,44 @@ | |||||||
|  | {# | ||||||
|  | /** | ||||||
|  |  * @file | ||||||
|  |  * Theme override to display a block. | ||||||
|  |  * | ||||||
|  |  * Available variables: | ||||||
|  |  * - plugin_id: The ID of the block implementation. | ||||||
|  |  * - label: The configured label of the block if visible. | ||||||
|  |  * - configuration: A list of the block's configuration values. | ||||||
|  |  *   - label: The configured label for the block. | ||||||
|  |  *   - label_display: The display settings for the label. | ||||||
|  |  *   - provider: The module or other provider that provided this block plugin. | ||||||
|  |  *   - Block plugin specific settings will also be stored here. | ||||||
|  |  * - content: The content of this block. | ||||||
|  |  * - attributes: array of HTML attributes populated by modules, intended to | ||||||
|  |  *   be added to the main container tag of this template. | ||||||
|  |  *   - id: A valid HTML ID and guaranteed unique. | ||||||
|  |  * - title_attributes: Same as attributes, except applied to the main title | ||||||
|  |  *   tag that appears in the template. | ||||||
|  |  * - title_prefix: Additional output populated by modules, intended to be | ||||||
|  |  *   displayed in front of the main title tag that appears in the template. | ||||||
|  |  * - title_suffix: Additional output populated by modules, intended to be | ||||||
|  |  *   displayed after the main title tag that appears in the template. | ||||||
|  |  * | ||||||
|  |  * @see template_preprocess_block() | ||||||
|  |  */ | ||||||
|  | #} | ||||||
|  | {% | ||||||
|  |   set classes = [ | ||||||
|  |     'block', | ||||||
|  |     'block-' ~ configuration.provider|clean_class, | ||||||
|  |     'block-' ~ plugin_id|clean_class, | ||||||
|  |   ] | ||||||
|  | %} | ||||||
|  | <div{{ attributes.addClass(classes) }}> | ||||||
|  |   {{ title_prefix }} | ||||||
|  |   {% if label %} | ||||||
|  |     <h2{{ title_attributes }}  v-touch.prevent.stop="onTapLanguageSwitcher">{{ label }}</h2> | ||||||
|  |   {% endif %} | ||||||
|  |   {{ title_suffix }} | ||||||
|  |   {% block content %} | ||||||
|  |     {{ content }} | ||||||
|  |   {% endblock %} | ||||||
|  | </div> | ||||||
| @@ -35,7 +35,7 @@ | |||||||
| <div{{ attributes.addClass(classes) }}> | <div{{ attributes.addClass(classes) }}> | ||||||
|   {{ title_prefix }} |   {{ title_prefix }} | ||||||
|   {% if label %} |   {% if label %} | ||||||
|     <h2{{ title_attributes }}>{{ label }}</h2> |     <h2{{ title_attributes }}  v-touch.prevent.stop="onTapLoginBlock">{{ label }}</h2> | ||||||
|   {% endif %} |   {% endif %} | ||||||
|   {{ title_suffix }} |   {{ title_suffix }} | ||||||
|   <section> |   <section> | ||||||
|   | |||||||
| @@ -26,19 +26,19 @@ export default { | |||||||
|       userLogin: 'User/userLogin', |       userLogin: 'User/userLogin', | ||||||
|       openCloseHamMenu: 'Common/openCloseHamMenu' |       openCloseHamMenu: 'Common/openCloseHamMenu' | ||||||
|     }), |     }), | ||||||
|  |     onTapLoginBlock (e) { | ||||||
|  |       console.log('onTapLoginBlock', e) | ||||||
|  |       let tapped = e.target.parentNode.parentNode.querySelectorAll('.tapped') | ||||||
|  |       tapped.forEach((item, i) => { | ||||||
|  |         item.classList.remove('tapped') | ||||||
|  |       }) | ||||||
|  |       e.target.parentNode.classList.add('tapped') | ||||||
|  |     }, | ||||||
|     login () { |     login () { | ||||||
|       this.userLogin({ |       this.userLogin({ | ||||||
|         mail: this.mail, |         mail: this.mail, | ||||||
|         pass: this.password |         pass: this.password | ||||||
|       }) |       }) | ||||||
|       // moved to user.js store |  | ||||||
|       // .then(() => { |  | ||||||
|       //   console.log('LoginBlock user logged-in') |  | ||||||
|       //   this.openCloseHamMenu(false) |  | ||||||
|       //   this.$router.push({ |  | ||||||
|       //     name: 'base' |  | ||||||
|       //   }) |  | ||||||
|       // }) |  | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   beforeMount() { |   beforeMount() { | ||||||
|   | |||||||
| @@ -0,0 +1,59 @@ | |||||||
|  | <script> | ||||||
|  |  | ||||||
|  | import Vue from 'vue' | ||||||
|  |  | ||||||
|  | import router from 'vuejs/route' | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |   name: "LanguageSwitcher", | ||||||
|  |   router, | ||||||
|  |   props:['id','dom_html'], | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       html: null, | ||||||
|  |       template: null | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   beforeMount() { | ||||||
|  |     console.log("beforeMount languageSwitcher", this.dom_html) | ||||||
|  |     if (!this.template) { | ||||||
|  |       console.log('no languageswitcher template') | ||||||
|  |       if (this.dom_html) { // if html prop is available | ||||||
|  |         this.html = this.dom_html | ||||||
|  |         this.compileTemplate() | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     compileTemplate(){ | ||||||
|  |       console.log("languageSwitcher compileTemplate html", this.html) | ||||||
|  |       this.template = Vue.compile(this.html) | ||||||
|  |       // https://github.com/vuejs/vue/issues/9911 | ||||||
|  |       this.$options.staticRenderFns = []; | ||||||
|  |       this._staticTrees = []; | ||||||
|  |       this.template.staticRenderFns.map(fn => (this.$options.staticRenderFns.push(fn))); | ||||||
|  |       console.log("languageSwitcher compileTemplate template", this.template) | ||||||
|  |     }, | ||||||
|  |     onTapLanguageSwitcher (e) { | ||||||
|  |       console.log('onTapLanguageSwitcher', e) | ||||||
|  |       let tapped = e.target.parentNode.parentNode.querySelectorAll('.tapped') | ||||||
|  |       tapped.forEach((item, i) => { | ||||||
|  |         item.classList.remove('tapped') | ||||||
|  |       }) | ||||||
|  |       e.target.parentNode.classList.add('tapped') | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   render(h) { | ||||||
|  |     console.log('languageswitcher render') | ||||||
|  |     if (!this.template) { | ||||||
|  |       return h('span', $t('default.Loading…')) | ||||||
|  |     } else { | ||||||
|  |       return this.template.render.call(this) | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  |  | ||||||
|  | <style lang="scss" scoped> | ||||||
|  |  | ||||||
|  | </style> | ||||||
		Reference in New Issue
	
	Block a user