svn: /web/doc-editor/trunk/ js/ui/component/RepositoryTree.js js/ui/component/StaleFileGrid.js js/ui/task/ClearLocalChangeTask.js js/ui/task/SaveENFileTask.js js/ui/task/SaveLangFileTask.js php/ExtJsController.php php/RepositoryFetcher.php php/RepositoryManager.php

[email protected] (Yannick Torres)
Newsgroups php.doc.web
Message-ID <[email protected]>
yannick                                  Sun, 22 Nov 2009 18:18:02 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=291143

Log:
Solve some bugs with clearLocalChange

Changed paths:
    U   web/doc-editor/trunk/js/ui/component/RepositoryTree.js
    U   web/doc-editor/trunk/js/ui/component/StaleFileGrid.js
    U   web/doc-editor/trunk/js/ui/task/ClearLocalChangeTask.js
    U   web/doc-editor/trunk/js/ui/task/SaveENFileTask.js
    U   web/doc-editor/trunk/js/ui/task/SaveLangFileTask.js
    U   web/doc-editor/trunk/php/ExtJsController.php
    U   web/doc-editor/trunk/php/RepositoryFetcher.php
    U   web/doc-editor/trunk/php/RepositoryManager.php
svn-diffs-291143.txt (text/x-diff, 17.2 KB)
Modified: web/doc-editor/trunk/js/ui/component/RepositoryTree.js
===================================================================
--- web/doc-editor/trunk/js/ui/component/RepositoryTree.js	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/js/ui/component/RepositoryTree.js	2009-11-22 18:18:02 UTC (rev 291143)
@@ -142,7 +142,7 @@
                     extension = node.attributes.extension,
                     t, FileLang, FileName, parser,
                     panelWest, panelCenter;
-
+console.log(FilePath);
                 // Render only if this tab don't exist yet
                 if (!Ext.getCmp('main-panel').findById('AF-' + FileID)) {


Modified: web/doc-editor/trunk/js/ui/component/StaleFileGrid.js
===================================================================
--- web/doc-editor/trunk/js/ui/component/StaleFileGrid.js	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/js/ui/component/StaleFileGrid.js	2009-11-22 18:18:02 UTC (rev 291143)
@@ -29,9 +29,12 @@
                 name    : 'maintainer',
                 mapping : 'maintainer'
             }, {
-                name    : 'needcommit',
-                mapping : 'needcommit'
+                name    : 'needCommitEN',
+                mapping : 'needCommitEN'
             }, {
+                name    : 'needCommitLang',
+                mapping : 'needCommitLang'
+            }, {
                 name    : 'isCritical',
                 mapping : 'isCritical'
             }
