Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release hotfixes to production #3138

Merged
merged 84 commits into from
May 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
a74eca5
Updated spacing between dots for links
sairina Jan 14, 2021
7f06a34
WIP: dot added for LTR languages; need to fix formatting for when RTL…
sairina Jan 14, 2021
8c84a77
Fix dot distances between languages to match links below
sairina Jan 15, 2021
a458eed
Fix linting
sairina Jan 16, 2021
4ccba43
Moved logic in template to a method for detecting language
sairina Jan 20, 2021
a2f4c9a
Merge pull request #2789 from sairina/language-dots
jayoshih Jan 22, 2021
3756082
PrimaryDialog -> KModal in ChannelItem.vue
nucleogenesis Feb 10, 2021
81c9025
pass the delete button test
nucleogenesis Feb 10, 2021
526c1a8
Rename RouterNames -> RouteNames
jonboiser Feb 11, 2021
2e4b7d2
Merge pull request #2939 from jonboiser/rename-routernames
rtibbles Feb 12, 2021
6cd38c6
Merge pull request #2946 from learningequality/master
rtibbles Feb 12, 2021
71176a1
Fix a linter issue
MisRob Feb 17, 2021
0d9ee23
Run pip-compile for dev dependencies (no new dependencies added)
MisRob Feb 17, 2021
120503d
Add flower to dev dependencies
MisRob Feb 17, 2021
07a4cdc
Mention Flower in README
MisRob Feb 17, 2021
f9defac
Merge pull request #2957 from MisRob/fix-linting
rtibbles Feb 17, 2021
b0af1d7
Merge branch 'develop' into add-flower-to-dev-dependencies
MisRob Feb 17, 2021
61066c0
Merge pull request #2958 from MisRob/add-flower-to-dev-dependencies
rtibbles Feb 17, 2021
2565038
Remove obsolete or unneeded functionality
MisRob Feb 12, 2021
26e11e2
Migrate ProgressModal to KDS and improve its tests
MisRob Feb 12, 2021
b8c73e9
Simplify cancel modal
MisRob Feb 22, 2021
cd27afc
Replace KModal with VDialog
MisRob Feb 22, 2021
8bf339e
Remove PrimaryDialog from SyncResourcesModal & CatalogFilterBar
nucleogenesis Feb 22, 2021
1221b77
Remove PrimaryDialog from ChannelTokenModal
nucleogenesis Feb 22, 2021
fbb8943
Remove PrimaryDialog and DialogBox from codebase as they are unused.
nucleogenesis Feb 22, 2021
8f281cc
Remove unnecessary test data from CatalogFilterBar
nucleogenesis Feb 22, 2021
405d819
Merge pull request #2980 from MisRob/kds-kmodal-relatedresourcestab
MisRob Feb 23, 2021
9d68c89
Merge pull request #2968 from MisRob/kds-kmodal-progressmodal
MisRob Feb 23, 2021
d625081
Merge branch 'master' into 'develop'
rtibbles Feb 23, 2021
c658dee
Merge pull request #2985 from rtibbles/master_into_develop
rtibbles Feb 23, 2021
c6c7b8a
Merge pull request #2984 from nucleogenesis/kds-kmodal--primarydialog
rtibbles Feb 24, 2021
89766cb
Remove VDialog in favour of KModal
MisRob Feb 25, 2021
177f9b1
Move PublishModal to its own directory
MisRob Feb 25, 2021
abca8ad
Extract channel metadata to a component
MisRob Feb 26, 2021
2fcc228
Remove VForm
MisRob Feb 26, 2021
ec08ff0
Use consistent whitespace before ‘\’ continuation
jonboiser Feb 22, 2021
ba2889f
Move ‘|’ operator to beginning of line
jonboiser Feb 22, 2021
e34cc2c
Add title and license validation to create_node
jonboiser Feb 23, 2021
3e493ab
Add missing parts of specs and remove setMethods
MisRob Mar 2, 2021
0a1a025
Update publish modals titles
MisRob Mar 2, 2021
1bb8dd1
Remove channel metadata from the warning modal
MisRob Mar 2, 2021
9e4e9ba
New UI for channel metadata
MisRob Mar 2, 2021
c15fb32
Use KModal for summary dialog
MisRob Mar 3, 2021
d06d9b0
Use KModal for deploy dialog
MisRob Mar 3, 2021
ab4b080
Remove channel metadata
MisRob Mar 8, 2021
6a984da
Revert "Update publish modals titles"
MisRob Mar 8, 2021
3e915e3
Remove top margin
MisRob Mar 8, 2021
f52cf20
Revert "Move PublishModal to its own directory"
MisRob Mar 8, 2021
b971d5e
Merge pull request #3002 from MisRob/progress-modal-specs
rtibbles Mar 8, 2021
7c4be61
Merge pull request #2997 from MisRob/kds-kmodal-channeledit-publishmodal
rtibbles Mar 12, 2021
e8010c6
Merge pull request #2999 from jonboiser/validate_new_nodes_title_and_…
rtibbles Mar 12, 2021
34a9cd7
Resolve conflicts related to reverting pagination changes in ChannelL…
marcellamaki Mar 18, 2021
8dd9c1f
fix final merge conflict 'RouterNames' renamed to 'RouteNames'
marcellamaki Mar 18, 2021
138f94b
Merge pull request #3036 from marcellamaki/develop
rtibbles Mar 18, 2021
92a5c78
Merge pull request #3004 from MisRob/kds-kmodal-channeledit-stagingtr…
MisRob Mar 23, 2021
812d7b4
Move modals outside of ResponsiveDialog
MisRob Mar 26, 2021
5ae0f53
Replace ResponsiveDialog by KModal
MisRob Mar 26, 2021
bfa59ee
Use KDS loader
MisRob Mar 30, 2021
8d5989f
Update 'customContentAnswer' for catalog FAQ
radinamatic Apr 12, 2021
40d6466
Catch duplicate editor assignment for newly created channels.
rtibbles Apr 14, 2021
5831358
Clean up and consolidate permissions.
rtibbles Apr 14, 2021
b24bc3d
Merge pull request #3103 from bjester/master-to-hotfixes
rtibbles Apr 15, 2021
04eaf2a
Clean up to fix tests.
rtibbles Apr 15, 2021
13b8ae1
Resolve merge conflicts
bjester Apr 15, 2021
1bc8de6
Fix linting issue
bjester Apr 15, 2021
2a61689
Merge pull request #3104 from bjester/hotfixes-to-unstable
bjester Apr 15, 2021
da3d87b
Merge pull request #3100 from rtibbles/permissions_update
rtibbles Apr 15, 2021
a5db047
Add editing permissions condition to view/display Publish Modal and u…
marcellamaki Apr 19, 2021
7558536
Fix recent task related issues
bjester Apr 19, 2021
e501f3a
Merge pull request #3107 from bjester/task-index-error
bjester Apr 19, 2021
db125b8
Merge pull request #3085 from radinamatic/update-catalog-faq
rtibbles Apr 19, 2021
400d36c
Fix linting issue, ensuring return for isPublishing
marcellamaki Apr 19, 2021
50080cd
Bump ssri from 6.0.1 to 6.0.2
dependabot[bot] Apr 19, 2021
8f4f8f3
Merge pull request #3110 from learningequality/dependabot/npm_and_yar…
rtibbles Apr 19, 2021
e520918
Merge pull request #3108 from marcellamaki/view-only-publishing-chann…
rtibbles Apr 19, 2021
ebad621
Merge pull request #3063 from MisRob/kds-kmodal-responsivedialog-save…
MisRob Apr 20, 2021
27e7791
Merge pull request #3099 from rtibbles/duplicate_channel_editors
bjester Apr 26, 2021
c3f7bf8
Merge pull request #3115 from bjester/sprint-release-2021-04-26
bjester Apr 26, 2021
ef63539
Make sure to always annotate can_edit and can_view.
rtibbles Apr 28, 2021
315f8ae
Merge pull request #3126 from rtibbles/can_edit_user_none
rtibbles Apr 28, 2021
0dcdd1a
Added ES and FR translations for 'customContentAnswer'
radinamatic May 3, 2021
f6efc22
Merge pull request #3133 from radinamatic/add-catalog-translations
bjester May 4, 2021
24519cc
Copy close button translations
bjester May 4, 2021
6be5e2f
Merge pull request #3135 from bjester/close-button-translation
bjester May 5, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,14 @@ yarn run lint-all:fix

