mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-05 20:12:19 +00:00
Merge branch 'master' of github.com:lefnire/habitrpg into ui-tweaks
This commit is contained in:
commit
a4efbe34df
15 changed files with 683 additions and 598 deletions
28
migrations/20130307_remove_duff_histories.js
Normal file
28
migrations/20130307_remove_duff_histories.js
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* Remove duff histories for dailies
|
||||
*/
|
||||
// mongo habitrpg ./node_modules/underscore/underscore.js ./migrations/20130307_remove_duff_histories.js
|
||||
db.users.find().forEach(function(user){
|
||||
|
||||
|
||||
_.each(user.tasks, function(task, key){
|
||||
if (task.type === "daily") {
|
||||
// remove busted history entries
|
||||
task.history = _.filter(task.history, function(h){return !!h.value})
|
||||
}
|
||||
});
|
||||
|
||||
try {
|
||||
db.users.update(
|
||||
{_id:user._id},
|
||||
{$set:
|
||||
{
|
||||
'tasks' : user.tasks
|
||||
}
|
||||
},
|
||||
{multi:true}
|
||||
);
|
||||
} catch(e) {
|
||||
print(e);
|
||||
}
|
||||
})
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
"version": "0.0.0-150",
|
||||
"main": "./server.js",
|
||||
"dependencies": {
|
||||
"derby": "git://github.com/lefnire/derby#habitrpg",
|
||||
"derby": "git://github.com/Unroll-Me/derby#master",
|
||||
"racer": "git://github.com/lefnire/racer#habitrpg",
|
||||
"racer-db-mongo": "git://github.com/lefnire/racer-db-mongo#habitrpg",
|
||||
"derby-ui-boot": "git://github.com/codeparty/derby-ui-boot#master",
|
||||
|
|
|
|||
BIN
public/img/sprites/Egg_Sprite_Sheet.png
Normal file
BIN
public/img/sprites/Egg_Sprite_Sheet.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
17
public/img/sprites/PetEggs.css
Normal file
17
public/img/sprites/PetEggs.css
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#PetEggs {
|
||||
/* egg sprite size */
|
||||
width: 48px;
|
||||
height: 51px;
|
||||
/* link to sprite sheet image */
|
||||
background-image: url(Egg_Sprite_Sheet.png);
|
||||
}
|
||||
/* defines where in the sheet the eggs are */
|
||||
.WolfEgg{background-position: 0px 0px;}
|
||||
.TigerEgg{background-position: 0px -51px;}
|
||||
.PolarBearEgg{background-position: 0px -102px;}
|
||||
.PandaEgg{background-position: 0px -153px;}
|
||||
.LionEgg{background-position: 0px -204px;}
|
||||
.FlyingPigEgg{background-position: 0px -255px;}
|
||||
.DrakeEgg{background-position: 0px -306px;}
|
||||
.CactusEgg{background-position: 0px -357px;}
|
||||
.BearEgg{background-position: 0px -408px;}
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
<div class='jumbotron masthead'>
|
||||
<div class='container'>
|
||||
<h1><img src="/img/logo/habitrpg_pixel.png" alt="HabitRPG"/></h1>
|
||||
<p>Habit tracking which treats your goals like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.</p>
|
||||
<p>A habit building program which treats your life like a Role Playing Game. Level up as you succeed, lose HP as you fail, earn money to buy weapons and armor.</p>
|
||||
<a href="/?play=1" class='btn btn-primary btn-small'>Play</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -82,29 +82,29 @@
|
|||
<div class="page-header">
|
||||
<h1>Habits</h1>
|
||||
</div>
|
||||
<p class="lead">Habits are goals that you constantly track. For some habits, it only makes sense to gain points (eg, "1h Productive Work"). For others, it only makes sense to lose points (like "Eat Junk Food"). For the rest, both gain and loss apply (eg, for "Take The Stairs", stairs is a gain, elevator is a loss).</p>
|
||||
<p class="lead">Habits are situational goals that you constantly track. You can either try to break bad habits or reinforce good ones. You may encounter some habits multiple times a day (like "Floss After Eating"), and some you may not encounter often at all (like "Replace the Toilet Paper When it Runs Out"). For some habits, it only makes sense to gain points (like "Do One Hour of Productive Work"). For others, it only makes sense to lose points (like "Eat Junk Food"). For the rest, both gain and loss apply (like for "Take The Stairs", taking the stairs would be a gain while taking the elevator would be a loss).</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<div class="page-header">
|
||||
<h1>Dailies</h1>
|
||||
</div>
|
||||
<p class="lead">Dailies are goals that you want to complete once a day. At the end of each day, non-completed Dailies dock you points. If you are doing well, they turn green and are less valuable (experience, gold) and less damaging (HP). This means you can ease up on them for a bit. But if you are doing poorly, they turn red. The worse you do, the more valuable (exp, gold) and more damaging (HP) these goals become. This encourages you to focus on your shortcomings, the reds.</p>
|
||||
<p class="lead">Dailies are goals that you want to complete once a day, building them into your routine (like "Workout for 30 Minutes"). Unlike Habits, Dailies may only be checked off once a day. Also unlike habits, at the end of each day non-completed Dailies will cause damage, making you lose Hit Points. If you are doing well and consistantly check off a Daily day after day, it will turn green and earn less gold and experience, though it will also cause you to lose fewer Hit Points if you skip it. This means you can ease up on it for a bit. Conversely, if you are doing poorly and fail to check something off every day, it will turn red. The worse you do, the more experience and gold that Daily is worth and the more hit points it takes away if left uncompleted. This encourages you to focus on your shortcomings, the reds. Oh, and don't worry. You can make a Daily active only for certain days of the week, so weekday tasks won't pester you on the weekends. Or you can make a Daily active only on Mondays, thus creating a weekly task.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<div class="page-header">
|
||||
<h1>Todos</h1>
|
||||
</div>
|
||||
<p class="lead">Todos are one-off goals which need to be completed eventually. Non-completed Todos won’t hurt you, but they will become more valuable over time. This will encourage you to wrap up stale Todos.</p>
|
||||
<p class="lead">Todos are one-time goals which need to be completed eventually (like "Wash the car" or "Buy milk"). Non-completed Todos won’t hurt you, but they will become more valuable over time. This will encourage you to wrap up stale Todos.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<div class="page-header">
|
||||
<h1>Rewards</h1>
|
||||
</div>
|
||||
<p class='lead'>As you complete goals, you earn gold to buy rewards. Buy them liberally - rewards are integral in forming good habits. But only buy if you have enough gold - you lose HP otherwise.</p>
|
||||
<p class='lead'>After you’ve played for a while, you unlock the <strong>Item Store</strong> under the rewards column. You can now buy weapons, armor, potions, etc. Armor decreases HP loss (by an increasing amount wich each upgrade). Weapons increase experience gain. Potions recover 15 HP.</p>
|
||||
<p class='lead'>As you complete goals, you earn gold to buy rewards that you create (like "An Hour of Video Games"). Create plenty of rewards and buy them liberally! Rewarding good performance is the best way to reinforce good habits. If you really need a reward but don't have enough gold, you can still make a purchase. But be careful because it will cost you Hit Points!</p>
|
||||
<p class='lead'>After you’ve reached level 2, you unlock the <strong>Item Store</strong> under the rewards column. You can now buy weapons, armor, and potions. Armor keeps you protected by reducing how much damage you take from failed tasks. Weapons increase how much experience you gain for completing a task. Potions recover 15 HP, for when you've piled just a little too much onto your schedule.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ module.exports.tnl = (level) ->
|
|||
{priority} user-defined priority multiplier
|
||||
###
|
||||
module.exports.expModifier = (value, weaponStr, level, priority='!') ->
|
||||
str = (level-1) * 2 # ultimately get this from user
|
||||
str = (level-1) / 2 # ultimately get this from user
|
||||
totalStr = (str + weaponStr) / 100
|
||||
strMod = 1 + totalStr
|
||||
exp = value * XP * strMod * priorityValue(priority)
|
||||
|
|
@ -38,7 +38,7 @@ module.exports.expModifier = (value, weaponStr, level, priority='!') ->
|
|||
{priority} user-defined priority multiplier
|
||||
###
|
||||
module.exports.hpModifier = (value, armorDef, helmDef, shieldDef, level, priority='!') ->
|
||||
def = (level-1) * 2 # ultimately get this from user?
|
||||
def = (level-1) / 2 # ultimately get this from user?
|
||||
totalDef = (def + armorDef + helmDef + shieldDef) / 100 #ultimate get this from user
|
||||
defMod = 1 - totalDef
|
||||
hp = value * HP * defMod * priorityValue(priority)
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ setupGrowlNotifications = (model) ->
|
|||
# unless silent
|
||||
num = captures - args
|
||||
rounded = Math.abs(num.toFixed(1))
|
||||
if num < 0 and num > -100 # TODO fix hackey negative notification supress
|
||||
if num < 0 and num > -50 # TODO fix hackey negative notification supress
|
||||
statsNotification "<i class='icon-star'></i> - #{rounded} XP", 'xp'
|
||||
else if num > 0
|
||||
statsNotification "<i class='icon-star'></i> + #{rounded} XP", 'xp'
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ score = (model, taskId, direction, times, batch, cron) ->
|
|||
addPoints = ->
|
||||
level = user.get('stats.lvl')
|
||||
weaponStrength = items.items.weapon[user.get('items.weapon')].strength
|
||||
exp += algos.expModifier(delta,weaponStrength,level, priority)
|
||||
exp += algos.expModifier(delta,weaponStrength,level, priority) / 2 # / 2 hack for now bcause people leveling too fast
|
||||
gp += algos.gpModifier(delta, 1, priority)
|
||||
|
||||
subtractPoints = ->
|
||||
|
|
@ -220,7 +220,7 @@ cron = (model) ->
|
|||
batch.set "tasks.#{taskObj.id}.value", newValue
|
||||
|
||||
taskObj.history ?= []
|
||||
taskObj.history.push { date: +new Date, value: value }
|
||||
taskObj.history.push { date: +new Date, value: taskObj.value }
|
||||
batch.set "tasks.#{taskObj.id}.history", taskObj.history
|
||||
batch.set "tasks.#{taskObj.id}.completed", false
|
||||
else
|
||||
|
|
@ -229,7 +229,7 @@ cron = (model) ->
|
|||
todoTally += absVal
|
||||
else if type is 'habit' # slowly reset 'onlies' value to 0
|
||||
if taskObj.up==false or taskObj.down==false
|
||||
if Math.abs(taskObj.value) < 0.02
|
||||
if Math.abs(taskObj.value) < 0.1
|
||||
batch.set "tasks.#{taskObj.id}.value", 0
|
||||
else
|
||||
batch.set "tasks.#{taskObj.id}.value", taskObj.value / 2
|
||||
|
|
|
|||
|
|
@ -14,14 +14,20 @@ module.exports.view = (view) ->
|
|||
else
|
||||
classes += " uncompleted"
|
||||
|
||||
switch
|
||||
when value<-20 then classes += ' color-worst'
|
||||
when value>=-20 and value<-10 then classes += ' color-worse'
|
||||
when value>=-10 and value<-1 then classes += ' color-bad'
|
||||
when value>=-1 and value<1 then classes += ' color-neutral'
|
||||
when value>=1 and value<5 then classes += ' color-good'
|
||||
when value>=5 and value<10 then classes += ' color-better'
|
||||
when value>=10 then classes += ' color-best'
|
||||
if value < -20
|
||||
classes += ' color-worst'
|
||||
else if value < -10
|
||||
classes += ' color-worse'
|
||||
else if value < -1
|
||||
classes += ' color-bad'
|
||||
else if value < 1
|
||||
classes += ' color-neutral'
|
||||
else if value < 5
|
||||
classes += ' color-good'
|
||||
else if value < 10
|
||||
classes += ' color-better'
|
||||
else
|
||||
classes += ' color-best'
|
||||
return classes
|
||||
|
||||
module.exports.app = (appExports, model) ->
|
||||
|
|
@ -135,9 +141,9 @@ module.exports.app = (appExports, model) ->
|
|||
data = google.visualization.arrayToDataTable matrix
|
||||
|
||||
options = {
|
||||
title: 'History'
|
||||
#TODO use current background color: $(el).css('background-color), but convert to hex (see http://goo.gl/ql5pR)
|
||||
backgroundColor: 'whiteSmoke'
|
||||
title: 'History'
|
||||
#TODO use current background color: $(el).css('background-color), but convert to hex (see http://goo.gl/ql5pR)
|
||||
backgroundColor: 'whiteSmoke'
|
||||
}
|
||||
|
||||
chart = new google.visualization.LineChart(document.getElementById( chartSelector ))
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ validateTask = (req, res, next) ->
|
|||
newTask = { type, text, notes, value, up, down, completed } = req.body
|
||||
|
||||
# If we're updating, get the task from the user
|
||||
if req.method is 'PUT'
|
||||
if req.method is 'PUT' or req.method is 'DELETE'
|
||||
task = req.userObj?.tasks[req.params.id]
|
||||
return res.json 400, err: "No task found." if !task || _.isEmpty(task)
|
||||
# Strip for now
|
||||
|
|
@ -90,6 +90,15 @@ router.put '/user/task/:id', auth, validateTask, (req, res) ->
|
|||
|
||||
res.json 200, req.task
|
||||
|
||||
router.delete '/user/task/:id', auth, validateTask, (req, res) ->
|
||||
taskIds = req.user.get "#{req.task.type}Ids"
|
||||
|
||||
req.user.del "tasks.#{req.task.id}"
|
||||
# Remove one id from array of typeIds
|
||||
req.user.remove "#{req.task.type}Ids", taskIds.indexOf(req.task.id), 1
|
||||
|
||||
res.send 204
|
||||
|
||||
router.post '/user/task', auth, validateTask, (req, res) ->
|
||||
task = req.task
|
||||
type = task.type
|
||||
|
|
@ -156,4 +165,3 @@ router.post '/user/tasks/:taskId/:direction', auth, scoreTask
|
|||
module.exports = router
|
||||
module.exports.auth = auth
|
||||
module.exports.scoreTask = scoreTask # export so deprecated can call it
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ module.exports.allowCrossDomain = (req, res, next) ->
|
|||
res.header "Access-Control-Allow-Methods", "OPTIONS,GET,POST,PUT,HEAD,DELETE"
|
||||
res.header "Access-Control-Allow-Headers", "Content-Type,X-Requested-With,x-api-user,x-api-key"
|
||||
|
||||
# wtf is this for?
|
||||
if req.method is 'OPTIONS'
|
||||
res.send(200);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ userAccess = (store) ->
|
|||
###
|
||||
REST = (store) ->
|
||||
store.query.expose "users", "withIdAndToken", (uid, token) ->
|
||||
@byId(uid)
|
||||
@where("id").equals(uid)
|
||||
.where('apiToken').equals(token)
|
||||
.findOne()
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ conf.argv().env().file({file: __dirname + '../config.json'}).defaults
|
|||
process.env.BASE_URL = conf.get("BASE_URL")
|
||||
process.env.FACEBOOK_KEY = conf.get("FACEBOOK_KEY")
|
||||
process.env.FACEBOOK_SECRET = conf.get("FACEBOOK_SECRET")
|
||||
process.env.NODE_DB_URI = 'mongodb://localhost/habirpg'
|
||||
process.env.NODE_DB_URI = 'mongodb://localhost/habitrpg'
|
||||
|
||||
## monkey-patch expect.js for better diffs on mocha
|
||||
## see: https://github.com/LearnBoost/expect.js/pull/34
|
||||
|
|
@ -245,3 +245,29 @@ describe 'API', ->
|
|||
# Ensure that the two sets are equal
|
||||
expect(_.difference(_.pluck(res.body,'id'), _.pluck(tasks,'id')).length).to.equal 0
|
||||
done()
|
||||
|
||||
it 'DELETE /api/v1/user/task/:id', (done) ->
|
||||
tid = currentUser.habitIds[2]
|
||||
request.del("#{baseURL}/user/task/#{tid}")
|
||||
.set('Accept', 'application/json')
|
||||
.set('X-API-User', currentUser.id)
|
||||
.set('X-API-Key', currentUser.apiToken)
|
||||
.end (res) ->
|
||||
expect(res.body.err).to.be undefined
|
||||
expect(res.statusCode).to.be 204
|
||||
query = model.query('users').withIdAndToken(currentUser.id, currentUser.apiToken)
|
||||
query.fetch (err, user) ->
|
||||
expect(user.get('habitIds').indexOf(tid)).to.be -1
|
||||
expect(user.get("tasks.#{tid}")).to.be undefined
|
||||
done()
|
||||
|
||||
it 'DELETE /api/v1/user/task/:id (no task found)', (done) ->
|
||||
tid = "adsfasdfjunkshouldntbeatask"
|
||||
request.del("#{baseURL}/user/task/#{tid}")
|
||||
.set('Accept', 'application/json')
|
||||
.set('X-API-User', currentUser.id)
|
||||
.set('X-API-Key', currentUser.apiToken)
|
||||
.end (res) ->
|
||||
expect(res.statusCode).to.be 400
|
||||
expect(res.body.err).to.be 'No task found.'
|
||||
done()
|
||||
|
|
|
|||
|
|
@ -13,308 +13,307 @@
|
|||
<p>
|
||||
<strong>PLEASE READ THIS PRIVACY POLICY CAREFULLY.</strong>
|
||||
<br>
|
||||
By accessing
|
||||
or otherwise using habitrpg.com or any sub domains thereto ("the Sites"),
|
||||
or using a habitrpg.com or HabitRPG application on a mobile device ("the Applications"),
|
||||
you agree to be bound contractually by this Privacy Policy. Individually
|
||||
or collectively, the Applications and the Sites may be referred to as
|
||||
By accessing or otherwise using habitrpg.com or any sub domains thereto ("the Sites"),
|
||||
or using a habitrpg.com or HabitRPG application on a mobile device ("the Applications"),
|
||||
you agree to be bound contractually by this Privacy Policy. Individually
|
||||
or collectively, the Applications and the Sites may be referred to as
|
||||
the "Services."
|
||||
</p>
|
||||
<p>
|
||||
To review material modifications and their effective dates scroll
|
||||
To review material modifications and their effective dates scroll
|
||||
to the bottom of the page.
|
||||
</p>
|
||||
<p>
|
||||
<strong> 1. Privacy Statement; Collection of Personal
|
||||
<strong> 1. Privacy Statement; Collection of Personal
|
||||
Information. </strong>
|
||||
<br>
|
||||
1.1 OCDevel owns and operates this business. All
|
||||
1.1 OCDevel owns and operates this business. All
|
||||
references to "we", "us", shall be construed to mean OCDevel.
|
||||
</p>
|
||||
<p>
|
||||
1.2 We understand that visitors to this website are concerned
|
||||
about the privacy of information. The following describes our privacy
|
||||
policy regarding information, including personal information, that we
|
||||
1.2 We understand that visitors to this website are concerned
|
||||
about the privacy of information. The following describes our privacy
|
||||
policy regarding information, including personal information, that we
|
||||
collect through this website.
|
||||
</p>
|
||||
<p>
|
||||
<strong>2. Modification of Privacy Policy.</strong>
|
||||
<br>
|
||||
We reserve the right to modify this Privacy Policy at any time,
|
||||
and without prior notice, by posting an amended Privacy Policy that is
|
||||
always accessible by clicking on the "Privacy Policy" link on this
|
||||
site's home page. Your continued use of this site indicates your
|
||||
acceptance of the amended Privacy Policy. You should check the Privacy
|
||||
Policy through this link periodically for modifications by clicking on
|
||||
the link provided near the top of the Privacy Policy for a listing of
|
||||
material modifications and their effective dates. Regarding personal
|
||||
information, if any modifications are materially less restrictive on our
|
||||
use or disclosure of the personal information previously disclosed by
|
||||
you, we will obtain your consent before implementing such revisions with
|
||||
We reserve the right to modify this Privacy Policy at any time,
|
||||
and without prior notice, by posting an amended Privacy Policy that is
|
||||
always accessible by clicking on the "Privacy Policy" link on this
|
||||
site's home page. Your continued use of this site indicates your
|
||||
acceptance of the amended Privacy Policy. You should check the Privacy
|
||||
Policy through this link periodically for modifications by clicking on
|
||||
the link provided near the top of the Privacy Policy for a listing of
|
||||
material modifications and their effective dates. Regarding personal
|
||||
information, if any modifications are materially less restrictive on our
|
||||
use or disclosure of the personal information previously disclosed by
|
||||
you, we will obtain your consent before implementing such revisions with
|
||||
respect to such information.
|
||||
</p>
|
||||
<p>
|
||||
<strong>3. Collection of Anonymous, Passive Information.</strong>
|
||||
<br>
|
||||
We reserve the right to monitor your use of the services. As you
|
||||
navigate through the services, certain anonymous information may be
|
||||
passively collected (that is, gathered without your actively providing
|
||||
the information) using various technologies, such as cookies, Internet
|
||||
tags or web beacons, and navigational data collection (log files, server
|
||||
logs, clickstream). The following is a listing and a brief explanation
|
||||
of passive information collection methodologies which we may use from
|
||||
We reserve the right to monitor your use of the services. As you
|
||||
navigate through the services, certain anonymous information may be
|
||||
passively collected (that is, gathered without your actively providing
|
||||
the information) using various technologies, such as cookies, Internet
|
||||
tags or web beacons, and navigational data collection (log files, server
|
||||
logs, clickstream). The following is a listing and a brief explanation
|
||||
of passive information collection methodologies which we may use from
|
||||
time to time to better understand how the Services are being used.
|
||||
</p>
|
||||
<p>
|
||||
3.1 A "cookie" is a text file that this site sends to your
|
||||
browser in the form of a text file The information generated by the
|
||||
cookie about your use of this site (including your IP address) will be
|
||||
transmitted to and stored. Most browsers automatically accept cookies,
|
||||
but they usually can be modified to decline cookies if you prefer;
|
||||
however, certain features of this site might not work without cookies.
|
||||
3.1 A "cookie" is a text file that this site sends to your
|
||||
browser in the form of a text file The information generated by the
|
||||
cookie about your use of this site (including your IP address) will be
|
||||
transmitted to and stored. Most browsers automatically accept cookies,
|
||||
but they usually can be modified to decline cookies if you prefer;
|
||||
however, certain features of this site might not work without cookies.
|
||||
</p>
|
||||
<p>
|
||||
3.2 "Session" cookies are temporary bits of information that are
|
||||
used to improve navigation, block visitors from providing information
|
||||
where inappropriate (the Services "remembers" previous entries of age or
|
||||
country of origin that were outside the specified parameters and blocks
|
||||
subsequent changes), and collect aggregate statistical information on
|
||||
the Services. They are erased once you exit your Web browser or
|
||||
3.2 "Session" cookies are temporary bits of information that are
|
||||
used to improve navigation, block visitors from providing information
|
||||
where inappropriate (the Services "remembers" previous entries of age or
|
||||
country of origin that were outside the specified parameters and blocks
|
||||
subsequent changes), and collect aggregate statistical information on
|
||||
the Services. They are erased once you exit your Web browser or
|
||||
otherwise turn off your computer.
|
||||
</p>
|
||||
<p>
|
||||
3.3 "Persistent" cookies are more permanent bits of information
|
||||
that are placed on the hard drive of your computer and stay there unless
|
||||
you delete the cookie. Persistent cookies store information on your
|
||||
computer for a number of purposes, such as retrieving certain
|
||||
information you have previously provided, helping to determine what
|
||||
areas of the Services you may find most valuable, and customizing the
|
||||
Services based on your preferences on an ongoing basis. Persistent
|
||||
cookies placed by this site in your computer do not hold personal
|
||||
3.3 "Persistent" cookies are more permanent bits of information
|
||||
that are placed on the hard drive of your computer and stay there unless
|
||||
you delete the cookie. Persistent cookies store information on your
|
||||
computer for a number of purposes, such as retrieving certain
|
||||
information you have previously provided, helping to determine what
|
||||
areas of the Services you may find most valuable, and customizing the
|
||||
Services based on your preferences on an ongoing basis. Persistent
|
||||
cookies placed by this site in your computer do not hold personal
|
||||
information.
|
||||
</p>
|
||||
<p>
|
||||
3.4 You can set your browser to accept all cookies, to reject all
|
||||
cookies, or to notify you whenever a cookie is offered so that you can
|
||||
decide each time whether to accept it. To learn more about cookies and
|
||||
how to specify your preferences, please search for "cookie" in the
|
||||
3.4 You can set your browser to accept all cookies, to reject all
|
||||
cookies, or to notify you whenever a cookie is offered so that you can
|
||||
decide each time whether to accept it. To learn more about cookies and
|
||||
how to specify your preferences, please search for "cookie" in the
|
||||
"Help" portion of your browser.
|
||||
</p>
|
||||
<p>
|
||||
3.5 An Internet Protocol (IP) address is a number assigned to
|
||||
your computer by your Internet service provider so you can access the
|
||||
Internet and is generally considered to be non-personally identifiable
|
||||
information, because in most cases an IP address is dynamic (changing
|
||||
each time you connect to the Internet), rather than static (unique to a
|
||||
particular user's computer). The IP address can be used to diagnose
|
||||
problems with a server, report aggregate information, determine the
|
||||
fastest route for your computer to use in connecting to a site, and
|
||||
3.5 An Internet Protocol (IP) address is a number assigned to
|
||||
your computer by your Internet service provider so you can access the
|
||||
Internet and is generally considered to be non-personally identifiable
|
||||
information, because in most cases an IP address is dynamic (changing
|
||||
each time you connect to the Internet), rather than static (unique to a
|
||||
particular user's computer). The IP address can be used to diagnose
|
||||
problems with a server, report aggregate information, determine the
|
||||
fastest route for your computer to use in connecting to a site, and
|
||||
administer and improve the Services.
|
||||
</p>
|
||||
<p>
|
||||
3.6 "Internet tags" (also known as Web Beacons, single-pixel
|
||||
GIFs, clear GIFs, invisible GIFs, and 1-by-1 GIFs) are smaller than
|
||||
cookies and tell the Web site server information such as the IP address
|
||||
and browser type related to the visitor's computer. Tags may be placed
|
||||
both on online advertisements that bring people to the Services and on
|
||||
different pages of the Services. Such tags indicate how many times a
|
||||
3.6 "Internet tags" (also known as Web Beacons, single-pixel
|
||||
GIFs, clear GIFs, invisible GIFs, and 1-by-1 GIFs) are smaller than
|
||||
cookies and tell the Web site server information such as the IP address
|
||||
and browser type related to the visitor's computer. Tags may be placed
|
||||
both on online advertisements that bring people to the Services and on
|
||||
different pages of the Services. Such tags indicate how many times a
|
||||
page is opened and which information is consulted.
|
||||
</p>
|
||||
<p>
|
||||
3.7 "Navigational data" (log files, server logs, and clickstream
|
||||
data) are used for system management, to improve the content of the
|
||||
Services, market research purposes, and to communicate information to
|
||||
3.7 "Navigational data" (log files, server logs, and clickstream
|
||||
data) are used for system management, to improve the content of the
|
||||
Services, market research purposes, and to communicate information to
|
||||
visitors.
|
||||
</p>
|
||||
<p>
|
||||
<strong>4. Use and Sharing of Anonymous, Passive Information.</strong>
|
||||
<br>
|
||||
The Services may make full use of passively collected anonymous
|
||||
information, including without limitation the right to use such
|
||||
information to provide better service to Service users, customize the
|
||||
Services based on your preferences, compile and analyze statistics and
|
||||
trends, and otherwise administer and improve the Services for your use. We
|
||||
reserve the right to share this anonymous, passive information in
|
||||
The Services may make full use of passively collected anonymous
|
||||
information, including without limitation the right to use such
|
||||
information to provide better service to Service users, customize the
|
||||
Services based on your preferences, compile and analyze statistics and
|
||||
trends, and otherwise administer and improve the Services for your use. We
|
||||
reserve the right to share this anonymous, passive information in
|
||||
aggregated form.
|
||||
</p>
|
||||
<p>
|
||||
<strong>5. 3rd Party Behavioral Ads; Google's AdSense Network.</strong>
|
||||
<br>
|
||||
5.1 We reserve the right to use anonymous, passive information
|
||||
about your visits to this and other websites (not including your name,
|
||||
address, email address or telephone number) for purposes of serving our
|
||||
ads and third party ads that are targeted to your interests ("3rd Party
|
||||
Behavioral Ads"). We reserve the right to share anonymous, passive
|
||||
information collected on the services with third parties for purposes of
|
||||
serving 3rd Party Behavioral Ads. These 3rd Party Behavioral Ads do not
|
||||
identify you personally. Instead, they associate your behavioral data on
|
||||
visited sites with your browser, so that the ads your computer sees on
|
||||
this site are more likely to be relevant to your interests. 3rd Party
|
||||
Behavioral Ads require that that you be served with a cookie containing
|
||||
a tracking code. You may refuse the use of cookies by selecting the
|
||||
appropriate settings on your browser; however, please note that if you
|
||||
5.1 We reserve the right to use anonymous, passive information
|
||||
about your visits to this and other websites (not including your name,
|
||||
address, email address or telephone number) for purposes of serving our
|
||||
ads and third party ads that are targeted to your interests ("3rd Party
|
||||
Behavioral Ads"). We reserve the right to share anonymous, passive
|
||||
information collected on the services with third parties for purposes of
|
||||
serving 3rd Party Behavioral Ads. These 3rd Party Behavioral Ads do not
|
||||
identify you personally. Instead, they associate your behavioral data on
|
||||
visited sites with your browser, so that the ads your computer sees on
|
||||
this site are more likely to be relevant to your interests. 3rd Party
|
||||
Behavioral Ads require that that you be served with a cookie containing
|
||||
a tracking code. You may refuse the use of cookies by selecting the
|
||||
appropriate settings on your browser; however, please note that if you
|
||||
do this you may not be able to use the full functionality of this site.
|
||||
</p>
|
||||
<p>
|
||||
5.2 We reserve the right to participate in Google's AdSense
|
||||
network for purposes of serving 3rd Party Behavioral Ads. Google uses
|
||||
DoubleClick's DART cookie for serving 3rd Party Behavioral Ads over the
|
||||
AdSense network. You may opt out of the use of the DART cookie. For
|
||||
5.2 We reserve the right to participate in Google's AdSense
|
||||
network for purposes of serving 3rd Party Behavioral Ads. Google uses
|
||||
DoubleClick's DART cookie for serving 3rd Party Behavioral Ads over the
|
||||
AdSense network. You may opt out of the use of the DART cookie. For
|
||||
information regarding how to opt out, go to
|
||||
http://www.google.com/privacy_ads.html.
|
||||
</p>
|
||||
<p>
|
||||
<strong>6. Use of 3rd Party Analytics.</strong>
|
||||
<br>
|
||||
We reserve the right to use analytics services provided by
|
||||
third parties. These services use 3rd party cookies to collect
|
||||
anonymous, passive information about your use of this site (see
|
||||
explanation of cookies in Collection of Anonymous, Passive Information
|
||||
above). We use this information for the purpose of evaluating your use
|
||||
of the Services, compiling reports on activity, and providing other
|
||||
services. These web analytics services may also transfer this
|
||||
information to third parties where required to do so by law, or where
|
||||
We reserve the right to use analytics services provided by
|
||||
third parties. These services use 3rd party cookies to collect
|
||||
anonymous, passive information about your use of this site (see
|
||||
explanation of cookies in Collection of Anonymous, Passive Information
|
||||
above). We use this information for the purpose of evaluating your use
|
||||
of the Services, compiling reports on activity, and providing other
|
||||
services. These web analytics services may also transfer this
|
||||
information to third parties where required to do so by law, or where
|
||||
such third parties process the information on the service's behalf.
|
||||
</p>
|
||||
<p>
|
||||
<strong>7. Collection of Personal Information; Categories.</strong>
|
||||
<br>
|
||||
We will ask you for personal information when you sign up for any
|
||||
specific benefit or purpose that requires registration. Personal
|
||||
information that we collect may vary with the each registration, and it
|
||||
may include one or more of the following categories: name, physical
|
||||
address, an email address, phone number, and credit card information
|
||||
including credit card number, expiration date, and billing address,
|
||||
emergency contact information, current medications, allergies, medical
|
||||
We will ask you for personal information when you sign up for any
|
||||
specific benefit or purpose that requires registration. Personal
|
||||
information that we collect may vary with the each registration, and it
|
||||
may include one or more of the following categories: name, physical
|
||||
address, an email address, phone number, and credit card information
|
||||
including credit card number, expiration date, and billing address,
|
||||
emergency contact information, current medications, allergies, medical
|
||||
insurance information.
|
||||
</p>
|
||||
<p>
|
||||
<strong> 8. Use And Sharing of Personal Information: General
|
||||
<strong> 8. Use And Sharing of Personal Information: General
|
||||
Policy And Exceptions. </strong>
|
||||
<br>
|
||||
Our general policy is that we will use your personal information,
|
||||
including combining your personal information with passive information
|
||||
collected from this site, only for: the performance of the services or
|
||||
transaction for which it was given, our private, internal reporting for
|
||||
this site, and security assessments for this site, and we will not
|
||||
share, sell, or rent your personal information to others. The only
|
||||
exceptions to this general policy: (i) are described in the subsections
|
||||
Our general policy is that we will use your personal information,
|
||||
including combining your personal information with passive information
|
||||
collected from this site, only for: the performance of the services or
|
||||
transaction for which it was given, our private, internal reporting for
|
||||
this site, and security assessments for this site, and we will not
|
||||
share, sell, or rent your personal information to others. The only
|
||||
exceptions to this general policy: (i) are described in the subsections
|
||||
below, and (ii) if you explicitly approve through our site.
|
||||
</p>
|
||||
<p>
|
||||
8.1 Affiliates And Service Providers. We reserve the right to
|
||||
provide such information to our affiliates or subsidiaries, or trusted
|
||||
service providers for the purpose of hosting our servers or processing
|
||||
or archiving personal information for us. We require that these parties
|
||||
agree to privacy and security safeguards for this information that are
|
||||
8.1 Affiliates And Service Providers. We reserve the right to
|
||||
provide such information to our affiliates or subsidiaries, or trusted
|
||||
service providers for the purpose of hosting our servers or processing
|
||||
or archiving personal information for us. We require that these parties
|
||||
agree to privacy and security safeguards for this information that are
|
||||
consistent with this Privacy Policy.
|
||||
</p>
|
||||
<p>
|
||||
8.2 Acquisition; Bankruptcy. In the event that we are acquired by
|
||||
or merged with a third party entity, we reserve the right to transfer
|
||||
such information as part of such merger, acquisition, sale, or other
|
||||
change of control. In the unlikely event of our bankruptcy, insolvency,
|
||||
reorganization, receivership, or assignment for the benefit of
|
||||
creditors, or the application of laws or equitable principles affecting
|
||||
creditors' rights generally, we reserve the right to transfer such
|
||||
8.2 Acquisition; Bankruptcy. In the event that we are acquired by
|
||||
or merged with a third party entity, we reserve the right to transfer
|
||||
such information as part of such merger, acquisition, sale, or other
|
||||
change of control. In the unlikely event of our bankruptcy, insolvency,
|
||||
reorganization, receivership, or assignment for the benefit of
|
||||
creditors, or the application of laws or equitable principles affecting
|
||||
creditors' rights generally, we reserve the right to transfer such
|
||||
information to protect our rights or as required by law.
|
||||
</p>
|
||||
<p>
|
||||
8.3 Enforcement; Legal Process. We reserve the right to transfer
|
||||
such information if we have a good faith belief that access, use,
|
||||
preservation or disclosure of such information is reasonably necessary
|
||||
(i) to satisfy any applicable law, regulation, legal process or
|
||||
enforceable governmental request, or (ii) to investigate or enforce
|
||||
8.3 Enforcement; Legal Process. We reserve the right to transfer
|
||||
such information if we have a good faith belief that access, use,
|
||||
preservation or disclosure of such information is reasonably necessary
|
||||
(i) to satisfy any applicable law, regulation, legal process or
|
||||
enforceable governmental request, or (ii) to investigate or enforce
|
||||
violations of our rights or the security of this site.
|
||||
</p>
|
||||
<p>
|
||||
8.4 Miscellaneous. We reserve the right to share personal
|
||||
information with the following additional parties: online organizers
|
||||
using our tools and resellers of our products and services from whose
|
||||
site the sale originated (even though the sale originates at site of the
|
||||
reseller, registration and collection of personal information occurs at
|
||||
8.4 Miscellaneous. We reserve the right to share personal
|
||||
information with the following additional parties: online organizers
|
||||
using our tools and resellers of our products and services from whose
|
||||
site the sale originated (even though the sale originates at site of the
|
||||
reseller, registration and collection of personal information occurs at
|
||||
this site).
|
||||
</p>
|
||||
<p>
|
||||
<strong> 9. Onward Transfer of Personal Information Outside Your
|
||||
<strong> 9. Onward Transfer of Personal Information Outside Your
|
||||
Country of Residence. </strong>
|
||||
<br>
|
||||
Any personal information which we may collect on this site will
|
||||
be stored and processed in our servers located only in the United
|
||||
States. By using this site, if you reside outside the United States, you
|
||||
consent to the transfer of personal information outside your country of
|
||||
Any personal information which we may collect on this site will
|
||||
be stored and processed in our servers located only in the United
|
||||
States. By using this site, if you reside outside the United States, you
|
||||
consent to the transfer of personal information outside your country of
|
||||
residence to the United States.
|
||||
</p>
|
||||
<p>
|
||||
<strong>10. Security of Personal Information.</strong>
|
||||
<br>
|
||||
We follow reasonable and appropriate industry standards to
|
||||
protect your personal information and data. Unfortunately, no data
|
||||
transmission over the Internet or method of data storage can be
|
||||
guaranteed 100% secure. Therefore, while we strive to protect your
|
||||
personal information by following generally accepted industry standards,
|
||||
we cannot ensure or warrant the absolute security of any information you
|
||||
We follow reasonable and appropriate industry standards to
|
||||
protect your personal information and data. Unfortunately, no data
|
||||
transmission over the Internet or method of data storage can be
|
||||
guaranteed 100% secure. Therefore, while we strive to protect your
|
||||
personal information by following generally accepted industry standards,
|
||||
we cannot ensure or warrant the absolute security of any information you
|
||||
transmit to us or archive at this site.
|
||||
</p>
|
||||
<p>
|
||||
<strong>11. Changing And Updating Personal Information.</strong>
|
||||
<br>
|
||||
Upon request, we will permit you to request or make changes or
|
||||
updates to your personal information for legitimate purposes. We request
|
||||
identification prior to approving such requests. We reserve the right to
|
||||
decline any requests that are unreasonably repetitive or systematic,
|
||||
require unreasonable time or effort of our technical or administrative
|
||||
personnel, or undermine the privacy rights of others. We reserve the
|
||||
right to permit you to access your personal information in any account
|
||||
you establish with this site for purposes of making your own changes or
|
||||
updates, and in such case, instructions for making such changes or
|
||||
Upon request, we will permit you to request or make changes or
|
||||
updates to your personal information for legitimate purposes. We request
|
||||
identification prior to approving such requests. We reserve the right to
|
||||
decline any requests that are unreasonably repetitive or systematic,
|
||||
require unreasonable time or effort of our technical or administrative
|
||||
personnel, or undermine the privacy rights of others. We reserve the
|
||||
right to permit you to access your personal information in any account
|
||||
you establish with this site for purposes of making your own changes or
|
||||
updates, and in such case, instructions for making such changes or
|
||||
updates will be provided where necessary.
|
||||
</p>
|
||||
<p>
|
||||
<strong>12. Email From This Site; Opt-Out Rights.</strong>
|
||||
<br>
|
||||
If you supply us with your e-mail address you may receive
|
||||
periodic messages from us with information specific to the Services and
|
||||
required for the normal functioning of the Services as well as for new
|
||||
products or services or upcoming events. If you prefer not to receive
|
||||
periodic email messages, you may opt-out by following the instructions
|
||||
If you supply us with your e-mail address you may receive
|
||||
periodic messages from us with information specific to the Services and
|
||||
required for the normal functioning of the Services as well as for new
|
||||
products or services or upcoming events. If you prefer not to receive
|
||||
periodic email messages, you may opt-out by following the instructions
|
||||
on the email.
|
||||
</p>
|
||||
<p>
|
||||
<strong>13. Children's Online Policy.</strong>
|
||||
<br>
|
||||
We are committed to preserving online privacy for all of its
|
||||
website visitors, including children. This site is a general audience
|
||||
site. Consistent with the Children's Online Privacy Protection Act
|
||||
(COPPA), we will not knowingly collect any information from, or sell to,
|
||||
children under the age of 13. If you are a parent or guardian who has
|
||||
discovered that your child under the age of 13 has submitted his or her
|
||||
personally identifiable information without your permission or consent,
|
||||
we will remove the information from our active list, at your request. To
|
||||
request the removal of your child's information, please send contact our
|
||||
site as provided below under “Contact Us”, and be sure to include in
|
||||
We are committed to preserving online privacy for all of its
|
||||
website visitors, including children. This site is a general audience
|
||||
site. Consistent with the Children's Online Privacy Protection Act
|
||||
(COPPA), we will not knowingly collect any information from, or sell to,
|
||||
children under the age of 13. If you are a parent or guardian who has
|
||||
discovered that your child under the age of 13 has submitted his or her
|
||||
personally identifiable information without your permission or consent,
|
||||
we will remove the information from our active list, at your request. To
|
||||
request the removal of your child's information, please send contact our
|
||||
site as provided below under “Contact Us”, and be sure to include in
|
||||
your message the same login information that your child submitted.
|
||||
</p>
|
||||
<p>
|
||||
<strong> 14. Email And Other Messages Through This Site; ECPA
|
||||
<strong> 14. Email And Other Messages Through This Site; ECPA
|
||||
Notice. </strong>
|
||||
<br>
|
||||
This site treats email messages and other electronic messages
|
||||
that are sent through this site and not viewable by others as
|
||||
confidential and private, except as required by law, including without
|
||||
limitation, the Electronic Communications Privacy Act of 1986, 18 U.S.C.
|
||||
Sections 2701-2711 (the "ECPA"). The ECPA permits this site's limited
|
||||
ability to intercept and/or disclose electronic messages, for example
|
||||
(i) as necessary to operate our system or to protect our rights or
|
||||
property, (ii) upon legal demand (court orders, warrants, subpoenas), or
|
||||
(iii) where we receive information inadvertently which appears to
|
||||
pertain to the commission of a crime. This site is not considered a
|
||||
This site treats email messages and other electronic messages
|
||||
that are sent through this site and not viewable by others as
|
||||
confidential and private, except as required by law, including without
|
||||
limitation, the Electronic Communications Privacy Act of 1986, 18 U.S.C.
|
||||
Sections 2701-2711 (the "ECPA"). The ECPA permits this site's limited
|
||||
ability to intercept and/or disclose electronic messages, for example
|
||||
(i) as necessary to operate our system or to protect our rights or
|
||||
property, (ii) upon legal demand (court orders, warrants, subpoenas), or
|
||||
(iii) where we receive information inadvertently which appears to
|
||||
pertain to the commission of a crime. This site is not considered a
|
||||
"secure communications medium" under the ECPA.
|
||||
</p>
|
||||
<p>
|
||||
<strong>15. Contact Us.</strong>
|
||||
<br>
|
||||
If you have any questions regarding this Privacy Policy, please
|
||||
If you have any questions regarding this Privacy Policy, please
|
||||
contact the owner and operator of this website business:
|
||||
</p>
|
||||
<address>
|
||||
|
|
|
|||
770
views/terms.html
770
views/terms.html
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue