Compare commits
8 Commits
pkg/dev/ub
...
issue-33
Author | SHA1 | Date | |
---|---|---|---|
69d6753f59 | |||
94bfb77d87 | |||
5a677d2491 | |||
fbb2b3f8da | |||
44182fd1cd | |||
4e9298f5b6 | |||
9dce43fd58 | |||
3fa2b5905a |
@ -9,6 +9,7 @@
|
||||
### Procédure
|
||||
|
||||
```bash
|
||||
cd client && npm install # Installation des dépendances client
|
||||
make watch # Surveiller les modifications sur le sources et compiler/démarrer le serveur
|
||||
```
|
||||
|
||||
|
@ -1,10 +1,11 @@
|
||||
import { GiteaUnauthorizedError } from "../../util/gitea";
|
||||
import { put } from 'redux-saga/effects';
|
||||
import { logout } from '../actions/logout';
|
||||
import { saveReferer } from "../../util/referer";
|
||||
|
||||
export function* failuresSaga(action) {
|
||||
const err = action.error;
|
||||
if (err instanceof GiteaUnauthorizedError) {
|
||||
if (action.error instanceof GiteaUnauthorizedError) {
|
||||
saveReferer();
|
||||
yield put(logout());
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ export function* fetchIssuesSaga(action: any) {
|
||||
if (pageIssues.length === 0) {
|
||||
break;
|
||||
}
|
||||
issues.push(...pageIssues);
|
||||
issues.push(...pageIssues.filter(issue => issue.pull_request === null));
|
||||
page++;
|
||||
}
|
||||
|
||||
|
9
client/src/store/sagas/referer.ts
Normal file
9
client/src/store/sagas/referer.ts
Normal file
@ -0,0 +1,9 @@
|
||||
import { hasReferer, getReferer, clearReferer } from '../../util/referer';
|
||||
|
||||
export function* navigateToRefererSaga() {
|
||||
if (!hasReferer()) return;
|
||||
const referer = getReferer();
|
||||
console.log("Redirecting to referer", referer);
|
||||
clearReferer();
|
||||
window.location.hash = referer;
|
||||
}
|
@ -10,9 +10,11 @@ import { LOGOUT_REQUEST, LOGOUT_SUCCESS } from '../actions/logout';
|
||||
import { logoutSaga, logoutSuccessSaga } from './logout';
|
||||
import { BUILD_KANBOARD_REQUEST, MOVE_CARD } from '../actions/kanboards';
|
||||
import { buildKanboardSaga, moveCardSaga, refreshKanboardSaga } from './kanboards';
|
||||
import { navigateToRefererSaga } from './referer';
|
||||
|
||||
export function* rootSaga() {
|
||||
yield all([
|
||||
navigateToRefererSaga(),
|
||||
takeEvery(patternFromRegExp(/^.*_FAILURE/), failuresSaga),
|
||||
takeLatest(FETCH_BOARDS_REQUEST, fetchBoardsSaga),
|
||||
takeLatest(BUILD_KANBOARD_REQUEST, buildKanboardSaga),
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { createStore, applyMiddleware } from 'redux'
|
||||
import { createStore, applyMiddleware, compose } from 'redux'
|
||||
import createSagaMiddleware from 'redux-saga'
|
||||
import { rootReducer } from './reducers/root'
|
||||
import { rootSaga } from './sagas/root'
|
||||
@ -14,6 +14,8 @@ if (process.env.NODE_ENV !== 'production') {
|
||||
reduxMiddlewares.push(loggerMiddleware);
|
||||
}
|
||||
|
||||
const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
|
||||
|
||||
// create the saga middleware
|
||||
const sagaMiddleware = createSagaMiddleware()
|
||||
reduxMiddlewares.push(sagaMiddleware);
|
||||
@ -21,7 +23,7 @@ reduxMiddlewares.push(sagaMiddleware);
|
||||
// mount it on the Store
|
||||
export const store = createStore(
|
||||
rootReducer,
|
||||
applyMiddleware(...reduxMiddlewares)
|
||||
composeEnhancers(applyMiddleware(...reduxMiddlewares)),
|
||||
)
|
||||
|
||||
// then run the saga
|
||||
|
@ -2,6 +2,7 @@
|
||||
export class GiteaUnauthorizedError extends Error {
|
||||
constructor(...args: any[]) {
|
||||
super(...args)
|
||||
Object.setPrototypeOf(this, GiteaUnauthorizedError.prototype);
|
||||
}
|
||||
}
|
||||
|
||||
|
19
client/src/util/referer.ts
Normal file
19
client/src/util/referer.ts
Normal file
@ -0,0 +1,19 @@
|
||||
const localStorage = window.localStorage;
|
||||
const refererKey = 'referer';
|
||||
|
||||
export function getReferer() {
|
||||
return localStorage.getItem(refererKey);
|
||||
}
|
||||
|
||||
export function saveReferer() {
|
||||
console.log("Saving referer", window.location.hash);
|
||||
localStorage.setItem(refererKey, window.location.hash);
|
||||
}
|
||||
|
||||
export function hasReferer() {
|
||||
return !!getReferer();
|
||||
}
|
||||
|
||||
export function clearReferer() {
|
||||
localStorage.removeItem(refererKey);
|
||||
}
|
@ -28,7 +28,7 @@ func getServiceContainer(conf *config.Config) (*service.Container, error) {
|
||||
|
||||
ctn.Provide(
|
||||
session.ServiceName,
|
||||
gorilla.ServiceProvider("gitea-kan", cookieStore),
|
||||
gorilla.ServiceProvider("gengitkan", cookieStore),
|
||||
)
|
||||
|
||||
// Create and expose config service provider
|
||||
|
@ -20,6 +20,7 @@ type HTTPConfig struct {
|
||||
}
|
||||
|
||||
type GiteaConfig struct {
|
||||
BaseURL string
|
||||
ClientID string
|
||||
ClientSecret string
|
||||
RedirectURL string
|
||||
|
Reference in New Issue
Block a user