diff --git a/src/database.py b/src/database.py index d5488c1..7e150c2 100644 --- a/src/database.py +++ b/src/database.py @@ -54,6 +54,8 @@ class CalendarDatabase(object): if config.CustomConfig['database-type'] == 'sqlite': self.db = sqlite3.connect(config.CustomConfig['database-config']['url'], check_same_thread = False) + self.db.execute('PRAGMA encoding = "UTF-8";') + self.db.execute('PRAGMA foreign_keys = ON;') elif config.CustomConfig['database-type'] == 'mysql': raise Exception('Not implemented database') else: @@ -323,7 +325,7 @@ class CalendarDatabase(object): @SafeDatabaseOperation def collection_getFullOwn(self, token): username = self.tokenOper_get_username(token) - self.cursor.execute('SELECT * FROM collection WHERE [ccn_user] = ?;', (username, )) + self.cursor.execute('SELECT [ccn_uuid], [ccn_name], [ccn_lastChange] FROM collection WHERE [ccn_user] = ?;', (username, )) return self.cursor.fetchall() @SafeDatabaseOperation @@ -335,7 +337,7 @@ class CalendarDatabase(object): @SafeDatabaseOperation def collection_getDetailOwn(self, token, uuid): username = self.tokenOper_get_username(token) - self.cursor.execute('SELECT * FROM collection WHERE [ccn_user] = ? AND [ccn_uuid] = ?;', (username, uuid)) + self.cursor.execute('SELECT [ccn_uuid], [ccn_name], [ccn_lastChange] FROM collection WHERE [ccn_user] = ? AND [ccn_uuid] = ?;', (username, uuid)) return self.cursor.fetchone() @SafeDatabaseOperation @@ -352,7 +354,7 @@ class CalendarDatabase(object): self.tokenOper_check_valid(token) lastupdate = utils.GenerateUUID() - self.cursor.execute('UPDATE collection SET [ccn_name] = ? [ccn_lastChange] = ? WHERE [ccn_uuid] = ?, [ccn_lastChange] = ?;', ( + self.cursor.execute('UPDATE collection SET [ccn_name] = ?, [ccn_lastChange] = ? WHERE [ccn_uuid] = ? AND [ccn_lastChange] = ?;', ( newname, lastupdate, uuid, @@ -366,7 +368,7 @@ class CalendarDatabase(object): def collection_deleteOwn(self, token, uuid, lastChange): self.tokenOper_check_valid(token) - self.cursor.execute('DELETE FROM collection WHERE [ccn_uuid] = ?, [ccn_lastChange] = ?;', ( + self.cursor.execute('DELETE FROM collection WHERE [ccn_uuid] = ? AND [ccn_lastChange] = ?;', ( uuid, lastChange )) @@ -385,7 +387,7 @@ class CalendarDatabase(object): self.tokenOper_check_valid(token) lastupdate = utils.GenerateUUID() - self.cursor.execute('UPDATE share SET [ccn_lastChange] = ? WHERE [ccn_uuid] = ? AND [ccn_lastChange] = ?;', (lastupdate, uuid, lastChange)) + self.cursor.execute('UPDATE collection SET [ccn_lastChange] = ?, WHERE [ccn_uuid] = ? AND [ccn_lastChange] = ?;', (lastupdate, uuid, lastChange)) if self.cursor.rowcount != 1: raise Exception('Fail to delete due to no matched rows or too much rows.') @@ -400,11 +402,11 @@ class CalendarDatabase(object): self.tokenOper_check_valid(token) lastupdate = utils.GenerateUUID() - self.cursor.execute('UPDATE share SET [ccn_lastChange] = ? WHERE [ccn_uuid] = ? AND [ccn_lastChange] = ?;', (lastupdate, uuid, lastChange)) + self.cursor.execute('UPDATE collection SET [ccn_lastChange] = ? WHERE [ccn_uuid] = ? AND [ccn_lastChange] = ?;', (lastupdate, uuid, lastChange)) if self.cursor.rowcount != 1: raise Exception('Fail to delete due to no matched rows or too much rows.') - self.cursor.execute('SELECT * FROM share WHERE [ccn_uuid] = ? AND [ccn_lastChange] = ?;', (uuid, target)) + self.cursor.execute('SELECT * FROM share WHERE [ccn_uuid] = ? AND [ccn_target] = ?;', (uuid, target)) if len(self.cursor.fetchall()) != 0: raise Exception('Fail to insert duplicated item.') self.cursor.execute('INSERT INTO share VALUES (?, ?);', (uuid, target)) @@ -414,7 +416,7 @@ class CalendarDatabase(object): @SafeDatabaseOperation def collection_getShared(self, token): username = self.tokenOper_get_username(token) - self.cursor.execute('SELECT collection.ccn_uuid, collection.name, collection.user \ + self.cursor.execute('SELECT collection.ccn_uuid, collection.ccn_name, collection.ccn_user \ FROM share INNER JOIN collection \ ON share.ccn_uuid = collection.ccn_uuid \ WHERE share.ccn_target = ?;', (username, )) diff --git a/src/sql/sqlite.sql b/src/sql/sqlite.sql index b0ce859..e8aab63 100644 --- a/src/sql/sqlite.sql +++ b/src/sql/sqlite.sql @@ -1,6 +1,3 @@ -PRAGMA encoding = "UTF-8"; -PRAGMA foreign_keys = ON; - CREATE TABLE user( [ccn_name] TEXT NOT NULL, [ccn_password] TEXT NOT NULL, diff --git a/src/static/i18n/strings_en-US.properties b/src/static/i18n/strings_en-US.properties index 4256948..f9c3b0b 100644 --- a/src/static/i18n/strings_en-US.properties +++ b/src/static/i18n/strings_en-US.properties @@ -46,7 +46,7 @@ ccn-calendar-week-friday=Friday ccn-calendar-week-saturday=Saturday ccn-calendar-week-sunday=Sunday ccn-calendar-shared-list=Shared -ccn-calendar-sharing-ownedList=Owned +ccn-calendar-ownedList=Owned ccn-calendar-sharing-sharingTargetList=Sharing target ccn-calendar-sharing-sharingTargetEditing=Editing: ccn-calendar-sharedItem-sharedBy=Shared by: diff --git a/src/static/i18n/strings_zh-CN.properties b/src/static/i18n/strings_zh-CN.properties index 320b01e..99ba143 100644 --- a/src/static/i18n/strings_zh-CN.properties +++ b/src/static/i18n/strings_zh-CN.properties @@ -46,7 +46,7 @@ ccn-calendar-week-friday=星期五 ccn-calendar-week-saturday=星期六 ccn-calendar-week-sunday=星期日 ccn-calendar-shared-list=被共享的集合 -ccn-calendar-sharing-ownedList=我的集合 +ccn-calendar-ownedList=我的集合 ccn-calendar-sharing-sharingTargetList=分享目标 ccn-calendar-sharing-sharingTargetEditing=正在编辑集合: ccn-calendar-sharedItem-sharedBy=共享人: diff --git a/src/static/js/api.js b/src/static/js/api.js index 366b526..cce4400 100644 --- a/src/static/js/api.js +++ b/src/static/js/api.js @@ -334,7 +334,7 @@ function ccn_api_collection_addSharing(_uuid, _target, _lastChange) { function ccn_api_collection_getShared() { return ccn_api_dataTemplate( - '/api/collection/addSharing', + '/api/collection/getShared', { token: GetApiToken() } diff --git a/src/static/js/page/calendar.js b/src/static/js/page/calendar.js index addc0fa..5579066 100644 --- a/src/static/js/page/calendar.js +++ b/src/static/js/page/calendar.js @@ -1,10 +1,10 @@ // 3 used cache list -var ccn_calendar_sharingListCache = []; -var ccn_calendar_sharingTargetListCache = []; -var ccn_calendar_sharedListCache = []; +var ccn_calendar_owned_listCache = []; +var ccn_calendar_sharing_listCache = []; +var ccn_calendar_shared_listCache = []; // current editing sharing collection -var ccn_calendar_editingSharing = undefined; // the uuid of owned collection +var ccn_calendar_sharing_editingOwned = undefined; // the uuid of owned collection // 2 list which will store sharing and shared collection's display mode. // key is uuid, value is bool @@ -45,12 +45,16 @@ $(document).ready(function() { ccn_i18n_LoadLanguage(); ccn_i18n_ApplyLanguage(); + //refresh once + ccn_calendar_shared_Refresh(); + ccn_calendar_owned_Refresh(); + // bind event $('#ccn-calendar-shared-btnRefresh').click(ccn_calendar_shared_Refresh); - $('#ccn-calendar-sharing-btnAdd').click(ccn_calendar_sharingList_Add); + $('#ccn-calendar-owned-btnAdd').click(ccn_calendar_owned_Add); + $('#ccn-calendar-own-btnRefresh').click(ccn_calendar_owned_Refresh); + $('#ccn-calendar-sharing-btnAdd').click(ccn_calendar_sharing_Add); $('#ccn-calendar-sharing-btnRefresh').click(ccn_calendar_sharing_Refresh); - $('#ccn-calendar-sharingTarget-btnAdd').click(ccn_calendar_sharingTargetList_Add); - $('#ccn-calendar-sharingTarget-btnRefresh').click(ccn_calendar_sharingTarget_Refresh); }); // ================== calendar @@ -61,142 +65,156 @@ function ccn_calendar_LoadCalendarBody() { // ================== collection -function ccn_calendar_sharing_Refresh() { - ccn_calendar_sharingListCache = new Array(); +function ccn_calendar_owned_Refresh() { + ccn_calendar_owned_listCache = new Array(); ccn_calendar_sharing_displayCache = new Array(); var result = ccn_api_collection_getFullOwn(); if(typeof(result) != 'undefined') { for(var index in result) { - ccn_calendar_sharingListCache[result[index][0]] = result[index]; + ccn_calendar_owned_listCache[result[index][0]] = result[index]; ccn_calendar_sharing_displayCache[result[index][0]] = true; } } // render - $('#ccn-calendar-sharingList').empty(); - - var listDOM = $('#ccn-calendar-sharingList'); - for(var index in ccn_calendar_sharingListCache) { - ccn_admin_userList_RenderItem( - ccn_calendar_sharingListCache[index], + var listDOM = $('#ccn-calendar-ownedList'); + listDOM.empty(); + for(var index in ccn_calendar_owned_listCache) { + ccn_calendar_owned_RenderItem( + ccn_calendar_owned_listCache[index], listDOM ) } + + // also, order sharing list clean + ccn_calendar_sharing_editingOwned = undefined; + ccn_calendar_sharing_Refresh(); } -function ccn_calendar_sharing_RenderItem(item, listDOM) { +function ccn_calendar_owned_RenderItem(item, listDOM) { var renderdata = { uuid: item[0], name: item[1] } // render - listDOM.append(ccn_template_sharingItem.render(renderdata)); + listDOM.append(ccn_template_ownedItem.render(renderdata)); // set mode var uuid = renderdata.uuid; - ccn_calendar_sharing_ChangeDisplayMode(uuid, true, false); + ccn_calendar_owned_ChangeDisplayMode(uuid, true, false); // bind event - $('#ccn-calendar-sharingItem-btnEdit-' + uuid).click(ccn_calendar_sharingList_ItemEdit); - $('#ccn-calendar-sharingItem-btnDelete-' + uuid).click(ccn_calendar_sharingList_ItemDelete); - $('#ccn-calendar-sharingItem-btnShare-' + uuid).click(ccn_calendar_sharingList_ItemShare); - $('#ccn-calendar-sharingItem-btnHide-' + uuid).click(ccn_calendar_sharingList_ItemSwitchDisplay); - $('#ccn-calendar-sharingItem-btnShow-' + uuid).click(ccn_calendar_sharingList_ItemSwitchDisplay); - $('#ccn-calendar-sharingItem-btnUpdate-' + uuid).click(ccn_calendar_sharingList_ItemUpdate); - $('#ccn-calendar-sharingItem-btnCancelUpdate-' + uuid).click(ccn_calendar_sharingList_ItemCancelUpdate); + $('#ccn-calendar-ownedItem-btnEdit-' + uuid).click(ccn_calendar_owned_ItemEdit); + $('#ccn-calendar-ownedItem-btnDelete-' + uuid).click(ccn_calendar_owned_ItemDelete); + $('#ccn-calendar-ownedItem-btnShare-' + uuid).click(ccn_calendar_owned_ItemShare); + $('#ccn-calendar-ownedItem-btnHide-' + uuid).click(ccn_calendar_owned_ItemSwitchDisplay); + $('#ccn-calendar-ownedItem-btnShow-' + uuid).click(ccn_calendar_owned_ItemSwitchDisplay); + $('#ccn-calendar-ownedItem-btnUpdate-' + uuid).click(ccn_calendar_owned_ItemUpdate); + $('#ccn-calendar-ownedItem-btnCancelUpdate-' + uuid).click(ccn_calendar_owned_ItemCancelUpdate); } -function ccn_calendar_sharing_ChangeDisplayMode(uuid, isShow, isEdit) { +function ccn_calendar_owned_ChangeDisplayMode(uuid, isShow, isEdit) { if (typeof(isShow) != 'undefined') { if (isShow) { - $('#ccn-calendar-sharingItem-btnHide-' + uuid).show(); - $('#ccn-calendar-sharingItem-btnShow-' + uuid).hide(); + $('#ccn-calendar-ownedItem-btnHide-' + uuid).show(); + $('#ccn-calendar-ownedItem-btnShow-' + uuid).hide(); } else { - $('#ccn-calendar-sharingItem-btnHide-' + uuid).hide(); - $('#ccn-calendar-sharingItem-btnShow-' + uuid).show(); + $('#ccn-calendar-ownedItem-btnHide-' + uuid).hide(); + $('#ccn-calendar-ownedItem-btnShow-' + uuid).show(); } } if (typeof(isEdit) != 'undefined') { if (isEdit) { - $('#ccn-calendar-sharingItem-btnEdit-' + uuid).hide(); - $('#ccn-calendar-sharingItem-btnShare-' + uuid).hide(); - $('#ccn-calendar-sharingItem-btnDelete-' + uuid).hide(); + $('#ccn-calendar-ownedItem-btnEdit-' + uuid).hide(); + $('#ccn-calendar-ownedItem-btnShare-' + uuid).hide(); + $('#ccn-calendar-ownedItem-btnDelete-' + uuid).hide(); - $('#ccn-calendar-sharingItem-btnUpdate-' + uuid).show(); - $('#ccn-calendar-sharingItem-btnCancelUpdate-' + uuid).show(); + $('#ccn-calendar-ownedItem-btnUpdate-' + uuid).show(); + $('#ccn-calendar-ownedItem-btnCancelUpdate-' + uuid).show(); - $('#ccn-admin-userItem-textName-' + uuid).hide(); - $('#ccn-admin-userItem-boxName-' + uuid).show(); + $('#ccn-calendar-ownedItem-textName-' + uuid).hide(); + $('#ccn-calendar-ownedItem-boxName-' + uuid).show(); } else { - $('#ccn-calendar-sharingItem-btnEdit-' + uuid).show(); - $('#ccn-calendar-sharingItem-btnShare-' + uuid).show(); - $('#ccn-calendar-sharingItem-btnDelete-' + uuid).show(); + $('#ccn-calendar-ownedItem-btnEdit-' + uuid).show(); + $('#ccn-calendar-ownedItem-btnShare-' + uuid).show(); + $('#ccn-calendar-ownedItem-btnDelete-' + uuid).show(); - $('#ccn-calendar-sharingItem-btnUpdate-' + uuid).hide(); - $('#ccn-calendar-sharingItem-btnCancelUpdate-' + uuid).hide(); + $('#ccn-calendar-ownedItem-btnUpdate-' + uuid).hide(); + $('#ccn-calendar-ownedItem-btnCancelUpdate-' + uuid).hide(); - $('#ccn-admin-userItem-textName-' + uuid).show(); - $('#ccn-admin-userItem-boxName-' + uuid).hide(); + $('#ccn-calendar-ownedItem-textName-' + uuid).show(); + $('#ccn-calendar-ownedItem-boxName-' + uuid).hide(); } } } -function ccn_calendar_sharingTarget_Refresh() { - ccn_calendar_sharingTargetListCache = new Array(); +function ccn_calendar_sharing_Refresh() { + ccn_calendar_sharing_listCache = new Array(); - if (typeof(ccn_calendar_editingSharing) != 'undefined') { - var result = ccn_api_collection_getSharing(ccn_calendar_editingSharing); + if (typeof(ccn_calendar_sharing_editingOwned) != 'undefined') { + var result = ccn_api_collection_getSharing(ccn_calendar_sharing_editingOwned); if (typeof(result) != 'undefined') { for(var index in result) { - ccn_calendar_sharingTargetListCache[index] = result[index]; + ccn_calendar_sharing_listCache[index] = result[index]; // also, sharingTarget don't have uuid, use index instead } } - - // update editing text - $('#ccn-calendar-sharing-sharingEditing').text(ccn_calendar_sharingListCache[uuid][1]); } - var listDOM = $('#ccn-calendar-sharingTargetList'); + // update editing text + $('#ccn-calendar-sharing-sharingEditing').text( + typeof(ccn_calendar_sharing_editingOwned) == 'undefined' ? + '' : + ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][1] + ); + + // if editing is undefined, hide container + if (typeof(ccn_calendar_sharing_editingOwned) == 'undefined') + $('#ccn-calendar-sharing-container').hide(); + else + $('#ccn-calendar-sharing-container').show(); + + + var listDOM = $('#ccn-calendar-sharingList'); listDOM.empty(); - for(var index in ccn_admin_userListCache) { - ccn_admin_userList_RenderItem( - ccn_calendar_sharingTargetListCache[index], + for(var index in ccn_calendar_sharing_listCache) { + ccn_calendar_sharing_RenderItem( + ccn_calendar_sharing_listCache[index], index, listDOM ) } } -function ccn_calendar_sharingTarget_RenderItem(item, index, listDOM) { +function ccn_calendar_sharing_RenderItem(item, index, listDOM) { var renderdata = { uuid: index, username: item } // render - listDOM.append(ccn_template_sharingTargetItem.render(renderdata)); + listDOM.append(ccn_template_sharingItem.render(renderdata)); // bind event var uuid = index; - $("#ccn-calendar-sharingTargetItem-btnDelete-" + uuid).click(ccn_calendar_sharingTargetList_ItemDelete); + $("#ccn-calendar-sharingItem-btnDelete-" + uuid).click(ccn_calendar_sharing_ItemDelete); } function ccn_calendar_shared_Refresh() { - ccn_calendar_sharedListCache = new Array(); + ccn_calendar_shared_listCache = new Array(); ccn_calendar_shared_displayCache = new Array(); var result = ccn_api_collection_getShared(); if (typeof(result) != 'undefined') { for(var index in result) { - ccn_calendar_sharedListCache[result[index][0]] = result[index]; + ccn_calendar_shared_listCache[result[index][0]] = result[index]; ccn_calendar_shared_displayCache[result[index][0]] = true; } } @@ -209,18 +227,21 @@ function ccn_calendar_shared_Refresh() { var listDOM = $('#ccn-calendar-sharedList'); listDOM.empty(); - for(var index in ccn_calendar_sharedListCache) { - var item = ccn_calendar_sharedListCache[index]; + for(var index in ccn_calendar_shared_listCache) { + var item = ccn_calendar_shared_listCache[index]; renderdata.uuid = item[0]; renderdata.name = item[1]; renderdata.username = item[2]; listDOM.append(ccn_template_sharedItem.render(renderdata)); - // bind event + // change display var uuid = renderdata.uuid; - $('#ccn-admin-userItem-btnHide-' + uuid).click(ccn_calendar_sharedList_ItemSwitchDisplay); - $('#ccn-admin-userItem-btnShow-' + uuid).click(ccn_calendar_sharedList_ItemSwitchDisplay); + ccn_calendar_shared_ChangeDisplayMode(uuid, true); + + // bind event + $('#ccn-calendar-sharedItem-btnHide-' + uuid).click(ccn_calendar_shared_ItemSwitchDisplay); + $('#ccn-calendar-sharedItem-btnShow-' + uuid).click(ccn_calendar_shared_ItemSwitchDisplay); } ccn_i18n_ApplyLanguage2Content(listDOM); @@ -228,18 +249,18 @@ function ccn_calendar_shared_Refresh() { function ccn_calendar_shared_ChangeDisplayMode(uuid, isShow) { if (isShow) { - $('#ccn-admin-userItem-btnHide-' + uuid).show(); - $('#ccn-admin-userItem-btnShow-' + uuid).hide(); + $('#ccn-calendar-sharedItem-btnHide-' + uuid).show(); + $('#ccn-calendar-sharedItem-btnShow-' + uuid).hide(); } else { - $('#ccn-admin-userItem-btnHide-' + uuid).hide(); - $('#ccn-admin-userItem-btnShow-' + uuid).show(); + $('#ccn-calendar-sharedItem-btnHide-' + uuid).hide(); + $('#ccn-calendar-sharedItem-btnShow-' + uuid).show(); } } // ========================= input operation -function ccn_calendar_sharingList_Add() { - var newname = $('#ccn-calendar-sharing-inputAdd').val(); +function ccn_calendar_owned_Add() { + var newname = $('#ccn-calendar-owned-inputAdd').val(); if (newname == "") return; var result = ccn_api_collection_addOwn(newname); @@ -251,122 +272,122 @@ function ccn_calendar_sharingList_Add() { if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-get")); else { // render - ccn_admin_userListCache[result[0]] = result; - var listDOM = $('#ccn-calendar-sharingList'); - ccn_calendar_sharing_RenderItem(result, listDOM); + ccn_calendar_owned_listCache[result[0]] = result; + var listDOM = $('#ccn-calendar-ownedList'); + ccn_calendar_owned_RenderItem(result, listDOM); } } } -function ccn_calendar_sharingList_ItemEdit() { +function ccn_calendar_owned_ItemEdit() { var uuid = $(this).attr("uuid"); // preset inputbox - $('#ccn-admin-userItem-inputName-' + uuid).val( - ccn_calendar_sharingListCache[uuid][1] + $('#ccn-calendar-ownedItem-inputName-' + uuid).val( + ccn_calendar_owned_listCache[uuid][1] ); // switch to edit mode - ccn_calendar_sharing_ChangeDisplayMode(uuid, undefined, true); + ccn_calendar_owned_ChangeDisplayMode(uuid, undefined, true); } -function ccn_calendar_sharingList_ItemDelete() { +function ccn_calendar_owned_ItemDelete() { var uuid = $(this).attr("uuid"); var result = ccn_api_collection_deleteOwn( uuid, - ccn_calendar_sharingListCache[uuid][2] + ccn_calendar_owned_listCache[uuid][2] ); if (!result) ccn_messagebox_Show($.i18n.prop("ccn-js-fail-delete")); else { - $('#ccn-calendar-sharingItem-' + uuid).remove(); + $('#ccn-calendar-ownedItem-' + uuid).remove(); // also, we should notice sharing target, and try clean it - if (ccn_calendar_editingSharing == uuid) { - ccn_calendar_editingSharing = undefined; - ccn_calendar_sharingTarget_Refresh(); + if (ccn_calendar_sharing_editingOwned == uuid) { + ccn_calendar_sharing_editingOwned = undefined; + ccn_calendar_sharing_Refresh(); } } } -function ccn_calendar_sharingList_ItemUpdate() { +function ccn_calendar_owned_ItemUpdate() { var uuid = $(this).attr("uuid"); - var newname = $('#ccn-admin-userItem-inputName-' + uuid).val(); + var newname = $('#ccn-calendar-ownedItem-inputName-' + uuid).val(); - var result = ccn_api_collection_updateOwn(uuid, newname, ccn_calendar_sharingListCache[uuid][2]); + var result = ccn_api_collection_updateOwn(uuid, newname, ccn_calendar_owned_listCache[uuid][2]); if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-update")); else { // update last change - ccn_calendar_sharingListCache[uuid][2] = result; - ccn_calendar_sharingListCache[uuid][1] = newname; + ccn_calendar_owned_listCache[uuid][2] = result; + ccn_calendar_owned_listCache[uuid][1] = newname; // update elements - $('#ccn-admin-userItem-textName-' + uuid).text(newname); + $('#ccn-calendar-ownedItem-textName-' + uuid).text(newname); // if editing, update sharing target - if (ccn_calendar_editingSharing == uuid) - ccn_calendar_sharingTarget_Refresh(); + if (ccn_calendar_sharing_editingOwned == uuid) + ccn_calendar_sharing_Refresh(); // back to normal mode - ccn_calendar_sharing_ChangeDisplayMode(uuid, undefined, false); + ccn_calendar_owned_ChangeDisplayMode(uuid, undefined, false); } } -function ccn_calendar_sharingList_ItemCancelUpdate() { +function ccn_calendar_owned_ItemCancelUpdate() { var uuid = $(this).attr("uuid"); - ccn_calendar_sharing_ChangeDisplayMode(uuid, undefined, false); + ccn_calendar_owned_ChangeDisplayMode(uuid, undefined, false); } -function ccn_calendar_sharingList_ItemSwitchDisplay() { +function ccn_calendar_owned_ItemSwitchDisplay() { var uuid = $(this).attr("uuid"); ccn_calendar_sharing_displayCache[uuid] = !(ccn_calendar_sharing_displayCache[uuid]); - ccn_calendar_sharing_ChangeDisplayMode(uuid, ccn_calendar_sharing_displayCache[uuid], undefined); + ccn_calendar_owned_ChangeDisplayMode(uuid, ccn_calendar_sharing_displayCache[uuid], undefined); } -function ccn_calendar_sharingList_ItemShare() { +function ccn_calendar_owned_ItemShare() { var uuid = $(this).attr("uuid"); - ccn_calendar_editingSharing = uuid; - ccn_calendar_sharingTarget_Refresh(); + ccn_calendar_sharing_editingOwned = uuid; + ccn_calendar_sharing_Refresh(); } -function ccn_calendar_sharingTargetList_Add() { - var newusername = $('#ccn-calendar-sharingTarget-inputAdd').val(); - if (newusername == "" || typeof(ccn_calendar_editingSharing) == 'undefined') return; +function ccn_calendar_sharing_Add() { + var newusername = $('#ccn-calendar-sharing-inputAdd').val(); + if (newusername == "" || typeof(ccn_calendar_sharing_editingOwned) == 'undefined') return; var result = ccn_api_collection_addSharing( - ccn_calendar_editingSharing, + ccn_calendar_sharing_editingOwned, newusername, - ccn_calendar_sharingListCache[ccn_calendar_editingSharing][2] + ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2] ); if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-add")); else { // add new item - var index = ccn_calendar_sharingTargetListCache.push(newusername) - 1; - var listDOM = $('#ccn-calendar-sharingTargetList'); - ccn_calendar_sharingTarget_RenderItem(newusername, index, listDOM); + var index = ccn_calendar_sharing_listCache.push(newusername) - 1; + var listDOM = $('#ccn-calendar-sharingList'); + ccn_calendar_sharing_RenderItem(newusername, index, listDOM); // update last change - ccn_calendar_sharingListCache[ccn_calendar_editingSharing][2] = result; + ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2] = result; } } -function ccn_calendar_sharingTargetList_ItemDelete() { +function ccn_calendar_sharing_ItemDelete() { var uuid = $(this).attr("uuid"); - var username = ccn_calendar_sharingTargetListCache[uuid]; + var username = ccn_calendar_sharing_listCache[uuid]; var result = ccn_api_collection_deleteSharing( - ccn_calendar_editingSharing, + ccn_calendar_sharing_editingOwned, username, - ccn_calendar_sharingListCache[ccn_calendar_editingSharing][2] + ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2] ); if (typeof(result) == 'undefined') ccn_messagebox_Show($.i18n.prop("ccn-js-fail-delete")); else { // remove item in ui - $('#ccn-calendar-sharingTargetItem-' + uuid).remove(); + $('#ccn-calendar-sharingItem-' + uuid).remove(); // update last change - ccn_calendar_sharingListCache[ccn_calendar_editingSharing][2] = result; + ccn_calendar_owned_listCache[ccn_calendar_sharing_editingOwned][2] = result; } } -function ccn_calendar_sharedList_ItemSwitchDisplay() { +function ccn_calendar_shared_ItemSwitchDisplay() { var uuid = $(this).attr("uuid"); ccn_calendar_shared_displayCache[uuid] = !(ccn_calendar_shared_displayCache[uuid]); ccn_calendar_shared_ChangeDisplayMode(uuid, ccn_calendar_shared_displayCache[uuid]); diff --git a/src/static/js/template.js b/src/static/js/template.js index 9df0365..bc25458 100644 --- a/src/static/js/template.js +++ b/src/static/js/template.js @@ -2,8 +2,8 @@ var ccn_template_headerNav = undefined; var ccn_template_messagebox = undefined; var ccn_template_calendarItem = undefined; var ccn_template_scheduleItem = undefined; +var ccn_template_ownedItem = undefined; var ccn_template_sharingItem = undefined; -var ccn_template_sharingTargetItem = undefined; var ccn_template_sharedItem = undefined; var ccn_template_userItem = undefined; var ccn_template_todoItem = undefined; @@ -46,6 +46,14 @@ function ccn_template_Load() { ccn_template_scheduleItem = $.templates(data); } }); + $.ajax({ + url: $("#jsrender-tmpl-ownedItem").attr('src'), + type: "GET", + async: false, + success: function (data) { + ccn_template_ownedItem = $.templates(data); + } + }); $.ajax({ url: $("#jsrender-tmpl-sharingItem").attr('src'), type: "GET", @@ -54,20 +62,12 @@ function ccn_template_Load() { ccn_template_sharingItem = $.templates(data); } }); - $.ajax({ - url: $("#jsrender-tmpl-sharingTargetItem").attr('src'), - type: "GET", - async: false, - success: function (data) { - ccn_template_scheduleItem = $.templates(data); - } - }); $.ajax({ url: $("#jsrender-tmpl-sharedItem").attr('src'), type: "GET", async: false, success: function (data) { - ccn_template_scheduleItem = $.templates(data); + ccn_template_sharedItem = $.templates(data); } }); break; diff --git a/src/static/tmpl/ownedItem.tmpl b/src/static/tmpl/ownedItem.tmpl new file mode 100644 index 0000000..88d3eb3 --- /dev/null +++ b/src/static/tmpl/ownedItem.tmpl @@ -0,0 +1,30 @@ +
{{>name}}
+