docbrown/app/assets/javascripts/initializers/initializeSettings.js
rhymes c8abbe9d60 Pro: memberships (#3461)
* Add ProMembership model

* Implement ProMembershipsController#create

* Implement basic ProMembershipsController#show

* Add ProMembership to ledger

* Populate user history after pro subscription is created

* Add fields for expiration notifications

* Add ProMemberships::ExpirationNotifier to notify users of expiring memberships

* Add tasks for recurring jobs to notify users of expiration

* Add auto_recharge column to ProMembership

* Add ProMemberships::Biller (incomplete)

* Fix specs

* Add ProMembership to Administrate

* Fix spec

* Add has_enough_credits? to User and Organization

* Add Payments::Customer class

* Finish ProMembership::Biller functionality

* Fix ProMemberships::Creator check for credits

* Disable destroy actions for ProMembershipsController

* Correctly authenticate ProMembershipsController actions

* Make sure only pro user's history can be indexed

* Add ProMembershipsController#update action for auto recharge

* Use regular AR to save new credits and add touch to the purchaser

* Clarify Pro membership create policy

* Display information about an existing pro membership

* Add UI to show page

* Add system test for Pro membership creation

* Implement edit membership

* Make sure users with pro memberships can access history and dashboard pro

* Fix padding issue

* Show a different text for a user that has credits but not enough for Pro

* Move Pro Membership functionality inside settings

* Update Pro Membership link in email notifications

* Bust all relevant caches

* Add the Pro checkmark around the website

* Use Users::ResaveArticlesJob instead of delay

* Add/remove user from pro-members chat channel

* Use the appropriate Pro checkmark

* Remove unfinished pro elements

* Remove checkmark JS
2019-09-24 10:38:54 -07:00

48 lines
1.2 KiB
JavaScript

'use strict';
/* global timestampToLocalDateTime */
function initializeSettings() {
// highlights organization secret on click
const settingsOrgSecret = document.getElementById('settings-org-secret');
if (settingsOrgSecret) {
settingsOrgSecret.addEventListener('click', event => {
event.target.select();
});
}
// shows RSS fetch time in local time
let timeNode = document.getElementById('rss-fetch-time');
if (timeNode) {
var timeStamp = timeNode.getAttribute('datetime');
var timeOptions = {
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
};
timeNode.textContent = timestampToLocalDateTime(
timeStamp,
navigator.language,
timeOptions,
);
}
// asks for confirmation on activating pro membership
const createProForm = document.getElementById('new_pro_membership');
if (createProForm) {
createProForm.addEventListener('submit', event => {
event.preventDefault();
if (window.confirm('Are you sure?')) {
// eslint-disable-line no-alert
event.target.submit();
return true;
}
return false;
});
}
}