mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-11 09:53:32 +03:00
14f29f5139
Closes #3254, closes #3138, closes #3245 ### Settings Routing and View refactoring - Refactored `SettingsView` to handle transitions between mobile and desktop layouts - `SettingsRoute` will only transition to `settings.general` if the screen is large enough to show both the menu and the content - Added `SettingsIndexView` to handle showing the settings menu on mobile screens - Added `SettingsContentBaseView` to be inherited by any settings view that is not index. - Updated Settings templates appropriately to work with new views - Removed extraneous `active` class from `settings-content` - Changed settings menu to use `gh-activating-list-item` - Retooled settings tests ### Mobile Utils - Renamed file to `mobile.js`, since it's inside of `utils/` - Added `mobileQuery` MediaQueryList to help detect layout changes - Removed unused `hasTouchScreen`, `device.js` should be used instead. - Removed unused `smallScreen` function - Moved FastClickInit to codemirror-mobile
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
/*global CodeMirror, device, FastClick*/
|
|
import createTouchEditor from 'ghost/assets/lib/touch-editor';
|
|
|
|
var setupMobileCodeMirror,
|
|
TouchEditor,
|
|
init;
|
|
|
|
setupMobileCodeMirror = function setupMobileCodeMirror() {
|
|
var noop = function () {},
|
|
key;
|
|
|
|
for (key in CodeMirror) {
|
|
if (CodeMirror.hasOwnProperty(key)) {
|
|
CodeMirror[key] = noop;
|
|
}
|
|
}
|
|
|
|
CodeMirror.fromTextArea = function (el, options) {
|
|
return new TouchEditor(el, options);
|
|
};
|
|
|
|
CodeMirror.keyMap = { basic: {} };
|
|
};
|
|
|
|
init = function init() {
|
|
//Codemirror does not function on mobile devices,
|
|
// nor on any iDevice.
|
|
if (device.mobile() || (device.tablet() && device.ios())) {
|
|
$('body').addClass('touch-editor');
|
|
|
|
// make editor tabs touch-to-toggle in portrait mode
|
|
$('.floatingheader').on('touchstart', function () {
|
|
$('.entry-markdown').toggleClass('active');
|
|
$('.entry-preview').toggleClass('active');
|
|
});
|
|
|
|
Ember.touchEditor = true;
|
|
//initialize FastClick to remove touch delays
|
|
Ember.run.scheduleOnce('afterRender', null, function () {
|
|
FastClick.attach(document.body);
|
|
});
|
|
TouchEditor = createTouchEditor();
|
|
setupMobileCodeMirror();
|
|
}
|
|
};
|
|
|
|
export default {
|
|
createIfMobile: init
|
|
};
|