118 Commits (a3e95e798ffdd48e640e6f7e743bf9fd2c8b4c81)

Author SHA1 Message Date
gasoved 077330b764
feat: scheduled topics (#9399)
* feat: scheduled topics

* refactor: linting fixes

* fix: tests

* fix(test): race condition

* fix: make a single request
4 years ago
Julian Lam b4c0b32b26 fix: use root context if buildAvatar context is undefined 4 years ago
Julian Lam a716a5529c
feat: more discrete commit-on-save instead of commit-on-change w/ confirm modals (#8541)
* feat: privileges save button, #8537, WIP

* fix: disable firefox autocomplete on privilege form fields

* feat: closes #8537 privilege changes commit on save

- new language strings for confirmation and success modals/toasts
- indeterminate privilege handling (/cc @psychobunny)
- added new discard button
- both discard and save buttons now have confirmation dialogs

* fix(tests): remove duplicate template helper test

* fix(tests): broken template helper test

* feat: confirm dialogs for all privilege copy actions

Also, ability to add user to a privilege table without needing
to refresh the privilege table.

* feat: group row addition w/o table refresh

breaking: helpers.getUserPrivileges and helpers.getGroupPrivileges
no longer make socket calls to the following hooks:

- filter:privileges.list, filter:privileges.admin.list,
  filter:privileges.global.list, filter:privileges.groups.list,
  filter:privileges.admin.groups.list,
  filter:privileges.gloval.groups.list

The filters are still called, but done before the helper method
is called, and the results are passed in instead. This change
should only affect you if you directly call the helper methods,
otherwise the change is transparent.

* fix: stale ajaxify data on privilege category switch

* fix: implicit privileges not showing for user privs

* fix: groups, not group, also fix tests

* fix(tests): again

* fix: wrong tpl rendered when adding group to global priv table
5 years ago
Julian Lam da29b947bf feat: add js-enabled.css to list of preloaded css files 5 years ago
Julian Lam a82e9bd7f6
feat: privileges for Admin Control Panel (#8355)
* feat: acp privileges (WIP)

* fix: restore global privilege hooks

* refactor: using cid 0 in admin privs

* fix: no need for zebrastripe-reset

* feat: manage:categories privilege WIP

* feat: renamed prefix to admin:, settigns and dashboard privs

* fix: nofocus on acp privs group find modal

* refactor: privileges.x.get() to not used hardcoded privs

* fix: crash if unable to get latest version

* feat: setting acp priv

* Revert "fix: crash if unable to get latest version"

This reverts commit afdb235f48eb0072d88de45f3a1e0151281095b3.

* feat: user/privilege acp privs

* fix: category selector in manage/privileges

* fix: guests potentially becoming admins

* fix: bug in setting admin privs

* fix: some last minute things + api docs

* fix: some more last minute fixes
5 years ago
Julian Lam 922d49be0b fix(style): switch..case 5 years ago
Opliko 47e7e9572c Add loading=lazy tag to avatars
There is no reason why avatars should be a blocking reasorce, and browsers are now adding support for lazy loading of images (and iframes). According to [caniuse.com](https://caniuse.com/#feat=loading-lazy-attr) 62% of users use a browser that supports this attribute.

So there doesn't seem to be any downside to just adding this attribute here. It won't affect browsers that don't support it and might speed up page loads on browsers that do.
5 years ago
Barış Soner Uşaklı 35a4ca2fe9 feat: add sm2x avatar class #7813 6 years ago
Julian Lam 1796b65d34 feat: option to restrict group leaving, closes #7770 6 years ago
Julian Lam 69fae1a7e4 fix: output span in buildAvatar helper instead of div
In not-so-rare circumstances, the avatar generated is wrapped in
an anchor so that when clicked, it goes to the user profile.

Unfortunately, html 4 spec doesn't like block level elements
inside anchors (since an anchor is an inline element), and even
though we define html5 doctype, browsers still reorder the div
and anchor, beats me as to why.

So I can trick the browser by using a span. The css already styles
it as inline-block so no further fixes are required.
6 years ago
Julian Lam 2523889990
refactor: replace avatar conditional code with buildAvatar helper (#7681)
* feat: helper for building avatars

* feat: benchpress truefalse globals, componentPrefix in buildAvatar

* refactor: remove componentPrefix

* feat: changes to buildAvatar helper

- removed extra .avatar-xl class in generics.less
- added support for component override
- "size" can be a number now

* fix: prevent overflow of alt text in avatars

* fix: update doc on buildAvatar helper
6 years ago
Barış Soner Uşaklı 8aef689f05 fix: no need for moderate bit for global mods and admins 6 years ago
Barış Soner Uşaklı c940a73359 fix: #7539 6 years ago
Julian Lam d3a10628e7 fix: broken 50% border radius on emails, failing tests 6 years ago
Julian Lam 3a7f1c192b fix: failing tests from revamped-emails branch 6 years ago
Julian Lam f32a992237
feat: revamp email templates to be more style agnostic (#7375)
* feat: re-designed digest

Updated design, logic no longer shows "no topics", just doesn't
show the list at all, teaser re-retrieved for digest so that it
always grabs a teaser even if there is no reply, changed default
email background to a light grey.

* fix: minor padding issues in digest

* fix: banned template

* fix: invitation.tpl

* fix: removed unused notif_chat and notif_post email templates

* fix: notification template

* fix: registration_accepted template

* fix: reset tpl

* fix: test tpl

* fix: email verify tpl

* fix: reset notify tpl

* fix: welcome tpl

* fix: additional minor font fixes

* fix: removed unused email header image assets

* fix: internationalised 'your daily digest' string

* fix: broken url in digest 🤦

* feat: added RTL support for emailer

/cc @PostMidnight
6 years ago
Barış Soner Uşaklı c72da5595a fix: #6806
3 new global privileges
view:users
view:tags
view:groups
6 years ago
Barış Soner Uşaklı 9d1fcf4e36 fix: closes #7217 6 years ago
Barış Soner Uşaklı 0366cfd8ec fix: allow regular groups to local login 6 years ago
Julian Lam 7fb3c16882 fix: #7296, local login privilege available to registered-users only 6 years ago
Peter Jaszkowiak ba619c7ec8 style(eslint): match operator-linebreak preferences 7 years ago
Barış Soner Uşaklı b6771836cf closes #6937 7 years ago
Julian Lam f7bd398eb1 style(eslint): newlines in public/src as well 7 years ago
renovate[bot] 64b9dabff8 chore(deps): update dependency eslint-config-airbnb-base to v13 (#6599)
* chore(deps): update dependency eslint-config-airbnb-base to v13

* chore: #6599, linting 😬
7 years ago
Julian Lam b7fc8493b7 closes #6635 7 years ago
Barış Soner Uşaklı a7267df404 closes #6464 7 years ago
Barış Soner Uşaklı 651b1cc9f8 closes #6321 7 years ago
Barış Soner Uşaklı ff72d022c1 closes #6206 7 years ago
Julian Lam 78c83f2561 fixing tests 8 years ago
Julian Lam 17c52a515d fix incorrect padding/margin values in images in digest 8 years ago
Peter Jaszkowiak 46fafb20b9 Remove string.js dependency 8 years ago
RoiEX 1fd160a4e6 Add Support for Firefox OSD 8 years ago
Peter Jaszkowiak c91dfb46f6 Switch module t.js usage to Benchpress 8 years ago
Peter Jaszkowiak abffc29128 Use Benchpress (#5901)
* Use Benchpress

* Use Benchpress.compileParse

* Error for template load failure

* Use benchpressjs package

* Compile templates on demand

* Fix user settings page

* Fix admin search to exclude `.jst` files

* Fix 500-embed

So ajaxify can still show an error if the server goes down
8 years ago
Baris Usakli 5a968730d5 closes #5880 8 years ago
Peter Jaszkowiak aefdc4b24b Refactor helpers import/export 8 years ago
psychobunny 9cb5f71e08 #5717 also don't show category section in subcategory listing 8 years ago
Peter Jaszkowiak 64bf542d17 Fix HTML `lang` attribute using the `defaultLang`
Themes need `lang="{function.localeToHTML, userLang, defaultLang}"` in
their header.tpl file
8 years ago
barisusakli 284485c885 check data.config 8 years ago
barisusakli 347761173a helpers tests 8 years ago
Julian Lam 995f8296a4 linting 8 years ago
Julian Lam e71bd7a27f Merge branch 'master' into styleguide 8 years ago
barisusakli 048eb8a320 some helper tests 8 years ago
Peter Jaszkowiak c18808fdeb ESlint no-useless-concat, no-mixed-spaces-and-tabs 8 years ago
Peter Jaszkowiak 09e868ce5f ESlint no-useless-escape, no-else-return 8 years ago
Peter Jaszkowiak 11cb3a9554 ESlint operator-assignment, block-scoped-var 8 years ago
Peter Jaszkowiak 32dc7c23ea ESlint guard-for-in, no-nested-ternary
and operator-linebreak
8 years ago
Peter Jaszkowiak 1493afee2a ESlint indent 8 years ago
Peter Jaszkowiak 3b0dd2d1ef ESlint padded-blocks 8 years ago
Peter Jaszkowiak f3a8256f35 ESlint strict 8 years ago