add-frames #1
12 changed files with 156 additions and 7 deletions
3
backend/.gitignore
vendored
3
backend/.gitignore
vendored
|
@ -8,7 +8,4 @@ __pycache__
|
||||||
.envrc
|
.envrc
|
||||||
.direnv
|
.direnv
|
||||||
run_app.local.sh
|
run_app.local.sh
|
||||||
<<<<<<< HEAD
|
|
||||||
*.db
|
*.db
|
||||||
=======
|
|
||||||
>>>>>>> main
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ def get_apps():
|
||||||
apps = AppsService.get_all_apps()
|
apps = AppsService.get_all_apps()
|
||||||
return jsonify(apps)
|
return jsonify(apps)
|
||||||
|
|
||||||
|
|
||||||
@api_v1.route('/apps/<string:slug>', methods=['GET'])
|
@api_v1.route('/apps/<string:slug>', methods=['GET'])
|
||||||
@jwt_required()
|
@jwt_required()
|
||||||
def get_app(slug):
|
def get_app(slug):
|
||||||
|
|
37
public/markdown/nextcloud.md
Normal file
37
public/markdown/nextcloud.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Nextcloud
|
||||||
|
|
||||||
|
![Nextcloud](/assets/nextcloud.svg 'Nextcloud')
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel felis rutrum, congue orci non, dictum
|
||||||
|
augue. In hac habitasse platea dictumst. Donec enim neque, vehicula vel consequat non, facilisis sed mauris.
|
||||||
|
Quisque a ligula sed velit gravida tristique. Mauris id nisi convallis, porttitor ante sed, blandit odio. In
|
||||||
|
consequat faucibus dolor, id aliquam quam. Fusce a faucibus tellus. Ut vitae ligula a ex consectetur rutrum
|
||||||
|
ultricies ac velit. Nullam in efficitur velit, efficitur euismod nulla. Mauris feugiat posuere libero, quis
|
||||||
|
accumsan ipsum mollis quis. Quisque at sapien lacus. Etiam aliquet, enim non pulvinar rhoncus, enim dolor
|
||||||
|
consectetur risus, a pharetra eros risus sed velit. Phasellus tristique feugiat ipsum, eget rhoncus arcu
|
||||||
|
ultrices nec. Nam et quam et sem tempor semper dictum nec ipsum. Aenean lobortis mauris non fringilla laoreet.
|
||||||
|
Sed fringilla vel justo nec pellentesque.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
37
public/markdown/wekan.md
Normal file
37
public/markdown/wekan.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Wekan
|
||||||
|
|
||||||
|
![Wekan](/assets/wekan.svg 'Wekan')
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel felis rutrum, congue orci non, dictum
|
||||||
|
augue. In hac habitasse platea dictumst. Donec enim neque, vehicula vel consequat non, facilisis sed mauris.
|
||||||
|
Quisque a ligula sed velit gravida tristique. Mauris id nisi convallis, porttitor ante sed, blandit odio. In
|
||||||
|
consequat faucibus dolor, id aliquam quam. Fusce a faucibus tellus. Ut vitae ligula a ex consectetur rutrum
|
||||||
|
ultricies ac velit. Nullam in efficitur velit, efficitur euismod nulla. Mauris feugiat posuere libero, quis
|
||||||
|
accumsan ipsum mollis quis. Quisque at sapien lacus. Etiam aliquet, enim non pulvinar rhoncus, enim dolor
|
||||||
|
consectetur risus, a pharetra eros risus sed velit. Phasellus tristique feugiat ipsum, eget rhoncus arcu
|
||||||
|
ultrices nec. Nam et quam et sem tempor semper dictum nec ipsum. Aenean lobortis mauris non fringilla laoreet.
|
||||||
|
Sed fringilla vel justo nec pellentesque.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
37
public/markdown/wordpress.md
Normal file
37
public/markdown/wordpress.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Wordpress
|
||||||
|
|
||||||
|
![Wordpress](/assets/wordpress.svg 'Wordpress')
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel felis rutrum, congue orci non, dictum
|
||||||
|
augue. In hac habitasse platea dictumst. Donec enim neque, vehicula vel consequat non, facilisis sed mauris.
|
||||||
|
Quisque a ligula sed velit gravida tristique. Mauris id nisi convallis, porttitor ante sed, blandit odio. In
|
||||||
|
consequat faucibus dolor, id aliquam quam. Fusce a faucibus tellus. Ut vitae ligula a ex consectetur rutrum
|
||||||
|
ultricies ac velit. Nullam in efficitur velit, efficitur euismod nulla. Mauris feugiat posuere libero, quis
|
||||||
|
accumsan ipsum mollis quis. Quisque at sapien lacus. Etiam aliquet, enim non pulvinar rhoncus, enim dolor
|
||||||
|
consectetur risus, a pharetra eros risus sed velit. Phasellus tristique feugiat ipsum, eget rhoncus arcu
|
||||||
|
ultrices nec. Nam et quam et sem tempor semper dictum nec ipsum. Aenean lobortis mauris non fringilla laoreet.
|
||||||
|
Sed fringilla vel justo nec pellentesque.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
37
public/markdown/zulip.md
Normal file
37
public/markdown/zulip.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# Zulip
|
||||||
|
|
||||||
|
![Zulip](/assets/zulip.svg 'Zulip')
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vel felis rutrum, congue orci non, dictum
|
||||||
|
augue. In hac habitasse platea dictumst. Donec enim neque, vehicula vel consequat non, facilisis sed mauris.
|
||||||
|
Quisque a ligula sed velit gravida tristique. Mauris id nisi convallis, porttitor ante sed, blandit odio. In
|
||||||
|
consequat faucibus dolor, id aliquam quam. Fusce a faucibus tellus. Ut vitae ligula a ex consectetur rutrum
|
||||||
|
ultricies ac velit. Nullam in efficitur velit, efficitur euismod nulla. Mauris feugiat posuere libero, quis
|
||||||
|
accumsan ipsum mollis quis. Quisque at sapien lacus. Etiam aliquet, enim non pulvinar rhoncus, enim dolor
|
||||||
|
consectetur risus, a pharetra eros risus sed velit. Phasellus tristique feugiat ipsum, eget rhoncus arcu
|
||||||
|
ultrices nec. Nam et quam et sem tempor semper dictum nec ipsum. Aenean lobortis mauris non fringilla laoreet.
|
||||||
|
Sed fringilla vel justo nec pellentesque.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
||||||
|
|
||||||
|
Quisque ac sem ipsum. Mauris interdum non risus sed gravida. Integer sit amet metus pharetra, tristique odio
|
||||||
|
a, rhoncus augue. Nam vitae neque in mi rutrum aliquam. Suspendisse vulputate efficitur venenatis. Proin
|
||||||
|
lobortis eros et velit commodo, sed sollicitudin sem maximus. Mauris ut tellus ipsum. Donec facilisis sed
|
||||||
|
ipsum vitae volutpat. Pellentesque viverra ex vel mi blandit, vel eleifend libero tincidunt. Vestibulum nec
|
||||||
|
felis congue, ultrices eros sit amet, maximus lacus.
|
||||||
|
|
||||||
|
Duis faucibus, tellus a commodo accumsan, felis mauris tincidunt ante, vel semper magna felis eget erat. Nam
|
||||||
|
vel odio non diam auctor pretium nec nec dui. Duis non dui ornare sem aliquet malesuada vitae sed odio. Etiam
|
||||||
|
porttitor ligula orci, in tristique ligula laoreet non. Nulla pulvinar mattis nisi volutpat hendrerit. Nunc
|
||||||
|
massa velit, feugiat vitae posuere sed, volutpat tristique ligula. Fusce a vulputate orci. Ut cursus mattis
|
||||||
|
malesuada.
|
1
src/modules/apps/components/AdvancedTab/index.ts
Normal file
1
src/modules/apps/components/AdvancedTab/index.ts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export { AdvancedTab } from './AdvancedTab';
|
1
src/modules/apps/components/GeneralTab/index.ts
Normal file
1
src/modules/apps/components/GeneralTab/index.ts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export { GeneralTab } from './GeneralTab';
|
|
@ -1,3 +1,3 @@
|
||||||
export { GeneralTab } from './GeneralTab/GeneralTab';
|
export { GeneralTab } from './GeneralTab';
|
||||||
export { AdvancedTab } from './AdvancedTab/AdvancedTab';
|
export { AdvancedTab } from './AdvancedTab';
|
||||||
export { AppInstallModal } from './AppInstallModal';
|
export { AppInstallModal } from './AppInstallModal';
|
||||||
|
|
|
@ -13,7 +13,7 @@ import { debounce } from 'lodash';
|
||||||
import { useAuth } from 'src/services/auth';
|
import { useAuth } from 'src/services/auth';
|
||||||
|
|
||||||
import { UserModal } from '../../components/UserModal';
|
import { UserModal } from '../../components/UserModal';
|
||||||
import { MultipleUsersModal } from './components/MultipleUsersModal';
|
import { MultipleUsersModal } from './components';
|
||||||
|
|
||||||
export const Users: React.FC = () => {
|
export const Users: React.FC = () => {
|
||||||
const [selectedRowsIds, setSelectedRowsIds] = useState({});
|
const [selectedRowsIds, setSelectedRowsIds] = useState({});
|
||||||
|
|
1
src/modules/users/components/index.ts
Normal file
1
src/modules/users/components/index.ts
Normal file
|
@ -0,0 +1 @@
|
||||||
|
export { MultipleUsersModal } from './MultipleUsersModal';
|
|
@ -1,4 +1,4 @@
|
||||||
export * from './actions';
|
export * from './actions';
|
||||||
export { default as reducer } from './reducers';
|
export { default as reducer } from './reducers';
|
||||||
export * from './selectors';
|
export { getUsers } from './selectors';
|
||||||
export * from './types';
|
export * from './types';
|
||||||
|
|
Loading…
Reference in a new issue