diff --git a/assets/css/app/alerts.styl b/assets/css/app/alerts.styl index b459948fc3..577bd78d0d 100644 --- a/assets/css/app/alerts.styl +++ b/assets/css/app/alerts.styl @@ -58,21 +58,21 @@ borderDarken = 20% // alert icons .icon-gold - background: url("img/coin_single_gold.png") no-repeat + background: url("/img/coin_single_gold.png") no-repeat background-position: center center background-size: 18px width: 14px height: 14px .icon-silver - background: url("img/coin_single_silver.png") no-repeat + background: url("/img/coin_single_silver.png") no-repeat background-position: center center background-size: 18px width: 14px height: 14px .icon-death - background: url("img/sprites/dead.png") no-repeat + background: url("/img/sprites/dead.png") no-repeat background-position: center center background-size: 14px width: 14px diff --git a/assets/css/app/female_sprites.styl b/assets/css/app/female_sprites.styl index 5ea571afd3..6338a49ef8 100644 --- a/assets/css/app/female_sprites.styl +++ b/assets/css/app/female_sprites.styl @@ -36,7 +36,7 @@ .f_skin_asian, .f_skin_black, .f_skin_white - background: url("img/sprites/female_sprites.png") no-repeat + background: url("/img/sprites/female_sprites.png") no-repeat .f_weapon_6 {background-position: 0 0; width: 90px; height: 90px} .f_weapon_5 {background-position: -90px 0; width: 90px; height: 90px} diff --git a/assets/css/app/male_sprites.styl b/assets/css/app/male_sprites.styl index 2530a70785..ae02cceba6 100644 --- a/assets/css/app/male_sprites.styl +++ b/assets/css/app/male_sprites.styl @@ -31,7 +31,7 @@ .m_skin_asian, .m_skin_black, .m_skin_white - background: url("img/sprites/male_sprites.png") no-repeat + background: url("/img/sprites/male_sprites.png") no-repeat .m_weapon_6 {background-position: 0 0; width: 90px; height: 90px} .m_weapon_5 {background-position: -90px 0; width: 90px; height: 90px} diff --git a/assets/js/browser.js b/assets/js/browser.js deleted file mode 100644 index ab3776ecb2..0000000000 --- a/assets/js/browser.js +++ /dev/null @@ -1,304 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var amazonAffiliate, googleAnalytics, googleCharts, growlNotification, initStickyHeader, loadJavaScripts, moment, setupGrowlNotifications, setupSortable, setupTooltips, setupTour, _; - - _ = require('lodash'); - - moment = require('moment'); - - /* - Loads JavaScript files from public/vendor/* - Use require() to min / concatinate for faster page load - */ - - - loadJavaScripts = function(model) { - /* - Internal Scripts - */ - - require("../vendor/jquery-ui-1.10.2/jquery-1.9.1.js"); - require("../vendor/jquery.cookie.min.js"); - require("../vendor/bootstrap/js/bootstrap.min.js"); - require("../vendor/jquery.bootstrap-growl.min.js"); - require("../vendor/datepicker/js/bootstrap-datepicker"); - require("../vendor/bootstrap-tour/bootstrap-tour"); - if (!(model.get('_mobileDevice') === true)) { - require("../vendor/jquery-ui-1.10.2/ui/jquery.ui.core.js"); - require("../vendor/jquery-ui-1.10.2/ui/jquery.ui.widget.js"); - require("../vendor/jquery-ui-1.10.2/ui/jquery.ui.mouse.js"); - require("../vendor/jquery-ui-1.10.2/ui/jquery.ui.sortable.js"); - return require("../vendor/sticky"); - } - }; - - /* - Setup jQuery UI Sortable - */ - - - setupSortable = function(model) { - if (!(model.get('_mobileDevice') === true)) { - return ['habit', 'daily', 'todo', 'reward'].forEach(function(type) { - return $("ul." + type + "s").sortable({ - dropOnEmpty: false, - cursor: "move", - items: "li", - scroll: true, - axis: 'y', - update: function(e, ui) { - var domId, id, item, to; - item = ui.item[0]; - domId = item.id; - id = item.getAttribute('data-id'); - to = $("ul." + type + "s").children().index(item); - return model.at("_" + type + "List").pass({ - ignore: domId - }).move({ - id: id - }, to); - } - }); - }); - } - }; - - setupTooltips = module.exports.setupTooltips = function() { - $('[rel=tooltip]').tooltip(); - $('[rel=popover]').popover(); - $('.popover-auto-show').popover('show'); - return $('.priority-multiplier-help').popover({ - title: "How difficult is this task?", - trigger: "hover", - content: "This multiplies its point value. Use sparingly, rely instead on our organic value-adjustment algorithms. But some tasks are grossly more valuable (Write Thesis vs Floss Teeth). Click for more info." - }); - }; - - setupTour = function(model) { - var tour, tourSteps; - tourSteps = [ - { - element: ".main-herobox", - title: "Welcome to HabitRPG", - content: "Welcome to HabitRPG, a habit-tracker which treats your goals like a Role Playing Game." - }, { - element: "#bars", - title: "Achieve goals and level up", - content: "As you accomplish goals, you level up. If you fail your goals, you lose hit points. Lose all your HP and you die." - }, { - element: "ul.habits", - title: "Habits", - content: "Habits are goals that you constantly track.", - placement: "bottom" - }, { - element: "ul.dailys", - title: "Dailies", - content: "Dailies are goals that you want to complete once a day.", - placement: "bottom" - }, { - element: "ul.todos", - title: "Todos", - content: "Todos are one-off goals which need to be completed eventually.", - placement: "bottom" - }, { - element: "ul.rewards", - title: "Rewards", - content: "As you complete goals, you earn gold to buy rewards. Buy them liberally - rewards are integral in forming good habits.", - placement: "bottom" - }, { - element: "ul.habits li:first-child", - title: "Hover over comments", - content: "Different task-types have special properties. Hover over each task's comment for more information. When you're ready to get started, delete the existing tasks and add your own.", - placement: "right" - } - ]; - $('.main-herobox').popover('destroy'); - tour = new Tour(); - tourSteps.forEach(function(step) { - return tour.addStep(_.defaults(step, { - html: true - })); - }); - if (isNaN(tour._current)) { - tour._current = 0; - } - return tour.start(); - }; - - initStickyHeader = function(model) { - return $('.header-wrap').sticky({ - topSpacing: 0 - }); - }; - - growlNotification = module.exports.growlNotification = function(html, type) { - return $.bootstrapGrowl(html, { - ele: '#notification-area', - type: type, - top_offset: 20, - align: 'right', - width: 250, - delay: 3000, - allow_dismiss: true, - stackup_spacing: 10 - }); - }; - - /* - Sets up "+1 Exp", "Level Up", etc notifications - */ - - - setupGrowlNotifications = function(model) { - var showCoins, statsNotification, user; - if (typeof jQuery === "undefined" || jQuery === null) { - return; - } - user = model.at('_user'); - statsNotification = function(html, type) { - if (user.get('stats.lvl') === 0) { - return; - } - return growlNotification(html, type); - }; - user.on('set', 'stats.hp', function(captures, args) { - var num, rounded; - num = captures - args; - rounded = Math.abs(num.toFixed(1)); - if (num < 0) { - return statsNotification(" - " + rounded + " HP", 'hp'); - } else if (num > 0) { - return statsNotification(" + " + rounded + " HP", 'hp'); - } - }); - user.on('set', 'stats.exp', function(captures, args, isLocal, silent) { - var num, rounded; - if (silent == null) { - silent = false; - } - num = captures - args; - rounded = Math.abs(num.toFixed(1)); - if (num < 0 && num > -50) { - return statsNotification(" - " + rounded + " XP", 'xp'); - } else if (num > 0) { - return statsNotification(" + " + rounded + " XP", 'xp'); - } - }); - /* - Show "+ 5 {gold_coin} 3 {silver_coin}" - */ - - showCoins = function(money) { - var absolute, gold, silver; - absolute = Math.abs(money); - gold = Math.floor(absolute); - silver = Math.floor((absolute - gold) * 100); - if (gold && silver > 0) { - return "" + gold + " " + silver + " "; - } else if (gold > 0) { - return "" + gold + " "; - } else if (silver > 0) { - return "" + silver + " "; - } - }; - user.on('set', 'stats.gp', function(captures, args) { - var bonus, money, sign; - money = captures - args; - if (!money) { - return; - } - sign = money < 0 ? '-' : '+'; - statsNotification("" + sign + " " + (showCoins(money)), 'gp'); - bonus = model.get('_streakBonus'); - if ((money > 0) && !!bonus) { - if (bonus < 0.01) { - bonus = 0.01; - } - statsNotification("+ " + (showCoins(bonus)) + " Streak Bonus!"); - return model.del('_streakBonus'); - } - }); - user.on('set', 'items.*', function(item, after, before) { - if ((item === 'armor' || item === 'weapon' || item === 'shield' || item === 'head') && parseInt(after) < parseInt(before)) { - if (item === 'head') { - item = 'helm'; - } - return statsNotification(" Respawn!", "death"); - } - }); - return user.on('set', 'stats.lvl', function(captures, args) { - if (captures > args) { - return statsNotification(' Level Up!', 'lvl'); - } - }); - }; - - module.exports.resetDom = function(model) { - window.DERBY.app.dom.clear(); - return window.DERBY.app.view.render(model, window.DERBY.app.view._lastRender.ns, window.DERBY.app.view._lastRender.context); - }; - - googleAnalytics = function(model) { - if (model.flags.nodeEnv === 'production') { - window._gaq = [["_setAccount", "UA-33510635-1"], ["_setDomainName", "habitrpg.com"], ["_trackPageview"]]; - return $.getScript(("https:" === document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js"); - } - }; - - amazonAffiliate = function(model) { - if (model.get('_loggedIn') && (model.get('_user.flags.ads') !== 'hide')) { - return $.getScript('//wms.assoc-amazon.com/20070822/US/js/link-enhancer-common.js?tag=ha0d2-20').fail(function() { - return $('body').append(''); - }); - } - }; - - googleCharts = function() { - return $.getScript("//www.google.com/jsapi", function() { - return google.load("visualization", "1", { - packages: ["corechart"], - callback: function() {} - }); - }); - }; - - module.exports.app = function(appExports, model, app) { - loadJavaScripts(model); - if (!model.get('_mobileDevice')) { - setupGrowlNotifications(model); - } - return app.on('render', function(ctx) { - if (!model.get('_mobileDevice')) { - setupTooltips(model); - initStickyHeader(model); - setupSortable(model); - setupTour(model); - } - $('.datepicker').datepicker({ - autoclose: true, - todayBtn: true - }).on('changeDate', function(ev) { - return model.at(ev.target).set('date', moment(ev.date).format('MM/DD/YYYY')); - }); - /* - External Scripts - JS files not needed right away (google charts) or entirely optional (analytics) - Each file getsload asyncronously via $.getScript, so it doesn't bog page-load - These need to be handled in app.on('render'), see https://groups.google.com/forum/?fromgroups=#!topic/derbyjs/x8FwdTLEuXo - */ - - $.getScript('//checkout.stripe.com/v2/checkout.js'); - if (!(model.get('_mobileDevice') === true)) { - $.getScript("//s7.addthis.com/js/250/addthis_widget.js#pubid=lefnire"); - googleCharts(); - } - googleAnalytics(model); - return amazonAffiliate(model); - }); - }; - -}).call(this); - -/* -//@ sourceMappingURL=browser.map -*/ diff --git a/assets/js/browser.map b/assets/js/browser.map deleted file mode 100644 index b12511ca44..0000000000 --- a/assets/js/browser.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "browser.js", - "sourceRoot": "", - "sources": [ - "browser.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/challenges.js b/assets/js/challenges.js deleted file mode 100644 index 399cc712a9..0000000000 --- a/assets/js/challenges.js +++ /dev/null @@ -1,148 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var helpers, _; - - _ = require('lodash'); - - helpers = require('habitrpg-shared/script/helpers'); - - module.exports.app = function(appExports, model) { - var browser, challengeDiscard, user; - browser = require('./browser'); - user = model.at('_user'); - $('#profile-challenges-tab-link').on('show', function(e) { - return _.each(model.get('groups'), function(g) { - return _.each(g.challenges, function(chal) { - return _.each(['habit', 'daily', 'todo'], function(type) { - return _.each(chal["" + type + "s"], function(task) { - return _.each(chal.users, function(member) { - var chart, data, history, options, _ref, _ref1; - if ((history = member != null ? (_ref = member["" + type + "s"]) != null ? (_ref1 = _ref[task.id]) != null ? _ref1.history : void 0 : void 0 : void 0) && !!history) { - data = google.visualization.arrayToDataTable(_.map(history, function(h) { - return [h.date, h.value]; - })); - options = { - backgroundColor: { - fill: 'transparent' - }, - width: 150, - height: 50, - chartArea: { - width: '80%', - height: '80%' - }, - axisTitlePosition: 'none', - legend: { - position: 'bottom' - }, - hAxis: { - gridlines: { - color: 'transparent' - } - }, - vAxis: { - gridlines: { - color: 'transparent' - } - } - }; - chart = new google.visualization.LineChart($(".challenge-" + chal.id + "-member-" + member.id + "-history-" + task.id)[0]); - return chart.draw(data, options); - } - }); - }); - }); - }); - }); - }); - appExports.challengeCreate = function(e, el) { - var gid, type, _ref; - _ref = [$(el).attr('data-type'), $(el).attr('data-gid')], type = _ref[0], gid = _ref[1]; - return model.set('_challenge.new', { - name: '', - habits: [], - dailys: [], - todos: [], - rewards: [], - id: model.id(), - uid: user.get('id'), - user: helpers.username(model.get('_user.auth'), model.get('_user.profile.name')), - group: { - type: type, - id: gid - }, - timestamp: +(new Date) - }); - }; - appExports.challengeSave = function() { - var gid; - gid = model.get('_challenge.new.group.id'); - return model.unshift("groups." + gid + ".challenges", model.get('_challenge.new'), function() { - browser.growlNotification('Challenge Created', 'success'); - return challengeDiscard(); - }); - }; - appExports.toggleChallengeEdit = function(e, el) { - var path; - path = "_editing.challenges." + ($(el).attr('data-id')); - return model.set(path, !model.get(path)); - }; - appExports.challengeDiscard = challengeDiscard = function() { - return model.del('_challenge.new'); - }; - appExports.challengeSubscribe = function(e) { - var chal, tags, userChallenges; - chal = e.get(); - tags = user.get('tags'); - if (!(tags && _.find(tags, { - id: chal.id - }))) { - model.push('_user.tags', { - id: chal.id, - name: chal.name, - challenge: true - }); - } - tags = {}; - tags[chal.id] = true; - userChallenges = user.get('challenges'); - if (!(userChallenges && (userChallenges.indexOf(chal.id) !== -1))) { - user.unshift('challenges', chal.id); - } - return _.each(['habit', 'daily', 'todo', 'reward'], function(type) { - return _.each(chal["" + type + "s"], function(task) { - task.tags = tags; - task.challenge = chal.id; - task.group = { - id: chal.group.id, - type: chal.group.type - }; - model.push("_" + type + "List", task); - return true; - }); - }); - }; - return appExports.challengeUnsubscribe = function(e) { - var chal, i, _ref; - chal = e.get(); - i = (_ref = user.get('challenges')) != null ? _ref.indexOf(chal.id) : void 0; - if ((i != null) && i !== -1) { - user.remove("challenges." + i); - } - return _.each(['habit', 'daily', 'todo', 'reward'], function(type) { - return _.each(chal["" + type + "s"], function(task) { - model.remove("_" + type + "List", _.findIndex(model.get("_" + type + "List", { - id: task.id - }))); - model.del("_user.tasks." + task.id); - return true; - }); - }); - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=challenges.map -*/ diff --git a/assets/js/challenges.map b/assets/js/challenges.map deleted file mode 100644 index 982734a623..0000000000 --- a/assets/js/challenges.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "challenges.js", - "sourceRoot": "", - "sources": [ - "challenges.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/controllers/RootCtrl.coffee b/assets/js/controllers/RootCtrl.coffee index 5c2e144fb7..c385c7c9bb 100644 --- a/assets/js/controllers/RootCtrl.coffee +++ b/assets/js/controllers/RootCtrl.coffee @@ -2,12 +2,14 @@ # Make user and settings available for everyone through root scope. habitrpg.controller "RootCtrl", ($scope, $rootScope, $location, User) -> + $rootScope.modals = {} $rootScope.User = User $rootScope.user = User.user $rootScope.settings = User.settings # FIXME this is dangerous, organize helpers.coffee better, so we can group them by which controller needs them, # and then simply _.defaults($scope, Helpers.user) kinda thing + _.defaults $rootScope, window.habitrpgShared.algos _.defaults $rootScope, window.habitrpgShared.helpers $rootScope.authenticated = -> User.settings.auth.apiId isnt "" \ No newline at end of file diff --git a/assets/js/controllers/authCtrl.coffee b/assets/js/controllers/authCtrl.coffee index 26cae500e9..892c7684c1 100644 --- a/assets/js/controllers/authCtrl.coffee +++ b/assets/js/controllers/authCtrl.coffee @@ -5,7 +5,6 @@ The authentication controller (login & facebook) ### habitrpg.controller "AuthCtrl", ($scope, $rootScope, Facebook, LocalAuth, User, $http, $location, API_URL) -> $scope.useUUID = false - debugger $scope.toggleUUID = -> if showedFacebookMessage is false alert "Until we add Facebook, use your UUID and API Token to log in (found at https://habitrpg.com > Options > Settings)." @@ -45,7 +44,7 @@ habitrpg.controller "AuthCtrl", ($scope, $rootScope, Facebook, LocalAuth, User, $http.post(API_URL + "/api/v1/user/auth/local", data) .success((data, status, headers, config) -> runAuth data.id, data.token - $scope.showing = false + $rootScope.modals.login = false ).error (data, status, headers, config) -> if status is 0 alert "Server not currently reachable, try again later" diff --git a/assets/js/controllers/userAvatarCtrl.coffee b/assets/js/controllers/userAvatarCtrl.coffee new file mode 100644 index 0000000000..00b00d9ede --- /dev/null +++ b/assets/js/controllers/userAvatarCtrl.coffee @@ -0,0 +1,37 @@ +"use strict" +habitrpg.controller "UserAvatarCtrl", ($scope, $location, filterFilter, User) -> + $scope.profile = User.user + $scope.changeHair = (color) -> + User.user.preferences.hair = color + User.log + op: "set" + data: + "preferences.hair": color + + + $scope.changeSkin = (color) -> + User.user.preferences.skin = color + User.log + op: "set" + data: + "preferences.skin": color + + + $scope.changeSex = (gender) -> + User.user.preferences.gender = gender + User.log + op: "set" + data: + "preferences.gender": gender + + + $scope.changeArmor = (armor) -> + User.user.preferences.armorSet = armor + User.log + op: "set" + data: + "preferences.armorSet": armor + + + $scope.hideUserAvatar = -> + $(".userAvatar").hide() \ No newline at end of file diff --git a/assets/js/controllers/userAvatarCtrl.js b/assets/js/controllers/userAvatarCtrl.js deleted file mode 100644 index 0ab3c1fcc7..0000000000 --- a/assets/js/controllers/userAvatarCtrl.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -habitrpg.controller('userAvatarCtrl', - ['$scope', '$location', 'filterFilter', 'User', - function($scope, $location, filterFilter, User) { - - $scope.user = User.user; - - $scope.changeHair = function(color) { - User.user.preferences.hair = color; - User.log({op:"set",data:{"preferences.hair":color}}) - } - - $scope.changeSkin = function(color) { - User.user.preferences.skin = color - User.log({op:"set",data:{"preferences.skin":color}}) - } - - $scope.changeSex = function(gender) { - User.user.preferences.gender = gender - User.log({op:"set",data:{"preferences.gender":gender}}) - } - - $scope.changeArmor = function(armor) { - User.user.preferences.armorSet = armor - User.log({op:"set",data:{"preferences.armorSet":armor}}) - } - - $scope.hideUserAvatar = function() { - $('.userAvatar').hide() - } - } -]); diff --git a/assets/js/debug.js b/assets/js/debug.js deleted file mode 100644 index fe676c4d6a..0000000000 --- a/assets/js/debug.js +++ /dev/null @@ -1,34 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var algos, moment; - - moment = require('moment'); - - algos = require('habitrpg-shared/script/algos'); - - module.exports.app = function(appExports, model) { - var user; - user = model.at('_user'); - appExports.emulateNextDay = function() { - var yesterday; - yesterday = +moment().subtract('days', 1).toDate(); - user.set('lastCron', yesterday); - return window.location.reload(); - }; - appExports.emulateTenDays = function() { - var yesterday; - yesterday = +moment().subtract('days', 10).toDate(); - user.set('lastCron', yesterday); - return window.location.reload(); - }; - return appExports.cheat = function() { - user.incr('stats.exp', algos.tnl(user.get('stats.lvl'))); - return user.incr('stats.gp', 1000); - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=debug.map -*/ diff --git a/assets/js/debug.map b/assets/js/debug.map deleted file mode 100644 index 2cb3b0ee28..0000000000 --- a/assets/js/debug.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "debug.js", - "sourceRoot": "", - "sources": [ - "debug.coffee" - ], - "names": [], - "mappings": ";AAAA;CAAA,KAAA,OAAA;;CAAA,CAAA,CAAS,GAAT,CAAS,CAAA;;CAAT,CACA,CAAQ,EAAR,EAAQ,uBAAA;;CADR,CAGA,CAAA,EAAqB,CAAf,CAAQ,EAAQ,CAAD;CACnB,GAAA,IAAA;CAAA,CAAO,CAAA,CAAP,CAAY,EAAL;CAAP,EAE4B,CAA5B,KAA4B,CAAlB,IAAV;CACE,QAAA,CAAA;AAAa,CAAb,CAAuC,CAA3B,GAAZ,EAAa,CAAb;CAAA,CACqB,CAArB,CAAI,EAAJ,GAAA,CAAA;CACO,KAAD,EAAS,KAAf;CALF,IAE4B;CAF5B,EAO4B,CAA5B,KAA4B,CAAlB,IAAV;CACE,QAAA,CAAA;AAAa,CAAb,CAAuC,CAA3B,GAAZ,EAAa,CAAb;CAAA,CACqB,CAArB,CAAI,EAAJ,GAAA,CAAA;CACO,KAAD,EAAS,KAAf;CAVF,IAO4B;CAKjB,EAAQ,EAAnB,IAAmB,CAAT,CAAV;CACE,CAAuB,CAAA,CAAnB,CAAwB,CAA5B,KAAA;CACK,CAAiB,EAAlB,MAAJ,GAAA;CAfiB,IAaA;CAhBrB,EAGqB;CAHrB" -} \ No newline at end of file diff --git a/assets/js/filters.js b/assets/js/filters.js deleted file mode 100644 index fc76efc800..0000000000 --- a/assets/js/filters.js +++ /dev/null @@ -1,55 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var _; - - _ = require('lodash'); - - module.exports.app = function(appExports, model) { - var user; - user = model.at('_user'); - appExports.toggleFilterByTag = function(e, el) { - var path, tagId; - tagId = $(el).attr('data-tag-id'); - path = 'filters.' + tagId; - return user.set(path, !(user.get(path))); - }; - appExports.filtersNewTag = function() { - user.setNull('tags', []); - user.push('tags', { - id: model.id(), - name: model.get("_newTag") - }); - return model.set('_newTag', ''); - }; - appExports.toggleEditingTags = function() { - return model.set('_editingTags', !model.get('_editingTags')); - }; - appExports.clearFilters = function() { - return user.set('filters', {}); - }; - return appExports.filtersDeleteTag = function(e, el) { - var tag, tagId, tags; - tags = user.get('tags'); - tag = e.at("_user.tags." + $(el).attr('data-index')); - tagId = tag.get('id'); - if (!tagId) { - user.set('tags', _.filter(tags, (function(t) { - return t != null ? t.id : void 0; - }))); - user.set('filters', {}); - return; - } - model.del("_user.filters." + tagId); - tag.remove(); - return _.each(user.get("tasks"), function(task) { - user.del("tasks." + task.id + ".tags." + tagId); - return true; - }); - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=filters.map -*/ diff --git a/assets/js/filters.map b/assets/js/filters.map deleted file mode 100644 index a58a3d2102..0000000000 --- a/assets/js/filters.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "filters.js", - "sourceRoot": "", - "sources": [ - "filters.coffee" - ], - "names": [], - "mappings": ";AAAA;CAAA,KAAA;;CAAA,CAAA,CAAI,IAAA,CAAA;;CAAJ,CAEA,CAAA,EAAqB,CAAf,CAAQ,EAAQ,CAAD;CACnB,GAAA,IAAA;CAAA,CAAO,CAAA,CAAP,CAAY,EAAL;CAAP,CAEmC,CAAJ,CAA/B,KAAgC,CAAtB,OAAV;CACE,SAAA,CAAA;CAAA,CAAQ,CAAA,CAAA,CAAR,CAAA,OAAQ;CAAR,EACO,CAAP,CADA,CACA,IAAO;AACS,CAAX,CAAU,CAAf,CAAI,SAAJ;CALF,IAE+B;CAF/B,EAO2B,CAA3B,KAA2B,CAAjB,GAAV;CACE,CAAqB,EAAjB,EAAJ,CAAA;CAAA,CACkB,EAAd,EAAJ;CAAkB,CAAC,GAAS,GAAT;CAAD,CAAuB,CAAA,CAAN,CAAW,GAAX,CAAM;CADzC,OACA;CACM,CAAe,CAArB,EAAK,IAAL,IAAA;CAVF,IAO2B;CAP3B,EAY+B,CAA/B,KAA+B,CAArB,OAAV;AAC6B,CAArB,CAAoB,CAA1B,EAAK,QAAL,CAAA;CAbF,IAY+B;CAZ/B,EAe0B,CAA1B,KAA0B,CAAhB,EAAV;CACO,CAAe,CAApB,CAAI,KAAJ,IAAA;CAhBF,IAe0B;CAGf,CAAuB,CAAJ,MAAC,CAArB,CAAV,KAAA;CACE,SAAA,MAAA;CAAA,EAAO,CAAP,EAAA;CAAA,CACM,CAAN,CAA2B,EAA3B,MAA2B,CAAhB;CADX,EAEQ,CAAA,CAAR,CAAA;AAGO,CAAP,GAAA,CAAA,CAAA;CACE,CAAiB,CAAjB,CAAI,EAAJ,EAAA,CAAmC;CAAM,EAAD;CAAP,QAAC;CAAlC,CACoB,CAApB,CAAI,IAAJ,CAAA;CACA,aAAA;QARF;CAAA,EAUA,EAAK,CAAL,UAAW;CAVX,EAWG,GAAH;CAGC,CAAyB,CAAnB,CAAP,GAAO,EAAoB,IAA3B;CAAoC,CAAU,CAAV,CAAI,CAAJ,GAAA;CAAV,cAAqD;CAA/E,MAA0B;CAlCT,IAmBW;CArBhC,EAEqB;CAFrB" -} \ No newline at end of file diff --git a/assets/js/groups.js b/assets/js/groups.js deleted file mode 100644 index 32aee87167..0000000000 --- a/assets/js/groups.js +++ /dev/null @@ -1,280 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var helpers, _, - __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; - - _ = require('lodash'); - - helpers = require('habitrpg-shared/script/helpers'); - - module.exports.app = function(appExports, model, app) { - var browser, joinGroup, user, _currentTime; - browser = require('./browser'); - _currentTime = model.at('_currentTime'); - _currentTime.setNull(+(new Date)); - setInterval((function() { - return _currentTime.set(+(new Date)); - }), 60000); - user = model.at('_user'); - appExports.groupCreate = function(e, el) { - var newGroup, type; - type = $(el).attr('data-type'); - newGroup = { - name: model.get("_new.group.name"), - description: model.get("_new.group.description"), - leader: user.get('id'), - members: [user.get('id')], - type: type - }; - if (type === 'party') { - return model.add('groups', newGroup, function() { - return location.reload(); - }); - } - if (!(user.get('balance') >= 1)) { - return $('#more-gems-modal').modal('show'); - } - if (confirm("Create Guild for 4 Gems?")) { - if (type === 'guild') { - newGroup.privacy = model.get("_new.group.privacy") || 'public'; - } - newGroup.balance = 1; - return model.add('groups', newGroup, function() { - return user.incr('balance', -1, function() { - return location.reload(); - }); - }); - } - }; - appExports.toggleGroupEdit = function(e, el) { - var path; - path = "_editing.groups." + ($(el).attr('data-gid')); - return model.set(path, !model.get(path)); - }; - appExports.toggleLeaderMessageEdit = function(e, el) { - var path; - path = "_editing.leaderMessage." + ($(el).attr('data-gid')); - return model.set(path, !model.get(path)); - }; - appExports.groupAddWebsite = function(e, el) { - var test; - test = e.get(); - e.at().unshift('websites', model.get('_newGroupWebsite')); - return model.del('_newGroupWebsite'); - }; - appExports.groupInvite = function(e, el) { - var uid; - uid = model.get('_groupInvitee').replace(/[\s"]/g, ''); - model.set('_groupInvitee', ''); - if (_.isEmpty(uid)) { - return; - } - return model.query('users').publicInfo([uid]).fetch(function(err, profiles) { - var profile; - if (err) { - throw err; - } - profile = profiles.at(0).get(); - if (!profile) { - return model.set("_groupError", "User with id " + uid + " not found."); - } - return model.query('groups').withMember(uid).fetch(function(err, g) { - var gid, group, groupError, groups, invite, name, type, _ref, _ref1; - if (err) { - throw err; - } - group = e.get(); - groups = g.get(); - type = group.type, name = group.name; - gid = group.id; - groupError = function(msg) { - return model.set("_groupError", msg); - }; - invite = function() { - $.bootstrapGrowl("Invitation Sent."); - switch (type) { - case 'guild': - return model.push("users." + uid + ".invitations.guilds", { - id: gid, - name: name - }, function() { - return location.reload(); - }); - case 'party': - return model.set("users." + uid + ".invitations.party", { - id: gid, - name: name - }, function() { - return location.reload(); - }); - } - }; - switch (type) { - case 'guild': - if (((_ref = profile.invitations) != null ? _ref.guilds : void 0) && _.find(profile.invitations.guilds, { - id: gid - })) { - return groupError("User already invited to that group"); - } else if (__indexOf.call(group.members, uid) >= 0) { - return groupError("User already in that group"); - } else { - return invite(); - } - break; - case 'party': - if ((_ref1 = profile.invitations) != null ? _ref1.party : void 0) { - return groupError("User already pending invitation."); - } else if (_.find(groups, { - type: 'party' - })) { - return groupError("User already in a party."); - } else { - return invite(); - } - } - }); - }); - }; - joinGroup = function(gid) { - return model.push("groups." + gid + ".members", user.get('id'), function() { - return location.reload(); - }); - }; - appExports.joinGroup = function(e, el) { - return joinGroup(e.get('id')); - }; - appExports.acceptInvitation = function(e, el) { - var gid; - gid = e.get('id'); - if ($(el).attr('data-type') === 'party') { - return user.set('invitations.party', null, function() { - return joinGroup(gid); - }); - } else { - return e.at().remove(function() { - return joinGroup(gid); - }); - } - }; - appExports.rejectInvitation = function(e, el) { - var clear; - clear = function() { - return browser.resetDom(model); - }; - if (e.at().path().indexOf('party') !== -1) { - return model.del(e.at().path(), clear); - } else { - return e.at().remove(clear); - } - }; - appExports.groupLeave = function(e, el) { - var group, index, uid; - if (confirm("Leave this group, are you sure?") === true) { - uid = user.get('id'); - group = model.at("groups." + ($(el).attr('data-id'))); - index = group.get('members').indexOf(uid); - if (index !== -1) { - return group.remove('members', index, 1, function() { - var updated; - updated = group.get(); - if (_.isEmpty(updated.members) && (updated.type === 'party')) { - return group.del(function() { - return location.reload(); - }); - } else if (updated.leader === uid) { - return group.set("leader", updated.members[0], function() { - return location.reload(); - }); - } else { - return location.reload(); - } - }); - } - } - }; - /* - Chat Functionality - */ - - model.on('unshift', '_party.chat', function() { - return $('.chat-message').tooltip(); - }); - model.on('unshift', '_habitrpg.chat', function() { - return $('.chat-message').tooltip(); - }); - appExports.sendChat = function(e, el) { - var chat, group, members, message, messages, text, type, uniqMembers; - text = model.get('_chatMessage'); - if (!/\S/.test(text)) { - return; - } - group = e.at(); - members = group.get('members'); - uniqMembers = _.uniq(members); - if (!_.isEqual(uniqMembers, members)) { - group.set('members', uniqMembers); - } - chat = group.at('chat'); - model.set('_chatMessage', ''); - message = { - id: model.id(), - uuid: user.get('id'), - contributor: user.get('backer.contributor'), - npc: user.get('backer.npc'), - text: text, - user: helpers.username(model.get('_user.auth'), model.get('_user.profile.name')), - timestamp: +(new Date) - }; - messages = chat.get() || []; - messages.unshift(message); - messages.splice(200); - chat.set(messages); - type = $(el).attr('data-type'); - if (group.get('type') === 'party') { - return model.set('_user.party.lastMessageSeen', chat.get()[0].id); - } - }; - appExports.chatKeyup = function(e, el, next) { - if (e.keyCode !== 13) { - return next(); - } - return appExports.sendChat(e, el); - }; - appExports.deleteChatMessage = function(e) { - if (confirm("Delete chat message?") === true) { - return e.at().remove(); - } - }; - app.on('render', function(ctx) { - return $('#party-tab-link').on('shown', function(e) { - var messages; - messages = model.get('_party.chat'); - if (!((messages != null ? messages.length : void 0) > 0)) { - return false; - } - return model.set('_user.party.lastMessageSeen', messages[0].id); - }); - }); - appExports.gotoPartyChat = function() { - return model.set('_gamePane', true, function() { - return $('#party-tab-link').tab('show'); - }); - }; - return appExports.assignGroupLeader = function(e, el) { - var newLeader; - newLeader = model.get('_new.groupLeader'); - if (newLeader && (confirm("Assign new leader, you sure?") === true)) { - if (newLeader) { - return e.at().set('leader', newLeader, function() { - return browser.resetDom(model); - }); - } - } - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=groups.map -*/ diff --git a/assets/js/groups.map b/assets/js/groups.map deleted file mode 100644 index 7182240114..0000000000 --- a/assets/js/groups.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "groups.js", - "sourceRoot": "", - "sources": [ - "groups.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/i18n.js b/assets/js/i18n.js deleted file mode 100644 index fff7539865..0000000000 --- a/assets/js/i18n.js +++ /dev/null @@ -1,25 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var i18n; - - i18n = require('derby-i18n'); - - i18n.plurals.add('he', function(n) { - return n; - }); - - i18n.plurals.add('bg', function(n) { - return n; - }); - - i18n.plurals.add('nl', function(n) { - return n; - }); - - module.exports = i18n; - -}).call(this); - -/* -//@ sourceMappingURL=i18n.map -*/ diff --git a/assets/js/i18n.map b/assets/js/i18n.map deleted file mode 100644 index 0c58a9efc3..0000000000 --- a/assets/js/i18n.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "i18n.js", - "sourceRoot": "", - "sources": [ - "i18n.coffee" - ], - "names": [], - "mappings": ";AAAA;CAAA,GAAA,EAAA;;CAAA,CAAA,CAAO,CAAP,GAAO,KAAA;;CAAP,CAEA,CAAA,CAAI,GAAQ,EAAY;CAAD,UAAO;CAA9B,EAAuB;;CAFvB,CAGA,CAAA,CAAI,GAAQ,EAAY;CAAD,UAAO;CAA9B,EAAuB;;CAHvB,CAIA,CAAA,CAAI,GAAQ,EAAY;CAAD,UAAO;CAA9B,EAAuB;;CAJvB,CAMA,CAAiB,CANjB,EAMM,CAAN;CANA" -} \ No newline at end of file diff --git a/assets/js/index.js b/assets/js/index.js deleted file mode 100644 index d6546bc9cf..0000000000 --- a/assets/js/index.js +++ /dev/null @@ -1,184 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var algos, app, async, derby, get, i18n, misc, ready, view, _; - - derby = require('derby'); - - derby.use(require('derby-ui-boot'), { - styles: [] - }); - - derby.use(require('../')); - - derby.use(require('derby-auth/components')); - - app = derby.createApp(module); - - get = app.get, view = app.view, ready = app.ready; - - i18n = require('./i18n'); - - i18n.localize(app, { - availableLocales: ['en', 'he', 'bg', 'nl'], - defaultLocale: 'en', - urlScheme: false, - checkHeader: true - }); - - misc = require('./misc'); - - misc.viewHelpers(view); - - _ = require('lodash'); - - algos = require('habitrpg-shared/script/algos'); - - async = require('async'); - - get('/', function(page, model, params, next) { - var uuid, _ref, _ref1; - if (((_ref = page.params) != null ? (_ref1 = _ref.query) != null ? _ref1.play : void 0 : void 0) != null) { - return page.redirect('/'); - } - /* - Subscribe to the user, the users's party (meta info like party name, member ids, etc), and the party's members. 3 subscriptions. - */ - - uuid = model.get('_userId') || model.session.userId; - return async.waterfall([ - function(cb) { - var myGroupsQuery, publicGroupsQuery; - publicGroupsQuery = model.query('groups').publicGroups(); - myGroupsQuery = model.query('groups').withMember(uuid); - return model.fetch(publicGroupsQuery, myGroupsQuery, cb); - }, function(publicGroups, groups, cb) { - var groupsInfo, groupsObj, guildsQ, membersQ, partyQ; - model.set('_publicGroups', _.sortBy(publicGroups.get(), function(g) { - return -_.size(g.members); - })); - groupsObj = groups.get(); - if (_.isEmpty(groupsObj)) { - return cb(true); - } - groupsInfo = _.reduce(groupsObj, (function(m, g) { - if (g.type === 'guild') { - m.guildIds.push(g.id); - } else { - m.partyId = g.id; - } - m.members = m.members.concat(g.members); - return m; - }), { - guildIds: [], - partyId: null, - members: [] - }); - membersQ = model.query('users').publicInfo(groupsInfo.members); - partyQ = model.query('groups').withIds(groupsInfo.partyId); - guildsQ = model.query('groups').withIds(groupsInfo.guildIds); - return model.fetch(membersQ, partyQ, guildsQ, cb); - } - ], function(err, members, party, guilds) { - var mObj; - if (err && err !== true) { - return next(err); - } - if (members) { - mObj = members.get(); - model.set("_members", _.object(_.pluck(mObj, 'id'), mObj)); - model.set("_membersArray", mObj); - } - if (party) { - model.ref('_party', party); - } - if (guilds) { - model.ref('_guilds', guilds); - } - return model.subscribe("users." + uuid, 'groups.habitrpg', function(err, user, tavern) { - if (err) { - return next(err); - } - model.ref('_user', user); - model.ref('_habitRPG', tavern); - if (!user.get()) { - console.error("User not found - this shouldn't be happening!"); - return page.redirect('/logout'); - } - require('./items').server(model); - _.each(['habit', 'daily', 'todo', 'reward'], function(type) { - model.refList("_" + type + "List", "_user.tasks", "_user." + type + "Ids"); - return true; - }); - return page.render(); - }); - }); - }); - - ready(function(model) { - var browser, tz, user; - user = model.at('_user'); - misc.fixCorruptUser(model); - browser = require('./browser'); - require('./tasks').app(exports, model); - require('./items').app(exports, model); - require('./groups').app(exports, model, app); - require('./profile').app(exports, model); - require('./pets').app(exports, model); - require('../server/private').app(exports, model); - if (model.flags.nodeEnv !== 'production') { - require('./debug').app(exports, model); - } - browser.app(exports, model, app); - require('./unlock').app(exports, model); - require('./filters').app(exports, model); - require('./challenges').app(exports, model); - exports.removeAt = function(e, el) { - var confirmMessage; - if ((confirmMessage = $(el).attr('data-confirm')) != null) { - if (confirm(confirmMessage) !== true) { - return; - } - } - e.at().remove(); - if ($(el).attr('data-refresh')) { - return browser.resetDom(model); - } - }; - tz = user.get("preferences.timezoneOffset"); - if (!(tz && tz === (new Date()).getTimezoneOffset())) { - user.set('preferences.timezoneOffset', (new Date()).getTimezoneOffset()); - } - /* - Cron - */ - - return misc.batchTxn(model, function(uObj, paths) { - _.each(['habit', 'daily', 'todo', 'reward'], function(type) { - uObj["" + type + "s"] = _.where(uObj.tasks, { - type: type - }); - return true; - }); - algos.cron(uObj, { - paths: paths - }); - if (_.isEmpty(paths) || (paths['lastCron'] && _.size(paths) === 1)) { - return; - } - if (paths['stats.hp']) { - delete paths['stats.hp']; - return setTimeout(function() { - browser.resetDom(model); - return user.set('stats.hp', uObj.stats.hp); - }, 750); - } - }, { - cron: true - }); - }); - -}).call(this); - -/* -//@ sourceMappingURL=index.map -*/ diff --git a/assets/js/index.map b/assets/js/index.map deleted file mode 100644 index 5e457e04d4..0000000000 --- a/assets/js/index.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "index.js", - "sourceRoot": "", - "sources": [ - "index.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/items.js b/assets/js/items.js deleted file mode 100644 index 82a0ebbeac..0000000000 --- a/assets/js/items.js +++ /dev/null @@ -1,64 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var items, updateStore, _; - - items = require('habitrpg-shared/script/items'); - - _ = require('lodash'); - - updateStore = function(model) { - var nextItems; - nextItems = items.updateStore(model.get('_user')); - return _.each(nextItems, function(v, k) { - model.set("_items.next." + k, v); - return true; - }); - }; - - /* - server exports - */ - - - module.exports.server = function(model) { - model.set('_items', items.items); - return updateStore(model); - }; - - /* - app exports - */ - - - module.exports.app = function(appExports, model) { - var misc; - misc = require('./misc'); - model.on("set", "_user.items.*", function() { - return updateStore(model); - }); - appExports.buyItem = function(e, el) { - return misc.batchTxn(model, function(uObj, paths) { - var ret; - ret = items.buyItem(uObj, $(el).attr('data-type'), { - paths: paths - }); - if (ret === false) { - return alert("Not enough GP"); - } - }); - }; - appExports.activateRewardsTab = function() { - model.set('_activeTabRewards', true); - return model.set('_activeTabPets', false); - }; - return appExports.activatePetsTab = function() { - model.set('_activeTabPets', true); - return model.set('_activeTabRewards', false); - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=items.map -*/ diff --git a/assets/js/items.map b/assets/js/items.map deleted file mode 100644 index 2dce2ace55..0000000000 --- a/assets/js/items.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "items.js", - "sourceRoot": "", - "sources": [ - "items.coffee" - ], - "names": [], - "mappings": ";AAAA;CAAA,KAAA,eAAA;;CAAA,CAAA,CAAQ,EAAR,EAAQ,uBAAA;;CAAR,CACA,CAAI,IAAA,CAAA;;CADJ,CAGA,CAAc,EAAA,IAAC,EAAf;CACE,OAAA,CAAA;CAAA,EAAY,CAAZ,CAAiB,EAAa,EAA9B,EAAY;CACX,CAAiB,CAAA,CAAlB,KAAA,EAAA;CAA2B,CAA6B,CAA7B,EAAK,CAAL,QAAW;CAApB,YAA0C;CAA5D,IAAkB;CALpB,EAGc;;CAId;;;CAPA;;CAAA,CAUA,CAAwB,EAAA,CAAlB,CAAQ,EAAW;CACvB,CAAoB,CAApB,CAAA,CAAK,GAAL;CACY,IAAZ,MAAA;CAZF,EAUwB;;CAIxB;;;CAdA;;CAAA,CAiBA,CAAA,EAAqB,CAAf,CAAQ,EAAQ,CAAD;CACnB,GAAA,IAAA;CAAA,EAAO,CAAP,GAAO,CAAA;CAAP,CAEA,CAAiC,CAAjC,CAAK,IAA4B,MAAjC;CAAgD,IAAZ,MAAA,EAAA;CAApC,IAAiC;CAFjC,CAIyB,CAAJ,CAArB,GAAA,EAAsB,CAAZ;CACH,CAAgB,CAAA,CAAjB,CAAJ,GAAA,CAAsB,IAAtB;CACE,EAAA,SAAA;CAAA,CAA0B,CAA1B,CAAM,CAAK,EAAL,CAAN,GAA0B;CAAyB,CAAC,GAAD,KAAC;CAApD,SAAM;CACN,EAA0B,CAAA,CAAO,GAAjC;CAAM,IAAN,UAAA,EAAA;UAFmB;CAArB,MAAqB;CALvB,IAIqB;CAJrB,EASgC,CAAhC,KAAgC,CAAtB,QAAV;CACE,CAA+B,CAA/B,CAAA,CAAK,CAAL,aAAA;CACM,CAAsB,CAA5B,EAAK,QAAL,GAAA;CAXF,IASgC;CAGrB,EAAkB,MAAA,CAAnB,CAAV,IAAA;CACE,CAA4B,CAA5B,CAAA,CAAK,CAAL,UAAA;CACM,CAAyB,CAA/B,EAAK,QAAL,MAAA;CAfiB,IAaU;CA9B/B,EAiBqB;CAjBrB" -} \ No newline at end of file diff --git a/assets/js/misc.js b/assets/js/misc.js deleted file mode 100644 index 7abb475820..0000000000 --- a/assets/js/misc.js +++ /dev/null @@ -1,323 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var algos, batchTxn, helpers, indexedPath, items, taskInChallenge, _; - - _ = require('lodash'); - - algos = require('habitrpg-shared/script/algos'); - - items = require('habitrpg-shared/script/items').items; - - helpers = require('habitrpg-shared/script/helpers'); - - module.exports.batchTxn = batchTxn = function(model, cb, options) { - var batch, paths, ret, setOps, uObj, user; - if (options == null) { - options = {}; - } - _.defaults(options, { - user: model.at("_user"), - cron: false, - done: function() {} - }); - user = options.user; - uObj = helpers.hydrate(user.get()); - batch = { - set: function(k, v) { - helpers.dotSet(k, v, uObj); - return paths[k] = true; - }, - get: function(k) { - return helpers.dotGet(k, uObj); - } - }; - paths = {}; - model._dontPersist = true; - ret = cb(uObj, paths, batch); - _.each(paths, function(v, k) { - user.pass({ - cron: options.cron - }).set(k, batch.get(k)); - return true; - }); - model._dontPersist = false; - if (!_.isEmpty(paths)) { - setOps = _.reduce(paths, (function(m, v, k) { - m[k] = batch.get(k); - return m; - }), {}); - user.set("update__", setOps, options.done); - } else { - options.done(); - } - return ret; - }; - - /* - We can't always use refLists, but we often still need to get a positional path by id: eg, users.1234.tasks.5678.value - For arrays (which use indexes, not id-paths), here's a helper function so we can run indexedPath('users',:user.id,'tasks',:task.id,'value) - */ - - - indexedPath = function() { - var _this = this; - return _.reduce(arguments, function(m, v) { - if (!m) { - return v; - } - if (_.isString(v)) { - return "" + m + "." + v; - } - return ("" + m + ".") + _.findIndex(_this.model.get(m), v); - }, ''); - }; - - taskInChallenge = function(task) { - if (!(task != null ? task.challenge : void 0)) { - return void 0; - } - return this.model.at(indexedPath.call(this, "groups." + task.group.id + ".challenges", { - id: task.challenge - }, "" + task.type + "s", { - id: task.id - })); - }; - - /* - algos.score wrapper for habitrpg-helpers to work in Derby. We need to do model.set() instead of simply setting the - object properties, and it's very difficult to diff the two objects and find dot-separated paths to set. So we to first - clone our user object (if we don't do that, it screws with model.on() listeners, ping Tyler for an explaination), - perform the updates while tracking paths, then all the values at those paths - */ - - - module.exports.score = function(model, taskId, direction, allowUndo) { - var delta, drop; - if (allowUndo == null) { - allowUndo = false; - } - drop = void 0; - delta = batchTxn(model, function(uObj, paths) { - var chal, chalTask, chalUser, cu, previousUndo, tObj, tObjBefore, timeoutId, _ref, _ref1, _ref2, _ref3, _ref4; - tObj = uObj.tasks[taskId]; - if (allowUndo) { - tObjBefore = _.cloneDeep(tObj); - if ((_ref = tObjBefore.type) === 'daily' || _ref === 'todo') { - tObjBefore.completed = !tObjBefore.completed; - } - previousUndo = model.get('_undo'); - if (previousUndo != null ? previousUndo.timeoutId : void 0) { - clearTimeout(previousUndo.timeoutId); - } - timeoutId = setTimeout((function() { - return model.del('_undo'); - }), 20000); - model.set('_undo', { - stats: _.cloneDeep(uObj.stats), - task: tObjBefore, - timeoutId: timeoutId - }); - } - delta = algos.score(uObj, tObj, direction, { - paths: paths - }); - if ((_ref1 = uObj._tmp) != null ? _ref1.streakBonus : void 0) { - model.set('_streakBonus', uObj._tmp.streakBonus); - } - drop = (_ref2 = uObj._tmp) != null ? _ref2.drop : void 0; - if ((chalTask = taskInChallenge.call({ - model: model - }, tObj)) && (chalTask != null ? chalTask.get() : void 0)) { - model._dontPersist = false; - chalTask.incr("value", delta); - chal = model.at(indexedPath.call({ - model: model - }, "groups." + tObj.group.id + ".challenges", { - id: tObj.challenge - })); - chalUser = function() { - return indexedPath.call({ - model: model - }, chal.path(), 'users', { - id: uObj.id - }); - }; - cu = model.at(chalUser()); - if (!(cu != null ? cu.get() : void 0)) { - chal.push("users", { - id: uObj.id, - name: helpers.username(uObj.auth, (_ref3 = uObj.profile) != null ? _ref3.name : void 0) - }); - cu = model.at(chalUser()); - } else { - cu.set('name', helpers.username(uObj.auth, (_ref4 = uObj.profile) != null ? _ref4.name : void 0)); - } - cu.set("" + tObj.type + "s." + tObj.id, { - value: tObj.value, - history: tObj.history - }); - return model._dontPersist = true; - } - }, { - done: function() { - if (drop && (typeof $ !== "undefined" && $ !== null)) { - model.set('_drop', drop); - return $('#item-dropped-modal').modal('show'); - } - } - }); - return delta; - }; - - /* - Cleanup task-corruption (null tasks, rogue/invisible tasks, etc) - Obviously none of this should be happening, but we'll stop-gap until we can find & fix - Gotta love refLists! see https://github.com/lefnire/habitrpg/issues/803 & https://github.com/lefnire/habitrpg/issues/6343 - */ - - - module.exports.fixCorruptUser = function(model) { - var resetDom, tasks, user; - user = model.at('_user'); - tasks = user.get('tasks'); - _.each(tasks, function(task, key) { - if (!(((task != null ? task.id : void 0) != null) && ((task != null ? task.type : void 0) != null))) { - user.del("tasks." + key); - delete tasks[key]; - } - return true; - }); - resetDom = false; - batchTxn(model, function(uObj, paths, batch) { - var uniqInvites, uniqPets, _ref; - uniqPets = _.uniq(uObj.items.pets); - if (!_.isEqual(uniqPets, uObj.items.pets)) { - batch.set('items.pets', uniqPets); - } - if ((_ref = uObj.invitations) != null ? _ref.guilds : void 0) { - uniqInvites = _.uniq(uObj.invitations.guilds); - if (!_.isEqual(uniqInvites, uObj.invitations.guilds)) { - batch.set('invitations.guilds', uniqInvites); - } - } - ['habit', 'daily', 'todo', 'reward'].forEach(function(type) { - var idList, preened, taskIds, union; - idList = uObj["" + type + "Ids"]; - taskIds = _.pluck(_.where(tasks, { - type: type - }), 'id'); - union = _.union(idList, taskIds); - preened = _.filter(union, function(id) { - return id && _.contains(taskIds, id); - }); - if (!_.isEqual(idList, preened)) { - batch.set("" + type + "Ids", preened); - console.error(uObj.id + ("'s " + type + "s were corrupt.")); - } - return true; - }); - return resetDom = !_.isEmpty(paths); - }); - if (resetDom) { - return require('./browser').resetDom(model); - } - }; - - module.exports.viewHelpers = function(view) { - view.fn("percent", function(x, y) { - if (x === 0) { - x = 1; - } - return Math.round(x / y * 100); - }); - view.fn('indexOf', function(str1, str2) { - if (!(str1 && str2)) { - return false; - } - return str1.indexOf(str2) !== -1; - }); - view.fn("round", Math.round); - view.fn("floor", Math.floor); - view.fn("ceil", Math.ceil); - view.fn("lt", function(a, b) { - return a < b; - }); - view.fn('gt', function(a, b) { - return a > b; - }); - view.fn("mod", function(a, b) { - return parseInt(a) % parseInt(b) === 0; - }); - view.fn("notEqual", function(a, b) { - return a !== b; - }); - view.fn("and", function() { - return _.reduce(arguments, function(cumm, curr) { - return cumm && curr; - }); - }); - view.fn("or", function() { - return _.reduce(arguments, function(cumm, curr) { - return cumm || curr; - }); - }); - view.fn("truarr", function(num) { - return num - 1; - }); - view.fn('count', function(arr) { - return (arr != null ? arr.length : void 0) || 0; - }); - view.fn('int', { - get: function(num) { - return num; - }, - set: function(num) { - return [parseInt(num)]; - } - }); - view.fn('indexedPath', indexedPath); - view.fn("encodeiCalLink", helpers.encodeiCalLink); - view.fn("gems", function(balance) { - return balance * 4; - }); - view.fn("username", helpers.username); - view.fn("tnl", algos.tnl); - view.fn('equipped', helpers.equipped); - view.fn("gold", helpers.gold); - view.fn("silver", helpers.silver); - view.fn('userStr', helpers.userStr); - view.fn('totalStr', helpers.totalStr); - view.fn('userDef', helpers.userDef); - view.fn('totalDef', helpers.totalDef); - view.fn('itemText', helpers.itemText); - view.fn('itemStat', helpers.itemStat); - view.fn('ownsPet', helpers.ownsPet); - view.fn('taskClasses', helpers.taskClasses); - view.fn('friendlyTimestamp', helpers.friendlyTimestamp); - view.fn('newChatMessages', helpers.newChatMessages); - view.fn('relativeDate', helpers.relativeDate); - view.fn('noTags', helpers.noTags); - view.fn('appliedTags', helpers.appliedTags); - view.fn('taskInChallenge', function(task) { - var _ref; - return (_ref = taskInChallenge.call(this, task)) != null ? _ref.get() : void 0; - }); - view.fn('taskAttrFromChallenge', function(task, attr) { - var _ref; - return (_ref = taskInChallenge.call(this, task)) != null ? _ref.get(attr) : void 0; - }); - view.fn('brokenChallengeLink', function(task) { - var _ref; - return (task != null ? task.challenge : void 0) && !((_ref = taskInChallenge.call(this, task)) != null ? _ref.get() : void 0); - }); - return view.fn('challengeMemberScore', function(member, tType, tid) { - var _ref, _ref1; - return Math.round((_ref = member["" + tType + "s"]) != null ? (_ref1 = _ref[tid]) != null ? _ref1.value : void 0 : void 0); - }); - }; - -}).call(this); - -/* -//@ sourceMappingURL=misc.map -*/ diff --git a/assets/js/misc.map b/assets/js/misc.map deleted file mode 100644 index 47b048bcfb..0000000000 --- a/assets/js/misc.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "misc.js", - "sourceRoot": "", - "sources": [ - "misc.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/pets.js b/assets/js/pets.js deleted file mode 100644 index 93063ffaf4..0000000000 --- a/assets/js/pets.js +++ /dev/null @@ -1,103 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var hatchingPotions, pets, randomVal, _, _ref; - - _ = require('lodash'); - - randomVal = require('habitrpg-shared/script/helpers').randomVal; - - _ref = require('habitrpg-shared/script/items').items, pets = _ref.pets, hatchingPotions = _ref.hatchingPotions; - - /* - app exports - */ - - - module.exports.app = function(appExports, model) { - var user; - user = model.at('_user'); - appExports.chooseEgg = function(e, el) { - return model.ref('_hatchEgg', e.at()); - }; - appExports.hatchEgg = function(e, el) { - var egg, eggIdx, eggs, hatchingPotionIdx, hatchingPotionName, myHatchingPotion, myPets; - hatchingPotionName = $(el).children('select').val(); - myHatchingPotion = user.get('items.hatchingPotions'); - egg = model.get('_hatchEgg'); - eggs = user.get('items.eggs'); - myPets = user.get('items.pets'); - hatchingPotionIdx = myHatchingPotion.indexOf(hatchingPotionName); - eggIdx = eggs.indexOf(egg); - if (hatchingPotionIdx === -1) { - return alert("You don't own that hatching potion yet, complete more tasks!"); - } - if (eggIdx === -1) { - return alert("You don't own that egg yet, complete more tasks!"); - } - if (myPets && myPets.indexOf("" + egg.name + "-" + hatchingPotionName) !== -1) { - return alert("You already have that pet, hatch a different combo."); - } - user.push('items.pets', egg.name + '-' + hatchingPotionName, function() { - eggs.splice(eggIdx, 1); - myHatchingPotion.splice(hatchingPotionIdx, 1); - user.set('items.eggs', eggs); - return user.set('items.hatchingPotions', myHatchingPotion); - }); - return alert('Your egg hatched! Visit your stable to equip your pet.'); - }; - appExports.choosePet = function(e, el, next) { - var modifier, name, pet, petStr, _ref1; - petStr = $(el).attr('data-pet'); - if (user.get('items.pets').indexOf(petStr) === -1) { - return next(); - } - if (user.get('items.currentPet.str') === petStr) { - return user.set('items.currentPet', {}); - } - _ref1 = petStr.split('-'), name = _ref1[0], modifier = _ref1[1]; - pet = _.find(pets, { - name: name - }); - pet.modifier = modifier; - pet.str = petStr; - return user.set('items.currentPet', pet); - }; - appExports.buyHatchingPotion = function(e, el) { - var gems, name, newHatchingPotion; - name = $(el).attr('data-hatchingPotion'); - newHatchingPotion = _.find(hatchingPotions, { - name: name - }); - gems = user.get('balance') * 4; - if (gems >= newHatchingPotion.value) { - if (confirm("Buy this hatching potion with " + newHatchingPotion.value + " of your " + gems + " Gems?")) { - user.push('items.hatchingPotions', newHatchingPotion.name); - return user.set('balance', (gems - newHatchingPotion.value) / 4); - } - } else { - return $('#more-gems-modal').modal('show'); - } - }; - return appExports.buyEgg = function(e, el) { - var gems, name, newEgg; - name = $(el).attr('data-egg'); - newEgg = _.find(pets, { - name: name - }); - gems = user.get('balance') * 4; - if (gems >= newEgg.value) { - if (confirm("Buy this egg with " + newEgg.value + " of your " + gems + " Gems?")) { - user.push('items.eggs', newEgg); - return user.set('balance', (gems - newEgg.value) / 4); - } - } else { - return $('#more-gems-modal').modal('show'); - } - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=pets.map -*/ diff --git a/assets/js/pets.map b/assets/js/pets.map deleted file mode 100644 index b6abb49d67..0000000000 --- a/assets/js/pets.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "pets.js", - "sourceRoot": "", - "sources": [ - "pets.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/profile.js b/assets/js/profile.js deleted file mode 100644 index 168e76aa68..0000000000 --- a/assets/js/profile.js +++ /dev/null @@ -1,135 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var algos, browser, helpers, items, misc, _; - - helpers = require('habitrpg-shared/script/helpers'); - - algos = require('habitrpg-shared/script/algos'); - - browser = require('./browser'); - - items = require('./items'); - - misc = require('./misc'); - - _ = require('lodash'); - - module.exports.app = function(appExports, model) { - var toggleGamePane, user; - user = model.at('_user'); - appExports.revive = function() { - var paths, uObj, _ref; - _ref = [user.get(), {}], uObj = _ref[0], paths = _ref[1]; - algos.revive(uObj, { - paths: paths - }); - return _.each(paths, (function(v, k) { - return user.set(k, helpers.dotGet(k, uObj)); - })); - }; - appExports.reset = function(e, el) { - misc.batchTxn(model, function(uObj, paths, batch) { - batch.set('tasks', {}); - ['habit', 'daily', 'todo', 'reward'].forEach(function(type) { - return batch.set("" + type + "Ids", []); - }); - _.each({ - hp: 50, - lvl: 1, - gp: 0, - exp: 0 - }, function(v, k) { - return batch.set("stats." + k, v); - }); - return _.each({ - armor: 0, - weapon: 0, - head: 0, - shield: 0 - }, function(v, k) { - return batch.set("items." + k, v); - }); - }); - return browser.resetDom(model); - }; - appExports.closeNewStuff = function(e, el) { - return user.set('flags.newStuff', 'hide'); - }; - appExports.customizeGender = function(e, el) { - return user.set('preferences.gender', $(el).attr('data-value')); - }; - appExports.customizeHair = function(e, el) { - return user.set('preferences.hair', $(el).attr('data-value')); - }; - appExports.customizeSkin = function(e, el) { - return user.set('preferences.skin', $(el).attr('data-value')); - }; - appExports.customizeArmorSet = function(e, el) { - return user.set('preferences.armorSet', $(el).attr('data-value')); - }; - appExports.restoreSave = function() { - return misc.batchTxn(model, function(uObj, paths, batch) { - return $('#restore-form input').each(function() { - var path, val, _ref; - _ref = [$(this).attr('data-for'), parseInt($(this).val() || 1)], path = _ref[0], val = _ref[1]; - return batch.set(path, val); - }); - }); - }; - appExports.toggleHeader = function(e, el) { - return user.set('preferences.hideHeader', !user.get('preferences.hideHeader')); - }; - appExports.deleteAccount = function(e, el) { - return model.del("users." + (user.get('id')), function() { - return location.href = "/logout"; - }); - }; - appExports.profileAddWebsite = function(e, el) { - var newWebsite; - newWebsite = model.get('_newProfileWebsite'); - if (/^(\s)*$/.test(newWebsite)) { - return; - } - user.unshift('profile.websites', newWebsite); - return model.set('_newProfileWebsite', ''); - }; - appExports.profileEdit = function(e, el) { - return model.set('_profileEditing', true); - }; - appExports.profileSave = function(e, el) { - return model.set('_profileEditing', false); - }; - appExports.profileRemoveWebsite = function(e, el) { - var i, sites; - sites = user.get('profile.websites'); - i = sites.indexOf($(el).attr('data-website')); - sites.splice(i, 1); - return user.set('profile.websites', sites); - }; - toggleGamePane = function() { - return model.set('_gamePane', !model.get('_gamePane'), function() { - return browser.setupTooltips(); - }); - }; - appExports.clickAvatar = function(e, el) { - var uid; - uid = $(el).attr('data-uid'); - if (uid === model.get('_userId')) { - return toggleGamePane(); - } else { - return $("#avatar-modal-" + uid).modal('show'); - } - }; - appExports.toggleGamePane = function() { - return toggleGamePane(); - }; - return appExports.toggleResting = function() { - return model.set('_user.flags.rest', !model.get('_user.flags.rest')); - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=profile.map -*/ diff --git a/assets/js/profile.map b/assets/js/profile.map deleted file mode 100644 index 8bc026ac7d..0000000000 --- a/assets/js/profile.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "profile.js", - "sourceRoot": "", - "sources": [ - "profile.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/tasks.js b/assets/js/tasks.js deleted file mode 100644 index d114eded69..0000000000 --- a/assets/js/tasks.js +++ /dev/null @@ -1,222 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var algos, helpers, misc, moment, _; - - algos = require('habitrpg-shared/script/algos'); - - helpers = require('habitrpg-shared/script/helpers'); - - _ = require('lodash'); - - moment = require('moment'); - - misc = require('./misc'); - - /* - Make scoring functionality available to the app - */ - - - module.exports.app = function(appExports, model) { - var user; - user = model.at('_user'); - appExports.addTask = function(e, el) { - var newModel, newTask, text, type; - type = $(el).attr('data-task-type'); - newModel = model.at('_new' + type.charAt(0).toUpperCase() + type.slice(1)); - text = newModel.get(); - if (/^(\s)*$/.test(text) || text === void 0) { - return; - } - newTask = { - id: model.id(), - type: type, - text: text, - notes: '', - value: 0 - }; - newTask.tags = _.reduce(user.get('filters'), (function(memo, v, k) { - if (v) { - memo[k] = v; - } - return memo; - }), {}); - switch (type) { - case 'habit': - newTask = _.defaults({ - up: true, - down: true - }, newTask); - break; - case 'reward': - newTask = _.defaults({ - value: 20 - }, newTask); - break; - case 'daily': - newTask = _.defaults({ - repeat: { - su: true, - m: true, - t: true, - w: true, - th: true, - f: true, - s: true - }, - completed: false - }, newTask); - break; - case 'todo': - newTask = _.defaults({ - completed: false - }, newTask); - } - e.at().unshift(newTask); - return newModel.set(''); - }; - appExports.del = function(e) { - if (confirm("Are you sure you want to delete this task?") !== true) { - return; - } - $('[rel=tooltip]').tooltip('hide'); - user.del("tasks." + (e.get('id'))); - return e.at().remove(); - }; - appExports.clearCompleted = function(e, el) { - var completedIds, todoIds; - completedIds = _.pluck(_.where(model.get('_todoList'), { - completed: true - }), 'id'); - todoIds = user.get('todoIds'); - _.each(completedIds, function(id) { - user.del("tasks." + id); - return true; - }); - return user.set('todoIds', _.difference(todoIds, completedIds)); - }; - appExports.toggleDay = function(e, el) { - var task; - task = model.at(e.target); - if (/active/.test($(el).attr('class'))) { - return task.set('repeat.' + $(el).attr('data-day'), false); - } else { - return task.set('repeat.' + $(el).attr('data-day'), true); - } - }; - appExports.toggleTaskEdit = function(e, el) { - var chartPath, editPath, id, _ref; - id = e.get('id'); - _ref = ["_tasks.editing." + id, "_page.charts." + id], editPath = _ref[0], chartPath = _ref[1]; - model.set(editPath, !(model.get(editPath))); - return model.set(chartPath, false); - }; - appExports.toggleChart = function(e, el) { - var chart, data, history, historyPath, id, matrix, options, togglePath, _ref, _ref1, _ref2, _ref3; - id = $(el).attr('data-id'); - _ref = ['', ''], historyPath = _ref[0], togglePath = _ref[1]; - switch (id) { - case 'exp': - _ref1 = ['_page.charts.exp', '_user.history.exp'], togglePath = _ref1[0], historyPath = _ref1[1]; - break; - case 'todos': - _ref2 = ['_page.charts.todos', '_user.history.todos'], togglePath = _ref2[0], historyPath = _ref2[1]; - break; - default: - _ref3 = ["_page.charts." + id, "_user.tasks." + id + ".history"], togglePath = _ref3[0], historyPath = _ref3[1]; - model.set("_tasks.editing." + id, false); - } - history = model.get(historyPath); - model.set(togglePath, !(model.get(togglePath))); - matrix = [['Date', 'Score']]; - _.each(history, function(obj) { - return matrix.push([moment(obj.date).format('MM/DD/YY'), obj.value]); - }); - data = google.visualization.arrayToDataTable(matrix); - options = { - title: 'History', - backgroundColor: { - fill: 'transparent' - } - }; - chart = new google.visualization.LineChart($("." + id + "-chart")[0]); - return chart.draw(data, options); - }; - appExports.todosShowRemaining = function() { - return model.set('_showCompleted', false); - }; - appExports.todosShowCompleted = function() { - return model.set('_showCompleted', true); - }; - /* - Call scoring functions for habits & rewards (todos & dailies handled below) - */ - - appExports.score = function(e, el) { - var direction, id; - id = $(el).parents('li').attr('data-id'); - direction = $(el).attr('data-direction'); - return misc.score(model, id, direction, true); - }; - /* - This is how we handle appExports.score for todos & dailies. Due to Derby's special handling of `checked={:task.completd}`, - the above function doesn't work so we need a listener here - */ - - user.on('set', 'tasks.*.completed', function(i, completed, previous, isLocal, passed) { - var direction; - if (!isLocal || (passed != null ? passed.cron : void 0)) { - return; - } - direction = completed ? 'up' : 'down'; - return misc.score(model, i, direction, true); - }); - /* - Undo - */ - - appExports.undo = function() { - var taskPath, undo; - undo = model.get('_undo'); - if (undo != null ? undo.timeoutId : void 0) { - clearTimeout(undo.timeoutId); - } - model.del('_undo'); - _.each(undo.stats, function(val, key) { - user.set("stats." + key, val); - return true; - }); - taskPath = "tasks." + undo.task.id; - return _.each(undo.task, function(val, key) { - if (key === 'id' || key === 'type') { - return true; - } - if (key === 'completed') { - user.pass({ - cron: true - }).set("" + taskPath + ".completed", val); - } else { - user.set("" + taskPath + "." + key, val); - } - return true; - }); - }; - appExports.tasksToggleAdvanced = function(e, el) { - return $(el).next('.advanced-option').toggleClass('visuallyhidden'); - }; - appExports.tasksSaveAndClose = function() { - $('[rel=tooltip]').tooltip(); - return $('[rel=popover]').popover(); - }; - return appExports.tasksSetPriority = function(e, el) { - var dataId; - dataId = $(el).parent('[data-id]').attr('data-id'); - return model.at(e.target).set('priority', $(el).attr('data-priority')); - }; - }; - -}).call(this); - -/* -//@ sourceMappingURL=tasks.map -*/ diff --git a/assets/js/tasks.map b/assets/js/tasks.map deleted file mode 100644 index 2190d51830..0000000000 --- a/assets/js/tasks.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "tasks.js", - "sourceRoot": "", - "sources": [ - "tasks.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/assets/js/unlock.js b/assets/js/unlock.js deleted file mode 100644 index 8e81cfe41e..0000000000 --- a/assets/js/unlock.js +++ /dev/null @@ -1,135 +0,0 @@ -// Generated by CoffeeScript 1.6.3 -(function() { - var hatchingPotions, pets, randomVal, _, _ref; - - _ = require('lodash'); - - randomVal = require('habitrpg-shared/script/helpers').randomVal; - - _ref = require('habitrpg-shared/script/items').items, pets = _ref.pets, hatchingPotions = _ref.hatchingPotions; - - /* - Listeners to enabled flags, set notifications to the user when they've unlocked features - */ - - - module.exports.app = function(appExports, model) { - var alreadyShown, showPopover, user; - user = model.at('_user'); - alreadyShown = function(before, after) { - return !(!before && after === true); - }; - showPopover = function(selector, title, html, placement) { - if (placement == null) { - placement = 'bottom'; - } - $(selector).popover('destroy'); - html += " [Close]"; - return $(selector).popover({ - title: title, - placement: placement, - trigger: 'manual', - html: true, - content: html - }).popover('show'); - }; - user.on('set', 'flags.customizationsNotification', function(after, before) { - var html; - if (alreadyShown(before, after)) { - return; - } - $('.main-herobox').popover('destroy'); - html = "Click your avatar to customize your appearance."; - return showPopover('.main-herobox', 'Customize Your Avatar', html, 'bottom'); - }); - user.on('set', 'flags.itemsEnabled', function(after, before) { - var html; - if (alreadyShown(before, after)) { - return; - } - html = "\nCongratulations, you have unlocked the Item Store! You can now buy weapons, armor, potions, etc. Read each item's comment for more information."; - return showPopover('div.rewards', 'Item Store Unlocked', html, 'left'); - }); - user.on('set', 'flags.petsEnabled', function(after, before) { - var html; - if (alreadyShown(before, after)) { - return; - } - html = "\nYou have unlocked Pets! You can now buy pets with Gems (note, you replenish Gems with real-life money - so chose your pets wisely!)"; - return showPopover('#rewardsTabs', 'Pets Unlocked', html, 'left'); - }); - user.on('set', 'flags.partyEnabled', function(after, before) { - var html; - if (user.get('party.current') || alreadyShown(before, after)) { - return; - } - html = "Be social, join a party and play Habit with your friends! You'll be better at your habits with accountability partners. Click User -> Options -> Party, and follow the instructions. LFG anyone?"; - return showPopover('.user-menu', 'Party System', html, 'bottom'); - }); - user.on('set', 'flags.dropsEnabled', function(after, before) { - var dontPersist, egg; - if (alreadyShown(before, after)) { - return; - } - egg = randomVal(pets); - dontPersist = model._dontPersist; - model._dontPersist = false; - user.push('items.eggs', egg); - model._dontPersist = dontPersist; - return $('#drops-enabled-modal').modal('show'); - }); - user.on('push', 'items.pets', function(after, before) { - var dontPersist; - if (user.get('achievements.beastMaster')) { - return; - } - if (before >= 90) { - dontPersist = model._dontPersist; - model._dontPersist = false; - user.set('achievements.beastMaster', true, (function() { - return model._dontPersist = dontPersist; - })); - return $('#beastmaster-achievement-modal').modal('show'); - } - }); - user.on('set', 'items.*', function(after, before) { - var dontPersist, items; - if (user.get('achievements.ultimateGear')) { - return; - } - items = user.get('items'); - if (parseInt(items.weapon) >= 6 && parseInt(items.armor) >= 5 && parseInt(items.head) >= 5 && parseInt(items.shield) >= 5) { - dontPersist = model._dontPersist; - model._dontPersist = false; - user.set('achievements.ultimateGear', true, (function() { - return model._dontPersist = dontPersist; - })); - return $('#max-gear-achievement-modal').modal('show'); - } - }); - return user.on('set', 'tasks.*.streak', function(id, after, before) { - var dontPersist; - if (after > 0) { - if ((after % 21) === 0) { - dontPersist = model._dontPersist; - model._dontPersist = false; - user.incr('achievements.streak', 1, (function() { - return model._dontPersist = dontPersist; - })); - return $('#streak-achievement-modal').modal('show'); - } else if ((before - after === 1) && (before % 21 === 0)) { - dontPersist = model._dontPersist; - model._dontPersist = false; - return user.incr('achievements.streak', -1, (function() { - return model._dontPersist = dontPersist; - })); - } - } - }); - }; - -}).call(this); - -/* -//@ sourceMappingURL=unlock.map -*/ diff --git a/assets/js/unlock.map b/assets/js/unlock.map deleted file mode 100644 index f953012de2..0000000000 --- a/assets/js/unlock.map +++ /dev/null @@ -1,10 +0,0 @@ -{ - "version": 3, - "file": "unlock.js", - "sourceRoot": "", - "sources": [ - "unlock.coffee" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/views/header/avatar.jade b/views/header/avatar.jade new file mode 100644 index 0000000000..42c5a9e603 --- /dev/null +++ b/views/header/avatar.jade @@ -0,0 +1,13 @@ +figure.herobox(data-name='{{username(profile.auth, profile.profile.name)}}', data-level='{{profile.stats.lvl}}', data-checkpet='{hasPet: profile.items.pet}', data-checkuser='{isUser: profile.id == user.id}', data-uid='{{profile.id}}', x-bind='click:clickAvatar', rel='popover', data-placement='bottom', data-trigger='hover', data-html='true', data-content="
Level: {{profile.stats.lvl}}
GP: {{profile.stats.gp | number:0}}
{{count(profile.items.pets)}} / 90 Pets Found
") + .character-sprites + span(ng-class='{zzz:profile.flags.rest}') + span(class='{{profile.preferences.gender}}_skin_{{profile.preferences.skin}}') + span(class='{{profile.preferences.gender}}_hair_{{profile.preferences.hair}}') + span(class='{{equipped("armor", profile.items.armor, profile.preferences, profile.backer.tier)}}') + span(class='{{equipped("head", profile.items.head, profile.preferences, profile.backer.tier)}}', ng-show='profile.preferences.showHelm') + span(class='{{profile.preferences.gender}}_head_0', ng-hide='profile.preferences.showHelm') + span(class='{{equipped("shield",profile.items.shield,profile.preferences,profile.backer.tier)}}') + span(class='{{equipped("weapon",profile.items.weapon,profile.preferences,profile.backer.tier)}}') + // FIXME handle @minimal, this might have to be a directive + span.current-pet(class='Pet-{{profile.items.currentPet.name}}-{{profile.items.currentPet.modifier}}', ng-show='profile.items.currentPet && !minimal') + .avatar-level Lvl {{profile.stats.lvl}} diff --git a/views/header/header.jade b/views/header/header.jade new file mode 100644 index 0000000000..d6846e4e03 --- /dev/null +++ b/views/header/header.jade @@ -0,0 +1,35 @@ +// @TODO ui:connectionAlert +.header-wrap + a.label.undo-button(x-bind='click:undo', ng-show='_undo') Undo + include ./menu + + header.site-header(ng-class='{hidden: user.preferences.hideHeader}', role='banner', data-partysize='{{party.members.length>1 ? truarr(party.members.length) : 0}}') + // avatar + .herobox-wrap.main-herobox(ng-controller='UserAvatarCtrl') + include ./avatar + //app:avatar:avatar(profile='{{user}}', main='true') + // stat bars + .hero-stats + .meter.health(title='Health') + .bar(style='width: {{percent(user.stats.hp, 50)}}%;') + span.meter-text + i.icon-heart {{user.stats.hp | number:0}} / 50 + .meter.experience(title='Experience') + .bar(style='width: {{percent(user.stats.exp,tnl(user.stats.lvl))}}%;') + span.meter-text + i.icon-star {{user.stats.exp | number:0}} / {{tnl(user.stats.lvl)}} + // FIXME doesn't look great here, but the "Experience" CSS title rollover covers it where it was before + span(ng-show='user.history.exp') + a(x-bind='click:toggleChart', data-id='exp', rel='tooltip', title='Progress') + i.icon-signal + // party + // I have an idea to use this loop for the user's herobox/avatar as well + NOTE TO SELF: Ask Tyler if some kind of inter-leaving is possible + where we can put ONE of the results of this loop BEFORE the progress bars, and the rest after + .herobox-wrap(ng-repeat='memberId in _party.members', ng-class='{hidden: memberId == userId}') + app:avatar:avatar(ng-hide='memberId == userId', profile='{{_members[memberId]}}', party='true') + // Would be way cleaner as a Derby template `data-content=""`, but it was just printing HTML as text + // + I've re-implemented the rollover using the actual `herobox`/avatar template and data-attributes. + This Derby template idea would have been really handy but this is pretty versatile, and keeps it all in the avatar section + app:alerts:hiding-bailey diff --git a/views/header/menu.jade b/views/header/menu.jade new file mode 100644 index 0000000000..1cb77dd337 --- /dev/null +++ b/views/header/menu.jade @@ -0,0 +1,18 @@ +.user-menu + button.task-action-btn.tile.solid(ng-hide='authenticated()', style='cursor: pointer;', ng-click="modals.login = true") Login / Register + ul.nav.site-nav(ng-show='authenticated()') + li.flyout + h1.task-action-btn.tile.solid.user-reporter {{username(user.auth, user.profile.name)}} + ul.flyout-content.nav.stacked + li + a.task-action-btn.tile.solid(x-bind='click:toggleGamePane') + span(ng-show='_gamePane') Tasks + span(ng-hide='_gamePane') Options + li + a.task-action-btn.tile.solid(href='/logout') Logout + // party invitation notification + a(ng-show='user.party.invitation', style='cursor: pointer;', x-bind='click:gotoPartyChat') + i.icon-user + // party chat notification + a(ng-show='newChatMessages(_party.chat,user.party.lastMessageSeen)', style='cursor: pointer;', x-bind='click:gotoPartyChat') + i.icon-comment(rel='tooltip', title='New Party Messages') diff --git a/views/index.jade b/views/index.jade index cae7fbd88c..df43cd7fc4 100644 --- a/views/index.jade +++ b/views/index.jade @@ -2,13 +2,9 @@ extends layout block content div(ng-app="habitrpg", ng-controller="RootCtrl") - // -------- Header -------- - ui:connectionAlert - include ./shared/login - .header-wrap - a.label.undo-button(x-bind='click:undo', ng-show='_undo') Undo - | app:settings:menu - include ./shared/header + include ./modals/login + include ./header/header + span(ng-class='{hidden: _gamePane}') | app:filters:filters diff --git a/views/shared/login.jade b/views/modals/login.jade similarity index 85% rename from views/shared/login.jade rename to views/modals/login.jade index e1789e4f85..c284dfbaa1 100644 --- a/views/shared/login.jade +++ b/views/modals/login.jade @@ -1,6 +1,5 @@ div(ng-controller='AuthCtrl') - button.btn(ng-click='showing = true') Login / Register - div(modal='showing', close='') + div(modal='modals.login', close='') .modal-header h3 Login / Register .modal-body @@ -25,6 +24,6 @@ div(ng-controller='AuthCtrl') | derby-auth:register .modal-footer - button.btn.btn-warning.cancel(ng-click='showing = false') Cancel + button.btn.btn-warning.cancel(ng-click='modals.login = false') Cancel diff --git a/views/options/settings.html b/views/options/settings.html index 561181bf65..33a902492e 100644 --- a/views/options/settings.html +++ b/views/options/settings.html @@ -112,35 +112,3 @@ {{/}} - - -
- {{#unless _loggedIn}} - - {{else}} - - {{/}} - - - {#if _user.party.invitation} - - {/} - - - {#if newChatMessages(_party.chat,_user.party.lastMessageSeen)} - - {/} - -
diff --git a/views/shared/header.jade b/views/shared/header.jade deleted file mode 100644 index 90764492f7..0000000000 --- a/views/shared/header.jade +++ /dev/null @@ -1,30 +0,0 @@ -header.site-header(ng-class='{hidden: user.preferences.hideHeader}', role='banner', data-partysize='{{party.members.length>1 ? truarr(party.members.length) : 0}}') - {{user.auth.local.username}} - // avatar - .herobox-wrap.main-herobox - app:avatar:avatar(profile='{{user}}', main='true') - // stat bars - .hero-stats - .meter.health(title='Health') - .bar(style='width: {{percent(user.stats.hp, 50)}}%;') - span.meter-text - i.icon-heart {{user.stats.hp | number:0}} / 50 - .meter.experience(title='Experience') - .bar(style='width: {{percent(user.stats.exp,tnl(user.stats.lvl))}}%;') - span.meter-text - i.icon-star {{user.stats.exp | number:0}} / {{tnl(user.stats.lvl)}} - // FIXME doesn't look great here, but the "Experience" CSS title rollover covers it where it was before - span(ng-show='user.history.exp') - a(x-bind='click:toggleChart', data-id='exp', rel='tooltip', title='Progress') - i.icon-signal - // party - // I have an idea to use this loop for the user's herobox/avatar as well - NOTE TO SELF: Ask Tyler if some kind of inter-leaving is possible - where we can put ONE of the results of this loop BEFORE the progress bars, and the rest after - .herobox-wrap(ng-repeat='memberId in _party.members', ng-class='{hidden: memberId == userId}') - app:avatar:avatar(ng-hide='memberId == userId', profile='{{_members[memberId]}}', party='true') - // Would be way cleaner as a Derby template `data-content=""`, but it was just printing HTML as text - // - I've re-implemented the rollover using the actual `herobox`/avatar template and data-attributes. - This Derby template idea would have been really handy but this is pretty versatile, and keeps it all in the avatar section - app:alerts:hiding-bailey diff --git a/views/tasks/avatar.html b/views/tasks/avatar.html index f4b63aef6f..6c5a37a2fc 100644 --- a/views/tasks/avatar.html +++ b/views/tasks/avatar.html @@ -10,43 +10,39 @@
+
Level: {{profile.stats.lvl}}
+
GP: {{profile.stats.gp | number:0)}}
+
{{count(profile.items.pets)}} / 90 Pets Found
+ ">
- {#with @profile.preferences as :p} - - - - - {#if :p.showHelm} - - {else} - - {/} - - - {/} - {#if and(@profile.items.currentPet, not(@minimal))} - - {/} + + + + + + + + + + + + +
-
Lvl {@profile.stats.lvl}
+
Lvl {{profile.stats.lvl}}