From 680708873c0760a2594ab98c8a2f7c2e877647e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cle=CC=81ment=20Perrousset?= Date: Thu, 6 Apr 2023 09:35:17 +0200 Subject: [PATCH 01/18] chore(Build for security block Marion) --- entourage.xcodeproj/project.pbxproj | 4 + entourage/AppDelegate.swift | 35 +------- entourage/Assets/Localizable.strings | 4 + entourage/Managers/DeeplinkManager.swift | 79 ++++++++++++++++++- entourage/Managers/UniversalLinkManager.swift | 64 +++++++++++++++ entourage/Network Managers/Endpoints.swift | 1 + .../ActionDetailFullViewController.swift | 1 + ...ersationDetailMessagesViewController.swift | 14 ++++ .../EventDetailFeedViewController.swift | 1 + .../EventDetailMessagesViewController.swift | 2 + ...hborhoodDetailMessagesViewController.swift | 2 + .../NeighborhoodDetailViewController.swift | 1 + entourage/Scenes/Home/NotifInAppCell.swift | 30 ++++++- .../NotificationsInAppViewController.swift | 6 +- .../PedagogicDetailViewController.swift | 1 + .../Profile/ParamsAboutViewController.swift | 3 + .../Storyboards/ProfileParams.storyboard | 39 ++++----- 17 files changed, 228 insertions(+), 59 deletions(-) create mode 100644 entourage/Managers/UniversalLinkManager.swift diff --git a/entourage.xcodeproj/project.pbxproj b/entourage.xcodeproj/project.pbxproj index 1907c4efa..ae6ef318f 100644 --- a/entourage.xcodeproj/project.pbxproj +++ b/entourage.xcodeproj/project.pbxproj @@ -385,6 +385,7 @@ 264C1AF829AD22AB0083F83E /* ReportChooseViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 264C1AF729AD22AB0083F83E /* ReportChooseViewCell.xib */; }; 264C1AFA29AF52820083F83E /* HeaderReportView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 264C1AF929AF52820083F83E /* HeaderReportView.xib */; }; 264C1AFC29AF5BED0083F83E /* HeaderReportView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 264C1AFB29AF5BED0083F83E /* HeaderReportView.swift */; }; + 2684542C29DAC63700C944EA /* UniversalLinkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2684542B29DAC63700C944EA /* UniversalLinkManager.swift */; }; 268FCA2A2967281100159C34 /* MJAlertWithImageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 268FCA292967281100159C34 /* MJAlertWithImageController.swift */; }; 268FCA2C2967288100159C34 /* MJAlertWithImageController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 268FCA2B2967288100159C34 /* MJAlertWithImageController.xib */; }; 26BC119929C88CD700F204BB /* NeighborhoodPostDeletedCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 26BC119829C88CD700F204BB /* NeighborhoodPostDeletedCell.xib */; }; @@ -764,6 +765,7 @@ 264C1AF729AD22AB0083F83E /* ReportChooseViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReportChooseViewCell.xib; sourceTree = ""; }; 264C1AF929AF52820083F83E /* HeaderReportView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HeaderReportView.xib; sourceTree = ""; }; 264C1AFB29AF5BED0083F83E /* HeaderReportView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderReportView.swift; sourceTree = ""; }; + 2684542B29DAC63700C944EA /* UniversalLinkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UniversalLinkManager.swift; sourceTree = ""; }; 268FCA292967281100159C34 /* MJAlertWithImageController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MJAlertWithImageController.swift; sourceTree = ""; }; 268FCA2B2967288100159C34 /* MJAlertWithImageController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MJAlertWithImageController.xib; sourceTree = ""; }; 26BC119829C88CD700F204BB /* NeighborhoodPostDeletedCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NeighborhoodPostDeletedCell.xib; sourceTree = ""; }; @@ -905,6 +907,7 @@ 021F084E2798113D00F32A34 /* LocationManager.swift */, 02E0098827E33DD200BB23CA /* WebLinkManager.swift */, 022DC3EC284790B000868760 /* AnalyticsLoggerManager.swift */, + 2684542B29DAC63700C944EA /* UniversalLinkManager.swift */, ); path = Managers; sourceTree = ""; @@ -2040,6 +2043,7 @@ 02CCE68A27D7B51E00D6976C /* CloseButton.swift in Sources */, 02E2192528355086002A1FCB /* NeighborhoodPostAddPhotoViewController.swift in Sources */, 02F578D1289AD4180040685C /* ActionSolicitationDetailHomeCell.swift in Sources */, + 2684542C29DAC63700C944EA /* UniversalLinkManager.swift in Sources */, 0224597427FF323600944DE4 /* NeighborhoodCreateNameCell.swift in Sources */, 02F5278527999B8F00929431 /* SolidarityGuideCell.swift in Sources */, 02DD1E9328086E6B00538EF4 /* NeighborhoodEditHeaderCell.swift in Sources */, diff --git a/entourage/AppDelegate.swift b/entourage/AppDelegate.swift index bd6da08b8..e8e65093d 100644 --- a/entourage/AppDelegate.swift +++ b/entourage/AppDelegate.swift @@ -100,40 +100,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { guard let incomingURL = userActivity.webpageURL else { return false } guard let components = URLComponents(url: incomingURL, resolvingAgainstBaseURL: true) else { return false } - // extract the path components from the incoming URL - let pathComponents = components.path.components(separatedBy: "/") - - // check if the incoming URL matches any of the URLs you want to handle - if components.host == "entourage-webapp-preprod.herokuapp.com" { - print("eho pathComponents " , pathComponents) - if pathComponents.contains("outings") && pathComponents.contains("chat_messages"){ - } - if pathComponents.contains("neighborhoods") && pathComponents.contains("chat_messages"){ - - } - if pathComponents.contains("conversations") && pathComponents.contains("chat_messages"){ - - } - if pathComponents.contains("outings") { - - } - if pathComponents.contains("neighborhoods") { - - } - if pathComponents.contains("conversations") { - - } - if pathComponents.contains("solicitations") { - - } - if pathComponents.contains("contributions") { - - } - if pathComponents.contains("resources") { - - } - - } + UniversalLinkManager.handleUniversalLink(components:components) return true } diff --git a/entourage/Assets/Localizable.strings b/entourage/Assets/Localizable.strings index 8987e42d3..088fef1bd 100644 --- a/entourage/Assets/Localizable.strings +++ b/entourage/Assets/Localizable.strings @@ -507,6 +507,7 @@ "params_about_privacy" = "Politique de Confidentialité"; "params_about_email" = "Contacter Entourage"; "params_about_licences" = "Licence open-source"; +"params_about_partner" = "Nos mécènes et partenaires"; "params_about_title" = "Aide et à propos"; //Settings Notifs @@ -518,6 +519,9 @@ "param_notifs_switch_actions" = "Notifications dons & service"; "param_notifs_validate" = "Appliquer les modifications"; +//NOTIF +"notif_contrib_title" = "Un voisin propose une nouvelle entraide. Peut-être que cela pourrait vous intéresser ?"; +"notif_solicitation_title" = "Un voisin recherche un équipement. Peut-être que vous pourriez l’aider ?"; //Detail user profile "detail_user_send_message" = "Écrire un message"; "detail_user_his_activity" = "Son activité"; diff --git a/entourage/Managers/DeeplinkManager.swift b/entourage/Managers/DeeplinkManager.swift index 9311fb8ed..eab87efbe 100644 --- a/entourage/Managers/DeeplinkManager.swift +++ b/entourage/Managers/DeeplinkManager.swift @@ -143,12 +143,15 @@ struct DeepLinkManager { } } + + static func showResource(id:Int) { if let vc = UIStoryboard.init(name: StoryboardName.main, bundle: nil).instantiateViewController(withIdentifier: "pedagoDetailVC") as? PedagogicDetailViewController { vc.resourceId = id AppState.getTopViewController()?.present(vc, animated: true) } } + static func showPartner(partnerId:Int) { if let navVc = UIStoryboard.init(name:StoryboardName.partnerDetails, bundle: nil).instantiateInitialViewController() as? UINavigationController, let vc = navVc.topViewController as? PartnerDetailViewController { @@ -168,6 +171,7 @@ struct DeepLinkManager { AppState.getTopViewController()?.present(navVC, animated: true) } } + static func showOuting(id:Int) { if let navVc = UIStoryboard.init(name: StoryboardName.event, bundle: nil).instantiateViewController(withIdentifier: "eventDetailNav") as? UINavigationController, let vc = navVc.topViewController as? EventDetailFeedViewController { @@ -178,6 +182,7 @@ struct DeepLinkManager { AppState.getTopViewController()?.present(navVc, animated: true) } } + static func showAction(id:Int,isContrib:Bool) { let sb = UIStoryboard.init(name: StoryboardName.actions, bundle: nil) @@ -188,7 +193,7 @@ struct DeepLinkManager { AppState.getTopViewController()?.present(navVc, animated: true) } } - + //TODO : display message from group static func showNeighborhoodDetailMessage(instanceId:Int, postId:Int) { @@ -203,8 +208,6 @@ struct DeepLinkManager { } } - - static func showEventDetailMessage(instanceId:Int, postId:Int) { let sb = UIStoryboard.init(name: StoryboardName.eventMessage, bundle: nil) if let vc = sb.instantiateViewController(withIdentifier: "detailMessagesVC") as? EventDetailMessagesViewController { @@ -216,6 +219,76 @@ struct DeepLinkManager { } } + + + //MARK: UNIVERSAL LINK REDIRECTION + + + static func showEventDetailMessageUniversalLink(instanceId:String, postId:String) { + let sb = UIStoryboard.init(name: StoryboardName.eventMessage, bundle: nil) + if let vc = sb.instantiateViewController(withIdentifier: "detailMessagesVC") as? EventDetailMessagesViewController { + vc.hashedEventId = postId + vc.hashedEventId = instanceId + vc.isStartEditing = false + vc.isGroupMember = true + AppState.getTopViewController()?.present(vc, animated: true) + } + } + static func showNeighborhoodDetailMessageUniversalLink(instanceId:String, postId:String) { + let sb = UIStoryboard.init(name: StoryboardName.neighborhoodMessage, bundle: nil) + if let vc = sb.instantiateViewController(withIdentifier: "detailMessagesVC") as? NeighborhoodDetailMessagesViewController { + vc.hashedParentCommentId = postId + vc.hashedNeighborhoodId = instanceId + vc.isStartEditing = false + vc.isGroupMember = true + AppState.getTopViewController()?.present(vc, animated: true) + + } + } + + static func showActionUniversalLink(id:String,isContrib:Bool) { + let sb = UIStoryboard.init(name: StoryboardName.actions, bundle: nil) + if let navVc = sb.instantiateViewController(withIdentifier: "actionDetailFullNav") as? UINavigationController, let vc = navVc.topViewController as? ActionDetailFullViewController { + vc.hashedActionId = id + vc.action = nil + vc.isContrib = isContrib + AppState.getTopViewController()?.present(navVc, animated: true) + } + } + + static func showOutingUniversalLink(id:String) { + if let navVc = UIStoryboard.init(name: StoryboardName.event, bundle: nil).instantiateViewController(withIdentifier: "eventDetailNav") as? UINavigationController, let vc = navVc.topViewController as? EventDetailFeedViewController { + vc.hashedEventId = id + vc.event = nil + vc.isAfterCreation = false + vc.modalPresentationStyle = .fullScreen + AppState.getTopViewController()?.present(navVc, animated: true) + } + } + static func showNeighborhoodDetailUniversalLink(id:String) { + let sb = UIStoryboard.init(name: StoryboardName.neighborhood, bundle: nil) + if let navVC = sb.instantiateViewController(withIdentifier: "neighborhoodDetailNav") as? UINavigationController, let vc = navVC.topViewController as? NeighborhoodDetailViewController { + vc.isAfterCreation = false + vc.hashedNeighborhoodId = id + vc.isShowCreatePost = false + vc.neighborhood = nil + AppState.getTopViewController()?.present(navVC, animated: true) + } + } + + static func showResourceUniversalLink(id:String) { + if let vc = UIStoryboard.init(name: StoryboardName.main, bundle: nil).instantiateViewController(withIdentifier: "pedagoDetailVC") as? PedagogicDetailViewController { + vc.hashdResourceId = id + AppState.getTopViewController()?.present(vc, animated: true) + } + } + static func showConversationUniversalLink(conversationId:String) { + if let vc = UIStoryboard.init(name: StoryboardName.messages, bundle: nil).instantiateViewController(withIdentifier: "detailMessagesVC") as? ConversationDetailMessagesViewController { + vc.setupFromOtherVCWithHash(conversationId: conversationId, title: nil, isOneToOne: true) + AppState.getTopViewController()?.present(vc, animated: true) + } + } + } enum RedirectionType { diff --git a/entourage/Managers/UniversalLinkManager.swift b/entourage/Managers/UniversalLinkManager.swift new file mode 100644 index 000000000..bf1b25222 --- /dev/null +++ b/entourage/Managers/UniversalLinkManager.swift @@ -0,0 +1,64 @@ +// +// UniversalLinkManager.swift +// entourage +// +// Created by Clement entourage on 03/04/2023. +// + +import Foundation + +struct UniversalLinkManager { + static func handleUniversalLink(components:URLComponents){ + + let pathComponents = components.path.components(separatedBy: "/") + if let queryItems = components.queryItems { + for queryItem in queryItems { + print("eho" + "\(queryItem.name): \(queryItem.value ?? "")") + } + } + + // check if the incoming URL matches any of the URLs you want to handle + if components.host == "entourage-webapp-preprod.herokuapp.com" { + print("eho pathComponents " , pathComponents) + + if pathComponents.contains("outings") && pathComponents.contains("chat_messages"){ + DeepLinkManager.showEventDetailMessageUniversalLink(instanceId: "AAAAA", postId: "AAAAA") + } + if pathComponents.contains("neighborhoods") && pathComponents.contains("chat_messages"){ + DeepLinkManager.showNeighborhoodDetailMessageUniversalLink(instanceId: "AAAAA", postId: "AAAAA") + + } + if pathComponents.contains("conversations") && pathComponents.contains("chat_messages"){ + DeepLinkManager.showConversationUniversalLink(conversationId: "AAAAA") + + } + if pathComponents.contains("outings") { + DeepLinkManager.showOutingUniversalLink(id: "AAAAA") + + } + if pathComponents.contains("neighborhoods") { + DeepLinkManager.showNeighborhoodDetailUniversalLink(id: "AAAAA") + + } + if pathComponents.contains("conversations") { + DeepLinkManager.showConversationUniversalLink(conversationId: "AAAAA") + + } + if pathComponents.contains("solicitations") { + DeepLinkManager.showActionUniversalLink(id: "AAAAA", isContrib: false) + + } + if pathComponents.contains("contributions") { + DeepLinkManager.showActionUniversalLink(id: "AAAAA", isContrib: true) + + } + if pathComponents.contains("resources") { + DeepLinkManager.showResourceUniversalLink(id: "AAAAA") + + } + + } + } +} + + diff --git a/entourage/Network Managers/Endpoints.swift b/entourage/Network Managers/Endpoints.swift index 964b30d47..d0692811a 100644 --- a/entourage/Network Managers/Endpoints.swift +++ b/entourage/Network Managers/Endpoints.swift @@ -134,6 +134,7 @@ let APPSTORE_URL = "https://apps.apple.com/fr/app/entourage-reseau-solidaire/id1 let AMBASSADOR_URL = "https://www.entourage.social/devenir-ambassadeur/?utm_source=app&utm_medium=app" let CHARTE_URL = "https://blog.entourage.social/charte-ethique-grand-public/" let MENU_LICENSES_URL = "https://www.entourage.social" +let PARTNER_URL = "https://www.entourage.social/mecenes-et-partenaires/" let MENU_SUGGEST_URL = "https://entourage-asso.typeform.com/to/NRhT8vmj" //Menu Links diff --git a/entourage/Scenes/Actions/ActionDetailFullViewController.swift b/entourage/Scenes/Actions/ActionDetailFullViewController.swift index 2699a5f04..8c8951094 100644 --- a/entourage/Scenes/Actions/ActionDetailFullViewController.swift +++ b/entourage/Scenes/Actions/ActionDetailFullViewController.swift @@ -33,6 +33,7 @@ class ActionDetailFullViewController: UIViewController { var action:Action? = nil var actionId = 0 + var hashedActionId = "" var isContrib = false var parentVC:UIViewController? = nil diff --git a/entourage/Scenes/Conversations/ConversationDetailMessagesViewController.swift b/entourage/Scenes/Conversations/ConversationDetailMessagesViewController.swift index b5e0d0120..72ab8b133 100644 --- a/entourage/Scenes/Conversations/ConversationDetailMessagesViewController.swift +++ b/entourage/Scenes/Conversations/ConversationDetailMessagesViewController.swift @@ -38,6 +38,7 @@ class ConversationDetailMessagesViewController: UIViewController { private var conversationId:Int = 0 + private var hashedConversationId:String = "" private var currentMessageTitle:String? = nil private var currentUserId:Int = 0 private var hasToShowFirstMessage = false @@ -162,6 +163,19 @@ class ConversationDetailMessagesViewController: UIViewController { } + func setupFromOtherVCWithHash(conversationId:String,title:String?,isOneToOne:Bool,conversation:Conversation? = nil, delegate:UpdateUnreadCountDelegate? = nil, selectedIndexPath:IndexPath? = nil) { + self.parentDelegate = delegate + self.selectedIndexPath = selectedIndexPath + + self.hashedConversationId = conversationId + self.currentMessageTitle = title + + self.isOneToOne = isOneToOne + self.hasToShowFirstMessage = conversation?.hasToShowFirstMessage() ?? false + self.currentUserId = conversation?.user?.uid ?? 0 + + } + //MARK: Use to show/hide view new conversation ;) func checkNewConv() { if !isOneToOne {return} diff --git a/entourage/Scenes/Events/EventDetailFeedViewController.swift b/entourage/Scenes/Events/EventDetailFeedViewController.swift index a26150bbd..cef8bbfc2 100644 --- a/entourage/Scenes/Events/EventDetailFeedViewController.swift +++ b/entourage/Scenes/Events/EventDetailFeedViewController.swift @@ -49,6 +49,7 @@ class EventDetailFeedViewController: UIViewController { var messagesNew = [PostMessage]() var messagesOld = [PostMessage]() var eventId:Int = 0 + var hashedEventId:String = "" var event:Event? = nil var hasNewAndOldSections = false diff --git a/entourage/Scenes/Events/EventDetailMessagesViewController.swift b/entourage/Scenes/Events/EventDetailMessagesViewController.swift index 5678c7dd7..073bc5770 100644 --- a/entourage/Scenes/Events/EventDetailMessagesViewController.swift +++ b/entourage/Scenes/Events/EventDetailMessagesViewController.swift @@ -27,7 +27,9 @@ class EventDetailMessagesViewController: UIViewController { @IBOutlet var ui_tap_gesture: UITapGestureRecognizer! var eventId:Int = 0 + var hashedEventId:String = "" var parentCommentId:Int = 0 + var hashedCommentId:String = "" var eventName = "" var isGroupMember = false diff --git a/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailMessagesViewController.swift b/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailMessagesViewController.swift index 6e8310216..2f1d74cac 100644 --- a/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailMessagesViewController.swift +++ b/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailMessagesViewController.swift @@ -27,7 +27,9 @@ class NeighborhoodDetailMessagesViewController: UIViewController { @IBOutlet weak var ui_title_empty: UILabel! @IBOutlet var ui_tap_gesture: UITapGestureRecognizer! + var hashedNeighborhoodId:String = "" var neighborhoodId:Int = 0 + var hashedParentCommentId:String = "" var parentCommentId:Int = 0 var neighborhoodName = "" var isGroupMember = false diff --git a/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailViewController.swift b/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailViewController.swift index 887a9c381..20cd9c283 100644 --- a/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailViewController.swift +++ b/entourage/Scenes/Groups - Neighborhoods/NeighborhoodDetailViewController.swift @@ -35,6 +35,7 @@ class NeighborhoodDetailViewController: UIViewController { var messagesNew = [PostMessage]() var messagesOld = [PostMessage]() var neighborhoodId:Int = 0 + var hashedNeighborhoodId:String = "" var neighborhood:Neighborhood? = nil var hasNewAndOldSections = false diff --git a/entourage/Scenes/Home/NotifInAppCell.swift b/entourage/Scenes/Home/NotifInAppCell.swift index 13d5f3848..0543b4960 100644 --- a/entourage/Scenes/Home/NotifInAppCell.swift +++ b/entourage/Scenes/Home/NotifInAppCell.swift @@ -25,8 +25,34 @@ class NotifInAppCell: UITableViewCell { ui_image.layer.cornerRadius = ui_image.frame.width / 2 } - func populateCell(title:String? ,date:String ,imageUrl:String?, isUnread:Bool, instanceString : InstanceType) { - ui_title.text = title + func populateCell(title:String ,content:String ,date:String ,imageUrl:String?, isUnread:Bool, instanceString : InstanceType) { + + var titleText = title + let contentText = content + if instanceString == .contributions { + titleText = "notif_contrib_title".localized + }else if instanceString == .solicitations{ + titleText = "notif_solicitation_title".localized + }else if true { + //HERE CHANGE TITRE NOTIF BY NOTIF TITLE + } + + // Crée un objet NSMutableAttributedString pour construire le texte final + let attributedString = NSMutableAttributedString(string: "\(titleText) \(contentText)") + + // Définit le style du texte en gras + let boldAttributes: [NSAttributedString.Key: Any] = [ + .font: UIFont.boldSystemFont(ofSize: 15) + ] + + // Applique le style gras à la plage de texte sélectionnée + attributedString.addAttributes(boldAttributes, range: NSRange(location: 0, length: titleText.count)) + + let finalAttributedString = NSAttributedString(attributedString: attributedString) + + // Affiche le texte dans le UILabel + ui_title.attributedText = attributedString + //ui_title.text = title ui_date.text = date if let imageUrl = imageUrl, let url = URL(string: imageUrl) { ui_image.sd_setImage(with: url, placeholderImage:UIImage(named: DeepLinkManager.setImage(notificationInstanceType: instanceString))) diff --git a/entourage/Scenes/Home/NotificationsInAppViewController.swift b/entourage/Scenes/Home/NotificationsInAppViewController.swift index 796472b4d..9b9691ca9 100644 --- a/entourage/Scenes/Home/NotificationsInAppViewController.swift +++ b/entourage/Scenes/Home/NotificationsInAppViewController.swift @@ -101,8 +101,10 @@ extension NotificationsInAppViewController: UITableViewDataSource, UITableViewDe let notif = self.notifications[indexPath.row] let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! NotifInAppCell - cell.populateCell(title: notif.content, date: notif.getDurationFromNow(), imageUrl: notif.imageUrl, isUnread: notif.isRead(), instanceString: notif.getNotificationPushData().instanceType) - + if let _content = notif.content { + cell.populateCell(title :"", content: _content, date: notif.getDurationFromNow(), imageUrl: notif.imageUrl, isUnread: notif.isRead(), instanceString: notif.getNotificationPushData().instanceType) + } + return cell } diff --git a/entourage/Scenes/Home/Pedagogic/PedagogicDetailViewController.swift b/entourage/Scenes/Home/Pedagogic/PedagogicDetailViewController.swift index f06a55ac7..4e5f0ff72 100644 --- a/entourage/Scenes/Home/Pedagogic/PedagogicDetailViewController.swift +++ b/entourage/Scenes/Home/Pedagogic/PedagogicDetailViewController.swift @@ -15,6 +15,7 @@ class PedagogicDetailViewController: UIViewController, WKUIDelegate { @IBOutlet weak var ui_indicator: UIActivityIndicatorView! var urlWebview:String? = "" var resourceId:Int? = nil + var hashdResourceId:String? = "" var isRead = false var htmlBody:String? = nil diff --git a/entourage/Scenes/Profile/ParamsAboutViewController.swift b/entourage/Scenes/Profile/ParamsAboutViewController.swift index 8bd7b737c..500ec82e0 100644 --- a/entourage/Scenes/Profile/ParamsAboutViewController.swift +++ b/entourage/Scenes/Profile/ParamsAboutViewController.swift @@ -16,6 +16,7 @@ class ParamsAboutViewController: BasePopViewController { //MARK: - Constants for menu - let arrayMenuItems = [ MenuItemInfos(title:"params_about_charte",url:CHARTE_URL), + MenuItemInfos(title:"params_about_partner",url:PARTNER_URL, openInApp: false), MenuItemInfos(title:"params_about_faq",slug:MENU_ABOUT_SLUG_FAQ), MenuItemInfos(title:"params_about_email",email:emailContact), MenuItemInfos(title:"params_about_gift",slug:MENU_ABOUT_SLUG_GIFT), @@ -24,6 +25,8 @@ class ParamsAboutViewController: BasePopViewController { MenuItemInfos(title:"params_about_cgu",slug:MENU_ABOUT_SLUG_CGU), MenuItemInfos(title: "params_about_privacy",slug: MENU_ABOUT_SLUG_PRIVACY), MenuItemInfos(title:"params_about_licences",url:MENU_LICENSES_URL, openInApp: false) + + ] override func viewDidLoad() { diff --git a/entourage/Storyboards/ProfileParams.storyboard b/entourage/Storyboards/ProfileParams.storyboard index 14a0f349e..22826027c 100644 --- a/entourage/Storyboards/ProfileParams.storyboard +++ b/entourage/Storyboards/ProfileParams.storyboard @@ -1,9 +1,9 @@ - + - + @@ -1614,7 +1614,7 @@ - + @@ -1733,22 +1733,22 @@ - + - + - + @@ -1758,14 +1758,14 @@ - + - +