{"version":3,"sources":["../../core/domain/users/Permission.js","common/components/forms/PasswordInput.jsx","../../core/application/audios/categories/audioCategories.js","../../core/application/articles/blogCategories.js","../../core/application/articles/articles.js","common/components/notifications/notifications.js","articles/categories/BlogCategories.jsx","videos/Video.jsx","videos/ManageVideo.jsx","../../core/domain/sites/site.js","currentSite.js","articles/categories/ManageBlogCategory.jsx","common/regexPatterns.js","../../core/application/channels/channels.js","../../core/application/articles/ArticlesFilter.js","../../core/application/programs/ProgramFilter.js","../../core/application/sites/sites.js","../../core/application/events/events.js","events/Event.jsx","events/ManageEvent.jsx","../../core/application/events/eventsCategories.js","events/categories/EventsCategories.jsx","events/categories/ManageEventsCategory.jsx","orchestra/index.js","../../core/application/files/files.js","../../core/application/banners/bannersApi.js","../../core/application/menus/menu.js","../../core/application/users/refreshUser.js","festivals/index.jsx","../../core/application/commons/httpClient.js","menus/Menu.jsx","pages/Page.jsx","pages/ManagePage.jsx","../../core/application/commons/store.js","../../core/application/galleries/galleries.js","../../core/application/galleries/galleryItems.js","../../core/application/pages/page.js","../../core/application/videos/video.js","siteUrlCreator.js","rtshSport/index.js","../../core/application/broadcastCagegories/broadcastCategories.js","rti/index.js","../../core/application/audios/audio.js","../../core/application/publications/publication.js","publications/Publication.jsx","publications/ManagePublication.jsx","../../core/application/publications/publicationCategories.js","publications/categories/PublicationCategory.jsx","publications/categories/ManagePublicationCategory.jsx","rtsh/index.js","../../core/application/reportMessages/reportMessages.js","reportMessages/ReportMessage.jsx","reportMessages/ReportMessages.jsx","../../core/application/horoscopes/zodiacSign.js","horoscopes/ZodiacSign.jsx","horoscopes/ManageZodiacSign.jsx","rtsh24/index.js","authors/ManageAuthor.jsx","tv/index.js","audios/categories/AudioCategories.jsx","audios/categories/ManageAudioCategory.jsx","radio/index.js","../../core/application/auth/authStore.js","common/components/forms/TextInput.jsx","../../core/application/programs/programs.js","../../core/application/audios/audioFilter.js","../../core/application/commons/imageResizer.js","common/components/forms/Switch.jsx","channels/Channels.jsx","channels/ManageChannel.jsx","programs/ManageProgram.jsx","audios/Audio.jsx","audios/ManageAudio.jsx","../../core/application/commons/idGenerator.js","programs/Programs.jsx","common/components/dataEntry/Input.jsx","articles/ArticleSearch.jsx","common/components/forms/ValidationSummary.jsx","../../core/application/profile/editProfile.js","AppContext.js","galleries/Galleries.jsx","galleries/GalleryItems.jsx","galleries/ManageGallery.jsx","galleries/ManageGalleryItem.jsx","broadcastCategories/ManageBroadcastCategories.jsx","broadcastCategories/BroadcastCategories.jsx","common/components/Notification.js","../../core/application/festivals/festivals.js","../../core/application/commons/orderedPaginationFilter.js","common/components/tables/AddButton.jsx","common/components/forms/DatePicker.jsx","common/assets/images/rtsh-logo.png","common/displayUtilities.js","common/components/forms/SaveCancelButtons.jsx","../../core/application/commons/fileUtils.js","common/components/forms/Uploader.jsx","common/configs/routes/Loading.jsx","common/configs/routes/index.js","common/components/tables/TableEditButton.jsx","common/generateFriendlyUrl.js","../../core/application/commons/config.js","../../core/application/commons/adminHttpClient.js","common/components/forms/Select.jsx","common/models/pagedList.js","common/components/tables/TableDeleteButton.jsx","common/components/tables/EditDeleteButtons.jsx","common/components/forms/FormItemError.js","common/components/navigation/utils/activeRoute.js","profile/ManageProfileWrapper.jsx","profile/MyProfile.jsx","profile/ChangePassword.jsx","../../core/application/profile/changePassword.js","profile/index.jsx","common/components/forms/TextArea.jsx","sites/SiteSettings.jsx","sites/index.jsx","../../core/application/manageUsers/manageUsers.js","users/AddUser.jsx","users/ViewUsers.jsx","users/UpdateUser.jsx","users/ChangePasswordForUser.jsx","users/index.jsx","common/components/navigation/Header.jsx","common/components/navigation/utils/menu.js","menus/ManageMenu.jsx","menus/index.jsx","pages/index.jsx","App.js","serviceWorker.js","index.js","common/components/forms/StyledLabel.jsx","../../core/application/users/getLoginUser.js","common/configs/routes/protectedRoute.jsx","common/components/forms/Editor.jsx","common/components/forms/CancelButton.jsx","common/components/forms/SaveButton.jsx","../../core/application/users/user.js","../../core/application/users/userStore.js","common/utilities.js","banners/Banners.jsx","banners/ManageBanner.jsx","../../core/domain/blog/articleStatus.js","../../core/application/languages/languagesApi.js","articles/ArticleHistoryTable.jsx","articles/Articles.jsx","common/components/forms/PublishButton.jsx","articles/ManageArticle.jsx"],"names":["Permission","SaveArticle","PublishArticle","DeleteArticle","All","TextInput","styled","AntInput","Input","label","props","useField","field","meta","htmlFor","id","name","Password","touched","error","controller","getAll","a","async","filter","OrderedPaginationFilter","Error","adminHttpClient","get","pageNumber","orderColumn","orderDescending","getById","delete","getForSave","save","item","post","category","getByLanguage","ArticlesFilter","getHistoryLogForArticle","publish","article","saveAsDraft","swapOrder","currentArticleId","previousArticleId","put","showSuccess","title","message","openNotification","showError","BlogCategories","user","useContext","AppContext","useState","items","setItems","loading","setLoading","updateCategories","queryRequest","blogCategories","forEach","children","length","useEffect","columns","key","dataIndex","sorter","b","sortDirections","priority","defaultSortOrder","render","text","record","leading","moment","created","unix","value","displayDateAndHour","canDoAnything","editUrl","getSiteUrl","onOkDelete","onDeleted","disableDeleted","hasChildren","deleteTitle","span","className","addUrl","rowKey","dataSource","Video","PagedList","pagedList","setPagedList","setFilter","updatePagedList","video","result","visible","canSaveArticle","onDelete","find","c","onChange","pagination","filters","articleFilter","order","current","total","totalItemCount","pageSize","contactFormValidator","Yup","nullable","trim","required","photoId","fileId","ManageVideo","history","useHistory","setItem","errors","setErrors","saveLoading","setSaveLoading","useParams","pageTitle","updateForm","videos","spinning","enableReinitialize","initialValues","validationSchema","onSubmit","values","commandRequest","window","scrollTo","push","type","placeholder","onBlur","e","setFieldValue","currentTarget","initialValue","resizeToWidth","resizeToHeight","fieldName","viewYoutubeChooser","SiteIds","getSiteRoutes","mappings","festivalRoutes","rtshSportRoutes","rtsh24Routes","rtshRoutes","tvRoutes","rtiRoutes","radioRoutes","orchestraRoutes","currentSiteId","getSiteRootPath","FESTIVAL_ROOT_PATH","RTSH_SPORT_ROOT_PATH","RTSH24_ROOT_PATH","RTSH_ROOT_PATH","TV_ROOT_PATH","RTI_ROOT_PATH","RADIO_ROOT_PATH","ORCHESTRA_ROOT_PATH","getCurrentSite","userStore","getUser","ROOT_PATH","ROUTES","showLanguages","showChangeCurrentFestival","validationRules","friendlyUrl","color","matches","CategoryToOptionMapper","site","ManageBlogCategory","isEditMode","parentCategoriesOptions","setParentCategoriesOptions","languages","setLanguages","availableParents","map","availableLanguages","updateParents","languageId","parents","ValidationSummary","itemToSave","parseInt","languageIds","generateFriendlyUrl","Select","defaultValue","itemName","onChanged","parentId","lang","Switch","defaultChecked","Uploader","SaveCancelButtons","getFiltered","channel","searchValue","ProgramFilter","channelFriendlyUrl","date","getSites","getImageLibrary","params","q","settings","event","Events","updatePagedEvents","events","href","TableEditButton","TableDeleteButton","AddButton","eventFilter","content","location","time","typeError","thumbnailPhotoId","ManageEvent","categoriesOptions","setCategoriesOptions","availableCategories","categoryId","categoryIds","DatePicker","showTime","format","Editor","extra","console","log","EventsCategories","data","setData","updateTable","eventsCategories","localeCompare","displayNamedItem","ManageEventsCategory","getLoginUser","icon","path","OrchestraRouter","permissions","exact","Banners","ManageBanner","Event","Articles","ManageArticle","Galleries","ManageGallery","GalleryItems","ManageGalleryItem","Menu","Page","ManagePage","getUploadSignedUrl","getFileUrl","getAllBanners","getBannerWithItems","bannerId","banner","getMenus","menuId","refreshUserInStore","Promise","resolve","then","setUser","catch","Sponsors","loadable","options","ManageSponsor","Participants","ManageParticipant","Songs","ManageSong","Juries","ManageJury","Artists","ManageArtist","Festivals","ManageFestival","Nights","ManageNight","FestivalRouter","HttpClient","baseUrl","this","_baseUrl","axios","create","baseURL","headers","getHeaders","url","reject","_getAxiosInstance","response","err","httpClient","menu","setMenu","defaultMenu","setDefaultMenu","Option","updateMenus","menus","availableMenu","style","width","m","pages","onClick","formValidator","updateSettings","ASelect","Keys","store","localStorage","getItem","setToken","token","getToken","saveObject","object","JSON","stringify","getObject","parse","getGalleries","galleryItem","getGalleryWithItems","ArticleFilter","currentSite","RtshSportRouter","RtiRouter","AudioFilter","publication","Publication","updatePagedPublications","publicationFilter","ManagePublication","publications","documentId","PublicationCategory","publicationCategories","ManagePublicationCategory","RtshRouter","ReportMessage","loadMessage","reportMessages","src","fileUrl","Created","ReportMessages","substring","reportMessagesFilter","ZodiacSign","zodiacSign","ManageZodiacSign","zodiac","zodiacSignId","Rtsh24Router","TvRouter","Channels","ManageChannel","Programs","ManageProgram","AudioCategories","audioCategories","EditDeleteButtons","ManageAudioCategory","RadioRouter","Audio","ManageAudio","BroadcastCategories","ManageBroadcastCategories","authStore","weekDays","program","calculateWidthAndHeight","imageWidth","imageHeight","desiredWidth","desiredHeight","optimizedResize","resizeWidth","resizeHeight","dataURLToBlob","dataURL","indexOf","parts","split","contentType","raw","Blob","atob","rawLength","uInt8Array","Uint8Array","i","charCodeAt","resizeImage","file","maxWidth","maxHeight","reader","FileReader","onload","readerEvent","image","Image","height","canvas","document","createElement","getContext","drawImage","dataUrl","toDataURL","target","readAsDataURL","context","useFormikContext","setValue","checked","updatePagedChannels","channels","channelFilter","horizontalPhotoId","verticalPhotoId","rating","min","max","programs","request","gutter","podcastId","podcast","setPodcast","audioFilter","updateEpisodesPagedList","audio","audios","podcastResult","idGenerator","uuidv4","replace","r","Math","random","toString","toDate","channelItems","setChannelItems","pagedItems","newFilter","onSearch","SearchInput","onKeyUp","keyCode","React","createContext","galleries","galleryItems","dateTaken","galleryId","broadcastCategories","notification","description","antNotification","getFestivalSongs","festivalId","dateString","utc","module","exports","displayDate","dateAsString","namedItem","saveTitle","cancelTitle","backUrl","htmlType","goBack","isYoutubeLink","includes","pieces","handleBeforeUpload","isValidFile","isSizeValid","size","uploadFile","filename","fileType","blob","files","preSignedUrl","signedUrl","objectKey","uploadImage","requiresResize","isSvg","isPdf","pop","isWord","isAudio","isVideo","isImage","extension","DisplayPdf","fontSize","DisplayWord","DisplayImage","imageStyle","border","padding","display","DisplayAudio","controls","DisplayVideo","viewImageLibrary","setFileUrl","showModalLibrary","setShowModalLibrary","pageCount","imagesFromLibrary","setImagesFromLibrary","currentPage","setCurrentPage","librarySearch","setLibrarySearch","updateFileUrl","fileUtils","frameBorder","allow","allowFullScreen","listType","showUploadList","beforeUpload","customRequest","marginTop","sitesApi","images","newFileUrl","notifications","onCancel","footer","nextPage","antIcon","spin","fallback","indicator","appendEditUrlAfterSiteUrl","resultUrl","replaceGreekLettersWithEnglish","str","from","to","toLowerCase","config","apiEndpoint","AdminHttpClient","Authorization","StyledLabel","input","option","mode","showSearch","filterOption","confirm","Modal","disabled","onOk","Text","Typography","FormItemError","activeRoute","links","link","Sider","AntLayout","ManageProfileWrapper","useLocation","activeKey","setActiveKey","pathname","res","navigationPathMapping","NaviationMapping","MyProfile","goTo","selectedKeys","Item","MY_PROFILE_PATH","CHANGE_PASSWORD_PATH","submiting","setSubmiting","editProfile","active","formik","isValidSync","currentPassword","newPassword","passwordConfirmation","when","schema","test","ChangePassword","PasswordInput","Map","ProfileRouter","TextArea","AntArea","Area","rows","logo","SiteSettings","festivals","setFestivals","manageSites","festivalApi","reload","favicon","currentFestivalId","festival","edition","SaveButton","CancelButton","SiteRouter","username","email","password","roleId","AddUser","roles","setRoles","sites","setSites","siteIds","setSiteIds","manageUsers","availableRoles","availableSites","onSiteIdsSelected","USERS_ROOT_PATH","role","ViewUsers","updatePagedUsers","userId","ADD_USER_PATH","userFilter","UpdateUser","ChangePasswordForUser","getUserInfo","UsersRouter","AntHeader","Layout","Header","selectedKey","personalMenu","logoUrl","alt","defaultSelectedKeys","SubMenu","child","categoriesMenu","firstNameLastName","firstName","lastName","getUserInitials","overlay","preventDefault","ManageMenu","availableInternalUrls","MenuRouter","PageRouter","PageNotFound","Error500Page","Error401Page","LoginForm","Content","App","undefined","setKey","headerRoutes","currentPath","isLoginPage","layoutClasses","Boolean","hostname","match","ReactDOM","Provider","getElementById","navigator","serviceWorker","ready","registration","unregister","isAuthorized","allowedPermissions","j","ProtectedRoute","rest","handleImageUpload","blobInfo","success","failure","resizedBlob","apiKey","init","menubar","plugins","toolbar","quickbars_selection_toolbar","contextmenu","images_upload_handler","getContent","setFieldTouched","User","jsonParsed","func","status","LastBannerSelectedStoreKey","banners","setBanners","tableLoading","setTableLoading","bannersLoading","setBannersLoading","selectedBanner","setSelectedBanner","lastBannerSelected","bannersApi","bannerItems","found","showDescription","ArticleStatus","Draft","Published","ArticleHistoryTable","articleHistoryLog","createdBy","operation","RNDContext","createDndContext","HTML5Backend","DragableBodyRow","index","moveRow","restProps","ref","useRef","useDrop","accept","collect","monitor","dragIndex","isOver","dropClassName","drop","useDrag","isDragging","drag","cursor","LastFilterStoreKey","storedFilter","showArticleHistoryModal","setShowArticleHistoryModal","setArticleHistoryLog","updatePagedArticles","articles","languagesApi","components","body","row","useCallback","hoverIndex","dragRow","hoverRow","manager","tagColor","canDeleteArticle","ArticleSearch","DndProvider","dragDropManager","onRow","PublishButton","saveAsDraftLoading","setAsSaveDraftLoading","setSaveAsDraft","publishLoading","setPublishLoading","articlesApi","blogCategoriesApi","categories","tags","tag","canPublishArticle"],"mappings":"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","file":"static/js/main.9be6e222.chunk.js","sourcesContent":["const Permission = {\r\n SaveArticle: 0,\r\n PublishArticle: 1,\r\n DeleteArticle: 2,\r\n All: 3\r\n};\r\n\r\nexport default Permission;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useField } from \"formik\";\r\nimport { Input as AntInput } from \"antd\";\r\nimport Error from \"./FormItemError\";\r\nimport StyledLabel from \"./StyledLabel\";\r\n\r\nconst TextInput = styled(AntInput)`\r\n width: 40%;\r\n`;\r\n\r\nconst Input = ({ label, ...props }) => {\r\n const [field, meta] = useField(props);\r\n return (\r\n <>\r\n {label}\r\n \r\n {meta.touched && meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nexport default Input;\r\n","import OrderedPaginationFilter from \"../../commons/orderedPaginationFilter\";\r\nimport {adminHttpClient} from \"../../commons/adminHttpClient\";\r\n\r\nconst controller = \"/audios/categories\";\r\n\r\nexport default {\r\n getAll: async (filter = new OrderedPaginationFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(\r\n `${controller}?PageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&orderDescending=${filter.orderDescending}`\r\n );\r\n },\r\n getById: async id => adminHttpClient.get(`${controller}/${id}`),\r\n delete: async id => adminHttpClient.delete(`${controller}/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`${controller}/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`${controller}/forSave`);\r\n },\r\n save: async item => adminHttpClient.post(`${controller}`, item),\r\n};","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async () => {\r\n return adminHttpClient.get(`/blogCategories`);\r\n },\r\n delete: async id => adminHttpClient.delete(`/blogCategories/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/blogCategories/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/blogCategories/forSave`);\r\n },\r\n save: async category => adminHttpClient.post(`/blogCategories`, category),\r\n getByLanguage: async id => adminHttpClient.get(`/blogCategories/byLanguage/${id}`)\r\n};\r\n","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\nimport ArticlesFilter from \"./ArticlesFilter\";\r\n\r\nexport default {\r\n getAll: async (filter = new ArticlesFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(`/articles`, filter);\r\n },\r\n delete: async id => adminHttpClient.delete(`/articles/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/articles/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/articles/forSave`);\r\n },\r\n getHistoryLogForArticle: async id => adminHttpClient.get(`/articles/HistoryLog/${id}`),\r\n publish: async article => adminHttpClient.post(`/articles/publish`, article),\r\n saveAsDraft: async article => adminHttpClient.post(`/articles/saveAsDraft`, article),\r\n swapOrder: async (currentArticleId, previousArticleId) => {\r\n return adminHttpClient.put(`/articles/SwapArticlesOrder`, {previousArticleId, currentArticleId});\r\n }\r\n};","import openNotification from \"../Notification\";\r\n\r\nexport default {\r\n showSuccess: (title = \"Operacioni\", message = \"Ruajtja u krye me sukses\") => {\r\n openNotification(\"success\", title, message);\r\n },\r\n showError: (title = \"Gabim\") => {\r\n openNotification(\"error\", title, \"message\");\r\n },\r\n};","import React, {useContext, useEffect, useState} from \"react\";\r\nimport {Col, Row, Table} from \"antd\";\r\n\r\nimport {queryRequest} from \"../../common/utilities\";\r\nimport EditDeleteButtons from \"../../common/components/tables/EditDeleteButtons\";\r\nimport AddButton from \"../../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport blogCategories from \"core/application/articles/blogCategories\";\r\nimport {displayDateAndHour,} from \"../../common/displayUtilities\";\r\nimport {AppContext} from \"../../AppContext\";\r\nimport moment from \"moment\";\r\nimport CheckCircleFilled from \"@ant-design/icons/lib/icons/CheckCircleFilled\";\r\n\r\nconst BlogCategories = () => {\r\n const {user} = useContext(AppContext);\r\n const [items, setItems] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const updateCategories = async () => {\r\n setLoading(true);\r\n const items = await queryRequest(() => blogCategories.getAll());\r\n items.forEach(item => {\r\n item.children = item.children.length === 0 ? null : item.children;\r\n });\r\n setItems(items);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateCategories();\r\n })();\r\n }, []);\r\n\r\n const columns = [\r\n {\r\n key: \"name\",\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: (a, b) => a.length - b.length,\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n key: \"priority\",\r\n title: \"Prioriteti\",\r\n dataIndex: \"priority\",\r\n sorter: (a, b) => a.priority - b.priority,\r\n defaultSortOrder: \"ascend\",\r\n sortDirections: [\"descend\", \"ascend\"],\r\n },\r\n {\r\n title: \"Kryesues\",\r\n dataIndex: \"leading\",\r\n sorter: false,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => (\r\n record.leading ? () : \"\"\r\n )\r\n },\r\n {\r\n key: \"created\",\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: (a, b) => moment(a.created).unix() - moment(b.created).unix(),\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => {\r\n return user.canDoAnything && ( blogCategories.delete(record.id)}\r\n onDeleted={() => updateCategories()}\r\n disableDeleted={record.hasChildren}\r\n deleteTitle={\r\n record.hasChildren ? \"Nuk mund të fshihet sepse ka fëmijë.\" : \"\"\r\n }\r\n />)\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Kategoritë

\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 BlogCategories;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Col, Row, Table } from \"antd\";\r\n\r\nimport video from \"core/application/videos/video\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport { displayDateAndHour } from \"../common/displayUtilities\";\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst Video = () => {\r\n const { user } = useContext(AppContext);\r\n\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(true);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"created\"\r\n })\r\n );\r\n\r\n const updatePagedList = async () => {\r\n const result = await queryRequest(() => video.getAll(filter));\r\n setPagedList(result);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setLoading(true);\r\n await updatePagedList();\r\n setLoading(false);\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const articleFilter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(articleFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => {text}\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n video.delete(record.id)}\r\n onDeleted={() => updatePagedList()}\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n const columnToSort = columns.find(c => c.dataIndex === filter.orderColumn);\r\n columnToSort.defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Video

\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 Video;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport {Spin} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport videos from \"core/application/videos/video\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n photoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n fileId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManageVideo = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko videon\" : \"Shto video\";\r\n\r\n const updateForm = async () => {\r\n const video = await queryRequest(() => videos.getForSave(id));\r\n setItem(video);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n setLoading(false);\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n const result = await commandRequest(() => videos.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e videos u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/video\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n props.setFieldValue(\"name\", e.currentTarget.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageVideo;\r\n","const SiteIds = {\r\n FESTIVAL_ID: '1',\r\n RTSH_SPORT_ID: '2',\r\n RTSH_24_ID: '3',\r\n RTSH_MAIN: '4',\r\n RTSH_TV: '5',\r\n RTSH_RTI: '6',\r\n RTSH_RADIO: '7',\r\n RTSH_ORCHESTRA: '8',\r\n}\r\n\r\nexport {SiteIds}","import {FESTIVAL_ROOT_PATH, festivalRoutes} from \"./festivals\";\r\nimport {RTSH_SPORT_ROOT_PATH, rtshSportRoutes} from \"./rtshSport\";\r\nimport {RTSH_ROOT_PATH, rtshRoutes} from \"./rtsh\";\r\nimport {RTSH24_ROOT_PATH, rtsh24Routes} from \"./rtsh24\";\r\nimport {TV_ROOT_PATH, tvRoutes} from \"./tv\";\r\nimport {RTI_ROOT_PATH, rtiRoutes} from \"./rti\";\r\nimport {RADIO_ROOT_PATH, radioRoutes} from \"./radio\";\r\nimport {ORCHESTRA_ROOT_PATH, orchestraRoutes} from \"./orchestra\";\r\nimport userStore from \"core/application/users/userStore\";\r\nimport {SiteIds} from \"core/domain/sites/site\";\r\n\r\nconst getSiteRoutes = user => {\r\n const mappings = {};\r\n mappings[SiteIds.FESTIVAL_ID] = festivalRoutes;\r\n mappings[SiteIds.RTSH_SPORT_ID] = rtshSportRoutes;\r\n mappings[SiteIds.RTSH_24_ID] = rtsh24Routes;\r\n mappings[SiteIds.RTSH_MAIN] = rtshRoutes;\r\n mappings[SiteIds.RTSH_TV] = tvRoutes;\r\n mappings[SiteIds.RTSH_RTI] = rtiRoutes;\r\n mappings[SiteIds.RTSH_RADIO] = radioRoutes;\r\n mappings[SiteIds.RTSH_ORCHESTRA] = orchestraRoutes;\r\n return mappings[user.currentSiteId];\r\n};\r\n\r\nconst getSiteRootPath = user => {\r\n const mappings = { };\r\n mappings[SiteIds.FESTIVAL_ID] = FESTIVAL_ROOT_PATH;\r\n mappings[SiteIds.RTSH_SPORT_ID] = RTSH_SPORT_ROOT_PATH;\r\n mappings[SiteIds.RTSH_24_ID] = RTSH24_ROOT_PATH;\r\n mappings[SiteIds.RTSH_MAIN] = RTSH_ROOT_PATH;\r\n mappings[SiteIds.RTSH_TV] = TV_ROOT_PATH;\r\n mappings[SiteIds.RTSH_RTI] = RTI_ROOT_PATH;\r\n mappings[SiteIds.RTSH_RADIO] = RADIO_ROOT_PATH;\r\n mappings[SiteIds.RTSH_ORCHESTRA] = ORCHESTRA_ROOT_PATH;\r\n return mappings[user.currentSiteId];\r\n};\r\n\r\nconst getCurrentSite = () => {\r\n const user = userStore.getUser();\r\n if (user == null) {\r\n throw new Error(\"Përdoruesi i kyçur nuk ekziston\");\r\n }\r\n return {\r\n ROOT_PATH: getSiteRootPath(user),\r\n ROUTES: getSiteRoutes(user),\r\n showLanguages: user.currentSiteId === SiteIds.RTSH_RTI,\r\n showChangeCurrentFestival: user.currentSiteId === SiteIds.FESTIVAL_ID,\r\n };\r\n};\r\n\r\nexport default getCurrentSite;\r\n","import React, {useState, useEffect, useContext} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport generateFriendlyUrl from \"../../common/generateFriendlyUrl\";\r\nimport openNotification from \"../../common/components/Notification\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport Input from \"../../common/components/forms/TextInput\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport ValidationSummary from \"../../common/components/forms/ValidationSummary\";\r\nimport { commandRequest, queryRequest } from \"../../common/utilities\";\r\nimport SaveCancelButtons from \"../../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport blogCategories from \"core/application/articles/blogCategories\";\r\nimport Select from \"../../common/components/forms/Select\";\r\nimport Uploader from \"../../common/components/forms/Uploader\";\r\nimport { hexCodeRegex } from \"../../common/regexPatterns\";\r\nimport {AppContext} from \"../../AppContext\";\r\nimport Switch from \"../../common/components/forms/Switch\";\r\nimport editProfile from \"core/application/profile/editProfile\";\r\n\r\nconst validationRules = {\r\n name: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\"),\r\n color: Yup.string().nullable().trim().matches(hexCodeRegex, \"Kodi i ngjyrës i pavlefshëm\")\r\n}\r\n\r\n\r\nconst CategoryToOptionMapper = site => (\r\n \r\n);\r\n\r\nconst ManageBlogCategory = () => {\r\n let history = useHistory();\r\n const { user, site } = useContext(AppContext);\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko kategorinë\" : \"Krijo kategorinë\";\r\n const isEditMode = !!id;\r\n const [parentCategoriesOptions, setParentCategoriesOptions] = useState([]);\r\n const [languages, setLanguages] = useState([]);\r\n\r\n if(site.showLanguages) {\r\n validationRules[\"languageId\"] = Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Ju lutem zgjidhni një gjuhe\");\r\n }\r\n\r\n const contactFormValidator = Yup.object(validationRules);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n\r\n const item = await queryRequest(() => blogCategories.getForSave(id));\r\n if(item) {\r\n setParentCategoriesOptions(\r\n item.availableParents.map(CategoryToOptionMapper)\r\n );\r\n\r\n setLanguages(item.availableLanguages);\r\n }\r\n\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n })();\r\n }, []);\r\n\r\n const updateParents = async (languageId) => {\r\n debugger;\r\n let parents = await queryRequest(() => blogCategories.getByLanguage(languageId));\r\n parents = parents.filter(c => c.id !== item.id)\r\n setParentCategoriesOptions(parents.map(CategoryToOptionMapper));\r\n }\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n const itemToSave = {\r\n ...values,\r\n priority: parseInt(values.priority, 10),\r\n languageIds: values.languageId ? [values.languageId] : []\r\n };\r\n\r\n const result = await commandRequest(() => blogCategories.save(itemToSave));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ruajtja e kategorisë u bë me sukses.\");\r\n history.push(getSiteUrl(\"/blogCategories\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n if(!isEditMode) {\r\n props.setFieldValue(\"friendlyUrl\", generateFriendlyUrl(e.currentTarget.value));\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n {site.showLanguages && (\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {parentCategoriesOptions.length > 0 && (\r\n \r\n \r\n {parentCategoriesOptions}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageBlogCategory;\r\n","export const hexCodeRegex = /^#(?:[0-9a-fA-F]{3}){1,2}$/;\r\n","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\nimport OrderedPaginationFilter from \"../commons/orderedPaginationFilter\";\r\n\r\nexport default {\r\n getFiltered: async (filter = new OrderedPaginationFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(`/channels`, filter);\r\n },\r\n getAll: async () => {\r\n return adminHttpClient.get(`/channels/all`);\r\n },\r\n delete: async id => adminHttpClient.delete(`/channels/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/channels/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/channels/forSave`);\r\n },\r\n save: async channel => adminHttpClient.post(`/channels`, channel)\r\n};\r\n","import OrderedPaginationFilter from \"../commons/orderedPaginationFilter\";\r\n\r\nexport default class ArticlesFilter extends OrderedPaginationFilter {\r\n constructor({\r\n pageNumber = 1,\r\n orderColumn = \"created\",\r\n orderDescending = true,\r\n searchValue = \"\",\r\n languageId = \"\"\r\n } = {}) {\r\n super({\r\n pageNumber,\r\n orderColumn,\r\n orderDescending,\r\n searchValue\r\n });\r\n this.languageId = languageId;\r\n }\r\n}\r\n","import OrderedPaginationFilter from \"../commons/orderedPaginationFilter\";\r\n\r\nclass ProgramFilter extends OrderedPaginationFilter {\r\n constructor({\r\n pageNumber = 1,\r\n orderColumn = \"created\",\r\n orderDescending = true,\r\n searchValue = \"\",\r\n channelFriendlyUrl = \"\",\r\n date = null\r\n } = {}) {\r\n super({\r\n pageNumber,\r\n orderColumn,\r\n orderDescending,\r\n searchValue\r\n });\r\n this.channelFriendlyUrl = channelFriendlyUrl;\r\n this.date = date;\r\n }\r\n}\r\n\r\nexport default ProgramFilter;","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getSites: () => adminHttpClient.get(`/sites`),\r\n getImageLibrary: (params = {pageNumber: 1, q: \"\"}) => adminHttpClient.get(`/sites/imageLibrary`, params),\r\n getForSave: async () => adminHttpClient.get(`/sites/forUpdate`),\r\n save: async settings => adminHttpClient.post(\"/sites\", settings)\r\n};\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\nimport OrderedPaginationFilter from \"../commons/orderedPaginationFilter\";\r\n\r\nexport default {\r\n getAll: async (filter = new OrderedPaginationFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(\r\n `/events?pageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&orderDescending=${filter.orderDescending}`\r\n );\r\n },\r\n delete: async id => adminHttpClient.delete(`/events/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/events/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/events/forSave`);\r\n },\r\n save: async event => adminHttpClient.post(`/events`, event)\r\n};\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { Row, Table, Col, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport events from \"core/application/events/events\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport { displayDateAndHour } from \"../common/displayUtilities\";\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst Events = () => {\r\n const { user } = useContext(AppContext);\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(false);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"created\"\r\n })\r\n );\r\n\r\n const updatePagedEvents = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => events.getAll(filter));\r\n setPagedList(result);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updatePagedEvents();\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const eventFilter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(eventFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Titulli\",\r\n dataIndex: \"title\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n )\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n events.delete(record.id)}\r\n onDeleted={() => updatePagedEvents()}\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n columns.find(\r\n c => c.dataIndex === filter.orderColumn\r\n ).defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n \r\n \r\n \r\n

Evente

\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 Events;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport moment from \"moment\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport Editor from \"../common/components/forms/Editor\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport events from \"core/application/events/events\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport Select from \"../common/components/forms/Select\";\r\nimport DatePicker from \"../common/components/forms/DatePicker\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n title: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n content: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n location: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n time: Yup.date()\r\n .required(\"Fushë e detyrueshme\")\r\n .typeError(\"Fushë e detyrueshme\"),\r\n photoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n thumbnailPhotoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst CategoryToOptionMapper = site => (\r\n \r\n);\r\n\r\nconst ManageEvent = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko eventin\" : \"Krijo event\";\r\n const [categoriesOptions, setCategoriesOptions] = useState([]);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const item = await queryRequest(() => events.getForSave(id));\r\n setCategoriesOptions(item.availableCategories.map(CategoryToOptionMapper));\r\n item.categoryId = item.categoryIds.length > 0 ? item.categoryIds[0] : null;\r\n if (!id) {\r\n setItem({\r\n title: \"\",\r\n photoId: \"\",\r\n location: \"\",\r\n thumbnailPhotoId: \"\",\r\n content: \"\",\r\n time: moment()\r\n });\r\n } else {\r\n setItem({\r\n ...item,\r\n time: moment(item.time, \"YYYY-MM-DD HH:mm\")\r\n });\r\n }\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const result = await commandRequest(() => events.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e eventit u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/events\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n if (!item.friendlyUrl) {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {categoriesOptions.length > 0 && (\r\n \r\n \r\n {categoriesOptions}\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 ManageEvent;\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async () => adminHttpClient.get(\"/eventsCategories\"),\r\n delete: async id => adminHttpClient.delete(`/eventsCategories/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/eventsCategories/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/eventsCategories/forSave`);\r\n },\r\n save: async category => adminHttpClient.post(`/eventsCategories`, category)\r\n};\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { Row, Table, Col, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport { queryRequest } from \"../../common/utilities\";\r\nimport TableEditButton from \"../../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport eventsCategories from \"core/application/events/eventsCategories\";\r\nimport {\r\n displayDateAndHour,\r\n displayNamedItem\r\n} from \"../../common/displayUtilities\";\r\nimport { AppContext } from \"../../AppContext\";\r\n\r\nconst onChange = (pagination, filters, sorter, extra) => {\r\n console.log(\"params\", pagination, filters, sorter, extra);\r\n};\r\n\r\nconst EventsCategories = () => {\r\n const { user } = useContext(AppContext);\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const updateTable = async () => {\r\n setLoading(true);\r\n\r\n const items = await queryRequest(() => eventsCategories.getAll());\r\n setData(items);\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateTable();\r\n }, []);\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: (a, b) => a.name.localeCompare(b.name),\r\n sortDirections: [\"descend\", \"ascend\"],\r\n },\r\n {\r\n title: \"Prioriteti\",\r\n dataIndex: \"priority\",\r\n sorter: (a, b) => a.priority - b.priority,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n },\r\n {\r\n title: \"Prindi\",\r\n dataIndex: \"parent\",\r\n render: value => displayNamedItem(value)\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: (a, b) => moment(a.created).unix() - moment(b.created).unix(),\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n eventsCategories.delete(record.id)}\r\n onDeleted={() => updateTable()}\r\n // disableDeleted={record.hasChildren}\r\n // deleteTitle={\r\n // record.hasChildren ? \"Nuk mund të fshihet sepse ka fëmijë.\" : \"\"\r\n // }\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n

Kategoritë e Eventeve

\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 EventsCategories;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\n\r\nimport generateFriendlyUrl from \"../../common/generateFriendlyUrl\";\r\nimport openNotification from \"../../common/components/Notification\";\r\nimport Input from \"../../common/components/forms/TextInput\";\r\nimport ValidationSummary from \"../../common/components/forms/ValidationSummary\";\r\nimport { commandRequest, queryRequest } from \"../../common/utilities\";\r\nimport SaveCancelButtons from \"../../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport eventsCategories from \"core/application/events/eventsCategories\";\r\nimport Select from \"../../common/components/forms/Select\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst CategoryToOptionMapper = site => (\r\n \r\n);\r\n\r\nconst ManageEventsCategory = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko kategorinë\" : \"Krijo kategori\";\r\n const [parentCategoriesOptions, setParentCategoriesOptions] = useState([]);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const item = await queryRequest(() => eventsCategories.getForSave(id));\r\n setParentCategoriesOptions(\r\n item.availableParents.map(CategoryToOptionMapper)\r\n );\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n const itemToSave = {\r\n ...values,\r\n priority: parseInt(values.priority, 10)\r\n };\r\n const result = await commandRequest(() =>\r\n eventsCategories.save(itemToSave)\r\n );\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e kategorisë u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/eventsCategories\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n if (!item.friendlyUrl) {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\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 {parentCategoriesOptions.length > 0 && (\r\n \r\n \r\n {parentCategoriesOptions}\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 ManageEventsCategory;\r\n","import {Switch} from \"react-router-dom\";\r\nimport React from \"react\";\r\n\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Banners from \"../banners/Banners\";\r\nimport ManageBanner from \"../banners/ManageBanner\";\r\nimport Event from \"../events/Event\";\r\nimport ManageEvent from \"../events/ManageEvent\";\r\nimport EventsCategories from \"../events/categories/EventsCategories\";\r\nimport ManageEventsCategory from \"../events/categories/ManageEventsCategory\";\r\nimport Galleries from \"../galleries/Galleries\";\r\nimport GalleryItems from \"../galleries/GalleryItems\";\r\nimport ManageGallery from \"../galleries/ManageGallery\";\r\nimport ManageGalleryItem from \"../galleries/ManageGalleryItem\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\nimport Menu from \"../menus/Menu\";\r\nimport Page from \"../pages/Page\";\r\nimport ManagePage from \"../pages/ManagePage\";\r\nimport Articles from \"../articles/Articles\";\r\nimport ManageArticle from \"../articles/ManageArticle\";\r\nimport BlogCategories from \"../articles/categories/BlogCategories\";\r\nimport ManageBlogCategory from \"../articles/categories/ManageBlogCategory\";\r\nimport Video from \"../videos/Video\";\r\nimport ManageVideo from \"../videos/ManageVideo\";\r\n\r\nconst ORCHESTRA_ROOT_PATH = \"/orchestra\";\r\n\r\nconst user = getLoginUser();\r\n\r\nconst orchestraRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-8\",\r\n path: `${ORCHESTRA_ROOT_PATH}/articles`,\r\n name: \"Artikuj\",\r\n children: [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-81\",\r\n path: `${ORCHESTRA_ROOT_PATH}/articles`,\r\n name: \"Të gjithë artikujt\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-82\",\r\n path: `${ORCHESTRA_ROOT_PATH}/blogCategories`,\r\n name: \"Kategoritë\"\r\n }\r\n ]\r\n }\r\n];\r\n\r\nif (user && user.canDoAnything) {\r\n orchestraRoutes.push(\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: `${ORCHESTRA_ROOT_PATH}/banners`,\r\n name: \"Banera\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-3\",\r\n path: `${ORCHESTRA_ROOT_PATH}/events`,\r\n name: \"Evente\",\r\n children: [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-3\",\r\n path: `${ORCHESTRA_ROOT_PATH}/events`,\r\n name: \"Të gjitha eventet\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-4\",\r\n path: `${ORCHESTRA_ROOT_PATH}/eventsCategories`,\r\n name: \"Kategori Eventesh\"\r\n }\r\n ]\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-8\",\r\n path: `${ORCHESTRA_ROOT_PATH}/video`,\r\n name: \"Video\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-5\",\r\n path: `${ORCHESTRA_ROOT_PATH}/galleries`,\r\n name: \"Galeria\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-6\",\r\n path: `${ORCHESTRA_ROOT_PATH}/menu`,\r\n name: \"Menu\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-7\",\r\n path: `${ORCHESTRA_ROOT_PATH}/pages`,\r\n name: \"Faqe statike\"\r\n },\r\n );\r\n}\r\n\r\nconst OrchestraRouter = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\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 {OrchestraRouter, ORCHESTRA_ROOT_PATH, orchestraRoutes};\r\n","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getUploadSignedUrl: (fileId) => adminHttpClient.get(`/files/UploadSignedUrl?fileId=${fileId}`),\r\n getFileUrl: (fileId) => adminHttpClient.get(`/files/FileUrl?fileId=${fileId}`)\r\n}","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAllBanners: () => adminHttpClient.get(`/banners`),\r\n getBannerWithItems: (bannerId) => adminHttpClient.get(`/banners/${bannerId}`),\r\n save: banner => adminHttpClient.post(`/banners`, banner),\r\n delete: async id => adminHttpClient.delete(`/banners/${id}`),\r\n getForSave: async (bannerId, id) => {\r\n if(id) {\r\n return adminHttpClient.get(`/banners/forSave/${bannerId}/${id}`);\r\n }\r\n return adminHttpClient.get(`/banners/forSave/${bannerId}`);\r\n },\r\n};\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getMenus: async () => adminHttpClient.get(\"/Menu\"),\r\n\r\n getAll: async id => {\r\n return adminHttpClient.get(`/menu/${id}`);\r\n },\r\n getForSave: async (menuId, id) => {\r\n if (id) {\r\n return adminHttpClient.get(`/menu/forSave/${menuId}/${id}`);\r\n }\r\n return adminHttpClient.get(`/menu/forSave/${menuId}`);\r\n },\r\n delete: async id => adminHttpClient.delete(`/menu/${id}`),\r\n save: async values => adminHttpClient.post(`/menu`, values)\r\n};\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\nimport userStore from \"./userStore\";\r\n\r\nconst refreshUserInStore = () => {\r\n return new Promise(resolve => {\r\n adminHttpClient\r\n .get(\"/users/me\")\r\n .then(user => {\r\n userStore.setUser(user);\r\n resolve(user);\r\n })\r\n .catch(() => {\r\n userStore.setUser(null);\r\n });\r\n });\r\n};\r\n\r\nexport default refreshUserInStore;\r\n","import ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport React from \"react\";\r\nimport loadable from \"@loadable/component\";\r\nimport {options} from \"../common/configs/routes\";\r\nimport {Switch} from \"react-router-dom\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\nimport {ORCHESTRA_ROOT_PATH} from \"../orchestra\";\r\nimport Menu from \"../menus/Menu\";\r\nimport Page from \"../pages/Page\";\r\nimport ManagePage from \"../pages/ManagePage\";\r\n\r\nconst Sponsors = loadable(() => import(\"./sponsors/Sponsors\"), options);\r\nconst ManageSponsor = loadable(\r\n () => import(\"./sponsors/ManageSponsor\"),\r\n options\r\n);\r\nconst Participants = loadable(() => import(\"./participants/Participants\"));\r\nconst ManageParticipant = loadable(() =>\r\n import(\"./participants/ManageParticipant\")\r\n);\r\nconst Songs = loadable(() => import(\"./songs/Songs\"), options);\r\nconst ManageSong = loadable(() => import(\"./songs/ManageSong\"), options);\r\nconst Juries = loadable(() => import(\"./juries/Juries\"), options);\r\nconst ManageJury = loadable(() => import(\"./juries/ManageJury\"), options);\r\nconst Artists = loadable(() => import(\"./artists/Artists\"), options);\r\nconst ManageArtist = loadable(() => import(\"./artists/ManageArtist\"), options);\r\nconst Festivals = loadable(() => import(\"./Festivals\"), options);\r\nconst ManageFestival = loadable(() => import(\"./ManageFestival\"), options);\r\nconst Nights = loadable(() => import(\"./nights/Nights\"), options);\r\nconst ManageNight = loadable(() => import(\"./nights/ManageNight\"), options);\r\nconst Articles = loadable(() => import(\"../articles/Articles\"), options);\r\nconst ManageArticle = loadable(\r\n () => import(\"../articles/ManageArticle\"),\r\n options\r\n);\r\nconst Banners = loadable(() => import(\"../banners/Banners\"), options);\r\nconst ManageBanner = loadable(() => import(\"../banners/ManageBanner\"), options);\r\nconst Galleries = loadable(() => import(\"../galleries/Galleries\"), options);\r\nconst GalleryItems = loadable(\r\n () => import(\"../galleries/GalleryItems\"),\r\n options\r\n);\r\nconst ManageGallery = loadable(\r\n () => import(\"../galleries/ManageGallery\"),\r\n options\r\n);\r\nconst ManageGalleryItem = loadable(\r\n () => import(\"../galleries/ManageGalleryItem\"),\r\n options\r\n);\r\n\r\nconst FESTIVAL_ROOT_PATH = \"/festival\";\r\n\r\nconst festivalRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-2\",\r\n path: `${FESTIVAL_ROOT_PATH}/articles`,\r\n name: \"Artikuj\"\r\n }\r\n];\r\n\r\nconst user = getLoginUser();\r\n\r\nif (user && user.canDoAnything) {\r\n festivalRoutes.push(\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: \"/\",\r\n name: \"Festivali aktual\",\r\n children: [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1-1\",\r\n path: `${FESTIVAL_ROOT_PATH}/songs`,\r\n name: \"Këngët Konkurruese\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1-2\",\r\n path: `${FESTIVAL_ROOT_PATH}/realization-group`,\r\n name: \"Grupi i Realizimit\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1-3\",\r\n path: `${FESTIVAL_ROOT_PATH}/juries`,\r\n name: \"Juria\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1-4\",\r\n path: `${FESTIVAL_ROOT_PATH}/nights`,\r\n name: \"Netët e Festivalit\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1-5\",\r\n path: `${FESTIVAL_ROOT_PATH}/sponsors`,\r\n name: \"Sponsor\"\r\n }\r\n ]\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-3\",\r\n path: `${FESTIVAL_ROOT_PATH}/galleries`,\r\n name: \"Galeria\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-4\",\r\n path: `${FESTIVAL_ROOT_PATH}/banners`,\r\n name: \"Banera\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-14\",\r\n path: `${FESTIVAL_ROOT_PATH}/history`,\r\n name: \"Festivalet\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-15\",\r\n path: `${FESTIVAL_ROOT_PATH}/artists`,\r\n name: \"Artistët\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-26\",\r\n path: `${FESTIVAL_ROOT_PATH}/menu`,\r\n name: \"Menu\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-36\",\r\n path: `${FESTIVAL_ROOT_PATH}/pages`,\r\n name: \"Faqe\"\r\n },\r\n );\r\n}\r\n\r\nconst FestivalRouter = () => {\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\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport { FestivalRouter, FESTIVAL_ROOT_PATH, festivalRoutes };\r\n","import axios from \"axios\";\r\n\r\nclass HttpClient {\r\n constructor(baseUrl) {\r\n this._baseUrl = baseUrl;\r\n }\r\n\r\n _getAxiosInstance() {\r\n return axios.create({\r\n baseURL: this._baseUrl,\r\n headers: this.getHeaders()\r\n });\r\n }\r\n\r\n getHeaders() {\r\n return {};\r\n }\r\n\r\n get(url, params = {}) {\r\n return new Promise((resolve, reject) => {\r\n this._getAxiosInstance()\r\n .get(url, {\r\n params\r\n })\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(err => {\r\n reject(err.response);\r\n });\r\n });\r\n }\r\n\r\n post(url, data) {\r\n return new Promise((resolve, reject) => {\r\n this._getAxiosInstance()\r\n .post(url, data)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(err => {\r\n reject(err.response);\r\n });\r\n });\r\n }\r\n\r\n put(url, data, options = {}) {\r\n return new Promise((resolve, reject) => {\r\n this._getAxiosInstance()\r\n .put(url, data, options)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(err => {\r\n reject(err.response);\r\n });\r\n });\r\n }\r\n\r\n delete(url, data) {\r\n return new Promise((resolve, reject) => {\r\n this._getAxiosInstance()\r\n .delete(url, data)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(err => {\r\n reject(err.response);\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default HttpClient;\r\nconst httpClient = new HttpClient();\r\nexport { httpClient };\r\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { Row, Table, Col, Select } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport EditDeleteButtons from \"../common/components/tables/EditDeleteButtons\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport menus from \"core/application/menus/menu\";\r\nimport { displayDateAndHour } from \"../common/displayUtilities\";\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst Menu = () => {\r\n const { user } = useContext(AppContext);\r\n const [items, setItems] = useState();\r\n const [menu, setMenu] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n const [defaultMenu, setDefaultMenu] = useState(\"1\");\r\n const { Option } = Select;\r\n\r\n const updateMenus = async () => {\r\n setLoading(true);\r\n const availableMenu = await queryRequest(() => menus.getMenus());\r\n setMenu(availableMenu);\r\n let item = await queryRequest(() => menus.getAll(defaultMenu));\r\n setItems(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateMenus();\r\n })();\r\n }, [defaultMenu]);\r\n\r\n const handleMenuChange = value => {\r\n setDefaultMenu(value);\r\n };\r\n\r\n const columns = [\r\n {\r\n key: \"title\",\r\n title: \"Titulli\",\r\n dataIndex: \"title\",\r\n },\r\n {\r\n key: \"priority\",\r\n title: \"Prioriteti\",\r\n dataIndex: \"priority\",\r\n },\r\n {\r\n key: \"created\",\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => {\r\n return (\r\n user.canDoAnything && (\r\n menus.delete(record.id)}\r\n onDeleted={() => updateMenus()}\r\n disableDeleted={record.children !== null}\r\n deleteTitle={\r\n record.hasChildren ? \"Nuk mund të fshihet sepse ka fëmijë.\" : \"\"\r\n }\r\n />\r\n )\r\n );\r\n }\r\n }\r\n ];\r\n return (\r\n <>\r\n \r\n \r\n

Menutë

\r\n \r\n \r\n \r\n {menu.map(m => (\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 Menu;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Col, Row, Table, Button } from \"antd\";\r\n\r\nimport pages from \"core/application/pages/page\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport { displayDateAndHour } from \"../common/displayUtilities\";\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport { AppContext } from \"../AppContext\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst Page = () => {\r\n let history = useHistory();\r\n const { user } = useContext(AppContext);\r\n\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(true);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"created\"\r\n })\r\n );\r\n\r\n const updatePagedList = async () => {\r\n const result = await queryRequest(() => pages.getAll(filter));\r\n setPagedList(result);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setLoading(true);\r\n await updatePagedList();\r\n setLoading(false);\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const articleFilter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(articleFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Titulli\",\r\n dataIndex: \"title\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => {text}\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n {user.canSaveArticle && (\r\n history.push(`/page/manage-page/${record.id}`)}\r\n />\r\n )}\r\n pages.delete(record.id)}\r\n onDeleted={() => updatePagedList()}\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n const columnToSort = columns.find(c => c.dataIndex === filter.orderColumn);\r\n columnToSort.defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Faqe Statike

\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 Page;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Skeleton, Select as ASelect } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport pages from \"core/application/pages/page\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveButton from \"../common/components/forms/SaveButton\";\r\nimport CancelButton from \"../common/components/forms/CancelButton\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport Editor from \"../common/components/forms/Editor\";\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\n\r\nconst formValidator = Yup.object({\r\n title: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManagePage = () => {\r\n let history = useHistory();\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItems] = useState();\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko faqen statike\" : \"Krijo faqe statike\";\r\n const { Option } = ASelect;\r\n\r\n const updateSettings = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => pages.getForSave(id));\r\n setItems(result);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateSettings();\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n const result = await commandRequest(() => pages.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e faqes statike u krye me sukses.\"\r\n );\r\n history.push(\"/page/\");\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManagePage;\r\n","const Keys = {\r\n TOKEN: \"token\",\r\n};\r\n\r\nconst store = {\r\n set: (key, value) => {\r\n localStorage.setItem(key, value);\r\n },\r\n get: key => {\r\n return localStorage.getItem(key);\r\n }\r\n};\r\n\r\nexport default {\r\n setToken: token => {\r\n store.set(Keys.TOKEN, token);\r\n },\r\n getToken: () => store.get(Keys.TOKEN),\r\n saveObject: (key, object) => {\r\n store.set(key, JSON.stringify(object));\r\n },\r\n getObject: (key) => {\r\n const value = store.get(key);\r\n return value ? JSON.parse(value) : null;\r\n }\r\n};\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getGalleries: () => adminHttpClient.get(`/galleries`),\r\n save: galleryItem => adminHttpClient.post(`/galleries`, galleryItem),\r\n getForSave: id => adminHttpClient.get(`/galleries/forSave/${id}`),\r\n delete: id => adminHttpClient.delete(`/galleries/${id}`)\r\n};\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getGalleryWithItems: friendlyUrl =>\r\n adminHttpClient.get(`/galleryItems/${friendlyUrl}`),\r\n save: galleryItem => adminHttpClient.post(`/galleryItems`, galleryItem),\r\n getForSave: id => adminHttpClient.get(`/galleryItems/forSave/${id}`),\r\n delete: id => adminHttpClient.delete(`/galleryItems/${id}`)\r\n};\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async (filter = new ArticleFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(\r\n `/page?PageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&orderDescending=${filter.orderDescending}`\r\n );\r\n },\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/page/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/page/forSave/`);\r\n },\r\n delete: async id => adminHttpClient.delete(`/page/${id}`),\r\n save: async values => adminHttpClient.post(`/page`, values)\r\n};\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async (filter = new ArticleFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(\r\n `/video?PageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&orderDescending=${filter.orderDescending}`\r\n );\r\n },\r\n delete: async id => adminHttpClient.delete(`/video/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/video/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/video/forSave`);\r\n },\r\n save: async values => adminHttpClient.post(`/video`, values)\r\n};\r\n","import getCurrentSite from \"./currentSite\";\r\n\r\nconst getSiteUrl = path => {\r\n if (!path) {\r\n throw new Error(\"Path is not defined.\");\r\n }\r\n const currentSite = getCurrentSite();\r\n if (!currentSite) {\r\n throw new Error(\"Current site is not defined.\");\r\n }\r\n return `${currentSite.ROOT_PATH}${path}`;\r\n};\r\n\r\nexport default getSiteUrl;\r\n","import { Switch } from \"react-router-dom\";\r\nimport React from \"react\";\r\n\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Articles from \"../articles/Articles\";\r\nimport ManageArticle from \"../articles/ManageArticle\";\r\nimport BlogCategories from \"../articles/categories/BlogCategories\";\r\nimport ManageBlogCategory from \"../articles/categories/ManageBlogCategory\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\nimport Video from \"../videos/Video\";\r\nimport ManageVideo from \"../videos/ManageVideo\";\r\n\r\nconst RTSH_SPORT_ROOT_PATH = \"/rtshSport\";\r\n\r\nconst user = getLoginUser();\r\n\r\nconst rtshSportRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: `${RTSH_SPORT_ROOT_PATH}/articles`,\r\n name: \"Artikuj\"\r\n }\r\n];\r\n\r\nif (user && user.canDoAnything) {\r\n rtshSportRoutes.push({\r\n icon: \"pie-chart\",\r\n key: \"menu-2\",\r\n path: `${RTSH_SPORT_ROOT_PATH}/blogCategories`,\r\n name: \"Kategoritë\"\r\n });\r\n\r\n rtshSportRoutes.push({\r\n icon: \"pie-chart\",\r\n key: \"menu-6\",\r\n path: `${RTSH_SPORT_ROOT_PATH}/video`,\r\n name: \"Video\"\r\n });\r\n}\r\n\r\nconst RtshSportRouter = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n);\r\n\r\nexport { RtshSportRouter, RTSH_SPORT_ROOT_PATH, rtshSportRoutes };\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async () => adminHttpClient.get(\"/broadcastCategories\"),\r\n delete: async id => adminHttpClient.delete(`/broadcastCategories/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/broadcastCategories/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/broadcastCategories/forSave`);\r\n },\r\n save: async category => adminHttpClient.post(`/broadcastCategories`, category)\r\n};\r\n","import { Switch } from \"react-router-dom\";\r\nimport React from \"react\";\r\n\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Articles from \"../articles/Articles\";\r\nimport ManageArticle from \"../articles/ManageArticle\";\r\nimport Banners from \"../banners/Banners\";\r\nimport ManageBanner from \"../banners/ManageBanner\";\r\nimport BlogCategories from \"../articles/categories/BlogCategories\";\r\nimport ManageBlogCategory from \"../articles/categories/ManageBlogCategory\";\r\nimport Audio from \"../audios/Audio\";\r\nimport ManageAudio from \"../audios/ManageAudio\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\n\r\nconst RTI_ROOT_PATH = \"/rti\";\r\n\r\nconst user = getLoginUser();\r\n\r\nconst rtiRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-2\",\r\n path: `${RTI_ROOT_PATH}/articles`,\r\n name: \"Artikuj\"\r\n }\r\n];\r\n\r\nif (user && user.canDoAnything) {\r\n rtiRoutes.push(\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: `${RTI_ROOT_PATH}/banners`,\r\n name: \"Banera\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-3\",\r\n path: `${RTI_ROOT_PATH}/blogCategories`,\r\n name: \"Kategoritë\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-4\",\r\n path: `${RTI_ROOT_PATH}/podcast`,\r\n name: \"Podcast\"\r\n }\r\n );\r\n}\r\n\r\nconst RtiRouter = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n);\r\n\r\nexport { RtiRouter, RTI_ROOT_PATH, rtiRoutes };\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\nimport AudioFilter from \"./audioFilter\";\r\n\r\n\r\nconst controller = \"/audio\";\r\n\r\nexport default {\r\n getAll: async (filter = new AudioFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(\r\n `/audio?PageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&orderDescending=${filter.orderDescending}&categoryId=${filter.categoryId}`\r\n );\r\n },\r\n delete: async id => adminHttpClient.delete(`${controller}/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/audio/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/audio/forSave`);\r\n },\r\n save: async values => adminHttpClient.post(`/audio`, values)\r\n};","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\nimport OrderedPaginationFilter from \"../commons/orderedPaginationFilter\";\r\n\r\nexport default {\r\n getAll: async (filter = new OrderedPaginationFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(\r\n `/publication?pageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&orderDescending=${filter.orderDescending}`\r\n );\r\n },\r\n delete: async id => adminHttpClient.delete(`/publication/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/publication/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/publication/forSave`);\r\n },\r\n save: async publication => adminHttpClient.post(`/publication`, publication)\r\n};\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Col, Row, Table } from \"antd\";\r\n\r\nimport publication from \"core/application/publications/publication\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport { AppContext } from \"../AppContext\";\r\nimport PagedList from \"../common/models/pagedList\";\r\n\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\n\r\nconst Publication = () => {\r\n const { user } = useContext(AppContext);\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(false);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"created\"\r\n })\r\n );\r\n\r\n const updatePagedPublications = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => publication.getAll(filter));\r\n setPagedList(result);\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updatePagedPublications();\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const publicationFilter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(publicationFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Titulli\",\r\n dataIndex: \"title\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n )\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n publication.delete(record.id)}\r\n onDeleted={() => updatePagedPublications()}\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Publikime

\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 Publication;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport {Spin} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport Editor from \"../common/components/forms/Editor\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport publications from \"core/application/publications/publication\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport Select from \"../common/components/forms/Select\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n title: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n});\r\n\r\nconst CategoryToOptionMapper = site => (\r\n \r\n);\r\n\r\nconst ManagePublication = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko publikimin\" : \"Krijo publikim\";\r\n const [categoriesOptions, setCategoriesOptions] = useState([]);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const item = await queryRequest(() => publications.getForSave(id));\r\n setCategoriesOptions(item.availableCategories.map(CategoryToOptionMapper));\r\n item.categoryId = item.categoryIds.length > 0 ? item.categoryIds[0] : null;\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n const result = await commandRequest(() => publications.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e publikimit u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/publications\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/**/}\r\n {/* */}\r\n {/**/}\r\n\r\n \r\n {categoriesOptions.length > 0 && (\r\n \r\n \r\n {categoriesOptions}\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 ManagePublication;\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async () => adminHttpClient.get(\"/publicationCategories\"),\r\n delete: async id => adminHttpClient.delete(`/publicationCategories/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/publicationCategories/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/publicationCategories/forSave`);\r\n },\r\n save: async category =>\r\n adminHttpClient.post(`/publicationCategories`, category)\r\n};\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { Row, Table, Col, Spin } from \"antd\";\r\n\r\nimport { queryRequest } from \"../../common/utilities\";\r\nimport TableEditButton from \"../../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport publicationCategories from \"core/application/publications/publicationCategories\";\r\nimport { AppContext } from \"../../AppContext\";\r\n\r\nconst onChange = (pagination, filters, sorter, extra) => {\r\n console.log(\"params\", pagination, filters, sorter, extra);\r\n};\r\n\r\nconst PublicationCategory = () => {\r\n const { user } = useContext(AppContext);\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const updateTable = async () => {\r\n setLoading(true);\r\n\r\n const items = await queryRequest(() => publicationCategories.getAll());\r\n setData(items);\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateTable();\r\n }, []);\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: (a, b) => a.name.localeCompare(b.name),\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n publicationCategories.delete(record.id)}\r\n onDeleted={() => updateTable()}\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n

Kategoritë e Publikimeve

\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 PublicationCategory;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport generateFriendlyUrl from \"../../common/generateFriendlyUrl\";\r\nimport openNotification from \"../../common/components/Notification\";\r\nimport Input from \"../../common/components/forms/TextInput\";\r\nimport Uploader from \"../../common/components/forms/Uploader\";\r\nimport ValidationSummary from \"../../common/components/forms/ValidationSummary\";\r\nimport { commandRequest, queryRequest } from \"../../common/utilities\";\r\nimport SaveCancelButtons from \"../../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport publicationCategories from \"core/application/publications/publicationCategories\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n photoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManagePublicationCategory = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko kategorinë\" : \"Krijo kategori\";\r\n const [parentCategoriesOptions, setParentCategoriesOptions] = useState([]);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const item = await queryRequest(() => publicationCategories.getForSave(id));\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n if (values.id == null) values.id = \"\";\r\n\r\n const itemToSave = {\r\n ...values\r\n };\r\n\r\n const result = await commandRequest(() =>\r\n publicationCategories.save(itemToSave)\r\n );\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e kategorisë u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/publicationCategories\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n if (!item.friendlyUrl) {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManagePublicationCategory;\r\n","import { Switch } from \"react-router-dom\";\r\nimport React from \"react\";\r\n\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Articles from \"../articles/Articles\";\r\nimport ManageArticle from \"../articles/ManageArticle\";\r\nimport Publication from \"../publications/Publication\";\r\nimport ManagePublication from \"../publications/ManagePublication\";\r\nimport PublicationCategory from \"../publications/categories/PublicationCategory\";\r\nimport ManagePublicationCategory from \"../publications/categories/ManagePublicationCategory\";\r\nimport Banners from \"../banners/Banners\";\r\nimport ManageBanner from \"../banners/ManageBanner\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\n\r\nconst RTSH_ROOT_PATH = \"/rtsh\";\r\n\r\nconst user = getLoginUser();\r\n\r\nconst rtshRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-2\",\r\n path: `${RTSH_ROOT_PATH}/publications`,\r\n name: \"Publikime\"\r\n }\r\n];\r\n\r\nif (user && user.canDoAnything) {\r\n rtshRoutes.push(\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-3\",\r\n path: `${RTSH_ROOT_PATH}/publicationCategories`,\r\n name: \"Kategoritë e Publikimeve\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-4\",\r\n path: `${RTSH_ROOT_PATH}/banners`,\r\n name: \"Banera\"\r\n }\r\n );\r\n}\r\n\r\nconst RtshRouter = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport { RtshRouter, RTSH_ROOT_PATH, rtshRoutes };\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\nimport OrderedPaginationFilter from \"../commons/orderedPaginationFilter\";\r\n\r\nexport default {\r\n getAll: async (filter = new OrderedPaginationFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n return adminHttpClient.get(\r\n `/reportMessages?pageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&&orderDescending=${filter.orderDescending}`\r\n );\r\n },\r\n getById: async id => {\r\n return adminHttpClient.get(`/reportMessages/${id}`);\r\n }\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useParams, useHistory } from \"react-router-dom\";\r\nimport { Row, Card } from \"antd\";\r\n\r\nimport reportMessages from \"core/application/reportMessages/reportMessages\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport { displayDateAndHour } from \"../common/displayUtilities\";\r\n\r\nconst ReportMessage = () => {\r\n let history = useHistory();\r\n\r\n const { id } = useParams();\r\n const [item, setItem] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if (id) {\r\n loadMessage();\r\n setLoading(false);\r\n } else {\r\n history.push(getSiteUrl(\"/reportMessages\"));\r\n }\r\n setLoading(false);\r\n })();\r\n }, []);\r\n\r\n const loadMessage = async () => {\r\n const item = await queryRequest(() => reportMessages.getById(id));\r\n setItem(item);\r\n };\r\n\r\n return (\r\n \r\n {item && (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {item.content}\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ReportMessage;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Row, Table } from \"antd\";\r\n\r\nimport reportMessages from \"core/application/reportMessages/reportMessages\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport { displayDateAndHour } from \"../common/displayUtilities\";\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst ReportMessages = () => {\r\n const { user } = useContext(AppContext);\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(true);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"created\"\r\n })\r\n );\r\n\r\n const updatePagedList = async () => {\r\n const result = await queryRequest(() => reportMessages.getAll(filter));\r\n setPagedList(result);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setLoading(true);\r\n await updatePagedList();\r\n setLoading(false);\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const reportMessagesFilter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(reportMessagesFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Mesazhi\",\r\n dataIndex: \"content\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value =>\r\n value.length > 100 ? value.substring(0, 100) + \"...\" : value\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n \r\n )\r\n }\r\n ];\r\n\r\n const columnToSort = columns.find(c => c.dataIndex === filter.orderColumn);\r\n columnToSort.defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n \r\n

Mesazhe - Raporto Tani

\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReportMessages;\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getZodiacSigns: () => adminHttpClient.get(`/zodiacsign`),\r\n save: values => adminHttpClient.post(`/dailyzodiacsign`, values),\r\n getForSave: id => adminHttpClient.get(`/dailyZodiacSign/forSave/${id}`)\r\n};","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { Row, Table, Col, Spin } from \"antd\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport zodiacSign from \"core/application/horoscopes/zodiacSign\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst onChange = (pagination, filters, sorter, extra) => {\r\n console.log(\"params\", pagination, filters, sorter, extra);\r\n};\r\n\r\nconst ZodiacSign = () => {\r\n const { user } = useContext(AppContext);\r\n\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const updateTable = async () => {\r\n setLoading(true);\r\n\r\n const items = await queryRequest(() => zodiacSign.getZodiacSigns());\r\n setData(items);\r\n setLoading(false);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: (a, b) => a.name.localeCompare(b.name),\r\n sortDirections: [\"descend\", \"ascend\"],\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n \r\n )\r\n }\r\n ];\r\n\r\n useEffect(() => {\r\n updateTable();\r\n }, []);\r\n return (\r\n \r\n \r\n
\r\n

Shenjat e Horoskopit

\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 ZodiacSign;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport openNotification from \"../common/components/Notification\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport zodiacSign from \"core/application/horoscopes/zodiacSign\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport Editor from \"../common/components/forms/Editor\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n content: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManageZodiacSign = () => {\r\n let history = useHistory();\r\n const { id } = useParams();\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [item, setItem] = useState();\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const pageTitle = id ? \"Modifiko shenjën e horoskopit\" : \"Krijo shenjën e horoskopit\";\r\n\r\n const updateForm = async () => {\r\n const zodiac = await queryRequest(() => zodiacSign.getForSave(id));\r\n if (zodiac === \"\") {\r\n setItem({\r\n content: \"\"\r\n });\r\n return;\r\n }\r\n setItem(zodiac);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n setLoading(false);\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n values.zodiacSignId = id;\r\n const result = await commandRequest(() => zodiacSign.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e shenjave të horoskopit u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/horoscopes\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\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 ManageZodiacSign;\r\n","import {Switch} from \"react-router-dom\";\r\nimport React from \"react\";\r\n\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Articles from \"../articles/Articles\";\r\nimport ManageArticle from \"../articles/ManageArticle\";\r\nimport BlogCategories from \"../articles/categories/BlogCategories\";\r\nimport ManageBlogCategory from \"../articles/categories/ManageBlogCategory\";\r\nimport Banners from \"../banners/Banners\";\r\nimport ManageBanner from \"../banners/ManageBanner\";\r\nimport ReportMessage from \"../reportMessages/ReportMessage\";\r\nimport ReportMessages from \"../reportMessages/ReportMessages\";\r\nimport ZodiacSign from \"../horoscopes/ZodiacSign\";\r\nimport ManageZodiacSign from \"../horoscopes/ManageZodiacSign\";\r\nimport Video from \"../videos/Video\";\r\nimport ManageVideo from \"../videos/ManageVideo\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\n\r\nconst RTSH24_ROOT_PATH = \"/rtsh24\";\r\n\r\nconst user = getLoginUser();\r\n\r\nconst rtsh24Routes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: `${RTSH24_ROOT_PATH}/articles`,\r\n name: \"Artikuj\"\r\n }\r\n];\r\n\r\nif (user && user.canDoAnything) {\r\n rtsh24Routes.push(\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-2\",\r\n path: `${RTSH24_ROOT_PATH}/blogCategories`,\r\n name: \"Kategoritë\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-3\",\r\n path: `${RTSH24_ROOT_PATH}/banners`,\r\n name: \"Banera\"\r\n },\r\n // {\r\n // icon: \"pie-chart\",\r\n // key: \"menu-4\",\r\n // path: `${RTSH24_ROOT_PATH}/reportMessages`,\r\n // name: \"Raporto Tani\"\r\n // },\r\n // {\r\n // icon: \"pie-chart\",\r\n // key: \"menu-5\",\r\n // path: `${RTSH24_ROOT_PATH}/horoscopes`,\r\n // name: \"Horoskopi\"\r\n // },\r\n // {\r\n // icon: \"pie-chart\",\r\n // key: \"menu-6\",\r\n // path: `${RTSH24_ROOT_PATH}/video`,\r\n // name: \"Video\"\r\n // }\r\n );\r\n}\r\n\r\nconst Rtsh24Router = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport { Rtsh24Router, RTSH24_ROOT_PATH, rtsh24Routes };\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\n\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport Editor from \"../common/components/forms/Editor\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport authors from \"core/application/authors/authors\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n content: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n photoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManageAuthor = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko autorin\" : \"Krijo autor\";\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const item = await queryRequest(() => authors.getForSave(id));\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const result = await commandRequest(() => authors.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e autorit u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/authors\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n if (!item.friendlyUrl) {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageAuthor;\r\n","import {Switch} from \"react-router-dom\";\r\nimport React from \"react\";\r\n\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Authors from \"../authors/Authors\";\r\nimport Channels from \"../channels/Channels\";\r\nimport ManageChannel from \"../channels/ManageChannel\";\r\nimport Banners from \"../banners/Banners\";\r\nimport ManageBanner from \"../banners/ManageBanner\";\r\nimport ManageAuthor from \"../authors/ManageAuthor\";\r\nimport ManageBroadcastCategories from \"../broadcastCategories/ManageBroadcastCategories\";\r\nimport BroadcastCategories from \"../broadcastCategories/BroadcastCategories\";\r\nimport Programs from \"../programs/Programs\";\r\nimport ManageProgram from \"../programs/ManageProgram\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\n\r\nconst TV_ROOT_PATH = \"/tv\";\r\nconst user = getLoginUser();\r\n\r\nconst tvRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-3\",\r\n path: `${TV_ROOT_PATH}/programs`,\r\n name: \"Programet\"\r\n }\r\n];\r\n\r\nif (user && user.canDoAnything) {\r\n tvRoutes.push({\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: `${TV_ROOT_PATH}/banners`,\r\n name: \"Banera\"\r\n });\r\n\r\n tvRoutes.push({\r\n icon: \"pie-chart\",\r\n key: \"menu-2\",\r\n path: `${TV_ROOT_PATH}/channels`,\r\n name: \"Kanalet\"\r\n });\r\n}\r\n\r\nconst TvRouter = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport {TvRouter, TV_ROOT_PATH, tvRoutes};\r\n","import React, {useContext, useEffect, useState} from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Col, Row, Skeleton, Table, Button } from \"antd\";\r\n\r\nimport { queryRequest } from \"../../common/utilities\";\r\nimport AddButton from \"../../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport { displayDateAndHour } from \"../../common/displayUtilities\";\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\nimport PagedList from \"../../common/models/pagedList\";\r\nimport audioCategories from \"core/application/audios/categories/audioCategories\";\r\nimport EditDeleteButtons from \"../../common/components/tables/EditDeleteButtons\";\r\nimport {AppContext} from \"../../AppContext\";\r\n\r\nconst AudioCategories = () => {\r\n let history = useHistory();\r\n const {user} = useContext(AppContext);\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(true);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"created\"\r\n })\r\n );\r\n\r\n const updatePagedList = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => audioCategories.getAll(filter));\r\n setPagedList(result);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updatePagedList();\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const filter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(filter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n },\r\n {\r\n title: \"Episode\",\r\n dataIndex: \"totalEpisodes\",\r\n sorter: false,\r\n render: (value, record) => (\r\n {\r\n history.push(getSiteUrl(`/podcasts/episodes/${record.id}`));\r\n }}>\r\n {`${value} Episod(e)`}\r\n \r\n )\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => {\r\n return user.canDoAnything && ( audioCategories.delete(record.id)}\r\n onDeleted={() => updatePagedList()}\r\n />)\r\n }\r\n }\r\n ];\r\n\r\n const columnToSort = columns.find(c => c.dataIndex === filter.orderColumn);\r\n columnToSort.defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Podcast

\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 AudioCategories;\r\n","import React, {useState, useEffect, useContext} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport generateFriendlyUrl from \"../../common/generateFriendlyUrl\";\r\nimport openNotification from \"../../common/components/Notification\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport Input from \"../../common/components/forms/TextInput\";\r\nimport {Spin} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport ValidationSummary from \"../../common/components/forms/ValidationSummary\";\r\nimport {commandRequest, queryRequest} from \"../../common/utilities\";\r\nimport SaveCancelButtons from \"../../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../../siteUrlCreator\";\r\nimport Uploader from \"../../common/components/forms/Uploader\";\r\nimport {AppContext} from \"../../AppContext\";\r\nimport audioCategories from \"core/application/audios/categories/audioCategories\";\r\n\r\nconst validationRules = {\r\n name: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\"),\r\n photoId: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\"),\r\n}\r\nconst contactFormValidator = Yup.object(validationRules);\r\n\r\nconst ManageAudioCategory = () => {\r\n let history = useHistory();\r\n const {user, site} = useContext(AppContext);\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const {id} = useParams();\r\n const pageTitle = id ? \"Modifiko podcast\" : \"Krijo podcast\";\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n\r\n const item = await queryRequest(() => audioCategories.getForSave(id));\r\n setItem(item);\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n })();\r\n }, []);\r\n\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const itemToSave = {\r\n ...values,\r\n priority: parseInt(values.priority, 10),\r\n };\r\n\r\n const result = await commandRequest(() => audioCategories.save(itemToSave));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ruajtja e podcast u bë me sukses.\");\r\n history.push(getSiteUrl(\"/podcasts\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n props.setFieldValue(\"friendlyUrl\", generateFriendlyUrl(e.currentTarget.value));\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageAudioCategory;\r\n","import {Switch} from \"react-router-dom\";\r\nimport React from \"react\";\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Channels from \"../channels/Channels\";\r\nimport ManageChannel from \"../channels/ManageChannel\";\r\nimport Banners from \"../banners/Banners\";\r\nimport ManageBanner from \"../banners/ManageBanner\";\r\nimport BroadcastCategories from \"../broadcastCategories/BroadcastCategories\";\r\nimport ManageBroadcastCategories from \"../broadcastCategories/ManageBroadcastCategories\";\r\nimport Programs from \"../programs/Programs\";\r\nimport ManageProgram from \"../programs/ManageProgram\";\r\nimport getLoginUser from \"core/application/users/getLoginUser\";\r\nimport Permission from \"core/domain/users/Permission\";\r\nimport Articles from \"../articles/Articles\";\r\nimport ManageArticle from \"../articles/ManageArticle\";\r\nimport Video from \"../videos/Video\";\r\nimport ManageVideo from \"../videos/ManageVideo\";\r\nimport AudioCategories from \"../audios/categories/AudioCategories\";\r\nimport ManageAudioCategory from \"../audios/categories/ManageAudioCategory\";\r\nimport Audio from \"../audios/Audio\";\r\nimport ManageAudio from \"../audios/ManageAudio\";\r\n\r\nconst RADIO_ROOT_PATH = \"/radio\";\r\n\r\nconst user = getLoginUser();\r\n\r\nconst radioRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: `${RADIO_ROOT_PATH}/articles`,\r\n name: \"Artikuj\"\r\n }\r\n];\r\n\r\nif (user && user.canDoAnything) {\r\n radioRoutes.push(\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-4\",\r\n path: `${RADIO_ROOT_PATH}/podcasts`,\r\n name: \"Podcast\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-8\",\r\n path: `${RADIO_ROOT_PATH}/video`,\r\n name: \"Video\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-9\",\r\n path: `${RADIO_ROOT_PATH}/programs`,\r\n name: \"Programe\",\r\n children: [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-10\",\r\n path: `${RADIO_ROOT_PATH}/programs`,\r\n name: \"Të gjithë programet\"\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-11\",\r\n path: `${RADIO_ROOT_PATH}/broadcastCategories`,\r\n name: \"Kategoritë\"\r\n }\r\n ]\r\n },\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-7\",\r\n path: `${RADIO_ROOT_PATH}/channels`,\r\n name: \"Kanale\"\r\n }\r\n );\r\n}\r\n\r\nconst RadioRouter = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n);\r\n\r\nexport {RadioRouter, RADIO_ROOT_PATH, radioRoutes};\r\n","const Keys = {\r\n TOKEN: \"token\"\r\n};\r\n\r\nconst authStore = {\r\n setToken: token => {\r\n localStorage.setItem(Keys.TOKEN, token);\r\n },\r\n getToken: () => localStorage.getItem(Keys.TOKEN)\r\n};\r\n\r\nexport default authStore;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useField } from \"formik\";\r\nimport { Input as AntInput } from \"antd\";\r\nimport Error from \"./FormItemError\";\r\nimport StyledLabel from \"./StyledLabel\";\r\n\r\nconst TextInput = styled(AntInput)`\r\n width: 40%;\r\n`;\r\n\r\nconst Input = ({ label, ...props }) => {\r\n const [field, meta] = useField(props);\r\n return (\r\n <>\r\n {label}\r\n \r\n {meta.touched && meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nexport default Input;\r\n","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\nimport ProgramFilter from \"./ProgramFilter\";\r\n\r\nexport default {\r\n getAll: async (filter = new ProgramFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(`/programs`, filter);\r\n },\r\n delete: async id => adminHttpClient.delete(`/programs/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/programs/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/programs/forSave`);\r\n },\r\n weekDays: async () => adminHttpClient.get(`/programs/weekDays`),\r\n save: async program => adminHttpClient.post(`/programs`, program)\r\n};\r\n","export default class AudioFilter {\r\n constructor({\r\n pageNumber = 1,\r\n orderColumn = \"created\",\r\n orderDescending = true,\r\n categoryId = \"\"\r\n } = {}) {\r\n this.pageNumber = pageNumber;\r\n this.orderColumn = orderColumn;\r\n this.orderDescending = orderDescending;\r\n this.categoryId = categoryId\r\n }\r\n}\r\n","const resizeImage = (\r\n file,\r\n { maxWidth = 1080, maxHeight = 720, optimizedResize = true } = {}\r\n) => {\r\n return new Promise(resolve => {\r\n const reader = new FileReader();\r\n reader.onload = readerEvent => {\r\n const image = new Image();\r\n image.onload = () => {\r\n let { resizeWidth, resizeHeight } = calculateWidthAndHeight(\r\n image.width,\r\n image.height,\r\n maxWidth,\r\n maxHeight,\r\n optimizedResize\r\n );\r\n\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = resizeWidth;\r\n canvas.height = resizeHeight;\r\n canvas\r\n .getContext(\"2d\")\r\n .drawImage(image, 0, 0, resizeWidth, resizeHeight);\r\n const dataUrl = canvas.toDataURL(\"image/jpeg\");\r\n resolve(dataURLToBlob(dataUrl));\r\n };\r\n image.src = readerEvent.target.result;\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n};\r\n\r\nconst calculateWidthAndHeight = (\r\n imageWidth,\r\n imageHeight,\r\n desiredWidth,\r\n desiredHeight,\r\n optimizedResize\r\n) => {\r\n if (!optimizedResize) {\r\n return {\r\n resizeWidth: desiredWidth,\r\n resizeHeight: desiredHeight\r\n };\r\n }\r\n\r\n if (imageWidth > imageHeight) {\r\n if (imageWidth > desiredWidth) {\r\n imageHeight *= desiredWidth / imageWidth;\r\n imageWidth = desiredWidth;\r\n }\r\n } else {\r\n if (imageHeight > desiredHeight) {\r\n imageWidth *= desiredHeight / imageHeight;\r\n imageHeight = desiredHeight;\r\n }\r\n }\r\n\r\n return {\r\n resizeWidth: imageWidth,\r\n resizeHeight: imageHeight\r\n };\r\n};\r\n\r\nconst dataURLToBlob = dataURL => {\r\n const BASE64_MARKER = \";base64,\";\r\n if (dataURL.indexOf(BASE64_MARKER) == -1) {\r\n const parts = dataURL.split(\",\");\r\n const contentType = parts[0].split(\":\")[1];\r\n const raw = parts[1];\r\n\r\n return new Blob([raw], { type: contentType });\r\n }\r\n\r\n const parts = dataURL.split(BASE64_MARKER);\r\n const contentType = parts[0].split(\":\")[1];\r\n const raw = window.atob(parts[1]);\r\n const rawLength = raw.length;\r\n\r\n const uInt8Array = new Uint8Array(rawLength);\r\n\r\n for (let i = 0; i < rawLength; ++i) {\r\n uInt8Array[i] = raw.charCodeAt(i);\r\n }\r\n\r\n return new Blob([uInt8Array], { type: contentType });\r\n};\r\n\r\nexport default resizeImage;\r\n","import React, { useState } from \"react\";\r\nimport { Switch as AntSwitch } from \"antd\";\r\nimport StyledLabel from \"./StyledLabel\";\r\nimport Error from \"./FormItemError\";\r\nimport { useField, useFormikContext } from \"formik\";\r\n\r\nconst Switch = ({ label, defaultChecked, fieldName, ...props }) => {\r\n const [field, meta] = useField(props);\r\n const context = useFormikContext();\r\n const [value, setValue] = useState(defaultChecked);\r\n\r\n const onChange = checked => {\r\n context.setFieldValue(fieldName, checked);\r\n setValue(checked);\r\n };\r\n\r\n return (\r\n <>\r\n {label}\r\n \r\n {meta.touched && meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nexport default Switch;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {Col, Row, Table} from \"antd\";\r\n\r\nimport channels from \"core/application/channels/channels\";\r\nimport {queryRequest} from \"../common/utilities\";\r\nimport EditDeleteButtons from \"../common/components/tables/EditDeleteButtons\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport {displayDateAndHour} from \"../common/displayUtilities\";\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\n\r\nconst Channels = () => {\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(false);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"created\"\r\n })\r\n );\r\n\r\n const updatePagedChannels = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => channels.getFiltered(filter));\r\n setPagedList(result);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updatePagedChannels();\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const channelFilter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(channelFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n channels.delete(record.id)}\r\n onDeleted={() => updatePagedChannels()}\r\n />\r\n )\r\n }\r\n ];\r\n\r\n columns.find(\r\n c => c.dataIndex === filter.orderColumn\r\n ).defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Kanale

\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 Channels;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport { Spin } from \"antd\";\r\n\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport channels from \"core/application/channels/channels\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n photoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n color: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManageChannel = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko kanalin\" : \"Krijo kanal\";\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const item = await queryRequest(() => channels.getForSave(id));\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const result = await commandRequest(() => channels.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e artikullit u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/channels\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\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 ManageChannel;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport {Col, Spin} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport programs from \"core/application/programs/programs\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n horizontalPhotoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n verticalPhotoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n rating: Yup.number()\r\n .min(0)\r\n .max(5)\r\n});\r\n\r\nconst ManageProgram = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko programin\" : \"Krijo program\";\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n\r\n const item = await queryRequest(() => programs.getForSave(id));\r\n setItem(item);\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const request = {\r\n title: item.title,\r\n friendlyUrl: item.friendlyUrl,\r\n content: item.content,\r\n horizontalPhotoId: values.horizontalPhotoId,\r\n verticalPhotoId: values.verticalPhotoId,\r\n rating: values.rating,\r\n id: item.id\r\n }\r\n\r\n const result = await commandRequest(() => programs.save(request));\r\n\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ruajtja e programit u krye me sukses.\");\r\n history.push(getSiteUrl(\"/programs\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageProgram;\r\n","import React, {useContext, useEffect, useState} from \"react\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport { Col, Row, Skeleton, Table, Button } from \"antd\";\r\n\r\nimport audio from \"core/application/audios/audio\";\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport { displayDateAndHour } from \"../common/displayUtilities\";\r\n\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport audioFilter from \"core/application/audios/audioFilter\";\r\nimport audioCategories from \"core/application/audios/categories/audioCategories\";\r\nimport EditDeleteButtons from \"../common/components/tables/EditDeleteButtons\";\r\nimport {AppContext} from \"../AppContext\";\r\n\r\nconst Audio = () => {\r\n const {user} = useContext(AppContext);\r\n const {podcastId} = useParams();\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [podcast, setPodcast] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [filter, setFilter] = useState(\r\n new audioFilter({\r\n orderColumn: \"created\",\r\n categoryId: podcastId\r\n })\r\n );\r\n\r\n const updateEpisodesPagedList = async () => {\r\n setLoading(true);\r\n\r\n setPagedList(await queryRequest(() => audio.getAll(filter)));\r\n setPodcast(await queryRequest(() => audioCategories.getById(podcastId)));\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateEpisodesPagedList();\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const articleFilter = new audioFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current,\r\n categoryId: podcastId\r\n });\r\n setFilter(articleFilter);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => {text}\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => {\r\n return user.canDoAnything && ( audio.delete(record.id)}\r\n onDeleted={() => updateEpisodesPagedList()}\r\n />)\r\n }\r\n }\r\n ];\r\n\r\n const columnToSort = columns.find(c => c.dataIndex === filter.orderColumn);\r\n columnToSort.defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n {podcast && (\r\n <>\r\n \r\n \r\n

Episodet per '{podcast.name}'

\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 Audio;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport audios from \"core/application/audios/audio\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport audioCategories from \"core/application/audios/categories/audioCategories\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\"),\r\n fileId: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManageAudio = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id, podcastId } = useParams();\r\n const pageTitle = id ? \"Modifiko episode\" : \"Krijo episode\";\r\n const [podcast, setPodcast] = useState(null);\r\n\r\n const updateForm = async () => {\r\n const audio = await queryRequest(() => audios.getForSave(id));\r\n setItem(audio);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n const podcastResult = await queryRequest(() => audioCategories.getById(podcastId));\r\n setPodcast(podcastResult);\r\n\r\n await updateForm();\r\n setLoading(false);\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n const request = {\r\n name:values.name,\r\n fileId: values.fileId,\r\n categoryId: podcastId,\r\n id: id\r\n }\r\n const result = await commandRequest(() => audios.save(request));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ruajtja e podcast u krye me sukses.\");\r\n history.push(getSiteUrl(`/podcasts/episodes/${podcastId}`));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {item && podcast && (\r\n \r\n \r\n \r\n {props => (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ManageAudio;\r\n","const idGenerator = {\r\n uuidv4: () => {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n\r\nexport default idGenerator;","import React, {useContext, useEffect, useState} from \"react\";\r\nimport {Col, DatePicker as AntDatepicker, Row, Select, Table} from \"antd\";\r\n\r\nimport programs from \"core/application/programs/programs\";\r\nimport channels from \"core/application/channels/channels\";\r\nimport {queryRequest} from \"../common/utilities\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport {displayDateAndHour} from \"../common/displayUtilities\";\r\nimport {AppContext} from \"../AppContext\";\r\nimport SearchInput from \"../articles/ArticleSearch\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport ProgramFilter from \"core/application/programs/ProgramFilter\";\r\nimport idGenerator from \"core/application/commons/idGenerator\";\r\nimport moment from \"moment\";\r\n\r\nconst Programs = () => {\r\n const {user} = useContext(AppContext);\r\n const [pagedList, setPagedList] = useState({items: []});\r\n const [loading, setLoading] = useState(false);\r\n const [filter, setFilter] = useState(\r\n new ProgramFilter({\r\n orderColumn: \"startDate\",\r\n orderDescending: true,\r\n pageNumber: 1,\r\n date: moment().toDate()\r\n })\r\n );\r\n const [channelItems, setChannelItems] = useState([]);\r\n\r\n const updateTable = async () => {\r\n setLoading(true);\r\n\r\n const pagedItems = await queryRequest(() => programs.getAll(filter));\r\n pagedItems.items.forEach(item => {\r\n item.key = idGenerator.uuidv4()\r\n })\r\n setPagedList(pagedItems);\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setChannelItems(await queryRequest(() => channels.getAll()));\r\n })();\r\n }, [])\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateTable();\r\n })();\r\n }, [filter]);\r\n\r\n const onPaginationChange = (pagination, filters, sorter) => {\r\n const newFilter = new ProgramFilter({\r\n ...filter,\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n\r\n setFilter(newFilter);\r\n };\r\n\r\n const onSearch = (searchValue) => {\r\n if (searchValue && searchValue.length < 3) {\r\n openNotification(\"info\", \"Vendosni të paktën 3 karaktere për të kërkuar\");\r\n return;\r\n }\r\n\r\n const newFilter = new ProgramFilter({\r\n ...filter,\r\n searchValue,\r\n pageNumber: 1\r\n });\r\n\r\n setFilter(newFilter);\r\n }\r\n\r\n const onChannelChange = (value) => {\r\n const newFilter = new ProgramFilter({\r\n ...filter,\r\n pageNumber: 1,\r\n channelFriendlyUrl: value\r\n });\r\n\r\n setFilter(newFilter);\r\n }\r\n\r\n const onDateChange = (value) => {\r\n const newFilter = new ProgramFilter({\r\n ...filter,\r\n pageNumber: 1,\r\n date: value.toDate()\r\n });\r\n\r\n setFilter(newFilter);\r\n }\r\n\r\n const columns = [\r\n {\r\n title: \"Titulli\",\r\n dataIndex: \"title\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n width: \"50%\"\r\n },\r\n {\r\n title: \"Data\",\r\n dataIndex: \"startDate\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Gjatësia\",\r\n dataIndex: \"length\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => `${value} min`\r\n },\r\n {\r\n title: \"Kanali\",\r\n dataIndex: \"channel\",\r\n render: value => value.name\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n \r\n )\r\n }\r\n ];\r\n\r\n columns.find(\r\n c => c.dataIndex === filter.orderColumn\r\n ).defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n \r\n \r\n

Programet

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${record.key}`}\r\n columns={columns}\r\n dataSource={pagedList.items}\r\n onChange={onPaginationChange}\r\n loading={loading}\r\n pagination={{\r\n total: pagedList.totalItemCount,\r\n pageSize: pagedList.pageSize,\r\n current: pagedList.pageNumber\r\n }}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default Programs;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Input as AntInput } from \"antd\";\r\n\r\nconst TextInput = styled(AntInput)`\r\n width: 40%;\r\n`;\r\n\r\nconst Input = props => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Input;\r\n","import React from \"react\";\r\n\r\nimport Input from \"../common/components/dataEntry/Input\";\r\n\r\nconst SearchInput = ({placeholder = 'Kërko', onSearch, initialValue = null}) => {\r\n const ENTER_KEY_CODE = 13;\r\n const search = e => {\r\n const value = e.target.value;\r\n if (e.keyCode === ENTER_KEY_CODE) {\r\n onSearch(value);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SearchInput;\r\n","import React from \"react\";\r\n\r\nconst ValidationSummary = ({ errors }) => {\r\n if (!errors || errors.length === 0) {\r\n return \"\";\r\n }\r\n\r\n return (\r\n
\r\n
    \r\n {errors.map(e => (\r\n
  • {e}
  • \r\n ))}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ValidationSummary;\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default async name => {\r\n return adminHttpClient.put(\"/EditProfile\", {\r\n name\r\n });\r\n};\r\n","import React from \"react\";\r\n\r\nconst AppContext = React.createContext({\r\n user: null,\r\n site: null\r\n});\r\n\r\nexport { AppContext };\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { Row, Table, Col, Spin, Button } from \"antd\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport galleries from \"core/application/galleries/galleries\";\r\nimport { queryRequest } from \"../common/utilities\";\r\n\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst onChange = (pagination, filters, sorter, extra) => {\r\n console.log(\"params\", pagination, filters, sorter, extra);\r\n};\r\n\r\nconst Galleries = () => {\r\n let history = useHistory();\r\n const { user } = useContext(AppContext);\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const updateTable = async () => {\r\n setLoading(true);\r\n\r\n const items = await queryRequest(() => galleries.getGalleries());\r\n setData(items);\r\n\r\n setLoading(false);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: (a, b) => a.name.localeCompare(b.name),\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n {\r\n history.push(getSiteUrl(`/gallery-items/${record.friendlyUrl}`));\r\n }}\r\n >\r\n \r\n galleries.delete(record.id)}\r\n onDeleted={() => updateTable()}\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n useEffect(() => {\r\n updateTable();\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n
\r\n

Galeritë

\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 Galleries;\r\n","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { Row, Table, Col, Spin } from \"antd\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport galleryItems from \"core/application/galleries/galleryItems\";\r\nimport moment from \"moment\";\r\nimport { queryRequest } from \"../common/utilities\";\r\n\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport { AppContext } from \"../AppContext\";\r\n\r\nconst onChange = (pagination, filters, sorter, extra) => {\r\n console.log(\"params\", pagination, filters, sorter, extra);\r\n};\r\n\r\nconst GalleryItems = () => {\r\n const { user } = useContext(AppContext);\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const { friendlyUrl } = useParams();\r\n\r\n const updateTable = async () => {\r\n setLoading(true);\r\n\r\n const items = await queryRequest(() =>\r\n galleryItems.getGalleryWithItems(friendlyUrl)\r\n );\r\n setData(items);\r\n\r\n setLoading(false);\r\n };\r\n\r\n const columns = [\r\n {\r\n key: \"fileUrl\",\r\n title: \"Foto\",\r\n dataIndex: \"fileUrl\",\r\n width: \"40%\",\r\n render: value => \r\n },\r\n {\r\n key: \"title\",\r\n title: \"Titulli\",\r\n dataIndex: \"title\",\r\n sorter: (a, b) => a.title.localeCompare(b.title),\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n key: \"dateTaken\",\r\n title: \"Data\",\r\n dataIndex: \"dateTaken\",\r\n render: value => moment(value).format(\"DD/MM/YYYY\"),\r\n sorter: (a, b) => moment(a.dateTaken).unix() - moment(b.dateTaken).unix(),\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n \r\n galleryItems.delete(record.id)}\r\n onDeleted={() => updateTable()}\r\n visible={user.canDoAnything}\r\n />\r\n \r\n )\r\n }\r\n ];\r\n\r\n useEffect(() => {\r\n updateTable();\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n

\r\n Galeritë /{\" \"}\r\n \r\n {data.name}\r\n \r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n record.id}\r\n columns={columns}\r\n dataSource={data.galleryItems}\r\n onChange={onChange}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default GalleryItems;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport galleries from \"core/application/galleries/galleries\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManageGallery = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko galerinë\" : \"Krijo galeri\";\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n if (!id) {\r\n setItem({\r\n name: \"\",\r\n friendlyUrl: \"\"\r\n });\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n const item = await queryRequest(() => galleries.getForSave(id));\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setErrors([]);\r\n\r\n setSaveLoading(true);\r\n const result = await commandRequest(() => galleries.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e galerisë u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(`/galleries`));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n if (!item.friendlyUrl) {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ManageGallery;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport moment from \"moment\";\r\n\r\nimport openNotification from \"../common/components/Notification\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport galleryItems from \"core/application/galleries/galleryItems\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n fileId: Yup.string().nullable().trim().required(\"Fushë e detyrueshme\"),\r\n});\r\n\r\nconst ManageGalleryItem = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n\r\n const { id, galleryId, friendlyUrl } = useParams();\r\n\r\n const pageTitle = id ? \"Modifiko foton\" : \"Shto foto\";\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n if (!id) {\r\n setItem({\r\n fileId: \"\",\r\n type: 0,\r\n title: \"\",\r\n content: \"\",\r\n dateTaken: moment()\r\n });\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n const item = await queryRequest(() => galleryItems.getForSave(id));\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setErrors([]);\r\n\r\n setSaveLoading(true);\r\n const result = await commandRequest(() => galleryItems.save({\r\n id: item.id,\r\n title: values.title,\r\n fileId: values.fileId,\r\n type: values.type,\r\n dateTaken: values.dateTaken,\r\n galleryId: galleryId\r\n }));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ruajtja e imazhit u krye me sukses.\");\r\n history.push(getSiteUrl(`/gallery-items/${friendlyUrl}`));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ManageGalleryItem;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport broadcastCategories from \"core/application/broadcastCagegories/broadcastCategories\";\r\nimport Select from \"../common/components/forms/Select\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst CategoryToOptionMapper = site => (\r\n \r\n);\r\n\r\nconst ManageBroadcastCategories = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko kategorinë\" : \"Krijo kategori\";\r\n const [parentCategoriesOptions, setParentCategoriesOptions] = useState([]);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const item = await queryRequest(() => broadcastCategories.getForSave(id));\r\n setParentCategoriesOptions(\r\n item.availableParents.map(CategoryToOptionMapper)\r\n );\r\n setItem(item);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateForm();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n const itemToSave = {\r\n ...values,\r\n priority: parseInt(values.priority, 10)\r\n };\r\n const result = await commandRequest(() =>\r\n broadcastCategories.save(itemToSave)\r\n );\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Ruajtja e kategorisë u krye me sukses.\"\r\n );\r\n history.push(getSiteUrl(\"/broadcastCategories\"));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n if (!item.friendlyUrl) {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\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 {parentCategoriesOptions.length > 0 && (\r\n \r\n \r\n {parentCategoriesOptions}\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 ManageBroadcastCategories;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Row, Table, Col, Spin } from \"antd\";\r\nimport moment from \"moment\";\r\n\r\nimport { queryRequest } from \"../common/utilities\";\r\nimport EditDeleteButtons from \"../common/components/tables/EditDeleteButtons\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport broadcastCategories from \"core/application/broadcastCagegories/broadcastCategories\";\r\nimport {\r\n displayDateAndHour,\r\n displayNamedItem\r\n} from \"../common/displayUtilities\";\r\n\r\nconst onChange = (pagination, filters, sorter, extra) => {\r\n console.log(\"params\", pagination, filters, sorter, extra);\r\n};\r\n\r\nconst BroadcastCategories = () => {\r\n const [data, setData] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n\r\n const updateTable = async () => {\r\n setLoading(true);\r\n\r\n const items = await queryRequest(() => broadcastCategories.getAll());\r\n setData(items);\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n updateTable();\r\n }, []);\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: (a, b) => a.name.localeCompare(b.name),\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n title: \"Prioriteti\",\r\n dataIndex: \"priority\",\r\n sorter: (a, b) => a.priority - b.priority,\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n title: \"Prindi\",\r\n dataIndex: \"parent\",\r\n sorter: (a, b) => moment(a.created).unix() - moment(b.created).unix(),\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayNamedItem(value)\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: (a, b) => moment(a.created).unix() - moment(b.created).unix(),\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n broadcastCategories.delete(record.id)}\r\n onDeleted={() => updateTable()}\r\n disableDeleted={record.hasChildren}\r\n deleteTitle={\r\n record.hasChildren ? \"Nuk mund të fshihet sepse ka fëmijë.\" : \"\"\r\n }\r\n />\r\n )\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n
\r\n

Kategoritë e Programeve

\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 BroadcastCategories;\r\n","import { notification as antNotification } from \"antd\";\r\n\r\nconst notification = (type, message, description) => {\r\n antNotification[type]({\r\n message: message,\r\n description: description\r\n });\r\n};\r\n\r\nexport default notification;\r\n","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async () => adminHttpClient.get(\"/festivals\"),\r\n getFestivalSongs: async festivalId =>\r\n adminHttpClient.get(`/festivals/songs/${festivalId}`),\r\n delete: async id => adminHttpClient.delete(`/festivals/${id}`),\r\n getForSave: async id => {\r\n if (id) {\r\n return adminHttpClient.get(`/festivals/forSave/${id}`);\r\n }\r\n return adminHttpClient.get(`/festivals/forSave`);\r\n },\r\n save: async article => adminHttpClient.post(`/festivals`, article)\r\n};\r\n","export default class OrderedPaginationFilter {\r\n constructor({\r\n pageNumber = 1,\r\n orderColumn = \"created\",\r\n orderDescending = true,\r\n searchValue = \"\"\r\n } = {}) {\r\n this.pageNumber = pageNumber;\r\n this.orderColumn = orderColumn;\r\n this.orderDescending = orderDescending;\r\n this.searchValue = searchValue\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Button } from \"antd\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst AddButton = ({\r\n addUrl,\r\n title = \"Shto\",\r\n icon = \"plus\",\r\n visible = true\r\n}) => {\r\n let history = useHistory();\r\n return (\r\n visible && (\r\n {\r\n history.push(addUrl);\r\n }}\r\n >\r\n {title}\r\n \r\n )\r\n );\r\n};\r\n\r\nexport default AddButton;\r\n","import React, {useState} from \"react\";\r\nimport {DatePicker as AntDatepicker} from \"antd\";\r\nimport Error from \"./FormItemError\";\r\nimport {useField, useFormikContext} from \"formik\";\r\nimport StyledLabel from \"./StyledLabel\";\r\nimport moment from \"moment\";\r\n\r\nconst Editor = ({label, initialValue, showTime, fieldName, ...props}) => {\r\n const [field, meta] = useField(props);\r\n const context = useFormikContext();\r\n const [value, setValue] = useState(initialValue);\r\n\r\n const onDateChange = (date, dateString) => {\r\n context.setFieldValue(\r\n fieldName,\r\n moment(dateString).utc(\"YYYY-MM-DD HH:mm:ss\")\r\n );\r\n setValue(moment(dateString, \"YYYY-MM-DD HH:mm:ss\"));\r\n };\r\n\r\n return (\r\n <>\r\n {label}\r\n \r\n {meta.touched || meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nexport default Editor;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZoAAAB7CAYAAABNaUbwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNjFCRjVGMzIyRTkxMUVBOTc4ODgzNUFCMjEwNDk5MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNjFCRjVGNDIyRTkxMUVBOTc4ODgzNUFCMjEwNDk5MiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM2MUJGNUYxMjJFOTExRUE5Nzg4ODM1QUIyMTA0OTkyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM2MUJGNUYyMjJFOTExRUE5Nzg4ODM1QUIyMTA0OTkyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YA2TKgAAAvZJREFUeNrs2c9KVGEYwOHzHd1IhLtWEbkMugIvILRynK4kKmpXYi4lIrqP5o9paoWE1xAEQbVokWHBrBSnc76mOzBG8R3neeDg9uX95pvfYSxzzoVn+KfV7iznwF612vedk8edOb637943ndPJPGUBcAZS8vUzLpw0cCZyri1BaABAaAAQGgCEBgCEBgChAQChAUBoABAaABAaAIQGAKEBAKEBQGgAEBoAEBoAhAYAhAYAoQFAaABAaAAQGgCEBgCEBgChAUBoAEBoABAaAIQGAIQGAKEBAKEBQGgAEBoAEBoAhAYAoQE4DSn5+hEagFOUc20JY2Ky1e4+Sqm4YBXDXprcC/32ODVV/0zp62HwPV7JeSb6Wa9vvHnZ7/d/+9Sf7zszmG92Z+fDDSc1xA6LuvhTVbtpsMxsHeNh/9r14vDoKOx89ZfP30YhNO1Od7m52HjiEwXH46czAIQGAKEBAKEBQGgAEBoAEBoAhAYAoQEAoQFAaAAQGgAQGgCEBgCEBgChAUBoAEBoABAaAIQGAIQGAKEBQGgAQGgAEBoAEBoAhAYAoQEAoQFAaAAQGgAQGgCEBgChAQChAUBoABAaABAaAEbRZPQBW+3Og5TSdPQ5c869O83FZ1Hna29t35v99PFuHXuN313JEzjr7trDMvidGdzpoqrrXrOxsBp1xvWNzaWyTBfD77Gqerduzq8IzXCLnG4uNpbCX+5Odzl0CA8Oyks5z4zAee8O/lwO/vLzPPoeGwu3H0efce31+krsCfOP+bm5p9H3uLm1vRp9xvChYez8i8zVyAMOXnxeOCY4Pv+jAUBoABAaABAaAIQGAKEBAKEBQGgAEBoAEBoAhAYAoQEAoQFAaABAaAAQGgCEBgCEBgChAUBoAEBoABAaAIQGAIQGAKEBAKEBQGgAEBoAEBoAhAYAoQEAoQFAaAAQGgAQGgCEBgChAQChAc6TnLMlCA3/aS/0QZflviMiWGhC35mJiYlfo7DHqqr2os/4V4ABAHU5la1igUNDAAAAAElFTkSuQmCC\"","import moment from \"moment\";\r\n\r\nconst displayDate = dateAsString => {\r\n return `${moment(dateAsString).format(\"DD/MM/YYYY\")}`;\r\n};\r\n\r\nconst displayDateAndHour = dateAsString => {\r\n return dateAsString\r\n ? `${moment(dateAsString).format(\"DD/MM/YYYY HH:mm\")}`\r\n : \"\";\r\n};\r\n\r\nconst displayNamedItem = namedItem => (namedItem ? namedItem.name : \"\");\r\n\r\nexport { displayDate, displayDateAndHour, displayNamedItem };\r\n","import { Button } from \"antd\";\r\nimport React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst SaveCancelButtons = ({\r\n loading = false,\r\n saveTitle = \"Ruaj\",\r\n cancelTitle = \"Anullo\",\r\n backUrl = null,\r\n icon = \"save\",\r\n onClick = () => {}\r\n}) => {\r\n let history = useHistory();\r\n\r\n const handleCancelClick = () => {\r\n if (backUrl) {\r\n history.push(backUrl);\r\n } else {\r\n history.goBack();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {saveTitle}\r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SaveCancelButtons;\r\n","const isYoutubeLink = fileUrl => fileUrl && fileUrl.includes(\"https://www.youtube.com\");\r\n\r\nconst generateYoutubeEmbedLink = (url) => {\r\n if (!url || !isYoutubeLink(url))\r\n return null;\r\n\r\n const pieces = url.split('v=');\r\n if (pieces.length < 0)\r\n return null;\r\n\r\n return `https://www.youtube.com/embed/${pieces[1]}`;\r\n};\r\n\r\nexport default {\r\n isYoutubeLink,\r\n generateYoutubeEmbedLink,\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {Button, Col, Icon, Input, message, Modal, Row, Upload} from \"antd\";\r\nimport {httpClient} from \"core/application/commons/httpClient\";\r\nimport files from \"core/application/files/files\";\r\nimport Error from \"./FormItemError\";\r\nimport {useField, useFormikContext} from \"formik\";\r\nimport resizeImage from \"core/application/commons/imageResizer\";\r\nimport sitesApi from \"core/application/sites/sites\";\r\nimport notifications from \"../notifications/notifications\";\r\nimport fileUtils from \"core/application/commons/fileUtils\";\r\n\r\nconst Uploader = ({\r\n fieldName,\r\n label,\r\n initialValue,\r\n className,\r\n resizeToWidth = 1080,\r\n resizeToHeight = 720,\r\n optimizedResize = false,\r\n viewImageLibrary = false,\r\n viewYoutubeChooser = false,\r\n ...props\r\n }) => {\r\n const [loading, setLoading] = useState(false);\r\n const [fileUrl, setFileUrl] = useState(\"\");\r\n const [showModalLibrary, setShowModalLibrary] = useState(false);\r\n const [imagesFromLibrary, setImagesFromLibrary] = useState({items: [], pageCount: 0});\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [librarySearch, setLibrarySearch] = useState(\"\");\r\n const [field, meta] = useField(props);\r\n const context = useFormikContext();\r\n\r\n const updateFileUrl = async () => {\r\n if (!initialValue) {\r\n return;\r\n }\r\n\r\n if (fileUtils.isYoutubeLink(initialValue)) {\r\n setFileUrl(initialValue);\r\n } else {\r\n const result = await files.getFileUrl(initialValue);\r\n setFileUrl(result);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setLoading(true);\r\n await updateFileUrl();\r\n setLoading(false);\r\n })();\r\n }, [initialValue]);\r\n\r\n const handleCustomRequest = async ({file}) => {\r\n setLoading(true);\r\n try {\r\n let result = isImage(file.name)\r\n ? await uploadImage({\r\n file,\r\n optimizedResize,\r\n resizeToHeight,\r\n resizeToWidth\r\n })\r\n : await uploadFile({\r\n filename: file.name,\r\n fileType: file.type,\r\n blob: file\r\n });\r\n\r\n setFileUrl(result.fileUrl);\r\n context.setFieldValue(fieldName, result.fileId);\r\n setLoading(false);\r\n } catch (errMessage) {\r\n message.error(errMessage);\r\n setLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n {fileUrl && fileUtils.isYoutubeLink(fileUrl) && (\r\n \r\n )}\r\n\r\n {fileUrl && isPdf(fileUrl) && }\r\n {fileUrl && isImage(fileUrl) && (\r\n \r\n )}\r\n {fileUrl && isAudio(fileUrl) && }\r\n {fileUrl && isVideo(fileUrl) && }\r\n {fileUrl && isWord(fileUrl) && }\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
Ngarko
\r\n
\r\n \r\n \r\n\r\n {viewImageLibrary && (\r\n
\r\n
\r\n Ose\r\n \r\n
\r\n \r\n )}\r\n\r\n {viewYoutubeChooser && (\r\n \r\n
\r\n \r\n
\r\n
Ose zgjidh video nga Youtube:
\r\n \r\n \r\n {\r\n const newFileUrl = e.currentTarget.value;\r\n const embedLink = fileUtils.generateYoutubeEmbedLink(newFileUrl);\r\n if (embedLink) {\r\n setFileUrl(newFileUrl);\r\n context.setFieldValue(fieldName, newFileUrl);\r\n } else {\r\n notifications.showError(\"Linku i youtube nuk është i saktë\");\r\n }\r\n }} placeholder={\"Addresa e Youtube\"}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {\r\n setShowModalLibrary(false);\r\n setCurrentPage(1);\r\n }}\r\n footer={(\r\n \r\n )}>\r\n
\r\n {\r\n const ENTER_KEY_CODE = 13;\r\n const value = e.target.value;\r\n if (e.keyCode === ENTER_KEY_CODE) {\r\n const images = await sitesApi.getImageLibrary({pageNumber: 1, q: value});\r\n setImagesFromLibrary(images);\r\n setCurrentPage(1);\r\n setLibrarySearch(value);\r\n }\r\n }}/>\r\n \r\n {imagesFromLibrary.items.map(image => (\r\n
\r\n
\r\n {\r\n context.setFieldValue(fieldName, image.id);\r\n setFileUrl(image.url)\r\n setShowModalLibrary(false)\r\n }\r\n }/>\r\n
\r\n \r\n ))}\r\n \r\n
\r\n {currentPage < imagesFromLibrary.pageCount && (\r\n \r\n )}\r\n
\r\n \r\n \r\n\r\n {meta.touched && meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nconst handleBeforeUpload = file => {\r\n const validFiles = [\r\n \"image/jpeg\",\r\n \"image/png\",\r\n \"application/pdf\",\r\n \"audio/mpeg\",\r\n \"audio/mp3\",\r\n \"video/mp4\",\r\n \"image/svg+xml\",\r\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n ];\r\n const isValidFile = validFiles.includes(file.type);\r\n if (!isValidFile) {\r\n message.error(\r\n \"Skedar i pavlefshëm. Ju mund të ngarkoni skedarë të tipeve .jpg, .png, .pdf, .mp3, .mp4, .svg, .docx\"\r\n );\r\n }\r\n const expectedSizeInMegaBytes = 200;\r\n const actualSizeInMegaBytes = file.size / 1024 / 1024;\r\n const isSizeValid = actualSizeInMegaBytes < expectedSizeInMegaBytes;\r\n if (!isSizeValid) {\r\n message.error(\r\n `Skedari duhet të jetë më i vogël se ${expectedSizeInMegaBytes}MB!`\r\n );\r\n }\r\n return isValidFile && isSizeValid;\r\n};\r\n\r\nconst uploadFile = async ({filename, fileType, blob}) => {\r\n try {\r\n if (fileType === \"audio/mpeg\") {\r\n fileType = \"audio/mp3\";\r\n }\r\n const preSignedUrl = await files.getUploadSignedUrl(filename);\r\n await httpClient.put(preSignedUrl.signedUrl, blob, {\r\n headers: {\r\n \"Content-Type\": fileType,\r\n \"x-amz-acl\": \"public-read\"\r\n }\r\n });\r\n const fileUrl = await files.getFileUrl(preSignedUrl.objectKey);\r\n\r\n return Promise.resolve({\r\n fileUrl,\r\n fileId: preSignedUrl.objectKey\r\n });\r\n } catch (e) {\r\n return Promise.reject(\"Ka ndodhur një gabim gjatë ngarkimit të skedarit.\");\r\n }\r\n};\r\n\r\nconst uploadImage = async ({\r\n file,\r\n resizeToWidth = 1080,\r\n resizeToHeight = 720,\r\n optimizedResize = false\r\n }) => {\r\n try {\r\n const requiresResize = !isSvg(file.name);\r\n let blob = file;\r\n if (requiresResize) {\r\n blob = await resizeImage(file, {\r\n maxWidth: resizeToWidth,\r\n maxHeight: resizeToHeight,\r\n optimizedResize\r\n });\r\n }\r\n return uploadFile({\r\n blob,\r\n filename: file.name,\r\n fileType: file.type\r\n });\r\n } catch (e) {\r\n return Promise.reject(\"Ka ndodhur një gabim gjatë ngarkimit të skedarit.\");\r\n }\r\n};\r\n\r\nconst isPdf = fileUrl => {\r\n const extension = fileUrl && fileUrl.split(\".\").pop();\r\n return extension === \"pdf\";\r\n};\r\n\r\nconst isWord = fileUrl => {\r\n const extension = fileUrl && fileUrl.split(\".\").pop();\r\n return extension === \"docx\";\r\n};\r\n\r\nconst isAudio = fileUrl => {\r\n const extension = fileUrl && fileUrl.split(\".\").pop();\r\n return extension === \"mp3\";\r\n};\r\n\r\nconst isVideo = fileUrl => {\r\n const extension = fileUrl && fileUrl.split(\".\").pop();\r\n return extension === \"mp4\";\r\n};\r\n\r\nconst isImage = fileUrl => {\r\n const imageExtensions = [\"jpg\", \"png\", \"jpeg\", \"svg\"];\r\n const extension = fileUrl && fileUrl.split(\".\").pop();\r\n return imageExtensions.indexOf(extension) !== -1;\r\n};\r\n\r\nconst isSvg = fileUrl => {\r\n const extension = fileUrl && fileUrl.split(\".\").pop();\r\n return extension === \"svg\";\r\n};\r\n\r\nconst DisplayPdf = ({fileUrl}) => (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n\r\nconst DisplayWord = ({fileUrl}) => (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n\r\nconst DisplayImage = ({fileUrl, resizeToHeight}) => {\r\n const divStyle = {\r\n border: \"1px solid #d9d9d9\",\r\n padding: \"0.5rem\",\r\n display: \"inline-block\"\r\n };\r\n\r\n const imageStyle = {\r\n maxWidth: \"100%\",\r\n height: `${resizeToHeight}px`\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst DisplayAudio = ({fileUrl}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nconst DisplayVideo = ({fileUrl}) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport default Uploader;\r\n","import React from \"react\";\r\nimport { Spin, Icon } from \"antd\";\r\n\r\nconst antIcon = ;\r\n\r\nexport default () => (\r\n
\r\n \r\n
\r\n);\r\n","import React from \"react\";\r\nimport Loading from \"./Loading\";\r\n\r\nexport const options = {\r\n fallback: \r\n};\r\n","import React from \"react\";\r\nimport {Button} from \"antd\";\r\nimport {useHistory} from \"react-router-dom\";\r\nimport getSiteUrl from \"../../../siteUrlCreator\";\r\n\r\nconst TableEditButton = ({editUrl, className, visible = true, appendEditUrlAfterSiteUrl = true}) => {\r\n const history = useHistory();\r\n const resultUrl = appendEditUrlAfterSiteUrl ? getSiteUrl(editUrl) : editUrl;\r\n return (\r\n visible && (\r\n <>\r\n {\r\n history.push(resultUrl);\r\n }}>\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default TableEditButton;\r\n","const generateFriendlyUrl = title => {\r\n title = title.toLowerCase();\r\n title = replaceGreekLettersWithEnglish(title);\r\n\r\n title = title\r\n .replace(/[?!.,]+/gi, \"\")\r\n .replace(/[ë]+/gi, \"e\")\r\n .replace(/[ç]+/gi, \"c\")\r\n .replace(/[^a-z0-9]+/gi, \"-\")\r\n .replace(/^\\s+|\\s+$/g, '');\r\n\r\n return title;\r\n}\r\n\r\nconst replaceGreekLettersWithEnglish = (str) => {\r\n const from = [\"ου\", \"ΟΥ\", \"Ού\", \"ού\", \"αυ\", \"ΑΥ\", \"Αύ\", \"αύ\", \"ευ\", \"ΕΥ\", \"Εύ\", \"εύ\", \"α\", \"Α\", \"ά\", \"Ά\", \"β\", \"Β\", \"γ\", \"Γ\", \"δ\", \"Δ\", \"ε\", \"Ε\", \"έ\", \"Έ\", \"ζ\", \"Ζ\", \"η\", \"Η\", \"ή\", \"Ή\", \"θ\", \"Θ\", \"ι\", \"Ι\", \"ί\", \"Ί\", \"ϊ\", \"ΐ\", \"Ϊ\", \"κ\", \"Κ\", \"λ\", \"Λ\", \"μ\", \"Μ\", \"ν\", \"Ν\", \"ξ\", \"Ξ\", \"ο\", \"Ο\", \"ό\", \"Ό\", \"π\", \"Π\", \"ρ\", \"Ρ\", \"σ\", \"Σ\", \"ς\", \"τ\", \"Τ\", \"υ\", \"Υ\", \"ύ\", \"Ύ\", \"ϋ\", \"ΰ\", \"Ϋ\", \"φ\", \"Φ\", \"χ\", \"Χ\", \"ψ\", \"Ψ\", \"ω\", \"Ω\", \"ώ\", \"Ώ\"];\r\n const to = [\"ou\", \"ou\", \"ou\", \"ou\", \"au\", \"au\", \"au\", \"au\", \"eu\", \"eu\", \"eu\", \"eu\", \"a\", \"a\", \"a\", \"a\", \"b\", \"b\", \"g\", \"g\", \"d\", \"d\", \"e\", \"e\", \"e\", \"e\", \"z\", \"z\", \"i\", \"i\", \"i\", \"i\", \"th\", \"th\", \"i\", \"i\", \"i\", \"i\", \"i\", \"i\", \"i\", \"k\", \"k\", \"l\", \"l\", \"m\", \"m\", \"n\", \"n\", \"ks\", \"ks\", \"o\", \"o\", \"o\", \"o\", \"p\", \"p\", \"r\", \"r\", \"s\", \"s\", \"s\", \"t\", \"t\", \"y\", \"y\", \"y\", \"y\", \"y\", \"y\", \"y\", \"f\", \"f\", \"x\", \"x\", \"ps\", \"ps\", \"o\", \"o\", \"o\", \"o\"];\r\n\r\n for (let i = 0; i < from.length; i++) {\r\n while (str.indexOf(from[i]) !== -1) {\r\n str = str.replace(from[i], to[i]);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\nexport default generateFriendlyUrl;\r\n","const env = process.env.REACT_APP_ENVIRONMENT || \"development\";\r\n\r\nconst config = {\r\n development: {\r\n apiEndpoint: \"https://localhost:5019\"\r\n },\r\n staging: {\r\n apiEndpoint: \"https://api.rtsh.dev\"\r\n },\r\n production: {\r\n apiEndpoint: \"https://api.rtsh.al\"\r\n }\r\n};\r\n\r\nexport default config[env];\r\n","import HttpClient from \"./httpClient\";\r\nimport config from \"./config\";\r\nimport authStore from \"../auth/authStore\";\r\n\r\nclass AdminHttpClient extends HttpClient {\r\n constructor() {\r\n super(config.apiEndpoint);\r\n }\r\n\r\n getHeaders() {\r\n return authStore.getToken()\r\n ? { Authorization: `Bearer ${authStore.getToken()}` }\r\n : {};\r\n }\r\n}\r\n\r\nexport default AdminHttpClient;\r\n\r\nconst adminHttpClient = new AdminHttpClient();\r\nexport { adminHttpClient };\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport {useField, useFormikContext} from \"formik\";\r\nimport Error from \"./FormItemError\";\r\nimport {Select as AntSelect} from \"antd\";\r\n\r\nconst StyledLabel = styled.label`\r\n margin-top: 1rem;\r\n`;\r\n\r\nconst filter = (input, option) => {\r\n return option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0;\r\n};\r\n\r\nconst Select = ({ defaultValue, mode, placeholder, label, onChanged, ...props }) => {\r\n const [field, meta] = useField(props);\r\n const context = useFormikContext();\r\n\r\n const onChange = (value, key) => {\r\n if (mode === \"multiple\" || mode === \"tags\") {\r\n context.setFieldValue(props.itemName, value);\r\n } else {\r\n context.setFieldValue(props.itemName, key.key ? key.key : null);\r\n }\r\n if (onChanged) {\r\n onChanged(value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {label}\r\n \r\n {props.children}\r\n \r\n {meta.touched || meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nexport default Select;\r\n","export default class PagedList {\r\n constructor({pageNumber = 1, items = [], pageSize = 10, totalItemCount = 0} = {}) {\r\n this.pageNumber = pageNumber;\r\n this.items = items;\r\n this.pageSize = pageSize;\r\n this.totalItemCount = totalItemCount;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {Button, message, Modal} from \"antd\";\r\nimport {commandRequest} from \"../../utilities\";\r\n\r\nconst {confirm} = Modal;\r\n\r\nconst TableDeleteButton = ({\r\n onDelete = () => {\r\n },\r\n onDeleted = () => {\r\n },\r\n onCancel = () => {\r\n },\r\n disableDeleted = false,\r\n deleteTitle = \"\",\r\n title = \"Jeni të sigurt që doni ta fshini?\",\r\n content = \"Ky veprim nuk mund të kthehet mbrapsht!\",\r\n className = \"\",\r\n visible = true\r\n }) => {\r\n return (\r\n visible && (\r\n <>\r\n {\r\n confirm({\r\n title,\r\n content,\r\n onOk: async () => {\r\n const result = await commandRequest(() => onDelete());\r\n if (!result.errors) {\r\n onDeleted();\r\n } else {\r\n message.error(result.errors[0]);\r\n }\r\n },\r\n onCancel() {\r\n onCancel();\r\n }\r\n });\r\n }}\r\n >\r\n \r\n )\r\n );\r\n};\r\n\r\nexport default TableDeleteButton;\r\n","import React from \"react\";\r\nimport { Button, message, Modal } from \"antd\";\r\nimport { commandRequest } from \"../../utilities\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst { confirm } = Modal;\r\n\r\nconst EditDeleteButtons = ({\r\n editUrl,\r\n onOkDelete,\r\n onDeleted,\r\n\r\n disableDeleted = false,\r\n deleteTitle = \"\",\r\n title = \"Jeni të sigurt që doni ta fshini?\",\r\n content = \"Ky veprim nuk mund të kthehet mbrapsht!\"\r\n}) => {\r\n const history = useHistory();\r\n return (\r\n <>\r\n {\r\n history.push(editUrl);\r\n }}\r\n >\r\n {\r\n confirm({\r\n title,\r\n content,\r\n onOk: async () => {\r\n const result = await commandRequest(() => onOkDelete());\r\n if (!result.errors) {\r\n if (onDeleted) {\r\n onDeleted();\r\n }\r\n } else {\r\n message.error(result.errors[0]);\r\n }\r\n },\r\n onCancel() {}\r\n });\r\n }}\r\n >\r\n \r\n );\r\n};\r\n\r\nexport default EditDeleteButtons;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Typography } from \"antd\";\r\nconst { Text } = Typography;\r\n\r\nconst FormItemError = props => {props.children};\r\n\r\nexport default FormItemError;\r\n","const activeRoute = (links, path) => {\r\n const link = links.find(link => link.path === `/${path.split(\"/\")[1]}`);\r\n return link ? link.key : \"\";\r\n};\r\n\r\nexport default activeRoute;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Menu, Layout as AntLayout } from \"antd\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\n\r\nimport { navigationPathMapping, NaviationMapping } from \"./index\";\r\nimport { CHANGE_PASSWORD_PATH, MY_PROFILE_PATH } from \"./index\";\r\n\r\nconst { Sider } = AntLayout;\r\n\r\nconst ManageProfileWrapper = ({ children }) => {\r\n const history = useHistory();\r\n let location = useLocation();\r\n\r\n const [activeKey, setActiveKey] = useState();\r\n\r\n useEffect(() => {\r\n let pathname = location.pathname;\r\n const split = pathname.split(\"/\")[2];\r\n\r\n const res = navigationPathMapping.get(split);\r\n setActiveKey(\r\n res ? [res.toString()] : [NaviationMapping.MyProfile.toString()]\r\n );\r\n }, [location]);\r\n\r\n const goTo = path => {\r\n history.push(path);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n goTo(MY_PROFILE_PATH)}>\r\n Profili im\r\n \r\n goTo(CHANGE_PASSWORD_PATH)}>\r\n Nrysho fjalëkalimin\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageProfileWrapper;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { Button, Row, Skeleton } from \"antd\";\r\nimport Card from \"antd/es/card\";\r\n\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport editProfile from \"core/application/profile/editProfile\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport refreshUserInStore from \"core/application/users/refreshUser\";\r\nimport userStore from \"core/application/users/userStore\";\r\n\r\nconst MyProfile = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [submiting, setSubmiting] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n const [item, setItem] = useState(null);\r\n const user = userStore.getUser();\r\n\r\n const updateSiteOptions = async () => {\r\n setItem({\r\n name: user.name\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateSiteOptions();\r\n setLoading(false);\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSubmiting(true);\r\n const result = await commandRequest(() => editProfile(values.name));\r\n setSubmiting(false);\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Profili u modifikua me sukses!\"\r\n );\r\n await refreshUserInStore();\r\n } else {\r\n setErrors(result.errors);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {item && (\r\n
\r\n \r\n \r\n \r\n {formik => (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n onSubmit(formik.values)}\r\n >\r\n Ruaj\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 formValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nexport default MyProfile;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Form, Formik } from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport { Button, Row, Skeleton } from \"antd\";\r\nimport Card from \"antd/es/card\";\r\n\r\nimport PasswordInput from \"../common/components/forms/PasswordInput\";\r\nimport changePassword from \"core/application/profile/changePassword\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport { commandRequest } from \"../common/utilities\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport refreshUserInStore from \"core/application/users/refreshUser\";\r\n\r\nconst ChangePassword = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [submiting, setSubmiting] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n\r\n const [item, setItem] = useState(null);\r\n\r\n const updateSiteOptions = async () => {\r\n setItem({\r\n currentPassword: \"\",\r\n newPassword: \"\",\r\n passwordConfirmation: \"\"\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateSiteOptions();\r\n setLoading(false);\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSubmiting(true);\r\n const result = await commandRequest(() =>\r\n changePassword(values.currentPassword, values.newPassword)\r\n );\r\n if (!result.errors) {\r\n openNotification(\r\n \"success\",\r\n \"Operacioni\",\r\n \"Fjalëkalimi u ndryshua me sukses!\"\r\n );\r\n\r\n await refreshUserInStore();\r\n window.location = \"/\";\r\n } else {\r\n setSubmiting(false);\r\n setErrors([\"Fjalëkalimi aktual është i pasaktë!\"]);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {item && (\r\n
\r\n \r\n \r\n \r\n {formik => (\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 onSubmit(formik.values)}\r\n >\r\n Ruaj\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 formValidator = Yup.object({\r\n currentPassword: Yup.string().required(\"I detyrueshëm\"),\r\n newPassword: Yup.string().required(\"I detyrueshëm\"),\r\n passwordConfirmation: Yup.string().when(\r\n \"newPassword\",\r\n (newPassword, schema) => {\r\n return schema.test({\r\n test: passwordConfirmation =>\r\n !!newPassword && passwordConfirmation === newPassword,\r\n message: \"Fjalëkalimi nuk përputhet\"\r\n });\r\n }\r\n )\r\n});\r\n\r\nexport default ChangePassword;\r\n","import { adminHttpClient } from \"../commons/adminHttpClient\";\r\n\r\nexport default async (currentPassword, newPassword) => {\r\n return adminHttpClient.put(\"/ChangePassword\", {\r\n currentPassword,\r\n newPassword\r\n });\r\n};\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\nimport ManageProfileWrapper from \"./ManageProfileWrapper\";\r\nimport MyProfile from \"./MyProfile\";\r\nimport ChangePassword from \"./ChangePassword\";\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\n\r\nconst PROFILE_ROOT_PATH = \"/my-profile\";\r\nexport const CHANGE_PASSWORD_PATH = \"change-password\";\r\nexport const MY_PROFILE_PATH = \"me\";\r\n\r\nconst profileRoutes = [\r\n {\r\n icon: \"pie-chart\",\r\n key: \"menu-2\",\r\n path: `${PROFILE_ROOT_PATH}/`,\r\n name: \"Artikuj\"\r\n }\r\n];\r\n\r\nexport const NaviationMapping = {\r\n MyProfile: 1,\r\n ChangePassword: 2\r\n};\r\n\r\nexport const navigationPathMapping = new Map([\r\n [\"my-profile\", NaviationMapping.MyProfile],\r\n [CHANGE_PASSWORD_PATH, NaviationMapping.ChangePassword]\r\n]);\r\n\r\nconst ProfileRouter = () => {\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\n );\r\n};\r\n\r\nexport { ProfileRouter, PROFILE_ROOT_PATH, profileRoutes };\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { useField } from \"formik\";\r\nimport { Input as AntInput } from \"antd\";\r\nimport Error from \"./FormItemError\";\r\nimport StyledLabel from \"./StyledLabel\";\r\nconst { TextArea } = AntInput;\r\n\r\nconst AntArea = styled(TextArea)`\r\n width: 70%;\r\n`;\r\n\r\nconst Area = ({ label, ...props }) => {\r\n const [field, meta] = useField(props);\r\n return (\r\n <>\r\n {label}
\r\n \r\n {meta.touched && meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nexport default Area;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport {useHistory} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Skeleton} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\n\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport manageSites from \"core/application/sites/sites\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport SaveButton from \"../common/components/forms/SaveButton\";\r\nimport CancelButton from \"../common/components/forms/CancelButton\";\r\nimport Area from \"../common/components/forms/TextArea\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport notifications from \"../common/components/notifications/notifications\";\r\nimport festivalApi from \"core/application/festivals/festivals\";\r\nimport Select from \"../common/components/forms/Select\";\r\nimport getCurrentSite from \"../currentSite\";\r\n\r\nconst formValidator = Yup.object({\r\n logo: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst SiteSettings = () => {\r\n let history = useHistory();\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItems] = useState();\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n const [festivals, setFestivals] = useState([]);\r\n\r\n const updateSettings = async () => {\r\n setLoading(true);\r\n\r\n const result = await queryRequest(() => manageSites.getForSave());\r\n setItems(result ? result : null);\r\n\r\n setFestivals(await festivalApi.getAll())\r\n\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateSettings();\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const result = await commandRequest(() => manageSites.save(values));\r\n\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n notifications.showSuccess();\r\n window.location.reload();\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {getCurrentSite().showChangeCurrentFestival && festivals.length && (\r\n \r\n \r\n {festivals.length > 0 && (\r\n \r\n \r\n {festivals.map(festival => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n )}\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n )}\r\n\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default SiteSettings;\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\nimport SiteSettings from \"./SiteSettings\";\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\n\r\nconst SITE_ROOT_PATH = \"/sites\";\r\n\r\nconst mainRouteSite = {\r\n icon: \"pie-chart\",\r\n key: \"menu-1\",\r\n path: `${SITE_ROOT_PATH}`,\r\n name: \"Konfigurime\"\r\n};\r\n\r\nconst SiteRouter = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport { SiteRouter, SITE_ROOT_PATH, mainRouteSite };\r\n","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\nimport OrderedPaginationFilter from \"../commons/orderedPaginationFilter\";\r\n\r\nexport default {\r\n getAll: async (filter = new OrderedPaginationFilter()) => {\r\n if (!filter) {\r\n throw new Error(\"Filtri nuk duhet të jetë bosh.\");\r\n }\r\n\r\n return adminHttpClient.get(\r\n `/users?pageNumber=${filter.pageNumber}&orderColumn=${filter.orderColumn}&orderDescending=${filter.orderDescending}`\r\n );\r\n },\r\n delete: async id => adminHttpClient.delete(`/users/${id}`),\r\n getForUpdate: async id => {\r\n return adminHttpClient.get(`/users/forUpdate/${id}`);\r\n },\r\n getForCreate: async id => {\r\n return adminHttpClient.get(`/users/forCreate`);\r\n },\r\n addUser: async user => adminHttpClient.post(`/users`, user),\r\n updateUser: async user => adminHttpClient.put(`/users`, user),\r\n changePasswordForUser: async request => adminHttpClient.put(\"/users/changePasswordForUser\", request)\r\n};\r\n","import React, {useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport {useHistory} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Select as AntSelect, Skeleton} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport PasswordInput from \"../common/components/forms/PasswordInput\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport manageUsers from \"core/application/manageUsers/manageUsers\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport Select from \"../common/components/forms/Select\";\r\nimport SaveButton from \"../common/components/forms/SaveButton\";\r\nimport CancelButton from \"../common/components/forms/CancelButton\";\r\nimport {USERS_ROOT_PATH} from \".\";\r\nimport StyledLabel from \"../common/components/forms/StyledLabel\";\r\n\r\nconst formValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n username: Yup.string()\r\n .nullable()\r\n .trim()\r\n .email(\"Email jo i vlefshëm\")\r\n .required(\"Fushë e detyrueshme\"),\r\n password: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n passwordConfirmation: Yup.string()\r\n .nullable()\r\n .trim()\r\n .when(\"password\", (password, schema) => {\r\n return schema.test({\r\n test: passwordConfirmation =>\r\n !!password && passwordConfirmation === password,\r\n message: \"Fjalëkalimi nuk përputhet\"\r\n });\r\n }),\r\n roleId: Yup.number()\r\n .required(\"\")\r\n .typeError(\"\")\r\n});\r\n\r\nconst AddUser = () => {\r\n let history = useHistory();\r\n const [loading, setLoading] = useState(false);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n const [roles, setRoles] = useState();\r\n const [sites, setSites] = useState([]);\r\n const [siteIds, setSiteIds] = useState([]);\r\n const [item, setItem] = useState(null);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n\r\n const item = await queryRequest(() => manageUsers.getForCreate());\r\n setItem(item);\r\n setRoles(item.availableRoles);\r\n setSites(item.availableSites);\r\n\r\n setLoading(false);\r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const user = {\r\n name: values.name,\r\n username: values.username,\r\n password: values.password,\r\n roles: [parseInt(values.roleId)],\r\n siteIds: siteIds\r\n };\r\n\r\n const result = await commandRequest(() => manageUsers.addUser(user));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ruajtja e përdoruesit u krye me sukses.\");\r\n history.push(`${USERS_ROOT_PATH}/all`);\r\n } else {\r\n setErrors(result.errors);\r\n }\r\n };\r\n\r\n const onSiteIdsSelected = (value) => {\r\n setSiteIds(value);\r\n }\r\n\r\n return (\r\n \r\n {item && (\r\n \r\n \r\n \r\n {formik => (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Zgjidhni Website-et\r\n \r\n {\r\n sites.map(site => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AddUser;\r\n","import React, {useContext, useEffect, useState} from \"react\";\r\nimport {Button, Col, Row, Table} from \"antd\";\r\n\r\nimport manageUsers from \"core/application/manageUsers/manageUsers\";\r\nimport {queryRequest} from \"../common/utilities\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport {displayDateAndHour} from \"../common/displayUtilities\";\r\nimport OrderedPaginationFilter from \"core/application/commons/orderedPaginationFilter\";\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport {ADD_USER_PATH, USERS_ROOT_PATH} from \".\";\r\nimport {AppContext} from \"../AppContext\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nconst ViewUsers = () => {\r\n let history = useHistory();\r\n const {user} = useContext(AppContext);\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(true);\r\n const [filter, setFilter] = useState(\r\n new OrderedPaginationFilter({\r\n orderColumn: \"lastLogin\"\r\n })\r\n );\r\n\r\n const updatePagedUsers = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => manageUsers.getAll(filter));\r\n setPagedList(result);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updatePagedUsers();\r\n })();\r\n }, [filter]);\r\n\r\n const onChange = (pagination, filters, sorter) => {\r\n const userFilter = new OrderedPaginationFilter({\r\n orderColumn: sorter.field,\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(userFilter);\r\n };\r\n\r\n const userIsNotSelf = id => {\r\n return user.userId !== id;\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Emri\",\r\n dataIndex: \"name\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => {text}\r\n },\r\n {\r\n title: \"Emri i përdoruesit\",\r\n dataIndex: \"username\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"]\r\n },\r\n {\r\n title: \"Hyrja e fundit\",\r\n dataIndex: \"lastLogin\",\r\n sorter: true,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDateAndHour(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) =>\r\n userIsNotSelf(record.id) && (\r\n <>\r\n {user.canDoAnything && (\r\n \r\n )}\r\n {user.canDoAnything && (\r\n {\r\n history.push(`/users/change-password-for-user/${record.id}`);\r\n }}>\r\n \r\n )}\r\n {user.canDoAnything && (\r\n manageUsers.delete(record.id)}\r\n onDeleted={() => updatePagedUsers()}\r\n />\r\n )}\r\n \r\n )\r\n }\r\n ];\r\n\r\n columns.find(\r\n c => c.dataIndex === filter.orderColumn\r\n ).defaultSortOrder = filter.orderDescending ? \"descend\" : \"ascend\";\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

Përdoruesit

\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 ViewUsers;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Select as AntSelect, Skeleton} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport manageUsers from \"core/application/manageUsers/manageUsers\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport Select from \"../common/components/forms/Select\";\r\nimport SaveButton from \"../common/components/forms/SaveButton\";\r\nimport CancelButton from \"../common/components/forms/CancelButton\";\r\nimport {USERS_ROOT_PATH} from \".\";\r\nimport StyledLabel from \"../common/components/forms/StyledLabel\";\r\n\r\nconst formValidator = Yup.object({\r\n name: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n role: Yup.string().nullable().required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst UpdateUser = () => {\r\n let history = useHistory();\r\n const {id} = useParams();\r\n const [item, setItem] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n const [roles, setRoles] = useState();\r\n const [sites, setSites] = useState([]);\r\n const [siteIds, setSiteIds] = useState([]);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n\r\n const item = await queryRequest(() => manageUsers.getForUpdate(id));\r\n setItem(item);\r\n setRoles(item.availableRoles);\r\n setSites(item.availableSites);\r\n setSiteIds(item.sites)\r\n\r\n setLoading(false);\r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const request = {\r\n name: values.name,\r\n roles: [parseInt(values.role)],\r\n siteIds: siteIds,\r\n id: item.id\r\n };\r\n\r\n const result = await commandRequest(() => manageUsers.updateUser(request));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ruajtja e përdoruesit u krye me sukses.\");\r\n history.push(`${USERS_ROOT_PATH}/all`);\r\n } else {\r\n setErrors(result.errors);\r\n }\r\n };\r\n\r\n const onSiteIdsSelected = (value) => {\r\n setSiteIds(value);\r\n }\r\n\r\n return (\r\n \r\n {item && (\r\n \r\n \r\n \r\n {formik => (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Zgjidhni Website-et\r\n \r\n {sites.map(site => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default UpdateUser;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport openNotification from \"../common/components/Notification\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Skeleton} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport manageUsers from \"core/application/manageUsers/manageUsers\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport SaveButton from \"../common/components/forms/SaveButton\";\r\nimport CancelButton from \"../common/components/forms/CancelButton\";\r\nimport {USERS_ROOT_PATH} from \".\";\r\nimport PasswordInput from \"../common/components/forms/PasswordInput\";\r\n\r\nconst formValidator = Yup.object({\r\n newPassword: Yup.string().nullable().required(\"Fushë e detyrueshme\"),\r\n passwordConfirmation: Yup.string()\r\n .nullable()\r\n .trim()\r\n .when(\"newPassword\", (password, schema) => {\r\n return schema.test({\r\n test: passwordConfirmation =>\r\n !!password && passwordConfirmation === password,\r\n message: \"Fjalëkalimi nuk përputhet\"\r\n });\r\n }),\r\n});\r\n\r\nconst ChangePasswordForUser = () => {\r\n let history = useHistory();\r\n const [item, setItem] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n const {id} = useParams();\r\n\r\n const getUserInfo = async () => {\r\n setLoading(true);\r\n\r\n const item = await queryRequest(() => manageUsers.getForUpdate(id));\r\n setItem(item);\r\n\r\n setLoading(false);\r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await getUserInfo();\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const request = {\r\n userId: id,\r\n newPassword: values.newPassword\r\n };\r\n\r\n const result = await commandRequest(() => manageUsers.changePasswordForUser(request));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\", \"Operacioni\", \"Ndryshimi i fjalëkalimit u krye me sukses.\");\r\n history.push(`${USERS_ROOT_PATH}/all`);\r\n } else {\r\n setErrors(result.errors);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {item && (\r\n \r\n \r\n \r\n {formik => (\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ChangePasswordForUser;\r\n","import React from \"react\";\r\nimport {Switch} from \"react-router-dom\";\r\n\r\nimport AddUser from \"./AddUser\";\r\nimport ViewUsers from \"./ViewUsers\";\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport UpdateUser from \"./UpdateUser\";\r\nimport ChangePasswordForUser from \"./ChangePasswordForUser\";\r\n\r\nconst USERS_ROOT_PATH = \"/users\";\r\nexport const ADD_USER_PATH = \"add\";\r\n\r\nconst mainRoute = {\r\n icon: \"pie-chart\",\r\n key: \"menu-10\",\r\n path: `${USERS_ROOT_PATH}/all`,\r\n name: \"Përdoruesit\"\r\n};\r\n\r\nconst UsersRouter = () => {\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\n \r\n \r\n );\r\n};\r\n\r\nexport {UsersRouter, USERS_ROOT_PATH, mainRoute};\r\n","import React, {useContext} from \"react\";\r\nimport {categoriesMenu} from \"./utils/menu\";\r\nimport {Avatar, Col, Dropdown, Icon, Layout, Menu} from \"antd\";\r\n\r\nimport logo from \"../../assets/images/rtsh-logo.png\";\r\nimport activeRoute from \"./utils/activeRoute\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport authStore from \"core/application/auth/authStore\";\r\nimport userStore from \"core/application/users/userStore\";\r\nimport {PROFILE_ROOT_PATH} from \"../../../profile\";\r\nimport {SITE_ROOT_PATH} from \"../../../sites\";\r\n\r\nimport \"./Header.css\";\r\nimport {AppContext} from \"../../../AppContext\";\r\nimport {USERS_ROOT_PATH} from \"../../../users\";\r\n\r\nconst {Header: AntHeader} = Layout;\r\n\r\nconst Header = ({selectedKey, onClick, links}) => {\r\n const {user} = useContext(AppContext);\r\n const current = activeRoute(links, useLocation().pathname);\r\n const history = useHistory();\r\n\r\n const logout = () => {\r\n authStore.setToken(\"\");\r\n userStore.setUser(null);\r\n window.location = \"/login\";\r\n };\r\n\r\n const personalMenu = (\r\n \r\n {user.canDoAnything && (\r\n history.push(`${USERS_ROOT_PATH}/all`)}>\r\n \r\n Perdoruesit\r\n \r\n )}\r\n\r\n {user.canDoAnything && (\r\n history.push(`${SITE_ROOT_PATH}/`)}>\r\n \r\n Konfigurime\r\n \r\n )}\r\n\r\n history.push(`${PROFILE_ROOT_PATH}/me`)}>\r\n \r\n Profili im\r\n \r\n\r\n logout()}>\r\n \r\n Log out\r\n \r\n \r\n );\r\n\r\n const getUserInitials = () => {\r\n if (user.name.indexOf(\" \") === -1) return user.name;\r\n const firstNameLastName = user.name.split(\" \");\r\n const firstName = firstNameLastName[0];\r\n const lastName = firstNameLastName[1];\r\n return firstName[0] + lastName[0];\r\n };\r\n\r\n let logoUrl = logo;\r\n if(user.site && user.site.logoUrl) {\r\n logoUrl = user.site.logoUrl;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {\r\n onClick(e.key);\r\n }}\r\n defaultSelectedKeys={[current]}\r\n selectedKeys={[selectedKey || current]}>\r\n {categoriesMenu(links, \"header\", history)}\r\n \r\n \r\n \r\n
\r\n \r\n {getUserInitials()}\r\n \r\n\r\n \r\n e.preventDefault()}>\r\n {user.name.split(\" \")[0]}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import React from \"react\";\r\nimport { Menu, Icon } from \"antd\";\r\nimport SubMenu from \"antd/es/menu/SubMenu\";\r\n\r\nexport const categoriesMenu = (links, type = \"sidebar\", history) =>\r\n links.map(link =>\r\n link.children && link.children.length > 0 ? (\r\n {link.name}}\r\n >\r\n {link.children.map(child => (\r\n history.push(child.path)}>\r\n {child.icon && type === \"sidebar\" && }\r\n {child.name}\r\n \r\n ))}\r\n \r\n ) : (\r\n history.push(link.path)}>\r\n {link.icon && type === \"sidebar\" && }\r\n {link.name}\r\n \r\n )\r\n );\r\n\r\nexport const usersMenu = (userRoute, type = \"sidebar\", history) => (\r\n history.push(userRoute.path)}>\r\n {userRoute.icon && type === \"sidebar\" && }\r\n {userRoute.name}\r\n \r\n);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport {Skeleton, Select as ASelect, Col} from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\n\r\nimport openNotification from \"../common/components/Notification\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport menus from \"core/application/menus/menu\";\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveButton from \"../common/components/forms/SaveButton\";\r\nimport CancelButton from \"../common/components/forms/CancelButton\";\r\nimport Select from \"../common/components/forms/Select\";\r\n\r\nconst formValidator = Yup.object({\r\n title: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n url: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n});\r\n\r\nconst ManageMenu = () => {\r\n let history = useHistory();\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItems] = useState();\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const [errors, setErrors] = useState([]);\r\n const [availableMenuUrls, setAvailableMenuUrls] = useState();\r\n const [type, setType] = useState(0);\r\n const { menuId, id } = useParams();\r\n const pageTitle = id ? \"Modifiko menunë\" : \"Krijo menu\";\r\n const { Option } = ASelect;\r\n\r\n const updateSettings = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => menus.getForSave(menuId, id));\r\n setItems(result);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateSettings();\r\n })();\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n values.menuId = menuId;\r\n values.type = parseInt(type);\r\n values.target = \"_self\";\r\n const result = await commandRequest(() => menus.save(values));\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n openNotification(\"success\",\"Operacioni\",\"Ruajtja e menusë u krye me sukses.\");\r\n history.push(\"/menus/\");\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\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 if(value) {\r\n props.setFieldValue(\"url\", value);\r\n }\r\n }}>\r\n \r\n {item.availableInternalUrls.map(m => (\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {item.availableParents.length > 0 && (\r\n \r\n \r\n {item.availableParents.map(m => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageMenu;\r\n","import React from \"react\";\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\nimport Menu from './Menu';\r\nimport ManageMenu from './ManageMenu';\r\n\r\nconst MENUS_ROOT_PATH = \"/menus\";\r\n\r\nconst mainRoute = {\r\n icon: \"pie-chart\",\r\n key: \"menu-10\",\r\n path: `${MENUS_ROOT_PATH}`,\r\n name: \"Menutë\"\r\n};\r\n\r\nconst MenuRouter = () => {\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\nexport { MenuRouter, MENUS_ROOT_PATH, mainRoute };\r\n","import React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\n\r\nimport ProtectedRoute from \"../common/configs/routes/protectedRoute\";\r\nimport Page from \"./Page\";\r\nimport ManagePage from \"./ManagePage\";\r\n\r\nconst PAGE_ROOT_PATH = \"/page\";\r\n\r\nconst pageMainRoute = {\r\n icon: \"pie-chart\",\r\n key: \"menu-10\",\r\n path: `${PAGE_ROOT_PATH}/`,\r\n name: \"Faqe Statike\"\r\n};\r\n\r\nconst PageRouter = () => {\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\nexport { PageRouter, PAGE_ROOT_PATH, pageMainRoute };\r\n","import React, {useContext, useEffect, useState} from \"react\";\r\nimport loadable from \"@loadable/component\";\r\nimport {Layout} from \"antd\";\r\n\r\nimport \"./App.css\";\r\nimport {options} from \"./common/configs/routes\";\r\nimport {Route, Switch, useLocation} from \"react-router-dom\";\r\nimport Header from \"./common/components/navigation/Header\";\r\nimport ProtectedRoute from \"./common/configs/routes/protectedRoute\";\r\nimport {FESTIVAL_ROOT_PATH, FestivalRouter} from \"./festivals\";\r\nimport getCurrentSite from \"./currentSite\";\r\nimport {RTSH_SPORT_ROOT_PATH, RtshSportRouter} from \"./rtshSport\";\r\nimport {RTSH_ROOT_PATH, RtshRouter} from \"./rtsh\";\r\nimport {RTSH24_ROOT_PATH, Rtsh24Router} from \"./rtsh24\";\r\nimport {ORCHESTRA_ROOT_PATH, OrchestraRouter} from \"./orchestra\";\r\nimport {TV_ROOT_PATH, TvRouter} from \"./tv\";\r\nimport {RTI_ROOT_PATH, RtiRouter} from \"./rti\";\r\nimport {RADIO_ROOT_PATH, RadioRouter} from \"./radio\";\r\nimport {PROFILE_ROOT_PATH, ProfileRouter} from \"./profile\";\r\nimport {USERS_ROOT_PATH, UsersRouter} from \"./users\";\r\nimport {SITE_ROOT_PATH, SiteRouter} from \"./sites/index\";\r\nimport {MenuRouter, MENUS_ROOT_PATH} from \"./menus\";\r\nimport {PAGE_ROOT_PATH, PageRouter} from \"./pages\";\r\nimport {AppContext} from \"./AppContext\";\r\nimport refreshUserInStore from \"core/application/users/refreshUser\";\r\n\r\nconst PageNotFound = loadable(() => import(\"./errors/PageNotFound\"), options);\r\nconst Error500Page = loadable(() => import(\"./errors/500Page\"), options);\r\nconst Error401Page = loadable(() => import(\"./errors/401Page\"), options);\r\n\r\nconst LoginForm = loadable(() => import(\"./login/LoginForm\"));\r\nconst {Content} = Layout;\r\n\r\nconst App = () => {\r\n const {user} = useContext(AppContext);\r\n const [selectedKey, setKey] = useState(undefined);\r\n const onClick = key => {\r\n setKey(key);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n if(user) {\r\n await refreshUserInStore();\r\n }\r\n })();\r\n }, []);\r\n\r\n const headerRoutes = user ? getCurrentSite().ROUTES : [];\r\n\r\n const currentPath = useLocation().pathname;\r\n if (currentPath === \"/\") {\r\n if (!user) {\r\n window.location = \"/login\";\r\n return;\r\n }\r\n\r\n if (headerRoutes.length > 0) {\r\n window.location = headerRoutes[0].path;\r\n } else {\r\n window.location = \"/login\";\r\n }\r\n return;\r\n }\r\n const isLoginPage = currentPath === \"/login\";\r\n const layoutClasses = isLoginPage ? \"login-page\" : \"\";\r\n return (\r\n <>\r\n {!isLoginPage && user && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n \"This web app is being served cache-first by a service \" +\r\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n \"New content is available and will be used when all \" +\r\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log(\"Content is cached for offline use.\");\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { \"Service-Worker\": \"script\" }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n \"No internet connection found. App is running in offline mode.\"\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport \"antd/dist/antd.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { BrowserRouter as Router } from \"react-router-dom\";\r\nimport { AppContext } from \"./AppContext\";\r\nimport userStore from \"core/application/users/userStore\";\r\nimport getCurrentSite from \"./currentSite\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import styled from \"styled-components\";\r\n\r\nconst StyledLabel = styled.label`\r\n margin-top: 1rem;\r\n`;\r\n\r\nexport default StyledLabel;\r\n","import userStore from \"./userStore\";\r\n\r\nconst getLoginUser = () => userStore.getUser();\r\n\r\nexport default getLoginUser;","import React, { useContext } from \"react\";\r\nimport { Redirect, Route } from \"react-router-dom\";\r\nimport { AppContext } from \"../../../AppContext\";\r\n\r\nconst ProtectedRoute = ({ permissions = [], ...rest }) => {\r\n const { user } = useContext(AppContext);\r\n return (\r\n \r\n {isAuthorized(user, permissions) ? (\r\n rest.children\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst isAuthorized = (user, allowedPermissions) => {\r\n if (!user) {\r\n return false;\r\n }\r\n\r\n if (allowedPermissions.length === 0) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < allowedPermissions.length; i++) {\r\n for (let j = 0; j < user.permissions.length; j++) {\r\n if (user.permissions[j] === allowedPermissions[i]) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport default ProtectedRoute;\r\n","import React from \"react\";\r\nimport {Editor as TextEditor} from \"@tinymce/tinymce-react\";\r\nimport Error from \"./FormItemError\";\r\nimport {useField, useFormikContext} from \"formik\";\r\nimport StyledLabel from \"./StyledLabel\";\r\nimport files from \"core/application/files/files\";\r\nimport {httpClient} from \"core/application/commons/httpClient\";\r\nimport resizeImage from \"core/application/commons/imageResizer\";\r\n\r\nconst Editor = ({ fieldName, label, initialValue, ...props }) => {\r\n const [field, meta] = useField(props);\r\n const context = useFormikContext();\r\n\r\n const handleEditorChange = e => {\r\n context.setFieldValue(fieldName, e.target.getContent());\r\n };\r\n\r\n const handleEditorBlur = () => {\r\n context.setFieldTouched(fieldName, true);\r\n };\r\n\r\n return (\r\n <>\r\n {label}\r\n \r\n {meta.touched && meta.error ? {meta.error} : null}\r\n \r\n );\r\n};\r\n\r\nconst handleImageUpload = (blobInfo, success, failure) => {\r\n let fileId = \"\";\r\n const file = blobInfo.blob();\r\n let resizedBlob;\r\n resizeImage(file, {maxWidth: 640, maxHeight: 426})\r\n .then(blob => {\r\n resizedBlob = blob;\r\n return files.getUploadSignedUrl(file.name);\r\n })\r\n .then(result => {\r\n const signedUrl = result.signedUrl;\r\n fileId = result.objectKey;\r\n const options = {\r\n headers: {\r\n \"Content-Type\": file.type,\r\n \"x-amz-acl\": \"public-read\"\r\n }\r\n };\r\n\r\n return httpClient.put(signedUrl, resizedBlob, options);\r\n })\r\n .then(() => {\r\n return files.getFileUrl(fileId);\r\n })\r\n .then(fileUrl => {\r\n success(fileUrl);\r\n })\r\n .catch(() => {\r\n failure(\"An error occured while uploading the file.\");\r\n });\r\n};\r\n\r\nexport default Editor;\r\n","import { Button } from \"antd\";\r\nimport React from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst CancelButton = ({ title = \"Anullo\", backUrl = null }) => {\r\n let history = useHistory();\r\n\r\n const handleCancelClick = () => {\r\n if (backUrl) {\r\n history.push(backUrl);\r\n } else {\r\n history.goBack();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CancelButton;\r\n","import { Button } from \"antd\";\r\nimport React from \"react\";\r\n\r\nconst SaveButton = ({\r\n loading = false,\r\n saveTitle = \"Ruaj\",\r\n icon = \"save\",\r\n disabled = false,\r\n onClick = () => {},\r\n className = \"\"\r\n}) => {\r\n return (\r\n <>\r\n \r\n {saveTitle}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SaveButton;\r\n","import Permission from \"../../domain/users/Permission\";\r\n\r\nclass User {\r\n constructor({ userId, currentSiteId, name, site, permissions = [] }) {\r\n this.userId = userId;\r\n this.currentSiteId = currentSiteId;\r\n this.name = name;\r\n this.permissions = permissions;\r\n this.site = site;\r\n }\r\n\r\n get canPublishArticle() {\r\n return (\r\n this.permissions.includes(Permission.All) ||\r\n this.permissions.includes(Permission.PublishArticle)\r\n );\r\n }\r\n\r\n get canSaveArticle() {\r\n return (\r\n this.permissions.includes(Permission.All) ||\r\n this.permissions.includes(Permission.SaveArticle) ||\r\n this.permissions.includes(Permission.PublishArticle)\r\n );\r\n }\r\n\r\n get canDoAnything() {\r\n return this.permissions.includes(Permission.All);\r\n }\r\n\r\n get canDeleteArticle() {\r\n return (\r\n this.permissions.includes(Permission.All) ||\r\n this.permissions.includes(Permission.DeleteArticle)\r\n );\r\n }\r\n}\r\n\r\nexport default User;\r\n","import User from \"./user\";\r\n\r\nconst Keys = {\r\n USER: \"user\"\r\n};\r\n\r\nconst userStore = {\r\n setUser: user => {\r\n localStorage.setItem(Keys.USER, user ? JSON.stringify(user) : null);\r\n },\r\n getUser: () => {\r\n try {\r\n const jsonParsed = JSON.parse(localStorage.getItem(Keys.USER));\r\n return jsonParsed ? new User({ ...jsonParsed }) : null;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n};\r\n\r\nexport default userStore;\r\n","import { message } from \"antd\";\r\n\r\nconst queryRequest = async func => {\r\n try {\r\n return await func();\r\n } catch (err) {\r\n if (!err || !err.status) {\r\n message.error(\"Ka ndodhur një gabim gjatë marrjes së të dhënave!\");\r\n return;\r\n }\r\n\r\n if (err.status === 401) {\r\n window.location = \"/login\";\r\n } else {\r\n message.error(\"Ka ndodhur një gabim gjatë marrjes së të dhënave!\");\r\n }\r\n }\r\n};\r\n\r\nconst commandRequest = async func => {\r\n try {\r\n return await func();\r\n } catch (err) {\r\n if (!err || !err.status) {\r\n return {\r\n errors: [\r\n \"Ka ndodhur një gabim gjatë operacionit. Ju lutemi provoni përsëri.\"\r\n ]\r\n };\r\n }\r\n\r\n if (err.status === 401) {\r\n window.location = \"/login\";\r\n } else if (\r\n err.status &&\r\n err.status === 400 &&\r\n err.data &&\r\n err.data.length\r\n ) {\r\n return {\r\n errors: err.data.map(err => err.message)\r\n };\r\n } else {\r\n return {\r\n errors: [\r\n \"Ka ndodhur një gabim gjatë operacionit. Ju lutemi provoni përsëri.\"\r\n ]\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport { queryRequest, commandRequest };\r\n","import React, {useContext, useEffect, useState} from \"react\";\r\nimport {Col, Row, Select, Spin, Table} from \"antd\";\r\n\r\nimport {queryRequest} from \"../common/utilities\";\r\nimport EditDeleteButtons from \"../common/components/tables/EditDeleteButtons\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport bannersApi from \"core/application/banners/bannersApi\";\r\nimport store from \"core/application/commons/store\";\r\nimport {AppContext} from \"../AppContext\";\r\n\r\nconst Banners = () => {\r\n const {user, site} = useContext(AppContext)\r\n const LastBannerSelectedStoreKey = `LastBannerSelected_${user.currentSiteId}`;\r\n\r\n const [items, setItems] = useState([]);\r\n const [banners, setBanners] = useState([]);\r\n const [tableLoading, setTableLoading] = useState(false);\r\n const [bannersLoading, setBannersLoading] = useState(false);\r\n const [selectedBanner, setSelectedBanner] = useState(null);\r\n\r\n const lastBannerSelected = store.getObject(LastBannerSelectedStoreKey);\r\n\r\n const updateTable = async () => {\r\n if (!selectedBanner) return;\r\n\r\n setTableLoading(true);\r\n\r\n const banner = await queryRequest(() => bannersApi.getBannerWithItems(selectedBanner.id));\r\n if (banner) {\r\n setItems(banner.bannerItems);\r\n }\r\n\r\n setTableLoading(false);\r\n };\r\n\r\n const columns = [\r\n {\r\n title: \"Foto\",\r\n dataIndex: \"photoUrl\",\r\n width: \"40%\",\r\n render: value => \"\"/\r\n },\r\n {\r\n title: \"Titulli\",\r\n dataIndex: \"name\",\r\n sorter: (a, b) => a?.name.localeCompare(b.name),\r\n sortDirections: [\"descend\", \"ascend\"],\r\n },\r\n {\r\n title: \"Prioriteti\",\r\n dataIndex: \"priority\",\r\n sorter: (a, b) => a.priority - b.priority,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n bannersApi.delete(record.id)}\r\n onDeleted={() => updateTable()}\r\n />\r\n )\r\n }\r\n ];\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateTable();\r\n })();\r\n }, [selectedBanner])\r\n\r\n useEffect(() => {\r\n (async () => {\r\n setBannersLoading(true);\r\n\r\n const result = await bannersApi.getAllBanners();\r\n setBanners(result);\r\n\r\n if (result.length > 0) {\r\n setSelectedBanner(lastBannerSelected ? lastBannerSelected : result[0])\r\n }\r\n\r\n setBannersLoading(false);\r\n })();\r\n }, []);\r\n\r\n const onBannerChanged = (bannerId) => {\r\n const found = banners.find(c => c.id === bannerId);\r\n store.saveObject(LastBannerSelectedStoreKey, found);\r\n\r\n setSelectedBanner({\r\n ...found\r\n });\r\n }\r\n\r\n return (\r\n \r\n {selectedBanner && (\r\n <>\r\n \r\n \r\n

{selectedBanner.name}

\r\n \r\n \r\n {banners.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n `${record.id}`}\r\n columns={columns}\r\n loading={tableLoading}\r\n dataSource={items}/>\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Banners;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport Card from \"antd/es/card\";\r\nimport { Form as FormikForm, Formik } from \"formik\";\r\nimport { Spin } from \"antd\";\r\nimport Row from \"antd/es/grid/row\";\r\n\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\n\r\nimport { commandRequest, queryRequest } from \"../common/utilities\";\r\nimport SaveCancelButtons from \"../common/components/forms/SaveCancelButtons\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport bannersApi from \"core/application/banners/bannersApi\";\r\nimport notifications from \"../common/components/notifications/notifications\";\r\nimport Editor from \"../common/components/forms/Editor\";\r\n\r\nconst contactFormValidator = Yup.object({\r\n photoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\")\r\n});\r\n\r\nconst ManageBanner = () => {\r\n let history = useHistory();\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const [saveLoading, setSaveLoading] = useState(false);\r\n const { id, bannerId } = useParams();\r\n\r\n const pageTitle = id ? \"Modifiko banerin\" : \"Krijo baner\";\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n const result = await queryRequest(() => bannersApi.getForSave(bannerId, id));\r\n setItem(result);\r\n setLoading(false);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n })();\r\n\r\n }, []);\r\n\r\n const onSubmit = async values => {\r\n setSaveLoading(true);\r\n\r\n const result = await commandRequest(() => bannersApi.save({\r\n ...values,\r\n id,\r\n bannerId\r\n }));\r\n\r\n setSaveLoading(false);\r\n\r\n if (!result.errors) {\r\n notifications.showSuccess();\r\n history.push(getSiteUrl(`/banners`));\r\n } else {\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\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 {item.settings.showDescription && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ManageBanner;\r\n","const ArticleStatus = {\r\n Draft: 0,\r\n Published: 1\r\n};\r\n\r\nexport default ArticleStatus;\r\n","import {adminHttpClient} from \"../commons/adminHttpClient\";\r\n\r\nexport default {\r\n getAll: async () => {\r\n return adminHttpClient.get(`/languages`);\r\n }\r\n};","import React from \"react\";\r\nimport {Table, Tag} from \"antd\";\r\nimport {displayDateAndHour} from \"../common/displayUtilities\";\r\n\r\nconst ArticleHistoryTable = ({articleHistoryLog}) => {\r\n\r\n const columns = [\r\n {\r\n title: \"Përdoruesi\",\r\n dataIndex: \"createdBy\",\r\n render: (text, record) => `${record.createdBy.name}`\r\n },\r\n {\r\n title: \"Operacioni\",\r\n dataIndex: \"operation\",\r\n render: (text, record) => {\r\n return record.operation === 0\r\n ? (Krijuar)\r\n : (Modifikuar)\r\n }\r\n },\r\n {\r\n title: \"Data\",\r\n dataIndex: \"created\",\r\n sorter: false,\r\n render: value => displayDateAndHour(value)\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\n\r\nexport default ArticleHistoryTable;","import React, {useCallback, useContext, useEffect, useRef, useState} from \"react\";\r\nimport {Button, Col, Modal, Row, Select, Table, Tag} from \"antd\";\r\nimport {createDndContext, DndProvider, useDrag, useDrop} from 'react-dnd';\r\nimport {HTML5Backend} from 'react-dnd-html5-backend';\r\nimport articles from \"core/application/articles/articles\";\r\nimport {queryRequest} from \"../common/utilities\";\r\nimport AddButton from \"../common/components/tables/AddButton\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport {displayDate} from \"../common/displayUtilities\";\r\nimport PagedList from \"../common/models/pagedList\";\r\nimport ArticleStatus from \"core/domain/blog/articleStatus\";\r\nimport TableEditButton from \"../common/components/tables/TableEditButton\";\r\nimport TableDeleteButton from \"../common/components/tables/TableDeleteButton\";\r\nimport {AppContext} from \"../AppContext\";\r\nimport ArticleSearch from \"./ArticleSearch\";\r\nimport CheckCircleFilled from \"@ant-design/icons/lib/icons/CheckCircleFilled\";\r\nimport ArticlesFilter from \"core/application/articles/ArticlesFilter\";\r\nimport languagesApi from \"core/application/languages/languagesApi\";\r\nimport store from \"core/application/commons/store\";\r\nimport ArticleHistoryTable from \"./ArticleHistoryTable\";\r\n\r\nconst RNDContext = createDndContext(HTML5Backend);\r\nconst type = 'DragableBodyRow';\r\n\r\nconst DragableBodyRow = ({index, moveRow, className, style, ...restProps}) => {\r\n const ref = React.useRef();\r\n const [{isOver, dropClassName}, drop] = useDrop({\r\n accept: type,\r\n collect: monitor => {\r\n const {index: dragIndex} = monitor.getItem() || {};\r\n if (dragIndex === index) {\r\n return {};\r\n }\r\n return {\r\n isOver: monitor.isOver(),\r\n dropClassName: dragIndex < index ? ' drop-over-downward' : ' drop-over-upward',\r\n };\r\n },\r\n drop: item => {\r\n moveRow(item.index, index);\r\n },\r\n });\r\n const [, drag] = useDrag({\r\n item: {type, index},\r\n collect: monitor => ({\r\n isDragging: monitor.isDragging(),\r\n }),\r\n });\r\n drop(drag(ref));\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Articles = () => {\r\n const {user, site} = useContext(AppContext);\r\n\r\n const LastFilterStoreKey = `LastFilter_${user.currentSiteId}`;\r\n const [pagedList, setPagedList] = useState(new PagedList());\r\n const [loading, setLoading] = useState(true);\r\n const storedFilter = store.getObject(LastFilterStoreKey);\r\n const [showArticleHistoryModal, setShowArticleHistoryModal] = useState(false);\r\n const [articleHistoryLog, setArticleHistoryLog] = useState([]);\r\n const [filter, setFilter] = useState(storedFilter\r\n ? new ArticlesFilter({...storedFilter})\r\n : new ArticlesFilter({\r\n orderColumn: \"priority\",\r\n orderDescending: true\r\n })\r\n );\r\n const [languages, setLanguages] = useState([]);\r\n\r\n const updatePagedArticles = async () => {\r\n setLoading(true);\r\n\r\n setPagedList(await queryRequest(() => articles.getAll(filter)));\r\n\r\n setLoading(false);\r\n store.saveObject(LastFilterStoreKey, filter);\r\n };\r\n\r\n useEffect(() => {\r\n (async () => {\r\n const result = await languagesApi.getAll();\r\n setLanguages(result);\r\n })();\r\n }, []);\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updatePagedArticles();\r\n })();\r\n }, [filter]);\r\n\r\n const onTableChange = (pagination, filters, sorter) => {\r\n const articleFilter = new ArticlesFilter({\r\n ...filter,\r\n orderColumn: \"priority\",\r\n orderDescending: sorter.order !== \"ascend\",\r\n pageNumber: pagination.current\r\n });\r\n setFilter(articleFilter);\r\n };\r\n\r\n const onSearch = (searchValue) => {\r\n setFilter(new ArticlesFilter({\r\n ...filter,\r\n searchValue\r\n }));\r\n };\r\n\r\n const onLanguageChange = (languageId) => {\r\n setFilter(new ArticlesFilter({\r\n ...filter,\r\n languageId: languageId\r\n }));\r\n }\r\n\r\n const components = {\r\n body: {\r\n row: DragableBodyRow,\r\n },\r\n };\r\n\r\n const moveRow = useCallback(\r\n async (dragIndex, hoverIndex) => {\r\n const dragRow = pagedList.items[dragIndex];\r\n const hoverRow = pagedList.items[hoverIndex];\r\n setLoading(true);\r\n await articles.swapOrder(dragRow.id, hoverRow.id);\r\n await updatePagedArticles();\r\n setLoading(false);\r\n },\r\n [pagedList.items],\r\n );\r\n\r\n const manager = useRef(RNDContext);\r\n\r\n const columns = [\r\n {\r\n title: \"Titull\",\r\n dataIndex: \"title\",\r\n sorter: false,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n width: \"40%\",\r\n render: (text, record) => (\r\n \r\n {text}\r\n \r\n )\r\n },\r\n {\r\n title: \"Kategoria\",\r\n dataIndex: \"category\",\r\n sorter: false,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => {\r\n return record.category ? record.category.name : \"\";\r\n }\r\n },\r\n {\r\n title: \"Kryesues\",\r\n dataIndex: \"leading\",\r\n sorter: false,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => (\r\n record.leading ? () : \"\"\r\n )\r\n },\r\n {\r\n title: \"Statusi\",\r\n dataIndex: \"status\",\r\n sorter: false,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: (text, record) => {\r\n const tagColor =\r\n record.status.key === ArticleStatus.Draft ? \"orange\" : \"green\";\r\n return {record.status.value};\r\n }\r\n },\r\n {\r\n title: \"Krijuar në\",\r\n dataIndex: \"created\",\r\n sorter: false,\r\n sortDirections: [\"descend\", \"ascend\"],\r\n render: value => displayDate(value)\r\n },\r\n {\r\n title: \"Veprim\",\r\n key: \"action\",\r\n render: (text, record) => (\r\n <>\r\n {user.canSaveArticle && (\r\n \r\n )}\r\n {user.canDeleteArticle && (\r\n articles.delete(record.id)}\r\n onDeleted={() => updatePagedArticles()}\r\n />\r\n )}\r\n\r\n {user.canDoAnything && (\r\n {\r\n const result = await articles.getHistoryLogForArticle(record.id);\r\n setArticleHistoryLog(result);\r\n setShowArticleHistoryModal(true);\r\n }}>\r\n \r\n )}\r\n \r\n )\r\n }\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

Artikuj

\r\n \r\n \r\n {site.showLanguages &&\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 index,\r\n moveRow,\r\n })}\r\n />\r\n \r\n\r\n {articleHistoryLog.length > 0 && (\r\n {\r\n setShowArticleHistoryModal(false);\r\n }}\r\n footer={(\r\n \r\n )}>\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\n\r\nexport default Articles;\r\n","import { Button } from \"antd\";\r\nimport React from \"react\";\r\n\r\nconst PublishButton = ({\r\n loading = false,\r\n title = \"Publiko\",\r\n icon = \"check\",\r\n onClick = () => {},\r\n className = \"\"\r\n}) => {\r\n return (\r\n \r\n {title}\r\n \r\n );\r\n};\r\nexport default PublishButton;\r\n","import React, {useContext, useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport Row from \"antd/es/grid/row\";\r\nimport Card from \"antd/es/card\";\r\nimport {Skeleton} from \"antd\";\r\nimport {useHistory, useParams} from \"react-router-dom\";\r\n\r\nimport generateFriendlyUrl from \"../common/generateFriendlyUrl\";\r\nimport {Form as FormikForm, Formik} from \"formik\";\r\nimport Input from \"../common/components/forms/TextInput\";\r\nimport Uploader from \"../common/components/forms/Uploader\";\r\nimport Editor from \"../common/components/forms/Editor\";\r\nimport ValidationSummary from \"../common/components/forms/ValidationSummary\";\r\nimport articlesApi from \"core/application/articles/articles\";\r\nimport {commandRequest, queryRequest} from \"../common/utilities\";\r\nimport getSiteUrl from \"../siteUrlCreator\";\r\nimport Select from \"../common/components/forms/Select\";\r\nimport CancelButton from \"../common/components/forms/CancelButton\";\r\nimport SaveButton from \"../common/components/forms/SaveButton\";\r\nimport PublishButton from \"../common/components/forms/PublishButton\";\r\nimport {AppContext} from \"../AppContext\";\r\nimport Switch from \"../common/components/forms/Switch\";\r\nimport blogCategoriesApi from \"core/application/articles/blogCategories\";\r\nimport notifications from \"../common/components/notifications/notifications\";\r\n\r\nconst validationRules = {\r\n title: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n friendlyUrl: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n content: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n photoId: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Fushë e detyrueshme\"),\r\n categoryIds: Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Ju lutem zgjidhni një kategori\"),\r\n}\r\n\r\nconst ManageArticle = () => {\r\n let history = useHistory();\r\n const { user, site } = useContext(AppContext);\r\n const [loading, setLoading] = useState(false);\r\n const [saveAsDraftLoading, setAsSaveDraftLoading] = useState(false);\r\n const [saveAsDraft, setSaveAsDraft] = useState(false);\r\n const [publishLoading, setPublishLoading] = useState(false);\r\n const [item, setItem] = useState(null);\r\n const [errors, setErrors] = useState([]);\r\n const { id } = useParams();\r\n const pageTitle = id ? \"Modifiko artikullin\" : \"Krijo artikull\";\r\n const [categoriesOptions, setCategoriesOptions] = useState([]);\r\n const [languages, setLanguages] = useState([]);\r\n\r\n if(site.showLanguages) {\r\n validationRules[\"languageId\"] = Yup.string()\r\n .nullable()\r\n .trim()\r\n .required(\"Ju lutem zgjidhni një gjuhe\");\r\n }\r\n\r\n const contactFormValidator = Yup.object(validationRules);\r\n\r\n const updateForm = async () => {\r\n setLoading(true);\r\n\r\n const article = await queryRequest(() => articlesApi.getForSave(id));\r\n setCategoriesOptions(article.availableCategories);\r\n setLanguages(article.availableLanguages);\r\n setItem(article);\r\n\r\n setLoading(false);\r\n };\r\n\r\n const updateCategories = async (languageId) => {\r\n const categories = await queryRequest(() => blogCategoriesApi.getByLanguage(languageId));\r\n setCategoriesOptions(categories);\r\n }\r\n\r\n useEffect(() => {\r\n (async () => {\r\n await updateForm();\r\n setLoading(false);\r\n })();\r\n }, []);\r\n\r\n const showButtonLoader = () => {\r\n if (saveAsDraft) {\r\n setAsSaveDraftLoading(true);\r\n } else {\r\n setPublishLoading(true);\r\n }\r\n };\r\n\r\n const hideButtonLoader = () => {\r\n if (saveAsDraft) {\r\n setAsSaveDraftLoading(false);\r\n } else {\r\n setPublishLoading(false);\r\n }\r\n };\r\n\r\n const onSubmit = async values => {\r\n showButtonLoader();\r\n\r\n const request = {\r\n ...values,\r\n id\r\n }\r\n const result = await commandRequest(() =>\r\n saveAsDraft ? articlesApi.saveAsDraft(request) : articlesApi.publish(request)\r\n );\r\n\r\n hideButtonLoader();\r\n\r\n if (!result.errors) {\r\n notifications.showSuccess()\r\n history.push(getSiteUrl(\"/articles\"));\r\n } else {\r\n setSaveAsDraft(false);\r\n setErrors(result.errors);\r\n window.scrollTo(0, 0);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {item && (\r\n \r\n {props => (\r\n \r\n \r\n {\r\n props.setFieldValue(\r\n \"friendlyUrl\",\r\n generateFriendlyUrl(e.currentTarget.value)\r\n );\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {site.showLanguages && (\r\n \r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n {categoriesOptions.map(category => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n {item.tags.map(tag => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n {user.canPublishArticle && (\r\n {\r\n setSaveAsDraft(false);\r\n }}\r\n />\r\n )}\r\n\r\n {user.canSaveArticle && (\r\n {\r\n setSaveAsDraft(true);\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 ManageArticle;\r\n"],"sourceRoot":""}