@@ -59,7 +62,7 @@
                    '{[values.rs.length > 1 ? "' + _('Files') + '" : "' + _('File') + '"]})',
     getRowClass : function(record, numIndex, rowParams, store)
     {
-        if (record.data.needcommit) {
+        if (record.data.needCommitEN || record.data.needCommitLang) {
             return 'file-need-commit';
         }
         if (record.data.isCritical) {
@@ -190,7 +193,7 @@
             grid.getSelectionModel().selectRow(rowIndex);

             tmp = new ui.component._StaleFileGrid.menu({
-                hideCommit : (grid.store.getAt(rowIndex).data.needcommit === false),
+                hideCommit : (grid.store.getAt(rowIndex).data.needCommitEN === false && grid.store.getAt(rowIndex).data.needCommitLang === false),
                 grid       : grid,
                 event      : e,
                 rowIdx     : rowIndex,

Modified: web/doc-editor/trunk/js/ui/task/ClearLocalChangeTask.js
===================================================================
--- web/doc-editor/trunk/js/ui/task/ClearLocalChangeTask.js	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/js/ui/task/ClearLocalChangeTask.js	2009-11-22 18:18:02 UTC (rev 291143)
@@ -36,6 +36,46 @@
                     },
                     success : function(response)
                     {
+                        var pending_commit_grid = ui.component.PendingCommitGrid.getInstance(),
+                            o = Ext.util.JSON.decode(response.responseText);
+
+                        // We delete this record from the pending commit store
+                        pending_commit_grid.store.remove(this.storeRecord);
+
+                        // We fire event add to update the file count
+                        pending_commit_grid.store.fireEvent(
+                            'add', pending_commit_grid.store
+                        );
+
+                        // Action for EN file
+                        if( o.lang === 'en' && this.ftype === 'update' ) {
+
+                            // trow StaleFile store
+                            ui.component.StaleFileGrid.getInstance().store.each(
+                                function(record)
+                                {
+                                    if ((record.data.path) === '/'+o.path && record.data.name === o.name ) {
+                                        record.set('needCommitEN', false);
+                                        record.set('en_revision', o.revision);
+                                        record.commit();
+                                    }
+                                }
+                            , this);
+
+                            // find open node in All Files modules
+                            var node = ui.component.RepositoryTree.getInstance().getNodeById('/'+this.fpath+this.fname);
+                            if (node) {
+                              node.getUI().removeClass('modified');
+                            }
+
+                            Ext.getBody().unmask();
+                            return;
+                        }
+
+                        // All after this is only available for LANG file
+
+
+/*
                         // clear local change success
                         if (phpDoc.userLang === 'en') {
                             // We reload all store
@@ -43,16 +83,8 @@
                             ui.component.ErrorFileGrid.getInstance().store.reload();
                             ui.component.PendingReviewGrid.getInstance().store.reload();
                         }
+*/

-                        var pending_commit_grid = ui.component.PendingCommitGrid.getInstance();
-                        // We delete from this store
-                        pending_commit_grid.store.remove(this.storeRecord);
-
-                        // We fire event add to update the file count
-                        pending_commit_grid.store.fireEvent(
-                            'add', pending_commit_grid.store
-                        );
-
                         // We try to search in others stores if this file is marked as needCommit

                         // trow storeNotInEn
@@ -62,9 +94,8 @@
                                 if ((phpDoc.userLang+record.data.path) === this.fpath && record.data.name === this.fname ) {
                                     record.set('needcommit', false);
                                 }
-                            },
-                            this
-                        );
+                            }
+                        , this);

                         // trow storeFilesNeedReviewed
                         ui.component.PendingReviewGrid.getInstance().store.each(
@@ -73,20 +104,21 @@
                                 if ((phpDoc.userLang+record.data.path) === this.fpath && record.data.name === this.fname ) {
                                     record.set('needcommit', false);
                                 }
-                            },
-                            this
-                        );
+                            }
+                        , this);

                         // trow StaleFile store
                         ui.component.StaleFileGrid.getInstance().store.each(
                             function(record)
                             {
                                 if ((phpDoc.userLang+record.data.path) === this.fpath && record.data.name === this.fname ) {
-                                    record.set('needcommit', false);
+                                    record.set('needCommitLang', false);
+                                    record.set('revision', o.revision);
+                                    record.set('maintainer', o.maintainer);
+                                    record.commit();
                                 }
-                            },
-                            this
-                        );
+                            }
+                        , this);

                         // trow FileError
                         ui.component.ErrorFileGrid.getInstance().store.each(
@@ -95,15 +127,15 @@
                                 if ((phpDoc.userLang+record.data.path) === this.fpath && record.data.name === this.fname ) {
                                     record.set('needcommit', false);
                                 }
-                            },
-                            this
-                        );
+                            }
+                        , this);

                         // find open node in All Files modules
-                        var node = ui.component.RepositoryTree.getInstance().getNodeById('//'+this.fpath+this.fname);
+                        var node = ui.component.RepositoryTree.getInstance().getNodeById('/'+this.fpath+this.fname);
                         if (node) {
                           node.getUI().removeClass('modified');
                         }
+
                         Ext.getBody().unmask();
                     },
                     failure : function(response)

