Signed-off-by: Louis Chemineau <louis@chmn.me>tags/v24.0.0beta1
// https://github.com/perry-mitchell/webdav-client/blob/9de2da4a2599e06bd86c2778145b7ade39fe0b3c/source/interface/directoryContents.js#L32 | // https://github.com/perry-mitchell/webdav-client/blob/9de2da4a2599e06bd86c2778145b7ade39fe0b3c/source/interface/directoryContents.js#L32 | ||||
/** | /** | ||||
* @param result | |||||
* @param isDetailed | |||||
* @param {any} result - | |||||
* @param {any} isDetailed - | |||||
*/ | */ | ||||
function processMultistatus(result, isDetailed = false) { | function processMultistatus(result, isDetailed = false) { | ||||
// Extract the response items (directory contents) | // Extract the response items (directory contents) | ||||
} | } | ||||
/** | /** | ||||
* @param value | |||||
* @param passes | |||||
* @param {any} value - | |||||
* @param {any} passes - | |||||
*/ | */ | ||||
function decodeHtmlEntities(value, passes = 1) { | function decodeHtmlEntities(value, passes = 1) { | ||||
const parser = new DOMParser() | const parser = new DOMParser() |
} | } | ||||
/** | /** | ||||
* @param slots | |||||
* @param timezoneId | |||||
* @param {any} slots - | |||||
* @param {any} timezoneId - | |||||
*/ | */ | ||||
export async function saveScheduleInboxAvailability(slots, timezoneId) { | export async function saveScheduleInboxAvailability(slots, timezoneId) { | ||||
const all = [...Object.keys(slots).flatMap(dayId => slots[dayId].map(slot => ({ | const all = [...Object.keys(slots).flatMap(dayId => slots[dayId].map(slot => ({ |
/** | /** | ||||
* Custom code | * Custom code | ||||
* Set tag for all selected files | * Set tag for all selected files | ||||
* @param tagModel | |||||
* @param {any} tagModel - | |||||
* @private | * @private | ||||
*/ | */ | ||||
_onSelectTag: function(tagModel) { | _onSelectTag: function(tagModel) { | ||||
}, | }, | ||||
/** | /** | ||||
* remove tag from all selected files | * remove tag from all selected files | ||||
* @param tagId | |||||
* @param {any} tagId - | |||||
* @private | * @private | ||||
*/ | */ | ||||
_onDeselectTag: function(tagId) { | _onDeselectTag: function(tagId) { | ||||
}, | }, | ||||
/** | /** | ||||
* hide files matching the given filter | * hide files matching the given filter | ||||
* @param filter | |||||
* @param {any} filter - | |||||
*/ | */ | ||||
setFilter:function(filter) { | setFilter:function(filter) { | ||||
var total = 0; | var total = 0; | ||||
}, | }, | ||||
/** | /** | ||||
* get the current filter | * get the current filter | ||||
* @param filter | |||||
* @param {any} filter - | |||||
*/ | */ | ||||
getFilter:function(filter) { | getFilter:function(filter) { | ||||
return this._filter; | return this._filter; |
import axios from '@nextcloud/axios' | import axios from '@nextcloud/axios' | ||||
/** | /** | ||||
* @param url | |||||
* @param {any} url - | |||||
*/ | */ | ||||
export default async function(url) { | export default async function(url) { | ||||
const response = await axios({ | const response = await axios({ |
/** | /** | ||||
* Function to display custom dialog to enter credentials | * Function to display custom dialog to enter credentials | ||||
* @param mountPoint | |||||
* @param mountData | |||||
* @param {any} mountPoint - | |||||
* @param {any} mountData - | |||||
*/ | */ | ||||
showCredentialsDialog: function (mountPoint, mountData) { | showCredentialsDialog: function (mountPoint, mountData) { | ||||
var dialog = $(OCA.Files_External.Templates.credentialsDialog({ | var dialog = $(OCA.Files_External.Templates.credentialsDialog({ |
* fall back to old behaviour where we redirect the user to his server to mount | * fall back to old behaviour where we redirect the user to his server to mount | ||||
* the public link instead of creating a dedicated federated share | * the public link instead of creating a dedicated federated share | ||||
* | * | ||||
* @param remote | |||||
* @param token | |||||
* @param owner | |||||
* @param ownerDisplayName | |||||
* @param name | |||||
* @param isProtected | |||||
* @param {any} remote - | |||||
* @param {any} token - | |||||
* @param {any} owner - | |||||
* @param {any} ownerDisplayName - | |||||
* @param {any} name - | |||||
* @param {any} isProtected - | |||||
* @private | * @private | ||||
*/ | */ | ||||
_legacyCreateFederatedShare: function (remote, token, owner, ownerDisplayName, name, isProtected) { | _legacyCreateFederatedShare: function (remote, token, owner, ownerDisplayName, name, isProtected) { |
* The callback will be fired as soon as enter is pressed by the | * The callback will be fired as soon as enter is pressed by the | ||||
* user or 1 second after the last data entry | * user or 1 second after the last data entry | ||||
* | * | ||||
* @param callback | |||||
* @param {any} callback - | |||||
* @param allowEmptyValue if this is set to true the callback is also called when the value is empty | * @param allowEmptyValue if this is set to true the callback is also called when the value is empty | ||||
*/ | */ | ||||
jQuery.fn.keyUpDelayedOrEnter = function (callback, allowEmptyValue) { | jQuery.fn.keyUpDelayedOrEnter = function (callback, allowEmptyValue) { |
} | } | ||||
/** | /** | ||||
* @param name | |||||
* @param data | |||||
* @param {any} name - | |||||
* @param {any} data - | |||||
*/ | */ | ||||
export async function finishRegistration(name, data) { | export async function finishRegistration(name, data) { | ||||
const url = generateUrl('/settings/api/personal/webauthn/registration') | const url = generateUrl('/settings/api/personal/webauthn/registration') | ||||
} | } | ||||
/** | /** | ||||
* @param id | |||||
* @param {any} id - | |||||
*/ | */ | ||||
export async function removeRegistration(id) { | export async function removeRegistration(id) { | ||||
const url = generateUrl(`/settings/api/personal/webauthn/registration/${id}`) | const url = generateUrl(`/settings/api/personal/webauthn/registration/${id}`) |
* @param {object} options destructuring object | * @param {object} options destructuring object | ||||
* @param {number} options.offset List offset to request | * @param {number} options.offset List offset to request | ||||
* @param {number} options.limit List number to return from offset | * @param {number} options.limit List number to return from offset | ||||
* @param options.search | |||||
* @param {string} options.search - | |||||
* @return {Promise} | * @return {Promise} | ||||
*/ | */ | ||||
getUsersFromList(context, { offset, limit, search }) { | getUsersFromList(context, { offset, limit, search }) { | ||||
* @param {object} options destructuring object | * @param {object} options destructuring object | ||||
* @param {number} options.offset List offset to request | * @param {number} options.offset List offset to request | ||||
* @param {number} options.limit List number to return from offset | * @param {number} options.limit List number to return from offset | ||||
* @param options.groupid | |||||
* @param {string} options.groupid - | |||||
* @return {Promise} | * @return {Promise} | ||||
*/ | */ | ||||
getUsersFromGroup(context, { groupid, offset, limit }) { | getUsersFromGroup(context, { groupid, offset, limit }) { | ||||
* Add a user | * Add a user | ||||
* | * | ||||
* @param {object} context store context | * @param {object} context store context | ||||
* @param {Function} context.commit | |||||
* @param {Function} context.dispatch | |||||
* @param {Function} context.commit - | |||||
* @param {Function} context.dispatch - | |||||
* @param {object} options destructuring object | * @param {object} options destructuring object | ||||
* @param {string} options.userid User id | * @param {string} options.userid User id | ||||
* @param {string} options.password User password | * @param {string} options.password User password | ||||
* @param {string} options.subadmin User subadmin groups | * @param {string} options.subadmin User subadmin groups | ||||
* @param {string} options.quota User email | * @param {string} options.quota User email | ||||
* @param {string} options.language User language | * @param {string} options.language User language | ||||
* @param options.language | |||||
* @return {Promise} | * @return {Promise} | ||||
*/ | */ | ||||
addUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language }) { | addUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language }) { |
/** | /** | ||||
* Array of system tag ids to filter by | * Array of system tag ids to filter by | ||||
* | * | ||||
* @type Array.<string> | |||||
* @type {Array.<string>} | |||||
*/ | */ | ||||
_systemTagIds: [], | _systemTagIds: [], | ||||
_lastUsedTags: [], | _lastUsedTags: [], |
(function(OCA) { | (function(OCA) { | ||||
/** | /** | ||||
* @param model | |||||
* @param {any} model - | |||||
*/ | */ | ||||
function modelToSelection(model) { | function modelToSelection(model) { | ||||
const data = model.toJSON() | const data = model.toJSON() |
*/ | */ | ||||
/** | /** | ||||
* @param data | |||||
* @param {any} data - | |||||
*/ | */ | ||||
export function print(data) { | export function print(data) { | ||||
const name = OC.theme.name || 'Nextcloud' | const name = OC.theme.name || 'Nextcloud' |
/** | /** | ||||
* initializes the instance. Always call it after initialization. | * initializes the instance. Always call it after initialization. | ||||
* | * | ||||
* @param tabIndex | |||||
* @param tabID | |||||
* @param {any} tabIndex - | |||||
* @param {any} tabID - | |||||
*/ | */ | ||||
init: function (tabIndex, tabID) { | init: function (tabIndex, tabID) { | ||||
this._super(tabIndex, tabID); | this._super(tabIndex, tabID); | ||||
setDynamicGroupMemberURL: function(attribute) { | setDynamicGroupMemberURL: function(attribute) { | ||||
this.setElementValue(this.managedItems.ldap_dynamic_group_member_url.$element, attribute); | this.setElementValue(this.managedItems.ldap_dynamic_group_member_url.$element, attribute); | ||||
}, | }, | ||||
/** | /** | ||||
* enabled or disables the use of nested groups (groups in groups in | * enabled or disables the use of nested groups (groups in groups in | ||||
* groups…) | * groups…) |
/** | /** | ||||
* initializes the instance. Always call it after initialization. | * initializes the instance. Always call it after initialization. | ||||
* | * | ||||
* @param tabIndex | |||||
* @param tabID | |||||
* @param {any} tabIndex - | |||||
* @param {any} tabID - | |||||
*/ | */ | ||||
init: function (tabIndex, tabID) { | init: function (tabIndex, tabID) { | ||||
tabIndex = 0; | tabIndex = 0; | ||||
* updates the configuration chooser upon the deletion of a | * updates the configuration chooser upon the deletion of a | ||||
* configuration and, if necessary, loads an existing one. | * configuration and, if necessary, loads an existing one. | ||||
* | * | ||||
* @param view | |||||
* @param result | |||||
* @param {any} view - | |||||
* @param {any} result - | |||||
*/ | */ | ||||
onDeleteConfiguration: function(view, result) { | onDeleteConfiguration: function(view, result) { | ||||
if(result.isSuccess === true) { | if(result.isSuccess === true) { |
/** | /** | ||||
* initializes the instance. Always call it after initialization. | * initializes the instance. Always call it after initialization. | ||||
* | * | ||||
* @param tabIndex | |||||
* @param tabID | |||||
* @param {any} tabIndex - | |||||
* @param {any} tabID - | |||||
*/ | */ | ||||
init: function (tabIndex, tabID) { | init: function (tabIndex, tabID) { | ||||
this._super(tabIndex, tabID); | this._super(tabIndex, tabID); |
/** | /** | ||||
* displays server error messages. | * displays server error messages. | ||||
* | * | ||||
* @param view | |||||
* @param payload | |||||
* @param {any} view - | |||||
* @param {any} payload - | |||||
*/ | */ | ||||
onServerError: function(view, payload) { | onServerError: function(view, payload) { | ||||
if ( !_.isUndefined(view.managedItems[payload.relatedKey])) { | if ( !_.isUndefined(view.managedItems[payload.relatedKey])) { | ||||
* sets the filter mode initially and resets the "isToggling" marker. | * sets the filter mode initially and resets the "isToggling" marker. | ||||
* This method is called after a save operation against the mode key. | * This method is called after a save operation against the mode key. | ||||
* | * | ||||
* @param mode | |||||
* @param {any} mode - | |||||
*/ | */ | ||||
setFilterModeOnce: function(mode) { | setFilterModeOnce: function(mode) { | ||||
this.isToggling = false; | this.isToggling = false; |
/** | /** | ||||
* initializes the instance. Always call it after initialization. | * initializes the instance. Always call it after initialization. | ||||
* | * | ||||
* @param tabIndex | |||||
* @param tabID | |||||
* @param {any} tabIndex - | |||||
* @param {any} tabID - | |||||
*/ | */ | ||||
init: function (tabIndex, tabID) { | init: function (tabIndex, tabID) { | ||||
this._super(tabIndex, tabID); | this._super(tabIndex, tabID); | ||||
/** | /** | ||||
* presents the result of the login name test | * presents the result of the login name test | ||||
* | * | ||||
* @param result | |||||
* @param {any} result - | |||||
*/ | */ | ||||
handleLoginTestResult: function(result) { | handleLoginTestResult: function(result) { | ||||
var message; | var message; |
* | * | ||||
* @param {object} vuex The Vuex components | * @param {object} vuex The Vuex components | ||||
* @param {Function} vuex.commit The Vuex commit function | * @param {Function} vuex.commit The Vuex commit function | ||||
* @param vuex.state | |||||
* @param {object} vuex.state - | |||||
*/ | */ | ||||
async loadAllPredefinedStatuses({ state, commit }) { | async loadAllPredefinedStatuses({ state, commit }) { | ||||
if (state.predefinedStatuses.length > 0) { | if (state.predefinedStatuses.length > 0) { |
import { formatFileSize as humanFileSize } from '@nextcloud/files' | import { formatFileSize as humanFileSize } from '@nextcloud/files' | ||||
/** | /** | ||||
* @param t | |||||
* @param {any} t - | |||||
*/ | */ | ||||
function chunkify(t) { | function chunkify(t) { | ||||
// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288 | // Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288 |
const urlRegex = /(\s|^)(https?:\/\/)?((?:[-A-Z0-9+_]+\.)+[-A-Z]+(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\s|$)/ig | const urlRegex = /(\s|^)(https?:\/\/)?((?:[-A-Z0-9+_]+\.)+[-A-Z]+(?:\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\s|$)/ig | ||||
/** | /** | ||||
* @param content | |||||
* @param {any} content - | |||||
*/ | */ | ||||
export function plainToRich(content) { | export function plainToRich(content) { | ||||
return this.formatLinksRich(content) | return this.formatLinksRich(content) | ||||
} | } | ||||
/** | /** | ||||
* @param content | |||||
* @param {any} content - | |||||
*/ | */ | ||||
export function richToPlain(content) { | export function richToPlain(content) { | ||||
return this.formatLinksPlain(content) | return this.formatLinksPlain(content) | ||||
} | } | ||||
/** | /** | ||||
* @param content | |||||
* @param {any} content - | |||||
*/ | */ | ||||
export function formatLinksRich(content) { | export function formatLinksRich(content) { | ||||
return content.replace(urlRegex, function(_, leadingSpace, protocol, url, trailingSpace) { | return content.replace(urlRegex, function(_, leadingSpace, protocol, url, trailingSpace) { | ||||
} | } | ||||
/** | /** | ||||
* @param content | |||||
* @param {any} content - | |||||
*/ | */ | ||||
export function formatLinksPlain(content) { | export function formatLinksPlain(content) { | ||||
const $content = $('<div></div>').html(content) | const $content = $('<div></div>').html(content) |
import { generateOcsUrl } from '@nextcloud/router' | import { generateOcsUrl } from '@nextcloud/router' | ||||
/** | /** | ||||
* @param options | |||||
* @param {any} options - | |||||
*/ | */ | ||||
export function query(options) { | export function query(options) { | ||||
options = options || {} | options = options || {} | ||||
} | } | ||||
/** | /** | ||||
* @param version | |||||
* @param options | |||||
* @param {any} version - | |||||
* @param {any} options - | |||||
*/ | */ | ||||
export function dismiss(version, options) { | export function dismiss(version, options) { | ||||
options = options || {} | options = options || {} | ||||
} | } | ||||
/** | /** | ||||
* @param data | |||||
* @param statusText | |||||
* @param xhr | |||||
* @param dismissOptions | |||||
* @param {any} data - | |||||
* @param {any} statusText - | |||||
* @param {any} xhr - | |||||
* @param {any} dismissOptions - | |||||
*/ | */ | ||||
function onQuerySuccess(data, statusText, xhr, dismissOptions) { | function onQuerySuccess(data, statusText, xhr, dismissOptions) { | ||||
console.debug('querying Whats New data was successful: ' + statusText) | console.debug('querying Whats New data was successful: ' + statusText) | ||||
} | } | ||||
/** | /** | ||||
* @param x | |||||
* @param t | |||||
* @param e | |||||
* @param {any} x - | |||||
* @param {any} t - | |||||
* @param {any} e - | |||||
*/ | */ | ||||
function onQueryError(x, t, e) { | function onQueryError(x, t, e) { | ||||
console.debug('querying Whats New Data resulted in an error: ' + t + e) | console.debug('querying Whats New Data resulted in an error: ' + t + e) | ||||
} | } | ||||
/** | /** | ||||
* @param data | |||||
* @param {any} data - | |||||
*/ | */ | ||||
function onDismissSuccess(data) { | function onDismissSuccess(data) { | ||||
// noop | // noop | ||||
} | } | ||||
/** | /** | ||||
* @param data | |||||
* @param {any} data - | |||||
*/ | */ | ||||
function onDismissError(data) { | function onDismissError(data) { | ||||
console.debug('dismissing Whats New data resulted in an error: ' + data) | console.debug('dismissing Whats New data resulted in an error: ' + data) |
*/ | */ | ||||
/** | /** | ||||
* @param name | |||||
* @param {any} name - | |||||
*/ | */ | ||||
export default function getURLParameter(name) { | export default function getURLParameter(name) { | ||||
return decodeURIComponent( | return decodeURIComponent( |
/** | /** | ||||
* select a range in an input field | * select a range in an input field | ||||
* | * | ||||
* @link http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area | |||||
* @see {@link http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area} | |||||
* @param {number} start start selection from | * @param {number} start start selection from | ||||
* @param {number} end number of char from start | * @param {number} end number of char from start | ||||
* @return {void} | * @return {void} |
import { generateUrl } from '@nextcloud/router' | import { generateUrl } from '@nextcloud/router' | ||||
/** | /** | ||||
* @param loginName | |||||
* @param {any} loginName - | |||||
*/ | */ | ||||
export function startAuthentication(loginName) { | export function startAuthentication(loginName) { | ||||
const url = generateUrl('/login/webauthn/start') | const url = generateUrl('/login/webauthn/start') | ||||
} | } | ||||
/** | /** | ||||
* @param data | |||||
* @param {any} data - | |||||
*/ | */ | ||||
export function finishAuthentication(data) { | export function finishAuthentication(data) { | ||||
const url = generateUrl('/login/webauthn/finish') | const url = generateUrl('/login/webauthn/finish') |
* Lazy fetch. | * Lazy fetch. | ||||
* Only fetches once, subsequent calls will directly call the success handler. | * Only fetches once, subsequent calls will directly call the success handler. | ||||
* | * | ||||
* @param options | |||||
* @param {any} options - | |||||
* @param [options.force] true to force fetch even if cached entries exist | * @param [options.force] true to force fetch even if cached entries exist | ||||
* | * | ||||
* @see Backbone.Collection#fetch | * @see Backbone.Collection#fetch |