53 lines
No EOL
1.4 KiB
JavaScript
53 lines
No EOL
1.4 KiB
JavaScript
(function() {
|
|
/**
|
|
* Contact details page. The contacts are configurable.
|
|
*/
|
|
angular.module('quayPages').config(['pages', function(pages) {
|
|
pages.create('contact', 'contact.html', ContactCtrl);
|
|
}]);
|
|
|
|
function ContactCtrl($scope, Config) {
|
|
$scope.Config = Config;
|
|
$scope.colsize = Math.floor(12 / Config.CONTACT_INFO.length);
|
|
|
|
$scope.getKind = function(contactInfo) {
|
|
var colon = contactInfo.indexOf(':');
|
|
var scheme = contactInfo.substr(0, colon);
|
|
if (scheme == 'https' || scheme == 'http') {
|
|
if (contactInfo.indexOf('//twitter.com/') > 0) {
|
|
return 'twitter';
|
|
}
|
|
|
|
return 'url';
|
|
}
|
|
|
|
return scheme;
|
|
};
|
|
|
|
$scope.getTitle = function(contactInfo) {
|
|
switch ($scope.getKind(contactInfo)) {
|
|
case 'url':
|
|
return contactInfo;
|
|
|
|
case 'twitter':
|
|
var parts = contactInfo.split('/');
|
|
return '@' + parts[parts.length - 1];
|
|
|
|
case 'tel':
|
|
return contactInfo.substr('tel:'.length);
|
|
|
|
case 'irc':
|
|
// irc://chat.freenode.net:6665/quayio
|
|
var parts = contactInfo.substr('irc://'.length).split('/');
|
|
var server = parts[0];
|
|
if (server.indexOf('freenode') > 0) {
|
|
server = 'Freenode';
|
|
}
|
|
return server + ': #' + parts[parts.length - 1];
|
|
|
|
case 'mailto':
|
|
return contactInfo.substr('mailto:'.length);
|
|
}
|
|
}
|
|
}
|
|
})(); |