* update js compression requirement in README
* update checkout info in README
* update TODO
* ui is now mostly cvs-neutral (js, locale-fr, css, img's name updated accordingly; except img's content)
* CVSLogGrid is now VCSLogGrid, CVSCommitTask is now VCSCommitTask
* introduced config DOC_EDITOR_VCS in conf.inc.php to config Version Control System type (cvs, svn, git...)
* introduced VCSFactory to replace VCS specific operation, user of CvsClient::getInstance is now using VCSFactory::getInstance instead
- VCSFactory::getInstance() has a branching block to obtain DOC_EDITOR_VCS specified VCS-client
* implemented SvnClient
* changed cvsLogin & cvsPasswd & cvsLang in AccountManager to vcsLogin & vcsPasswd & vcsLang (affected JS: ui.component.TranslatorGrid.js)
* install/doc-editor.sql change attributes that involve "cvs" to "vcs"
* File.php cvsDiff is now vcsDiff
* ExtJsController cvsCommit is now vcsCommit (affect JS: ui.task.CVSCommitTask.js)
* Re-activiated cvs commit in CvsClient
* Re-activiated email in AccountManager
* RepositoryManager availableLang is now exposed to public scope
* update error_type.php based on last commit (r284647)
* update scripts/cron/check_build.php based on last commit (r284647)
* update scripts/cron/update_data.php based on last commit (r284647)
* Fixed CvsClient log sending out as associative array that failed ui.component.CVSLogGrid
This patch restructure the doc-editor php's architecture.
But, cvs2svn is not yet covered and thus some functions related to repository log, update, commit are not functioning.
class.php is no longer in use but kept for reference
modification/fix:
* Update ToolsError to use DBConnection singleton
* Update ToolsCheckDoc to use DBConnection singleton
* Bug fix in Repository Tree for detecting Language of File
* ErrorFileGrid is now updated right after a file was check for error
* added lang in front of file path under MarkDeleteTask.js
* fixed CommitLogPrompt failed to delete commit log
php re-factoring:
* 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::query)
- insert_id (mysqli::insert_id)
- real_escape_string (mysqli::real_escape_string)
* AccountManager created for manipulating user account
- singleton
- updateLastConnect
- isLogged
- login
- register
- updateConf
- eraseData
- email
* CvsClient created for cvs i/o
- singleton
- passwdEncode
- authenticate
- checkout
- update
- log
- diff
- commit
* RepositoryFetcher created for fetching phpdoc-all repository
- singleton
- getLastUpdate
- getModifies (get all modified files in pending commit)
- getModifiesById (get modified files in pending commit queue by id)
- 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/firstRun.php)
- 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/modified file content, depends on passed param & file state)
- save
- parseAttribute (class.php - revParseAttrString)
- getEncoding
- getInfo
- rawDiff (exec 'diff -uN file file.ext' with stdout output)
- htmlDiff (exec php-file-diff with html output)
- cvsDiff (exec cvs diff with html output)
* TranslatorStatistic created for computing statistic about translator
- singleton
- getTranslators (get info about all translators for lang)
- getUptodateFileCount (count up-to-date file contributed by every translator)
- getOldFileCount (count out-dated file contributed by every translator)
- getCriticalFileCount (count critical file contributed by every translator)
- getSummary (summary of the statistic about translators)
* TranslationStatistic created for computing statistic about translation
- singleton
- getFileCount (count all file)
- getTransFileCount (count translated files for lang)
- getOldFileCount (count out-dated files for lang)
- getCriticalFileCount (count critical files for lang)
- getNoTransFileCount (count not translated files for lang)
- getMissedFileCount (count not translated files for lang TODO... merge with getNoTransFileCount)
- getNoTagFileCount (count files with no revcheck tag for lang)
- getSummary (summary of the statistic about translation)
* 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)
* apply singleton pattern to all unique component, singleton component can be obtained by ui.component.XXX.getInstance()
* file panel exclude 'home' & 'end' key as modifying keys
* file panel string concat using string.join() instead of operator +
main.js cleanup:
* migrated phpDoc.saveLangFile into ui/component/FilePanel.js
* migrated repositoryContextMenu into ui/component/RepositoryTree.js
* sendEmail is now wrapped in ui/component/EmailPrompt.js
* WinCheckBuild is now wrapped in ui/component/CheckBuildPrompt and ui/task/CheckBuildTask.js
* WinUpdate is now wrapped in ui/component/SystemUpdatePrompt and ui/task/SystemUpdateTask
* WinCommit is now wrapped in ui/component/CommitPrompt and ui/task/CVSCommitTask.js;
CommitLog management is now in ui/component/CommitLogPrompt
* fix CodeMirror cannot display the end of vertical scroll [bug in last commit]
* FilePendingOpen queue is now storing { fpath, fname } object instead of plain array
* created static reference for singleton components, dependency on phpDoc.xxx are removed and use ui.component.xxx.instance instead
* created static reference for PingTask, dependency on phpDoc.TaskPing is removed
* remove .run() in task/*.js
* fix openning multiple files will stop when some files already opened
main.js cleanup:
* load configuration task is wrapped in ui/task/LoadConfigTask.js
* menuMarkupEN & menuMarkupLANG is now wrapped in ui/component/FilePanel.js
* newTabCheckDoc, newTabBuildStatus, winConf, winAbout is now wrapped in ui/component/MainMenu.js
* getFile is now wrapped in ui/task/GetFileTask.js
* confUpdate is now wrapped in ui/task/UpdateConfTask.js
* winDiff moved into CVSLogGrid.js
* newTabMailing moved into LocalMailGrid.js
* newTabBugs moved into BugsGrid.js
* addToPendingPatch is now wrapped in ui/task/SavePatchTask.js
* addToPeningCommit moved into PendingCommitGrid.js
* TODO update
- [Bug report] ClearLocalChange in class.php would attempt to remove a unexisting file thus gives invalid json response
- added 3 items for follow-up actions of this commit
* reloacate PingTask from js/ui to js/ui/task
* yui-compression script included js/ui/task/*.js
* util.log is allowed to accept arbitrary length of argments
* fix invalid argment passing in Ext.ux.CodeMirror initialize event
* js/ui/component/CheckDoc renames config-args
* fix "Refresh All Data" and "Check Build" failure due to http-timeout (bug of XHR abstraction.. pending decision of keeping XHR)
main.js cleanup:
* FilesNeedUpdateGrid is now wrapped in ui/component/StaleFileGrid.js
- staleFileGrid handle introduced to phpDoc-namespace
* TreeAllFile is now wrapped in ui/component/RepositoryTree.js
* vc-diff panel is now wrapped in ui/component/ViewVCDiff.js
* exec-diff panel is now wrapped in ui/component/ExecDiff.js
* main-menu is now wrapped in ui/component/MainMenu.js
* save-patch prompt is now wrapped in ui/component/PatchPrompt.js
* Introduced _saveEnFile, _saveLangFile, _savePatch for refactored FilesNeedUpdateGrid/TreeAllFiles
- for backward compatibility, saveEnFile, saveLangFile, savePatch remain in main.js
- check file when save is now wrapped in ui/task/CheckFileTask.js
- save en file is now wrapped in ui/task/SaveENFileTask.js
- save lang file is now wrapped in ui/task/SaveLangFile.js
- will merge save en/lang file sooner or later
* Introduced repositoryContextMenu to phpDoc-namespace
- will be relocated into ui/component/RepositoryTree.js sooner or later
* Introduced reuseable CVSLogGrid component in ui/component/CVSLogGrid.js
* Introduced reuseable FilePanel component in ui/component/FilePanel.js
* Corresponding changes due to adoption of FilePanel
- AF-tab remains AF-FileID, AF-panel and sub-components are now named AF-ALL-###-FileID
- FNU-tab remains FNU-FileID, FNU-panel and sub-components are now either FNU-EN-###-FileID or FNU-LANG-###-FileID
- relocate attributes (isModifiedEn & isModifiedLang) of FNU-tab to FNU-ENG-File-###.isModified and FNU-LANG-File-###.isModified
- FilePanel alone is able to sync-scroll with anothor FilePanel via certain configuration
* included js/ui/*.js for compression
* added GDLib as requirement for using jpgraph
* inserted todo list item - decide whether using XHR abstraction
main.js cleanup:
* the keep-session-alive task ping is now wrapped in js/ui/PingTask.js
* the doc-editor about box is now wrapped in js/ui/component/About.js
* main-panel summary grid is now wrapped in js/ui/component/SummaryGrid.js
* main-panel translator grid is now wrapped in js/ui/component/TranslatorGrid.js
* main-panel local mailing list grid is now wrapped in js/ui/component/LocalMailGrid.js
* main-panel php-doc bugs grid is now wrapped in js/ui/component/BugsGrid.js
* main-panel translation summary graph is now wrapped in js/ui/component/TranslationGraph.js
* cleanup phpDoc namespace
- storeMailing is now under LocalMailGrid namespace
- storeBugs is now under BugsGrid namespace
- storeTranslators is now under TranslatorGrid namespace
+ reflect changes in script that depends on storeTranslators
- storeSummary is now under SummaryGrid namespace
+ reflect changes in script that depends on storeSummary
- ui userConf.conf_theme is not refreshed after theme change success
- BuildStatus tab is re-opened without care. Closing re-opened BuildStatus tab will crash extjs
- CheckDoc tab is re-opened without care. Closing re-opened CheckDoc tab will crash extjs
- index.php includes compressed main_min.js instead of main.js, few hundred k-bytes saved in http transfer
- included shell script for yuicompressor
- updated TODO list
main.js cleanup:
- doc-editor config window
* config window is now wrapped in js/ui/component/EditorConf.js
- doc-editor build status grid
* build status grid is now wrapped in js/ui/component/BuildStatus.js
- doc-editor check doc grid
* check doc grid is now wrapped in js/ui/component/CheckDoc.js