{"version":3,"sources":["services/askService.js","services/discussService.js","services/dislikeService.js","services/driversmanualService.js","services/likeService.js","services/newsService.js","services/ratingService.js","services/searchService.js","services/surveyService.js","services/ticketService.js","services/timetableSuggestionService.js","services/userService.js","services/webNotificationService.js","extranetApp.js","controllers/askController.js","controllers/askItemController.js","controllers/discussController.js","controllers/dislikeController.js","controllers/driversmanualController.js","controllers/driversmanualListController.js","controllers/extFrontpageController.js","controllers/extSearchController.js","controllers/headerController.js","controllers/newsController.js","controllers/newsItemController.js","controllers/profileController.js","controllers/searchController.js","controllers/surveyController.js","controllers/ticketsController.js","controllers/timetableSuggestionController.js","controllers/userController.js"],"names":["askService","$resource","$http","getQuestionCollectionModel","page","sync","param","promise","ressource","$promise","getQuestionModel","contentId","ContentId","addComment","parentId","comment","uploadedFileName","ParentId","Comment","UploadedFileName","service","method","params","methodName","discussService","getAllCommentsModel","dislikeService","addDislikeComment","driversmanualService","getManualCollectionModel","nodeId","NodeId","likeService","addLike","commentId","CommentId","AddLike","getAllLikesForUserId","getLikesForContentId","userHasLikedContent","userHasLikedComment","getAllLikesForComments","newsService","getNewsItemModel","getNewsItemsModel","query","getCategoryTags","ratingService","getAvg","id","Id","GetAvg","addRating","rating","Rating","AddRating","getUserRating","userId","UserId","GetUserRating","getAllRatingsForUserId","GetAllRatingsForUserId","searchService","search","term","Term","Search","surveyService","getMemberProfile","surveyId","resource","upgradeMemberProfile","getQuestionnaireList","getQuestionnaire","questionnaireId","getFirstQuestion","getNextQuestion","currentQuestionId","completeQuestionnair","questionnairId","answerIds","changeName","name","ticketService","getTicketCollectionModel","getTicketTypeTags","getMainCompanyTags","timetableSuggestionService","getBusCompanies","getRoutes","busCompanyId","getTimetableSuggestions","statusIds","routeId","pageNumber","orderBy","orderReversed","addSuggestion","subject","message","fileId","fileName","fileExtension","deleteSuggestion","addReply","suggestionId","getAnswers","deleteAnswer","answerId","userService","changePassword","password1","password2","Password1","Password2","uploadFileToUrl","file","File","phoneNumberExists","mobilePhone","MobilePhone","getDataInfo","login","username","password","Username","Password","logout","isLoggedIn","getCurrentProfile","getTags","getEmptyProfile","updateProfile","resetPassword","phoneNumber","PhoneNumber","resendPassword","memberId","MemberId","console","log","createProfileObject","createMemberProfile","validateCode","validationCode","ValidationCode","deleteMemberProfile","Login","Logout","IsLoggedIn","GetCurrentProfile","GetBusCompanies","ValidateCode","GetTags","GetEmptyProfile","CreateProfileObject","UpdateProfile","ResetPassword","ResendPassword","GetDataInfo","webNotificationService","getNotificationsForUser","GetNotificationsForUser","setNotificationViewed","SetNotificationViewed","setNotificationViewedByContentId","SetNotificationViewedByContentId","angular","module","filter","$sce","text","trustAsHtml","controller","$scope","$rootScope","$location","$anchorScroll","Upload","init","vm","loggedIn","rootScope","$on","userLoggedIn","stripHtmlKeepBreaks","replace","this","loading","questions","profileUrl","currentPage","totalPages","totalQuestions","questionCount","rangeTo","rangeFrom","then","data","LoggedIn","getQuestionCollectionModelSyncNr","response","Success","Data","Sync","Results","length","PageNumber","TotalResults","TotalPages","ResultsPerPage","nextPage","prevPage","openMenu","$","addClass","window","scrollTo","showLogin","sendQuestionValidation","event","form","sendingQuestion","preventDefault","validForm","inputFile","document","getElementById","files","Question","$valid","undefined","type","removeClass","uploadFiles","upload","url","scope","parentIndex","parent","commentform","questionIndex","info","sendingAnswer","o","FileName","AddCommentWithFile","novicell","overlay","set","content","class","CommentArea","CommentCollection","SubCommentCollection","push","CreatedDate","HasUnreadSubComment","Deleted","UserName","ProfileImageUrl","Likes","SubComments","showSubForm","showSubComments","$setPristine","commentPicFile","hash","question","addCommentCountClientSide","value","parseInt","isEmpty","str","commentCollection","showpanel","obj","index","element","UserHasLiked","HasLiked","addLikeCountClientSide","dislikeItem","dislikeClick","animate","scrollTop","height","addLikeClientSide","i","find","items","category","filtered","item","contains","j","Tags","Name","TopicCollection","k","queryBy","driversmanualCollection","dropdownSelected","dropdownOptions","showCategorySelect","selectCategoryValue","val","ChapterCollection","isUserLoggedIn","state","profile","birthYear","BirthYear","company","CompanyId","Profession","AcceptSms","CompanyTags","companyLabel","Label","searchTerm","getParameterByName","getSearchResult","location","href","regex","RegExp","results","exec","decodeURIComponent","searchCollection","webNotifications","webNotificationCount","viewAllNotifications","countUnviewedNotifications","c","Viewed","click","Url","swipe","unread","UserHasRead","totalNews","newsCount","userSearch","newsCollection","searchUpdated","getNewsItemsModelSyncNr","slice","loggedInResolved","news","Ratings","sendingComment","sendingSubComment","Comments","$event","target","$timeout","populateYears","currentYear","Date","getFullYear","maxYear","minYear","years","protocol","domain","homeUrl","dataInfo","busCompanies","categoryTags","regionTags","showYearSelect","showCompany","error","passwordLength","passwordsIdentical","passwordValid","croppedDataUrl","p","isCreate","umbracoMemberKey","dataUrltoBlob","phone","MobilePhoneNumber","result","status","errorMsg","selectYearValue","selectCompany","submitProfile","validateFormData","createProfilePromise","createProfile","State","UmbracoMemberKey","updatePromise","NameError","test","MobilePhoneNumberError","ProfessionError","BirthYearError","validateCompanyTags","CompanyTagsError","validateRegTags","RegTags","GetNotificationsError","Email","EmailError","PrivacyPolicy","PrivacyPolicyError","Rules","RulesError","regTags","hasRegion","Checked","companyTags","hasCompany","phonenumber","validate","newCode","returnToProfile","passwordChanged","passwordChangedBackToEdit","changePasswordSubmit","testPasswordStrength","Message","changePasswordCancel","pattern","charLength","lowercase","uppercase","special","testPasswordsIdentical","deleteProfile","deleteProfileCancel","deleteProfileSubmit","confirm","searchResults","setNodeId","loadingMemberProfile","loadingQuestionnaireList","loadingQuestionnaire","loadingQuestion","loadingQuestionnaireResult","showMemberProfile","showQuestionnaireList","showQuestionnaire","showQuestion","showQuestionnaireResult","showCongratulationScreen","showAnswersOnResult","questionnaireList","memberProfile","directlySentToQuestionaire","directlySentToQuestionaireId","quiz","selectedQuestionnaireId","selectedQuestionnaire","selectedAnswerIds","currentQuestion","currentAnswers","currentSelectedAnswerId","isLastQuestion","wrongAnswers","questionnaireCompleted","nameSaveHasError","nameSaveErrorMessage","hasReadWrongAnswers","selectedQuestionnaireClicked","toggleBusnameInputFocus","isInputDisabled","prop","focus","CustomProfileName","toggleClass","upgradeClicked","Questionnaires","deselectQuestionnaireClicked","removeDirectLinkParameter","Questionnaire","Completed","homeClicked","startQuestionnaireClicked","Answers","IsLastQuestion","nextQuestionClicked","doesSelectedAnswerExist","SurveyQuestionnaireQuestionId","completeQuestionnaireClicked","WrongAnswers","answerClicked","quizCompleted","SurveyQuestionnaireAnswerId","toggleProfile","hasClass","html","editName","newBusname","compare","numberOfElements","querySelectorAll","numberOfClasses","displayCorrectAnswer","companyTag","ticketCollection","mainCompanyTags","addEventListener","e","suggestionForm","$apply","ctrl","showBusCompanyTypeSelect","showRouteTypeSelect","on","next","memberLoggedIn","tabs","subTabs","orderTypes","label","selected","pagination","totalResults","pageSize","criteria","selectedBusCompany","selectedRoute","orderReverse","suggestionFormData","suggestionAnswerReply","busCompaniesLoaded","busCompaniesShow","routesLoaded","routesShow","routes","suggestionsLoaded","suggestionsShow","suggestions","formLoaded","formShow","formSubmitting","formSubmitted","suggestionAnswers","helpTextToShow","Tab","config","tabPathIndex","addTab","tab","select","iParentTab","deselect","iScopeTab","onSelected","iTab","onDeselected","InitTabs","listTab","onListTabSelected","onListTabDeselected","formTab","onFormTabSelected","onFormTabDeselected","fetchSuggestions","fetchBusCompanies","onNextPage","onPrevPage","onSort","orderType","selectedOrderType","iOrderType","sort","selectBusCompany","busCompany","fetchRoutes","selectRoute","route","fetchBusCompaniesSync","unshift","fetchRoutesSync","Number","fetchSuggestionsSync","selectedSuggestions","resultsPerPage","RangeFrom","RangeTo","uploadFile","fileData","alert","Extension","confirmDeletion","el","replyToAnswer","closeDriverReplyForm","answer","IsDeleting","Deletable","Files","keepShowingAnswers","answers","addAnother","handleCategory","cat","list","checked","loginmessage","tagChange","CreateProfile","mobilePhoneNumber","gender","year","acceptSms","acceptMail","acceptMailDigest","email","close","stopPropagation","$broadcast","reload","showlogin","factory","$inject"],"mappings":"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","file":"angularApp.min.js","sourcesContent":["angular.module('extranetApp.askService', []).factory('askService', askService);\r\n\r\naskService.$inject = ['$resource', '$http'];\r\n\r\nfunction askService($resource, $http) {\r\n\r\n var service = {\r\n getQuestionCollectionModel: getQuestionCollectionModel,\r\n getQuestionModel: getQuestionModel,\r\n addComment: addComment\r\n };\r\n\r\n var ressource = $resource('/umbraco/api/ask/:methodName', {}, { \r\n getQuestionCollectionModel: { method: 'GET', params: { methodName: 'GetQuestionCollectionModel' } },\r\n getQuestionModel: { method: 'GET', params: { methodName: 'GetQuestionModel' } },\r\n addComment: { method: 'POST', params: { methodName: 'AddComment' } } \r\n });\r\n\r\n function getQuestionCollectionModel(page, sync) {\r\n var param = {\r\n 'page': page + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = ressource.getQuestionCollectionModel(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getQuestionModel(contentId) {\r\n var param = {\r\n ContentId: contentId\r\n };\r\n var promise = ressource.getQuestionModel(param).$promise;\r\n return promise;\r\n }\r\n\r\n function addComment(contentId, parentId, comment, uploadedFileName) {\r\n var param = {\r\n ContentId: contentId,\r\n ParentId: parentId,\r\n Comment: comment,\r\n UploadedFileName: uploadedFileName\r\n };\r\n var promise = ressource.addComment(param).$promise;\r\n return promise;\r\n }\r\n\r\n return service;\r\n}","angular.module('extranetApp.discussService', []).factory('discussService', discussService);\r\n\r\ndiscussService.$inject = ['$resource', '$http'];\r\n\r\nfunction discussService($resource, $http) {\r\n\r\n var service = {\r\n addComment: addComment,\r\n getAllCommentsModel: getAllCommentsModel\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/discuss/:methodName\", {}, {\r\n addComment: { method: \"POST\", params: { methodName: \"AddComment\" } },\r\n getAllCommentsModel: { method: \"GET\", params: { methodName: \"GetAllCommentsModel\" } }\r\n });\r\n\r\n function addComment(contentId, parentId, comment) {\r\n var param = {\r\n ContentId: contentId,\r\n ParentId: parentId,\r\n Comment: comment\r\n }\r\n var promise = ressource.addComment(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getAllCommentsModel(contentId) {\r\n var param = {\r\n ContentId: contentId\r\n }\r\n var promise = ressource.getAllCommentsModel(param).$promise;\r\n return promise;\r\n };\r\n\r\n return service;\r\n}","angular.module('extranetApp.dislikeService', []).factory('dislikeService', dislikeService);\r\n\r\ndislikeService.$inject = ['$resource', '$http'];\r\n\r\nfunction dislikeService($resource, $http) {\r\n\r\n var service = {\r\n addDislikeComment: addDislikeComment\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/dislike/:methodName\", {}, {\r\n addDislikeComment: { method: \"GET\", params: { methodName: \"AddDislikeComment\" } }\r\n });\r\n\r\n function addDislikeComment(contentId, comment) {\r\n var param = {\r\n ContentId: contentId,\r\n Comment: comment\r\n }\r\n var promise = ressource.addDislikeComment(param).$promise;\r\n return promise;\r\n };\r\n\r\n return service;\r\n}","angular.module('extranetApp.driversmanualService', []).factory('driversmanualService', driversmanualService);\r\n\r\ndriversmanualService.$inject = ['$resource', '$http'];\r\n\r\nfunction driversmanualService($resource, $http) {\r\n\r\n var service = {\r\n getManualCollectionModel: getManualCollectionModel\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/driversmanual/:methodName\", {}, { \r\n getManualCollectionModel: { method: \"GET\", params: { methodName: \"GetManualCollectionModel\" } },\r\n });\r\n\r\n function getManualCollectionModel(nodeId) {\r\n var param = {\r\n NodeId: nodeId\r\n }\r\n var promise = ressource.getManualCollectionModel(param).$promise;\r\n return promise;\r\n };\r\n\r\n return service;\r\n}","angular.module('extranetApp.likeService', []).factory('likeService', likeService);\r\n\r\nlikeService.$inject = ['$resource', '$http'];\r\n\r\nfunction likeService($resource, $http) {\r\n\r\n var service = {\r\n addLike: addLike,\r\n getAllLikesForUserId: getAllLikesForUserId,\r\n getLikesForContentId: getLikesForContentId,\r\n userHasLikedContent: userHasLikedContent,\r\n getAllLikesForComments: getAllLikesForComments,\r\n userHasLikedComment: userHasLikedComment\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/like/:methodName\", {}, {\r\n AddLike: { method: \"POST\", params: { methodName: \"AddLike\" } },\r\n getAllLikesForUserId: { method: \"GET\", params: { methodName: \"GetAllLikesForUserId\" } },\r\n getLikesForContentId: { method: \"GET\", params: { methodName: \"GetLikesForContentId\" } },\r\n userHasLikedContent: { method: \"GET\", params: { methodName: \"UserHasLikedContent\" } },\r\n getAllLikesForComments: { method: \"GET\", params: { methodName: \"GetAllLikesForComments\" } },\r\n userHasLikedComment: { method: \"GET\", params: { methodName: \"UserHasLikedComment\" } }\r\n });\r\n\r\n function addLike(contentId, commentId) {\r\n var param = {\r\n ContentId: contentId,\r\n CommentId: commentId\r\n }\r\n var promise = ressource.AddLike(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getAllLikesForUserId() {\r\n var promise = ressource.getAllLikesForUserId().$promise;\r\n return promise;\r\n };\r\n\r\n function getLikesForContentId(contentId) {\r\n var param = {\r\n ContentId: contentId\r\n }\r\n var promise = ressource.getLikesForContentId(param).$promise;\r\n return promise;\r\n };\r\n\r\n function userHasLikedContent(contentId) {\r\n var param = {\r\n ContentId: contentId\r\n }\r\n var promise = ressource.userHasLikedContent(param).$promise;\r\n return promise;\r\n };\r\n\r\n function userHasLikedComment(commentId) {\r\n var param = {\r\n CommentId: commentId\r\n }\r\n var promise = ressource.userHasLikedComment(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getAllLikesForComments(contentId) {\r\n var param = {\r\n ContentId: contentId\r\n }\r\n var promise = ressource.getAllLikesForComments(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getLikesForComment(contentId, commentId) {\r\n var param = {\r\n ContentId: contentId,\r\n CommentId: commentId\r\n }\r\n var promise = ressource.getLikesForComment(param).$promise;\r\n return promise;\r\n };\r\n\r\n return service;\r\n}\r\n\r\n\r\n","angular.module('extranetApp.newsService', []).factory('newsService', newsService);\r\n\r\nnewsService.$inject = ['$resource', '$http'];\r\n\r\nfunction newsService($resource, $http) {\r\n\r\n var service = {\r\n getNewsItemModel: getNewsItemModel,\r\n getNewsItemsModel: getNewsItemsModel,\r\n getCategoryTags: getCategoryTags,\r\n addComment: addComment\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/news/:methodName\", {}, {\r\n getNewsItemModel: { method: \"GET\", params: { methodName: \"GetNewsItemModel\" } },\r\n getNewsItemsModel: { method: \"GET\", params: { methodName: \"GetNewsItemsModel\" } },\r\n getCategoryTags: { method: \"GET\", params: { methodName: \"GetCategoryTags\" } },\r\n addComment: { method: \"POST\", params: { methodName: \"AddComment\" } }\r\n });\r\n\r\n function getNewsItemModel(contentId) {\r\n var param = {\r\n ContentId: contentId\r\n };\r\n var promise = ressource.getNewsItemModel(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getNewsItemsModel(query, page, sync) {\r\n var param = {\r\n 'query': query + '',\r\n 'page': page + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = ressource.getNewsItemsModel(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getCategoryTags() {\r\n var promise = ressource.getCategoryTags().$promise;\r\n return promise;\r\n }\r\n\r\n function addComment(contentId, parentId, comment) {\r\n var param = {\r\n ContentId: contentId,\r\n ParentId: parentId,\r\n Comment: comment\r\n };\r\n var promise = ressource.addComment(param).$promise;\r\n return promise;\r\n }\r\n\r\n return service;\r\n}","angular.module('extranetApp.ratingService', []).factory('ratingService', ratingService);\r\n\r\nratingService.$inject = ['$resource', '$http'];\r\n\r\nfunction ratingService($resource, $http) {\r\n\r\n var service = {\r\n getAvg: getAvg,\r\n addRating: addRating,\r\n getUserRating: getUserRating,\r\n getAllRatingsForUserId: getAllRatingsForUserId\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/rating/:methodName\", {}, {\r\n GetAvg: { method: \"GET\", params: { methodName: \"avg\" } },\r\n AddRating: { method: \"POST\", params: { methodName: \"addRating\" } },\r\n GetUserRating: { method: \"GET\", params: { methodName: \"getUserRating\" } },\r\n GetAllRatingsForUserId: { method: \"GET\", params: { methodName: \"getAllRatingsForUserId\" } }\r\n });\r\n\r\n function getAvg(id) {\r\n var param = {\r\n Id: id\r\n }\r\n var promise = ressource.GetAvg(param).$promise;\r\n return promise;\r\n };\r\n\r\n function addRating(contentId, rating) {\r\n var param = {\r\n ContentId: contentId,\r\n Rating: rating\r\n }\r\n var promise = ressource.AddRating(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getUserRating(userId, contentId) {\r\n var param = {\r\n UserId: userId,\r\n ContentId: contentId\r\n }\r\n var promise = ressource.GetUserRating(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getAllRatingsForUserId() {\r\n var promise = ressource.GetAllRatingsForUserId().$promise;\r\n return promise;\r\n };\r\n\r\n return service;\r\n}\r\n\r\n\r\n","angular.module('extranetApp.searchService', []).factory('searchService', searchService);\r\n\r\nsearchService.$inject = ['$resource', '$http'];\r\n\r\nfunction searchService($resource, $http) {\r\n\r\n var service = {\r\n Search: search\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/Search/:methodName\", {}, {\r\n Search: { method: \"POST\", params: { methodName: \"Search\" } }\r\n \r\n });\r\n\r\n function search(term, nodeId) {\r\n var param = {\r\n Term: term,\r\n NodeId:nodeId\r\n }\r\n var promise = ressource.Search(param).$promise;\r\n return promise;\r\n }\r\n\r\n return service;\r\n}\r\n\r\n\r\n","angular.module('extranetApp.surveyService', []).factory('surveyService', surveyService);\r\n\r\nsurveyService.$inject = ['$resource', '$http'];\r\n\r\nfunction surveyService($resource, $http) {\r\n\r\n var service = {\r\n getMemberProfile: getMemberProfile,\r\n upgradeMemberProfile: upgradeMemberProfile,\r\n getQuestionnaireList: getQuestionnaireList,\r\n getQuestionnaire: getQuestionnaire,\r\n getFirstQuestion: getFirstQuestion,\r\n getNextQuestion: getNextQuestion,\r\n completeQuestionnair: completeQuestionnair,\r\n changeName: changeName\r\n \r\n };\r\n\r\n var resource = $resource('/umbraco/api/survey/:methodName', {}, { \r\n getMemberProfile: { method: 'GET', params: { methodName: 'GetMemberProfile' } },\r\n upgradeMemberProfile: { method: 'POST', params: { methodName: 'UpgradeMemberProfile' } },\r\n getQuestionnaireList: { method: 'GET', params: { methodName: 'GetQuestionnaireList' } },\r\n getQuestionnaire: { method: 'GET', params: { methodName: 'GetQuestionnaire' } },\r\n getFirstQuestion: { method: 'GET', params: { methodName: 'GetFirstQuestion' } },\r\n getNextQuestion: { method: 'GET', params: { methodName: 'GetNextQuestion' } },\r\n completeQuestionnair: { method: 'POST', params: { methodName: 'CompleteQuestionnair' } },\r\n changeName: { method: 'POST', params: { methodName: 'ChangeName' } }\r\n });\r\n\r\n function getMemberProfile(surveyId, sync) {\r\n var param = {\r\n 'surveyId': surveyId + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = resource.getMemberProfile(param).$promise;\r\n return promise;\r\n }\r\n\r\n function upgradeMemberProfile(surveyId, sync) {\r\n var param = {\r\n 'surveyId': surveyId + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = resource.upgradeMemberProfile(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getQuestionnaireList(surveyId, sync) {\r\n var param = {\r\n 'surveyId': surveyId + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = resource.getQuestionnaireList(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getQuestionnaire(questionnaireId, sync) {\r\n var param = {\r\n 'questionnaireId': questionnaireId + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = resource.getQuestionnaire(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getFirstQuestion(questionnaireId, sync) {\r\n var param = {\r\n 'questionnaireId': questionnaireId + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = resource.getFirstQuestion(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getNextQuestion(currentQuestionId, sync) {\r\n var param = {\r\n 'currentQuestionId': currentQuestionId + '',\r\n 'sync': sync + ''\r\n };\r\n var promise = resource.getNextQuestion(param).$promise;\r\n return promise;\r\n }\r\n\r\n function completeQuestionnair(questionnairId, answerIds, sync) {\r\n var param = {\r\n 'questionnairId': questionnairId + '',\r\n 'answerIds': answerIds,\r\n 'sync': sync + ''\r\n };\r\n var promise = resource.completeQuestionnair(param).$promise;\r\n return promise;\r\n }\r\n\r\n function changeName(surveyId, name) {\r\n var param = {\r\n 'surveyId': surveyId,\r\n 'name': name\r\n };\r\n var promise = resource.changeName(param).$promise;\r\n return promise;\r\n }\r\n\r\n return service;\r\n}","angular.module('extranetApp.ticketService', []).factory('ticketService', ticketService);\r\n\r\nticketService.$inject = ['$resource', '$http'];\r\n\r\nfunction ticketService($resource, $http) {\r\n\r\n var service = {\r\n getTicketCollectionModel: getTicketCollectionModel,\r\n getTicketTypeTags: getTicketTypeTags,\r\n getMainCompanyTags: getMainCompanyTags\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/tickettypes/:methodName\", {}, {\r\n getTicketCollectionModel: { method: \"GET\", params: { methodName: \"GetTicketCollectionModel\" } },\r\n getTicketTypeTags: { method: \"GET\", params: { methodName: \"GetTicketTypeTags\" } },\r\n getMainCompanyTags: { method: \"GET\", params: { methodName: \"GetMainCompanyTags\" } }\r\n });\r\n\r\n function getTicketCollectionModel(nodeId) {\r\n var param = {\r\n NodeId: nodeId\r\n }\r\n var promise = ressource.getTicketCollectionModel(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getTicketTypeTags() {\r\n var promise = ressource.getTicketTypeTags().$promise;\r\n return promise;\r\n };\r\n\r\n function getMainCompanyTags() {\r\n var promise = ressource.getMainCompanyTags().$promise;\r\n return promise;\r\n };\r\n\r\n return service;\r\n}","angular.module('extranetApp.timetableSuggestionService', []).factory('timetableSuggestionService', timetableSuggestionService);\r\n\r\ntimetableSuggestionService.$inject = ['$resource', '$http'];\r\n\r\nfunction timetableSuggestionService($resource, $http) {\r\n\r\n var service = {\r\n getBusCompanies: getBusCompanies,\r\n getRoutes: getRoutes,\r\n getTimetableSuggestions: getTimetableSuggestions,\r\n getAnswers: getAnswers,\r\n addSuggestion: addSuggestion,\r\n deleteSuggestion: deleteSuggestion,\r\n addReply: addReply,\r\n deleteAnswer: deleteAnswer\r\n };\r\n\r\n var ressource = $resource('/umbraco/api/timetablesuggestion/:methodName', {}, {\r\n getBusCompanies: { method: 'GET', params: { methodName: 'GetBusCompanies' } },\r\n getRoutes: { method: 'GET', params: { methodName: 'GetRoutes' } },\r\n getTimetableSuggestions: { method: 'GET', params: { methodName: 'GetTimetableSuggestions' } },\r\n getAnswers: { method: 'GET', params: { methodName: 'GetAnswers' } },\r\n addSuggestion: { method: 'POST', params: { methodName: 'AddSuggestion' } },\r\n deleteSuggestion: { method: 'POST', params: { methodName: 'DeleteTimetableSuggestion' } },\r\n addReply: { method: 'POST', params: { methodName: 'AddReply' } },\r\n deleteAnswer: { method: 'POST', params: { methodName: 'DeleteAnswer' } }\r\n });\r\n\r\n function getBusCompanies(sync) {\r\n var param = {\r\n 'sync': sync + ''\r\n };\r\n var promise = ressource.getBusCompanies(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getRoutes(busCompanyId, sync) {\r\n var param = {\r\n 'busCompanyId': busCompanyId,\r\n 'sync': sync + ''\r\n };\r\n var promise = ressource.getRoutes(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getTimetableSuggestions(query, statusIds, busCompanyId, routeId, pageNumber, orderBy, orderReversed, sync) {\r\n var param = {\r\n query: query + '',\r\n statusIds: statusIds,\r\n busCompanyId: busCompanyId + '',\r\n routeId: routeId + '',\r\n pageNumber: pageNumber,\r\n orderBy: orderBy + '',\r\n orderReversed: orderReversed,\r\n sync: sync + ''\r\n };\r\n var promise = ressource.getTimetableSuggestions(param).$promise;\r\n return promise;\r\n }\r\n\r\n function addSuggestion(subject, message, routeId, fileId, fileName, fileExtension, sync) {\r\n var param = {\r\n subject: subject + '',\r\n message: message + '',\r\n routeId: routeId + '',\r\n fileId: fileId + '',\r\n fileName: fileName + '',\r\n fileExtension: fileExtension + '',\r\n sync: sync + ''\r\n };\r\n var promise = ressource.addSuggestion(param).$promise;\r\n return promise;\r\n }\r\n\r\n function deleteSuggestion(id) {\r\n var param = {\r\n 'id': id\r\n };\r\n var promise = ressource.deleteSuggestion(param).$promise;\r\n return promise;\r\n }\r\n\r\n function addReply(suggestionId, message, fileId, fileName, fileExtension) {\r\n var param = {\r\n 'suggestionId': suggestionId,\r\n 'message': message,\r\n fileId: fileId,\r\n fileName: fileName,\r\n fileExtension: fileExtension,\r\n };\r\n var promise = ressource.addReply(param).$promise;\r\n return promise;\r\n }\r\n\r\n function getAnswers(suggestionId) {\r\n var param = {\r\n 'suggestionId': suggestionId\r\n };\r\n var promise = ressource.getAnswers(param).$promise;\r\n return promise;\r\n }\r\n\r\n function deleteAnswer(answerId) {\r\n var param = {\r\n 'answerId': answerId\r\n };\r\n var promise = ressource.deleteAnswer(param).$promise;\r\n return promise;\r\n }\r\n\r\n return service;\r\n}","angular.module('extranetApp.userService', []).factory('userService', userService);\r\n\r\nuserService.$inject = ['$resource', '$http'];\r\n\r\nfunction userService($resource, $http) {\r\n\r\n var service = {\r\n Login: login,\r\n Logout: logout,\r\n IsLoggedIn: isLoggedIn,\r\n GetCurrentProfile: getCurrentProfile,\r\n GetBusCompanies: getBusCompanies,\r\n ValidateCode: validateCode,\r\n GetTags: getTags,\r\n GetEmptyProfile: getEmptyProfile,\r\n CreateProfileObject: createProfileObject,\r\n UpdateProfile: updateProfile,\r\n ResetPassword: resetPassword,\r\n ResendPassword: resendPassword,\r\n GetDataInfo: getDataInfo,\r\n uploadFileToUrl: uploadFileToUrl,\r\n phoneNumberExists: phoneNumberExists,\r\n changePassword : changePassword,\r\n deleteMemberProfile : deleteMemberProfile\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/user/:methodName\", {}, {\r\n login: { method: \"POST\", params: { methodName: \"Login\" } },\r\n logout: { method: \"GET\", params: { methodName: \"Logout\" } },\r\n isLoggedIn: { method: \"GET\", params: { methodName: \"isLoggedIn\" } },\r\n getCurrentProfile: { method: \"GET\", params: { methodName: \"GetCurrentProfile\" } },\r\n getBusCompanies: { method: \"GET\", params: { methodName: \"GetBusCompanies\" } },\r\n createMemberProfile: { method: \"POST\", params: { methodName: \"CreateMemberProfile\" } },\r\n validateCode: { method: \"POST\", params: { methodName: \"ValidateCode\" } },\r\n getTags: { method: \"GET\", params: { methodName: \"GetTags\" } },\r\n getEmptyProfile: { method: \"GET\", params: { methodName: \"GetEmptyProfile\" } },\r\n updateProfile: { method: \"POST\", params: { methodName: \"UpdateProfile\" } },\r\n resetPassword: { method: \"POST\", params: { methodName: \"ResetPassword\" } },\r\n resendPassword: { method: \"POST\", params: { methodName: \"ResendPassword\" } },\r\n getDataInfo: { method: \"GET\", params: { methodName: \"GetDataInfo\" } },\r\n uploadFileToUrl: { method: \"POST\", params: { methodName: \"UploadFileToUrl\" } },\r\n phoneNumberExists: { method: \"GET\", params: { methodName: \"PhoneNumberExists\" } },\r\n changePassword: { method: \"POST\", params: { methodName: \"ChangePassword\" } },\r\n deleteMemberProfile: { method: \"POST\", params: { methodName: \"DeleteMemberProfile\" } }\r\n });\r\n\r\n function changePassword(password1, password2) {\r\n var param = {\r\n Password1: password1,\r\n Password2: password2\r\n };\r\n\r\n var promise = ressource.changePassword(param).$promise;\r\n return promise;\r\n }\r\n\r\n function uploadFileToUrl(file) {\r\n var param = {\r\n File: file\r\n }\r\n var promise = ressource.uploadFileToUrl(param).$promise;\r\n return promise;\r\n };\r\n\r\n function phoneNumberExists(mobilePhone) {\r\n var param = {\r\n MobilePhone: mobilePhone\r\n }\r\n var promise = ressource.phoneNumberExists(param).$promise;\r\n return promise;\r\n };\r\n\r\n function getDataInfo() {\r\n var promise = ressource.getDataInfo().$promise;\r\n return promise;\r\n };\r\n\r\n function login(username, password) {\r\n var param = {\r\n Username: username,\r\n Password: password\r\n }\r\n var promise = ressource.login(param).$promise;\r\n return promise;\r\n };\r\n\r\n function logout() {\r\n var promise = ressource.logout().$promise;\r\n return promise;\r\n };\r\n\r\n function isLoggedIn() {\r\n var promise = ressource.isLoggedIn().$promise;\r\n return promise;\r\n };\r\n\r\n function getCurrentProfile() {\r\n var promise = ressource.getCurrentProfile().$promise;\r\n return promise;\r\n };\r\n\r\n function getBusCompanies() {\r\n var promise = ressource.getBusCompanies().$promise;\r\n return promise;\r\n }\r\n\r\n function getTags() {\r\n var promise = ressource.getTags().$promise;\r\n return promise;\r\n }\r\n\r\n function getEmptyProfile() {\r\n var promise = ressource.getEmptyProfile().$promise;\r\n return promise;\r\n };\r\n\r\n function updateProfile(params) {\r\n var promise = ressource.updateProfile(params).$promise;\r\n return promise;\r\n }\r\n\r\n function resetPassword(phoneNumber) {\r\n var params = {\r\n PhoneNumber: phoneNumber\r\n }\r\n var promise = ressource.resetPassword(params).$promise;\r\n return promise;\r\n }\r\n\r\n function resendPassword(memberId) {\r\n var params = {\r\n MemberId: memberId\r\n }\r\n\r\n var promise = ressource.resendPassword(params).$promise;\r\n console.log(params);\r\n return promise;\r\n }\r\n\r\n\r\n function createProfileObject(params) {\r\n var promise = ressource.createMemberProfile(params).$promise;\r\n return promise;\r\n\r\n }\r\n\r\n function validateCode(memberId, validationCode) {\r\n var params = {\r\n MemberId: memberId,\r\n ValidationCode: validationCode\r\n }\r\n\r\n var promise = ressource.validateCode(params).$promise;\r\n return promise;\r\n }\r\n\r\n function deleteMemberProfile() {\r\n var promise = ressource.deleteMemberProfile().$promise;\r\n return promise;\r\n }\r\n\r\n return service;\r\n}","angular.module('extranetApp.webNotificationService', []).factory('webNotificationService', webNotificationService);\r\n\r\nwebNotificationService.$inject = ['$resource', '$http'];\r\n\r\nfunction webNotificationService($resource, $http) {\r\n\r\n var service = {\r\n GetNotificationsForUser: getNotificationsForUser,\r\n SetNotificationViewed: setNotificationViewed,\r\n SetNotificationViewedByContentId: setNotificationViewedByContentId\r\n };\r\n\r\n var ressource = $resource(\"/umbraco/api/WebNotification/:methodName\", {}, {\r\n GetNotificationsForUser: { method: \"GET\", params: { methodName: \"GetNotificationsForUser\" } },\r\n SetNotificationViewed: { method: \"POST\", params: { methodName: \"SetNotificationViewed\" } },\r\n SetNotificationViewedByContentId: { method: \"POST\", params: { methodName: \"SetNotificationViewedByContentId\" } }\r\n \r\n });\r\n\r\n function getNotificationsForUser() {\r\n var promise = ressource.GetNotificationsForUser().$promise;\r\n return promise;\r\n };\r\n\r\n function setNotificationViewed(id) {\r\n var param = {\r\n Id: id\r\n }\r\n var promise = ressource.SetNotificationViewed(param).$promise;\r\n return promise;\r\n }\r\n\r\n function setNotificationViewedByContentId(id) {\r\n var param = {\r\n Id: id\r\n }\r\n var promise = ressource.SetNotificationViewedByContentId(param).$promise;\r\n return promise;\r\n }\r\n\r\n return service;\r\n}\r\n\r\n\r\n","(function () {\r\n 'use strict';\r\n angular.module('extranetApp', [\r\n 'ngResource',\r\n 'ngTouch',\r\n 'ngFileUpload',\r\n 'ngImgCrop',\r\n // Resources\r\n // Services\r\n 'extranetApp.likeService',\r\n 'extranetApp.ratingService',\r\n 'extranetApp.userService',\r\n 'extranetApp.discussService',\r\n 'extranetApp.dislikeService',\r\n 'extranetApp.newsService',\r\n 'extranetApp.webNotificationService',\r\n 'extranetApp.searchService',\r\n 'extranetApp.askService',\r\n 'extranetApp.driversmanualService',\r\n 'extranetApp.ticketService',\r\n 'extranetApp.surveyService',\r\n 'extranetApp.timetableSuggestionService',\r\n // Controllers\r\n 'extranetApp.newsController',\r\n 'extranetApp.newsItemController',\r\n 'extranetApp.extFrontpageController',\r\n 'extranetApp.userController',\r\n 'extranetApp.driversmanualController',\r\n 'extranetApp.driversmanualListController',\r\n 'extranetApp.discussController',\r\n 'extranetApp.profileController',\r\n 'extranetApp.dislikeController',\r\n 'extranetApp.headerController',\r\n 'extranetApp.searchController',\r\n 'extranetApp.askController',\r\n 'extranetApp.askItemController',\r\n 'extranetApp.ticketsController',\r\n 'extranetApp.extSearchController',\r\n 'extranetApp.surveyController',\r\n 'extranetApp.timetableSuggestionController'\r\n\r\n\r\n // Directives\r\n ]);\r\n //console.log(\"extranetApp.js\");\r\n})();\r\n\r\n","angular.module('extranetApp.askController', [])\r\n\r\n .filter('to_trusted', ['$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n }])\r\n\r\n .controller('askController', ['$scope', '$rootScope', 'askService', 'userService', '$sce', '$location', '$anchorScroll', 'Upload', function ($scope, $rootScope, askService, userService, $sce, $location, $anchorScroll, Upload) {\r\n var vm = this;\r\n vm.rootScope = $rootScope;\r\n vm.userLoggedIn = false;\r\n $scope.loading = true;\r\n $scope.questions;\r\n $scope.contentId;\r\n vm.file = {};\r\n vm.profileUrl = '/chauffornet/min-profil';\r\n\r\n $scope.currentPage = 1;\r\n $scope.totalPages = 1;\r\n $scope.totalQuestions = 0;\r\n $scope.questionCount = 0;\r\n $scope.rangeTo = 0;\r\n $scope.rangeFrom = 0;\r\n\r\n function init() {\r\n\r\n vm.loggedIn();\r\n vm.getQuestionCollectionModel();\r\n\r\n vm.rootScope.$on('userLogin', function () {\r\n vm.userLoggedIn = true;\r\n vm.getQuestionCollectionModel();\r\n });\r\n\r\n vm.rootScope.$on('userLogout', function () {\r\n vm.userLoggedIn = false;\r\n vm.getQuestionCollectionModel();\r\n });\r\n\r\n vm.file.name = 'Ingen fil valgt';\r\n }\r\n\r\n vm.loggedIn = function loggedIn() {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function(data) {\r\n if (data.LoggedIn) {\r\n vm.userLoggedIn = true;\r\n }\r\n });\r\n };\r\n\r\n vm.getQuestionCollectionModelSyncNr = 0;\r\n vm.getQuestionCollectionModel = function () {\r\n $scope.loading = true;\r\n var page = $scope.currentPage + '';\r\n var sync = ++vm.getQuestionCollectionModelSyncNr + '';\r\n var promise = askService.getQuestionCollectionModel(page, sync);\r\n promise.then(function (response) {\r\n if (response.Success && response.Data.Sync === vm.getQuestionCollectionModelSyncNr + '') {\r\n var data = response.Data;\r\n $scope.questions = data.Results;\r\n $scope.questionCount = data.Results.length;\r\n $scope.currentPage = data.PageNumber;\r\n $scope.totalQuestions = data.TotalResults;\r\n $scope.totalPages = data.TotalPages;\r\n $scope.rangeTo = data.ResultsPerPage * ($scope.currentPage - 1) + $scope.questionCount;\r\n $scope.rangeFrom = $scope.rangeTo - $scope.questionCount + 1;\r\n $scope.loading = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.nextPage = function () {\r\n if ($scope.currentPage < $scope.totalPages) {\r\n $scope.currentPage++;\r\n vm.getQuestionCollectionModel();\r\n }\r\n };\r\n\r\n $scope.prevPage = function () {\r\n if ($scope.currentPage > 1) {\r\n $scope.currentPage--;\r\n vm.getQuestionCollectionModel();\r\n }\r\n };\r\n\r\n $scope.openMenu = function openMenu() {\r\n $('.nav-main-mobile.extranet-nav.is-mobil-menu').addClass('nav-main-mobile--show');\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n $scope.showLogin = function showLogin() {\r\n $('#login-form').addClass('login-form--show');\r\n };\r\n\r\n $scope.sendQuestionValidation = function sendQuestionValidation(event, form) {\r\n //form.$setSubmitted();\r\n if ($scope.sendingQuestion) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n $scope.sendingQuestion = true;\r\n\r\n var validForm = false;\r\n var inputFile = document.getElementById('file').files[0];\r\n\r\n if (form.Question.$valid) {\r\n validForm = true;\r\n } else {\r\n validForm = false;\r\n }\r\n\r\n if (inputFile != undefined) {\r\n if (inputFile.type != 'image/jpeg' && inputFile.type != 'image/png') {\r\n validForm = false;\r\n $('.ask-question-form-fileupload-error').addClass('fileError-show');\r\n $('.ask-question-form-fileupload-error').removeClass('fileError-hidden');\r\n } else {\r\n validForm = true;\r\n $('.ask-question-form-fileupload-error').addClass('fileError-hidden');\r\n $('.ask-question-form-fileupload-error').removeClass('fileError-show');\r\n }\r\n }\r\n\r\n if (!validForm) {\r\n event.preventDefault();\r\n $scope.sendingQuestion = false;\r\n return;\r\n }\r\n };\r\n\r\n $scope.uploadFiles = function(file, contentId, parentId) {\r\n if (file) {\r\n file.upload = Upload.upload({\r\n url: '/umbraco/api/ask/UploadFile',\r\n data: {\r\n file: file,\r\n contentId: contentId,\r\n parentId: parentId\r\n }\r\n });\r\n return file.upload;\r\n }\r\n return null;\r\n };\r\n\r\n $scope.addComment = function addComment(scope,\r\n comment,\r\n parentIndex,\r\n parent,\r\n commentform,\r\n contentId,\r\n questionIndex,\r\n file) {\r\n console.info('extranetApp.askController.addComment');\r\n scope.sendingAnswer = true;\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function(data) {\r\n if (data.LoggedIn) {\r\n if (file) {\r\n var uploadPromise = $scope.uploadFiles(file, contentId, parent.Id).then(function(o) {\r\n vm.FileName = o.data.FileName;\r\n vm.AddCommentWithFile(scope,\r\n comment,\r\n parentIndex,\r\n parent,\r\n commentform,\r\n contentId,\r\n questionIndex,\r\n o.data.FileName);\r\n });\r\n } else {\r\n vm.AddCommentWithFile(scope,\r\n comment,\r\n parentIndex,\r\n parent,\r\n commentform,\r\n contentId,\r\n questionIndex,\r\n null);\r\n }\r\n } else {\r\n novicell.overlay.set({\r\n 'content': '
Du er ikke logget ind.
',\r\n 'class': 'ncOverlay-loggedout'\r\n });\r\n }\r\n });\r\n };\r\n\r\n vm.AddCommentWithFile = function(scope,\r\n comment,\r\n parentIndex,\r\n parent,\r\n commentform,\r\n contentId,\r\n questionIndex,\r\n fileName) {\r\n comment.CommentArea = stripHtmlKeepBreaks(comment.CommentArea);\r\n\r\n console.info('AddCommentWithFile', scope);\r\n\r\n var promise = askService.addComment(contentId, parent.Id, comment.CommentArea, fileName);\r\n promise.then(function(response) {\r\n $scope.questions[questionIndex].CommentCollection[parentIndex].SubCommentCollection.push({\r\n Comment: response.Data.Comment,\r\n ContentId: response.Data.ContentId,\r\n CreatedDate: response.Data.CreatedDate,\r\n HasUnreadSubComment: false,\r\n Deleted: response.Data.Deleted,\r\n Id: response.Data.Id,\r\n ParentId: response.Data.ParentId,\r\n UserId: response.Data.UserId,\r\n UserName: response.Data.UserName,\r\n ProfileImageUrl: response.Data.ProfileImageUrl,\r\n Likes: response.Data.Likes,\r\n SubComments: response.Data.SubComments,\r\n UploadedFileName: response.Data.UploadedFileName != null\r\n ? response.Data.UploadedFileName.replace('\\\\', '/')\r\n : null\r\n });\r\n\r\n scope.showSubForm = false;\r\n scope.sendingAnswer = false;\r\n scope.showSubComments = true;\r\n\r\n comment.CommentArea = '';\r\n commentform.$setPristine();\r\n parent.SubComments++;\r\n commentPicFile = null; // reset in frontend model\r\n $location.hash('comment-no-' + response.Data.Id);\r\n $anchorScroll();\r\n });\r\n };\r\n\r\n function stripHtmlKeepBreaks(text) {\r\n text = text.replace(/\\n\\r?/g, '
');\r\n text = text.replace(/<(?!br\\s*\\/?)[^>]+>/g, '');\r\n return text;\r\n }\r\n\r\n function isEmpty(str) {\r\n return !str || 0 === str.length;\r\n }\r\n init();\r\n }]);","angular.module('extranetApp.askItemController', [])\r\n\r\n.filter('to_trusted', ['$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n}])\r\n\r\n.controller(\"askItemController\", [\"$scope\", \"$rootScope\", \"askService\", \"userService\", \"$sce\", \"$location\", \"$anchorScroll\", function ($scope, $rootScope, askService, userService, $sce, $location, $anchorScroll) {\r\n var vm = this;\r\n $scope.contentId;\r\n vm.rootScope = $rootScope;\r\n vm.userLoggedIn = false;\r\n $scope.loading = true;\r\n $scope.question;\r\n\r\n function init() {\r\n vm.loggedIn();\r\n $scope.getQuestionModel();\r\n\r\n vm.rootScope.$on(\"userLogin\", function () {\r\n vm.userLoggedIn = true;\r\n $scope.getQuestionModel;\r\n });\r\n\r\n vm.rootScope.$on(\"userLogout\", function () {\r\n vm.userLoggedIn = false;\r\n $scope.getQuestionModel;\r\n });\r\n }\r\n\r\n vm.loggedIn = function loggedIn() {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n vm.userLoggedIn = true;\r\n }\r\n });\r\n }\r\n\r\n $scope.openMenu = function openMenu() {\r\n $('.nav-main-mobile.extranet-nav.is-mobil-menu').addClass('nav-main-mobile--show');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n $scope.getQuestionModel = function getQuestionModel() {\r\n console.log(\"$scope.getQuestionModel\");\r\n var promise = askService.getQuestionModel($scope.contentId);\r\n promise.then(function(response) {\r\n $scope.question = response.Data;\r\n $scope.loading = false;\r\n console.log($scope.question);\r\n //if (!vm.userLoggedIn) {\r\n // $('.extranet-loggedout').removeClass(\"loggedin\").addClass(\"loggedout\");\r\n //}\r\n //else {\r\n // $('.extranet-loggedout').removeClass(\"loggedout\").addClass(\"loggedin\");\r\n //}\r\n });\r\n }\r\n\r\n $scope.addComment = function addComment(comment, parentIndex, parent, commentform, contentId) {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n comment.CommentArea = stripHtmlKeepBreaks(comment.CommentArea);\r\n\r\n var promise = askService.addComment(contentId, parent.Id, comment.CommentArea);\r\n promise.then(function(response) {\r\n $scope.question.CommentCollection[parentIndex].SubCommentCollection.push({\r\n Comment: response.Data.Comment,\r\n ContentId: response.Data.ContentId,\r\n CreatedDate: response.Data.CreatedDate,\r\n HasUnreadSubComment: false,\r\n Deleted: response.Data.Deleted,\r\n Id: response.Data.Id,\r\n ParentId: response.Data.ParentId,\r\n UserId: response.Data.UserId,\r\n UserName: response.Data.UserName,\r\n ProfileImageUrl: response.Data.ProfileImageUrl,\r\n Likes: response.Data.Likes,\r\n SubComments: response.Data.SubComments\r\n });\r\n comment.CommentArea = '';\r\n commentform.$setPristine();\r\n parent.SubComments++;\r\n $location.hash(\"comment-no-\" + response.Data.Id);\r\n $anchorScroll();\r\n });\r\n }\r\n else {\r\n novicell.overlay.set({ 'content': '
Du er ikke logget ind.
', 'class': 'ncOverlay-loggedout' });\r\n }\r\n });\r\n }\r\n\r\n function stripHtmlKeepBreaks(text) {\r\n text = text.replace(/\\n\\r?/g, '
');\r\n text = text.replace(/<(?!br\\s*\\/?)[^>]+>/g, '');\r\n return text;\r\n }\r\n\r\n function isEmpty(str) {\r\n return (!str || 0 === str.length);\r\n }\r\n\r\n init();\r\n}]);","angular.module('extranetApp.discussController', [])\r\n\r\n.filter('to_trusted', ['$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n}])\r\n\r\n.controller(\"discussController\", [\"$scope\", \"$sce\", \"$location\", \"$anchorScroll\", \"discussService\", \"likeService\", function ($scope, $sce, $location, $anchorScroll, discussService, likeService) {\r\n var vm = this;\r\n $scope.contentId;\r\n vm.commentCollection = {};\r\n vm.showpanel = \"none\";\r\n\r\n function init() {\r\n vm.getAllCommentsModel($scope.contentId);\r\n }\r\n\r\n vm.addLike = function addLike(contentId, commentId) {\r\n var promise = likeService.addLike(contentId, commentId);\r\n promise.then(function(obj) {});\r\n }\r\n\r\n vm.addComment = function addComment(index, element, contentId, parentId, comment) {\r\n if (!isEmpty(comment)) {\r\n comment = stripHtmlKeepBreaks(comment);\r\n\r\n var promise = discussService.addComment(contentId, parentId, comment);\r\n promise.then(function(obj) {\r\n vm.commentCollection.push(\r\n {\r\n Comment: obj.Comment,\r\n ContentId: obj.ContentId,\r\n CreatedDate: obj.CreatedDate,\r\n Deleted: obj.Deleted,\r\n Id: obj.Id,\r\n Likes: obj.Likes,\r\n ParentId: obj.ParentId,\r\n SubComments: obj.SubComments,\r\n UserHasLiked: obj.UserHasLiked,\r\n UserId: obj.UserId,\r\n UserName: obj.UserName\r\n }\r\n );\r\n if (parentId != 0) {\r\n vm.commentCollection[index].SubComments++;\r\n }\r\n element.content = '';\r\n addCommentCountClientSide();\r\n $location.hash(\"comment-no-\" + obj.Id);\r\n $anchorScroll();\r\n });\r\n }\r\n }\r\n\r\n vm.getAllCommentsModel = function getAllCommentsModel(contentId) {\r\n var promise = discussService.getAllCommentsModel(contentId);\r\n promise.then(function(obj) {\r\n vm.commentCollection = obj.Data;\r\n });\r\n }\r\n\r\n vm.userHasLikedComment = function userHasLikedComment(index, commentId) {\r\n var promise = likeService.userHasLikedComment(commentId);\r\n promise.then(function(obj) {\r\n if (!obj.HasLiked) {\r\n vm.addLike(vm.contentId, commentId);\r\n vm.commentCollection[index].Likes++;\r\n }\r\n });\r\n }\r\n\r\n function addCommentCountClientSide() {\r\n var value = parseInt($(\".extranet-news-list-item-comment .extranet-news-list-item-comment__count\").text(), 10) + 1;\r\n $('.extranet-news-list-item-comment .extranet-news-list-item-comment__count').text(value);\r\n }\r\n\r\n function stripHtmlKeepBreaks(text) {\r\n text = text.replace(/\\n\\r?/g, '
');\r\n text = text.replace(/<(?!br\\s*\\/?)[^>]+>/g, '');\r\n return text;\r\n }\r\n\r\n function isEmpty(str) {\r\n return (!str || 0 === str.length);\r\n }\r\n\r\n init();\r\n}]);","angular.module('extranetApp.dislikeController', [])\r\n\r\n.controller(\"dislikeController\", [\"dislikeService\", \"likeService\", \"$scope\", \"$location\", \"$anchorScroll\", function (dislikeService, likeService, $scope, $location, $anchorScroll) {\r\n var vm = this;\r\n $scope.contentId;\r\n $scope.showSubForm;\r\n $scope.dislikeItem;\r\n\r\n function init() {\r\n\r\n }\r\n\r\n vm.addDislikeComment = function addDislikeComment(comment) {\r\n comment = stripHtmlKeepBreaks(comment);\r\n\r\n var promise = dislikeService.addDislikeComment($scope.contentId, comment);\r\n promise.then(function (obj) {\r\n $scope.showSubForm = false;\r\n if (obj.Success == true)\r\n $scope.dislikeItem = obj.Data;\r\n })\r\n }\r\n\r\n vm.userHasLikedContent = function userHasLikedContent() {\r\n var promise = likeService.userHasLikedContent($scope.contentId);\r\n promise.then(function (obj) {\r\n if (!obj.HasLiked) {\r\n vm.addLike($scope.contentId, 0);\r\n }\r\n })\r\n }\r\n\r\n vm.addLike = function addLike(contentId, commentId) {\r\n var promise = likeService.addLike(contentId, commentId);\r\n promise.then(function (obj) {\r\n addLikeCountClientSide();\r\n })\r\n }\r\n\r\n vm.dislikeClick = function dislikeClick() {\r\n $scope.showSubForm = !$scope.showSubForm\r\n if ($scope.showSubForm)\r\n $(\"html, body\").animate({ scrollTop: $(document).height() }, 1000);\r\n }\r\n\r\n function addLikeCountClientSide() {\r\n var value = parseInt($(\".driversmanual-topic-header-likes__count\").text(), 10) + 1;\r\n $('.driversmanual-topic-header-likes__count').text(value);\r\n }\r\n\r\n function stripHtmlKeepBreaks(text) {\r\n text = text.replace(/\\n\\r?/g, '
');\r\n text = text.replace(/<(?!br\\s*\\/?)[^>]+>/g, '');\r\n return text;\r\n }\r\n\r\n init();\r\n}]);","angular.module('extranetApp.driversmanualController', []).controller(\"driversmanualController\", [\"likeService\", \"userService\", \"$rootScope\", \"$scope\", function (likeService, userService, $rootScope, $scope) {\r\n var vm = this;\r\n vm.rootScope = $rootScope;\r\n $scope.userLoggedIn = false;\r\n\r\n function init() {\r\n $scope.loggedIn();\r\n vm.getAllLikesForUserId();\r\n\r\n vm.rootScope.$on(\"userLogin\", function () {\r\n $scope.userLoggedIn = true;\r\n vm.getAllLikesForUserId();\r\n });\r\n\r\n vm.rootScope.$on(\"userLogout\", function () {\r\n $scope.userLoggedIn = false;\r\n vm.getAllLikesForUserId();\r\n });\r\n }\r\n\r\n $scope.loggedIn = function loggedIn() {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n $scope.userLoggedIn = true;\r\n }\r\n });\r\n }\r\n\r\n vm.addLike = function addLike(contentId, commentId) {\r\n var promise = likeService.addLike(contentId, commentId);\r\n promise.then(function (obj) {\r\n })\r\n }\r\n\r\n vm.getAllLikesForUserId = function getAllLikesForUserId() {\r\n var promise = likeService.getAllLikesForUserId();\r\n promise.then(function (obj) {\r\n for (var i = 0; i < obj.Likes.length; i++) {\r\n $('[data-contentId=\"' + obj.Likes[i] + '\"]').find('.extranet-subjects-list-item-likes').addClass('users-has-liked');\r\n }\r\n })\r\n }\r\n\r\n vm.getLikesForContentId = function getLikesForContentId(contentId) {\r\n var promise = likeService.getLikesForContentId(contentId);\r\n promise.then(function (obj) { })\r\n }\r\n\r\n vm.userHasLikedContent = function userHasLikedContent(contentId) {\r\n var promise = likeService.userHasLikedContent(contentId);\r\n promise.then(function (obj) {\r\n if (!obj.HasLiked) {\r\n vm.addLike(contentId, 0);\r\n addLikeClientSide();\r\n }\r\n })\r\n }\r\n\r\n function addLikeClientSide() {\r\n var value = parseInt($(\".driversmanual-topic-header-likes__count\").text(), 10) + 1;\r\n $('.driversmanual-topic-header-likes__count').text(value);\r\n }\r\n\r\n init();\r\n}]);","angular.module('extranetApp.driversmanualListController', [])\r\n\r\n .filter(\"category_filter\", [function () {\r\n return function (items, category) {\r\n var filtered = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (category == \"Alle\") {\r\n filtered.push(item);\r\n }\r\n else {\r\n var contains = false;\r\n for (var j = 0; j < item.Tags.length; j++) {\r\n if (category == item.Tags[j].Name) {\r\n contains = true;\r\n }\r\n }\r\n if (contains)\r\n filtered.push(item);\r\n }\r\n }\r\n return filtered;\r\n };\r\n }])\r\n\r\n .filter(\"categoryChapter_filter\", [function () {\r\n return function (items, category) {\r\n var filtered = [];\r\n\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (category == \"Alle\") {\r\n filtered.push(item);\r\n }\r\n else {\r\n var contains = false;\r\n\r\n for (var j = 0; j < item.TopicCollection.length; j++) {\r\n\r\n for (var k = 0; k < item.TopicCollection[j].Tags.length; k++) {\r\n if (category == item.TopicCollection[j].Tags[k].Name) {\r\n contains = true;\r\n break;\r\n }\r\n }\r\n if (contains) {\r\n filtered.push(item);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return filtered;\r\n };\r\n }])\r\n\r\n .controller(\"driversmanualListController\", [\"driversmanualService\", \"newsService\", \"$rootScope\", \"$scope\", function (driversmanualService, newsService, $rootScope, $scope) {\r\n var vm = this;\r\n vm.rootScope = $rootScope;\r\n $scope.nodeId;\r\n $scope.query = {}\r\n $scope.queryBy = '$'\r\n\r\n vm.driversmanualCollection = [];\r\n\r\n vm.dropdownSelected = {};\r\n vm.dropdownOptions = {};\r\n\r\n vm.category = 'Alle';\r\n vm.showCategorySelect = false;\r\n\r\n vm.selectCategoryValue = function (val) {\r\n vm.showCategorySelect = false;\r\n vm.category = val;\r\n vm.getCategoryTags();\r\n }\r\n\r\n function init() {\r\n vm.getManualCollectionModel();\r\n vm.getCategoryTags();\r\n }\r\n\r\n vm.getManualCollectionModel = function getManualCollectionModel() {\r\n var promise = driversmanualService.getManualCollectionModel($scope.nodeId);\r\n promise.then(function (obj) {\r\n vm.driversmanualCollection = obj.ChapterCollection;\r\n })\r\n }\r\n\r\n vm.getCategoryTags = function getCategoryTags() {\r\n var promise = newsService.getCategoryTags();\r\n promise.then(function (obj) {\r\n vm.dropdownOptions = obj;\r\n })\r\n }\r\n\r\n init();\r\n }]);","angular.module('extranetApp.extFrontpageController', [])\r\n\r\n .controller(\"extFrontpageController\", [\"$scope\", \"$location\", \"$anchorScroll\", \"userService\", function ($scope, $location, $anchorScroll, userService) {\r\n var vm = this;\r\n\r\n function init() {\r\n vm.isUserLoggedIn();\r\n }\r\n\r\n vm.isUserLoggedIn = function () {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (obj) {\r\n vm.isLoggedIn = obj.LoggedIn;\r\n\r\n if (vm.isLoggedIn) {\r\n vm.getCurrentProfile();\r\n } else {\r\n vm.getEmptyProfile();\r\n }\r\n\r\n });\r\n }\r\n \r\n vm.getCurrentProfile = function () {\r\n var promise = userService.GetCurrentProfile();\r\n promise.then(function (obj) {\r\n vm.state = 'edit';\r\n vm.profile = obj.Data;\r\n\r\n vm.birthYear = vm.profile.BirthYear;\r\n vm.company = vm.profile.CompanyId;\r\n vm.memberId = vm.profile.MemberId;\r\n if (vm.profile.Profession == \"\" || vm.profile.Profession == undefined) {\r\n vm.profile.Profession = \"driver\";\r\n }\r\n\r\n if (vm.profile.AcceptSms === \"\" || vm.profile.AcceptSms === undefined) {\r\n vm.profile.AcceptSms = true;\r\n }\r\n\r\n for (var i = 0; i < vm.profile.CompanyTags.length; i++) {\r\n if (vm.profile.CompanyTags[i].Id == vm.profile.CompanyId)\r\n vm.companyLabel = vm.profile.CompanyTags[i].Label;\r\n vm.companyLabel\r\n }\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n vm.getEmptyProfile = function () {\r\n var promise = userService.GetEmptyProfile();\r\n promise.then(function (obj) {\r\n vm.profile = obj.Data;\r\n vm.profile.Profession = \"driver\";\r\n vm.profile.AcceptSms = true;\r\n\r\n if ($location.search().state == \"reset\")\r\n vm.state = \"reset\";\r\n else\r\n vm.state = 'new';\r\n });\r\n $scope.loading = false;\r\n }\r\n\r\n $scope.login = function login() {\r\n $('#login-form').addClass('login-form--show'); \r\n }\r\n \r\n init();\r\n }]);","angular.module('extranetApp.extSearchController', []).controller(\"extSearchController\", [\"searchService\", \"$location\", function (searchService, $location) {\r\n var vm = this;\r\n vm.nodeId = 9405;\r\n vm.searchTerm = {}\r\n vm.searchCollection = {};\r\n\r\n function init() {\r\n vm.searchTerm = getParameterByName('search');\r\n console.log(vm.searchTerm);\r\n vm.getSearchResult();\r\n }\r\n\r\n vm.getSearchResult = function () {\r\n var promise = searchService.Search(vm.searchTerm, vm.nodeId);\r\n promise.then(function (data) {\r\n console.log(data);\r\n vm.searchCollection = data.Data;\r\n });\r\n }\r\n\r\n function getParameterByName(name, url) {\r\n if (!url) url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n init();\r\n}]);","angular.module('extranetApp.headerController', []).controller('headerController', ['webNotificationService', '$scope', '$rootScope', 'userService', 'searchService', function (webNotificationService, $scope, $rootScope, userService) {\r\n var vm = this;\r\n vm.rootScope = $rootScope;\r\n vm.isLoggedIn = false;\r\n vm.webNotifications = {};\r\n vm.webNotificationCount = 0;\r\n vm.viewAllNotifications = false;\r\n\r\n function init() {\r\n\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n vm.getNotificationsForUser();\r\n vm.isLoggedIn = true;\r\n } \r\n });\r\n\r\n vm.rootScope.$on('userLogin', function () {\r\n vm.getNotificationsForUser();\r\n vm.isLoggedIn = true;\r\n });\r\n\r\n vm.rootScope.$on('userLogout', function () {\r\n vm.webNotifications = {};\r\n vm.webNotificationCount = 0;\r\n vm.viewAllNotifications = false;\r\n vm.isLoggedIn = false;\r\n });\r\n }\r\n\r\n vm.getNotificationsForUser = function () {\r\n var promise = webNotificationService.GetNotificationsForUser();\r\n\r\n promise.then(function(obj) {\r\n vm.webNotifications = obj.Data;\r\n vm.webNotificationCount = vm.countUnviewedNotifications();\r\n //console.log(JSON.stringify(obj));\r\n });\r\n };\r\n\r\n vm.countUnviewedNotifications = function() {\r\n var c = 0;\r\n\r\n for (var i = 0; i < vm.webNotifications.length; i++) {\r\n if (vm.webNotifications[i].Viewed === false) {\r\n c++;\r\n }\r\n }\r\n return c;\r\n };\r\n\r\n vm.click = function(obj) {\r\n obj.Viewed = true;\r\n\r\n var promise = webNotificationService.SetNotificationViewed(obj.Id);\r\n promise.then(function() {\r\n vm.webNotificationCount = vm.countUnviewedNotifications();\r\n window.location = obj.Url;\r\n });\r\n };\r\n\r\n vm.swipe = function(obj) {\r\n obj.Viewed = true;\r\n\r\n if (obj.Viewed === false) {\r\n var promise = webNotificationService.SetNotificationViewed(obj.Id);\r\n promise.then(function() {\r\n vm.webNotificationCount = vm.countUnviewedNotifications();\r\n });\r\n }\r\n };\r\n\r\n init();\r\n}]);","angular.module('extranetApp.newsController', [])\r\n\r\n /*\r\n .filter('to_trusted', ['$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n }])\r\n */\r\n\r\n /*\r\n .filter('strip_html', [function () {\r\n return function (text) {\r\n return text.replace(/<(?!br\\s*\\/?)[^>]+>/g, '');\r\n };\r\n }])\r\n */\r\n\r\n .filter('userhasread_filter', [function () {\r\n return function (items, unread) {\r\n var filtered = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (unread) {\r\n if (item.UserHasRead !== true) {\r\n filtered.push(item);\r\n }\r\n }\r\n else {\r\n filtered.push(item);\r\n }\r\n }\r\n return filtered;\r\n };\r\n }])\r\n\r\n /*\r\n .filter('category_filter', [function () {\r\n return function (items, category) {\r\n var filtered = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (category === 'Alle') {\r\n filtered.push(item);\r\n }\r\n else {\r\n var contains = false;\r\n for (var j = 0; j < item.Tags.length; j++) {\r\n if (category === item.Tags[j].Name) {\r\n contains = true;\r\n }\r\n }\r\n if (contains)\r\n filtered.push(item);\r\n }\r\n }\r\n return filtered;\r\n };\r\n }])\r\n */\r\n\r\n .controller('newsController', ['$scope', 'newsService', 'ratingService', 'userService', '$rootScope', function ($scope, newsService, ratingService, userService, $rootScope) {\r\n var vm = this;\r\n\r\n vm.rootScope = $rootScope;\r\n $scope.loading = true;\r\n $scope.userLoggedIn = false;\r\n $scope.currentPage = 1;\r\n $scope.totalPages = 1;\r\n $scope.totalNews = 0;\r\n $scope.newsCount = 0;\r\n $scope.rangeTo = 0;\r\n $scope.rangeFrom = 0;\r\n $scope.userSearch = '';\r\n\r\n vm.newsCollection = [];\r\n\r\n vm.dropdownSelected = {};\r\n vm.dropdownOptions = {};\r\n\r\n vm.category = 'Alle';\r\n vm.showCategorySelect = false;\r\n\r\n vm.selectCategoryValue = function (val) {\r\n vm.showCategorySelect = false;\r\n vm.category = val;\r\n };\r\n\r\n function init() {\r\n $scope.loggedIn();\r\n vm.getNewsItemsModel();\r\n //vm.getCategoryTags();;\r\n\r\n vm.rootScope.$on('userLogin', function () {\r\n $scope.userLoggedIn = true;\r\n vm.getNewsItemsModel();\r\n });\r\n\r\n vm.rootScope.$on('userLogout', function () {\r\n $scope.userLoggedIn = false;\r\n vm.getNewsItemsModel();\r\n });\r\n }\r\n\r\n $scope.searchUpdated = function () {\r\n $scope.currentPage = 1;\r\n vm.getNewsItemsModel();\r\n };\r\n\r\n $scope.nextPage = function() {\r\n if ($scope.currentPage < $scope.totalPages) {\r\n $scope.currentPage++;\r\n vm.getNewsItemsModel();\r\n }\r\n };\r\n\r\n $scope.prevPage = function () {\r\n if ($scope.currentPage > 1) {\r\n $scope.currentPage--;\r\n vm.getNewsItemsModel();\r\n }\r\n };\r\n\r\n $scope.loggedIn = function loggedIn() {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n $scope.userLoggedIn = true;\r\n }\r\n });\r\n };\r\n\r\n vm.getCategoryTags = function getCategoryTags() {\r\n var promise = newsService.getCategoryTags();\r\n promise.then(function (obj) {\r\n vm.dropdownOptions = obj;\r\n });\r\n };\r\n\r\n vm.getNewsItemsModelSyncNr = 0;\r\n vm.getNewsItemsModel = function getNewsItemsModel() {\r\n $scope.loading = true;\r\n var query = $scope.userSearch + '';\r\n var page = $scope.currentPage + '';\r\n var sync = ++vm.getNewsItemsModelSyncNr + '';\r\n var promise = newsService.getNewsItemsModel(query, page, sync);\r\n promise.then(function (response) {\r\n if (response.Success && response.Data.Sync === vm.getNewsItemsModelSyncNr + '') {\r\n var data = response.Data;\r\n vm.newsCollection = data.Results;\r\n $scope.newsCount = data.Results.length;\r\n $scope.currentPage = data.PageNumber;\r\n $scope.totalNews = data.TotalResults;\r\n $scope.totalPages = data.TotalPages;\r\n $scope.rangeTo = data.ResultsPerPage * ($scope.currentPage - 1) + $scope.newsCount;\r\n $scope.rangeFrom = $scope.rangeTo - $scope.newsCount + 1;\r\n $scope.loading = false;\r\n }\r\n });\r\n };\r\n\r\n vm.getUserRating = function getUserRating(userId, contentId) {\r\n var promise = ratingService.getUserRating(userId, contentId);\r\n promise.then(function () {\r\n });\r\n };\r\n\r\n init();\r\n }]);","angular.module('extranetApp.newsItemController', [])\r\n\r\n .filter('to_trusted', ['$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n }])\r\n .filter('to_teasertext', ['$sce', function ($sce) {\r\n return function (text) {\r\n text = text.replace(/<[^>]+>/g, '');\r\n if (text.length > 50) {\r\n text = text.slice(0, 50) + ' ...';\r\n }\r\n return $sce.trustAsHtml(text);\r\n };\r\n }])\r\n\r\n .controller('newsItemController', ['newsService', 'likeService', 'ratingService', 'userService', '$scope', '$rootScope', '$location', '$anchorScroll', 'webNotificationService', function (newsService, likeService, ratingService, userService, $scope, $rootScope, $location, $anchorScroll, webNotificationService) {\r\n var vm = this;\r\n vm.rootScope = $rootScope;\r\n\r\n $scope.loading = true;\r\n vm.userLoggedIn = false;\r\n vm.loggedInResolved = false;\r\n\r\n $scope.contentId;\r\n $scope.news;\r\n\r\n function init() {\r\n $scope.loggedIn();\r\n $scope.getNewsItemModel();\r\n\r\n vm.rootScope.$on('userLogin', function () {\r\n vm.userLoggedIn = true;\r\n $scope.getNewsItemModel();\r\n vm.getAllRatingsForUserId();\r\n });\r\n\r\n vm.rootScope.$on('userLogout', function () {\r\n vm.userLoggedIn = false;\r\n $scope.getNewsItemModel();\r\n });\r\n \r\n webNotificationService.SetNotificationViewedByContentId($scope.contentId);\r\n }\r\n\r\n $scope.loggedIn = function loggedIn() {\r\n vm.loggedInResolved = false;\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n vm.userLoggedIn = true;\r\n }\r\n vm.loggedInResolved = true;\r\n });\r\n }\r\n\r\n $scope.openMenu = function openMenu() {\r\n $('.nav-main-mobile.extranet-nav.is-mobil-menu').addClass('nav-main-mobile--show');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n vm.getAllRatingsForUserId = function getAllRatingsForUserId() {\r\n var promise = ratingService.getAllRatingsForUserId();\r\n promise.then(function (obj) {\r\n for (var i = 0; i < obj.Ratings.length; i++) {\r\n $('[data-contentId=\"' + obj.Ratings[i].ContentId + '\"]')\r\n .find('.rating')\r\n .addClass('users-rating-' + obj.Ratings[i].Rating)\r\n .removeClass('rating-0 rating-1 rating-2 rating-3 rating-4 rating-5');\r\n }\r\n });\r\n }\r\n\r\n $scope.getNewsItemModel = function getNewsItemModel() {\r\n var promise = newsService.getNewsItemModel($scope.contentId);\r\n promise.then(function(response) {\r\n $scope.news = response.Data;\r\n $scope.loading = false;\r\n\r\n //if (!vm.userLoggedIn) {\r\n // $('.extranet-loggedout').removeClass(\"loggedin\").addClass(\"loggedout\");\r\n //}\r\n //else {\r\n // $('.extranet-loggedout').removeClass(\"loggedout\").addClass(\"loggedin\");\r\n //}\r\n });\r\n }\r\n\r\n $scope.addComment = function addComment(scope, parentId, comment, parentIndex, parent, commentform) {\r\n if (parentId == 0) {\r\n scope.sendingComment = true;\r\n } else {\r\n scope.sendingSubComment = true;\r\n }\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n comment.CommentArea = stripHtmlKeepBreaks(comment.CommentArea);\r\n var promise = newsService.addComment($scope.contentId, parentId, comment.CommentArea);\r\n promise.then(function(response) {\r\n if (response.Data.ParentId == 0) {\r\n $scope.news.CommentCollection.push({\r\n Comment: response.Data.Comment,\r\n ContentId: response.Data.ContentId,\r\n CreatedDate: response.Data.CreatedDate,\r\n HasUnreadSubComment: false,\r\n Deleted: response.Data.Deleted,\r\n Id: response.Data.Id,\r\n ParentId: response.Data.ParentId,\r\n SubCommentCollection: [],\r\n UserId: response.Data.UserId,\r\n UserName: response.Data.UserName,\r\n ProfileImageUrl: response.Data.ProfileImageUrl,\r\n Likes: response.Data.Likes,\r\n SubComments: response.Data.SubComments\r\n });\r\n comment.CommentArea = '';\r\n commentform.$setPristine();\r\n $location.hash('comment-no-' + response.Data.Id);\r\n $anchorScroll();\r\n $scope.news.Comments++;\r\n scope.sendingComment = false;\r\n } else {\r\n parent.SubCommentCollection.push({\r\n Comment: response.Data.Comment,\r\n ContentId: response.Data.ContentId,\r\n CreatedDate: response.Data.CreatedDate,\r\n HasUnreadSubComment: false,\r\n Deleted: response.Data.Deleted,\r\n Id: response.Data.Id,\r\n ParentId: response.Data.ParentId,\r\n UserId: response.Data.UserId,\r\n UserName: response.Data.UserName,\r\n ProfileImageUrl: response.Data.ProfileImageUrl,\r\n Likes: response.Data.Likes,\r\n SubComments: response.Data.SubComments\r\n });\r\n comment.CommentArea = '';\r\n commentform.$setPristine();\r\n parent.SubComments++;\r\n $location.hash('comment-no-' + response.Data.Id);\r\n $anchorScroll();\r\n scope.sendingSubComment = false;\r\n }\r\n });\r\n }\r\n else {\r\n novicell.overlay.set({ 'content': '
Du er ikke logget ind.
', 'class': 'ncOverlay-loggedout' });\r\n }\r\n });\r\n }\r\n\r\n $scope.getUserRating = function getUserRating(userId, contentId) {\r\n var promise = ratingService.getUserRating(userId, contentId);\r\n promise.then(function (obj) {\r\n });\r\n }\r\n\r\n $scope.addRating = function addRating($event, rating) {\r\n var promise = ratingService.addRating($scope.contentId, rating);\r\n promise.then(function (obj) {\r\n $($event.target)\r\n .parent()\r\n .removeClass('rating-0 rating-1 rating-2 rating-3 rating-4 rating-5 users-rating-1 users-rating-2 users-rating-3 users-rating-4 users-rating-5')\r\n .addClass('users-rating-' + rating);\r\n $('.extranet-news-rating__stars')\r\n .find('.rating')\r\n .removeClass('rating-0 rating-1 rating-2 rating-3 rating-4 rating-5 users-rating-1 users-rating-2 users-rating-3 users-rating-4 users-rating-5')\r\n .addClass('users-rating-' + rating);\r\n $('.newsitem-header')\r\n .find('.rating')\r\n .removeClass('rating-0 rating-1 rating-2 rating-3 rating-4 rating-5 users-rating-1 users-rating-2 users-rating-3 users-rating-4 users-rating-5')\r\n .addClass('users-rating-' + rating);\r\n });\r\n }\r\n\r\n $scope.addLike = function addLike(comment) {\r\n var promise = likeService.userHasLikedComment(comment.Id);\r\n promise.then(function (response) {\r\n if (response.HasLiked != true) {\r\n var promise = likeService.addLike($scope.contentId, comment.Id);\r\n promise.then(function (response) {\r\n comment.Likes++;\r\n });\r\n }\r\n });\r\n }\r\n\r\n $scope.login = function login() {\r\n $('#login-form').addClass('login-form--show'); \r\n }\r\n\r\n function stripHtmlKeepBreaks(text) {\r\n text = text.replace(/\\n\\r?/g, '
');\r\n text = text.replace(/<(?!br\\s*\\/?)[^>]+>/g, '');\r\n return text;\r\n }\r\n\r\n init();\r\n }]);","angular.module('extranetApp.profileController', [])\r\n\r\n .controller(\"profileController\", [\"userService\", \"$scope\", \"$rootScope\", \"$location\", 'Upload', '$timeout', function (userService, $scope, $rootScope, $location, Upload, $timeout) {\r\n var vm = this;\r\n $scope.loading = true;\r\n\r\n vm.rootScope = $rootScope;\r\n vm.profileUrl = location.protocol + '//' + document.domain + '/chauffornet/min-profil';\r\n vm.homeUrl = location.protocol + '//' + document.domain + '/chauffornet/';\r\n vm.dataInfo = {};\r\n\r\n vm.isLoggedIn = false;\r\n vm.years = [];\r\n vm.busCompanies = {};\r\n vm.categoryTags = {};\r\n vm.regionTags = {};\r\n\r\n vm.profile = {};\r\n\r\n vm.profile.categoryTags = {};\r\n vm.profile.regionTags = {};\r\n\r\n vm.birthYear = \"Vælg dit fødselsår\";\r\n vm.company = \"\";\r\n vm.companyLabel = \"Vælg dit busselskab\";\r\n\r\n vm.state = \"init\";\r\n vm.memberId = \"none\";\r\n\r\n vm.showYearSelect = false;\r\n vm.showCompany = false;\r\n\r\n vm.password = {};\r\n vm.password.password1 = \"\";\r\n vm.password.password2 = \"\";\r\n vm.password.error = \"\";\r\n vm.password.passwordLength = false;\r\n vm.password.passwordsIdentical = false;\r\n vm.password.passwordValid = false;\r\n\r\n vm.error = null;\r\n\r\n function init() {\r\n $scope.loading = true;\r\n vm.rootScope.$on(\"userLogin\", function () {\r\n vm.getCurrentProfile();\r\n });\r\n\r\n vm.rootScope.$on(\"userLogout\", function () {\r\n vm.getEmptyProfile();\r\n });\r\n\r\n vm.isUserLoggedIn();\r\n populateYears();\r\n\r\n if (vm.isLoggedIn) {\r\n vm.state = \"edit\";\r\n }\r\n else if ($location.search().state == \"reset\") {\r\n vm.state = \"reset\";\r\n }\r\n else {\r\n vm.state = \"new\";\r\n }\r\n //vm.getDataInfo();\r\n }\r\n\r\n $scope.uploadFiles = function (file, croppedDataUrl, p, isCreate, state, umbracoMemberKey) {\r\n if (file) {\r\n file.upload = Upload.upload({\r\n url: '/umbraco/api/user/UploadFile',\r\n data: {\r\n file: Upload.dataUrltoBlob(croppedDataUrl, file.name),\r\n phone: p.MobilePhoneNumber\r\n }\r\n });\r\n\r\n file.upload.then(function (response) {\r\n $timeout(function () {\r\n file.result = response.data;\r\n });\r\n if (!isCreate) {\r\n $scope.loading = false;\r\n vm.state = 'updated';\r\n } else {\r\n $scope.loading = false;\r\n vm.state = state;\r\n vm.memberId = umbracoMemberKey;\r\n }\r\n }, function (response) {\r\n if (response.status > 0)\r\n $scope.errorMsg = response.status + ': ' + response.data;\r\n });\r\n }\r\n }\r\n\r\n // $scope.someSelected = function (object) {\r\n // return object && Object.keys(object).some(function (key) {\r\n // return object[key];\r\n // });\r\n // }\r\n\r\n function populateYears() {\r\n var currentYear = new Date().getFullYear();\r\n\r\n var maxYear = currentYear - 18;\r\n var minYear = maxYear - 69;\r\n\r\n for (var i = minYear; i <= maxYear; i++) {\r\n vm.years.push({ Id: i, Label: i });\r\n }\r\n }\r\n\r\n vm.selectYearValue = function (val) {\r\n vm.showYearSelect = false;\r\n vm.birthYear = val;\r\n }\r\n\r\n vm.selectCompany = function (obj) {\r\n vm.showCompany = false;\r\n vm.company = obj.Id;\r\n vm.companyLabel = obj.Label;\r\n }\r\n\r\n vm.submitProfile = function (form, p, file, croppedDataUrl) {\r\n $scope.loading = true;\r\n p.CompanyId = vm.company;\r\n p.BirthYear = vm.birthYear;\r\n\r\n if (validateFormData(form, p)) {\r\n\r\n //New profile\r\n if (vm.state === 'new') {\r\n var promise = userService.phoneNumberExists(p.MobilePhoneNumber);\r\n promise.then(function (obj) {\r\n if (obj.Data) {\r\n $scope.loading = false;\r\n vm.state = \"phonenumberExist\";\r\n }\r\n else {\r\n var createProfilePromise = vm.createProfile(form, p);\r\n createProfilePromise.then(function (obj) {\r\n if (file != null) {\r\n $scope.uploadFiles(file, croppedDataUrl, p, true, obj.Data.State, obj.Data.UmbracoMemberKey);\r\n }\r\n else {\r\n $scope.loading = false;\r\n vm.state = obj.Data.State;\r\n vm.memberId = obj.Data.UmbracoMemberKey;\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n\r\n //Update profile\r\n var updatePromise = vm.updateProfile(form, p);\r\n updatePromise.then(function (obj) {\r\n if (file != null) {\r\n $scope.uploadFiles(file, croppedDataUrl, p, false, \"updated\", vm.profile.MemberId);\r\n }\r\n else {\r\n $scope.loading = false;\r\n vm.state = 'updated';\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n validateFormData = function (form, p) {\r\n var result = true;\r\n\r\n if (p.Name == null) {\r\n p.NameError = \"Du skal indtaste et navn.\";\r\n result = false;\r\n }\r\n else {\r\n p.NameError = null;\r\n }\r\n\r\n if (p.MobilePhoneNumber == null || p.MobilePhoneNumber.length != 8 || !/^[0-9]+$/.test(p.MobilePhoneNumber) || p.MobilePhoneNumber[0] == 1 || p.MobilePhoneNumber[0] == 0) {\r\n p.MobilePhoneNumberError = \"Du skal indtaste et korrekt telefonnummer.\";\r\n result = false;\r\n }\r\n else {\r\n p.MobilePhoneNumberError = null;\r\n }\r\n\r\n //if (p.Gender == null) {\r\n // p.GenderError = \"Du skal vælge et køn.\";\r\n // result = false;\r\n //}\r\n //else {\r\n // p.GenderError = null;\r\n //}\r\n\r\n if (p.Profession == null) {\r\n p.ProfessionError = \"Du skal vælge om du er chauffør eller administrations ansat.\";\r\n result = false;\r\n }\r\n else {\r\n p.ProfessionError = null;\r\n }\r\n\r\n if (p.BirthYear == 0) {\r\n p.BirthYearError = \"Du skal vælge dit fødselsår.\";\r\n result = false;\r\n }\r\n else {\r\n p.BirthYearError = null;\r\n }\r\n\r\n if (!vm.validateCompanyTags(p.CompanyTags)) {\r\n p.CompanyTagsError = \"Du skal vælge dit busselskab.\";\r\n result = false;\r\n }\r\n else {\r\n p.CompanyTagsError = null;\r\n }\r\n\r\n if (!vm.validateRegTags(p.RegTags)) {\r\n p.GetNotificationsError = \"Du skal vælge mindst ét område at få notifikationer fra\";\r\n result = false;\r\n }\r\n else {\r\n p.GetNotificationsError = null;\r\n }\r\n\r\n if (p.Email == null || !/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(p.Email)) {\r\n p.EmailError = \"Du skal indtaste en valid email.\";\r\n result = false;\r\n }\r\n else {\r\n p.EmailError = null;\r\n }\r\n\r\n if (p.PrivacyPolicy == null) {\r\n p.PrivacyPolicyError = \"Du skal acceptere vores privatlivspolitik - og give samtykke til vores behandling af dine personoplysninger, sådan som det er beskrevet i privatlivspolitikken\";\r\n result = false;\r\n }\r\n else {\r\n p.PrivacyPolicyError = null;\r\n }\r\n\r\n if (p.Rules == null) {\r\n p.RulesError = \"Du skal acceptere vores regler for ChaufførNet for at forsætte\";\r\n result = false;\r\n }\r\n else {\r\n p.RulesError = null;\r\n }\r\n\r\n if (result == false)\r\n $scope.loading = false;\r\n\r\n return result;\r\n }\r\n\r\n vm.validateRegTags = function (regTags) {\r\n var hasRegion = false;\r\n for (var i = 0; i < regTags.length; i++) {\r\n if (regTags[i].Checked) {\r\n hasRegion = true;\r\n }\r\n }\r\n return hasRegion;\r\n };\r\n\r\n vm.validateCompanyTags = function (companyTags) {\r\n var hasCompany = false;\r\n for (var i = 0; i < companyTags.length; i++) {\r\n if (companyTags[i].Checked) {\r\n hasCompany = true;\r\n }\r\n }\r\n return hasCompany;\r\n };\r\n\r\n vm.phoneNumberExists = function (phonenumber) {\r\n var promise = userService.phoneNumberExists(phonenumber);\r\n promise.then(function (obj) {\r\n return obj.Data;\r\n });\r\n }\r\n\r\n vm.updateProfile = function (form, p) {\r\n var promise = userService.UpdateProfile(p);\r\n return promise;\r\n }\r\n\r\n vm.createProfile = function (form, p) {\r\n var promise = userService.CreateProfileObject(p);\r\n return promise;\r\n }\r\n\r\n vm.login = function (form, params) {\r\n var promise = userService.Login(params.username, params.password);\r\n promise.then(function (obj) {\r\n vm.isLoggedIn = obj.LoggedIn;\r\n });\r\n }\r\n\r\n vm.isUserLoggedIn = function () {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (obj) {\r\n vm.isLoggedIn = obj.LoggedIn;\r\n\r\n if (vm.isLoggedIn) {\r\n vm.getCurrentProfile();\r\n } else {\r\n vm.getEmptyProfile();\r\n }\r\n\r\n });\r\n }\r\n\r\n vm.logout = function () {\r\n var promise = userService.Logout();\r\n promise.then(function (obj) {\r\n vm.isLoggedIn = obj.LoggedIn;\r\n });\r\n }\r\n\r\n vm.getCurrentProfile = function () {\r\n var promise = userService.GetCurrentProfile();\r\n promise.then(function (obj) {\r\n vm.state = 'edit';\r\n vm.profile = obj.Data;\r\n\r\n vm.birthYear = vm.profile.BirthYear;\r\n vm.company = vm.profile.CompanyId;\r\n vm.memberId = vm.profile.MemberId;\r\n if (vm.profile.Profession == \"\" || vm.profile.Profession == undefined) {\r\n vm.profile.Profession = \"driver\";\r\n }\r\n\r\n if (vm.profile.AcceptSms === \"\" || vm.profile.AcceptSms === undefined) {\r\n vm.profile.AcceptSms = true;\r\n }\r\n\r\n for (var i = 0; i < vm.profile.CompanyTags.length; i++) {\r\n if (vm.profile.CompanyTags[i].Id == vm.profile.CompanyId)\r\n vm.companyLabel = vm.profile.CompanyTags[i].Label;\r\n }\r\n $scope.loading = false;\r\n });\r\n }\r\n\r\n vm.getEmptyProfile = function () {\r\n var promise = userService.GetEmptyProfile();\r\n promise.then(function (obj) {\r\n vm.profile = obj.Data;\r\n vm.profile.Profession = \"driver\";\r\n vm.profile.AcceptSms = true;\r\n\r\n if ($location.search().state == \"reset\")\r\n vm.state = \"reset\";\r\n else\r\n vm.state = 'new';\r\n });\r\n $scope.loading = false;\r\n }\r\n\r\n vm.validate = function (form, params) {\r\n $scope.loading = true;\r\n if (vm.memberId === \"none\") {\r\n $scope.loading = false;\r\n vm.state = \"reset\";\r\n }\r\n else {\r\n if (form.$valid && params != null && (params.validationCode.length === 4 && /^[0-9]+$/.test(params.validationCode))) {\r\n vm.validationCode = params.validationCode;\r\n var promise = userService.ValidateCode(vm.memberId, params.validationCode);\r\n promise.then(function (obj) {\r\n $scope.loading = false;\r\n if (obj.Success) {\r\n vm.state = 'validatesuccess';\r\n } else {\r\n vm.state = 'validatefail';\r\n }\r\n $scope.loading = false;\r\n });\r\n vm.error = null;\r\n }\r\n else {\r\n $scope.loading = false;\r\n vm.error = \"Validerings koden er invalid.\";\r\n }\r\n }\r\n }\r\n\r\n vm.newCode = function () {\r\n $scope.loading = true;\r\n var promise = userService.ResendPassword(vm.memberId);\r\n\r\n promise.then(function (obj) {\r\n if (obj.Success) {\r\n vm.state = 'validate';\r\n } else {\r\n vm.state = 'failure';\r\n }\r\n $scope.loading = false;\r\n });\r\n\r\n promise.catch(function (obj) {\r\n console.log(\"Catch \" + obj);\r\n $scope.loading = false;\r\n });\r\n\r\n promise.finally(function (obj) {\r\n console.log(\"Finally \" + obj);\r\n $scope.loading = false;\r\n });\r\n\r\n }\r\n\r\n vm.resetPassword = function (phonenumber) {\r\n $scope.loading = true;\r\n if (phonenumber != null && phonenumber.length == 8 && /^[0-9]+$/.test(phonenumber) && phonenumber[0] != 1 && phonenumber[0] != 0) {\r\n var promise = userService.ResetPassword(phonenumber);\r\n promise.then(function (obj) {\r\n if (!obj.Success) {\r\n vm.state = \"resetfail\";\r\n }\r\n else {\r\n $location.search('');\r\n vm.memberId = obj.Data;\r\n vm.state = \"validate\";\r\n }\r\n $scope.loading = false;\r\n });\r\n vm.error = null;\r\n }\r\n else {\r\n vm.error = \"Du skal indtaste et korrekt telefonnummer..\";\r\n $scope.loading = false;\r\n }\r\n }\r\n\r\n //vm.getDataInfo = function () {\r\n // var promise = userService.GetDataInfo();\r\n // promise.then(function (obj) {\r\n // vm.dataInfo = obj.Data;\r\n // });\r\n //}\r\n\r\n vm.returnToProfile = function () {\r\n var promise = userService.GetCurrentProfile();\r\n promise.then(function (obj) {\r\n vm.state = 'edit';\r\n vm.profile = obj.Data;\r\n });\r\n }\r\n\r\n vm.changePassword = function () {\r\n vm.password.password1 = \"\";\r\n vm.password.password2 = \"\";\r\n vm.state = \"changePassword\";\r\n }\r\n\r\n vm.passwordChanged = function () {\r\n vm.state = \"passwordChanged\";\r\n }\r\n\r\n vm.passwordChangedBackToEdit = function () {\r\n vm.state = \"edit\";\r\n }\r\n\r\n\r\n vm.changePasswordSubmit = function() {\r\n vm.testPasswordStrength(vm.password.password1);\r\n\r\n if (vm.password.passwordLength)\r\n {\r\n var promise = userService.changePassword(vm.password.password1, vm.password.password2);\r\n promise.then(function (obj) {\r\n console.log(obj);\r\n\r\n if (obj.Success) {\r\n vm.passwordChanged();\r\n } else {\r\n vm.password.error = \"Fejl:\" + obj.Message;\r\n }\r\n\r\n\r\n });\r\n } else {\r\n console.log(\"password to weak\");\r\n }\r\n\r\n\r\n }\r\n\r\n vm.changePasswordCancel = function () {\r\n vm.state = \"edit\";\r\n }\r\n\r\n $scope.openMenu = function openMenu() {\r\n $('.nav-main-mobile.extranet-nav.is-mobil-menu').addClass('nav-main-mobile--show');\r\n }\r\n\r\n var pattern = {\r\n charLength: function (str) {\r\n if (str && str.length >= 4) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n lowercase: function (str) {\r\n var regex = /^(?=.*[a-zæøå]).+$/;\r\n\r\n if (regex.test(str)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n uppercase: function (str) {\r\n var regex = /^(?=.*[A-ZÆØÅ]).+$/;\r\n\r\n if (regex.test(str)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n special: function (str) {\r\n var regex = /^(?=.*[0-9]).+$/;\r\n\r\n if (regex.test(str)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n vm.testPasswordStrength = function (value) {\r\n vm.testPasswordsIdentical();\r\n vm.password.passwordLength = false;\r\n\r\n if (value && value.length > 0) {\r\n vm.password.passwordLength = pattern.charLength(value);\r\n }\r\n\r\n if (vm.password.passwordLength) {\r\n vm.password.passwordValid = true;\r\n } else {\r\n vm.password.passwordValid = false;\r\n }\r\n }\r\n\r\n vm.testPasswordsIdentical = function () {\r\n vm.password.passwordsIdentical = vm.password.password1 === vm.password.password2;\r\n }\r\n\r\n vm.deleteProfile = function () {\r\n vm.state = \"deleteprofile\";\r\n }\r\n\r\n vm.deleteProfileCancel = function () {\r\n vm.state = \"edit\";\r\n }\r\n\r\n vm.deleteProfileSubmit = function () {\r\n if (vm.memberId === \"none\") {\r\n $scope.loading = false;\r\n return;\r\n }\r\n\r\n if(confirm(\"Er du sikker på, at du vil slette din profil?\")) {\r\n var promise = userService.deleteMemberProfile();\r\n promise.then(function (obj) {\r\n if (obj.Success) {\r\n vm.logout();\r\n vm.state = \"deletesuccess\";\r\n } else {\r\n vm.state = \"deletefail\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n init();\r\n }]);","angular.module('extranetApp.searchController', []).controller(\"searchController\", [\"searchService\", function (searchService) {\r\n var vm = this;\r\n vm.searchResults = {};\r\n vm.nodeId = 0;\r\n\r\n vm.search = function (obj) {\r\n window.location.replace(\"/chauffornet/search/?search=\" + obj);\r\n //var promise = searchService.Search(obj,vm.nodeId);\r\n //promise.then(function (data) {\r\n // vm.searchResults = data.Data;\r\n //});\r\n }\r\n\r\n vm.setNodeId = function(obj) {\r\n vm.nodeId = obj;\r\n }\r\n \r\n}]);","angular.module('extranetApp.surveyController', [])\r\n .filter('to_trusted',\r\n [\r\n '$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n }\r\n ])\r\n .controller('surveyController',\r\n [\r\n '$scope',\r\n '$rootScope',\r\n '$location',\r\n 'surveyService',\r\n 'userService',\r\n function ($scope, $rootScope, $location, surveyService, userService) {\r\n var vm = this;\r\n\r\n vm.rootScope = $rootScope;\r\n\r\n function init() {\r\n $scope.loadingMemberProfile = true;\r\n $scope.loadingQuestionnaireList = true;\r\n $scope.loadingQuestionnaire = true;\r\n $scope.loadingQuestion = true;\r\n $scope.loadingQuestionnaireResult = true;\r\n\r\n $scope.showMemberProfile = true;\r\n $scope.showQuestionnaireList = true;\r\n $scope.showQuestionnaire = false;\r\n $scope.showQuestion = false;\r\n $scope.showQuestionnaireResult = false;\r\n $scope.showCongratulationScreen = false;\r\n $scope.showAnswersOnResult = false;\r\n\r\n $scope.userLoggedIn = false;\r\n $scope.questionnaireList = [];\r\n $scope.memberProfile = null;\r\n \r\n $scope.directlySentToQuestionaire = false;\r\n $scope.directlySentToQuestionaireId = $location.search().quiz;\r\n\r\n $scope.selectedQuestionnaireId = 0;\r\n $scope.selectedQuestionnaire = null;\r\n $scope.selectedAnswerIds = [];\r\n $scope.currentQuestion = null;\r\n $scope.currentAnswers = null;\r\n $scope.currentSelectedAnswerId = 0;\r\n $scope.isLastQuestion = false;\r\n $scope.wrongAnswers = [];\r\n $scope.questionnaireCompleted = false;\r\n\r\n $scope.nameSaveHasError = false;\r\n $scope.nameSaveErrorMessage = \"\";\r\n\r\n $scope.hasReadWrongAnswers = false;\r\n\r\n $scope.loggedIn();\r\n\r\n if($scope.directlySentToQuestionaireId != undefined && $scope.directlySentToQuestionaireId != true) {\r\n $scope.directlySentToQuestionaire = true;\r\n $scope.selectedQuestionnaireClicked($scope.directlySentToQuestionaireId);\r\n }\r\n $scope.getQuestionnaireList();\r\n $scope.getMemberProfile();\r\n }\r\n\r\n $scope.loggedIn = function loggedIn() {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n $scope.userLoggedIn = true;\r\n }\r\n });\r\n };\r\n\r\n $scope.showLogin = function showLogin() {\r\n $('#login-form').addClass('login-form--show');\r\n };\r\n\r\n $scope.toggleBusnameInputFocus = function () {\r\n var isInputDisabled = $('#extranet-survey-busname-input').prop('disabled');\r\n if(isInputDisabled) {\r\n $('#extranet-survey-busname-input').prop('disabled', false);\r\n $('#extranet-survey-busname-input').focus();\r\n }\r\n else {\r\n $('#extranet-survey-busname-input').prop('disabled', true);\r\n \r\n $('#extranet-survey-busname-input').val($scope.memberProfile.CustomProfileName);\r\n }\r\n\r\n $('.extranet-survey-edit-busname-button').toggleClass('extranet-survey-hide-busname-button');\r\n };\r\n\r\n \r\n\r\n $scope.getMemberProfile = function () {\r\n $scope.loadingMemberProfile = true;\r\n var promise = surveyService.getMemberProfile($scope.contentId, '');\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.memberProfile = data.Data;\r\n $scope.loadingMemberProfile = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.upgradeMemberProfile = function () {\r\n $scope.loadingMemberProfile = true;\r\n var promise = surveyService.upgradeMemberProfile($scope.contentId, '');\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.memberProfile = data.Data;\r\n $scope.loadingMemberProfile = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.upgradeClicked = function () {\r\n $scope.upgradeMemberProfile();\r\n };\r\n\r\n $scope.getQuestionnaireList = function () {\r\n $scope.loadingQuestionnaireList = true;\r\n var promise = surveyService.getQuestionnaireList($scope.contentId, '');\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.questionnaireList = data.Data.Questionnaires;\r\n $scope.loadingQuestionnaireList = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.selectedQuestionnaireClicked = function (questionnaireId) {\r\n $scope.selectedQuestionnaireId = questionnaireId;\r\n $scope.getQuestionnaire();\r\n\r\n $scope.showMemberProfile = true;\r\n $scope.showQuestionnaireList = false;\r\n $scope.showQuestionnaire = true;\r\n };\r\n\r\n $scope.deselectQuestionnaireClicked = function () {\r\n $scope.showMemberProfile = true;\r\n $scope.showQuestionnaireList = true;\r\n $scope.showQuestionnaire = false;\r\n\r\n $scope.selectedQuestionnaireId = 0;\r\n $scope.selectedQuestionnaire = null;\r\n\r\n $scope.removeDirectLinkParameter();\r\n };\r\n\r\n $scope.getQuestionnaire = function () {\r\n $scope.loadingQuestionnaire = true;\r\n $scope.selectedQuestionnaire = null;\r\n var promise = surveyService.getQuestionnaire($scope.selectedQuestionnaireId, '');\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.selectedQuestionnaire = data.Data.Questionnaire;\r\n $scope.loadingQuestionnaire = false;\r\n if($scope.selectedQuestionnaire == null || ($scope.directlySentToQuestionaire && $scope.selectedQuestionnaire.Completed)) {\r\n $scope.homeClicked();\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.startQuestionnaireClicked = function () {\r\n $scope.selectedAnswerIds = [];\r\n $scope.showQuestionnaire = false;\r\n $scope.showMemberProfile = false;\r\n $scope.loadingQuestion = true;\r\n $scope.showQuestion = true;\r\n var promise = surveyService.getFirstQuestion($scope.selectedQuestionnaireId, '');\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.currentQuestion = data.Data.Question;\r\n $scope.currentAnswers = data.Data.Answers;\r\n $scope.isLastQuestion = data.Data.IsLastQuestion;\r\n $scope.loadingQuestion = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.nextQuestionClicked = function () {\r\n if (!$scope.doesSelectedAnswerExist()) {\r\n return;\r\n }\r\n $scope.loadingQuestion = true;\r\n $scope.selectedAnswerIds.push($scope.currentSelectedAnswerId);\r\n $scope.currentSelectedAnswerId = 0;\r\n var promise = surveyService.getNextQuestion($scope.currentQuestion.SurveyQuestionnaireQuestionId, '');\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.currentQuestion = data.Data.Question;\r\n $scope.currentAnswers = data.Data.Answers;\r\n $scope.isLastQuestion = data.Data.IsLastQuestion;\r\n $scope.loadingQuestion = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.completeQuestionnaireClicked = function () {\r\n if (!$scope.doesSelectedAnswerExist()) {\r\n return;\r\n }\r\n $scope.showQuestion = false;\r\n $scope.selectedAnswerIds.push($scope.currentSelectedAnswerId);\r\n $scope.currentSelectedAnswerId = 0;\r\n $scope.wrongAnswers = [];\r\n $scope.showQuestion = false;\r\n $scope.loadingQuestionnaireResult = true;\r\n $scope.showQuestionnaireResult = true;\r\n var promise = surveyService.completeQuestionnair($scope.selectedQuestionnaireId, $scope.selectedAnswerIds, '');\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.getMemberProfile();\r\n $scope.showAnswersOnResult = true;\r\n $scope.wrongAnswers = data.Data.WrongAnswers;\r\n $scope.loadingQuestionnaireResult = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.answerClicked = function (answerId) {\r\n $scope.currentSelectedAnswerId = answerId;\r\n };\r\n\r\n $scope.homeClicked = function() {\r\n $scope.showCongratulationScreen = false;\r\n $scope.removeDirectLinkParameter();\r\n init();\r\n };\r\n\r\n $scope.quizCompleted = function() {\r\n $scope.showCongratulationScreen = true;\r\n $scope.showAnswersOnResult = false;\r\n }\r\n\r\n $scope.removeDirectLinkParameter = function() {\r\n $location.search('quiz', null);\r\n };\r\n\r\n $scope.doesSelectedAnswerExist = function () {\r\n for (var i = 0; i < $scope.currentAnswers.length; i++) {\r\n if ($scope.currentAnswers[i].SurveyQuestionnaireAnswerId === $scope.currentSelectedAnswerId) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n $scope.toggleProfile = function () {\r\n if ($('.extranet-survey-quiz-header').hasClass('extranet-survey-quiz-header--open')) {\r\n $('.extranet-survey-quiz-header').removeClass('extranet-survey-quiz-header--open');\r\n $('.extranet-survey-quiz-header__expand-text').html('Se min bus');\r\n } else {\r\n $('.extranet-survey-quiz-header').addClass('extranet-survey-quiz-header--open');\r\n $('.extranet-survey-quiz-header__expand-text').html('Minimér din bus');\r\n }\r\n };\r\n\r\n $scope.editName = function () {\r\n var newBusname = $('#extranet-survey-busname-input').val();\r\n if(newBusname != \"\") {\r\n if($scope.memberProfile.CustomProfileName == newBusname) {\r\n $('.extranet-survey-edit-busname-button').toggleClass('extranet-survey-hide-busname-button');\r\n return;\r\n }\r\n var promise = surveyService.changeName($scope.contentId, newBusname);\r\n promise.then(function (data) {\r\n if (data.Success) {\r\n $scope.nameSaveHasError = false;\r\n $scope.memberProfile = data.Data;\r\n $('.extranet-survey-edit-busname-button').toggleClass('extranet-survey-hide-busname-button');\r\n $scope.getMemberProfile();\r\n }\r\n else {\r\n $scope.nameSaveHasError = true;\r\n $scope.nameSaveErrorMessage = data.Message;\r\n }\r\n });\r\n }\r\n else {\r\n $scope.nameSaveHasError = true;\r\n $scope.nameSaveErrorMessage = \"Feltet kan ikke være tomt\";\r\n }\r\n };\r\n\r\n $scope.compare = function () {\r\n var numberOfElements = document.querySelectorAll('.extranet-survey-wronganswer-see-correct-answer__correct-answer').length;\r\n var numberOfClasses = document.querySelectorAll('.extranet-survey-wronganswer-see-correct-answer__correct-answer.correct-answer-active').length;\r\n \r\n if(numberOfElements === numberOfClasses) {\r\n $('#finish-questionaire-button').removeClass('extranet-survey-quiz-button--grey-out');\r\n $scope.hasReadWrongAnswers = true;\r\n }\r\n };\r\n\r\n $scope.displayCorrectAnswer = function (index) {\r\n $('#correctanswer' + index).toggleClass('extranet-survey-wronganswer-see-correct-answer--open');\r\n $('#correctanswer' + index + '>' + '.extranet-survey-wronganswer-see-correct-answer__correct-answer').addClass('correct-answer-active');\r\n \r\n $scope.compare();\r\n };\r\n\r\n init();\r\n }\r\n ]);","angular.module('extranetApp.ticketsController', [])\r\n .filter(\"category_filter\", [function () {\r\n return function (items, category) {\r\n if (items != null) {\r\n var filtered = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (category == \"Alle\") {\r\n filtered.push(item);\r\n }\r\n else {\r\n var contains = false;\r\n for (var j = 0; j < item.Tags.length; j++) {\r\n if (category == item.Tags[j].Name) {\r\n contains = true;\r\n }\r\n }\r\n if (contains)\r\n filtered.push(item);\r\n }\r\n }\r\n }\r\n return filtered;\r\n };\r\n }])\r\n\r\n .filter(\"mainCompany_filter\", [function () {\r\n return function (items, companyTag) {\r\n if (items != null) {\r\n var filtered = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item.CompanyTags[0].Name == companyTag)\r\n {\r\n filtered.push(item);\r\n }\r\n }\r\n }\r\n return filtered;\r\n };\r\n }])\r\n\r\n .controller(\"ticketsController\", [\"$scope\", \"$rootScope\", \"ticketService\", \"userService\", function ($scope, $rootScope, ticketService, userService) {\r\n var vm = this;\r\n $scope.nodeId;\r\n vm.rootScope = $rootScope;\r\n vm.ticketCollection = [];\r\n\r\n vm.mainCompanyTags = [];\r\n\r\n vm.dropdownSelected = {};\r\n vm.dropdownOptions = {};\r\n\r\n vm.category = 'Alle';\r\n vm.showCategorySelect = false;\r\n vm.userLoggedIn = false;\r\n\r\n function init() {\r\n vm.loggedIn();\r\n vm.getTicketCollectionModel();\r\n vm.getTicketTypeTags();\r\n vm.getMainCompanyTags();\r\n\r\n vm.rootScope.$on(\"userLogin\", function () {\r\n vm.userLoggedIn = true;\r\n $scope.getTicketCollectionModel();\r\n });\r\n\r\n vm.rootScope.$on(\"userLogout\", function () {\r\n vm.userLoggedIn = false;\r\n $scope.getTicketCollectionModel();\r\n });\r\n }\r\n\r\n vm.loggedIn = function loggedIn() {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n vm.userLoggedIn = true;\r\n }\r\n });\r\n }\r\n\r\n vm.selectCategoryValue = function (val) {\r\n vm.showCategorySelect = false;\r\n vm.category = val;\r\n }\r\n\r\n vm.getTicketCollectionModel = function getTicketCollectionModel() {\r\n var promise = ticketService.getTicketCollectionModel($scope.nodeId);\r\n promise.then(function (obj) {\r\n vm.ticketCollection = obj;\r\n })\r\n }\r\n\r\n vm.getTicketTypeTags = function getTicketTypeTags() {\r\n var promise = ticketService.getTicketTypeTags();\r\n promise.then(function (obj) {\r\n vm.dropdownOptions = obj;\r\n })\r\n }\r\n\r\n vm.getMainCompanyTags = function getMainCompanyTags() {\r\n var promise = ticketService.getMainCompanyTags();\r\n promise.then(function (obj) {\r\n vm.mainCompanyTags = obj.Data;\r\n });\r\n }\r\n\r\n $scope.openMenu = function openMenu() {\r\n $('.nav-main-mobile.extranet-nav.is-mobil-menu').addClass('nav-main-mobile--show');\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n $scope.showLogin = function showLogin() {\r\n $('#login-form').addClass('login-form--show'); \r\n }\r\n\r\n init();\r\n }]);","angular.module('extranetApp.timetableSuggestionController', [])\r\n\r\n .filter('to_trusted', ['$sce', function ($sce) {\r\n return function (text) {\r\n return $sce.trustAsHtml(text);\r\n };\r\n }])\r\n\r\n .controller('timetableSuggestionController', ['$scope', '$rootScope', 'timetableSuggestionService', 'userService', 'Upload', '$sce', '$location', '$anchorScroll', function ($scope, $rootScope, timetableSuggestionService, userService, Upload, $sce, $location, $anchorScroll) {\r\n var vm = this;\r\n vm.rootScope = $rootScope;\r\n vm.memberLoggedIn = false;\r\n $scope.loading = true;\r\n\r\n $scope.tabs = [];\r\n $scope.subTabs = [];\r\n\r\n $scope.orderTypes = [\r\n { label: 'Dato', value: 'createdDate', selected: true },\r\n { label: 'Navn', value: 'memberName', selected: false },\r\n { label: 'Rute', value: 'route', selected: false }\r\n ];\r\n\r\n $scope.pagination = {\r\n pageNumber: 1,\r\n totalResults: 0,\r\n totalPages: 1,\r\n pageSize: 10,\r\n rangeTo: 0,\r\n rangeFrom: 0\r\n };\r\n\r\n $scope.criteria = {\r\n query: '',\r\n statusIds: [],\r\n //selectedTab: $scope.tabs[0],\r\n //selectedSubTab: $scope.tabs[0].tabs[0],\r\n selectedBusCompany: null,\r\n selectedRoute: null,\r\n pagination: $scope.pagination,\r\n orderBy: $scope.orderTypes[0].value,\r\n orderReverse: false\r\n };\r\n\r\n $scope.suggestionFormData = {\r\n message: '',\r\n subject: '',\r\n file: null\r\n };\r\n\r\n $scope.suggestionAnswerReply = {\r\n message: '',\r\n file: null\r\n };\r\n\r\n $scope.busCompaniesLoaded = false;\r\n $scope.busCompaniesShow = false;\r\n $scope.busCompanies = [];\r\n\r\n $scope.routesLoaded = false;\r\n $scope.routesShow = false;\r\n $scope.routes = [];\r\n\r\n $scope.suggestionsLoaded = false;\r\n $scope.suggestionsShow = false;\r\n $scope.suggestions = [];\r\n\r\n $scope.formLoaded = false;\r\n $scope.formShow = false;\r\n $scope.formSubmitting = false;\r\n $scope.formSubmitted = false;\r\n\r\n $scope.suggestionAnswers = {};\r\n\r\n $scope.helpTextToShow = \"\";\r\n\r\n vm.Tab = function (label, config) {\r\n this.label = label;\r\n this.config = config;\r\n this.tabs = [];\r\n this.parent = null;\r\n this.selected = false;\r\n this.tabPathIndex = 0;\r\n\r\n this.addTab = function (label, config) {\r\n var tab = new vm.Tab(label, config);\r\n tab.parent = this;\r\n tab.tabPathIndex = this.tabPathIndex + 1;\r\n this.tabs.push(tab);\r\n };\r\n this.select = function () {\r\n if (this.selected)\r\n return;\r\n //Deselect siblings if any\r\n if (this.parent)\r\n for (var iParentTab = 0; iParentTab < this.parent.tabs.length; iParentTab++)\r\n this.parent.tabs[iParentTab].deselect();\r\n else\r\n for (var iScopeTab = 0; iScopeTab < $scope.tabs.length; iScopeTab++)\r\n $scope.tabs[iScopeTab].deselect();\r\n //Mark tab as selected\r\n this.selected = true;\r\n if (this.config && this.config.onSelected)\r\n this.config.onSelected(this);\r\n //Populate scope sub tabs array\r\n if (!this.parent)\r\n $scope.subTabs = this.tabs;\r\n //Select first childtab if any\r\n if (this.tabs.length > 0)\r\n this.tabs[0].select();\r\n $scope.helpTextToShow = this.label;\r\n };\r\n this.deselect = function () {\r\n if (!this.selected)\r\n return;\r\n //Deselect child tabs\r\n for (var iTab = 0; iTab < this.tabs.length; iTab++)\r\n this.tabs[iTab].deselect();\r\n //Mark tab as not selected\r\n this.selected = false;\r\n if (this.config && this.config.onDeselected)\r\n this.config.onDeselected(this);\r\n };\r\n };\r\n\r\n vm.InitTabs = function () {\r\n var listTab = new vm.Tab('Indbakke');\r\n listTab.addTab('Nye', { onSelected: vm.onListTabSelected, onDeselected: vm.onListTabDeselected, statusIds: [100] });\r\n listTab.addTab('Under behandling', { onSelected: vm.onListTabSelected, onDeselected: vm.onListTabDeselected, statusIds: [200] });\r\n listTab.addTab('Afsluttet', { onSelected: vm.onListTabSelected, onDeselected: vm.onListTabDeselected, statusIds: [300] });\r\n listTab.addTab('Alle', { onSelected: vm.onListTabSelected, onDeselected: vm.onListTabDeselected, statusIds: [100, 200, 300] });\r\n var formTab = new vm.Tab('Indsend forslag', { onSelected: vm.onFormTabSelected, onDeselected: vm.onFormTabDeselected });\r\n $scope.tabs.push(listTab);\r\n $scope.tabs.push(formTab);\r\n $scope.tabs[0].select();\r\n };\r\n\r\n vm.onListTabSelected = function (tab) {\r\n $scope.suggestionsShow = true;\r\n $scope.suggestionsLoaded = false;\r\n $scope.criteria.pagination.pageNumber = 1;\r\n $scope.criteria.statusIds = tab.config.statusIds;\r\n $scope.fetchSuggestions();\r\n };\r\n\r\n vm.onListTabDeselected = function (tab) {\r\n $scope.suggestionsShow = false;\r\n $scope.suggestionsLoaded = false;\r\n $scope.suggestions = [];\r\n };\r\n\r\n vm.onFormTabSelected = function (tab) {\r\n $scope.formShow = true;\r\n $scope.formLoaded = $scope.busCompaniesLoaded && $scope.routesLoaded;\r\n if (!$scope.busCompaniesLoaded)\r\n $scope.fetchBusCompanies();\r\n };\r\n\r\n vm.onFormTabDeselected = function (tab) {\r\n $scope.formShow = false;\r\n $scope.formLoaded = false;\r\n };\r\n\r\n vm.onNextPage = function () {\r\n if ($scope.pagination.pageNumber >= $scope.pagination.totalPages)\r\n return;\r\n $scope.criteria.pagination.pageNumber++;\r\n $scope.fetchSuggestions();\r\n };\r\n\r\n vm.onPrevPage = function () {\r\n if ($scope.pagination.pageNumber <= 1)\r\n return;\r\n $scope.criteria.pagination.pageNumber--;\r\n $scope.fetchSuggestions();\r\n };\r\n\r\n vm.onSort = function (orderType) {\r\n var selectedOrderType = null;\r\n for (var iOrderType = 0; iOrderType < $scope.orderTypes.length; iOrderType++)\r\n if ($scope.orderTypes[iOrderType].selected)\r\n selectedOrderType = $scope.orderTypes[iOrderType];\r\n if (!selectedOrderType)\r\n return;\r\n if (selectedOrderType.value === orderType.value) {\r\n $scope.criteria.orderReverse = !$scope.criteria.orderReverse;\r\n } else {\r\n $scope.criteria.orderReverse = false;\r\n $scope.criteria.orderBy = orderType.value;\r\n selectedOrderType.selected = false;\r\n orderType.selected = true;\r\n }\r\n $scope.criteria.pagination.pageNumber = 1;\r\n $scope.fetchSuggestions();\r\n };\r\n\r\n vm.loggedIn = function loggedIn() {\r\n var promise = userService.IsLoggedIn();\r\n console.log(promise);\r\n promise.then(function (data) {\r\n if (data.LoggedIn) {\r\n vm.memberLoggedIn = true;\r\n vm.InitTabs();\r\n }\r\n });\r\n };\r\n\r\n function init() {\r\n\r\n //Listens for clicks outside the suggestion form and closes open dropdowns within the form\r\n window.addEventListener('click', function(e){ \r\n var suggestionForm = document.getElementById('suggestionform');\r\n if(suggestionForm != null) {\r\n if (!suggestionForm.contains(e.target)){\r\n $scope.$apply(function () {\r\n $scope.ctrl.showBusCompanyTypeSelect = false;\r\n $scope.ctrl.showRouteTypeSelect = false;\r\n });\r\n }\r\n }\r\n });\r\n\r\n //Opens the reply form on button click\r\n $(document).on( 'click', '.js-toggle-driver-reply-form', function() {\r\n $(this).next('.js-driver-reply-form').toggleClass('extranet-timetable-suggestion-driver-reply__form--active');\r\n });\r\n\r\n vm.loggedIn();\r\n\r\n vm.rootScope.$on('userLogin', function () {\r\n vm.memberLoggedIn = true;\r\n });\r\n\r\n vm.rootScope.$on('userLogout', function () {\r\n vm.memberLoggedIn = false;\r\n });\r\n }\r\n\r\n $scope.showLogin = function showLogin() {\r\n $('#login-form').addClass('login-form--show');\r\n };\r\n\r\n $scope.nextPage = function () {\r\n vm.onNextPage();\r\n };\r\n\r\n $scope.prevPage = function () {\r\n vm.onPrevPage();\r\n };\r\n\r\n $scope.sort = function (orderType) {\r\n vm.onSort(orderType);\r\n };\r\n\r\n $scope.selectBusCompany = function (busCompany) {\r\n $scope.ctrl.showBusCompanyTypeSelect = false;\r\n $scope.criteria.selectedBusCompany = busCompany;\r\n $scope.fetchRoutes();\r\n };\r\n\r\n $scope.selectRoute = function (route) {\r\n $scope.ctrl.showRouteTypeSelect = false;\r\n $scope.criteria.selectedRoute = route;\r\n };\r\n\r\n $scope.fetchBusCompaniesSync = 0;\r\n $scope.fetchBusCompanies = function () {\r\n $scope.busCompaniesLoaded = false;\r\n if ($scope.ctrl)\r\n $scope.ctrl.showBusCompanyTypeSelect = false;\r\n $scope.criteria.selectedBusCompany = { Id: '', Name: 'Henter busselskaber...' };\r\n $scope.busCompanies = [$scope.criteria.selectedBusCompany];\r\n timetableSuggestionService\r\n .getBusCompanies(\r\n ++$scope.fetchBusCompaniesSync\r\n )\r\n .then(function (response) {\r\n console.info(response);\r\n if (!response.Success)\r\n return;\r\n var data = response.Data;\r\n if (data.Sync !== $scope.fetchBusCompaniesSync + '')\r\n return;\r\n if (data.Results.length > 1)\r\n data.Results.unshift({ Id: '', Name: 'Alle busselskaber' });\r\n if (data.Results.length === 0)\r\n data.Results.push({ Id: '', Name: 'Ingen busselskaber fundet' });\r\n $scope.busCompanies = data.Results;\r\n $scope.busCompaniesLoaded = true;\r\n $scope.formLoaded = true;\r\n $scope.selectBusCompany($scope.busCompanies[0]);\r\n });\r\n };\r\n\r\n $scope.fetchRoutesSync = 0;\r\n $scope.fetchRoutes = function () {\r\n $scope.routesLoaded = false;\r\n if ($scope.ctrl)\r\n $scope.ctrl.showRouteTypeSelect = false;\r\n $scope.criteria.selectedRoute = { Id: '', Name: 'Henter ruter...', Number: '' };\r\n $scope.routes = [$scope.criteria.selectedRoute];\r\n timetableSuggestionService\r\n .getRoutes(\r\n $scope.criteria.selectedBusCompany.Id,\r\n ++$scope.fetchRoutesSync\r\n )\r\n .then(function (response) {\r\n if (!response.Success)\r\n return;\r\n var data = response.Data;\r\n if (data.Sync !== $scope.fetchRoutesSync + '')\r\n return;\r\n if (data.Results.length > 1)\r\n data.Results.unshift({ Id: '', Name: 'Alle ruter', Number: '' });\r\n if (data.Results.length === 0)\r\n data.Results.push({ Id: '', Name: 'Ingen ruter fundet', Number: '' });\r\n $scope.routes = data.Results;\r\n $scope.routesLoaded = true;\r\n $scope.selectRoute($scope.routes[0]);\r\n });\r\n };\r\n\r\n $scope.fetchSuggestionsSync = 0;\r\n $scope.fetchSuggestions = function () {\r\n //if (!$scope.busCompaniesLoaded || !$scope.routesLoaded)\r\n // return;\r\n\r\n $scope.loading = true;\r\n\r\n $scope.suggestionsLoaded = false;\r\n $scope.suggestions = [];\r\n $scope.criteria.selectedSuggestions = [];\r\n timetableSuggestionService\r\n .getTimetableSuggestions(\r\n $scope.criteria.query,\r\n $scope.criteria.statusIds,\r\n null, //$scope.criteria.selectedBusCompany.Id,\r\n null, //$scope.criteria.selectedRoute.Id,\r\n $scope.criteria.pagination.pageNumber,\r\n $scope.criteria.orderBy,\r\n $scope.criteria.orderReverse,\r\n ++$scope.fetchSuggestionsSync\r\n )\r\n .then(function (response) {\r\n if (!response.Success)\r\n return;\r\n var data = response.Data;\r\n if (data.Sync !== $scope.fetchSuggestionsSync + '')\r\n return;\r\n $scope.pagination.totalResults = data.TotalResults;\r\n $scope.pagination.totalPages = data.TotalPages;\r\n $scope.pagination.pageNumber = data.PageNumber;\r\n $scope.pagination.resultsPerPage = data.ResultsPerPage;\r\n $scope.pagination.rangeFrom = data.RangeFrom;\r\n $scope.pagination.rangeTo = data.RangeTo;\r\n $scope.suggestions = data.Results;\r\n $scope.suggestionsLoaded = true;\r\n $scope.loading = false;\r\n\r\n console.log($scope.suggestions);\r\n });\r\n };\r\n\r\n $scope.addSuggestion = function () {\r\n if (!$scope.suggestionFormData.subject || $scope.suggestionFormData.subject.replace(/\\s/g, '').length < 1 || $scope.suggestionFormData.subject.length > 70)\r\n return;\r\n\r\n if (!$scope.suggestionFormData.message || $scope.suggestionFormData.message.replace(/\\s/g, '').length < 1 || $scope.suggestionFormData.message.length > 1200)\r\n return;\r\n\r\n if (!$scope.criteria.selectedRoute || !$scope.criteria.selectedRoute.Id)\r\n return;\r\n\r\n $scope.formSubmitting = true;\r\n\r\n if ($scope.suggestionFormData.file) {\r\n $scope.uploadFile($scope.suggestionFormData.file).then(\r\n function(fileData) {\r\n if (fileData.data.Success) {\r\n vm.addSuggestion(fileData.data.Data);\r\n } else {\r\n alert('Kunne ikke vedhæfte fil. ' + fileData.data.Message);\r\n $scope.formSubmitting = false;\r\n }\r\n },\r\n function(fileData) {\r\n alert('Kunne ikke vedhæfte fil. Der opstod en fejl.');\r\n $scope.formSubmitting = false;\r\n });\r\n } else {\r\n vm.addSuggestion(null);\r\n }\r\n };\r\n\r\n $scope.uploadFile = function (file) {\r\n if (file) {\r\n file.upload = Upload.upload({\r\n url: '/umbraco/api/TimetableSuggestion/UploadFile',\r\n data: {\r\n file: file\r\n }\r\n });\r\n return file.upload;\r\n }\r\n return null;\r\n };\r\n\r\n vm.addSuggestion = function(file) {\r\n\r\n var subject = $scope.suggestionFormData.subject;\r\n var message = $scope.suggestionFormData.message;\r\n var routeId = $scope.criteria.selectedRoute.Id;\r\n\r\n timetableSuggestionService.addSuggestion(\r\n subject,\r\n message,\r\n routeId,\r\n file ? file.Id : null,\r\n file ? file.Name : null,\r\n file ? file.Extension : null,\r\n ''\r\n ).then(function(response) {\r\n if (response.Success) {\r\n $scope.suggestionFormData = {\r\n message: '',\r\n file: null\r\n };\r\n $scope.selectBusCompany($scope.busCompanies[0]);\r\n $scope.formSubmitted = true;\r\n $scope.formSubmitting = false;\r\n }\r\n });\r\n };\r\n\r\n $scope.deleteSuggestion = function(id) {\r\n var confirmDeletion = confirm('Er du sikker på at du vil slette dette forslag?');\r\n if (confirmDeletion) {\r\n timetableSuggestionService.deleteSuggestion(\r\n id\r\n ).then(function(response) {\r\n if (response.Success) {\r\n $scope.suggestions = $scope.suggestions.filter(function(el) { return el.Id != id });\r\n } else {\r\n alert(response.Message);\r\n }\r\n });\r\n }\r\n };\r\n\r\n $scope.replyToAnswer = function(suggestionId) {\r\n if (!$scope.suggestionAnswerReply.message || $scope.suggestionAnswerReply.message.replace(/\\s/g, '').length < 1)\r\n return;\r\n if ($scope.suggestionAnswerReply.file) {\r\n $scope.uploadFile($scope.suggestionAnswerReply.file).then(\r\n function(fileData) {\r\n if (fileData.data.Success) {\r\n file = fileData.data.Data;\r\n vm.addReply(suggestionId, fileData.data.Data);\r\n } else {\r\n alert('Kunne ikke vedhæfte fil. ' + fileData.data.Message);\r\n }\r\n },\r\n function(fileData) {\r\n alert('Kunne ikke vedhæfte fil. Der opstod en fejl.');\r\n });\r\n } else {\r\n vm.addReply(suggestionId, null);\r\n }\r\n };\r\n\r\n vm.addReply = function(suggestionId, file) {\r\n timetableSuggestionService.addReply(\r\n suggestionId,\r\n $scope.suggestionAnswerReply.message,\r\n file ? file.Id : null,\r\n file ? file.Name : null,\r\n file ? file.Extension : null\r\n ).then(function(response) {\r\n if (response.Success) {\r\n $scope.getAnswers(suggestionId, true);\r\n $scope.closeDriverReplyForm();\r\n $scope.suggestionAnswerReply = {\r\n message: '',\r\n file: null\r\n };\r\n } else {\r\n alert(response.Message);\r\n }\r\n });\r\n };\r\n\r\n $scope.deleteAnswer = function (answer) {\r\n if (answer.IsDeleting)\r\n return;\r\n\r\n var confirmDeletion = confirm('Er du sikker på at du vil slette denne besvarelse?');\r\n if (!confirmDeletion)\r\n return;\r\n\r\n answer.IsDeleting = true;\r\n\r\n timetableSuggestionService.deleteAnswer(\r\n answer.Id\r\n ).then(function(response) {\r\n if (response.Success) {\r\n answer.Message = '';\r\n answer.Deleted = true;\r\n answer.Deletable = false;\r\n answer.Files = [];\r\n answer.IsDeleting = false;\r\n } else {\r\n answer.IsDeleting = false;\r\n alert(response.Message);\r\n }\r\n }, function () {\r\n answer.IsDeleting = false;\r\n });\r\n };\r\n\r\n $scope.getAnswers = function(suggestionId, keepShowingAnswers) {\r\n\r\n if (!keepShowingAnswers) {\r\n //Make the answers disappear if the same suggestion answer button is pressed consecutively\r\n if ($scope.suggestionAnswers.suggestionId != undefined && $scope.suggestionAnswers.suggestionId == suggestionId) {\r\n $scope.suggestionAnswers = {};\r\n return;\r\n }\r\n }\r\n\r\n timetableSuggestionService.getAnswers(\r\n suggestionId\r\n ).then(function(response) {\r\n if (response.Success) {\r\n $scope.suggestionAnswers = { 'suggestionId': suggestionId, 'answers': response.Data };\r\n } else {\r\n alert(response.Message);\r\n }\r\n });\r\n };\r\n\r\n $scope.addAnother = function() {\r\n $scope.formSubmitted = false;\r\n };\r\n\r\n $scope.closeDriverReplyForm = function() {\r\n $('.js-driver-reply-form').removeClass('extranet-timetable-suggestion-driver-reply__form--active');\r\n };\r\n \r\n init();\r\n }]);","angular.module('extranetApp.userController', []).controller(\"userController\", [\"userService\", \"$scope\", \"$rootScope\", function (userService, $scope, $rootScope) {\r\n var vm = this;\r\n vm.rootScope = $rootScope;\r\n vm.loginmessage = \"\";\r\n vm.isLoggedIn = false;\r\n //vm.login = {};\r\n vm.years = [];\r\n vm.busCompanies = {};\r\n vm.categoryTags = {};\r\n vm.regionTags = {};\r\n\r\n vm.profile = {};\r\n\r\n vm.profile.categoryTags = {};\r\n vm.profile.regionTags = {};\r\n\r\n\r\n\r\n vm.state = 0;\r\n vm.memberId = \"none\";\r\n\r\n\r\n\r\n function init() {\r\n populateYears();\r\n vm.isUserLoggedIn();\r\n //getBusCompanies();\r\n //getTags();\r\n\r\n }\r\n\r\n function populateYears() {\r\n var currentYear = new Date().getFullYear();\r\n\r\n var maxYear = currentYear - 18;\r\n var minYear = maxYear - 50;\r\n\r\n for (var i = minYear; i <= maxYear; i++) {\r\n vm.years.push({ id: i, label: i });\r\n }\r\n }\r\n\r\n function getTags() {\r\n //console.log(\"getting categoryTags\");\r\n //var promise = userService.GetTags();\r\n //promise.then(function (obj) {\r\n // console.log(obj);\r\n // vm.busCompanies = obj.Data.BusCompanyTags.Tags;\r\n // vm.categoryTags = obj.Data.CategoryTags.Tags;\r\n // vm.regionTags = obj.Data.RegionTags.Tags;\r\n //});\r\n }\r\n\r\n vm.tagChange = function () {\r\n vm.profile.categoryTags = handleCategory(vm.categoryTags);\r\n vm.profile.regionTags = handleCategory(vm.regionTags);\r\n }\r\n\r\n function handleCategory(cat) {\r\n var list = [];\r\n\r\n for (var i = 0; i < cat.length; i++) {\r\n if (cat[i].checked) {\r\n list.push(cat[i].Id);\r\n }\r\n }\r\n\r\n return list;\r\n }\r\n\r\n\r\n vm.createProfile = function (form, p) {\r\n vm.tagChange();\r\n var promise = userService.CreateProfile(p.name, p.mobilePhoneNumber, p.gender, p.year.id, p.busCompany.Id, p.acceptSms, p.acceptMail, p.acceptMailDigest, p.categoryTags, p.regionTags, p.email);\r\n promise.then(function (obj) {\r\n\r\n if (obj.Success) {\r\n vm.state = 1;\r\n vm.memberId = obj.Data;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n vm.createProfileObject = function (form, p) {\r\n var promise = userService.CreateProfileObject(p);\r\n promise.then(function (obj) {\r\n\r\n if (obj.Success) {\r\n vm.state = 1;\r\n vm.memberId = obj.Data;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n vm.close = function(){\r\n $('#login-form').removeClass('login-form--show'); \r\n }\r\n\r\n $('#login-form').click(function() {\r\n vm.close();\r\n });\r\n \r\n $('.login-form__content').click(function(event){\r\n event.stopPropagation();\r\n });\r\n\r\n vm.login = function (form, params) {\r\n var promise = userService.Login(params.username, params.password);\r\n promise.then(function (obj) {\r\n if (obj.LoggedIn) {\r\n // vm.isLoggedIn = obj.LoggedIn;\r\n vm.rootScope.$broadcast(\"userLogin\");\r\n window.location.reload();\r\n }\r\n else {\r\n vm.loginmessage = \"Forkert brugernavn eller password.\";\r\n }\r\n });\r\n }\r\n\r\n vm.isUserLoggedIn = function () {\r\n var promise = userService.IsLoggedIn();\r\n promise.then(function (obj) {\r\n vm.isLoggedIn = obj.LoggedIn;\r\n\r\n if (vm.isLoggedIn) {\r\n vm.getCurrentProfile();\r\n } else {\r\n vm.getEmptyProfile();\r\n }\r\n\r\n });\r\n }\r\n\r\n vm.showlogin = function () {\r\n $('#js-extranet-mobile-nav').removeClass('nav-main-mobile--show');\r\n $(\".dim-overlay\").removeClass(\"fade\");\r\n $('#login-form').addClass('login-form--show'); \r\n window.scrollTo(0, 0);\r\n }\r\n\r\n\r\n vm.logout = function () {\r\n var promise = userService.Logout();\r\n promise.then(function (obj) {\r\n // vm.isLoggedIn = obj.LoggedIn;\r\n vm.rootScope.$broadcast(\"userLogout\");\r\n $('#js-extranet-mobile-nav').removeClass('nav-main-mobile--show');\r\n window.location.reload();\r\n });\r\n }\r\n\r\n vm.getCurrentProfile = function () {\r\n var promise = userService.GetCurrentProfile();\r\n promise.then(function (obj) {\r\n vm.profile = obj.Data;\r\n\r\n //$scope.$apply();\r\n\r\n });\r\n }\r\n\r\n vm.getEmptyProfile = function () {\r\n var promise = userService.GetEmptyProfile();\r\n promise.then(function (obj) {\r\n vm.profile = obj.Data;\r\n\r\n //$scope.$apply();\r\n\r\n });\r\n }\r\n\r\n vm.validate = function (form, params) {\r\n\r\n var promise = userService.ValidateCode(vm.memberId, params.validationCode);\r\n promise.then(function (obj) {\r\n if (obj.Success) {\r\n vm.state = 2;\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n init();\r\n}]);"]}