Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows 8.1/Chrome: Unable to save edits #3688

Closed
averymd opened this issue Dec 18, 2014 · 13 comments
Closed

Windows 8.1/Chrome: Unable to save edits #3688

averymd opened this issue Dec 18, 2014 · 13 comments

Comments

@averymd
Copy link

averymd commented Dec 18, 2014

With Django CMS 3.0.x, once the modal to edit content is raised, it can't be closed through any mouse actions. Clicking "save", "cancel", or the "x" to close do nothing. Hitting the escape key will close the modal. There are no JS errors in the console, and no failed network requests.

I've tried disabling every Chrome plugin I have installed, clearing all cache and cookies, and working with a completely fresh install of Django 1.6.8 and Django CMS 3.0.x.

I'm on a Surface Pro 2, but I'm using a mouse to interact with the modal, as opposed to touch.

@evildmp
Copy link
Contributor

evildmp commented Dec 18, 2014

See also #3419 and #3304.

@averymd just to be clear, you're experiencing this with the latest version of the support/3.0.x branch, rather than the latest version from pip?

@averymd
Copy link
Author

averymd commented Dec 18, 2014

No, this is with latest version from pip.

@evildmp
Copy link
Contributor

evildmp commented Dec 18, 2014

Can you try the version of the support/3.0.x branch from GitHub? I don't think it will make a difference, but it's just possible.

@averymd
Copy link
Author

averymd commented Dec 18, 2014

Tried support/3.0.x branch, and it's still an issue there.

@yakky yakky added this to the 3.0.8 milestone Dec 27, 2014
@yakky yakky modified the milestones: 3.0.8, 3.0.X Jan 10, 2015
@mkoistinen
Copy link
Contributor

I wonder if this is because the Surface Pro is a touch and mouse driven device. Perhaps we detect touch enabled, then not look for mouse input?. I do not have a dual-input device to test on. Anyone else?

@mkoistinen mkoistinen modified the milestones: 3.0.9, 3.0.X Jan 12, 2015
@mkoistinen
Copy link
Contributor

I've given this a blocker tag. This is content-manager facing and adversely affects normal operations on affected devices.

@averymd Can you advise the version of Chrome you're using? Also, if not the very latest, can you retest on latest Chrome? Finally, can you test in other browsers (IE and Firefox, in particular). Many thanks!

@bastiW
Copy link

bastiW commented Jan 17, 2015

I've tested with the "development" version of DjangoCMS on my Yoga Windows 8.1 Device. I've installed the development version with the djangocms-installer. Chrome is still not working. Firefox and IE are OK.

You can reproduce this issue on a Windows 7 non touch device:

  1. Go to chrome://flags/#touch-events
  2. Swith the flag of Toch events to "Enabled"
  3. Click "Relaunch Now"
  4. Go to DjangoCMS
  5. Edit a text snippet
  6. Try to save or close the window ---> You can't do it

@averymd
Copy link
Author

averymd commented Jan 17, 2015

I'm on the latest version of Chrome on my Surface. IE 11 and latest FF work perfectly fine.

@srj55
Copy link

srj55 commented Jan 22, 2015

I'm also having this issue. This applies to the modal popup window buttons as well as the left window pane that opens to the django admin. Once it's open on the left side, I can't close it without logout->login (ESC doesn't work either).

I'm using latest chrome. Also, can confirm this works in other browsers.

Server:
Django-CMS 3.0.9
Django 1.7.3

Client:
WIndows 8.1
Chrome 40.0.2214.91 m

@mkoistinen
Copy link
Contributor

This can be naïvely "fixed" by altering this (and similar) lines:
https://github.com/divio/django-cms/blob/support/3.0.x/cms/static/cms/js/modules/cms.modal.js#L35

To look like this:
this.click = (document.ontouchstart !== null) ? 'click.cms' : 'touchend.cms click.cms';

The idea being that if we detect support for touch, we bind the handlers to both touch- and mouse-events, not just touch-events. I have tested this on my non-touch-capable machine (MacBook Pro), using Chrome's #touch-events flag set to enabled. However, I do not have a touch-capable desktop/laptop to test that it still works for touch-only devices. I can verify that this change makes no difference on my iPad/iPhone, since there are other issues preventing me from making edits on these iOS devices. Since, the CMS is not (yet) functional for touch-only devices, this may be the solution for now.

Clearly some efforts have been made towards a touch-friendly version of the CMS, but it seems we're not quite there.

I will attempt to perform this sort of fix in a new PR for 3.0.10. I will simultaneously open a new Issue requesting a completely touch-friendly (and dual-input) release of the CMS.

@FinalAngel Comments? Thoughts?

mkoistinen added a commit to mkoistinen/django-cms that referenced this issue Jan 24, 2015
@srj55
Copy link

srj55 commented Jan 24, 2015

your fix worked for me (both touch screen and mouse):

this.click = (document.ontouchstart !== null) ? 'click.cms' : 'touchend.cms click.cms';

Also, I did this for cms.sideframe.js since the side frame is affected by this issue.

@mkoistinen
Copy link
Contributor

@averymd, @bastiW, @srj55 can you install from here: https://github.com/mkoistinen/django-cms/archive/mkoistinen-feature/fix_3688.zip and let me know if it fixes things and doesn't create any new issues?

@mkoistinen
Copy link
Contributor

Fixed by #3795. Also, superseded by #3796.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants