mirror of
https://github.com/flarum/core.git
synced 2025-10-09 22:16:51 +02:00
* Commit initial WIP code
* Fix squashed grid on mobile
* Add pagination support; rename to userList
* Improve grid sizing
* Improve grid row shading
* Move EditUserModal to common
* Add link to profile page in grid
* Use Less styling vars
* Move EditUserModal translations to lib
* Add edit user button to grid
* Fix incorrect profile link priority
* Update profile link translation key
* Add priorities to other columns
* Add group badges to grid
* Add username to profile link tooltip
* Organise imports
* Use variable for header border bottom color
* Fix broken export
* Add total user count to API payload's metadata
* Add new metadata to ApiPayload type
* Implement correct page number
* Remove debug code
* Use function to get the total pages
This allows us to use the raw count elsewhere in the component (pssst... check the next commit!)
* Center profile link in column
* Add profile link header
* Show total users above table
* Use ItemList's itemName property for column data attributes
* Add user email column, hidden by default
This column is hidden by default using a placeholder email and blur filter. These are then removed when the visibility toggle is pressed.
This prevents any over-the-shoulder accidental data leakage, as emails are classed as PII under GDPR.
* Fix incorrect tooltip translation keys
* Add extra padding between email and visibility toggle button
* Prevent selection of blurred email
* Fix incorrect icon state for email toggle
* Update API response type to include metadata (for now)
* Increase number of users per page to 50
* Update compat files with new locations
* Format
* Add @deprecated notices for forum compat export
* Use AdminPayload for user count instead of supplying as REST API metadata
* Make nav look less squashed using bottom margin
* Suppress TS warning
* StyleCI fixes
* Fix TS error
* Update based on review comments
* Rename user list -> users
* Rename internal instances of user_list to users
* Fix formatting
* Use CSS custom properties for the table column count
* Use .Button--icon instead of custom style
* Make fake email more realistic length
* Add a11y attributes
* Use padding bottom instead of margin bottom for page spacing
* Make compatible with new CSS LoadingIndicator
I won't let it break here! :P
* Integrate profile link into username column
* Don't force columns to be 300px
This made the grid look very bloated and intimidating -- lets instead increase the padding between items and make it only the width it needs to be.
* Center edit user button in column
* Increase spacing between email and visibility toggle button
* Rename `statistics` to `modelStatistics` in Admin payload
This prevents any possible conflicts with core and `flarum/statistics`. We might want to consider migrating the stats extension to extend this object in the future.
* Update comments, fix TS error
* Various translation key changes
* Change gmail.com -> example.com
* Stretch 'edit user' button to entire cell size
* Update translations
* Is the YAML formatted right this time? 🙈
* Remove email placeholder
Fixes an issue where the table would jump if an email was unhidden that was longer than the placeholder.
* Re-order lib translations
* Clicking blurred email now unblurs
* Correct header class
* Improve edit user button centring
* Improve vertical row item centering
* Fix incorrect column length in aria attribute
* Use .Button--text!
154 lines
5.9 KiB
JavaScript
154 lines
5.9 KiB
JavaScript
import * as extend from './extend';
|
|
import Session from './Session';
|
|
import Store from './Store';
|
|
import BasicEditorDriver from './utils/BasicEditorDriver';
|
|
import evented from './utils/evented';
|
|
import liveHumanTimes from './utils/liveHumanTimes';
|
|
import ItemList from './utils/ItemList';
|
|
import mixin from './utils/mixin';
|
|
import humanTime from './utils/humanTime';
|
|
import computed from './utils/computed';
|
|
import Drawer from './utils/Drawer';
|
|
import anchorScroll from './utils/anchorScroll';
|
|
import RequestError from './utils/RequestError';
|
|
import abbreviateNumber from './utils/abbreviateNumber';
|
|
import * as string from './utils/string';
|
|
import Stream from './utils/Stream';
|
|
import SubtreeRetainer from './utils/SubtreeRetainer';
|
|
import setRouteWithForcedRefresh from './utils/setRouteWithForcedRefresh';
|
|
import extract from './utils/extract';
|
|
import ScrollListener from './utils/ScrollListener';
|
|
import stringToColor from './utils/stringToColor';
|
|
import subclassOf from './utils/subclassOf';
|
|
import patchMithril from './utils/patchMithril';
|
|
import proxifyCompat from './utils/proxifyCompat';
|
|
import classList from './utils/classList';
|
|
import extractText from './utils/extractText';
|
|
import formatNumber from './utils/formatNumber';
|
|
import mapRoutes from './utils/mapRoutes';
|
|
import withAttr from './utils/withAttr';
|
|
import Notification from './models/Notification';
|
|
import User from './models/User';
|
|
import Post from './models/Post';
|
|
import Discussion from './models/Discussion';
|
|
import Group from './models/Group';
|
|
import Forum from './models/Forum';
|
|
import Component from './Component';
|
|
import Translator from './Translator';
|
|
import AlertManager from './components/AlertManager';
|
|
import Page from './components/Page';
|
|
import Switch from './components/Switch';
|
|
import Badge from './components/Badge';
|
|
import LoadingIndicator from './components/LoadingIndicator';
|
|
import Placeholder from './components/Placeholder';
|
|
import Separator from './components/Separator';
|
|
import Dropdown from './components/Dropdown';
|
|
import SplitDropdown from './components/SplitDropdown';
|
|
import RequestErrorModal from './components/RequestErrorModal';
|
|
import FieldSet from './components/FieldSet';
|
|
import Select from './components/Select';
|
|
import Navigation from './components/Navigation';
|
|
import Alert from './components/Alert';
|
|
import Link from './components/Link';
|
|
import LinkButton from './components/LinkButton';
|
|
import Checkbox from './components/Checkbox';
|
|
import SelectDropdown from './components/SelectDropdown';
|
|
import ModalManager from './components/ModalManager';
|
|
import Button from './components/Button';
|
|
import Modal from './components/Modal';
|
|
import GroupBadge from './components/GroupBadge';
|
|
import TextEditor from './components/TextEditor';
|
|
import TextEditorButton from './components/TextEditorButton';
|
|
import EditUserModal from './components/EditUserModal';
|
|
import Model from './Model';
|
|
import Application from './Application';
|
|
import fullTime from './helpers/fullTime';
|
|
import avatar from './helpers/avatar';
|
|
import icon from './helpers/icon';
|
|
import humanTimeHelper from './helpers/humanTime';
|
|
import punctuateSeries from './helpers/punctuateSeries';
|
|
import highlight from './helpers/highlight';
|
|
import username from './helpers/username';
|
|
import userOnline from './helpers/userOnline';
|
|
import listItems from './helpers/listItems';
|
|
import Fragment from './Fragment';
|
|
import DefaultResolver from './resolvers/DefaultResolver';
|
|
|
|
export default {
|
|
extend: extend,
|
|
Session: Session,
|
|
Store: Store,
|
|
'utils/BasicEditorDriver': BasicEditorDriver,
|
|
'utils/evented': evented,
|
|
'utils/liveHumanTimes': liveHumanTimes,
|
|
'utils/ItemList': ItemList,
|
|
'utils/mixin': mixin,
|
|
'utils/humanTime': humanTime,
|
|
'utils/computed': computed,
|
|
'utils/Drawer': Drawer,
|
|
'utils/anchorScroll': anchorScroll,
|
|
'utils/RequestError': RequestError,
|
|
'utils/abbreviateNumber': abbreviateNumber,
|
|
'utils/string': string,
|
|
'utils/SubtreeRetainer': SubtreeRetainer,
|
|
'utils/extract': extract,
|
|
'utils/ScrollListener': ScrollListener,
|
|
'utils/stringToColor': stringToColor,
|
|
'utils/Stream': Stream,
|
|
'utils/subclassOf': subclassOf,
|
|
'utils/setRouteWithForcedRefresh': setRouteWithForcedRefresh,
|
|
'utils/patchMithril': patchMithril,
|
|
'utils/proxifyCompat': proxifyCompat,
|
|
'utils/classList': classList,
|
|
'utils/extractText': extractText,
|
|
'utils/formatNumber': formatNumber,
|
|
'utils/mapRoutes': mapRoutes,
|
|
'utils/withAttr': withAttr,
|
|
'models/Notification': Notification,
|
|
'models/User': User,
|
|
'models/Post': Post,
|
|
'models/Discussion': Discussion,
|
|
'models/Group': Group,
|
|
'models/Forum': Forum,
|
|
Component: Component,
|
|
Fragment: Fragment,
|
|
Translator: Translator,
|
|
'components/AlertManager': AlertManager,
|
|
'components/Page': Page,
|
|
'components/Switch': Switch,
|
|
'components/Badge': Badge,
|
|
'components/LoadingIndicator': LoadingIndicator,
|
|
'components/Placeholder': Placeholder,
|
|
'components/Separator': Separator,
|
|
'components/Dropdown': Dropdown,
|
|
'components/SplitDropdown': SplitDropdown,
|
|
'components/RequestErrorModal': RequestErrorModal,
|
|
'components/FieldSet': FieldSet,
|
|
'components/Select': Select,
|
|
'components/Navigation': Navigation,
|
|
'components/Alert': Alert,
|
|
'components/Link': Link,
|
|
'components/LinkButton': LinkButton,
|
|
'components/Checkbox': Checkbox,
|
|
'components/SelectDropdown': SelectDropdown,
|
|
'components/ModalManager': ModalManager,
|
|
'components/Button': Button,
|
|
'components/Modal': Modal,
|
|
'components/GroupBadge': GroupBadge,
|
|
'components/TextEditor': TextEditor,
|
|
'components/TextEditorButton': TextEditorButton,
|
|
'components/EditUserModal': EditUserModal,
|
|
Model: Model,
|
|
Application: Application,
|
|
'helpers/fullTime': fullTime,
|
|
'helpers/avatar': avatar,
|
|
'helpers/icon': icon,
|
|
'helpers/humanTime': humanTimeHelper,
|
|
'helpers/punctuateSeries': punctuateSeries,
|
|
'helpers/highlight': highlight,
|
|
'helpers/username': username,
|
|
'helpers/userOnline': userOnline,
|
|
'helpers/listItems': listItems,
|
|
'resolvers/DefaultResolver': DefaultResolver,
|
|
};
|