PageSourceSearch

https://www.nakayamagumi.com/tmp_js/blog.js

js nakayamagumi.com collected 2026-10-06 08:16:11 UTC 7,383 bytes, 210 lines download raw bytes

1// NOTE: flamingoのpublic/tmp_js/blog.jsも変更必要
2$(function(){
3    var blog_activate_section = {};
4    var _blog_activate = function($blog){
5        var options = blog_options($blog);
6        if($blog.find('.column-container').length){
7            options['current_page'] = 'blog';
8        }
9        var id = get_blog_id($blog);
10        $blog.attr('id', id);
11
12        var vm = new Vue({
13            el: '#' + id,
14            data: {
15                articles: [],
16                paginate: {},
17                archives: [],
18                categories: [],
19                tags: []
20            },
21            filters: {
22                timeFilter: function(time) {
23                    // local            - 2017/09/11 17:30:22
24                    // dev & production - 2017-09-11 17:39:48 +0900
25                    var tmp = time.split(' ');
26                    return tmp[0] + " " + tmp[1];
27                }
28            },
29            methods: {
30                load: function(){
31                    blog_ajax(options, this);
32                },
33                archiveUrl: function(archive) {
34                    return '?archive=' + archive;
35                },
36                // https://branu-jira.atlassian.net/browse/EAT-1462
37                // idにはeng_nameの値が入る
38                categoryUrl: function(id) {
39                    return '/blog/' + id;
40                },
41                pageUrl: function(page) {
42                    return '?page=' + String(page) + '&' + $.param(arg);
43                },
44                tagUrl: function(tag) {
45                    return '?tag=' + tag;
46                }
47            }
48        });
49        vm.load();
50        blog_activate_section[id] = vm;
51    };
52    var _blog_category_activate = function($blog){
53        var options = blog_options($blog);
54        if($blog.find('.column-container').length){
55            options['current_page'] = 'blog';
56        }
57        var id = get_blog_id($blog);
58        $blog.attr('id', id);
59        var vm = new Vue({
60            el: '#' + id,
61            data: {
62                blogs: []
63            },
64            methods: {
65                load: function(){
66                    blog_category_ajax(options, this);
67                }
68            }
69        });
70        vm.load();
71    };
72
73    var blog_activate_update = function ($blog) {
74        var options = blog_options($blog);
75        blog_ajax(options, blog_activate_section[get_blog_id($blog)]);
76    };
77
78    var blog_ajax = function(options, _vm) {
79        // https://branu-jira.atlassian.net/browse/EAT-1462
80        // カテゴリの絞り込みがあればカテゴリを付与
81        var eng_name = '';
82        var paths = location.pathname.split('/')
83
84        if (paths[1] == "blog" && paths.length > 2) {
85          eng_name = '/' + location.pathname.split('/').pop()
86        }
87
88        $.ajax({
89            type: 'GET',
90            url: '/blogs' + eng_name,
91            contentType: 'application/json',
92            data: {
93                page: blog_page,
94                per: options['per'] || arg['per'],
95                blog_id: options['blog_id'] || arg['blog_id'],
96                archive: options['archive'] || arg['archive'],
97                tag: options['tag'] || arg['tag'],
98                search_condition_type: options['search_condition_type'] || arg['search_condition_type'],
99                sidebar: options['sidebar'],
100                current_page: options['current_page'],
101                limit: options['limit']
102            },
103            success: function(data){
104                _vm.articles = data.articles;
105                if(options['sidebar']){
106                    _vm.paginate = data.paginate;
107                    _vm.archives = data.archives;
108                    _vm.categories = data.categories;
109                    _vm.tags = data.tags;
110                }
111                if(_vm.articles.length === 0 && parent.document.getElementById('editor_frame') === null){
112                    $(_vm.$el).parents('.section_name').first().hide();
113                }
114                $(document).ready(function () {
115                    $(".blog_articles_toggle_display").each(function () {
116                        $(this).css("display", "");
117                    });
118                });
119            },
120            error: function() {
121                _vm.articles = [];
122                _vm.paginate = {};
123                _vm.archives = [];
124                _vm.categories = [];
125                _vm.tags = [];
126            }
127        });
128    };
129
130    var blog_category_ajax = function (options, _vm) {
131        $.ajax({
132            type: 'GET',
133            url: '/blogs/category/index',
134            contentType: 'application/json',
135            data: {
136                blog_id: options['blog_id'],
137                current_page: options['current_page'],
138                limit: options['limit']
139            },
140            success: function(data){
141                _vm.blogs = data["blogs"];
142                if(_vm.blogs.length === 0 && parent.document.getElementById('editor_frame') === null){
143                    $(_vm.$el).parents('.section_name').first().hide();
144                }
145                $(document).ready(function () {
146                    $(".blog_articles_toggle_display").each(function () {
147                        $(this).css("display", "");
148                    });
149                });
150            },
151            error: function() {
152                _vm.blogs = [];
153            }
154        });
155    };
156
157    var get_blog_id = function ($blog) {
158        return $blog.parents('section').attr('id') + '-vue';
159    };
160
161    var blog_options = function ($blog) {
162        var options = {};
163        options['per'] = $blog.data('size');
164        options['sidebar'] = $blog.data('sidebar');
165
166        var data_blog_category = $blog.parents('.section_name').attr('data-section_category');
167        if ('undefined' !== typeof data_blog_category && data_blog_category !== "{}") {
168            var data_json = JSON.parse(data_blog_category);
169            options['search_condition_type'] = "category"
170            options['blog_id'] = data_json.id;
171            options['limit'] = data_json.limit;
172        }
173
174        var data_blog_tag = $blog.parents('.section_name').attr('data-section_tag');
175        if ('undefined' !== typeof data_blog_tag && data_blog_tag !== "{}") {
176            var data_json = JSON.parse(data_blog_tag);
177            options['search_condition_type'] = "tag"
178            options['blog_id'] = data_json.id;
179            options['limit'] = data_json.limit;
180        }
181        return options;
182    };
183
184    var parabola = parabola ? parabola : {}
185    parabola.blog_activate = _blog_activate;
186    parabola.blog_category_activate = _blog_category_activate;
187    parabola.blog_activate_update = blog_activate_update;
188
189    var arg = new Object;
190    var blog_page = 1;
191    var pair=location.search.substring(1).split('&');
192    for(var i=0;pair[i];i++) {
193        var kv = pair[i].split('=');
194        if (kv[0] === 'page') {
195            blog_page = kv[1];
196            continue;
197        }
198        arg[kv[0]]=kv[1];
199    }
200    arg['sidebar'] = false;
201
202    $.each($('.blog_list').not('.blog_category'), function(){
203        var $blog = $(this);
204        parabola.blog_activate($blog);
205    });
206    $.each($('.blog_list.blog_category'), function(){
207        var $blog = $(this);
208        parabola.blog_category_activate($blog);
209    });
210});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.