def project_wiki_rename(auth, wname, **kwargs): """View that handles user the X-editable input for wiki page renaming. :param wname: The target wiki page name. :param-json value: The new wiki page name. """ node = kwargs['node'] or kwargs['project'] wiki_name = wname.strip() new_wiki_name = request.get_json().get('value', None) try: node.rename_node_wiki(wiki_name, new_wiki_name, auth) except NameEmptyError: raise WIKI_NAME_EMPTY_ERROR except NameInvalidError as error: raise HTTPError(http.BAD_REQUEST, data=dict( message_short='Invalid name', message_long=error.args[0] )) except NameMaximumLengthError: raise WIKI_NAME_MAXIMUM_LENGTH_ERROR except PageCannotRenameError: raise WIKI_PAGE_CANNOT_RENAME_ERROR except PageConflictError: raise WIKI_PAGE_CONFLICT_ERROR except PageNotFoundError: raise WIKI_PAGE_NOT_FOUND_ERROR else: sharejs_uuid = wiki_utils.get_sharejs_uuid(node, new_wiki_name) wiki_utils.broadcast_to_sharejs('redirect', sharejs_uuid, node, new_wiki_name)
def project_wiki_rename(auth, wname, **kwargs): """View that handles user the X-editable input for wiki page renaming. :param wname: The target wiki page name. :param-json value: The new wiki page name. """ node = kwargs['node'] or kwargs['project'] wiki_name = wname.strip() new_wiki_name = request.get_json().get('value', None) try: node.rename_node_wiki(wiki_name, new_wiki_name, auth) except NameEmptyError: raise WIKI_NAME_EMPTY_ERROR except NameInvalidError as error: raise HTTPError(http.BAD_REQUEST, data=dict( message_short='Invalid name', message_long=error.args[0] )) except NameMaximumLengthError: raise WIKI_NAME_MAXIMUM_LENGTH_ERROR except PageCannotRenameError: raise WIKI_PAGE_CANNOT_RENAME_ERROR except PageConflictError: raise WIKI_PAGE_CONFLICT_ERROR except PageNotFoundError: raise WIKI_PAGE_NOT_FOUND_ERROR except ValidationError as err: raise HTTPError(http.BAD_REQUEST, data=dict( message_short='Invalid request', message_long=err.messages[0] )) else: sharejs_uuid = wiki_utils.get_sharejs_uuid(node, new_wiki_name) wiki_utils.broadcast_to_sharejs('redirect', sharejs_uuid, node, new_wiki_name)
def project_wiki_delete(auth, wname, **kwargs): node = kwargs['node'] or kwargs['project'] wiki_name = wname.strip() wiki_page = node.get_wiki_page(wiki_name) sharejs_uuid = wiki_utils.get_sharejs_uuid(node, wiki_name) if not wiki_page: raise HTTPError(http.NOT_FOUND) node.delete_node_wiki(wiki_name, auth) wiki_utils.broadcast_to_sharejs('delete', sharejs_uuid, node) return {}
def update_active_sharejs(self, node): """ Update all active sharejs sessions with latest wiki content. """ """ TODO: This def is meant to be used after updating wiki content via the v2 API, once updating is has been implemented. It should be removed if not used for that purpose. """ sharejs_uuid = wiki_utils.get_sharejs_uuid(node, self.page_name) contributors = [user._id for user in node.contributors] wiki_utils.broadcast_to_sharejs('reload', sharejs_uuid, data=contributors)