Loading plugins/navbar/navbar.cpp +20 −6 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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; } Loading Loading
plugins/navbar/navbar.cpp +20 −6 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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; } Loading