diff --git a/core/js/apps.js b/core/js/apps.js deleted file mode 100644 index 473fec313a10c49c23fb64904488412aa83e00f5..0000000000000000000000000000000000000000 --- a/core/js/apps.js +++ /dev/null @@ -1,126 +0,0 @@ -/** - * ownCloud - core - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @copyright Bernhard Posselt 2014 - */ - -(function (document, $, exports) { - - 'use strict'; - - var dynamicSlideToggleEnabled = false; - - exports.Apps = { - enableDynamicSlideToggle: function () { - dynamicSlideToggleEnabled = true; - } - }; - - /** - * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings - * - * @param {Object} [$el] sidebar element to show, defaults to $('#app-sidebar') - */ - exports.Apps.showAppSidebar = function($el) { - var $appSidebar = $el || $('#app-sidebar'); - $appSidebar.removeClass('disappear') - .show('slide', { direction: 'right' }, 300); - $('#app-content').trigger(new $.Event('appresized')); - }; - - /** - * Shows the #app-sidebar and removes .with-app-sidebar from subsequent - * siblings - * - * @param {Object} [$el] sidebar element to hide, defaults to $('#app-sidebar') - */ - exports.Apps.hideAppSidebar = function($el) { - var $appSidebar = $el || $('#app-sidebar'); - $appSidebar.hide('slide', { direction: 'right' }, 300, - function() { - $appSidebar.addClass('disappear'); - }); - $('#app-content').trigger(new $.Event('appresized')); - }; - - /** - * Provides a way to slide down a target area through a button and slide it - * up if the user clicks somewhere else. Used for the news app settings and - * add new field. - * - * Usage: - * <button data-apps-slide-toggle=".slide-area">slide</button> - * <div class=".slide-area" class="hidden">I'm sliding up</div> - */ - var registerAppsSlideToggle = function () { - var buttons = $('[data-apps-slide-toggle]'); - - if (buttons.length === 0) { - $('#app-navigation').addClass('without-app-settings'); - } - - $(document).click(function (event) { - - if (dynamicSlideToggleEnabled) { - buttons = $('[data-apps-slide-toggle]'); - } - - buttons.each(function (index, button) { - - var areaSelector = $(button).data('apps-slide-toggle'); - var area = $(areaSelector); - - function hideArea() { - area.slideUp(OC.menuSpeed*4, function() { - area.trigger(new $.Event('hide')); - }); - area.removeClass('opened'); - $(button).removeClass('opened'); - } - function showArea() { - area.slideDown(OC.menuSpeed*4, function() { - area.trigger(new $.Event('show')); - }); - area.addClass('opened'); - $(button).addClass('opened'); - var input = $(areaSelector + ' [autofocus]'); - if (input.length === 1) { - input.focus(); - } - } - - // do nothing if the area is animated - if (!area.is(':animated')) { - - // button toggles the area - if ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) { - if (area.is(':visible')) { - hideArea(); - } else { - showArea(); - } - - // all other areas that have not been clicked but are open - // should be slid up - } else { - var closest = $(event.target).closest(areaSelector); - if (area.is(':visible') && closest[0] !== area[0]) { - hideArea(); - } - } - } - }); - - }); - }; - - - $(document).ready(function () { - registerAppsSlideToggle(); - }); - -}(document, jQuery, OC)); diff --git a/core/js/core.json b/core/js/core.json index 7967dc2a91bc0d81d6aac4c33011e910bb8a821d..9545e0208fa156b2ffed3f9626f9f6d2a2215f81 100644 --- a/core/js/core.json +++ b/core/js/core.json @@ -12,7 +12,6 @@ "oc-backbone.js", "oc-backbone-webdav.js", "l10n.js", - "apps.js", "share.js", "sharetemplates.js", "sharesocialmanager.js", diff --git a/core/js/dist/main.js b/core/js/dist/main.js index 8c2727d1a4bd723c945d61bab9ee495f39de5a69..cdcc2c0af8ff3f0c5a21876b015aa19d59b1f020 100644 Binary files a/core/js/dist/main.js and b/core/js/dist/main.js differ diff --git a/core/js/dist/main.js.map b/core/js/dist/main.js.map index a7ba46889c14233c3aff4d0e5a2461a0dbba40a1..28839da9e8da06d1ce48ea0613c6013b40bbc57e 100644 Binary files a/core/js/dist/main.js.map and b/core/js/dist/main.js.map differ diff --git a/core/js/dist/share_backend.js b/core/js/dist/share_backend.js index 6336c11180d340d0b75db9047075b022211874d9..7d67d0ba771bd23081ac1dd008d0bba44fae003a 100644 Binary files a/core/js/dist/share_backend.js and b/core/js/dist/share_backend.js differ diff --git a/core/js/dist/share_backend.js.map b/core/js/dist/share_backend.js.map index 3257bff20a9f45bcf4cb26fee1beeee7aa97b284..f6038269754657711852ea9bcfe48eee8eea8917 100644 Binary files a/core/js/dist/share_backend.js.map and b/core/js/dist/share_backend.js.map differ diff --git a/core/js/merged-template-prepend.json b/core/js/merged-template-prepend.json index c274201d97e616d19cc25b64418e431f3cf64f98..79213cc2ac029cd9d6853927f50bc9bb067126e2 100644 --- a/core/js/merged-template-prepend.json +++ b/core/js/merged-template-prepend.json @@ -10,7 +10,6 @@ "public/whatsnew.js", "config.js", "oc-requesttoken.js", - "apps.js", "mimetype.js", "mimetypelist.js", "oc-backbone.js", diff --git a/core/src/OC/apps.js b/core/src/OC/apps.js new file mode 100644 index 0000000000000000000000000000000000000000..8802fc81c2aa81c0d2d3c4578855440bd9b27292 --- /dev/null +++ b/core/src/OC/apps.js @@ -0,0 +1,120 @@ +/** + * ownCloud - core + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @copyright Bernhard Posselt 2014 + */ + +import $ from 'jquery'; + +var dynamicSlideToggleEnabled = false; + +const Apps = { + enableDynamicSlideToggle: function () { + dynamicSlideToggleEnabled = true; + } +}; + +/** + * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings + * + * @param {Object} [$el] sidebar element to show, defaults to $('#app-sidebar') + */ +Apps.showAppSidebar = function ($el) { + var $appSidebar = $el || $('#app-sidebar'); + $appSidebar.removeClass('disappear') + .show('slide', {direction: 'right'}, 300); + $('#app-content').trigger(new $.Event('appresized')); +}; + +/** + * Shows the #app-sidebar and removes .with-app-sidebar from subsequent + * siblings + * + * @param {Object} [$el] sidebar element to hide, defaults to $('#app-sidebar') + */ +Apps.hideAppSidebar = function ($el) { + var $appSidebar = $el || $('#app-sidebar'); + $appSidebar.hide('slide', {direction: 'right'}, 300, + function () { + $appSidebar.addClass('disappear'); + }); + $('#app-content').trigger(new $.Event('appresized')); +}; + +/** + * Provides a way to slide down a target area through a button and slide it + * up if the user clicks somewhere else. Used for the news app settings and + * add new field. + * + * Usage: + * <button data-apps-slide-toggle=".slide-area">slide</button> + * <div class=".slide-area" class="hidden">I'm sliding up</div> + */ +export const registerAppsSlideToggle = () => { + var buttons = $('[data-apps-slide-toggle]'); + + if (buttons.length === 0) { + $('#app-navigation').addClass('without-app-settings'); + } + + $(document).click(function (event) { + + if (dynamicSlideToggleEnabled) { + buttons = $('[data-apps-slide-toggle]'); + } + + buttons.each(function (index, button) { + + var areaSelector = $(button).data('apps-slide-toggle'); + var area = $(areaSelector); + + function hideArea () { + area.slideUp(OC.menuSpeed * 4, function () { + area.trigger(new $.Event('hide')); + }); + area.removeClass('opened'); + $(button).removeClass('opened'); + } + + function showArea () { + area.slideDown(OC.menuSpeed * 4, function () { + area.trigger(new $.Event('show')); + }); + area.addClass('opened'); + $(button).addClass('opened'); + var input = $(areaSelector + ' [autofocus]'); + if (input.length === 1) { + input.focus(); + } + } + + // do nothing if the area is animated + if (!area.is(':animated')) { + + // button toggles the area + if ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) { + if (area.is(':visible')) { + hideArea(); + } else { + showArea(); + } + + // all other areas that have not been clicked but are open + // should be slid up + } else { + var closest = $(event.target).closest(areaSelector); + if (area.is(':visible') && closest[0] !== area[0]) { + hideArea(); + } + } + } + }); + + }); +}; + +export default Apps; diff --git a/core/src/OC/index.js b/core/src/OC/index.js index b785305c0577838b940b7985b3215abe36dada39..6ae1dc12c909fe4f9bd23498344db5595d7e3845 100644 --- a/core/src/OC/index.js +++ b/core/src/OC/index.js @@ -19,5 +19,9 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +import Apps from './apps' + /** @namespace OC */ -export default {}; +export default { + Apps, +}; diff --git a/core/src/main.js b/core/src/main.js index e7041e975f5f40a2f349fd8542bd12ef96d46379..85e8200f10c06aa1bcd4ed2ccada140c28006a56 100644 --- a/core/src/main.js +++ b/core/src/main.js @@ -22,5 +22,9 @@ import '@babel/polyfill' import './globals' +import $ from 'jquery' +import {registerAppsSlideToggle} from './OC/apps' -import './OCP/index' +$(document).ready(function () { + registerAppsSlideToggle(); +});