{"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","defaultSort","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.e324c7cb.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}\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://85.9.62.212/kptv/admin2/services/\",\r\n baseUrlAssets: \"http://testsite.kptv.ro/radio/ro/assets\",\r\n baseImagesUrl: \"http://85.9.62.212/kptv/images/\"\r\n}\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));\r\n","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\troot: {\r\n\t\tminWidth: 1200,\r\n\t\twidth: '100%',\r\n\t\tdisplay: \"inline-block\",\r\n\t\t\"& th\":\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#FFF\",\r\n\t\t\t\tbackgroundColor: \"#000 !important\",\r\n\t\t\t\theight: \"10px !important\",\r\n\t\t\t\tfontSize: \"1rem\"\r\n\t\t\t},\r\n\t\t\"& tr td:first-child\": {\r\n\t\t\twidth: 100\r\n\t\t},\r\n\t\t\"& tfoot tr td:first-child\": {\r\n\t\t\twidth: 500\r\n\t\t}\r\n\t},\r\n\r\n\tlistImage: {\r\n\t\tmaxHeight: 90,\r\n\t},\r\n\r\n\ttitleButton: {\r\n\t\tmarginLeft: 50\r\n\t}\r\n});\r\n\r\nclass NewsTable extends React.Component {\r\n\r\n\tstate = {\r\n\t\tvalue: 0,\r\n\t};\r\n\r\n\tonRowClick = (event, rowData) => {\r\n\t\tthis.props.onRowClick(rowData);\r\n\t}\r\n\r\n\tonButtonClick = (event) => {\r\n\t\tthis.props.eventHandler(event.currentTarget.name);\r\n\t\t//switch(event.currentTarget.name) {}\r\n\t}\r\n\r\n\tonAdd = () => {\r\n\t\tthis.props.eventHandler(\"tableAdd\");\r\n\t}\r\n\r\n\tonDelete = (data) => {\r\n\t\tthis.props.eventHandler(\"tableDelete\", data);\r\n\t}\r\n\r\n\trender() {\r\n\r\n\t\tif (this.props.hidden) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst {data, classes} = this.props;\r\n\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t return ()\r\n\t\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t\t filtering: false\r\n\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t {title: 'Title', field: 'title'},\r\n\t\t\t\t\t\t\t\t {title: 'Date', field: 'date', defaultSort: 'desc'},\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t title: 'Publish',\r\n\t\t\t\t\t\t\t\t\t field: 'publish',\r\n\t\t\t\t\t\t\t\t\t render: rowData => {\r\n\t\t\t\t\t\t\t\t\t\t return (rowData.publish ? \"Yes\" : \"No\")\r\n\t\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t\t filtering: false\r\n\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t title: 'Sticky', field: 'isSticky',\r\n\t\t\t\t\t\t\t\t\t render: rowData => {\r\n\t\t\t\t\t\t\t\t\t\t return (rowData.isSticky ? \"Yes\" : \"No\")\r\n\t\t\t\t\t\t\t\t\t },\r\n\t\t\t\t\t\t\t\t\t filtering: false\r\n\t\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t ]}\r\n\r\n\t\t\t\t\t\t\t options={{\r\n\t\t\t\t\t\t\t\t pageSize: 10,\r\n\t\t\t\t\t\t\t\t pageSizeOptions: [10, 20, 30],\r\n\t\t\t\t\t\t\t\t filtering: true,\r\n\t\t\t\t\t\t\t }}\r\n\r\n\t\t\t\t\t\t\t onRowClick={this.onRowClick}\r\n\r\n\t\t\t\t\t\t\t actions={[{\r\n\t\t\t\t\t\t\t\t disabled: false,\r\n\t\t\t\t\t\t\t\t icon: \"add\",\r\n\t\t\t\t\t\t\t\t //iconProps: {style: {marginLeft:20}},\r\n\t\t\t\t\t\t\t\t isFreeAction: true,\r\n\t\t\t\t\t\t\t\t onClick: this.onAdd\r\n\t\t\t\t\t\t\t }]}\r\n\r\n\t\t\t\t\t\t\t editable={{\r\n\t\t\t\t\t\t\t\t onRowDelete: oldData =>\r\n\t\t\t\t\t\t\t\t\t new Promise((resolve, reject) => {\r\n\t\t\t\t\t\t\t\t\t\t this.onDelete(oldData);\r\n\t\t\t\t\t\t\t\t\t\t resolve();\r\n\t\t\t\t\t\t\t\t\t }),\r\n\t\t\t\t\t\t\t\t /*\r\n\t\t\t\t\t\t\t\t onRowUpdate: (newData, oldData) => {\r\n\t\t\t\t\t\t\t\t\t new Promise((resolve, reject) => {\r\n\t\t\t\t\t\t\t\t\t\t this.onDelete(oldData);\r\n\t\t\t\t\t\t\t\t\t\t resolve();\r\n\t\t\t\t\t\t\t\t\t })\r\n\t\t\t\t\t\t\t\t }*/\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t\t\t\t }\r\n\t\t\t\t/>\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n\treturn {}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {}\r\n}\r\n\r\nexport default withStyles(styles, {withTheme: true})(connect(mapStateToProps, mapDispatchToProps)(NewsTable));\r\n","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 console.log('this.props.data.image ...', this.props.data.image)\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);\r\n","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));\r\n","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\troot: {\r\n\t\tdisplay: 'flex',\r\n\t\t\"& a\": {\r\n\t\t\ttextDecoration: \"none\"\r\n\t\t},\r\n\t\t\"& a span\": {\r\n\t\t\tcolor: \"#FFF\"\r\n\r\n\t\t}\r\n\r\n\t},\r\n\tappBar: {\r\n\t\tbackground: 'linear-gradient(150deg, #fede00 10%, #000 20%)',\r\n\t\tcolor: \"#000\",\r\n\t\tzIndex: theme.zIndex.drawer + 1,\r\n\t\ttransition: theme.transitions.create(['width', 'margin'], {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t},\r\n\tappBarShift: {\r\n\t\tmarginLeft: drawerWidth,\r\n\t\twidth: `calc(100% - ${drawerWidth}px)`,\r\n\t\ttransition: theme.transitions.create(['width', 'margin'], {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t}),\r\n\t},\r\n\tmenuButton: {\r\n\t\tmarginLeft: 6,\r\n\t\tmarginRight: 36,\r\n\t},\r\n\thide: {\r\n\t\tdisplay: 'none',\r\n\t},\r\n\tdrawer: {\r\n\t\twidth: drawerWidth,\r\n\t\tflexShrink: 0,\r\n\t\twhiteSpace: 'nowrap',\r\n\t},\r\n\tdrawerOpen: {\r\n\t\twidth: drawerWidth,\r\n\t\ttransition: theme.transitions.create('width', {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.enteringScreen,\r\n\t\t}),\r\n\t},\r\n\tdrawerClose: {\r\n\t\ttransition: theme.transitions.create('width', {\r\n\t\t\teasing: theme.transitions.easing.sharp,\r\n\t\t\tduration: theme.transitions.duration.leavingScreen,\r\n\t\t}),\r\n\t\toverflowX: 'hidden',\r\n\t\twidth: theme.spacing.unit * 7 + 1,\r\n\t\t[theme.breakpoints.up('sm')]: {\r\n\t\t\twidth: theme.spacing.unit * 7 + 1,\r\n\t\t},\r\n\t},\r\n\ttoolbar: {\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\tpadding: '0 8px',\r\n\t\t...theme.mixins.toolbar,\r\n\t},\r\n\tcontent: {\r\n\t\tflexGrow: 1,\r\n\t\tpadding: theme.spacing.unit * 3,\r\n\t},\r\n\ttitle: {\r\n\t\tflexGrow: 1,\r\n\t\ttextAlign: \"left\",\r\n\t\tpaddingLeft: 26,\r\n\t\ttextShadow: '0 13.36px 8.896px transparent, 0 2px 5px #fff',\r\n\t},\r\n\r\n\tlogoutButton: {\r\n\t\tmarginRight: 20,\r\n\t\tbackground: 'linear-gradient(180deg, #000 90%, #333 90%)',\r\n\t\tborderRadius: 3,\r\n\t\tcolor: 'white',\r\n\t\tpadding: '5px 20px',\r\n\t}\r\n});\r\n\r\nclass AppLayout extends Component {\r\n\tstate = {\r\n\t\tleftDrawerOpen: false,\r\n\t};\r\n\r\n\ttoggleLeftDrawer = () => {\r\n\t\tthis.setState({...this.state, leftDrawerOpen: !this.state.leftDrawerOpen});\r\n\t};\r\n\r\n\tcomponentWillMount() {\r\n\t\tif (this.props.userState.authenticated === false) {\r\n\t\t\tthis.props.history.push(\"/\");\r\n\t\t}\r\n\t};\r\n\r\n\tonLogout = () => {\r\n\t\tthis.props.logout();\r\n\t\t//this.props.history.entries = [];\r\n\t\t//this.props.history.index = -1;\r\n\t\tthis.props.history.push(\"/\");\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst {classes} = this.props;\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tKPTV\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tpages\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\twhatshot\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tsettings_voice\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\thistory\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tinfo\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tcalendar_today\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tstar\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdate_range\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tphoto_album\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tformat_list_numbered\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tpicture_in_picture_alt\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tvertical_split\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{/*settings*/}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n\treturn {\r\n\t\tuserState: state.userState\r\n\t}\r\n}\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n\treturn {\r\n\t\tlogout: () => dispatch(logout_a())\r\n\t}\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