From dcb5e78c3d8a9f14edbbc72492536031be07b0a4 Mon Sep 17 00:00:00 2001 From: insanity Date: Tue, 22 Aug 2017 15:36:40 +0900 Subject: [PATCH] noauth probe accept/deny --- src/ts/@overflow/app/config/index.ts | 4 + .../noauthprobe/react/NoauthProbeList.tsx | 40 ++--- .../react/components/NoauthProbeList.tsx | 140 +++++++++--------- .../noauthprobe/redux/action/accept.ts | 7 + .../noauthprobe/redux/action/deny.ts | 8 + .../noauthprobe/redux/action/read.ts | 43 ------ .../noauthprobe/redux/action/regist.ts | 43 ------ .../redux/payload/AcceptPayload.ts | 7 + .../noauthprobe/redux/payload/DenyPayload.ts | 7 + .../noauthprobe/redux/payload/ReadPayload.ts | 7 - .../redux/payload/RegistPayload.ts | 7 - .../noauthprobe/redux/reducer/accept.ts | 24 +++ .../noauthprobe/redux/reducer/deny.ts | 24 +++ .../noauthprobe/redux/reducer/read.ts | 3 - .../redux/reducer/read_all_by_domain.ts | 3 - .../noauthprobe/redux/reducer/regist.ts | 0 .../noauthprobe/redux/state/Accept.ts | 13 ++ .../@overflow/noauthprobe/redux/state/Deny.ts | 13 ++ .../@overflow/noauthprobe/redux/state/Read.ts | 3 - .../noauthprobe/redux/state/Regist.ts | 3 - 20 files changed, 203 insertions(+), 196 deletions(-) create mode 100644 src/ts/@overflow/noauthprobe/redux/action/accept.ts create mode 100644 src/ts/@overflow/noauthprobe/redux/action/deny.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/action/read.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/action/regist.ts create mode 100644 src/ts/@overflow/noauthprobe/redux/payload/AcceptPayload.ts create mode 100644 src/ts/@overflow/noauthprobe/redux/payload/DenyPayload.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/payload/ReadPayload.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/payload/RegistPayload.ts create mode 100644 src/ts/@overflow/noauthprobe/redux/reducer/accept.ts create mode 100644 src/ts/@overflow/noauthprobe/redux/reducer/deny.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/reducer/read.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/reducer/regist.ts create mode 100644 src/ts/@overflow/noauthprobe/redux/state/Accept.ts create mode 100644 src/ts/@overflow/noauthprobe/redux/state/Deny.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/state/Read.ts delete mode 100644 src/ts/@overflow/noauthprobe/redux/state/Regist.ts diff --git a/src/ts/@overflow/app/config/index.ts b/src/ts/@overflow/app/config/index.ts index 61d6a7b..c897e93 100644 --- a/src/ts/@overflow/app/config/index.ts +++ b/src/ts/@overflow/app/config/index.ts @@ -9,6 +9,8 @@ import readProbeReducer from '@overflow/probe/redux/reducer/read'; import hostReadByProbeReducer from '@overflow/probe/redux/reducer/host_read_by_probe'; import readNoAuthProbeReducer from '@overflow/noauthprobe/redux/reducer/read_all_by_domain'; +import noauthAcceptReducer from '@overflow/noauthprobe/redux/reducer/accept'; +import noauthDenyReducer from '@overflow/noauthprobe/redux/reducer/deny'; import readAllTargetByProbeReducer from '@overflow/target/redux/reducer/readAllByProbe'; import readAllTargetByDomainReducer from '@overflow/target/redux/reducer/read_all_by_domain'; @@ -85,6 +87,8 @@ const reduxConfig: ReduxConfig = { readOSReducer, readServiceReducer, hostReadByProbeReducer, + noauthAcceptReducer, + noauthDenyReducer, ], sagaWatchers: [ AsyncRequest, diff --git a/src/ts/@overflow/noauthprobe/react/NoauthProbeList.tsx b/src/ts/@overflow/noauthprobe/react/NoauthProbeList.tsx index d91a1e6..a9901cf 100644 --- a/src/ts/@overflow/noauthprobe/react/NoauthProbeList.tsx +++ b/src/ts/@overflow/noauthprobe/react/NoauthProbeList.tsx @@ -1,32 +1,38 @@ import { connect, Dispatch } from 'react-redux'; import { - NoauthProbeList, - StateProps as NoAuthProbeListStateProps, - DispatchProps as NoAuthProbeListDispatchProps, + NoauthProbeList, + StateProps as NoAuthProbeListStateProps, + DispatchProps as NoAuthProbeListDispatchProps, } from './components/NoauthProbeList'; import Domain from '@overflow/domain/api/model/Domain'; import * as asyncRequestActions from '@overflow/commons/redux/action/asyncRequest'; import * as noauthListActions from '../redux/action/read_all_by_domain'; +import * as denyActions from '../redux/action/deny'; +import * as acceptActions from '../redux/action/accept'; import NoAuthProbe from '@overflow/noauthprobe/api/model/NoAuthProbe'; export function mapStateToProps(state: any): NoAuthProbeListStateProps { - return { - noauthList: state.noauthList, - }; + return { + noauthList: state.noauthList, + }; } export function mapDispatchToProps(dispatch: Dispatch): NoAuthProbeListDispatchProps { - return { - onReadAllByDomain: (domain: Domain) => { - dispatch(asyncRequestActions.request('NoAuthProbeService', 'readAllByDomain', noauthListActions.REQUEST, JSON.stringify(domain))); - }, - registNoAuthProbe: (noauthProbe: NoAuthProbe[]) => { - // dispatch( - // asyncRequestActions.request( - // 'NoAuthProbeService', 'registForNoAuthProbes', noauthListActions.REQUEST, JSON.stringify(noauthProbe)) - // ); - }, - }; + return { + onReadAllByDomain: (domain: Domain) => { + dispatch(asyncRequestActions.request('NoAuthProbeService', 'readAllByDomain', noauthListActions.REQUEST, JSON.stringify(domain))); + }, + acceptNoAuthProbe: (noauthProbes: NoAuthProbe[]) => { + dispatch( + asyncRequestActions.request( + 'NoAuthProbeService', 'acceptNoAuthProbes', acceptActions.REQUEST, JSON.stringify(noauthProbes))); + }, + denyNoAuthProbe: (noauthProbes: NoAuthProbe[]) => { + dispatch( + asyncRequestActions.request( + 'NoAuthProbeService', 'denyNoauthProbes', denyActions.REQUEST, JSON.stringify(noauthProbes))); + }, + }; } export default connect(mapStateToProps, mapDispatchToProps)(NoauthProbeList); diff --git a/src/ts/@overflow/noauthprobe/react/components/NoauthProbeList.tsx b/src/ts/@overflow/noauthprobe/react/components/NoauthProbeList.tsx index 3371637..74556f8 100644 --- a/src/ts/@overflow/noauthprobe/react/components/NoauthProbeList.tsx +++ b/src/ts/@overflow/noauthprobe/react/components/NoauthProbeList.tsx @@ -5,6 +5,9 @@ import { Button, Header, Container, + Modal, + Icon, + List, } from 'semantic-ui-react'; import NoAuthProbe from '@overflow/noauthprobe/api/model/NoAuthProbe'; import Domain from '@overflow/domain/api/model/Domain'; @@ -15,15 +18,18 @@ export interface StateProps { } export interface DispatchProps { - onReadAllByDomain?(domain: Domain):void; - registNoAuthProbe?(noauthProbe: NoAuthProbe[]):void; + onReadAllByDomain?(domain: Domain): void; + acceptNoAuthProbe?(noauthProbe: NoAuthProbe[]): void; + denyNoAuthProbe?(noauthProbe: NoAuthProbe[]): void; } export type Props = StateProps & DispatchProps; export interface State { selected: NoAuthProbe[]; - list: NoAuthProbe[]; + modalVisible: boolean; + actionDisabled: boolean; + isDeny: boolean; } export class NoauthProbeList extends React.Component { @@ -35,14 +41,16 @@ export class NoauthProbeList extends React.Component { super(props, context); this.state = { selected: [], - list: null, + modalVisible: false, + actionDisabled: true, + isDeny: false, }; this.selectedIds = new Array(); } public componentWillMount(): void { let domain: Domain = { - id:1, + id: 1, }; this.props.onReadAllByDomain(domain); } @@ -59,10 +67,8 @@ export class NoauthProbeList extends React.Component { }); } + // tslint:disable-next-line:no-empty public handleSearch = (result: any[]): void => { - this.setState({ - list: result, - }); } public checkExist(probe: NoAuthProbe): boolean { @@ -72,12 +78,34 @@ export class NoauthProbeList extends React.Component { return true; } - public handleAccept(): void { - this.props.registNoAuthProbe(this.state.selected); + public handleActionDisable(): boolean { + if (this.state.selected === null || this.state.selected === undefined) { + return true; + } + if (this.state.selected.length === 0) { + return true; + } + return false; + } + + public handleConfirm(): void { + if (this.state.isDeny) { + console.log('Denied.'); + this.props.denyNoAuthProbe(this.state.selected); + } else { + console.log('Accepted.'); + this.props.acceptNoAuthProbe(this.state.selected); + } + this.setState({ + modalVisible: false, + }); } public handleDeny(): void { - alert(this.state.selected); + this.setState({ + isDeny: true, + modalVisible: true, + }); } public handleRowActive(probe: NoAuthProbe): boolean { @@ -86,6 +114,13 @@ export class NoauthProbeList extends React.Component { } return true; } + public showList(): JSX.Element[] { + return this.state.selected.map((probe: NoAuthProbe, index: number) => ( +
+ {probe.ipAddress} +
+ )); + } public render(): JSX.Element { let noauth = @@ -107,8 +142,33 @@ export class NoauthProbeList extends React.Component { {this.renderRows()} - - + {/* + + + +
+ + Are you sure? + {this.showList()} + + + + + + ; return ( { } } -// this.data = [ -// { -// 'id': '11', -// 'MetaNoAuthProbeStatus': { -// 'name': 'PROCESS', -// }, -// 'hostName': 'insanity windows', -// 'macAddress': '14:fe:b5:9d:54:7e', -// 'ipAddress': '192.168.1.105', -// 'tempProbeKey': '45374d4egsdfw332', -// 'apiKey': '45374d4egsdfw332', -// 'domain': { -// -// }, -// 'probe': { -// -// }, -// }, -// { -// 'id': '22', -// 'MetaNoAuthProbeStatus': { -// 'name': 'PROCESS', -// }, -// 'hostName': 'insanity ubuntu', -// 'macAddress': '14:fe:b5:9d:54:7e', -// 'ipAddress': '192.168.1.105', -// 'tempProbeKey': '45374d4egsdfw332', -// 'apiKey': '45374d4egsdfw332', -// 'domain': { -// -// }, -// 'probe': { -// -// }, -// }, -// { -// 'id': '33', -// 'MetaNoAuthProbeStatus': { -// 'name': 'PROCESS', -// }, -// 'hostName': 'insanity ubuntu', -// 'macAddress': '14:fe:b5:9d:54:7e', -// 'ipAddress': '192.168.1.105', -// 'tempProbeKey': '45374d4egsdfw332', -// 'apiKey': '45374d4egsdfw332', -// 'domain': { -// -// }, -// 'probe': { -// -// }, -// }, -// ]; - diff --git a/src/ts/@overflow/noauthprobe/redux/action/accept.ts b/src/ts/@overflow/noauthprobe/redux/action/accept.ts new file mode 100644 index 0000000..1b9fae1 --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/action/accept.ts @@ -0,0 +1,7 @@ +export type REQUEST = '@overflow/noAuthProbe/accept/REQUEST'; +export type REQUEST_SUCCESS = '@overflow/noAuthProbe/accept/REQUEST/SUCCESS'; +export type REQUEST_FAILURE = '@overflow/noAuthProbe/accept/REQUEST/FAILURE'; + +export const REQUEST: REQUEST = '@overflow/noAuthProbe/accept/REQUEST'; +export const REQUEST_SUCCESS: REQUEST_SUCCESS = '@overflow/noAuthProbe/accept/REQUEST/SUCCESS'; +export const REQUEST_FAILURE: REQUEST_FAILURE = '@overflow/noAuthProbe/accept/REQUEST/FAILURE'; diff --git a/src/ts/@overflow/noauthprobe/redux/action/deny.ts b/src/ts/@overflow/noauthprobe/redux/action/deny.ts new file mode 100644 index 0000000..6196aab --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/action/deny.ts @@ -0,0 +1,8 @@ +export type REQUEST = '@overflow/noAuthProbe/deny/REQUEST'; +export type REQUEST_SUCCESS = '@overflow/noAuthProbe/deny/REQUEST/SUCCESS'; +export type REQUEST_FAILURE = '@overflow/noAuthProbe/deny/REQUEST/FAILURE'; + +export const REQUEST: REQUEST = '@overflow/noAuthProbe/deny/REQUEST'; +export const REQUEST_SUCCESS: REQUEST_SUCCESS = '@overflow/noAuthProbe/deny/REQUEST/SUCCESS'; +export const REQUEST_FAILURE: REQUEST_FAILURE = '@overflow/noAuthProbe/deny/REQUEST/FAILURE'; + diff --git a/src/ts/@overflow/noauthprobe/redux/action/read.ts b/src/ts/@overflow/noauthprobe/redux/action/read.ts deleted file mode 100644 index e1f394a..0000000 --- a/src/ts/@overflow/noauthprobe/redux/action/read.ts +++ /dev/null @@ -1,43 +0,0 @@ -import Action from '@overflow/commons/redux/Action'; -import NoAuthProbe from '../..//api/model/NoAuthProbe'; - -import ReadPayload from '../payload/ReadPayload'; - -// Action Type -export type REQUEST = '@overflow/noAuthProbe/read/REQUEST'; -export type REQUEST_SUCCESS = '@overflow/noAuthProbe/read/REQUEST_SUCCESS'; -export type REQUEST_FAILURE = '@overflow/noAuthProbe/read/REQUEST_FAILURE'; - -export const REQUEST: REQUEST = '@overflow/noAuthProbe/read/REQUEST'; -export const REQUEST_SUCCESS: REQUEST_SUCCESS = '@overflow/noAuthProbe/read/REQUEST_SUCCESS'; -export const REQUEST_FAILURE: REQUEST_FAILURE = '@overflow/noAuthProbe/read/REQUEST_FAILURE'; - -// Action Creater -export type request = (id: number) => Action; -export type requestSuccess = (noAuthProbe: NoAuthProbe) => Action; -export type requestFailure = (error: Error) => Action; - - - -export const request: request = (id: number): Action => { - return { - type: REQUEST, - payload: { - id:id, - }, - }; -}; - -export const requestSuccess: requestSuccess = (noAuthProbe: NoAuthProbe): Action => { - return { - type: REQUEST_SUCCESS, - payload: noAuthProbe, - }; -}; - -export const requestFailure: requestFailure = (error: Error): Action => { - return { - type: REQUEST_FAILURE, - error: error, - }; -}; diff --git a/src/ts/@overflow/noauthprobe/redux/action/regist.ts b/src/ts/@overflow/noauthprobe/redux/action/regist.ts deleted file mode 100644 index 9ba9848..0000000 --- a/src/ts/@overflow/noauthprobe/redux/action/regist.ts +++ /dev/null @@ -1,43 +0,0 @@ -import Action from '@overflow/commons/redux/Action'; -import NoAuthProbe from '../..//api/model/NoAuthProbe'; - -import RegistPayload from '../payload/RegistPayload'; - -// Action Type -export type REQUEST = '@overflow/noAuthProbe/regist/REQUEST'; -export type REQUEST_SUCCESS = '@overflow/noAuthProbe/regist/REQUEST_SUCCESS'; -export type REQUEST_FAILURE = '@overflow/noAuthProbe/regist/REQUEST_FAILURE'; - -export const REQUEST: REQUEST = '@overflow/noAuthProbe/regist/REQUEST'; -export const REQUEST_SUCCESS: REQUEST_SUCCESS = '@overflow/noAuthProbe/regist/REQUEST_SUCCESS'; -export const REQUEST_FAILURE: REQUEST_FAILURE = '@overflow/noAuthProbe/regist/REQUEST_FAILURE'; - -// Action Creater -export type request = (noAuthProbe: NoAuthProbe) => Action; -export type requestSuccess = (noAuthProbe: NoAuthProbe) => Action; -export type requestFailure = (error: Error) => Action; - - - -export const request: request = (noAuthProbe: NoAuthProbe): Action => { - return { - type: REQUEST, - payload: { - noAuthProbe:noAuthProbe, - }, - }; -}; - -export const requestSuccess: requestSuccess = (noAuthProbe: NoAuthProbe): Action => { - return { - type: REQUEST_SUCCESS, - payload: noAuthProbe, - }; -}; - -export const requestFailure: requestFailure = (error: Error): Action => { - return { - type: REQUEST_FAILURE, - error: error, - }; -}; diff --git a/src/ts/@overflow/noauthprobe/redux/payload/AcceptPayload.ts b/src/ts/@overflow/noauthprobe/redux/payload/AcceptPayload.ts new file mode 100644 index 0000000..e208763 --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/payload/AcceptPayload.ts @@ -0,0 +1,7 @@ +import NoAuthProbe from '../../api/model/NoAuthProbe'; + +interface AcceptPayload { + noAuthProbes: NoAuthProbe[]; +} + +export default AcceptPayload; diff --git a/src/ts/@overflow/noauthprobe/redux/payload/DenyPayload.ts b/src/ts/@overflow/noauthprobe/redux/payload/DenyPayload.ts new file mode 100644 index 0000000..bfcbd4a --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/payload/DenyPayload.ts @@ -0,0 +1,7 @@ +import NoAuthProbe from '../../api/model/NoAuthProbe'; + +interface DenyPayload { + noAuthProbes: NoAuthProbe[]; +} + +export default DenyPayload; diff --git a/src/ts/@overflow/noauthprobe/redux/payload/ReadPayload.ts b/src/ts/@overflow/noauthprobe/redux/payload/ReadPayload.ts deleted file mode 100644 index 7fda332..0000000 --- a/src/ts/@overflow/noauthprobe/redux/payload/ReadPayload.ts +++ /dev/null @@ -1,7 +0,0 @@ - - -interface ReadPayload { - id: number; -} - -export default ReadPayload; diff --git a/src/ts/@overflow/noauthprobe/redux/payload/RegistPayload.ts b/src/ts/@overflow/noauthprobe/redux/payload/RegistPayload.ts deleted file mode 100644 index 3a13ee0..0000000 --- a/src/ts/@overflow/noauthprobe/redux/payload/RegistPayload.ts +++ /dev/null @@ -1,7 +0,0 @@ -import NoAuthProbe from '../../api/model/NoAuthProbe'; - -interface RegistPayload { - noAuthProbe: NoAuthProbe; -} - -export default RegistPayload; diff --git a/src/ts/@overflow/noauthprobe/redux/reducer/accept.ts b/src/ts/@overflow/noauthprobe/redux/reducer/accept.ts new file mode 100644 index 0000000..2be21c7 --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/reducer/accept.ts @@ -0,0 +1,24 @@ +import Action from '@overflow/commons/redux/Action'; +import { ReducersMapObject } from 'redux'; +import NoAuthProbe from '@overflow/noauthprobe/api/model/NoAuthProbe'; + +import * as AcceptActionTypes from '../action/accept'; +import AcceptState, { defaultState as acceptDefaultState } from '../state/Accept'; + +const reducer: ReducersMapObject = { + [AcceptActionTypes.REQUEST_SUCCESS]: + (state: AcceptState = acceptDefaultState, action: Action): + AcceptState => { + return { + ...state, + noauthList: action.payload, + }; + }, + [AcceptActionTypes.REQUEST_FAILURE]: + (state: AcceptState = acceptDefaultState, action: Action): + AcceptState => { + return state; + }, +}; + +export default reducer; diff --git a/src/ts/@overflow/noauthprobe/redux/reducer/deny.ts b/src/ts/@overflow/noauthprobe/redux/reducer/deny.ts new file mode 100644 index 0000000..b3fe38a --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/reducer/deny.ts @@ -0,0 +1,24 @@ +import Action from '@overflow/commons/redux/Action'; +import { ReducersMapObject } from 'redux'; +import NoAuthProbe from '@overflow/noauthprobe/api/model/NoAuthProbe'; + +import * as DenyActionTypes from '../action/deny'; +import DenyState, { defaultState as denyDefaultState } from '../state/Deny'; + +const reducer: ReducersMapObject = { + [DenyActionTypes.REQUEST_SUCCESS]: + (state: DenyState = denyDefaultState, action: Action): + DenyState => { + return { + ...state, + noauthList: action.payload, + }; + }, + [DenyActionTypes.REQUEST_FAILURE]: + (state: DenyState = denyDefaultState, action: Action): + DenyState => { + return state; + }, +}; + +export default reducer; diff --git a/src/ts/@overflow/noauthprobe/redux/reducer/read.ts b/src/ts/@overflow/noauthprobe/redux/reducer/read.ts deleted file mode 100644 index 5c15c15..0000000 --- a/src/ts/@overflow/noauthprobe/redux/reducer/read.ts +++ /dev/null @@ -1,3 +0,0 @@ -/** - * Created by geek on 17. 7. 3. - */ diff --git a/src/ts/@overflow/noauthprobe/redux/reducer/read_all_by_domain.ts b/src/ts/@overflow/noauthprobe/redux/reducer/read_all_by_domain.ts index 19bd961..ac79db7 100644 --- a/src/ts/@overflow/noauthprobe/redux/reducer/read_all_by_domain.ts +++ b/src/ts/@overflow/noauthprobe/redux/reducer/read_all_by_domain.ts @@ -1,6 +1,3 @@ -/** - * Created by geek on 17. 7. 3. - */ import Action from '@overflow/commons/redux/Action'; import { ReducersMapObject } from 'redux'; import NoAuthProbe from '@overflow/noauthprobe/api/model/NoAuthProbe'; diff --git a/src/ts/@overflow/noauthprobe/redux/reducer/regist.ts b/src/ts/@overflow/noauthprobe/redux/reducer/regist.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/ts/@overflow/noauthprobe/redux/state/Accept.ts b/src/ts/@overflow/noauthprobe/redux/state/Accept.ts new file mode 100644 index 0000000..288a6ed --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/state/Accept.ts @@ -0,0 +1,13 @@ +import NoAuthProbe from '../../api/model/NoAuthProbe'; + +export interface State { + readonly noauthList?: NoAuthProbe[]; + readonly error?: Error; +} + +export const defaultState: State = { + noauthList: undefined, + error: undefined, +}; + +export default State; diff --git a/src/ts/@overflow/noauthprobe/redux/state/Deny.ts b/src/ts/@overflow/noauthprobe/redux/state/Deny.ts new file mode 100644 index 0000000..288a6ed --- /dev/null +++ b/src/ts/@overflow/noauthprobe/redux/state/Deny.ts @@ -0,0 +1,13 @@ +import NoAuthProbe from '../../api/model/NoAuthProbe'; + +export interface State { + readonly noauthList?: NoAuthProbe[]; + readonly error?: Error; +} + +export const defaultState: State = { + noauthList: undefined, + error: undefined, +}; + +export default State; diff --git a/src/ts/@overflow/noauthprobe/redux/state/Read.ts b/src/ts/@overflow/noauthprobe/redux/state/Read.ts deleted file mode 100644 index 5c15c15..0000000 --- a/src/ts/@overflow/noauthprobe/redux/state/Read.ts +++ /dev/null @@ -1,3 +0,0 @@ -/** - * Created by geek on 17. 7. 3. - */ diff --git a/src/ts/@overflow/noauthprobe/redux/state/Regist.ts b/src/ts/@overflow/noauthprobe/redux/state/Regist.ts deleted file mode 100644 index 5c15c15..0000000 --- a/src/ts/@overflow/noauthprobe/redux/state/Regist.ts +++ /dev/null @@ -1,3 +0,0 @@ -/** - * Created by geek on 17. 7. 3. - */