diff --git a/apps/cory/index.json b/apps/cory/index.json index ab71a309..9d0c463a 100644 --- a/apps/cory/index.json +++ b/apps/cory/index.json @@ -1 +1 @@ -{"type":"tildefriends-app","files":{"app.js":"&qvp1qQcymJp9pWxnZXA9/VXFt6FRGj9JCAxNCt/afsU=.sha256","index.html":"&vMOt54ko7CqKGDOaFkozfGwOoCU4QbL2+JE9r4/zDAk=.sha256","vue-material.js":"&K5cdLqXYCENPak/TCINHQhyJhpS4G9DlZHGwoh/LF2g=.sha256","tf-user.js":"&V9Ol799hM6i1PZDbAS91CMhgx7aENDTJnT+KrwK4Lh4=.sha256","tf-message.js":"&e811GqoyT6JhNrgXA1rCB/Y7ggtbOz2xcZP5+rQrrws=.sha256"}} \ No newline at end of file +{"type":"tildefriends-app","files":{"app.js":"&qvp1qQcymJp9pWxnZXA9/VXFt6FRGj9JCAxNCt/afsU=.sha256","index.html":"&sXphZUl6JQm0Cd4UOVqPZu13PDhqQqFk/EOmKneaEhY=.sha256","vue-material.js":"&K5cdLqXYCENPak/TCINHQhyJhpS4G9DlZHGwoh/LF2g=.sha256","tf-user.js":"&V9Ol799hM6i1PZDbAS91CMhgx7aENDTJnT+KrwK4Lh4=.sha256","tf-message.js":"&e811GqoyT6JhNrgXA1rCB/Y7ggtbOz2xcZP5+rQrrws=.sha256","tf.js":"&lYgDJTZaYTvss6Ykzmr3o6KBc6hPFiEzPn6DR3R5Peo=.sha256"}} \ No newline at end of file diff --git a/apps/cory/index/index.html b/apps/cory/index/index.html index 0e58c612..dd102e72 100644 --- a/apps/cory/index/index.html +++ b/apps/cory/index/index.html @@ -9,90 +9,8 @@ + -
diff --git a/apps/cory/index/tf.js b/apps/cory/index/tf.js new file mode 100644 index 00000000..b7d3635d --- /dev/null +++ b/apps/cory/index/tf.js @@ -0,0 +1,83 @@ +"use strict"; +var g_data = { + whoami: null, + connections: [], + messages: [], + users: {}, + broadcasts: [], + showUsers: false, + show_connect_dialog: false, + show_user_dialog: null, + connect: null, + pubs: [], + votes: [], + apps: {}, + share_app: null, +}; + +var g_data_initial = JSON.parse(JSON.stringify(g_data)); +window.addEventListener('message', function(event) { + var key = Object.keys(event.data)[0]; + if (key + 's' in g_data && Array.isArray(g_data[key + 's'])) { + g_data[key + 's'].push(event.data[key]); + } else if (key == 'user') { + Vue.set(g_data.users, event.data.user.user, Object.assign({}, g_data.users[event.data.user.user] || {}, event.data.user.about)); + } else if (key == 'followers') { + if (!g_data.users[event.data.followers.id]) { + Vue.set(g_data.users, event.data.followers.id, {}); + } + Vue.set(g_data.users[event.data.followers.id], 'followers', event.data.followers.users); + } else if (key == 'following') { + if (!g_data.users[event.data.following.id]) { + Vue.set(g_data.users, event.data.following.id, {}); + } + Vue.set(g_data.users[event.data.following.id], 'following', event.data.following.users); + } else if (key == 'broadcasts') { + g_data.broadcasts = event.data.broadcasts; + } else if (key == 'pubs') { + g_data.pubs = event.data.pubs; + } else if (key == 'apps') { + g_data.apps = event.data.apps; + } else if (key == 'clear') { + Object.keys(g_data_initial).forEach(function(key) { + Vue.set(g_data, key, JSON.parse(JSON.stringify(g_data_initial[key]))); + }); + } else { + g_data[key] = event.data[key]; + } +}); +window.addEventListener('load', function() { + Vue.use(VueMaterial.default); + var vue = new Vue({ + el: '#app', + data: g_data, + methods: { + post_message: function() { + if (g_data.share_app) { + window.parent.postMessage({share_app: { + app: g_data.apps[g_data.share_app], + name: g_data.share_app, + text: document.getElementById('post_text').value, + }}, '*'); + } else { + window.parent.postMessage({post: document.getElementById('post_text').value}, '*'); + } + document.getElementById('post_text').value = ''; + }, + ssb_connect: function(connection) { + window.parent.postMessage({connect: connection}, '*'); + }, + content_json: function(message) { + try { + return JSON.parse(message.content); + } catch { + return undefined; + } + }, + refresh: function() { + window.parent.postMessage({refresh: true}, '*'); + }, + } + }); + window.parent.postMessage('ready', '*'); +}); \ No newline at end of file