Commit 32baac62 authored by jan.koester's avatar jan.koester
Browse files

test

parent a9025048
Loading
Loading
Loading
Loading
+20 −6
Original line number Diff line number Diff line
@@ -292,16 +292,23 @@ namespace blogi {
            }

            if(!moveup_itemid.empty()){
                sql << "SELECT id,position FROM navbar_items WHERE navbar_id='" << navid << "' ORDER BY position,id";
                sql << "SELECT id FROM navbar_items WHERE navbar_id='" << navid << "' ORDER BY position,id";
                int cnt = Args->database[tid]->exec(sql,res);
                sql.clear();
                // Normalize positions first
                for(int i=0; i<cnt; ++i){
                    dbpp::SQL norm; dbpp::DBResult normr;
                    norm << "UPDATE navbar_items SET position=" << i << " WHERE id='" << res[i][0] << "'";
                    Args->database[tid]->exec(norm,normr);
                }
                // Now swap
                for(int i=1; i<cnt; ++i){
                    if(moveup_itemid == res[i][0]){
                        dbpp::SQL swp; dbpp::DBResult swpr;
                        swp << "UPDATE navbar_items SET position=" << res[i][1] << " WHERE id='" << res[i-1][0] << "'";
                        swp << "UPDATE navbar_items SET position=" << (i-1) << " WHERE id='" << res[i][0] << "'";
                        Args->database[tid]->exec(swp,swpr);
                        swp.clear();
                        swp << "UPDATE navbar_items SET position=" << res[i-1][1] << " WHERE id='" << res[i][0] << "'";
                        swp << "UPDATE navbar_items SET position=" << i << " WHERE id='" << res[i-1][0] << "'";
                        Args->database[tid]->exec(swp,swpr);
                        break;
                    }
@@ -309,16 +316,23 @@ namespace blogi {
            }

            if(!movedown_itemid.empty()){
                sql << "SELECT id,position FROM navbar_items WHERE navbar_id='" << navid << "' ORDER BY position,id";
                sql << "SELECT id FROM navbar_items WHERE navbar_id='" << navid << "' ORDER BY position,id";
                int cnt = Args->database[tid]->exec(sql,res);
                sql.clear();
                // Normalize positions first
                for(int i=0; i<cnt; ++i){
                    dbpp::SQL norm; dbpp::DBResult normr;
                    norm << "UPDATE navbar_items SET position=" << i << " WHERE id='" << res[i][0] << "'";
                    Args->database[tid]->exec(norm,normr);
                }
                // Now swap
                for(int i=0; i<cnt-1; ++i){
                    if(movedown_itemid == res[i][0]){
                        dbpp::SQL swp; dbpp::DBResult swpr;
                        swp << "UPDATE navbar_items SET position=" << res[i+1][1] << " WHERE id='" << res[i][0] << "'";
                        swp << "UPDATE navbar_items SET position=" << (i+1) << " WHERE id='" << res[i][0] << "'";
                        Args->database[tid]->exec(swp,swpr);
                        swp.clear();
                        swp << "UPDATE navbar_items SET position=" << res[i][1] << " WHERE id='" << res[i+1][0] << "'";
                        swp << "UPDATE navbar_items SET position=" << i << " WHERE id='" << res[i+1][0] << "'";
                        Args->database[tid]->exec(swp,swpr);
                        break;
                    }