Modified: web/doc-editor/trunk/js/ui/task/SaveENFileTask.js
===================================================================
--- web/doc-editor/trunk/js/ui/task/SaveENFileTask.js	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/js/ui/task/SaveENFileTask.js	2009-11-22 18:18:02 UTC (rev 291143)
@@ -30,8 +30,9 @@

             if (this.prefix === 'FNU') {
                 // Update our store
-                this.storeRecord.set('en_revision', o.en_revision);
-                this.storeRecord.set('needcommit', true);
+                this.storeRecord.set('en_revision', o.revision);
+                this.storeRecord.set('needCommitEN', true);
+                this.storeRecord.commit();
             }

             if (this.prefix === 'FE') {

Modified: web/doc-editor/trunk/js/ui/task/SaveLangFileTask.js
===================================================================
--- web/doc-editor/trunk/js/ui/task/SaveLangFileTask.js	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/js/ui/task/SaveLangFileTask.js	2009-11-22 18:18:02 UTC (rev 291143)
@@ -36,8 +36,8 @@

             if (this.prefix === 'FNU') {
                 // Update our store
-                this.storeRecord.set('revision', o.new_revision);
-                this.storeRecord.set('needcommit', true);
+                this.storeRecord.set('revision', o.en_revision);
+                this.storeRecord.set('needCommitLang', true);
                 this.storeRecord.set('maintainer', o.maintainer);
                 this.storeRecord.commit();
             }

Modified: web/doc-editor/trunk/php/ExtJsController.php
===================================================================
--- web/doc-editor/trunk/php/ExtJsController.php	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/php/ExtJsController.php	2009-11-22 18:18:02 UTC (rev 291143)
@@ -461,8 +461,9 @@
             return JsonResponseBuilder::success(
                 array(
                     'id'           => $r,
-                    'en_revision'  => $info['rev'],
-                    'new_revision' => $info['en-rev'],
+                    'lang'         => $fileLang,
+                    'revision'     => $info['rev'],
+                    'en_revision'  => $info['en-rev'],
                     'maintainer'   => $info['maintainer'],
                     'reviewed'     => $info['reviewed']
                 )
@@ -481,8 +482,9 @@
                return JsonResponseBuilder::success(
                    array(
                        'id'           => $r,
-                       'en_revision'  => $info['rev'],
-                       'new_revision' => $info['en-rev'],
+                       'lang'         => $fileLang,
+                       'revision'     => $info['rev'],
+                       'en_revision'  => $info['en-rev'],
                        'maintainer'   => $info['maintainer'],
                        'reviewed'     => $info['reviewed']
                    )
@@ -622,7 +624,11 @@

         return JsonResponseBuilder::success(
             array(
+                'path'       => $FilePath,
+                'name'       => $FileName,
+                'lang'       => $FileLang,
                 'revision'   => $info['rev'],
+                'en-revision'=> $info['en-rev'],
                 'maintainer' => $info['maintainer'],
                 'error'      => $info['errorFirst'],
                 'reviewed'   => $info['reviewed']

Modified: web/doc-editor/trunk/php/RepositoryFetcher.php
===================================================================
--- web/doc-editor/trunk/php/RepositoryFetcher.php	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/php/RepositoryFetcher.php	2009-11-22 18:18:02 UTC (rev 291143)
@@ -102,6 +102,7 @@
         $vcsLang = AccountManager::getInstance()->vcsLang;

         $m = $this->getModifies();
+
         $s = sprintf(
             'SELECT * FROM `files` WHERE `lang` = "%s" AND `revision` != `en_revision`',
             $vcsLang
@@ -127,25 +128,27 @@
                 }

                 $node[] = array(
-                    "id"          => $a->id,
-                    "path"        => $a->path,
-                    "name"        => $a->name,
-                    "revision"    => $new_revision,
-                    "en_revision" => $new_en_revision,
-                    "maintainer"  => $new_maintainer,
-                    "needcommit"  => true,
-                    "isCritical"  => false
+                    "id"             => $a->id,
+                    "path"           => $a->path,
+                    "name"           => $a->name,
+                    "revision"       => $new_revision,
+                    "en_revision"    => $new_en_revision,
+                    "maintainer"     => $new_maintainer,
+                    "needCommitEN"   => (isset($m['en'.$a->path.$a->name])) ? true : false,
+                    "needCommitLang" => (isset($m[$vcsLang.$a->path.$a->name])) ? true : false,
+                    "isCritical"     => false
                 );
             } else {
                 $node[] = array(
-                    "id"          => $a->id,
-                    "path"        => $a->path,
-                    "name"        => $a->name,
-                    "revision"    => $a->revision,
-                    "en_revision" => $a->en_revision,
-                    "maintainer"  => $a->maintainer,
-                    "needcommit"  => false,
-                    "isCritical"  => ( ($a->en_revision - $a->revision >= 10) || $a->size_diff >= 3 || $a->mdate_diff <= -30 ) ? true : false
+                    "id"              => $a->id,
+                    "path"            => $a->path,
+                    "name"            => $a->name,
+                    "revision"        => $a->revision,
+                    "en_revision"     => $a->en_revision,
+                    "maintainer"      => $a->maintainer,
+                    "needCommitEN"    => false,
+                    "needCommitLang"  => false,
+                    "isCritical"      => ( ($a->en_revision - $a->revision >= 10) || $a->size_diff >= 3 || $a->mdate_diff <= -30 ) ? true : false
                 );
             }
         }

Modified: web/doc-editor/trunk/php/RepositoryManager.php
===================================================================
--- web/doc-editor/trunk/php/RepositoryManager.php	2009-11-22 16:07:39 UTC (rev 291142)
+++ web/doc-editor/trunk/php/RepositoryManager.php	2009-11-22 18:18:02 UTC (rev 291143)
@@ -285,6 +285,15 @@
         $path = $file->path;
         $name = $file->name;

+        // Initiate return's var
+        $return = array();
+        $return['rev']        = 0;
+        $return['en-rev']     = 0;
+        $return['maintainer'] = 0;
+        $return['reviewed']   = 0;
+        $return['errorState'] = false;
+        $return['errorFirst'] = 0;
+
         // We need select row from pendingCommit table
         $s = "SELECT `id` FROM `pendingCommit`
               WHERE `lang`='$lang' AND `path`='$path' AND `name`='$name'";
@@ -297,7 +306,7 @@

         // If type == delete, we stop here and return
         if ($type == 'delete') {
-            return;
+            return $return;
         }

         // We need delete file on filesystem (for new & update)
@@ -306,7 +315,7 @@

         // If type == new, we stop here and return
         if ($type == 'new') {
-            return;
+            return $return;
         }

         // We need check for error in this file
@@ -326,27 +335,27 @@
         $errorTools = new ToolsError();
         $error = $errorTools->updateFilesError($anode, 'nocommit');

-        // We need reload original lang_revision
-        $s = "SELECT `revision`, `maintainer`, `reviewed` FROM `files`
+        // We need reload original information
+        $s = "SELECT `revision`, `en_revision`, `maintainer`, `reviewed` FROM `files`
               WHERE `lang`='$lang' AND `path`='$path' AND `name`='$name'";
         $r = DBConnection::getInstance()->query($s);
         $a = $r->fetch_object();

-        $info = array();
-        $info['rev']        = $a->revision;
-        $info['maintainer'] = $a->maintainer;
-        $info['reviewed']   = $a->reviewed;
+        $return['rev']        = $a->revision;
+        $return['en-rev']     = $a->en_revision;
+        $return['maintainer'] = $a->maintainer;
+        $return['reviewed']   = $a->reviewed;

         if (isset($error['first'])) {
-            $info['errorState'] = true;
-            $info['errorFirst'] = $error['first'];
+            $return['errorState'] = true;
+            $return['errorFirst'] = $error['first'];
         } else {
-            $info['errorState'] = false;
-            $info['errorFirst'] = '-No error-';
+            $return['errorState'] = false;
+            $return['errorFirst'] = '-No error-';
         }

         // We return original lang_revision & maintainer
-        return $info;
+        return $return;
     }

     /**
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.