Make sure you've set up pre-commit hooks as described above. This will ensure that linting is automatically run on staged changes before every commit.

### Flower

[Flower](https://flower.readthedocs.io/en/latest/) is a Celery monitoring dashboard. It is available on http://localhost:5555 after you run services:

```bash
yarn run services
```

### Storybook

Storybook is a development environment for UI components. If this is your first encounter with this tool, you can check [this presentation](https://docs.google.com/presentation/d/10JL4C9buygWsTbT62Ym149Yh9zSR9nY_ZqFumBKUY0o/edit?usp=sharing) or [its website](https://storybook.js.org/). You are encouraged to use it any time you need to develop a new UI component. It is especially suitable for smaller to middle size components that represent basic UI building blocks.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@
}

.links span:not(:last-child)::after {
margin: 0 8px;
margin: 0 8px 0 12px;
font-size: 14pt;
color: var(--v-grey-base);
vertical-align: middle;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export const RouterNames = {
export const RouteNames = {
CHANNELS: 'CHANNELS',
CHANNEL: 'CHANNEL',
USERS: 'USERS',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

<script>

import { RouterNames } from '../constants';
import { RouteNames } from '../constants';
import PermissionsError from 'shared/views/errors/PermissionsError';
import ChannelNotFoundError from 'shared/views/errors/ChannelNotFoundError';
import PageNotFoundError from 'shared/views/errors/PageNotFoundError';
Expand Down Expand Up @@ -61,10 +61,10 @@
backFromCurrentPageUrl() {
const currentPage = this.$route.name;
let toName;
if (currentPage === RouterNames.USER) {
toName = RouterNames.USERS;
if (currentPage === RouteNames.USER) {
toName = RouteNames.USERS;
} else {
toName = RouterNames.CHANNELS;
toName = RouteNames.CHANNELS;
}
return {
to: { name: toName },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

<script>

import { RouterNames } from '../constants';
import { RouteNames } from '../constants';
import AdministrationAppError from './AdministrationAppError';
import AppBar from 'shared/views/AppBar';
import GlobalSnackbar from 'shared/views/GlobalSnackbar';
Expand All @@ -52,12 +52,12 @@
},
channelsLink() {
return {
name: RouterNames.CHANNELS,
name: RouteNames.CHANNELS,
};
},
usersLink() {
return {
name: RouterNames.USERS,
name: RouteNames.USERS,
};
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@

import { mapActions, mapGetters } from 'vuex';
import ConfirmationDialog from '../../components/ConfirmationDialog';
import { RouterNames } from '../../constants';
import { RouteNames } from '../../constants';
import { channelExportMixin } from 'shared/views/channel/mixins';

export default {
Expand Down Expand Up @@ -151,7 +151,7 @@
},
searchChannelEditorsLink() {
return {
name: RouterNames.USERS,
name: RouteNames.USERS,
query: {
search: `${this.name} ${this.channel.id}`,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
<script>

import { mapActions, mapGetters } from 'vuex';
import { RouterNames } from '../../constants';
import { RouteNames } from '../../constants';
import ChannelActionsDropdown from './ChannelActionsDropdown';
import ChannelSharing from 'shared/views/channel/ChannelSharing';
import Details from 'shared/views/details/Details';
Expand Down Expand Up @@ -109,7 +109,7 @@
},
backLink() {
return {
name: RouterNames.CHANNELS,
name: RouteNames.CHANNELS,
query: this.$route.query,
};
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@

import { mapGetters, mapActions } from 'vuex';
import ClipboardChip from '../../components/ClipboardChip';
import { RouterNames } from '../../constants';
import { RouteNames } from '../../constants';
import ChannelActionsDropdown from './ChannelActionsDropdown';
import Checkbox from 'shared/views/form/Checkbox';
import { fileSizeMixin } from 'shared/mixins';
Expand Down Expand Up @@ -220,7 +220,7 @@
},
channelModalLink() {
return {
name: RouterNames.CHANNEL,
name: RouteNames.CHANNEL,
params: { channelId: this.channelId },
query: this.$route.query,
};
Expand All @@ -230,7 +230,7 @@
},
searchChannelEditorsLink() {
return {
name: RouterNames.USERS,
name: RouteNames.USERS,
query: {
keywords: `${this.channel.name} ${this.channelId}`,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@

import { mapGetters, mapActions } from 'vuex';
import { tableMixin, generateFilterMixin } from '../../mixins';
import { RouterNames, rowsPerPageItems } from '../../constants';
import { RouteNames, rowsPerPageItems } from '../../constants';
import ChannelItem from './ChannelItem';
import { channelExportMixin } from 'shared/views/channel/mixins';
import { routerMixin } from 'shared/mixins';
Expand Down Expand Up @@ -195,7 +195,7 @@
$route: {
deep: true,
handler(newRoute, oldRoute) {
if (newRoute.name === oldRoute.name && newRoute.name === RouterNames.CHANNELS)
if (newRoute.name === oldRoute.name && newRoute.name === RouteNames.CHANNELS)
this.selected = [];
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { mount } from '@vue/test-utils';
import router from '../../../router';
import { factory } from '../../../store';
import { RouterNames } from '../../../constants';
import { RouteNames } from '../../../constants';
import ChannelDetails from './../ChannelDetails';

const store = factory();

const channelId = '11111111111111111111111111111111';

function makeWrapper() {
router.replace({ name: RouterNames.CHANNEL, params: { channelId } });
router.replace({ name: RouteNames.CHANNEL, params: { channelId } });
return mount(ChannelDetails, {
router,
store,
Expand Down Expand Up @@ -37,7 +37,7 @@ describe('channelDetails', () => {
});
it('clicking close should close the modal', () => {
wrapper.vm.dialog = false;
expect(wrapper.vm.$route.name).toBe(RouterNames.CHANNELS);
expect(wrapper.vm.$route.name).toBe(RouteNames.CHANNELS);
});
describe('load', () => {
it('should automatically close if loadChannel does not find a channel', () => {
Expand All @@ -46,7 +46,7 @@ describe('channelDetails', () => {
loadChannelDetails: jest.fn().mockReturnValue(Promise.resolve()),
});
return wrapper.vm.load().then(() => {
expect(wrapper.vm.$route.name).toBe(RouterNames.CHANNELS);
expect(wrapper.vm.$route.name).toBe(RouteNames.CHANNELS);
});
});
it('load should call loadChannel and loadChannelDetails', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { mount } from '@vue/test-utils';
import router from '../../../router';
import { factory } from '../../../store';
import { RouterNames } from '../../../constants';
import { RouteNames } from '../../../constants';
import ChannelItem from '../ChannelItem';

const store = factory();
Expand All @@ -21,7 +21,7 @@ const channel = {
};

function makeWrapper() {
router.replace({ name: RouterNames.CHANNELS });
router.replace({ name: RouteNames.CHANNELS });
return mount(ChannelItem, {
router,
store,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { mount } from '@vue/test-utils';
import router from '../../../router';
import { factory } from '../../../store';
import { RouterNames } from '../../../constants';
import { RouteNames } from '../../../constants';
import ChannelTable from '../ChannelTable';

const store = factory();

const loadChannels = jest.fn().mockReturnValue(Promise.resolve());
const channelList = ['test', 'channel', 'table'];
function makeWrapper() {
router.replace({ name: RouterNames.CHANNELS });
router.replace({ name: RouteNames.CHANNELS });
return mount(ChannelTable, {
router,
store,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@

import capitalize from 'lodash/capitalize';
import { mapActions, mapGetters } from 'vuex';
import { RouterNames } from '../../constants';
import { RouteNames } from '../../constants';
import UserStorage from './UserStorage';
import UserActionsDropdown from './UserActionsDropdown';
import { routerMixin, fileSizeMixin } from 'shared/mixins';
Expand Down Expand Up @@ -193,7 +193,7 @@
},
backLink() {
return {
name: RouterNames.USERS,
name: RouteNames.USERS,
query: this.$route.query,
};
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@

import capitalize from 'lodash/capitalize';
import { mapGetters } from 'vuex';
import { RouterNames } from '../../constants';
import { RouteNames } from '../../constants';
import UserActionsDropdown from './UserActionsDropdown';
import UserStorage from './UserStorage';
import Checkbox from 'shared/views/form/Checkbox';
Expand Down Expand Up @@ -146,14 +146,14 @@
},
userModalLink() {
return {
name: RouterNames.USER,
name: RouteNames.USER,
params: { userId: this.userId },
query: this.$route.query,
};
},
searchUserChannelsLink() {
return {
name: RouterNames.CHANNELS,
name: RouteNames.CHANNELS,
query: {
keywords: `${this.user.name} ${this.user.email}`,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
<script>

import { mapGetters, mapActions } from 'vuex';
import { RouterNames, rowsPerPageItems } from '../../constants';
import { RouteNames, rowsPerPageItems } from '../../constants';
import { tableMixin, generateFilterMixin } from '../../mixins';
import EmailUsersDialog from './EmailUsersDialog';
import UserItem from './UserItem';
Expand Down Expand Up @@ -195,7 +195,7 @@
$route: {
deep: true,
handler(newRoute, oldRoute) {
if (newRoute.name === oldRoute.name && newRoute.name === RouterNames.USERS)
if (newRoute.name === oldRoute.name && newRoute.name === RouteNames.USERS)
this.selected = [];
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { mount } from '@vue/test-utils';
import router from '../../../router';
import { factory } from '../../../store';
import { RouterNames } from '../../../constants';
import { RouteNames } from '../../../constants';
import UserDetails from '../UserDetails';

const store = factory();
Expand All @@ -22,7 +22,7 @@ const details = {
};

function makeWrapper(userProps = {}) {
router.replace({ name: RouterNames.USER, params: { userId } });
router.replace({ name: RouteNames.USER, params: { userId } });
return mount(UserDetails, {
router,
store,
Expand Down Expand Up @@ -53,7 +53,7 @@ describe('userDetails', () => {
});
it('clicking close should close the modal', () => {
wrapper.vm.dialog = false;
expect(wrapper.vm.$route.name).toBe(RouterNames.USERS);
expect(wrapper.vm.$route.name).toBe(RouteNames.USERS);
});
describe('load', () => {
it('should automatically close if loadUser does not find a channel', () => {
Expand All @@ -62,7 +62,7 @@ describe('userDetails', () => {
loadUserDetails: jest.fn().mockReturnValue(Promise.resolve()),
});
return wrapper.vm.load().then(() => {
expect(wrapper.vm.$route.name).toBe(RouterNames.USERS);
expect(wrapper.vm.$route.name).toBe(RouteNames.USERS);
});
});
it('load should call loadUser and loadUserDetails', () => {
Expand All @@ -79,7 +79,7 @@ describe('userDetails', () => {
wrapper.setData({ loading: false });
wrapper.find('[data-test="dropdown"]').vm.$emit('deleted');
wrapper.vm.$nextTick(() => {
expect(wrapper.vm.$route.name).toBe(RouterNames.USERS);
expect(wrapper.vm.$route.name).toBe(RouteNames.USERS);
});
});
it('progress bar should reflect storage used', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { mount } from '@vue/test-utils';
import router from '../../../router';
import { factory } from '../../../store';
import { RouterNames } from '../../../constants';
import { RouteNames } from '../../../constants';
import UserItem from '../UserItem';

const store = factory();
Expand All @@ -16,7 +16,7 @@ const user = {
};

function makeWrapper() {
router.replace({ name: RouterNames.USERS });
router.replace({ name: RouteNames.USERS });
return mount(UserItem, {
router,
store,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { mount } from '@vue/test-utils';
import router from '../../../router';
import { factory } from '../../../store';
import { RouterNames } from '../../../constants';
import { RouteNames } from '../../../constants';
import UserTable from '../UserTable';

const store = factory();

const loadUsers = jest.fn().mockReturnValue(Promise.resolve());
const userList = ['test', 'user', 'table'];
function makeWrapper() {
router.replace({ name: RouterNames.USERS });
router.replace({ name: RouteNames.USERS });
return mount(UserTable, {
router,
store,
Expand Down
Loading