Index: src/infrastructure/celerity/CelerityResourceMap.php =================================================================== --- src/infrastructure/celerity/CelerityResourceMap.php +++ src/infrastructure/celerity/CelerityResourceMap.php @@ -213,7 +213,7 @@ * is unknown. */ public function getRequiredSymbolsForName($name) { - $hash = idx($this->symbolMap, $name); + $hash = idx($this->nameMap, $name); if ($hash === null) { return null; } Index: src/infrastructure/lint/linter/PhabricatorJavelinLinter.php =================================================================== --- src/infrastructure/lint/linter/PhabricatorJavelinLinter.php +++ src/infrastructure/lint/linter/PhabricatorJavelinLinter.php @@ -147,7 +147,7 @@ $path); $need = $external_classes; - $resource_name = substr($path, strlen('webroot')); + $resource_name = substr($path, strlen('webroot/')); $requires = $celerity->getRequiredSymbolsForName($resource_name); if (!$requires) { $requires = array(); @@ -170,7 +170,7 @@ // If JS requires CSS, just assume everything is fine. unset($requires[$key]); } else { - $symbol_path = 'webroot'.$requires_name; + $symbol_path = 'webroot/'.$requires_name; list($ignored, $req_install) = $this->getUsedAndInstalledSymbolsForPath( $symbol_path); if (array_intersect_key($req_install, $external_classes)) { Index: webroot/rsrc/js/core/DraggableList.js =================================================================== --- webroot/rsrc/js/core/DraggableList.js +++ webroot/rsrc/js/core/DraggableList.js @@ -197,12 +197,21 @@ break; } + // If the dragged row is the first row, don't allow it to be dragged + // into the first position, since this operation doesn't make sense. + if (cur_target === null) { + var first_item = targets[targets.length - 1].item; + if (dragging === first_item) { + cur_target = false; + } + } + // If we've selected a new target, update the UI to show where we're // going to drop the row. - if (cur_target != target) { + if (cur_target !== target) { - if (target) { + if (target !== false) { JX.DOM.remove(ghost); }