{"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","util/imageHelper.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","image","src","listImage","filtering","isSticky","maxHeight","imageExists","imageData","imagePath","pathParts","split","getImageNameFromPath","NewsForm","content_short","resetStateData","fileName","onDrop","acceptedFiles","rejectedFiles","uploadImage","imageDrop","alt","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","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.1b1ce4bf.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// \tbaseUrl: \"http://localhost/admin2/services/\",\r\n// \tbaseUrlAssets: \"http://localhost/assets\",\r\n// \tbaseImagesUrl: \"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 (rowData.image ? : '');\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","const getImageNameFromPath = (imagePath) => {\n\tconst pathParts = imagePath.split('/');\n\treturn pathParts[pathParts.length - 1] || '';\n}\n\nexport const imageExists = (imageData) => {\n\tif (imageData && imageData.image) {\n\t\treturn getImageNameFromPath(imageData.image).length > 0;\n\t}\n\treturn false;\n}\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\nimport { imageExists } from \"../../util/imageHelper\";\r\n\r\nconst styles = theme => ({\r\n\r\n root: {\r\n borderRadius: 5,\r\n //background: \"#37393d\",\r\n background: 'linear-gradient(180deg, #000 15%, #222 90%)',\r\n display: \"inline-block\",\r\n padding: \"5px 15px\",\r\n \"& a span\": {\r\n color: \"black !important\"\r\n },\r\n \"& textarea\": {\r\n fontSize: 12\r\n },\r\n \"& input\": {\r\n fontSize: 12\r\n }\r\n },\r\n\r\n rootLeft: {\r\n maxWidth: 620,\r\n width: 400,\r\n float: \"left\",\r\n marginRight: 20\r\n },\r\n\r\n rootRight: {\r\n maxWidth: 650,\r\n width: 650,\r\n float: \"left\",\r\n },\r\n\r\n textField: {\r\n marginRight: theme.spacing.unit,\r\n marginTop: 0,\r\n width: 200,\r\n },\r\n imageDrop: {\r\n maxWidth: 200,\r\n maxHeight: 200,\r\n padding: 10,\r\n },\r\n\r\n button: {\r\n margin: theme.spacing.unit,\r\n },\r\n});\r\n\r\nclass NewsForm extends React.Component {\r\n\r\n state = {\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n isSticky: false,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-'),\r\n value: 0,\r\n };\r\n\r\n handleChange = (event) => {\r\n if (event.target.type === \"checkbox\") {\r\n this.setState({...this.state, [event.target.name]: event.target.checked});\r\n } else {\r\n this.setState({...this.state, [event.target.name]: event.target.value});\r\n }\r\n }\r\n\r\n handleEditorChange(event) {\r\n this.setState({...this.state, content: event.editor.getData()});\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.data && nextProps.editMode === true) {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n id: nextProps.data.id,\r\n title: nextProps.data.title,\r\n content: nextProps.data.content,\r\n content_short: nextProps.data.content_short,\r\n isSticky: nextProps.data.isSticky,\r\n publish: nextProps.data.publish,\r\n date: nextProps.data.date,\r\n });\r\n } else {\r\n this.setState({\r\n editMode: nextProps.editMode,\r\n });\r\n }\r\n }\r\n\r\n onButtonClick = (event) => {\r\n switch (event.currentTarget.name) {\r\n case 'formBack':\r\n case 'formCancel':\r\n this.props.onFormEvent(event.currentTarget.name);\r\n this.resetStateData();\r\n break;\r\n case 'formSave':\r\n let data = {\r\n editMode: this.state.editMode,\r\n id: this.state.id,\r\n title: this.state.title,\r\n content: this.state.content,\r\n display_order: this.state.display_order,\r\n publish: this.state.publish,\r\n content_short: this.state.content_short,\r\n date: this.state.date,\r\n isSticky: this.state.isSticky,\r\n fileName: this.props.data !== null ? this.props.data.fileName : null\r\n }\r\n this.props.onFormEvent(event.currentTarget.name, data);\r\n this.resetStateData();\r\n break;\r\n }\r\n }\r\n\r\n resetStateData = () => {\r\n this.setState({\r\n title: '',\r\n content: '',\r\n content_short: '',\r\n display_order: 1,\r\n isSticky: false,\r\n publish: false,\r\n date: new Date().toJSON().slice(0, 10).replace(/-/g, '-'),\r\n value: 0,\r\n });\r\n }\r\n\r\n onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.props.onFormEvent(\"newsImage\", acceptedFiles[0]);\r\n }\r\n\r\n render() {\r\n if (this.props.hidden) {\r\n return null;\r\n }\r\n\r\n const {classes} = this.props;\r\n\r\n let editorData = this.props.data ? this.props.data.content : '';\r\n let onEditorChange = this.handleEditorChange.bind(this);\r\n\r\n let uploadImage = imageExists(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 (rowData.image ? : '')\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\nimport { imageExists } from \"../../util/imageHelper\";\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 = imageExists(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);\r\n","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\nimport { imageExists } from \"../../util/imageHelper\";\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 = imageExists(this.props.data) ?\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\nimport { imageExists } from \"../../util/imageHelper\";\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 = imageExists(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 rowData.image ? : '')\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));\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 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 rowData.image ? : '')\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));\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\nimport { imageExists } from \"../../util/imageHelper\";\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 = imageExists(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);\r\n","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\nimport { imageExists } from \"../../util/imageHelper\";\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 = imageExists(this.props.data) ?\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\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 Admin\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\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 if (nextProps.userState.authenticated) {\r\n this.context.router.history.push(\"/app/pages/\");\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