{"version":3,"sources":["components/pages/pagesTable.js","components/comps/ckEditor.js","components/comps/formBar.js","components/pages/pagesForm.js","store/types.js","config/config.js","store/actions/snackBarActions.js","components/pages/pages.js","store/actions/pagesActions.js","components/headlines/headlinesTable.js","components/headlines/headlinesForm.js","components/headlines/headlines.js","store/actions/headlinesActions.js","components/history/historyTable.js","components/history/historyForm.js","components/history/history.js","store/actions/historyActions.js","components/rockInfo/rockInfoTable.js","components/rockInfo/rockInfoForm.js","components/rockInfo/rockInfo.js","store/actions/rockInfoActions.js","components/news/newsTable.js","components/news/newsForm.js","store/actions/fileActions.js","components/news/news.js","store/actions/newsActions.js","config/const.js","components/todayinmusic/todayInMusicTable.js","components/todayinmusic/todayInMusicForm.js","components/todayinmusic/todayInMusic.js","store/actions/timActions.js","components/banners/bannersTable.js","components/comps/genericInputDlg.js","components/banners/banners.js","store/actions/bannerActions.js","components/albums/albumsTable.js","components/albums/albumsForm.js","components/albums/albums.js","store/actions/albumsActions.js","components/playlist/playlistItemDlg.js","components/playlist/playlist.js","store/actions/playlistActions.js","components/photoGallery/galleryItemDlg.js","components/photoGallery/photoGallery.js","store/actions/photoGalleryActions.js","components/rockLegends/rockLegendsTable.js","components/rockLegends/rockLgendsForm.js","components/rockLegends/rockLegends.js","store/actions/rockLegendsActions.js","components/top20/top20ItemDlg.js","components/top20/top20.js","store/actions/top20Actions.js","store/reducers/authReducer.js","store/reducers/pagesReducer.js","store/reducers/headlinesReducer.js","store/reducers/snackBarReducer.js","store/reducers/historyReducer.js","store/reducers/rockInfoReducer.js","store/reducers/newsReducer.js","store/reducers/timReducer.js","store/reducers/bannerReducer.js","store/reducers/albumsReducer.js","store/reducers/playlistsReducer.js","store/reducers/photoGalleryReducer.js","store/reducers/rockLegendsReducer.js","store/reducers/top20Reducer.js","store/reducers/rootReducer.js","store/store.js","util/auth.js","store/actions/authActions.js","components/layout/appLayout.js","components/layout/loginLayout.js","components/comps/Notifier.js","theme/darkCustom.js","hoc/requireAuth.js","App.js","serviceWorker.js","index.js"],"names":["PagesTable","state","value","onRowClick","event","rowData","_this","props","onButtonClick","eventHandler","currentTarget","name","onAdd","onDelete","data","_this2","this","hidden","_this$props","pages","classes","react_default","a","createElement","className","root","material_table_default","title","columns","field","editable","options","pageSize","pageSizeOptions","actions","disabled","icon","isFreeAction","onClick","onRowDelete","oldData","Promise","resolve","reject","React","Component","withStyles","width","minWidth","display","& th","color","backgroundColor","height","fontSize","& tr td:first-child","& tfoot tr td:first-child","titleButton","marginLeft","withTheme","connect","dispatch","CkEditor","ckeditor_default","onChange","config","filebrowserBrowseUrl","filebrowserUploadUrl","uiColor","formatOutput","allowedContent","stylesSet","window","editorStyles","contentsCss","FormBar","index_es","disableGutters","toolbarButton","onFormBack","variant","tollbarText","PureComponent","theme","minHeight","borderBottom","flexGrow","textAlign","marginRight","PagesForm","content","editMode","onFormEvent","id","setState","Object","objectSpread","defineProperty","target","editor","getData","nextProps","editorData","onEditorChange","handleEditorChange","bind","formBar","margin","fullWidth","htmlFor","type","handleChange","buttons","button","maxWidth","borderRadius","background","padding","& a span","spacing","unit","NOTIFIERS","STATES","LIST","EDIT","BackendSettings","enqueueSnackbar","notification","key","Date","getTime","Math","random","autoHideDuration","removeSnackbar","Pages","getPage","eventName","setPageEditState","updatePage","addPage","deletePage","getPages","resetState","pagesTable","currentState","pagesForm","editPage","getState","axios","get","then","response","payload","catch","err","message","arguments","length","undefined","getPage_a","newState","setPageEditState_a","post","status","updatePage_a","addPage_a","deletePage_a","HeadlinesTable","headlines","render","publish","HeadlinesForm","checked","display_order","date","toJSON","slice","replace","row","label","textField","defaultValue","InputLabelProps","shrink","labelPlacement","control","marginTop","formLabel","Headlines","getHeadline","setHeadlineEditState","updateHeadline","addHeadline","deleteHeadline","getHeadlines","headlinesTable","headlinesForm","editHeadline","getHeadline_a","setHeadlineEditState_a","updateHeadline_a","addHeadline_a","deleteHeadline_a","HistoryTable","histories","HistoryForm","History","getHistory","setHistoryEditState","updateHistory","addHistory","deleteHistory","getHistories","historyTable","history","historyForm","editHistory","getHistory_a","setHistoryEditState_a","updateHistory_a","addHistory_a","deleteHistory_a","RockInfoTable","RockInfoForm","console","log","RockInfo","getRockInfo","setRockInfoEditState","updateRockInfo","addRockInfo","deleteRockInfo","getRockInfos","rockInfoTable","rockInfo","info","rockInfoForm","editInfo","getRockInfo_a","setRockInfoEditState_a","updateRockInfo_a","addRockInfo_a","deleteRockInfo_a","NewsTable","src","image","listImage","filtering","isSticky","maxHeight","NewsForm","content_short","resetStateData","fileName","onDrop","acceptedFiles","rejectedFiles","uploadImage","imageDrop","rootLeft","multiline","rowsMax","dist_es","_ref","getRootProps","rootRight","& textarea","& input","float","uploadImage_a","file","context","formData","FormData","append","headers","content-type","News","getNewsDetails","setNewsEditState","updateNews","addNews","deleteNews","getNews","newsTable","news","newsForm","editNews","getNewsDetails_a","setNewsEditState_a","updateNews_a","addNews_a","deleteNews_a","monthNames","TodayInMusicTable","TodayInMusicForm","TodayInMusic","getTIM","setTIMEditState","updateTIM","getTIMAll","todayInMusicTable","todayInMusic","todayInMusicForm","editData","getTIM_a","setTIMEditState_a","updateTIM_a","BannersTable","GenericInputDlg","onCancel","onOk","dlgSettings","handleInputChange","Dialog_default","open","onClose","aria-labelledby","DialogTitle_default","dialogTitle","DialogContent_default","autoFocus","InputProps","input","textArea","DialogActions_default","Button_default","fontWeight","Banners","editDlgSettings","getBanner","setBannerEditState","updateBanner","addBanner","deleteBanner","getBanners","genericInputDlg","banners","bannersTable","getBanner_a","setBannerEditState_a","updateBanner_a","addBanner_a","deleteBanner_a","AlbumsTable","AlbumsForm","alt","Albums","getAlbum","setAlbumEditState","updateAlbum","addAlbum","deleteAlbum","getAlbums","albumsTable","albums","albumsForm","getAlbum_a","setAlbumEditState_a","updateAlbum_a","addAlbum_a","deleteAlbum_a","PlaylistItemDlg","subtitle","short_description","url","prevProps","prevState","snapshot","innerLeft","innerRight","paddingTop","Playlist","onCategoryRowClick","getPlaylistCategory","onAddCategory","addCategory","onAddSubcategory","parentId","playlist","currentCategoryId","onAddPlaylistItem","setPlaylistEditState","onEditPlaylistItem","newData","updatePlaylistItem","onDeletePlaylistItem","deletePlaylistItem","onSubcategoryClick","getPlaylist","deleteCategory","parent_id","onRowPlaylistItemClick","getPlaylistItem","currentSubcategoryId","addPlaylistItem","catName","subCatData","playlistData","currentPlaylist","i","categories","playlistItemDlg","readonly","searchFieldStyle","rowStyle","onRowAdd","onRowUpdate","onEdit","rootCenter","search","detailPanel","frameborder","allow","allowFullScreen","marginBottom","playlists","setCurrent","categoryId","getPlaylistCategory_a","addCategory_a","deleteCategory_a","updateCategory","updateCategory_a","getPlaylist_a","addPlaylistItem_a","deletePlaylistItem_a","updatePlaylistItem_a","getPlaylistItem_a","GalleryItemDlg","PhotoGallery","onCategoryEdit","onCategoryDelete","getPhotoGallery","onDeleteGalleryImage","deleteGalleryImage","onAddImage","setGalleryEditState","gallery_id","galleries","addGalleryImage","getCategories","galleryItemDlg","currentGallery","getPhotoCategories_a","addPhotoCategory_a","updatePhotoCategory_a","getPhotoGallery_a","itemId","addGalleryImage_a","setGalleryEditState_a","RockLegendsTable","RockLegendsForm","getRockLegend","setRockLegendEditState","updateRockLegend","addRockLegend","deleteRockLegend","getRockLegends","rockLegendsTable","rockLegends","rockLgendsForm","getRockLegend_a","setRockLegendEditState_a","updateRockLegend_a","addRockLegend_a","deleteRockLegend_a","Top20ItemDlg","artist","song","votes","active","previousMonth","previous2Months","monthsInTop","totalVotes","nextContext","Top20","subCatName","listData","getTop20Category","onDeleteCategory","onEditCategory","getTop20Items","onTopItemClick","getTop20Item","onAddTop20Item","setTop20EditState","onDeleteTop20Item","deleteTop20Item","updateTop20Item","top20","addTop20Item","smallColumns","cellStyle","headerStyle","currentList","top20ItemDlg","tableContainer","tableColumn","paging","style","tableLayout","frameBorder","flexDirection","getTop20Category_a","getTop20Items_a","getTop20Item_a","updateTop20Item_a","deleteTop20Item_a","addTop20Item_a","initState","authenticated","userInfo","loading","error","authReducer","action","isEmpty","user","modules","pagesReducer","concat","toConsumableArray","item","filter","newPages","map","page","headlinesReducer","newHeadlines","headline","notifications","snackBarReducer","historyReducer","newHistory","history_","rockInfoReducer","info_","newInfo","newsReducer","newNews","fileUrl","timReducer","bannerReducer","data_","albumsReducer","playlistReducer","items","newItems","push","newSubCategories","j","photoGalleryReducer","galleryId","gallery","newCategories","rockLegendsReducer","top20Reducer","rootReducer","combineReducers","userState","playlistsReducer","store","createStore","applyMiddleware","thunk","localStorage","kptv","setAuthorizationToken","decodedToken","jwt","decode","removeItem","ex","token","defaults","common","interceptors","use","AppLayout","leftDrawerOpen","toggleLeftDrawer","onLogout","logout","_classNames3","_classNames4","CssBaseline_default","AppBar_default","position","classNames","appBar","appBarShift","Toolbar_default","IconButton_default","aria-label","menuButton","hide","Menu_default","Typography_default","noWrap","logoutButton","drawer","drawerOpen","drawerClose","paper","toolbar","ChevronLeft_default","Divider_default","List_default","Link","to","ListItem_default","Icon_default","ListItemText_default","primary","Switch","Route","path","component","RockLegends","& a","textDecoration","zIndex","transition","transitions","create","easing","sharp","duration","leavingScreen","enteringScreen","flexShrink","whiteSpace","overflowX","breakpoints","up","alignItems","justifyContent","mixins","paddingLeft","textShadow","LoginLayout","userName","password","onLogin","login","handlePasswordChange","handleUserNameChange","router","react","close","TextField_default","contextTypes","PropTypes","object","credentials","username","setItem","tokenDecoded","login_a","Notifier","displayed","storeDisplayed","_ref$notifications","newSnacks","currentSnacks","notExists","_loop","_ref2","_this$props$notificat","forEach","includes","bindActionCreators","withSnackbar","darkCustom","palette","overrides","MuiButton","textPrimary","requireAuth","ComposedComponent","Authentication","_Component","classCallCheck","possibleConstructorReturn","getPrototypeOf","apply","inherits","createClass","App","BrowserRouter","basename","core_styles","createMuiTheme","comps_Notifier","exact","Boolean","location","hostname","match","ReactDOM","es","build","maxSnack","src_App_0","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.8175ebc0.chunk.js","sourcesContent":["import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\n\r\nconst styles = () => ({\r\n root: {\r\n width: '100%',\r\n minWidth: 600,\r\n display: \"inline-block\",\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass PagesTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {pages, classes} = this.props;\r\n\r\n return (\r\n
\r\n \r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(PagesTable));\r\n","import React from 'react';\r\nimport CKEditor from 'ckeditor4-react';\r\n\r\nexport function CkEditor(props) {\r\n return (\r\n props.onChange(event)}\r\n config={\r\n {\r\n filebrowserBrowseUrl: '/browser/browse.php',\r\n filebrowserUploadUrl: '/uploader/upload.php',\r\n uiColor: '#f4f4f4',\r\n height: 500,\r\n formatOutput: false,\r\n allowedContent: true,\r\n stylesSet: window.editorStyles,\r\n // contentsCss: 'http://localhost/chkskin/editor.css' // Local\r\n contentsCss : 'http://127.0.0.1/kptv_site/admin/chkskin/editor.css' // Prod\r\n }\r\n }\r\n />\r\n )\r\n}","import React from 'react';\r\nimport {Button, Icon, Toolbar, Typography} from \"@material-ui/core\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n minHeight: \"20px !important\",\r\n //background: \"#4c4200\",\r\n borderBottom: \"1px dotted #555\",\r\n color: \"white\"\r\n },\r\n\r\n tollbarText: {\r\n flexGrow: 1,\r\n textAlign: \"center\",\r\n marginLeft: \"-75px !important\",\r\n color: \"white\"\r\n },\r\n\r\n toolbarButton: {\r\n marginRight: 5,\r\n width: 20,\r\n minWidth: 20,\r\n color: \"white\"\r\n },\r\n});\r\n\r\nclass FormBar extends React.PureComponent {\r\n render() {\r\n const {classes} = this.props;\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(FormBar);","import React from 'react';\r\nimport {Button, FormControl, Input, InputLabel} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n }\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass PagesForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange(event) {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n title: nextProps.data.title,\r\n id: nextProps.data.id,\r\n content: nextProps.data.content\r\n });\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: ''\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n\r\n\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Page Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(PagesForm);","// ACTIONS AND NOTIFIERS\r\n\r\n/*\r\nADD_PROJECT: 1 - action \r\n+ 1 STARTED\r\n+ 2 COMPLETED\r\n+ 3 ERROR\r\n*/\r\n\r\nexport const NOTIFIERS = {\r\n SET_TOP20_IMAGE_UPLOAD: -10,\r\n SET_PLAYLIST_IMAGE_UPLOAD: -9,\r\n SET_ROCKLEGEND_IMAGE_UPLOAD: -8,\r\n SET_ALBUM_IMAGE_UPLOAD: -7,\r\n SET_NEWS_IMAGE_UPLOAD: -6,\r\n SET_NEWS_EDIT_STATE: -5,\r\n SET_ROCKINFO_EDIT_STATE: -5,\r\n SET_HISTORY_EDIT_STATE: -4,\r\n SET_HEADLINE_EDIT_STATE: -3,\r\n SET_PAGE_EDIT_STATE: -2,\r\n SET_CONTEXT: -1,\r\n\r\n\r\n GET_PAGES: 0,\r\n GET_PAGE: 4,\r\n ADD_PAGE: 8,\r\n UPDATE_PAGE: 12,\r\n DELETE_PAGE: 16,\r\n RESET_PAGES_STATE: 17,\r\n\r\n GET_HEADLINES: 24,\r\n GET_HEADLINE: 28,\r\n ADD_HEADLINE: 32,\r\n UPDATE_HEADLINE: 36,\r\n DELETE_HEADLINE: 40,\r\n RESET_HEADLINES_STATE: 41,\r\n\r\n GET_HISTORIES: 48,\r\n GET_HISTORY: 52,\r\n ADD_HISTORY: 56,\r\n UPDATE_HISTORY: 60,\r\n DELETE_HISTORY: 64,\r\n RESET_HISTORY_STATE: 65,\r\n\r\n\r\n GET_ROCKINFOS: 72,\r\n GET_ROCKINFO: 76,\r\n ADD_ROCKINFO: 80,\r\n UPDATE_ROCKINFO: 84,\r\n DELETE_ROCKINFO: 88,\r\n RESET_ROCKINFO_STATE: 89,\r\n\r\n GET_NEWS: 96,\r\n GET_NEWS_DETAILS: 100,\r\n ADD_NEWS: 104,\r\n UPDATE_NEWS: 108,\r\n DELETE_NEWS: 112,\r\n RESET_NEWS_STATE: 113,\r\n\r\n GET_TIM: 120,\r\n UPDATE_TIM: 124,\r\n GET_TIM_DETAIL: 128,\r\n SET_TIM_EDIT_STATE: 132,\r\n RESET_TIM_STATE: 133,\r\n\r\n GET_BANNERS: 140,\r\n GET_BANNER: 144,\r\n UPDATE_BANNER: 148,\r\n ADD_BANNER: 152,\r\n DELETE_BANNER: 156,\r\n SET_BANNER_EDIT_STATE: 160,\r\n\r\n GET_ALBUMS: 168,\r\n ADD_ALBUM: 172,\r\n DELETE_ALBUM: 176,\r\n UPDATE_ALBUM: 180,\r\n GET_ALBUM: 184,\r\n SET_ALBUM_EDIT_STATE: 188,\r\n RESET_ALBUMS_STATE: 195,\r\n\r\n\r\n GET_PLAYLIST_CATEGORY: 196,\r\n ADD_PLAYLIST_CATEGORY: 200,\r\n DELETE_PLAYLIST_CATEGORY: 204,\r\n UPDATE_PLAYLIST_CATEGORY: 208,\r\n GET_PLAYLIST: 212,\r\n ADD_PLAYLIST_ITEM: 216,\r\n DELETE_PLAYLIST_ITEM: 220,\r\n UPDATE_PLAYLIST_ITEM: 224,\r\n RESET_PLAYLISTS_STATE: 228,\r\n SET_PLAYLIST_EDIT_STATE: 232,\r\n GET_PLAYLIST_ITEM: 236,\r\n\r\n RESET_TOP20_STATE: 250,\r\n SET_TOP20_EDIT_STATE: 254,\r\n GET_TOP20_CATEGORY: 258,\r\n ADD_TOP20_CATEGORY: 262,\r\n DELETE_TOP20_CATEGORY: 266,\r\n UPDATE_TOP20_CATEGORY: 270,\r\n GET_TOP20_ITEMS: 274,\r\n GET_TOP20_ITEM: 278,\r\n UPDATE_TOP20_ITEM: 282,\r\n DELETE_TOP20_ITEM: 286,\r\n ADD_TOP20_ITEM: 290,\r\n\r\n\r\n GET_PHOTO_CATEGORIES: 332,\r\n ADD_PHOTO_CATEGORY: 336,\r\n DELETE_PHOTO_CATEGORY: 340,\r\n UPDATE_PHOTO_CATEGORY: 344,\r\n GET_PHOTO_GALLERY: 348,\r\n DELETE_GALLERY_IMAGE: 352,\r\n SET_GALLERY_EDIT_STATE: 356,\r\n SET_GALLERY_IMAGE_UPLOAD: 360,\r\n RESET_PHOTO_STATE: 364,\r\n ADD_GALLERY_IMAGE: 368,\r\n\r\n GET_ROCKLEGENDS: 400,\r\n ADD_ROCKLEGEND: 404,\r\n DELETE_ROCKLEGEND: 408,\r\n UPDATE_ROCKLEGEND: 412,\r\n GET_ROCKLEGEND: 416,\r\n SET_ROCKLEGEND_EDIT_STATE: 420,\r\n RESET_ROCKLEGEND_STATE: 424,\r\n\r\n LOGIN: 500,\r\n LOGOUT: 540,\r\n\r\n}\r\n\r\nexport const STATES = {\r\n LIST: 1,\r\n EDIT: 2\r\n}\r\n","// Local\r\n// export const BackendSettings = {\r\n // baseUrl: \"http://localhost/admin2/services/\",\r\n // baseUrlAssets: \"http://localhost/assets\",\r\n // baseImagesUrl: \"http://localhost/images/\"\r\n// }\r\n\r\n// PROD - testsite\r\nexport const BackendSettings = {\r\n baseUrl : \"http://176.126.237.165/kptv/admin2/services/\",\r\n baseUrlAssets: \"http://testsite.kptv.ro/radio/ro/assets\",\r\n baseImagesUrl: \"http://176.126.237.165/kptv/images/\"\r\n}","export const enqueueSnackbar = (notification) => {\r\n return {\r\n type: 'ENQUEUE_SNACKBAR',\r\n notification: {\r\n key: new Date().getTime() + Math.random(),\r\n ...notification,\r\n autoHideDuration: 1000\r\n }\r\n }\r\n};\r\n\r\nexport const removeSnackbar = key => ({\r\n type: 'REMOVE_SNACKBAR',\r\n key,\r\n});","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport PagesTable from './pagesTable';\r\nimport PagesForm from './pagesForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addPage_a,\r\n deletePage_a,\r\n getPage_a,\r\n getPages_a,\r\n resetState_a,\r\n setPageEditState_a,\r\n updatePage_a\r\n} from '../../store/actions/pagesActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Pages extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getPages();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getPage(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setPageEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updatePage(data);\r\n } else {\r\n this.props.addPage(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n //console.log(\"DELETE DATA\", data);\r\n this.props.deletePage(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setPageEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n pages: state.pages\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getPages: (data) => dispatch(getPages_a()),\r\n getPage: (id, editMode) => dispatch(getPage_a(id, editMode)),\r\n setPageEditState: (state) => dispatch(setPageEditState_a(state)),\r\n updatePage: (data) => dispatch(updatePage_a(data)),\r\n addPage: (data) => dispatch(addPage_a(data)),\r\n deletePage: (id) => dispatch(deletePage_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Pages));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getPages_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PAGES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"pages\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PAGES + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PAGES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getPage_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PAGE + 1});\r\n return axios.get(BackendSettings.baseUrl + \"page/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PAGE + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PAGE + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updatePage_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePage\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addPage_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPage\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deletePage_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePage\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_PAGES_STATE, newState: state};\r\n}\r\n\r\nexport const setPageEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_PAGE_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n width: '100%',\r\n minWidth: 1200,\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass HeadlinesTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {headlines, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n }\r\n },\r\n {title: 'Display Order', field: 'display_order'}\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(HeadlinesTable));","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n\r\n formLabel: {\r\n marginLeft: 0,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass HeadlinesForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n display_order: nextProps.data.display_order,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date\r\n });\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: '',\r\n display_order: 1,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-')\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n date: this.state.date\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Headline Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n this.handleChange(event)}\r\n margin=\"normal\"/>\r\n this.handleChange(event)}/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(HeadlinesForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport HeadlinesTable from './headlinesTable'\r\nimport HeadlinesForm from './headlinesForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addHeadline_a,\r\n deleteHeadline_a,\r\n getHeadline_a,\r\n getHeadlines_a,\r\n resetState_a,\r\n setHeadlineEditState_a,\r\n updateHeadline_a\r\n} from '../../store/actions/headlinesActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Headlines extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getHeadlines();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getHeadline(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setHeadlineEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateHeadline(data);\r\n } else {\r\n this.props.addHeadline(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteHeadline(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setHeadlineEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n headlines: state.headlines\r\n }\r\n}\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getHeadlines: (data) => dispatch(getHeadlines_a()),\r\n getHeadline: (id, editMode) => dispatch(getHeadline_a(id, editMode)),\r\n setHeadlineEditState: (state) => dispatch(setHeadlineEditState_a(state)),\r\n updateHeadline: (data) => dispatch(updateHeadline_a(data)),\r\n addHeadline: (data) => dispatch(addHeadline_a(data)),\r\n deleteHeadline: (id) => dispatch(deleteHeadline_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Headlines));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getHeadlines_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"headlines\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINES + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HEADLINES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getHeadline_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINE + 1});\r\n return axios.get(BackendSettings.baseUrl + \"headline/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HEADLINE + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HEADLINE + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateHeadline_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_HEADLINE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateHeadline\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HEADLINE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HEADLINE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addHeadline_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_HEADLINE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addHeadline\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HEADLINE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HEADLINE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteHeadline_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_HEADLINE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteHeadline\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HEADLINE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HEADLINE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_HEADLINES_STATE, newState: state};\r\n}\r\n\r\nexport const setHeadlineEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_HEADLINE_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1400,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass HistoryTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {histories, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n }\r\n },\r\n {title: 'Display Order', field: 'display_order'}\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(HistoryTable));","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n\r\n formLabel: {\r\n marginLeft: 0,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass HistoryForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n // TODO CHANGE THIS\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n display_order: nextProps.data.display_order,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date\r\n });\r\n\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: '',\r\n display_order: 1,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-')\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n date: this.state.date\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n this.handleChange(event)}\r\n margin=\"normal\"/>\r\n this.handleChange(event)}/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(HistoryForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport HistoryTable from './historyTable'\r\nimport HistoryForm from './historyForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addHistory_a,\r\n deleteHistory_a,\r\n getHistories_a,\r\n getHistory_a,\r\n resetState_a,\r\n setHistoryEditState_a,\r\n updateHistory_a\r\n} from '../../store/actions/historyActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass History extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getHistories();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getHistory(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setHistoryEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateHistory(data);\r\n } else {\r\n this.props.addHistory(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteHistory(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setHistoryEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n histories: state.histories\r\n }\r\n}\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getHistories: (data) => dispatch(getHistories_a()),\r\n getHistory: (id, editMode) => dispatch(getHistory_a(id, editMode)),\r\n setHistoryEditState: (state) => dispatch(setHistoryEditState_a(state)),\r\n updateHistory: (data) => dispatch(updateHistory_a(data)),\r\n addHistory: (data) => dispatch(addHistory_a(data)),\r\n deleteHistory: (id) => dispatch(deleteHistory_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(History));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getHistories_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORIES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"histories\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORIES + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HISTORIES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getHistory_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORY + 1});\r\n return axios.get(BackendSettings.baseUrl + \"history/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_HISTORY + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_HISTORY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateHistory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_HISTORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateHistory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HISTORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_HISTORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addHistory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_HISTORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addHistory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HISTORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_HISTORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteHistory_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_HISTORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteHistory\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HISTORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_HISTORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_HISTORY_STATE, newState: state};\r\n}\r\n\r\nexport const setHistoryEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_HISTORY_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1200,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass RockInfoTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n }\r\n },\r\n {title: 'Display Order', field: 'display_order'}\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(RockInfoTable));","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n\r\n formLabel: {\r\n marginLeft: 0,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass RockInfoForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n title: '',\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n\r\n console.log(event.target.name, event.target.value);\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n console.log(this.state);\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n display_order: nextProps.data.display_order,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date\r\n });\r\n } else {\r\n this.setState({\r\n editMode: false,\r\n title: '',\r\n content: '',\r\n display_order: 1,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-')\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n date: this.state.date\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n \r\n\r\n \r\n this.handleChange(event)}\r\n margin=\"normal\"/>\r\n this.handleChange(event)}/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(RockInfoForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport RockInfoTable from './rockInfoTable'\r\nimport RockInfoForm from './rockInfoForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addRockInfo_a,\r\n deleteRockInfo_a,\r\n getRockInfo_a,\r\n getRockInfos_a,\r\n resetState_a,\r\n setRockInfoEditState_a,\r\n updateRockInfo_a\r\n} from '../../store/actions/rockInfoActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass RockInfo extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getRockInfos();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getRockInfo(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setRockInfoEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateRockInfo(data);\r\n } else {\r\n this.props.addRockInfo(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteRockInfo(data.id);\r\n break;\r\n case 'tableAdd': {\r\n this.props.setRockInfoEditState(STATES.EDIT);\r\n break;\r\n\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n rockInfo: state.rockInfo\r\n }\r\n}\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getRockInfos: (data) => dispatch(getRockInfos_a()),\r\n getRockInfo: (id, editMode) => dispatch(getRockInfo_a(id, editMode)),\r\n setRockInfoEditState: (state) => dispatch(setRockInfoEditState_a(state)),\r\n updateRockInfo: (data) => dispatch(updateRockInfo_a(data)),\r\n addRockInfo: (data) => dispatch(addRockInfo_a(data)),\r\n deleteRockInfo: (id) => dispatch(deleteRockInfo_a(id)),\r\n resetState: () => dispatch(resetState_a())\r\n\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(RockInfo));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getRockInfos_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFOS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"rockinfos\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFOS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKINFOS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getRockInfo_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFO + 1});\r\n return axios.get(BackendSettings.baseUrl + \"rockinfo/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKINFO + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKINFO + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateRockInfo_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKINFO + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateRockInfo\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKINFO + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKINFO + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addRockInfo_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_ROCKINFO + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addRockInfo\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKINFO + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKINFO + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteRockInfo_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_ROCKINFO + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteRockInfo\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKINFO + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKINFO + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_ROCKINFO_STATE, newState: state};\r\n}\r\n\r\nexport const setRockInfoEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_ROCKINFO_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1200,\r\n width: '100%',\r\n display: \"inline-block\",\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n listImage: {\r\n maxHeight: 90,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass NewsTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return ()\r\n },\r\n filtering: false\r\n },\r\n {title: 'Title', field: 'title'},\r\n {title: 'Date', field: 'date'},\r\n {\r\n title: 'Publish',\r\n field: 'publish',\r\n render: rowData => {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n },\r\n filtering: false\r\n },\r\n {\r\n title: 'Sticky', field: 'isSticky',\r\n render: rowData => {\r\n return (rowData.isSticky ? \"Yes\" : \"No\")\r\n },\r\n filtering: false\r\n }\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30],\r\n filtering: true,\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n /*\r\n onRowUpdate: (newData, oldData) => {\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n })\r\n }*/\r\n }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(NewsTable));","import React from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n Input,\r\n InputLabel,\r\n Switch,\r\n TextField\r\n} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {BackendSettings} from '../../config/config';\r\n\r\nconst styles = theme => ({\r\n\r\n root: {\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n \"& textarea\": {\r\n fontSize: 12\r\n },\r\n \"& input\": {\r\n fontSize: 12\r\n }\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 620,\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 650,\r\n width: 650,\r\n float: \"left\",\r\n },\r\n\r\n textField: {\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n padding: 10,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass NewsForm extends React.Component {\r\n\r\n state = {\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n isSticky: false,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-'),\r\n value: 0,\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n content_short: nextProps.data.content_short,\r\n isSticky: nextProps.data.isSticky,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n this.resetStateData();\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n content_short: this.state.content_short,\r\n date: this.state.date,\r\n isSticky: this.state.isSticky,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n this.resetStateData();\r\n break;\r\n }\r\n }\r\n\r\n resetStateData = () => {\r\n this.setState({\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n isSticky: false,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-'),\r\n value: 0,\r\n });\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"newsImage\", acceptedFiles[0]);\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n let uploadImage = this.props.data ?\r\n :\r\n ;\r\n /*\r\n isEmpty(this.props.appTexturesContext['addTextureDlg']['BASECOLOR']) ? \r\n
Add Texture
:\r\n
\r\n \r\n
\r\n
\r\n*/\r\n return (\r\n
\r\n\r\n this.onButtonClick(event)}>\r\n\r\n
\r\n \r\n News Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n this.handleChange(event)} value={this.state.content_short}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n \r\n \r\n this.handleChange(event)}/>\r\n \r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n \r\n this.handleChange(event)}/>\r\n }/>\r\n this.handleChange(event)}/>\r\n }/>\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(NewsForm);","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const uploadImage_a = (file, context) => {\r\n return (dispatch, getState) => {\r\n console.log(\"::uploadImage_a called\");\r\n //dispatch( { type: NOTIFIERS.UPLOAD_IMAGE + 1}); \r\n const formData = new FormData();\r\n\r\n formData.append('file', file);\r\n formData.append('context', context);\r\n const config = {headers: {'content-type': 'multipart/form-data'}};\r\n\r\n return axios.post(BackendSettings.baseUrl + \"uploadImage\", formData, config)\r\n .then((response) => {\r\n if (context == \"albumImage\") {\r\n dispatch({type: NOTIFIERS.SET_ALBUM_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"newsImage\") {\r\n dispatch({type: NOTIFIERS.SET_NEWS_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"galleryImage\") {\r\n dispatch({type: NOTIFIERS.SET_GALLERY_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"rockLegendImage\") {\r\n dispatch({type: NOTIFIERS.SET_ROCKLEGEND_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"playlistImage\") {\r\n dispatch({type: NOTIFIERS.SET_PLAYLIST_IMAGE_UPLOAD, payload: response.data});\r\n } else if (context == \"top20Image\") {\r\n dispatch({type: NOTIFIERS.SET_TOP20_IMAGE_UPLOAD, payload: response.data});\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(\"::uploadImage_a returned failed\");\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n });\r\n }\r\n}","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport NewsTable from './newsTable'\r\nimport NewsForm from './newsForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addNews_a,\r\n deleteNews_a,\r\n getNews_a,\r\n getNewsDetails_a,\r\n resetState_a,\r\n setNewsEditState_a,\r\n updateNews_a\r\n} from '../../store/actions/newsActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass News extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getNews();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getNewsDetails(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setNewsEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateNews(data);\r\n } else {\r\n this.props.addNews(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteNews(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setNewsEditState(STATES.EDIT);\r\n break;\r\n case 'newsImage':\r\n this.props.uploadImage(data, \"newsImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n news: state.news\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getNews: (data) => dispatch(getNews_a()),\r\n getNewsDetails: (id, editMode) => dispatch(getNewsDetails_a(id, editMode)),\r\n setNewsEditState: (state) => dispatch(setNewsEditState_a(state)),\r\n updateNews: (data) => dispatch(updateNews_a(data)),\r\n addNews: (data) => dispatch(addNews_a(data)),\r\n deleteNews: (id) => dispatch(deleteNews_a(id)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(News));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getNews_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"news\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_NEWS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getNewsDetails_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS_DETAILS + 1});\r\n return axios.get(BackendSettings.baseUrl + \"getNews/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_NEWS_DETAILS + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_NEWS_DETAILS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateNews_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_NEWS + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateNews\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_NEWS + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_NEWS + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addNews_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_NEWS + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addNews\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_NEWS + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_NEWS + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteNews_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_NEWS + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteNews\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_NEWS + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_NEWS + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_NEWS_STATE, newState: state};\r\n}\r\n\r\nexport const setNewsEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_NEWS_EDIT_STATE, newState: state};\r\n}\r\n\r\n","export const monthNames = [\r\n 'January', 'February', 'March', 'April', 'May',\r\n 'June', 'July', 'August', 'September',\r\n 'October', 'November', 'December'\r\n];","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\nimport {monthNames} from '../../config/const';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1000,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass TodayInMusicTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (monthNames[rowData['month'] - 1])\r\n }\r\n },\r\n {title: 'Day', field: 'day'}\r\n ]}\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n }}\r\n onRowClick={this.onRowClick}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(TodayInMusicTable));","import React from 'react';\r\nimport {Button} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n maxWidth: 650,\r\n width: 650,\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n }\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass TodayInMusicForm extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n content: '',\r\n editMode: false\r\n };\r\n\r\n handleChange(event) {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n content: nextProps.data.content\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n content: this.state.content,\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n return (\r\n
\r\n this.onButtonClick(event)}>\r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(TodayInMusicForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport TodayInMusicTable from './todayInMusicTable';\r\nimport TodayInMusicForm from './todayInMusicForm';\r\nimport {STATES} from '../../store/types';\r\nimport {getTIM_a, getTIMAll_a, resetState_a, setTIMEditState_a, updateTIM_a} from '../../store/actions/timActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass TodayInMusic extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getTIMAll();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getTIM(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setTIMEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateTIM(data);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n todayInMusic: state.todayInMusic\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getTIMAll: (data) => dispatch(getTIMAll_a()),\r\n getTIM: (id, editMode) => dispatch(getTIM_a(id, editMode)),\r\n setTIMEditState: (state) => dispatch(setTIMEditState_a(state)),\r\n updateTIM: (data) => dispatch(updateTIM_a(data)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(TodayInMusic));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getTIMAll_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TIM + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"today\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TIM + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TIM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getTIM_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TIM_DETAIL + 1});\r\n return axios.get(BackendSettings.baseUrl + \"todaydetails/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TIM_DETAIL + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TIM_DETAIL + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateTIM_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_TIM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateToday\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TIM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TIM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_TIM_STATE, newState: state};\r\n}\r\n\r\nexport const setTIMEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_TIM_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 800,\r\n width: '100%',\r\n display: \"inline-block\",\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n listImage: {\r\n maxHeight: 50,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass BannersTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n \r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(BannersTable));","import React, {Component} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport {TextField} from '@material-ui/core';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport {withStyles} from '@material-ui/core/styles';\r\n\r\n/*\r\nProperties\r\n title\r\n onCancel\r\n onOk\r\n inputLabel\r\n*/\r\n\r\nconst styles = theme => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\",\r\n textAlign: \"center\"\r\n },\r\n\r\n textArea: {\r\n fontSize: 12,\r\n maxHeight: 300,\r\n height: \"300px !important\",\r\n width: 555,\r\n fontWeight: 200\r\n }\r\n});\r\n\r\nclass GenericInputDlg extends Component {\r\n\r\n state = {\r\n value: \"\",\r\n title: \"\",\r\n content: \"\",\r\n editMode: false\r\n };\r\n\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data) {\r\n this.setState({\r\n editMode: true,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n });\r\n } else {\r\n this.setState({editMode: false, id: null, title: '', content: ''});\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n title: this.state.title,\r\n id: this.state.id,\r\n content: this.state.content,\r\n editMode: this.state.editMode\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */, dlgSettings} = this.props;\r\n\r\n return (\r\n
\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n this.handleChange(event)}\r\n />\r\n this.handleChange(event)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles/*, { withTheme: true }*/)(GenericInputDlg);\r\n ","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport BannersTable from './bannersTable';\r\nimport {STATES} from '../../store/types';\r\nimport GenericInputDlg from '../../components/comps/genericInputDlg';\r\nimport {\r\n addBanner_a,\r\n deleteBanner_a,\r\n getBanner_a,\r\n getBanners_a,\r\n setBannerEditState_a,\r\n updateBanner_a\r\n} from '../../store/actions/bannerActions';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Banners extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Banners\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getBanners();\r\n };\r\n\r\n onRowClick = (rowData) => {\r\n this.props.getBanner(rowData.id, true);\r\n };\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setBannerEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateBanner(data);\r\n } else {\r\n this.props.addBanner({title: data.title, content: data.content});\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteBanner(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setBannerEditState(STATES.EDIT);\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n {/**/}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n banners: state.banners\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getBanners: (data) => dispatch(getBanners_a()),\r\n getBanner: (id, editMode) => dispatch(getBanner_a(id, editMode)),\r\n setBannerEditState: (state) => dispatch(setBannerEditState_a(state)),\r\n updateBanner: (data) => dispatch(updateBanner_a(data)),\r\n addBanner: (data) => dispatch(addBanner_a(data)),\r\n deleteBanner: (id) => dispatch(deleteBanner_a(id)),\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Banners));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getBanners_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_BANNERS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"banners\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_BANNERS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_BANNERS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getBanner_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_BANNER + 1});\r\n return axios.get(BackendSettings.baseUrl + \"getBanner/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_BANNER + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_BANNER + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateBanner_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_BANNER + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateBanner\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_BANNER + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_BANNER + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addBanner_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_BANNER + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addBanner\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_BANNER + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_BANNER + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteBanner_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_BANNER + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteBanner\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_BANNER + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_BANNER + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const setBannerEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_BANNER_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1200,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n listImage: {\r\n maxHeight: 90,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass AlbumsTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n //switch(event.currentTarget.name) {}\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return ()\r\n },\r\n filtering: false\r\n },\r\n {title: 'Title', field: 'title'},\r\n {title: 'Display Order', field: 'display_order'},\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30],\r\n filtering: true,\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(AlbumsTable));","import React from 'react';\r\nimport {Button, FormControl, Input, InputLabel, TextField} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {BackendSettings} from '../../config/config';\r\n\r\nconst styles = theme => ({\r\n\r\n root: {\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n \"& textarea\": {\r\n fontSize: 12\r\n },\r\n \"& input\": {\r\n fontSize: 12\r\n }\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 620,\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20,\r\n textAlign: \"left\"\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 650,\r\n width: 650,\r\n float: \"left\",\r\n },\r\n\r\n textField: {\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n padding: 10,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass AlbumsForm extends React.Component {\r\n\r\n state = {\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0,\r\n id: null\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n\r\n console.log(this.state);\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n content_short: nextProps.data.content_short,\r\n display_order: nextProps.data.display_order,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n this.resetStateData();\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n content_short: this.state.content_short,\r\n display_order: this.state.display_order,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n this.resetStateData();\r\n break;\r\n }\r\n }\r\n\r\n resetStateData = () => {\r\n this.setState({\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0\r\n });\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"albumsImage\", acceptedFiles[0]);\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n let uploadImage = this.props.data ?\r\n {''}/ :\r\n {''}/;\r\n /*\r\n isEmpty(this.props.appTexturesContext['addTextureDlg']['BASECOLOR']) ? \r\n
Add Texture
:\r\n
\r\n \r\n
\r\n
\r\n*/\r\n return (\r\n
\r\n\r\n this.onButtonClick(event)}>\r\n\r\n
\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n this.handleChange(event)} value={this.state.content_short}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n \r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n \r\n Order\r\n this.handleChange(event)} value={this.state.display_order}/>\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(AlbumsForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport AlbumsTable from './albumsTable';\r\nimport AlbumsForm from './albumsForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addAlbum_a,\r\n deleteAlbum_a,\r\n getAlbum_a,\r\n getAlbums_a,\r\n resetState_a,\r\n setAlbumEditState_a,\r\n updateAlbum_a\r\n} from '../../store/actions/albumsActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Albums extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getAlbums();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getAlbum(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setAlbumEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateAlbum(data);\r\n } else {\r\n this.props.addAlbum(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteAlbum(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setAlbumEditState(STATES.EDIT);\r\n break;\r\n case 'albumsImage':\r\n this.props.uploadImage(data, \"albumImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n albums: state.albums\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getAlbums: (data) => dispatch(getAlbums_a()),\r\n getAlbum: (id, editMode) => dispatch(getAlbum_a(id, editMode)),\r\n setAlbumEditState: (state) => dispatch(setAlbumEditState_a(state)),\r\n updateAlbum: (data) => dispatch(updateAlbum_a(data)),\r\n addAlbum: (data) => dispatch(addAlbum_a(data)),\r\n deleteAlbum: (id) => dispatch(deleteAlbum_a(id)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Albums));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getAlbums_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUMS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"albums\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUMS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ALBUMS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getAlbum_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUM + 1});\r\n return axios.get(BackendSettings.baseUrl + \"album/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ALBUM + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ALBUM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateAlbum_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_ALBUM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateAlbum\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ALBUM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ALBUM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addAlbum_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_ALBUM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addAlbum\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ALBUM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ALBUM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteAlbum_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_ALBUM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteAlbum\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ALBUM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ALBUM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_ALBUMS_STATE, newState: state};\r\n}\r\n\r\nexport const setAlbumEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_ALBUM_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React, {Component} from 'react';\r\nimport {Button, FormControl, Input, InputLabel, TextField} from \"@material-ui/core\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\n\r\nconst styles = theme => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n\r\n root: {\r\n minWidth: 600,\r\n width: 600,\r\n float: \"left\",\r\n marginRight: 20,\r\n textAlign: \"left\"\r\n },\r\n\r\n\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\",\r\n textAlign: \"center\"\r\n },\r\n\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n paddingTop: 10,\r\n },\r\n\r\n innerLeft: {\r\n width: 195,\r\n float: \"left\"\r\n },\r\n innerRight: {\r\n width: 300,\r\n float: \"left\",\r\n marginLeft: 20\r\n }\r\n});\r\n\r\nclass PlaylistItemDlg extends Component {\r\n\r\n state = {\r\n title: \"\",\r\n publish: false,\r\n name: '',\r\n subtitle: '',\r\n short_description: '',\r\n display_order: 1,\r\n url: '',\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"playlistImage\", acceptedFiles[0]);\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.open !== this.props.open && this.props.open === false) {\r\n this.resetState();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n name: nextProps.data.name,\r\n subtitle: nextProps.data.subtitle,\r\n short_description: nextProps.data.short_description,\r\n display_order: nextProps.data.display_order,\r\n url: nextProps.data.url,\r\n });\r\n } else {\r\n this.setState({\r\n ...this.state,\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n resetState = () => {\r\n this.setState({\r\n title: \"\",\r\n publish: false,\r\n name: '',\r\n subtitle: '',\r\n short_description: '',\r\n display_order: 1,\r\n url: '',\r\n });\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n name: this.state.name,\r\n subtitle: this.state.subtitle,\r\n id: this.state.id,\r\n editMode: this.state.editMode,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null,\r\n short_description: this.state.short_description,\r\n display_order: this.state.display_order,\r\n url: this.state.url\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */, dlgSettings} = this.props;\r\n let uploadImage = this.props.data && this.props.data.image !== \"\" ?\r\n :\r\n ;\r\n\r\n return (\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.name}/>\r\n \r\n \r\n Subtitle\r\n this.handleChange(event)}\r\n value={this.state.subtitle}/>\r\n \r\n this.handleChange(event)} value={this.state.short_description}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n
\r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n Youtube ID\r\n this.handleChange(event)}\r\n value={this.state.url}/>\r\n \r\n \r\n Display Order\r\n this.handleChange(event)} value={this.state.display_order}/>\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles/*, { withTheme: true }*/)(PlaylistItemDlg);\r\n ","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {STATES} from '../../store/types';\r\nimport PlaylistItemDlg from './playlistItemDlg';\r\n\r\nimport {\r\n addCategory_a,\r\n addPlaylistItem_a,\r\n deleteCategory_a,\r\n deletePlaylistItem_a,\r\n getPlaylist_a,\r\n getPlaylistCategory_a,\r\n getPlaylistItem_a,\r\n resetState_a,\r\n setPlaylistEditState_a,\r\n updateCategory_a,\r\n updatePlaylistItem_a\r\n} from '../../store/actions/playlistActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\nimport MaterialTable from 'material-table';\r\n\r\n\r\nconst styles = () => ({\r\n root: {\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n },\r\n\r\n rootLeft: {\r\n minWidth: 400,\r\n minHeight: 671,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootCenter: {\r\n minWidth: 400,\r\n minHeight: 671,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootRight: {\r\n float: \"left\",\r\n width: 690,\r\n minHeight: 671,\r\n },\r\n});\r\n\r\nclass Playlist extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Playlist Item\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getPlaylistCategory(-1, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onCategoryRowClick = (event, rowData) => {\r\n this.props.getPlaylistCategory(rowData.id, true);\r\n }\r\n\r\n onAddCategory = (data) => {\r\n this.props.addCategory(data);\r\n }\r\n\r\n onAddSubcategory = (data) => {\r\n data.parentId = this.props.playlist.currentCategoryId;\r\n this.props.addCategory(data);\r\n }\r\n\r\n onAddPlaylistItem = () => {\r\n this.setState({...this.state, editMode: false});\r\n this.props.setPlaylistEditState(STATES.EDIT);\r\n //data.parentId = this.props.playlist.currentSubcategoryId;\r\n //this.props.addPlaylistItem(data); \r\n }\r\n\r\n onEditPlaylistItem = (newData, oldData) => {\r\n this.props.updatePlaylistItem({id: oldData.id, name: newData.name, url: newData.url})\r\n }\r\n\r\n\r\n onDeletePlaylistItem = (data) => {\r\n console.log(data);\r\n this.props.deletePlaylistItem({id: data.id});\r\n }\r\n\r\n onSubcategoryClick = (event, rowData) => {\r\n this.props.getPlaylist(rowData.id);\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.deleteCategory({id: data.id, parentId: data.parent_id});\r\n }\r\n\r\n onRowPlaylistItemClick = (event, rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getPlaylistItem(rowData.id, true);\r\n }\r\n\r\n\r\n /*\r\n onEdit = (newData, oldData) => { \r\n this.props.updateCategory({id:oldData.id, parentId : oldData.parent_id, name:newData.name})\r\n }\r\n */\r\n\r\n eventHandler = (eventName, data) => {\r\n\r\n switch (eventName) {\r\n case 'formCancel':\r\n this.props.setPlaylistEditState(STATES.LIST);\r\n break;\r\n\r\n case 'formSave':\r\n console.log(data);\r\n if (data.editMode) {\r\n this.props.updatePlaylistItem(data);\r\n } else {\r\n data['parentId'] = this.props.playlist.currentSubcategoryId;\r\n this.props.addPlaylistItem(data);\r\n }\r\n break;\r\n case 'tableAdd':\r\n //this.setState({...this.state, editMode: false});\r\n //this.props.setAlbumEditState(STATES.EDIT);\r\n break;\r\n /*\r\n case 'tableDelete': \r\n this.props.deleteAlbum(data.id);\r\n break;\r\n \r\n */\r\n case 'playlistImage':\r\n this.props.uploadImage(data, \"playlistImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n let catName = \"\";\r\n let subCatName = \"\";\r\n let subCatData = [];\r\n let playlistData = this.props.playlist.currentPlaylist;\r\n if (this.props.playlist.currentCategoryId !== -1) {\r\n for (var i = 0; i < this.props.playlist.categories.length; i++) {\r\n if (this.props.playlist.categories[i].id == this.props.playlist.currentCategoryId) {\r\n catName = this.props.playlist.categories[i].name;\r\n subCatData = this.props.playlist.categories[i].categories;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddCategory({...newData, parentId: -1});\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onEdit(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddSubcategory(newData);\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onEdit(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onDeletePlaylistItem(oldData);\r\n resolve();\r\n })\r\n }}\r\n\r\n detailPanel={rowData => {\r\n return (\r\n \r\n )\r\n }}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n playlist: state.playlists\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getPlaylistCategory: (id, setCurrent) => dispatch(getPlaylistCategory_a(id, setCurrent)),\r\n addCategory: (data) => dispatch(addCategory_a(data)),\r\n deleteCategory: (data) => dispatch(deleteCategory_a(data)),\r\n updateCategory: (data) => dispatch(updateCategory_a(data)),\r\n getPlaylist: (id) => dispatch(getPlaylist_a(id)),\r\n addPlaylistItem: (data) => dispatch(addPlaylistItem_a(data)),\r\n deletePlaylistItem: (data) => dispatch(deletePlaylistItem_a(data)),\r\n updatePlaylistItem: (data) => dispatch(updatePlaylistItem_a(data)),\r\n setPlaylistEditState: (newState) => dispatch(setPlaylistEditState_a(newState)),\r\n getPlaylistItem: (id, editMode) => dispatch(getPlaylistItem_a(id, editMode)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Playlist));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getPlaylistCategory_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_CATEGORY + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"playlist/\" + categoryId)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_CATEGORY + 2, payload: response.data, setCurrent: setCurrent});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PLAYLIST_CATEGORY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const addCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPlaylistCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const deleteCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePlaylistCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 2, payload: response.data});\r\n } else {\r\n console.log(response.data);\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const updateCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePlaylistCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const getPlaylist_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST + 1});\r\n return axios.get(BackendSettings.baseUrl + \"playlist/get/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PLAYLIST + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getPlaylistItem_a = (id, editMode) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_ITEM + 1});\r\n return axios.get(BackendSettings.baseUrl + \"playlist/getPlaylistItem/\" + id)\r\n .then((response) => {\r\n\r\n dispatch({type: NOTIFIERS.GET_PLAYLIST_ITEM + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PLAYLIST_ITEM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const addPlaylistItem_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPlaylistItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PLAYLIST_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deletePlaylistItem_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePlaylistItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PLAYLIST_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const updatePlaylistItem_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePlaylistItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PLAYLIST_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_PLAYLISTS_STATE, newState: state};\r\n}\r\n\r\nexport const setPlaylistEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_PLAYLIST_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React, {Component} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport {FormControlLabel, Switch, TextField} from '@material-ui/core';\r\nimport Dialog from '@material-ui/core/Dialog';\r\n\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\n\r\nconst styles = theme => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 230, width: 230, float: \"left\", marginRight: 20, textAlign: \"left\"\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 280, width: 280, float: \"left\",\r\n },\r\n\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\", textAlign: \"center\"\r\n },\r\n\r\n imageDrop: {\r\n maxWidth: 200, maxHeight: 200, padding: 10,\r\n },\r\n});\r\n\r\nclass GalleryItemDlg extends Component {\r\n\r\n state = {\r\n title: \"\", publish: false, editMode: false\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"galleryImage\", acceptedFiles[0]);\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.open !== this.props.open && this.props.open === false) {\r\n this.resetState();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n title: this.state.title,\r\n publish: this.state.publish,\r\n id: this.state.id,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null,\r\n editMode: this.state.editMode,\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n resetState = () => {\r\n this.setState({title: \"\", publish: false});\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */, dlgSettings} = this.props;\r\n let uploadImage = this.props.data ?\r\n :\r\n ;\r\n\r\n return (\r\n
\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n
\r\n \r\n {({getRootProps}) => (
\r\n {uploadImage}\r\n
)}\r\n
\r\n
\r\n
\r\n this.handleChange(event)}\r\n />\r\n this.handleChange(event)}/>}/>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles/*, { withTheme: true }*/)(GalleryItemDlg);\r\n ","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {STATES} from '../../store/types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport GalleryItemDlg from './galleryItemDlg';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\nimport {\r\n addGalleryImage_a,\r\n addPhotoCategory_a,\r\n deleteGalleryImage_a,\r\n deletePhotoCategory_a,\r\n getPhotoCategories_a,\r\n getPhotoGallery_a,\r\n resetState_a,\r\n setGalleryEditState_a,\r\n updatePhotoCategory_a\r\n} from '../../store/actions/photoGalleryActions';\r\nimport MaterialTable from 'material-table';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n display: \"inline-block\",\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n },\r\n\r\n rootLeft: {\r\n width: 600,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootRight: {\r\n float: \"left\",\r\n width: 800,\r\n },\r\n listImage: {\r\n maxHeight: 100,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass PhotoGallery extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Gallery Image\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getCategories(-1, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onAddCategory = (data) => {\r\n this.props.addCategory(data);\r\n }\r\n\r\n onCategoryEdit = (newData, oldData) => {\r\n this.props.updateCategory({id: oldData.id, name: newData.name})\r\n }\r\n\r\n onCategoryDelete = (data) => {\r\n this.props.deleteCategory(data.id);\r\n }\r\n\r\n onCategoryRowClick = (event, rowData) => {\r\n this.props.getPhotoGallery(rowData.id);\r\n }\r\n\r\n onDeleteGalleryImage = (data) => {\r\n this.props.deleteGalleryImage(data.id);\r\n }\r\n\r\n onAddImage = () => {\r\n this.setState({...this.state, editMode: false});\r\n this.props.setGalleryEditState(STATES.EDIT);\r\n }\r\n\r\n /*\r\n onAddSubcategory = (data) => {\r\n data.parentId = this.props.playlist.currentCategoryId;\r\n this.props.addCategory(data);\r\n }\r\n\r\n onAddPlaylistItem = (data) => {\r\n data.parentId = this.props.playlist.currentSubcategoryId;\r\n this.props.addPlaylistItem(data);\r\n }\r\n\r\n onEditPlaylistItem = (newData, oldData) => {\r\n this.props.updatePlaylistItem({id:oldData.id, name:newData.name, url:newData.url})\r\n }\r\n\r\n onSubcategoryClick = (event, rowData) => {\r\n this.props.getPlaylist(rowData.id);\r\n }\r\n */\r\n\r\n eventHandler = (eventName, data) => {\r\n\r\n switch (eventName) {\r\n case 'formCancel':\r\n this.props.setGalleryEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n //this.props.updateAlbum(data);\r\n } else {\r\n data.gallery_id = this.props.galleries.currentCategoryId;\r\n this.props.addGalleryImage(data);\r\n }\r\n break;\r\n case 'galleryImage':\r\n this.props.uploadImage(data, \"galleryImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n let catName = \"\";\r\n let subcatData = [];\r\n if (this.props.galleries.currentCategoryId !== -1) {\r\n for (var i = 0; i < this.props.galleries.categories.length; i++) {\r\n if (this.props.galleries.categories[i].id == this.props.galleries.currentCategoryId) {\r\n catName = this.props.galleries.categories[i].name;\r\n subcatData = this.props.galleries.categories[i].categories;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddCategory({...newData});\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onCategoryDelete(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onCategoryEdit(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n {\r\n return (\r\n )\r\n },\r\n filtering: false\r\n },\r\n {title: 'Name', field: 'name'},\r\n {\r\n title: 'Publish', field: 'publish',\r\n render: rowData => {\r\n return (rowData.publish ? \"Yes\" : \"No\")\r\n },\r\n filtering: false\r\n }\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30]\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAddImage\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDeleteGalleryImage(oldData);\r\n resolve();\r\n }),\r\n /*\r\n onRowUpdate: (newData, oldData) => {\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n })\r\n }*/\r\n }\r\n }\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n galleries: state.galleries\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getCategories: (id, setCurrent) => dispatch(getPhotoCategories_a(id, setCurrent)),\r\n addCategory: (data) => dispatch(addPhotoCategory_a(data)),\r\n deleteCategory: (data) => dispatch(deletePhotoCategory_a(data)),\r\n updateCategory: (data) => dispatch(updatePhotoCategory_a(data)),\r\n getPhotoGallery: (id) => dispatch(getPhotoGallery_a(id)),\r\n deleteGalleryImage: (id) => dispatch(deleteGalleryImage_a(id)),\r\n resetState: () => dispatch(resetState_a()),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n addGalleryImage: (data) => dispatch(addGalleryImage_a(data)),\r\n setGalleryEditState: (state) => dispatch(setGalleryEditState_a(state)),\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(PhotoGallery));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getPhotoCategories_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_CATEGORIES + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"photoGallery\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_CATEGORIES + 2, payload: response.data, setCurrent: setCurrent});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PHOTO_CATEGORIES + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updatePhotoCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_PHOTO_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updatePhotoCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PHOTO_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_PHOTO_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addPhotoCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_PHOTO_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addPhotoCategory\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PHOTO_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_PHOTO_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deletePhotoCategory_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_PHOTO_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deletePhotoCategory\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PHOTO_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_PHOTO_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const getPhotoGallery_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_GALLERY + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"getGallery/\" + categoryId)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_PHOTO_GALLERY + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_PHOTO_GALLERY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const deleteGalleryImage_a = (itemId) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_GALLERY_IMAGE + 1});\r\n\r\n return axios.post(BackendSettings.baseUrl + \"deleteGalleryItem\", {id: itemId})\r\n .then((response) => {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_GALLERY_IMAGE + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({message: err.message, options: {variant: 'error', autoHideDuration: 3000}}));\r\n dispatch({type: NOTIFIERS.DELETE_GALLERY_IMAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addGalleryImage_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_GALLERY_IMAGE + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addGalleryItem\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_GALLERY_IMAGE + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({message: err.message, options: {variant: 'error', autoHideDuration: 3000}}));\r\n dispatch({type: NOTIFIERS.ADD_GALLERY_IMAGE + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const setGalleryEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_GALLERY_EDIT_STATE, newState: state};\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_PHOTO_STATE, newState: state};\r\n}\r\n","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n minWidth: 1200,\r\n width: '100%',\r\n display: \"inline-block\",\r\n\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\"\r\n },\r\n \"& tr td:first-child\": {\r\n width: 100\r\n },\r\n \"& tfoot tr td:first-child\": {\r\n width: 500\r\n }\r\n },\r\n\r\n listImage: {\r\n maxHeight: 90,\r\n },\r\n\r\n titleButton: {\r\n marginLeft: 50\r\n }\r\n});\r\n\r\nclass RockLegendsTable extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n };\r\n\r\n onRowClick = (event, rowData) => {\r\n this.props.onRowClick(rowData);\r\n }\r\n\r\n onButtonClick = (event) => {\r\n this.props.eventHandler(event.currentTarget.name);\r\n }\r\n\r\n onAdd = () => {\r\n this.props.eventHandler(\"tableAdd\");\r\n }\r\n\r\n onDelete = (data) => {\r\n this.props.eventHandler(\"tableDelete\", data);\r\n }\r\n\r\n render() {\r\n\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {data, classes} = this.props;\r\n\r\n return (\r\n
\r\n {\r\n return (\r\n )\r\n },\r\n filtering: false\r\n },\r\n {title: 'Title', field: 'title'},\r\n {title: 'Display Order', field: 'display_order'},\r\n ]}\r\n\r\n options={{\r\n pageSize: 10,\r\n pageSizeOptions: [10, 20, 30],\r\n filtering: true,\r\n }}\r\n\r\n onRowClick={this.onRowClick}\r\n\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n //iconProps: {style: {marginLeft:20}},\r\n isFreeAction: true,\r\n onClick: this.onAdd\r\n }]}\r\n\r\n editable={{\r\n onRowDelete: oldData =>\r\n new Promise((resolve, reject) => {\r\n this.onDelete(oldData);\r\n resolve();\r\n }),\r\n }\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(RockLegendsTable));","import React from 'react';\r\nimport {Button, FormControl, Input, InputLabel, TextField} from \"@material-ui/core\";\r\nimport {CkEditor} from '../comps/ckEditor';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport FormBar from '../comps/formBar';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {BackendSettings} from '../../config/config';\r\n\r\nconst styles = theme => ({\r\n\r\n root: {\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n \"& textarea\": {\r\n fontSize: 12\r\n },\r\n \"& input\": {\r\n fontSize: 12\r\n }\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 620,\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20,\r\n textAlign: \"left\"\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 650,\r\n width: 650,\r\n float: \"left\",\r\n },\r\n\r\n textField: {\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n padding: 10,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass RockLegendsForm extends React.Component {\r\n\r\n state = {\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0,\r\n id: null\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n content_short: nextProps.data.content_short,\r\n display_order: nextProps.data.display_order,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n this.resetStateData();\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n content_short: this.state.content_short,\r\n display_order: this.state.display_order,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n this.resetStateData();\r\n break;\r\n }\r\n }\r\n\r\n resetStateData = () => {\r\n this.setState({\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n value: 0\r\n });\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"albumsImage\", acceptedFiles[0]);\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n let uploadImage = this.props.data ?\r\n :\r\n ;\r\n return (\r\n
\r\n\r\n this.onButtonClick(event)}>\r\n\r\n
\r\n \r\n Title\r\n this.handleChange(event)}\r\n value={this.state.title}/>\r\n this.handleChange(event)} value={this.state.content_short}\r\n multiline rowsMax=\"6\" margin=\"normal\" fullWidth/>\r\n \r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n \r\n Order\r\n this.handleChange(event)} value={this.state.display_order}/>\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(RockLegendsForm);","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport RockLegendsTable from './rockLegendsTable';\r\nimport RockLegendsForm from './rockLgendsForm';\r\nimport {STATES} from '../../store/types';\r\nimport {\r\n addRockLegend_a,\r\n deleteRockLegend_a,\r\n getRockLegend_a,\r\n getRockLegends_a,\r\n resetState_a,\r\n setRockLegendEditState_a,\r\n updateRockLegend_a\r\n} from '../../store/actions/rockLegendsActions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n});\r\n\r\nclass Albums extends React.Component {\r\n\r\n state = {\r\n value: 0,\r\n editMode: false\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getRockLegends();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onRowClick = (rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getRockLegend(rowData.id, true);\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n case 'formBack':\r\n this.props.setRockLegendEditState(STATES.LIST);\r\n break;\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateRockLegend(data);\r\n } else {\r\n this.props.addRockLegend(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteRockLegend(data.id);\r\n break;\r\n case 'tableAdd':\r\n this.setState({...this.state, editMode: false});\r\n this.props.setRockLegendEditState(STATES.EDIT);\r\n break;\r\n case 'albumsImage':\r\n this.props.uploadImage(data, \"rockLegendImage\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n rockLegends: state.rockLegends\r\n }\r\n}\r\n\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getRockLegends: (data) => dispatch(getRockLegends_a()),\r\n getRockLegend: (id, editMode) => dispatch(getRockLegend_a(id, editMode)),\r\n setRockLegendEditState: (state) => dispatch(setRockLegendEditState_a(state)),\r\n updateRockLegend: (data) => dispatch(updateRockLegend_a(data)),\r\n addRockLegend: (data) => dispatch(addRockLegend_a(data)),\r\n deleteRockLegend: (id) => dispatch(deleteRockLegend_a(id)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Albums));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\nexport const getRockLegends_a = () => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGENDS + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"rockLegends\")\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGENDS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKLEGENDS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getRockLegend_a = (id, editMode = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGEND + 1});\r\n return axios.get(BackendSettings.baseUrl + \"rockLegend/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_ROCKLEGEND + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_ROCKLEGEND + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateRockLegend_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKLEGEND + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateRockLegend\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKLEGEND + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_ROCKLEGEND + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addRockLegend_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_ROCKLEGEND + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addRockLegend\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKLEGEND + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_ROCKLEGEND + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteRockLegend_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_ROCKLEGEND + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteRockLegend\", {id: id})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKLEGEND + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_ROCKLEGEND + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_ROCKLEGEND_STATE, newState: state};\r\n}\r\n\r\nexport const setRockLegendEditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_ROCKLEGEND_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import React, {Component} from 'react';\r\nimport {Button, FormControl, FormControlLabel, Input, InputLabel, Switch} from \"@material-ui/core\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport ReactDropzone from \"react-dropzone\";\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {BackendSettings} from '../../config/config';\r\n\r\nconst styles = () => ({\r\n textField: {\r\n fontSize: 12\r\n },\r\n root: {\r\n width: 600,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\"\r\n },\r\n dialogTitle: {\r\n padding: \"10px 10px 10px 22px\",\r\n textAlign: \"center\"\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n paddingTop: 10,\r\n },\r\n innerLeft: {\r\n width: 195,\r\n float: \"left\"\r\n },\r\n innerRight: {\r\n width: 300,\r\n float: \"left\",\r\n marginLeft: 20\r\n }\r\n});\r\n\r\nclass Top20ItemDlg extends Component {\r\n\r\n state = {\r\n artist: '',\r\n song: '',\r\n url: '',\r\n votes: 0,\r\n active: 1,\r\n previousMonth: 0,\r\n previous2Months: 0,\r\n monthsInTop: 0,\r\n totalVotes: 0\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"top20Image\", acceptedFiles[0]);\r\n }\r\n\r\n onCancel = (event) => {\r\n this.props.onFormEvent('formCancel');\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.open !== this.props.open && this.props.open === false) {\r\n this.resetState();\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps, nextContext) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n artist: nextProps.data.artist,\r\n song: nextProps.data.song,\r\n url: nextProps.data.url,\r\n votes: nextProps.data.votes,\r\n active: nextProps.data.active,\r\n previousMonth: nextProps.data.previousMonth,\r\n previous2Months: nextProps.data.previous2Months,\r\n monthsInTop: nextProps.data.monthsInTop,\r\n totalVotes: nextProps.data.totalVotes,\r\n });\r\n } else {\r\n this.setState({\r\n ...this.state,\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n resetState = () => {\r\n this.setState({\r\n artist: '',\r\n song: '',\r\n url: '',\r\n votes: 0,\r\n active: 1,\r\n previousMonth: 0,\r\n previous2Months: 0,\r\n monthsInTop: 0,\r\n totalVotes: 0\r\n });\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n break;\r\n case 'formSave':\r\n let data = {\r\n artist: this.state.artist,\r\n song: this.state.song,\r\n id: this.state.id,\r\n editMode: this.state.editMode,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null,\r\n url: this.state.url,\r\n votes: this.state.votes,\r\n totalVotes: this.state.totalVotes,\r\n active: this.state.active,\r\n previousMonth: this.state.previousMonth,\r\n previous2Months: this.state.previous2Months,\r\n monthsInTop: this.state.monthsInTop\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n break;\r\n }\r\n }\r\n\r\n onOk = (event) => {\r\n this.props.dlgSettings.onOk({value: this.state.value});\r\n };\r\n\r\n handleInputChange = (event) => {\r\n this.setState({value: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes} = this.props;\r\n\r\n let uploadImage = this.props.data && this.props.data.image !== \"\" ?\r\n :\r\n ;\r\n\r\n return (\r\n \r\n {this.props.dlgSettings.title}\r\n \r\n \r\n Artist\r\n this.handleChange(event)} value={this.state.artist}/>\r\n \r\n \r\n Song\r\n this.handleChange(event)} value={this.state.song}/>\r\n \r\n \r\n This month votes\r\n this.handleChange(event)} value={this.state.votes}/>\r\n \r\n \r\n Previous month position\r\n this.handleChange(event)} value={this.state.previousMonth}/>\r\n \r\n \r\n 2 month ago position\r\n this.handleChange(event)} value={this.state.previous2Months}/>\r\n \r\n \r\n Total votes\r\n this.handleChange(event)} value={this.state.totalVotes}/>\r\n \r\n \r\n Months in top\r\n this.handleChange(event)} value={this.state.monthsInTop}/>\r\n \r\n
\r\n \r\n {({getRootProps}) => (\r\n
\r\n {uploadImage}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n Youtube ID\r\n this.handleChange(event)} value={this.state.url}/>\r\n \r\n this.handleChange(event)}/>\r\n }/>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n };\r\n}\r\n\r\n/*\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n createCollection: (collection) => dispatch(createProject_a(collection))\r\n }\r\n }\r\n*/\r\nfunction mapStateToProps() {\r\n return {};\r\n}\r\n\r\nexport default withStyles(styles)(Top20ItemDlg);\r\n ","import React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {STATES} from '../../store/types';\r\nimport Top20ItemDlg from './top20ItemDlg';\r\n\r\nimport {\r\n addCategory_a,\r\n addTop20Item_a,\r\n deleteCategory_a,\r\n deleteTop20Item_a,\r\n getTop20Category_a,\r\n getTop20Item_a,\r\n getTop20Items_a,\r\n resetState_a,\r\n setTop20EditState_a,\r\n updateCategory_a,\r\n updateTop20Item_a\r\n} from '../../store/actions/top20Actions';\r\nimport {uploadImage_a} from '../../store/actions/fileActions';\r\nimport MaterialTable from 'material-table';\r\n\r\nconst styles = () => ({\r\n root: {\r\n \"& th\":\r\n {\r\n color: \"#FFF\",\r\n backgroundColor: \"#000 !important\",\r\n height: \"10px !important\",\r\n fontSize: \"1rem\",\r\n },\r\n },\r\n\r\n tableContainer: {\r\n display: 'flex',\r\n },\r\n\r\n tableColumn: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n\r\n rootLeft: {\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20,\r\n marginBottom: 20,\r\n textAlign: \"left\",\r\n },\r\n\r\n rootRight: {\r\n float: \"left\",\r\n width: 480,\r\n },\r\n});\r\n\r\nclass Top20 extends React.Component {\r\n state = {\r\n value: 0,\r\n editMode: false,\r\n subCatName: '',\r\n listData: []\r\n };\r\n\r\n editDlgSettings = {\r\n title: \"Song\"\r\n };\r\n\r\n componentWillMount() {\r\n this.props.getTop20Category(-1, false);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetState();\r\n }\r\n\r\n onCategoryRowClick = (event, rowData) => {\r\n this.setState({...this.state, listData: []});\r\n this.props.getTop20Category(rowData.id, true);\r\n }\r\n\r\n onAddCategory = (data) => {\r\n this.props.addCategory(data);\r\n }\r\n\r\n onDeleteCategory = (data) => {\r\n this.props.deleteCategory({id: data.id, parentId: data.parent_id});\r\n }\r\n\r\n onEditCategory = (newData, oldData) => {\r\n this.props.updateCategory({id: oldData.id, title: newData.title})\r\n }\r\n\r\n onSubcategoryClick = (event, rowData) => {\r\n this.setState({...this.state, subCatName: rowData.title});\r\n this.props.getTop20Items(rowData.id);\r\n }\r\n\r\n onTopItemClick = (event, rowData) => {\r\n this.setState({...this.state, editMode: true});\r\n this.props.getTop20Item(rowData.id, true);\r\n }\r\n\r\n onAddTop20Item = () => {\r\n this.setState({...this.state, editMode: false});\r\n this.props.setTop20EditState(STATES.EDIT);\r\n }\r\n\r\n onDeleteTop20Item = (data) => {\r\n this.props.deleteTop20Item({id: data.id});\r\n }\r\n\r\n eventHandler = (eventName, data) => {\r\n switch (eventName) {\r\n case 'formCancel':\r\n this.props.setTop20EditState(STATES.LIST);\r\n break;\r\n\r\n case 'formSave':\r\n if (data.editMode) {\r\n this.props.updateTop20Item(data);\r\n } else {\r\n data['parentId'] = this.props.top20.currentSubcategoryId;\r\n this.props.addTop20Item(data);\r\n }\r\n break;\r\n case 'tableDelete':\r\n this.props.deleteTop20Item(data.id);\r\n break;\r\n\r\n\r\n case 'top20Image':\r\n this.props.uploadImage(data, \"top20Image\");\r\n break;\r\n }\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n let catName = \"\";\r\n let subCatData = [];\r\n\r\n const smallColumns = {\r\n cellStyle: {\r\n width: 20,\r\n maxWidth: 20\r\n },\r\n headerStyle: {\r\n width: 20,\r\n maxWidth: 20\r\n }\r\n }\r\n\r\n if (this.props.top20.currentCategoryId !== -1) {\r\n for (var i = 0; i < this.props.top20.categories.length; i++) {\r\n if (this.props.top20.categories[i].id == this.props.top20.currentCategoryId) {\r\n catName = this.props.top20.categories[i].title;\r\n subCatData = this.props.top20.categories[i].categories;\r\n this.state.listData = this.props.top20.currentList;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n new Promise((resolve, reject) => {\r\n this.onAddCategory({...newData, parentId: -1});\r\n resolve();\r\n }),\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDeleteCategory(oldData);\r\n resolve();\r\n }),\r\n onRowUpdate: (newData, oldData) => new Promise((resolve, reject) => {\r\n this.onEditCategory(newData, oldData);\r\n resolve();\r\n }),\r\n }}\r\n />\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {\r\n return ({rowData.artist}
{rowData.song}
)\r\n },\r\n },\r\n ]}\r\n actions={[{\r\n disabled: false,\r\n icon: \"add\",\r\n isFreeAction: true,\r\n onClick: this.onAddTop20Item\r\n }]}\r\n options={{\r\n paging: false,\r\n search: false,\r\n rowStyle: {height: 50}\r\n }}\r\n onRowClick={this.onTopItemClick}\r\n editable={{\r\n onRowDelete: oldData => new Promise((resolve, reject) => {\r\n this.onDeleteTop20Item(oldData);\r\n resolve();\r\n }),\r\n }}\r\n detailPanel={rowData => {\r\n return (\r\n \r\n )\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n top20: state.top20\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getTop20Category: (id, setCurrent) => dispatch(getTop20Category_a(id, setCurrent)),\r\n setTop20EditState: (newState) => dispatch(setTop20EditState_a(newState)),\r\n addCategory: (data) => dispatch(addCategory_a(data)),\r\n deleteCategory: (data) => dispatch(deleteCategory_a(data)),\r\n updateCategory: (data) => dispatch(updateCategory_a(data)),\r\n getTop20Items: (id) => dispatch(getTop20Items_a(id)),\r\n getTop20Item: (id, editMode) => dispatch(getTop20Item_a(id, editMode)),\r\n uploadImage: (file, context) => dispatch(uploadImage_a(file, context)),\r\n updateTop20Item: (data) => dispatch(updateTop20Item_a(data)),\r\n deleteTop20Item: (data) => dispatch(deleteTop20Item_a(data)),\r\n addTop20Item: (data) => dispatch(addTop20Item_a(data)),\r\n resetState: () => dispatch(resetState_a())\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(Top20));","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport {enqueueSnackbar} from './snackBarActions';\r\n\r\n\r\nexport const getTop20Category_a = (categoryId = -1, setCurrent = false) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_CATEGORY + 1});\r\n\r\n return axios.get(BackendSettings.baseUrl + \"top20/\" + categoryId)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_CATEGORY + 2, payload: response.data, setCurrent: setCurrent});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TOP20_CATEGORY + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const addCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_TOP20_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addTop20Category\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteTop20Category\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_CATEGORY + 2, payload: response.data});\r\n } else {\r\n console.log(response.data);\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const updateCategory_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_CATEGORY + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateTop20Category\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_CATEGORY + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_CATEGORY + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const getTop20Items_a = (id) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEMS + 1});\r\n return axios.get(BackendSettings.baseUrl + \"top20/get/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEMS + 2, payload: response.data});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TOP20_ITEMS + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const getTop20Item_a = (id, editMode) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEM + 1});\r\n return axios.get(BackendSettings.baseUrl + \"top20/getItem/\" + id)\r\n .then((response) => {\r\n dispatch({type: NOTIFIERS.GET_TOP20_ITEM + 2, payload: response.data, editMode: editMode});\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.GET_TOP20_ITEM + 3,\r\n payload: err.message\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport const updateTop20Item_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"updateTop20Item\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.UPDATE_TOP20_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const deleteTop20Item_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"deleteTop20Item\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.DELETE_TOP20_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const addTop20Item_a = (data) => {\r\n return (dispatch, getState) => {\r\n dispatch({type: NOTIFIERS.ADD_TOP20_ITEM + 1});\r\n return axios.post(BackendSettings.baseUrl + \"addTop20Item\", data)\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_ITEM + 2, payload: response.data});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'error', autoHideDuration: 3000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch(enqueueSnackbar({\r\n message: err.message,\r\n options: {variant: 'success', autoHideDuration: 3000}\r\n }));\r\n dispatch({type: NOTIFIERS.ADD_TOP20_ITEM + 3, payload: err.message});\r\n });\r\n }\r\n}\r\n\r\nexport const resetState_a = (state) => {\r\n return {type: NOTIFIERS.RESET_TOP20_STATE, newState: state};\r\n}\r\n\r\nexport const setTop20EditState_a = (state) => {\r\n return {type: NOTIFIERS.SET_TOP20_EDIT_STATE, newState: state};\r\n}\r\n\r\n","import {NOTIFIERS} from '../types';\r\nimport isEmpty from 'lodash/isEmpty';\r\n\r\nconst initState = {\r\n authenticated: false,\r\n userInfo: null,\r\n loading: false,\r\n error: null\r\n};\r\n\r\nconst authReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n// LOGIN\r\n case NOTIFIERS.LOGIN + 1:\r\n return {\r\n // ...state,\r\n loading: true,\r\n authenticated: false,\r\n error: null,\r\n userInfo: null,\r\n }\r\n case NOTIFIERS.LOGIN + 2:\r\n return {\r\n //...state,\r\n loading: false,\r\n error: null,\r\n authenticated: !isEmpty(action.payload.user),\r\n userInfo: action.payload.user,\r\n modules: action.payload.modules\r\n }\r\n\r\n case NOTIFIERS.LOGIN + 3:\r\n return {\r\n //...state,\r\n loading: false,\r\n authenticated: false,\r\n error: action.payload,\r\n userInfo: null,\r\n }\r\n\r\n case NOTIFIERS.LOGOUT:\r\n return {\r\n loading: false,\r\n authenticated: false,\r\n error: action.payload,\r\n userInfo: null,\r\n }\r\n }\r\n return state;\r\n}\r\n\r\nexport default authReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editPage: null,\r\n pages: []\r\n};\r\n\r\nconst pagesReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_PAGES_STATE:\r\n return {...state, editPage: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET PAGES\r\n case NOTIFIERS.GET_PAGES + 1:\r\n return state;\r\n case NOTIFIERS.GET_PAGES + 2:\r\n return {...state, pages: action.payload};\r\n case NOTIFIERS.GET_PAGES + 3:\r\n return state;\r\n\r\n // ADD_PAGE\r\n case NOTIFIERS.ADD_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PAGE + 2:\r\n state.pages = [...state.pages, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editPage = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_PAGE + 3:\r\n return state;\r\n\r\n // DELETE_PAGE\r\n case NOTIFIERS.DELETE_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PAGE + 2:\r\n let pages = state.pages.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, pages: pages};\r\n case NOTIFIERS.DELETE_PAGE + 3:\r\n return state;\r\n\r\n // UPDATE_PAGE\r\n case NOTIFIERS.UPDATE_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PAGE + 2:\r\n let newPages = state.pages.map(page => {\r\n if (page.id === action.payload.item.id) {\r\n page.title = action.payload.item.title;\r\n }\r\n return page;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editPage = null;\r\n return {...state, pages: [...newPages]};\r\n case NOTIFIERS.UPDATE_PAGE + 3:\r\n return state;\r\n\r\n // GET_PAGE\r\n case NOTIFIERS.GET_PAGE + 1:\r\n return state;\r\n case NOTIFIERS.GET_PAGE + 2:\r\n let newState = {...state, editPage: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_PAGE + 3:\r\n return state;\r\n\r\n // SET_PAGE_EDIT_STATE\r\n case NOTIFIERS.SET_PAGE_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editPage = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default pagesReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editHeadline: null,\r\n headlines: []\r\n};\r\n\r\nconst headlinesReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_HEADLINES_STATE:\r\n return {...state, editHeadline: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_HEADLINES\r\n case NOTIFIERS.GET_HEADLINES + 1:\r\n return state;\r\n case NOTIFIERS.GET_HEADLINES + 2:\r\n return {...state, headlines: action.payload};\r\n case NOTIFIERS.GET_HEADLINES + 3:\r\n return state;\r\n\r\n // ADD_HEADLINE\r\n case NOTIFIERS.ADD_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.ADD_HEADLINE + 2:\r\n state.headlines = [...state.headlines, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editHeadline = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_HEADLINE + 3:\r\n return state;\r\n\r\n // DELETE_HEADLINE\r\n case NOTIFIERS.DELETE_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_HEADLINE + 2:\r\n let headlines = state.headlines.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, headlines: headlines};\r\n case NOTIFIERS.DELETE_HEADLINE + 3:\r\n return state;\r\n\r\n // UPDATE_HEADLINE\r\n case NOTIFIERS.UPDATE_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_HEADLINE + 2:\r\n let newHeadlines = state.headlines.map(headline => {\r\n if (headline.id === action.payload.item.id) {\r\n headline = action.payload.item;\r\n }\r\n return headline;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editHeadline = null;\r\n return {...state, headlines: [...newHeadlines]};\r\n case NOTIFIERS.UPDATE_HEADLINE + 3:\r\n return state;\r\n\r\n // GET_HEADLINE\r\n case NOTIFIERS.GET_HEADLINE + 1:\r\n return state;\r\n case NOTIFIERS.GET_HEADLINE + 2:\r\n let newState = {...state, editHeadline: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_HEADLINE + 3:\r\n return state;\r\n\r\n // SET_HEADLINE_EDIT_STATE\r\n case NOTIFIERS.SET_HEADLINE_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editHeadline = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default headlinesReducer;","const initState = {\r\n notifications: [],\r\n};\r\n\r\nconst snackBarReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n case 'ENQUEUE_SNACKBAR':\r\n return {\r\n ...state,\r\n notifications: [\r\n ...state.notifications,\r\n {\r\n ...action.notification,\r\n },\r\n ],\r\n };\r\n\r\n case 'REMOVE_SNACKBAR':\r\n return {\r\n ...state,\r\n notifications: state.notifications.filter(\r\n notification => notification.key !== action.key,\r\n ),\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default snackBarReducer;\r\n","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editHistory: null,\r\n history: []\r\n};\r\n\r\nconst historyReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_HISTORY_STATE:\r\n return {...state, editHistory: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_HISTORIES\r\n case NOTIFIERS.GET_HISTORIES + 1:\r\n return state;\r\n case NOTIFIERS.GET_HISTORIES + 2:\r\n return {...state, history: action.payload};\r\n case NOTIFIERS.GET_HISTORIES + 3:\r\n return state;\r\n\r\n // ADD_HISTORY\r\n case NOTIFIERS.ADD_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_HISTORY + 2:\r\n state.history = [...state.history, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editHistory = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_HISTORY + 3:\r\n return state;\r\n\r\n // DELETE_HISTORY\r\n case NOTIFIERS.DELETE_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_HISTORY + 2:\r\n let history = state.history.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, history: history};\r\n case NOTIFIERS.DELETE_HISTORY + 3:\r\n return state;\r\n\r\n // UPDATE_HISTORY\r\n case NOTIFIERS.UPDATE_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_HISTORY + 2:\r\n let newHistory = state.history.map(history_ => {\r\n if (history_.id === action.payload.item.id) {\r\n history_ = action.payload.item;\r\n }\r\n return history_;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editHistory = null;\r\n return {...state, history: [...newHistory]};\r\n case NOTIFIERS.UPDATE_HISTORY + 3:\r\n return state;\r\n\r\n // GET_HISTORY\r\n case NOTIFIERS.GET_HISTORY + 1:\r\n return state;\r\n case NOTIFIERS.GET_HISTORY + 2:\r\n let newState = {...state, editHistory: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_HISTORY + 3:\r\n return state;\r\n\r\n // SET_HISTORY_EDIT_STATE\r\n case NOTIFIERS.SET_HISTORY_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editHistory = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default historyReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editInfo: null,\r\n info: []\r\n};\r\n\r\nconst rockInfoReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_ROCKINFO_STATE\r\n case NOTIFIERS.RESET_ROCKINFO_STATE:\r\n return {...state, editInfo: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_ROCKINFOS\r\n case NOTIFIERS.GET_ROCKINFOS + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKINFOS + 2:\r\n return {...state, info: action.payload};\r\n case NOTIFIERS.GET_ROCKINFOS + 3:\r\n return state;\r\n\r\n // ADD_ROCKINFO\r\n case NOTIFIERS.ADD_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.ADD_ROCKINFO + 2:\r\n state.info = [...state.info, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editInfo = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_ROCKINFO + 3:\r\n return state;\r\n\r\n // DELETE_ROCKINFO\r\n case NOTIFIERS.DELETE_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_ROCKINFO + 2:\r\n let info_ = state.headlines.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, info: info_};\r\n case NOTIFIERS.DELETE_ROCKINFO + 3:\r\n return state;\r\n\r\n // UPDATE_ROCKINFO\r\n case NOTIFIERS.UPDATE_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_ROCKINFO + 2:\r\n let newInfo = state.info.map(info_ => {\r\n if (info_.id === action.payload.item.id) {\r\n info_ = action.payload.item;\r\n }\r\n return info_;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editInfo = null;\r\n return {...state, info: [...newInfo]};\r\n case NOTIFIERS.UPDATE_ROCKINFO + 3:\r\n return state;\r\n\r\n // GET_ROCKINFO\r\n case NOTIFIERS.GET_ROCKINFO + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKINFO + 2:\r\n let newState = {...state, editInfo: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_ROCKINFO + 3:\r\n return state;\r\n\r\n // SET_HEADLINE_EDIT_STATE\r\n case NOTIFIERS.SET_ROCKINFO_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editInfo = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default rockInfoReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editNews: null,\r\n news: []\r\n};\r\n\r\nconst newsReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n // RESET_NEWS_STATE\r\n case NOTIFIERS.RESET_NEWS_STATE:\r\n return {...state, editNews: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_NEWS\r\n case NOTIFIERS.GET_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.GET_NEWS + 2:\r\n return {...state, news: action.payload};\r\n case NOTIFIERS.GET_NEWS + 3:\r\n return state;\r\n\r\n // ADD_NEWS\r\n case NOTIFIERS.ADD_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.ADD_NEWS + 2:\r\n state.news = [...state.news, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editNews = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_NEWS + 3:\r\n return state;\r\n\r\n // DELETE_NEWS\r\n case NOTIFIERS.DELETE_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_NEWS + 2:\r\n let news = state.news.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, news: news};\r\n case NOTIFIERS.DELETE_NEWS + 3:\r\n return state;\r\n\r\n // UPDATE_NEWS\r\n case NOTIFIERS.UPDATE_NEWS + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_NEWS + 2:\r\n let newNews = state.news.map(news => {\r\n if (news.id === action.payload.item.id) {\r\n news = {...news, ...action.payload.item};\r\n }\r\n return news;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editNews = null;\r\n return {...state, news: [...newNews]};\r\n case NOTIFIERS.UPDATE_NEWS + 3:\r\n return state;\r\n\r\n // GET_NEWS_DETAILS\r\n case NOTIFIERS.GET_NEWS_DETAILS + 1:\r\n return state;\r\n case NOTIFIERS.GET_NEWS_DETAILS + 2:\r\n let newState = {...state, editNews: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_NEWS_DETAILS + 3:\r\n return state;\r\n\r\n case NOTIFIERS.SET_NEWS_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editNews: {\r\n ...state.editNews,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // SET_NEWS_EDIT_STATE\r\n case NOTIFIERS.SET_NEWS_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editNews = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default newsReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst timReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_TIM_STATE:\r\n return {...state, editData: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n\r\n // GET_TIM\r\n case NOTIFIERS.GET_TIM + 1:\r\n return state;\r\n case NOTIFIERS.GET_TIM + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_TIM + 3:\r\n return state;\r\n\r\n // UPDATE_TIM\r\n case NOTIFIERS.UPDATE_TIM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_TIM + 2:\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.UPDATE_TIM + 3:\r\n return state;\r\n\r\n // GET_TIM_DETAIL\r\n case NOTIFIERS.GET_TIM_DETAIL + 1:\r\n return state;\r\n case NOTIFIERS.GET_TIM_DETAIL + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_TIM_DETAIL + 3:\r\n return state;\r\n\r\n // SET_TIM_EDIT_STATE\r\n case NOTIFIERS.SET_TIM_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default timReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst bannerReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n // GET_BANNERS\r\n case NOTIFIERS.GET_BANNERS + 1:\r\n return state;\r\n case NOTIFIERS.GET_BANNERS + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_BANNERS + 3:\r\n return state;\r\n\r\n // ADD_BANNER\r\n case NOTIFIERS.ADD_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.ADD_BANNER + 2:\r\n state.data = [...state.data, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_BANNER + 3:\r\n return state;\r\n\r\n // DELETE_BANNER\r\n case NOTIFIERS.DELETE_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_BANNER + 2:\r\n let data = state.data.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, data: data};\r\n case NOTIFIERS.DELETE_BANNER + 3:\r\n return state;\r\n\r\n // UPDATE_BANNER\r\n case NOTIFIERS.UPDATE_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_BANNER + 2:\r\n let newData = state.data.map(data_ => {\r\n if (data_.id === action.payload.item.id) {\r\n data_ = {...data_, ...action.payload.item};\r\n }\r\n return data_;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state, data: [...newData]};\r\n case NOTIFIERS.UPDATE_BANNER + 3:\r\n return state;\r\n\r\n // GET_BANNER\r\n case NOTIFIERS.GET_BANNER + 1:\r\n return state;\r\n case NOTIFIERS.GET_BANNER + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_BANNER + 3:\r\n return state;\r\n\r\n // SET_BANNER_EDIT_STATE\r\n case NOTIFIERS.SET_BANNER_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default bannerReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst albumsReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_ALBUMS_STATE:\r\n return {...state, editData: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_ALBUMS\r\n case NOTIFIERS.GET_ALBUMS + 1:\r\n return state;\r\n case NOTIFIERS.GET_ALBUMS + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_ALBUMS + 3:\r\n return state;\r\n\r\n // ADD_ALBUM\r\n case NOTIFIERS.ADD_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.ADD_ALBUM + 2:\r\n state.data = [...state.data, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_ALBUM + 3:\r\n return state;\r\n\r\n // DELETE_ALBUM\r\n case NOTIFIERS.DELETE_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_ALBUM + 2:\r\n let data = state.data.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, data: data};\r\n case NOTIFIERS.DELETE_ALBUM + 3:\r\n return state;\r\n\r\n // UPDATE_ALBUM\r\n case NOTIFIERS.UPDATE_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_ALBUM + 2:\r\n let newData = state.data.map(item => {\r\n if (item.id === action.payload.item.id) {\r\n item = {...item, ...action.payload.item};\r\n }\r\n return item;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state, data: [...newData]};\r\n case NOTIFIERS.UPDATE_ALBUM + 3:\r\n return state;\r\n\r\n // GET_ALBUM\r\n case NOTIFIERS.GET_ALBUM + 1:\r\n return state;\r\n case NOTIFIERS.GET_ALBUM + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_ALBUM + 3:\r\n return state;\r\n\r\n\r\n case NOTIFIERS.SET_ALBUM_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // SET_ALBUM_EDIT_STATE\r\n case NOTIFIERS.SET_ALBUM_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default albumsReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n categories: [],\r\n currentPlaylist: [],\r\n editData: null,\r\n};\r\n\r\nconst playlistReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_PLAYLISTS_STATE:\r\n return {\r\n ...state,\r\n currentState: STATES.LIST,\r\n currentPlaylist: [],\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n loading: false,\r\n error: null\r\n };\r\n\r\n // SET_GALLERY_EDIT_STATE\r\n case NOTIFIERS.SET_PLAYLIST_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n\r\n // SET_PLAYLIST_IMAGE_UPLOAD\r\n case NOTIFIERS.SET_PLAYLIST_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // GET_PLAYLIST_ITEM\r\n case NOTIFIERS.GET_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.GET_PLAYLIST_ITEM + 2:\r\n return {\r\n ...state,\r\n editData: action.payload.items,\r\n currentState: STATES.EDIT\r\n };\r\n case NOTIFIERS.GET_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n // GET_PLAYLIST\r\n case NOTIFIERS.GET_PLAYLIST + 1:\r\n return state;\r\n case NOTIFIERS.GET_PLAYLIST + 2:\r\n return {...state, currentPlaylist: action.payload.items, currentSubcategoryId: action.payload.parentId};\r\n case NOTIFIERS.GET_PLAYLIST + 3:\r\n return state;\r\n\r\n //ADD_PLAYLIST_ITEM\r\n case NOTIFIERS.ADD_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PLAYLIST_ITEM + 2:\r\n return {\r\n ...state,\r\n currentPlaylist: [...state.currentPlaylist, action.payload.items],\r\n currentState: STATES.LIST\r\n };\r\n case NOTIFIERS.ADD_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n\r\n // DELETE_PLAYLIST_ITEM\r\n case NOTIFIERS.DELETE_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PLAYLIST_ITEM + 2:\r\n let items = state.currentPlaylist.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, currentPlaylist: items};\r\n case NOTIFIERS.DELETE_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n\r\n // UPDATE_PLAYLIST_ITEM\r\n case NOTIFIERS.UPDATE_PLAYLIST_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PLAYLIST_ITEM + 2:\r\n let newItems = state.currentPlaylist.map(item => {\r\n if (item.id === action.payload.items.id) {\r\n item.name = action.payload.items.name;\r\n item.url = action.payload.items.url;\r\n item.display_order = action.payload.items.display_order;\r\n }\r\n return item;\r\n });\r\n return {...state, currentPlaylist: [...newItems], currentState: STATES.LIST};\r\n case NOTIFIERS.UPDATE_PLAYLIST_ITEM + 3:\r\n return state;\r\n\r\n\r\n // GET_PLAYLIST_CATEGORY\r\n case NOTIFIERS.GET_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.GET_PLAYLIST_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: action.payload.items, currentCategoryId: -1, playlist: []}\r\n } else { // child category\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.parentId) {\r\n state.categories[i]['categories'] = action.payload['items'];\r\n if (action.setCurrent) {\r\n state.currentCategoryId = action.payload.parentId;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return {...state};\r\n }\r\n ;\r\n case NOTIFIERS.GET_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n\r\n //ADD_PLAYLIST_CATEGORY\r\n case NOTIFIERS.ADD_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PLAYLIST_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: [...state.categories, action.payload.items]}\r\n } else { // child category\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.parentId) {\r\n state.categories[i]['categories'].push(action.payload['items'])\r\n break;\r\n }\r\n }\r\n }\r\n return {...state};\r\n }\r\n ;\r\n case NOTIFIERS.ADD_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n\r\n //DELETE_PLAYLIST_CATEGORY\r\n case NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 2:\r\n let categories = state.categories;\r\n if (action.payload.items['parent_id'] == -1) // top category\r\n {\r\n categories = state.categories.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n } else {\r\n let subcat = null;\r\n for (var i = 0; i < categories.length; i++) {\r\n if (categories[i]['id'] == action.payload.items['parent_id']) {\r\n subcat = categories[i]['categories'];\r\n let newSubCategories = subcat.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n categories[i]['categories'] = newSubCategories;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return {...state, categories: categories};\r\n case NOTIFIERS.DELETE_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n\r\n // UPDATE_PLAYLIST_CATEGORY\r\n case NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 2:\r\n if (action.payload.items['parent_id'] == -1) // top category\r\n {\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.items['id']) {\r\n state.categories[i]['name'] = action.payload.items['name'];\r\n break;\r\n }\r\n }\r\n } else {\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.items['parent_id']) {\r\n for (var j = 0; j < state.categories[i]['categories'].length; j++) {\r\n if (state.categories[i]['categories'][j]['id'] == action.payload.items['id']) {\r\n state.categories[i]['categories'][j]['name'] = action.payload.items['name'];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {...state};\r\n case NOTIFIERS.UPDATE_PLAYLIST_CATEGORY + 3:\r\n return state;\r\n }\r\n return state;\r\n};\r\n\r\n\r\nexport default playlistReducer;\r\n\r\n\r\n","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n currentCategoryId: -1,\r\n categories: [],\r\n currentGallery: [],\r\n editData: null\r\n};\r\n\r\nconst photoGalleryReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_PAGES_STATE\r\n case NOTIFIERS.RESET_PHOTO_STATE:\r\n return {\r\n ...state,\r\n currentState: STATES.LIST,\r\n currentGallery: [],\r\n editData: null,\r\n currentCategoryId: -1,\r\n loading: false,\r\n error: null\r\n };\r\n\r\n // SET_GALLERY_EDIT_STATE\r\n case NOTIFIERS.SET_GALLERY_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n\r\n // ADD_GALLERY_IMAGE\r\n case NOTIFIERS.ADD_GALLERY_IMAGE + 1:\r\n return state;\r\n case NOTIFIERS.ADD_GALLERY_IMAGE + 2:\r\n return {\r\n ...state,\r\n currentGallery: [...state.currentGallery, action.payload.items],\r\n currentState: STATES.LIST,\r\n editData: null\r\n };\r\n case NOTIFIERS.ADD_GALLERY_IMAGE + 3:\r\n return state;\r\n\r\n // GET_PHOTO_CATEGORIES\r\n case NOTIFIERS.GET_PHOTO_CATEGORIES + 1:\r\n return state;\r\n case NOTIFIERS.GET_PHOTO_CATEGORIES + 2:\r\n return {\r\n ...state,\r\n categories: action.payload.items,\r\n currentGallery: [],\r\n currentCategoryId: -1,\r\n editData: null\r\n };\r\n case NOTIFIERS.GET_PHOTO_CATEGORIES + 3:\r\n return state;\r\n\r\n // GET_PHOTO_GALLERY\r\n case NOTIFIERS.GET_PHOTO_GALLERY + 1:\r\n return state;\r\n case NOTIFIERS.GET_PHOTO_GALLERY + 2:\r\n return {\r\n ...state,\r\n currentGallery: action.payload.items,\r\n currentCategoryId: action.payload.galleryId\r\n };\r\n case NOTIFIERS.GET_PHOTO_GALLERY + 3:\r\n return state;\r\n\r\n // DELETE_GALLERY_IMAGE\r\n case NOTIFIERS.DELETE_GALLERY_IMAGE + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_GALLERY_IMAGE + 2:\r\n let gallery = state.currentGallery.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, currentGallery: gallery};\r\n case NOTIFIERS.DELETE_GALLERY_IMAGE + 3:\r\n return state;\r\n\r\n // ADD_PHOTO_CATEGORY\r\n case NOTIFIERS.ADD_PHOTO_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_PHOTO_CATEGORY + 2:\r\n state.categories = [...state.categories, action.payload.items];\r\n return {...state};\r\n case NOTIFIERS.ADD_PHOTO_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n // DELETE_PHOTO_CATEGORY\r\n case NOTIFIERS.DELETE_PHOTO_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_PHOTO_CATEGORY + 2:\r\n let newCategories = state.categories.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, categories: newCategories};\r\n case NOTIFIERS.DELETE_PHOTO_CATEGORY + 3:\r\n return state;\r\n\r\n // UPDATE_PHOTO_CATEGORY\r\n case NOTIFIERS.UPDATE_PHOTO_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_PHOTO_CATEGORY + 2:\r\n let newItems = state.categories.map(item => {\r\n if (item.id === action.payload.items.id) {\r\n item.name = action.payload.items.name;\r\n }\r\n return item;\r\n });\r\n return {...state, categories: [...newItems]};\r\n case NOTIFIERS.UPDATE_PHOTO_CATEGORY + 3:\r\n return state;\r\n\r\n case NOTIFIERS.SET_GALLERY_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n }\r\n return state;\r\n};\r\n\r\n\r\nexport default photoGalleryReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n editData: null,\r\n data: []\r\n};\r\n\r\nconst rockLegendsReducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_ROCKLEGEND_STATE\r\n case NOTIFIERS.RESET_ROCKLEGEND_STATE:\r\n return {...state, editData: null, currentState: STATES.LIST, loading: false, error: null};\r\n\r\n // GET_ROCKLEGENDS\r\n case NOTIFIERS.GET_ROCKLEGENDS + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKLEGENDS + 2:\r\n return {...state, data: action.payload};\r\n case NOTIFIERS.GET_ROCKLEGENDS + 3:\r\n return state;\r\n\r\n // ADD_ROCKLEGEND\r\n case NOTIFIERS.ADD_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.ADD_ROCKLEGEND + 2:\r\n state.data = [...state.data, action.payload.item];\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state};\r\n case NOTIFIERS.ADD_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // DELETE_ROCKLEGEND\r\n case NOTIFIERS.DELETE_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_ROCKLEGEND + 2:\r\n let data = state.data.filter((item) => {\r\n return item.id !== action.payload.item.id;\r\n });\r\n return {...state, data: data};\r\n case NOTIFIERS.DELETE_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // UPDATE_ROCKLEGEND\r\n case NOTIFIERS.UPDATE_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_ROCKLEGEND + 2:\r\n let newData = state.data.map(item => {\r\n if (item.id === action.payload.item.id) {\r\n item = {...item, ...action.payload.item};\r\n }\r\n return item;\r\n });\r\n state.currentState = STATES.LIST;\r\n state.editData = null;\r\n return {...state, data: [...newData]};\r\n case NOTIFIERS.UPDATE_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // GET_ROCKLEGEND\r\n case NOTIFIERS.GET_ROCKLEGEND + 1:\r\n return state;\r\n case NOTIFIERS.GET_ROCKLEGEND + 2:\r\n let newState = {...state, editData: action.payload};\r\n if (action.editMode) {\r\n newState.currentState = STATES.EDIT;\r\n }\r\n return newState;\r\n case NOTIFIERS.GET_ROCKLEGEND + 3:\r\n return state;\r\n\r\n // SET_ROCKLEGEND_IMAGE_UPLOAD\r\n case NOTIFIERS.SET_ROCKLEGEND_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // SET_ROCKLEGEND_EDIT_STATE\r\n case NOTIFIERS.SET_ROCKLEGEND_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n }\r\n return state;\r\n}\r\n\r\nexport default rockLegendsReducer;","import {NOTIFIERS, STATES} from '../types';\r\n\r\nconst initState = {\r\n loading: false,\r\n error: null,\r\n currentState: STATES.LIST,\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n categories: [],\r\n currentList: [],\r\n editData: null,\r\n};\r\n\r\nconst top20Reducer = (state = initState, action) => {\r\n switch (action.type) {\r\n\r\n //RESET_TOP20_STATE\r\n case NOTIFIERS.RESET_TOP20_STATE:\r\n return {\r\n ...state,\r\n currentState: STATES.LIST,\r\n currentList: [],\r\n currentCategoryId: -1,\r\n currentSubcategoryId: -1,\r\n loading: false,\r\n error: null\r\n };\r\n\r\n // SET_TOP20_EDIT_STATE\r\n case NOTIFIERS.SET_TOP20_EDIT_STATE:\r\n state.currentState = action.newState;\r\n if (action.newState === STATES.LIST) {\r\n state.editData = null;\r\n }\r\n return {...state};\r\n\r\n // GET_TOP20_CATEGORY\r\n case NOTIFIERS.GET_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.GET_TOP20_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: action.payload.items, currentCategoryId: -1, playlist: []}\r\n } else { // child category\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.parentId) {\r\n state.categories[i]['categories'] = action.payload['items'];\r\n state.currentList = [];\r\n if (action.setCurrent) {\r\n state.currentCategoryId = action.payload.parentId;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n return {...state};\r\n }\r\n case NOTIFIERS.GET_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n //ADD_TOP20_CATEGORY\r\n case NOTIFIERS.ADD_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.ADD_TOP20_CATEGORY + 2: {\r\n if (action.payload.parentId == -1) { // root category\r\n return {...state, categories: [...state.categories, action.payload.items]}\r\n }\r\n return {...state};\r\n }\r\n ;\r\n case NOTIFIERS.ADD_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n //DELETE_TOP20_CATEGORY\r\n case NOTIFIERS.DELETE_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_TOP20_CATEGORY + 2:\r\n let categories = state.categories;\r\n categories = state.categories.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, categories: categories, currentCategoryId: -1};\r\n case NOTIFIERS.DELETE_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n\r\n // UPDATE_TOP20_CATEGORY\r\n case NOTIFIERS.UPDATE_TOP20_CATEGORY + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_TOP20_CATEGORY + 2:\r\n for (var i = 0; i < state.categories.length; i++) {\r\n if (state.categories[i]['id'] == action.payload.items['id']) {\r\n state.categories[i]['title'] = action.payload.items['title'];\r\n break;\r\n }\r\n }\r\n return {...state};\r\n case NOTIFIERS.UPDATE_TOP20_CATEGORY + 3:\r\n return state;\r\n\r\n // GET_TOP20_ITEMS\r\n case NOTIFIERS.GET_TOP20_ITEMS + 1:\r\n return state;\r\n case NOTIFIERS.GET_TOP20_ITEMS + 2:\r\n return {...state, currentList: action.payload.items, currentSubcategoryId: action.payload.parentId};\r\n case NOTIFIERS.GET_TOP20_ITEMS + 3:\r\n return state;\r\n\r\n // GET_TOP20_ITEM\r\n case NOTIFIERS.GET_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.GET_TOP20_ITEM + 2:\r\n return {\r\n ...state,\r\n editData: action.payload.items,\r\n currentState: STATES.EDIT\r\n };\r\n case NOTIFIERS.GET_TOP20_ITEM + 3:\r\n return state;\r\n\r\n // SET_TOP20_IMAGE_UPLOAD\r\n case NOTIFIERS.SET_TOP20_IMAGE_UPLOAD:\r\n return {\r\n ...state,\r\n editData: {\r\n ...state.editData,\r\n image: action.payload.item.fileUrl,\r\n fileName: action.payload.item.fileName\r\n }\r\n };\r\n\r\n // UPDATE_TOP20_ITEM\r\n case NOTIFIERS.UPDATE_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.UPDATE_TOP20_ITEM + 2:\r\n let newItems = state.currentList.map(item => {\r\n if (item.id === action.payload.items.id) {\r\n item.artist = action.payload.items.artist;\r\n item.url = action.payload.items.url;\r\n item.song = action.payload.items.song;\r\n }\r\n return item;\r\n });\r\n return {...state, currentList: [...newItems], currentState: STATES.LIST};\r\n case NOTIFIERS.UPDATE_TOP20_ITEM + 3:\r\n return state;\r\n\r\n // DELETE_TOP20_ITEM\r\n case NOTIFIERS.DELETE_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.DELETE_TOP20_ITEM + 2:\r\n let items = state.currentList.filter((item) => {\r\n return item.id !== action.payload.items.id;\r\n });\r\n return {...state, currentList: items};\r\n case NOTIFIERS.DELETE_TOP20_ITEM + 3:\r\n return state;\r\n\r\n\r\n //ADD_TOP20_ITEM\r\n case NOTIFIERS.ADD_TOP20_ITEM + 1:\r\n return state;\r\n case NOTIFIERS.ADD_TOP20_ITEM + 2:\r\n return {\r\n ...state,\r\n currentList: [...state.currentList, action.payload.items],\r\n currentState: STATES.LIST\r\n };\r\n case NOTIFIERS.ADD_TOP20_ITEM + 3:\r\n return state;\r\n\r\n }\r\n return state;\r\n};\r\n\r\n\r\nexport default top20Reducer;","import {combineReducers} from 'redux';\r\n\r\nimport authReducer from './authReducer';\r\nimport pagesReducer from './pagesReducer';\r\nimport headlinesReducer from './headlinesReducer';\r\nimport snackBarReducer from './snackBarReducer';\r\nimport historyReducer from './historyReducer';\r\nimport rockInfoReducer from './rockInfoReducer';\r\nimport newsReducer from './newsReducer';\r\nimport timReducer from './timReducer';\r\nimport bannerReducer from './bannerReducer';\r\nimport albumsReducer from './albumsReducer';\r\nimport playlistsReducer from './playlistsReducer';\r\nimport photoGalleryReducer from './photoGalleryReducer';\r\nimport rockLegendsReducer from './rockLegendsReducer';\r\nimport top20Reducer from './top20Reducer'\r\n\r\nconst rootReducer = combineReducers({\r\n userState: authReducer,\r\n pages: pagesReducer,\r\n headlines: headlinesReducer,\r\n histories: historyReducer,\r\n notifications: snackBarReducer,\r\n news: newsReducer,\r\n rockInfo: rockInfoReducer,\r\n todayInMusic: timReducer,\r\n banners: bannerReducer,\r\n albums: albumsReducer,\r\n playlists: playlistsReducer,\r\n galleries: photoGalleryReducer,\r\n rockLegends: rockLegendsReducer,\r\n top20: top20Reducer\r\n});\r\n\r\nexport default rootReducer;\r\n","import {applyMiddleware, createStore} from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport rootReducer from './reducers/rootReducer';\r\nimport {NOTIFIERS} from './types';\r\nimport setAuthorizationToken from \"../util/auth\";\r\nimport jwt from 'jsonwebtoken';\r\n\r\nconst store = createStore(rootReducer, applyMiddleware(thunk));\r\n\r\nif (localStorage.kptv) {\r\n setAuthorizationToken(localStorage.kptv);\r\n try {\r\n let decodedToken = jwt.decode(localStorage.kptv);\r\n if (decodedToken === null) {\r\n localStorage.removeItem('kptv');\r\n } else {\r\n store.dispatch({type: NOTIFIERS.LOGIN + 2, payload: {user: decodedToken}});\r\n }\r\n } catch (ex) {\r\n localStorage.removeItem('kptv');\r\n console.log(\"invalid authentication\");\r\n }\r\n}\r\n\r\nexport default store;","import axios from 'axios';\r\nimport {rootReducer} from '../store/reducers/rootReducer';\r\nimport store from '../store/store';\r\nimport {enqueueSnackbar} from '../store/actions/snackBarActions';\r\n\r\nexport default function setAuthorizationToken(token) {\r\n if (token) {\r\n axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;\r\n axios.interceptors.response.use(function (response) {\r\n return response;\r\n }, function (error) {\r\n if (error.response.status == 401) {\r\n store.dispatch(enqueueSnackbar({\r\n message: 'Unauthorized: Reason - session expired please Login again.',\r\n options: {variant: 'error'}\r\n }));\r\n }\r\n return Promise.reject(error);\r\n });\r\n } else {\r\n delete axios.defaults.headers.common['Authorization'];\r\n }\r\n}","import axios from 'axios';\r\nimport {NOTIFIERS} from '../types';\r\nimport {BackendSettings} from '../../config/config';\r\nimport setAuthorizationToken from \"../../util/auth\";\r\nimport {enqueueSnackbar} from './snackBarActions';\r\nimport jwt from \"jsonwebtoken\";\r\n\r\nexport const login_a = ({userName, password}) => {\r\n\r\n return (dispatch, getState) => {\r\n console.log(\"::login_a called\");\r\n dispatch({type: NOTIFIERS.LOGIN + 1});\r\n\r\n return axios.post(BackendSettings.baseUrl + \"login\", {username: userName, password: password})\r\n .then((response) => {\r\n if (response.data.status === 1) {\r\n localStorage.setItem(\"kptv\", response.data.token);\r\n setAuthorizationToken(response.data.token);\r\n const tokenDecoded = jwt.decode(response.data.token);\r\n dispatch({type: NOTIFIERS.LOGIN + 2, payload: {user: tokenDecoded}});\r\n } else {\r\n dispatch(enqueueSnackbar({\r\n message: response.data.message,\r\n options: {variant: 'success', autoHideDuration: 2000}\r\n }));\r\n }\r\n })\r\n .catch((err) => {\r\n dispatch({\r\n type: NOTIFIERS.LOGIN + 3,\r\n payload: err.message\r\n });\r\n\r\n console.log(\"current state \", getState());\r\n });\r\n }\r\n}\r\n\r\n\r\nexport const logout_a = () => {\r\n return (dispatch, getState) => {\r\n localStorage.removeItem('kptv');\r\n setAuthorizationToken(false);\r\n dispatch({type: NOTIFIERS.LOGOUT});\r\n }\r\n}\r\n","import React, {Component} from 'react';\r\nimport {Link, Route, Switch} from 'react-router-dom';\r\nimport {connect} from 'react-redux';\r\nimport classNames from 'classnames';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {Button, Drawer} from '@material-ui/core';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport List from '@material-ui/core/List';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport Pages from '../pages/pages';\r\nimport Headlines from '../headlines/headlines';\r\nimport History from '../history/history';\r\nimport RockInfo from '../rockInfo/rockInfo';\r\nimport News from '../news/news';\r\nimport TodayInMusic from '../todayinmusic/todayInMusic';\r\nimport Banners from '../banners/banners';\r\nimport Albums from '../albums/albums';\r\nimport Playlist from '../playlist/playlist';\r\nimport PhotoGallery from '../photoGallery/photoGallery';\r\nimport RockLegends from '../rockLegends/rockLegends';\r\nimport Top20 from '../top20/top20';\r\nimport {logout_a} from '../../store/actions/authActions';\r\n\r\nconst drawerWidth = 200;\r\n\r\nconst styles = theme => ({\r\n root: {\r\n display: 'flex',\r\n \"& a\": {\r\n textDecoration: \"none\"\r\n },\r\n \"& a span\": {\r\n color: \"#FFF\"\r\n\r\n }\r\n\r\n },\r\n appBar: {\r\n background: 'linear-gradient(150deg, #fede00 10%, #000 20%)',\r\n color: \"#000\",\r\n zIndex: theme.zIndex.drawer + 1,\r\n transition: theme.transitions.create(['width', 'margin'], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n },\r\n appBarShift: {\r\n marginLeft: drawerWidth,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create(['width', 'margin'], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n menuButton: {\r\n marginLeft: 6,\r\n marginRight: 36,\r\n },\r\n hide: {\r\n display: 'none',\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n whiteSpace: 'nowrap',\r\n },\r\n drawerOpen: {\r\n width: drawerWidth,\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n drawerClose: {\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n overflowX: 'hidden',\r\n width: theme.spacing.unit * 7 + 1,\r\n [theme.breakpoints.up('sm')]: {\r\n width: theme.spacing.unit * 7 + 1,\r\n },\r\n },\r\n toolbar: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: '0 8px',\r\n ...theme.mixins.toolbar,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit * 3,\r\n },\r\n title: {\r\n flexGrow: 1,\r\n textAlign: \"left\",\r\n paddingLeft: 26,\r\n textShadow: '0 13.36px 8.896px transparent, 0 2px 5px #fff',\r\n },\r\n\r\n logoutButton: {\r\n marginRight: 20,\r\n background: 'linear-gradient(180deg, #000 90%, #333 90%)',\r\n borderRadius: 3,\r\n color: 'white',\r\n padding: '5px 20px',\r\n }\r\n});\r\n\r\nclass AppLayout extends Component {\r\n state = {\r\n leftDrawerOpen: false,\r\n };\r\n\r\n toggleLeftDrawer = () => {\r\n this.setState({...this.state, leftDrawerOpen: !this.state.leftDrawerOpen});\r\n };\r\n\r\n componentWillMount() {\r\n if (this.props.userState.authenticated === false) {\r\n this.props.history.push(\"/\");\r\n }\r\n };\r\n\r\n onLogout = () => {\r\n this.props.logout();\r\n //this.props.history.entries = [];\r\n //this.props.history.index = -1;\r\n this.props.history.push(\"/\");\r\n }\r\n\r\n render() {\r\n const {classes} = this.props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n KPTV\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n pages\r\n whatshot\r\n settings_voice\r\n history\r\n info\r\n \r\n \r\n \r\n calendar_today\r\n star\r\n date_range\r\n \r\n \r\n \r\n photo_album\r\n format_list_numbered\r\n picture_in_picture_alt\r\n vertical_split\r\n\r\n \r\n \r\n \r\n {/*settings*/}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n userState: state.userState\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n logout: () => dispatch(logout_a())\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(AppLayout));\r\n\r\n","import React, {Component, Fragment} from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport {connect} from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport {login_a} from '../../store/actions/authActions';\r\nimport setAuthorizationToken from \"../../util/auth\";\r\n\r\nconst styles = theme => ({\r\n\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing.unit,\r\n },\r\n\r\n root: {\r\n display: 'flex',\r\n }\r\n});\r\n\r\nclass LoginLayout extends Component {\r\n\r\n state = {\r\n userName: \"\",\r\n password: \"\"\r\n };\r\n\r\n static contextTypes = {\r\n router: PropTypes.object\r\n };\r\n\r\n onLogin = (event) => {\r\n this.props.login({\r\n userName: this.state.userName,\r\n password: this.state.password\r\n });\r\n };\r\n\r\n componentWillMount() {\r\n localStorage.removeItem('kptv');\r\n setAuthorizationToken(false);\r\n };\r\n\r\n componentWillUpdate(nextProps) {\r\n console.log(\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\", nextProps.userState);\r\n if (nextProps.userState.authenticated) {\r\n this.context.router.history.push(\"/app\");\r\n }\r\n };\r\n\r\n handlePasswordChange = (event) => {\r\n this.setState({password: event.target.value});\r\n };\r\n\r\n handleUserNameChange = (event) => {\r\n this.setState({userName: event.target.value});\r\n };\r\n\r\n render() {\r\n const {classes/*, theme */} = this.props;\r\n return (\r\n \r\n
\r\n\r\n \r\n Login\r\n \r\n {/*\r\n Create new project \r\n */}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n login: (credentials) => dispatch(login_a(credentials))\r\n }\r\n}\r\n\r\nfunction mapStateToProps({userState}) {\r\n return {userState};\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withStyles(styles/*, { withTheme: true }*/)(LoginLayout));\r\n ","/* eslint-disable react/prop-types */\r\n/* eslint-disable import/no-unresolved */\r\nimport React, {Component} from 'react';\r\nimport {bindActionCreators} from 'redux';\r\nimport {connect} from 'react-redux';\r\nimport {withSnackbar} from 'notistack';\r\nimport {removeSnackbar} from '../../store/actions/snackBarActions';\r\n\r\nclass Notifier extends Component {\r\n displayed = [];\r\n\r\n storeDisplayed = (id) => {\r\n this.displayed = [...this.displayed, id];\r\n };\r\n\r\n shouldComponentUpdate({notifications: newSnacks = []}) {\r\n const {notifications: currentSnacks} = this.props;\r\n\r\n let notExists = false;\r\n for (let i = 0; i < newSnacks.length; i += 1) {\r\n if (notExists) continue;\r\n notExists = notExists || !currentSnacks.filter(({key}) => newSnacks[i].key === key).length;\r\n }\r\n return notExists;\r\n }\r\n\r\n componentDidUpdate() {\r\n const {notifications = []} = this.props;\r\n\r\n notifications.forEach((notification) => {\r\n // Do nothing if snackbar is already displayed\r\n if (this.displayed.includes(notification.key)) return;\r\n // Display snackbar using notistack\r\n this.props.enqueueSnackbar(notification.message, notification.options);\r\n // Keep track of snackbars that we've displayed\r\n this.storeDisplayed(notification.key);\r\n // Dispatch action to remove snackbar from redux store\r\n this.props.removeSnackbar(notification.key);\r\n });\r\n }\r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nconst mapStateToProps = store => ({\r\n notifications: store.notifications.notifications,\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => bindActionCreators({removeSnackbar}, dispatch);\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps,\r\n)(withSnackbar(Notifier));\r\n","const darkCustom = {\r\n color: {\r\n primary: 'white'\r\n },\r\n palette: {\r\n type: 'dark',\r\n },\r\n overrides: {\r\n MuiButton: {\r\n textPrimary: {\r\n color: '#FFFFFF',\r\n }\r\n }\r\n },\r\n};\r\n\r\nexport default darkCustom;","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport default function (ComposedComponent) {\r\n\r\n class Authentication extends Component {\r\n static contextTypes = {\r\n router: PropTypes.object\r\n };\r\n\r\n componentWillMount() {\r\n if (!this.props.userState.authenticated) {\r\n this.context.router.history.push(\"/\");\r\n }\r\n }\r\n\r\n componentWillUpdate(nextProps) {\r\n if (!this.props.userState.authenticated) {\r\n this.context.router.history.push(\"/\");\r\n }\r\n }\r\n\r\n render() {\r\n if (this.props.userState.authenticated) {\r\n return ;\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n function mapStateToProps(state) {\r\n return {\r\n userState: state.userState\r\n }\r\n }\r\n\r\n return connect(mapStateToProps)(Authentication);\r\n}\r\n\r\n","import React, {Component} from 'react';\nimport AppLayout from \"./components/layout/appLayout\";\nimport LoginLayout from \"./components/layout/loginLayout\";\nimport {BrowserRouter, Route} from 'react-router-dom';\nimport {createMuiTheme, MuiThemeProvider} from '@material-ui/core';\nimport Notifier from './components/comps/Notifier';\nimport darkCustom from './theme/darkCustom';\nimport requireAuth from \"./hoc/requireAuth\";\nimport {withStyles} from '@material-ui/core/styles';\nimport {connect} from \"react-redux\";\nimport './App.css';\n\nconst styles = theme => ({});\n\nclass App extends Component {\n\n render() {\n const {classes, theme} = this.props;\n return (\n
\n \n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default connect(null, null)(withStyles(styles, {withTheme: true})(App));\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport {Provider} from 'react-redux';\nimport {SnackbarProvider} from 'notistack';\n\nimport store from './store/store';\n\n//ReactDOM.render(, document.getElementById('root'));\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586