Edify Hub Invites Code Script
by Joshua Dwire
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.0/bootstrap.min.js"></script>
<div class="row">
<div class="col-sm-8 col-sm-offset-2"><h2>Website Invite Script</h2></div>
</div>
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">Website Owners</label>
<div class="col-sm-8">
<textarea id="owners" class="form-control" rows="10"></textarea>
<span id="helpBlock" class="help-block">Run the command <code>db.Websites.distinct("owner")</code>. Copy result as JSON and paste it here.</span>
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Action</label>
<div class="col-sm-8">
<div class="radio">
<label>
<input type="radio" name="action" value="increment" checked="checked" />Increment</label>
</div>
<div class="radio">
<label>
<input type="radio" name="action" value="set" />Set</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Amount</label>
<div class="col-sm-2">
<input type="number" id="amount" class="form-control" value="5"/>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button id="create_query" class="btn btn-primary">Create query</button>
</div></div>
<div class="form-group">
<label class="col-sm-2 control-label">Query</label>
<div class="col-sm-8">
<textarea id="query" class="form-control" rows="5" disabled="disabled"></textarea>
</div>
</div>
</form>
CSS
@import url('https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css');
@import url('https://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css');
.container {
margin-top: 10px;
}
JavaScript
$('#create_query').click(function (e) {
e.preventDefault();
var action = $('input[name="action"]:checked').val(),
amount = parseInt($('#amount').val(), 10),
websiteOwners = null;
try{
websiteOwners = JSON.parse($('#owners').val());
}
catch(ex){}
if(!websiteOwners){
alert('No owners');
return;
}
if(!amount){
alert('Invalid amount');
return;
}
websiteOwners = $.map(websiteOwners, function(val, key) { return val; });
var query = 'db.Users.update({"_id":{"$in":'+JSON.stringify(websiteOwners)+'}}, {'+(action=='set'?'$set':'$inc')+':{"wpSiteInvitesMax":'+amount+'}}, {"multi":true})';
$('#query').val(query);
});