@@ -137,14 +137,26 @@ public function getListing($FOLDER, $showdel) {
137137 if ($ results )
138138 foreach ($ results as $ result )
139139 foreach ($ results2 as $ result2 )
140- if ($ result ['id ' ] != $ result2 ['id ' ] && $ result ['name ' ] == $ result2 ['name ' ] && $ result ['grouping ' ] == $ result2 ['grouping ' ] && $ result [ ' mtime ' ] == $ result2 [ ' mtime ' ] ) {
140+ if ($ result ['id ' ] != $ result2 ['id ' ] && $ result ['name ' ] == $ result2 ['name ' ] && $ result ['grouping ' ] == $ result2 ['grouping ' ]) {
141141 // We have a duplicate that should not exist. Need to remove the offending record first
142- $ delid = $ result ['id ' ];
143- if ($ result ['id ' ] > $ result2 ['id ' ])
142+ $ delid = -1 ;
143+ if ($ result ['mtime ' ] == $ result2 ['mtime ' ]) {
144+ // If the mtime's match, delete the oldest ID.
145+ $ delid = $ result ['id ' ];
146+ if ($ result ['id ' ] > $ result2 ['id ' ])
147+ $ delid = $ result2 ['id ' ];
148+ } elseif ($ result ['mtime ' ] > $ result2 ['mtime ' ]) {
149+ // Again, delete the oldest
144150 $ delid = $ result2 ['id ' ];
145- $ delquery = \OCP \DB ::prepare ("DELETE FROM *PREFIX*ownnote WHERE id=? " );
146- $ delquery ->execute (Array ($ delid ));
147- $ requery = true ;
151+ } elseif ($ result ['mtime ' ] < $ result2 ['mtime ' ]) {
152+ // The only thing left is if result is older
153+ $ delid = $ result ['id ' ];
154+ }
155+ if ($ delid != -1 ) {
156+ $ delquery = \OCP \DB ::prepare ("DELETE FROM *PREFIX*ownnote WHERE id=? " );
157+ $ delquery ->execute (Array ($ delid ));
158+ $ requery = true ;
159+ }
148160 }
149161 if ($ requery ) {
150162 $ query = \OCP \DB ::prepare ("SELECT id, name, grouping, mtime, deleted FROM *PREFIX*ownnote WHERE uid=? ORDER BY name " );
0 commit comments