url encode ksv
by slawe
CoffeeScript
urlEncode = (str) ->
str = escape(str)
str.replace /[*+\/@]|%20/g, (s) ->
switch s
when '*'
s = '%2A'
when '+'
s = '%2B'
when '/'
s = '%2F'
when '@'
s = '%40'
when ' '
s = '%20'
s
generateUrl = (base, campaign, cid) ->
console.log(campaign)
tags = ''
keywords = ''
if campaign.keywords instanceof Array
#console.log(campaign.keywords)
angular.forEach campaign.keywords, ((keywordsObject) ->
console.log(keywordsObject.text)
keywords += keywordsObject.text + " "
)
keywords = keywords.substring(0, keywords.length - 1);
else
keywords = campaign.keywords
if typeof cid == "undefined"
url = base + campaign.campaign_id
else
url = base + cid
url = url + "/?"
url = url + "utm_source="+campaign.source.toLowerCase()+"&"
url = url + "utm_medium="+campaign.medium.toLowerCase()+"&"
url = url + "utm_term="+urlEncode(keywords.toLowerCase())+"&"
url = url + "utm_content="+urlEncode(campaign.content.toLowerCase())+"&"
url = url + "utm_campaign="+urlEncode(campaign.name.toLowerCase())
return url
bs = 'http://slawe.org/cap/'
id = 87
obj = {}
obj.campaignInfo = {
name: 'SOME cap Name'
theme: 'rdn-default'
description: 'small text description...'
url: 'http://slawe.org'
startDate: '02/18/2016'
endDate: '02/28/2016'
source: 'Facebook'
tagging: 'manual tagging'
velocifyId: '087'
keywords: [
{text: 'oNe'}
{text: 'two'}
{text: 'THREE'}
]
medium: 'email'
content: 'some TEST content here.'
pages: []
}
console.log(generateUrl(bs, obj.campaignInfo, id))