Merge pull request #13867 from nextcloud/refactor/oc-apps-bundle

Move OCA.Apps to the server bundle
pull/13870/head
Morris Jobke 2019-01-28 21:18:30 +07:00 committed by GitHub
commit 198a45ff75
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 163 additions and 142 deletions

@ -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));

@ -12,7 +12,6 @@
"oc-backbone.js",
"oc-backbone-webdav.js",
"l10n.js",
"apps.js",
"share.js",
"sharetemplates.js",
"sharesocialmanager.js",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -10,7 +10,6 @@
"public/whatsnew.js",
"config.js",
"oc-requesttoken.js",
"apps.js",
"mimetype.js",
"mimetypelist.js",
"oc-backbone.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;

@ -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,
};

@ -22,5 +22,9 @@
import '@babel/polyfill'
import './globals'
import $ from 'jquery'
import {registerAppsSlideToggle} from './OC/apps'
import './OCP/index'
$(document).ready(function () {
registerAppsSlideToggle();
});