|
@@ -1,131 +1,142 @@
|
|
|
-(function(){
|
|
|
+(function() {
|
|
|
'use strict';
|
|
|
|
|
|
var website = openerp.website;
|
|
|
|
|
|
website.snippet.animationRegistry.js_get_posts = website.snippet.Animation.extend({
|
|
|
- selector : ".js_get_posts",
|
|
|
+ selector: ".js_get_posts",
|
|
|
|
|
|
- start: function(){
|
|
|
+ start: function() {
|
|
|
this.redrow();
|
|
|
},
|
|
|
- stop: function(){
|
|
|
+ stop: function() {
|
|
|
this.clean();
|
|
|
},
|
|
|
|
|
|
- redrow: function(debug){
|
|
|
+ redrow: function(debug) {
|
|
|
this.clean(debug);
|
|
|
this.build(debug);
|
|
|
},
|
|
|
|
|
|
- clean:function(debug){
|
|
|
+ clean: function(debug) {
|
|
|
this.$target.empty();
|
|
|
},
|
|
|
|
|
|
- build: function(debug){
|
|
|
- var self = this,
|
|
|
- limit = self.$target.data("posts_limit"),
|
|
|
- blog_id = self.$target.data("filter_by_blog_id"),
|
|
|
- template = self.$target.data("template"),
|
|
|
- loading = self.$target.data("loading");
|
|
|
+ build: function(debug) {
|
|
|
+ var self = this,
|
|
|
+ limit = self.$target.data("posts_limit"),
|
|
|
+ blog_id = self.$target.data("filter_by_blog_id"),
|
|
|
+ template = self.$target.data("template"),
|
|
|
+ loading = self.$target.data("loading");
|
|
|
|
|
|
// prevent user's editing
|
|
|
- self.$target.attr("contenteditable","False");
|
|
|
+ self.$target.attr("contenteditable", "False");
|
|
|
|
|
|
// if no data, then use defaults values
|
|
|
- if(!limit)limit = 3;
|
|
|
- if(!template) template = 'snippet_latest_posts.media_list_template';
|
|
|
-
|
|
|
+ if (!limit) limit = 3;
|
|
|
+ if (!template) template = 'snippet_latest_posts.media_list_template';
|
|
|
+
|
|
|
// create the domain
|
|
|
- var domain = [['website_published', '=', true]]
|
|
|
- if (blog_id) {domain.push(['blog_id', '=', parseInt(blog_id)]); }
|
|
|
+ var domain = [
|
|
|
+ ['website_published', '=', true]
|
|
|
+ ]
|
|
|
+ if (blog_id) {
|
|
|
+ domain.push(['blog_id', '=', parseInt(blog_id)]);
|
|
|
+ }
|
|
|
|
|
|
// call posts
|
|
|
openerp.jsonRpc('/snippet_latest_posts/render', 'call', {
|
|
|
- 'template': template,
|
|
|
- 'domain': domain,
|
|
|
- 'limit': limit,
|
|
|
- }).then(function(posts) {
|
|
|
- if (loading && loading == true) {
|
|
|
- // perfrorm an intro animation
|
|
|
- self.loading(posts, debug);
|
|
|
- } else {
|
|
|
- // just print the posts
|
|
|
- $(posts).appendTo(self.$target);
|
|
|
- }
|
|
|
- })
|
|
|
- .fail(function(e) {
|
|
|
- // debug in js console
|
|
|
- return;
|
|
|
- });
|
|
|
+ 'template': template,
|
|
|
+ 'domain': domain,
|
|
|
+ 'limit': limit,
|
|
|
+ }).then(function(posts) {
|
|
|
+ if (loading && loading == true) {
|
|
|
+ // perfrorm an intro animation
|
|
|
+ self.loading(posts, debug);
|
|
|
+ } else {
|
|
|
+ // just print the posts
|
|
|
+ $(posts).appendTo(self.$target);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .fail(function(e) {
|
|
|
+ // debug in js console
|
|
|
+ return;
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
- loading: function(posts, debug){
|
|
|
+ loading: function(posts, debug) {
|
|
|
var self = this,
|
|
|
- $posts = $(posts);
|
|
|
+ $posts = $(posts);
|
|
|
|
|
|
- if(!$posts.first().find(".loading_container") && !$posts.first().is(".loading_container")){
|
|
|
+ if (!$posts.first().find(".loading_container") && !$posts.first().is(".loading_container")) {
|
|
|
console.log("loading_container dont exist??")
|
|
|
- if(debug) {
|
|
|
+ if (debug) {
|
|
|
console.info("No '.loading_container' defined \n Please, add a 'loading_container' class to the element that must be filled by the loading bar");
|
|
|
}
|
|
|
- } else if(!$posts.first().is(".thumb") && !$posts.first().find(".thumb")) {
|
|
|
+ } else if (!$posts.first().is(".thumb") && !$posts.first().find(".thumb")) {
|
|
|
console.log("thumb dont exist??")
|
|
|
- if(debug) {
|
|
|
+ if (debug) {
|
|
|
console.info("No '.thumb' defined \n Please, add a 'thumb' class to your thumbnail div");
|
|
|
}
|
|
|
- }
|
|
|
- else {
|
|
|
- $posts.each(function(){
|
|
|
- var $post = $(this),
|
|
|
- $load_c = $post.find(".loading_container"),
|
|
|
- $thumb = $post.find(".thumb"),
|
|
|
- $progress = $('<div class="progress js-loading"><div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0;" /></div>')
|
|
|
+ } else {
|
|
|
+ $posts.each(function() {
|
|
|
+ var $post = $(this),
|
|
|
+ $load_c = $post.find(".loading_container"),
|
|
|
+ $thumb = $post.find(".thumb"),
|
|
|
+ $progress = $('<div class="progress js-loading"><div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0;" /></div>')
|
|
|
|
|
|
// prevent precessing empty post
|
|
|
- if ($post.html() == undefined) {return;}
|
|
|
+ if ($post.html() == undefined) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
// if can't find loading container or thumb inside the post, then they are the post itself
|
|
|
- if($load_c.length == 0) { $load_c = $post }
|
|
|
- if($thumb.length == 0) { $thumb = $post }
|
|
|
+ if ($load_c.length == 0) {
|
|
|
+ $load_c = $post
|
|
|
+ }
|
|
|
+ if ($thumb.length == 0) {
|
|
|
+ $thumb = $post
|
|
|
+ }
|
|
|
|
|
|
$post.addClass("js-loading");
|
|
|
$progress.appendTo($load_c);
|
|
|
$post.appendTo(self.$target);
|
|
|
|
|
|
- var bg = $thumb.css('background-image').replace('url(','').replace(')',''),
|
|
|
- loaded = false;
|
|
|
+ var bg = $thumb.css('background-image').replace('url(', '').replace(')', ''),
|
|
|
+ loaded = false;
|
|
|
|
|
|
- $progress.find(".progress-bar").css("width","50%").attr("aria-valuenow","50");
|
|
|
+ $progress.find(".progress-bar").css("width", "50%").attr("aria-valuenow", "50");
|
|
|
|
|
|
var dummyImg = $('<img/>').attr('src', bg)
|
|
|
.load(function() {
|
|
|
// The post's background image is loaded, let's perform a gracefull intro animation
|
|
|
- $progress.find(".progress-bar").find(".progress-bar").css("width","100%").attr("aria-valuenow","100");
|
|
|
+ $progress.find(".progress-bar").find(".progress-bar").css("width", "100%").attr("aria-valuenow", "100");
|
|
|
setTimeout(function() {
|
|
|
self.showPost($post, $progress);
|
|
|
- },500);
|
|
|
+ }, 500);
|
|
|
$(this).remove();
|
|
|
loaded = true;
|
|
|
});
|
|
|
|
|
|
// Show the post after 5sec without wait for thumb loading
|
|
|
setTimeout(function() {
|
|
|
- if(loaded == false) {
|
|
|
+ if (loaded == false) {
|
|
|
dummyImg.remove();
|
|
|
self.showPost($post, $progress)
|
|
|
}
|
|
|
- },5000);
|
|
|
+ }, 5000);
|
|
|
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- showPost: function($post, $progress){
|
|
|
+ showPost: function($post, $progress) {
|
|
|
$post.removeClass("js-loading");
|
|
|
$progress.fadeOut(500);
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
-})();
|
|
|
+})();
|
|
|
+
|
|
|
+
|