gsoc:2009:phdoe
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
gsoc:2009:phdoe [2009/07/15 03:33] – cvs2svn update mrkschan | gsoc:2009:phdoe [2011/04/06 10:59] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 36: | Line 36: | ||
* June 21 - It's a GDay! The refactoring work is close to finish... The next task is to complete the rest and wrapping up. Read the story at [[http:// | * June 21 - It's a GDay! The refactoring work is close to finish... The next task is to complete the rest and wrapping up. Read the story at [[http:// | ||
* July 03 - The first milestone is reached =] JS namespace is clear and going to work on the second milestone. Read the story at [[http:// | * July 03 - The first milestone is reached =] JS namespace is clear and going to work on the second milestone. Read the story at [[http:// | ||
+ | * July 24 - Php files are factored, going to complete a SvnClient for the svn-migration ... Read the story at [[http:// | ||
+ | * July 28 - cvs2svn is somehow EVIL!!! I'm digging into how svn authenticate from the Http / WebDav perspective ... Read the story at [[http:// | ||
+ | * July 29 - a script is written to simulate " | ||
+ | * August 5 - SvnClient has been implemented and testing are made. However, problems still remain. Read section " | ||
+ | * August 13 - I completed the tasks list on my gsoc proposal :p But still... I'm going to keep working on doc-editor ^^ Story at [[http:// | ||
===== UI Structure ===== | ===== UI Structure ===== | ||
Line 79: | Line 84: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ===== Factored Php Classes ===== | ||
+ | * JsonResponseBuilder (utility class) created for constructing json responses | ||
+ | - success (ExtJsController.getSuccess) | ||
+ | - failure (ExtJsController.getFailure) | ||
+ | - response (ExtJsController.getResponse) | ||
+ | * DBConnection created for manipulating database connection | ||
+ | - singleton | ||
+ | - query (mysqli-> | ||
+ | - insert_id (mysqli-> | ||
+ | - real_escape_string (mysqli-> | ||
+ | * AccountManager created for manipulating user account | ||
+ | - singleton | ||
+ | - updateLastConnect | ||
+ | - isLogged | ||
+ | - login | ||
+ | - register | ||
+ | - updateConf | ||
+ | - eraseData | ||
+ | |||
+ | * VCSFactory created for replacing VCS specific operation | ||
+ | - getInstance (obtain VCS client based on config DOC_EDITOR_VCS) | ||
+ | * CvsClient created for cvs i/o | ||
+ | - singleton | ||
+ | - passwdEncode | ||
+ | - authenticate | ||
+ | - checkout | ||
+ | - update | ||
+ | - log | ||
+ | - diff | ||
+ | - commit | ||
+ | * SvnClient created for svn i/o | ||
+ | - singleton | ||
+ | - authenticate | ||
+ | - checkout | ||
+ | - update | ||
+ | - log | ||
+ | - diff | ||
+ | - commit | ||
+ | * RepositoryFetcher created for fetching phpdoc-all repository | ||
+ | - singleton | ||
+ | - getLastUpdate | ||
+ | - getModifies | ||
+ | - getModifiesById | ||
+ | - getPendingUpdate | ||
+ | - getPendingReview | ||
+ | - getNotInEn | ||
+ | - getPendingPatch | ||
+ | - getPendingCommit | ||
+ | - getFilesByExtension | ||
+ | - getFileByXmlID | ||
+ | - getFileByKeyword (perform searching on file-path) | ||
+ | - getFilesByDirectory | ||
+ | * RepositoryManager created for managing phpdoc-all repository | ||
+ | - singleton | ||
+ | - checkoutRepository (exec cvs checkout, called in install/ | ||
+ | - cleanUp | ||
+ | - updateRepository (exec cvs update) | ||
+ | - checkbuild (exec php configure.php) | ||
+ | - addPendingCommit | ||
+ | - delPendingCommit | ||
+ | - addPendingPatch | ||
+ | - addPendingDelete | ||
+ | - commitChanges | ||
+ | - clearLocalChange | ||
+ | - setLastUpdate | ||
+ | - postPatchAccept | ||
+ | - postPatchReject | ||
+ | - updateFileInfo | ||
+ | - updateTranslatorInfo | ||
+ | - updateNotInEN | ||
+ | - applyRevCheck | ||
+ | * File created for modeling php-doc files | ||
+ | - isModified | ||
+ | - read (read original/ | ||
+ | - save | ||
+ | - parseAttribute (class.php - revParseAttrString) | ||
+ | - getEncoding | ||
+ | - getInfo | ||
+ | - rawDiff | ||
+ | - htmlDiff (exec php-file-diff with html output) | ||
+ | - cvsDiff | ||
+ | * TranslatorStatistic created for computing statistic about translator | ||
+ | - singleton | ||
+ | - getTranslators | ||
+ | - getUptodateFileCount (count up-to-date file contributed by every translator) | ||
+ | - getOldFileCount | ||
+ | - getCriticalFileCount (count critical file contributed by every translator) | ||
+ | - getSummary | ||
+ | * TranslationStatistic created for computing statistic about translation | ||
+ | - singleton | ||
+ | - getFileCount | ||
+ | - getTransFileCount | ||
+ | - getOldFileCount | ||
+ | - getCriticalFileCount (count critical files for lang) | ||
+ | - getNoTransFileCount | ||
+ | - getMissedFileCount | ||
+ | - getNoTagFileCount | ||
+ | - getSummary | ||
+ | * LogManager created for handling all logging activities | ||
+ | - singleton | ||
+ | - getCommitLog | ||
+ | - addCommitLog | ||
+ | - saveOutputLog | ||
+ | - readOutputLog | ||
+ | - saveBuildLogStatus | ||
+ | - getBuildLogStatus | ||
+ | * Utility (a namespace) created for different utility task | ||
+ | - debug (*NOTE: under global namespace) | ||
+ | |||
+ | |||
+ | ===== Brainstorming idea ===== | ||
+ | This section list out ideas for future development. | ||
+ | |||
+ | ==== Further re-structuring the entire thing ==== | ||
+ | === Ideas === | ||
+ | * Create a core module /core, replacing the /php and /js. The core module basically include glues. | ||
+ | * There will be a folder containing all the available modules ... / | ||
+ | * The core will look for modules from / | ||
+ | * / | ||
+ | * Core will basically glue (concat) controller.php under / | ||
+ | * Installer will become a script that glues the model.sql under / | ||
+ | * ui module naming convention? mod-{module_name}-what? | ||
+ | === Concerns === | ||
+ | * How to handle inter-module interaction? | ||
+ | * For UI, may try having a central registry that register module | ||
+ | * any interaction will be passed through this single agent | ||
+ | * event listener could be used in case for interaction | ||
+ | * if interaction beyond this scope ... may try returning js from XHR that would invoke appropriate handler | ||
+ | |||
+ | ==== WYSIWYG doc-book edit ==== | ||
+ | === Ideas === | ||
+ | * we may try using http:// | ||
+ | * we may supply doc-book elements and attributes, providing appropriate CSS. Plus, doc-book xml <-> html mapping | ||
+ | === Concerns === | ||
+ | * Is wymeditor support doc-book xml <-> html mapping and additional element for its parser? |
gsoc/2009/phdoe.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1