From 2e0d83a9cb7e0dda496afd810197f987dcb9eaa2 Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Tue, 12 Nov 2013 17:31:08 +1100 Subject: [PATCH 1/4] remove broken website field from profile Websites can be added with markdown in the blurb field --- views/options/profile.jade | 18 +----------------- views/shared/modals/members.jade | 3 --- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/views/options/profile.jade b/views/options/profile.jade index abcf987fc8..076a269d61 100644 --- a/views/options/profile.jade +++ b/views/options/profile.jade @@ -97,13 +97,6 @@ script(id='partials/options.profile.profile.html', type='text/ng-template') span.muted(ng-hide='profile.profile.blurb') - None - //{{profile.profile.blurb | linky:'_blank'}} - h4 Websites - ul(ng-show='profile.profile.websites.length > 0') - // TODO let's remove links eventually, since we can do markdown on profiles - li(ng-repeat='website in profile.profile.websites') - a(target='_blank', ng-href='{{website}}') {{website}} - span.muted(ng-hide='profile.profile.websites.length > 0') - None - - div.whatever-options(ng-show='_editing.profile') // TODO use photo-upload instead: https://groups.google.com/forum/?fromgroups=#!topic/derbyjs/xMmADvxBOak .control-group.option-large @@ -116,15 +109,6 @@ script(id='partials/options.profile.profile.html', type='text/ng-template') label.control-label Blurb textarea.option-content(style='height:15em;', placeholder='Blurb', ng-model='editingProfile.blurb') include ../shared/formatting-help - .control-group.option-large - label.control-label Websites - form(ng-submit='addWebsite()') - input.option-content(type='url', ng-model='_newWebsite', placeholder='Add Website') - ul - li(ng-repeat='website in editingProfile.websites') - | {{website}} - a(ng-click='removeWebsite($index)') - i.icon-remove script(id='partials/options.profile.html', type="text/ng-template") ul.nav.nav-tabs @@ -140,4 +124,4 @@ script(id='partials/options.profile.html', type="text/ng-template") .tab-content .tab-pane.active - div(ui-view) \ No newline at end of file + div(ui-view) diff --git a/views/shared/modals/members.jade b/views/shared/modals/members.jade index 2f5f1ae43e..10de5b3f05 100644 --- a/views/shared/modals/members.jade +++ b/views/shared/modals/members.jade @@ -9,9 +9,6 @@ div(ng-controller='MemberModalCtrl') .span6 img(ng-show='profile.profile.imageUrl', ng-src='{{profile.profile.imageUrl}}') markdown(ng-show='profile.profile.blurb', ng-model='profile.profile.blurb') - ul(ng-show='profile.profile.websites') - li(ng-repeat='website in profile.profile.websites') - a(href='{{website}}', target='_blank') {{website}} ul.muted.unstyled(ng-if='profile.auth.timestamps', style='margin-top:10px;') li {{profile._id}} li(ng-show='profile.auth.timestamps.created') - Member since {{timestamp(profile.auth.timestamps.created)}} - From 4980a2e6b5e4be55a8c56885ce5fc525475747d8 Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Tue, 12 Nov 2013 22:25:40 +1100 Subject: [PATCH 2/4] remove groups websites --- public/js/controllers/groupsCtrl.js | 9 --------- views/options/social/group.jade | 16 +--------------- 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index 5f6bd6e115..8631838161 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -16,15 +16,6 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A group._editing = false; } - $scope.addWebsite = function(group){ - group.websites.push(group._newWebsite); - group._newWebsite = ''; - } - - $scope.removeWebsite = function(group, $index){ - group.websites.splice($index,1); - } - // ------ Modals ------ $scope.clickMember = function(uid, forceShow) { diff --git a/views/options/social/group.jade b/views/options/social/group.jade index 9e6281afd2..1c8e0cd884 100644 --- a/views/options/social/group.jade +++ b/views/options/social/group.jade @@ -25,27 +25,13 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank' .control-group.option-large label.control-label Logo URL input.option-content(type='url', placeholder='Logo URL', ng-model='group.logo') - .control-group.option-large - label.control-label Websites - form(ng-submit='addWebsite(group)') - input.option-content(type='url', ng-model='group._newWebsite', placeholder='Add Website') - ul - li(ng-repeat='website in group.websites') - | {{website}} - a(ng-click='removeWebsite(group, $index)') - i.icon-remove h4 Assign Group Leader select#group-leader-selection(ng-model='group._newLeader', ng-options='member.profile.name for member in group.members') - + div(ng-show='!group._editing') img.pull-right(ng-show='group.logo', style='max-width:150px', ng-src='{{group.logo}}') markdown(ng-model='group.description') - div(ng-show='group.websites') - h4 Websites - ul - li(ng-repeat='website in group.websites') - a(target='_blank', ng-href='{{website}}') {{website}} include ./challenge-box From 153d1957a80486116c2d3c806c1ac4200f24f850 Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Thu, 14 Nov 2013 15:20:33 +1100 Subject: [PATCH 3/4] clean code from websites Need review ! --- locales/bg/app.json | 1 - locales/en/app.json | 2 -- locales/nl/app.json | 1 - public/js/controllers/userCtrl.js | 9 --------- src/controllers/groups.js | 4 ++-- src/models/group.js | 10 +--------- src/models/user.js | 3 +-- 7 files changed, 4 insertions(+), 26 deletions(-) diff --git a/locales/bg/app.json b/locales/bg/app.json index eb32658356..98bda94565 100644 --- a/locales/bg/app.json +++ b/locales/bg/app.json @@ -24,7 +24,6 @@ "PhotoUrl": "Линк към снимка", "FullName": "Име", "Blurb": "Blurb", - "Websites": "Уебсайт", "Achievements": "Постижения", "OriginalUser": "Автентичен юзър", "Inventory": "Инвентория", diff --git a/locales/en/app.json b/locales/en/app.json index 154c571819..c548374ed2 100644 --- a/locales/en/app.json +++ b/locales/en/app.json @@ -136,8 +136,6 @@ "photoUrl": "Photo Url", "fullName": "Full Name", "blurb": "Blurb", - "websites": "Websites", - "addWebsites": "Add Websites", "items" : "Items", "weapon" : "Weapon", "armor" : "armor", diff --git a/locales/nl/app.json b/locales/nl/app.json index c677c8b5ef..2b4e37ed34 100644 --- a/locales/nl/app.json +++ b/locales/nl/app.json @@ -24,7 +24,6 @@ "PhotoUrl": "Foto URL", "FullName": "Volledige Naam", "Blurb": "Blurp", - "Websites": "Voeg Website Toe", "Achievements": "Prestaties", "OriginalUser": "Originele Gebruiker!", "Inventory": "Inventaris", diff --git a/public/js/controllers/userCtrl.js b/public/js/controllers/userCtrl.js index d306020935..793f54c9f7 100644 --- a/public/js/controllers/userCtrl.js +++ b/public/js/controllers/userCtrl.js @@ -26,15 +26,6 @@ habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$ $scope._editing.profile = false; } - $scope.addWebsite = function(){ - if (!$scope.editingProfile.websites) $scope.editingProfile.websites = []; - $scope.editingProfile.websites.push($scope._newWebsite); - $scope._newWebsite = ''; - } - $scope.removeWebsite = function($index){ - $scope.editingProfile.websites.splice($index,1); - } - $scope.unlock = User.unlock; } diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 4aefd73e08..5a92b3d986 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -196,7 +196,7 @@ api.update = function(req, res, next) { if(group.leader !== user._id) return res.json(401, {err: "Only the group leader can update the group!"}); - 'name description logo websites logo leaderMessage leader'.split(' ').forEach(function(attr){ + 'name description logo logo leaderMessage leader'.split(' ').forEach(function(attr){ group[attr] = req.body[attr]; }); @@ -414,4 +414,4 @@ api.removeMember = function(req, res, next){ return res.json(400, {err: "User not found among group's members!"}); } -} \ No newline at end of file +} diff --git a/src/models/group.js b/src/models/group.js index c8d9e16551..37fbecf1fc 100644 --- a/src/models/group.js +++ b/src/models/group.js @@ -13,7 +13,6 @@ var GroupSchema = new Schema({ type: {type: String, "enum": ['guild', 'party']}, privacy: {type: String, "enum": ['private', 'public']}, _v: {type: Number,'default': 0}, - websites: Array, chat: Array, /* # [{ @@ -49,13 +48,6 @@ function removeDuplicates(doc){ doc.members = uniqMembers; } } - - if (doc.websites) { - var uniqWebsites = _.uniq(doc.websites); - if (uniqWebsites.length != doc.websites.length) { - doc.websites = uniqWebsites; - } - } } // FIXME this isn't always triggered, since we sometimes use update() or findByIdAndUpdate() @@ -80,4 +72,4 @@ GroupSchema.methods.toJSON = function(){ } module.exports.schema = GroupSchema; -module.exports.model = mongoose.model("Group", GroupSchema); \ No newline at end of file +module.exports.model = mongoose.model("Group", GroupSchema); diff --git a/src/models/user.js b/src/models/user.js index 383b53271d..62bba76a40 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -178,7 +178,6 @@ var UserSchema = new Schema({ blurb: String, imageUrl: String, name: String, - websites: Array // styled like --> ["http://ocdevel.com" ] }, stats: { hp: Number, @@ -300,4 +299,4 @@ UserSchema.methods.unlink = function(options, cb) { } module.exports.schema = UserSchema; -module.exports.model = mongoose.model("User", UserSchema); \ No newline at end of file +module.exports.model = mongoose.model("User", UserSchema); From 9083645dc34c79a1759b1a6a961be46358e78219 Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Thu, 14 Nov 2013 17:57:07 +1100 Subject: [PATCH 4/4] =?UTF-8?q?migration=20script:=20websites=20=E2=86=92?= =?UTF-8?q?=20blurb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- migrations/20131114_migrate_websites_to_blurb.js | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 migrations/20131114_migrate_websites_to_blurb.js diff --git a/migrations/20131114_migrate_websites_to_blurb.js b/migrations/20131114_migrate_websites_to_blurb.js new file mode 100644 index 0000000000..7db34c373c --- /dev/null +++ b/migrations/20131114_migrate_websites_to_blurb.js @@ -0,0 +1,7 @@ +// Migrate all users websites to the profile blurb field +db.users.find({'profile.websites':{$exists: true}}).forEach(function(user){ + db.users.update({_id: user._id}, { + $set: {"profile.blurb": user.profile.blurb + '\n * ' + user.profile.websites.join('\n * ')}, + $unset: {'profile.websites': ''} + }) +})