<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>apiNG Advanced Demo</title>
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<!-- apiNG -->
<script src="//cdn.jsdelivr.net/aping/latest/aping.min.js"></script>
<!-- apiNG config for api keys (only for plugins, that needs api keys) -->
<script src="aping-config.js"></script>
<!-- apiNG plugins -->
<script src="//cdn.jsdelivr.net/aping.plugin-flickr/latest/aping-plugin-flickr.min.js"></script>
<script src="//cdn.jsdelivr.net/aping.plugin-dailymotion/latest/aping-plugin-dailymotion.min.js"></script>
<script src="//cdn.jsdelivr.net/aping.plugin-rss/latest/aping-plugin-rss.min.js"></script>
<script src="//cdn.jsdelivr.net/aping.plugin-wikipedia/latest/aping-plugin-wikipedia.min.js"></script>
<!-- apiNG design -->
<script src="aping-design-default.js"></script>
<link rel="stylesheet" href="aping-design-default.css">
<!-- apiNG design dependencies -->
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular-sanitize.min.js"></script>
<script src="//cdn.jsdelivr.net/angular.masonry-packed/0.14.5/angular-masonry-packed.min.js"></script>
<script src="//cdn.jsdelivr.net/angular.linkify/1.2.0/angular-linkify.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment-with-locales.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-moment/0.10.3/angular-moment.min.js"></script>
<!-- angular module -->
<script src="app.js"></script>
<link href='//fonts.googleapis.com/css?family=Economica' rel='stylesheet' type='text/css'>
</head>
<body ng-app="app" style="background-color:#fed;">
<div class="container" ng-controller="apingDefaultDesignController">
<br>
<!-- apiNG: http://johnnythetank.github.io/apiNG/ -->
<!-- configure flickr: https://github.com/JohnnyTheTank/apiNG-plugin-flickr -->
<!-- configure dailymotion: https://github.com/JohnnyTheTank/apiNG-plugin-dailymotion -->
<!-- configure rss: https://github.com/JohnnyTheTank/apiNG-plugin-rss -->
<!-- configure wikipedia: https://github.com/JohnnyTheTank/apiNG-plugin-wikipedia -->
<!-- add more plugins: https://aping.readme.io/docs/all-plugins -->
<input type="text" placeholder="search" ng-model="searchFeed">
<!--<input type="number" step="5" placeholder="items" ng-model="searchItem">-->
<button ng-click="updateFeed()">search</button>
<aping
template-url="social_template.html"
items="5"
model="social"
order-by="timestamp"
order-reverse="true"
aping-wikipedia="{{wikipediaFeed}}"
aping-flickr="{{flickrFeed}}"
aping-dailymotion="{{dialymotionFeed}}"
aping-rss="{{rssFeed}}">
</aping>
</div>
</body>
</html>
var app = angular.module('app', ['jtt_aping', 'jtt_aping_flickr', 'jtt_aping_dailymotion', 'jtt_aping_rss', 'jtt_aping_wikipedia', 'jtt_aping_design_default']);
<div class="aping-design-default aping-design-default-social">
<strong>Advanced Demo Social Wall</strong>
<br><br>
<div ng-controller="apingDefaultDesignController">
<div data-images-loaded masonry class="row" preserve-order reload-on-show ng-show="results">
<div class="masonry-brick col-lg-4 col-sm-6 col-xs-12" ng-repeat="item in results" ng-cloak>
<div class="box">
<div class="box-header" ng-if="item.img_url">
<a ng-href="{{::item.post_url}}" target="_blank" class="aping-picture-link"><img ng-src="{{::item.img_url}}" class="main-image img-responsive" alt=""></a>
</div>
<div class="box-content">
<h4 class="" ng-if="item.caption">{{::item.caption}}</h4>
<div class="" ng-if="item.text" linkify>
{{::item.text | limitTo: 250}}{{::item.text.length > 250 ? '...' : ''}}
</div>
<div class="clearfix">
<br>
</div>
<div class="box-footer text-muted">
<div class="pull-left text-left">
<div ng-if="item.blog_name">
<a href="{{::item.blog_link}}" target="_blank">{{::item.blog_name}}</a>
</div>
<div am-time-ago="{{::item.timestamp}}"></div>
</div>
<div class="pull-right">
<a ng-href="{{::item.post_url}}" target="_blank" class="platform-link">
({{::item.platform}})
</a>
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
</div>
</div>
</div>
</div>
"use strict";
angular.module('jtt_aping')
.config(['$provide', function($provide) {
$provide.value("apingDefaultSettings", {
apingApiKeys: {
//add here your api keys
//https://aping.readme.io/docs/configuration
}
});
}]);
"use strict";
angular.module('jtt_aping_design_default', ['wu.masonry', 'linkify', 'angularMoment', 'ngSanitize'])
.run(['amMoment', function(amMoment) {
amMoment.changeLocale('en');
}])
.controller('apingDefaultDesignController', ['$scope', '$sce', wikipediaFactory, flickrFactory, function($scope, $sce, wikipediaFactory, flickrFactory) {
// feed search config
$scope.facebookFeed = [{}];
$scope.twitterFeed = [{}];
$scope.flickrFeed = [{
'tags': 'lion,eagle,tiger,jaguar,leopard',
'tagmode': 'any'
}];
$scope.wikipediaFeed = [{
'search': 'sports',
'items': 9
}, {
'title': 'FC Bayern Munich'
}];
$scope.dialymotionFeed = [{
'userId': 'FailArmy',
'items': 4,
'search': '2015'
}, {
'search': 'Louis C K',
'language': 'en',
'items': 8
}];
$scope.rssFeed = [{
'path': 'http://blog.hackerearth.com/feed'
}, {
'path': 'http://activeadventures.com/blog/feed/'
}, {
'path': 'http://www.sk-gaming.com/rss/'
}];
// feed search functionality
$scope.searchFeed = [];
$scope.searchItem = [];
$scope.updateFeed = function(value) {
$scope.searchFeed = value;
};
// rss settings
$scope.addNewRSS = function(url) {
$scope.feedConfig.rss.push({
'path': url
});
};
$scope.$on('apiNG.resultMerged', function() {
//do anything on resultMerged event
});
$scope.refresh = function() {
$scope.$broadcast("masonry.reload");
};
$scope.$on('imagesLoaded.SUCCESS', function() {
$scope.refresh();
});
$scope.$on('imagesLoaded.ALWAYS', function() {
$scope.refresh();
});
$scope.getUrl = function(url) {
if (url) {
return $sce.trustAsResourceUrl(url);
}
};
$scope.getHtml = function(string) {
if (string) {
return $sce.trustAsHtml(string);
}
};
}]);
.aping-design-default .masonry-brick .box {
background-color: white;
font-family: 'Economica', sans-serif;
-webkit-transition: all 250ms ease;
-moz-transition: all 250ms ease;
-ms-transition: all 250ms ease;
-o-transition: all 250ms ease;
transition: all 250ms ease;
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.4);
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.4);
margin-bottom: 2rem;
}
.aping-design-default .masonry-brick .box:hover {
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.8);
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.8);
}
.aping-design-default .masonry-brick .box a.aping-picture-link {
-webkit-transition: all 250ms ease;
-moz-transition: all 250ms ease;
-ms-transition: all 250ms ease;
-o-transition: all 250ms ease;
transition: all 250ms ease;
}
.aping-design-default .masonry-brick .box a.aping-picture-link:hover {
opacity: 1;
-webkit-filter: grayscale(0.5) sepia(0.6);
filter: grayscale(0.5) sepia(0.6);
}
.aping-design-default .masonry-brick .box img.main-image {
border-radius: 0;
width: 100%;
height: auto;
}
.aping-design-default .masonry-brick .box .box-content {
padding: 1rem;
overflow: hidden;
}
.aping-design-default .masonry-brick .box .box-footer {
height: 1em;
}
.aping-design-default .masonry-brick .box .box-footer .platform-box {
margin-left: 10px;
margin-top: 10px;
}
.aping-design-default .masonry-brick .box .box-footer .platform-box a.platform-link {
display: inline-block;
-webkit-transition: all 250ms ease;
-moz-transition: all 250ms ease;
-ms-transition: all 250ms ease;
-o-transition: all 250ms ease;
transition: all 250ms ease;
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.4);
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.4);
-webkit-border-radius: 40px;
-moz-border-radius: 40px;
-ms-border-radius: 40px;
border-radius: 40px;
}
.aping-design-default .masonry-brick .box .box-footer .platform-box a.platform-link:hover {
-webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.8);
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.8);
}