@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add more change metadata to SVN and git.

+557 -223
+213 -200
src/__celerity_resource_map__.php
··· 7 7 */ 8 8 9 9 celerity_register_resource_map(array( 10 - 'phabricator-remarkup-css' => 10 + 'aphront-crumbs-view-css' => 11 11 array( 12 - 'uri' => '/res/786989c3/rsrc/css/core/remarkup.css', 13 - 'type' => 'css', 14 - 'requires' => 15 - array( 16 - ), 17 - 'disk' => '/rsrc/css/core/remarkup.css', 18 - ), 19 - 'phabricator-core-css' => 20 - array( 21 - 'uri' => '/res/6eebb99b/rsrc/css/core/core.css', 12 + 'uri' => '/res/c666a518/rsrc/css/aphront/crumbs-view.css', 22 13 'type' => 'css', 23 14 'requires' => 24 15 array( 25 16 ), 26 - 'disk' => '/rsrc/css/core/core.css', 17 + 'disk' => '/rsrc/css/aphront/crumbs-view.css', 27 18 ), 28 - 'phabricator-core-buttons-css' => 19 + 'aphront-dark-console-css' => 29 20 array( 30 - 'uri' => '/res/53b4f712/rsrc/css/core/buttons.css', 21 + 'uri' => '/res/056b0c12/rsrc/css/aphront/dark-console.css', 31 22 'type' => 'css', 32 23 'requires' => 33 24 array( 34 25 ), 35 - 'disk' => '/rsrc/css/core/buttons.css', 26 + 'disk' => '/rsrc/css/aphront/dark-console.css', 36 27 ), 37 - 'syntax-highlighting-css' => 28 + 'aphront-dialog-view-css' => 38 29 array( 39 - 'uri' => '/res/fb673ece/rsrc/css/core/syntax.css', 30 + 'uri' => '/res/7101ab69/rsrc/css/aphront/dialog-view.css', 40 31 'type' => 'css', 41 32 'requires' => 42 33 array( 43 34 ), 44 - 'disk' => '/rsrc/css/core/syntax.css', 35 + 'disk' => '/rsrc/css/aphront/dialog-view.css', 45 36 ), 46 - 'aphront-headsup-action-list-view-css' => 37 + 'aphront-error-view-css' => 47 38 array( 48 - 'uri' => '/res/8fd91c1d/rsrc/css/aphront/headsup-action-list-view.css', 39 + 'uri' => '/res/19b27527/rsrc/css/aphront/error-view.css', 49 40 'type' => 'css', 50 41 'requires' => 51 42 array( 52 43 ), 53 - 'disk' => '/rsrc/css/aphront/headsup-action-list-view.css', 44 + 'disk' => '/rsrc/css/aphront/error-view.css', 54 45 ), 55 - 'aphront-dark-console-css' => 46 + 'aphront-form-view-css' => 56 47 array( 57 - 'uri' => '/res/056b0c12/rsrc/css/aphront/dark-console.css', 48 + 'uri' => '/res/472d41b4/rsrc/css/aphront/form-view.css', 58 49 'type' => 'css', 59 50 'requires' => 60 51 array( 61 52 ), 62 - 'disk' => '/rsrc/css/aphront/dark-console.css', 53 + 'disk' => '/rsrc/css/aphront/form-view.css', 63 54 ), 64 - 'aphront-error-view-css' => 55 + 'aphront-headsup-action-list-view-css' => 65 56 array( 66 - 'uri' => '/res/19b27527/rsrc/css/aphront/error-view.css', 57 + 'uri' => '/res/8fd91c1d/rsrc/css/aphront/headsup-action-list-view.css', 67 58 'type' => 'css', 68 59 'requires' => 69 60 array( 70 61 ), 71 - 'disk' => '/rsrc/css/aphront/error-view.css', 62 + 'disk' => '/rsrc/css/aphront/headsup-action-list-view.css', 72 63 ), 73 64 'aphront-panel-view-css' => 74 65 array( ··· 79 70 ), 80 71 'disk' => '/rsrc/css/aphront/panel-view.css', 81 72 ), 82 - 'aphront-dialog-view-css' => 73 + 'aphront-request-failure-view-css' => 83 74 array( 84 - 'uri' => '/res/7101ab69/rsrc/css/aphront/dialog-view.css', 75 + 'uri' => '/res/97b8337a/rsrc/css/aphront/request-failure-view.css', 85 76 'type' => 'css', 86 77 'requires' => 87 78 array( 88 79 ), 89 - 'disk' => '/rsrc/css/aphront/dialog-view.css', 80 + 'disk' => '/rsrc/css/aphront/request-failure-view.css', 90 81 ), 91 - 'aphront-form-view-css' => 82 + 'aphront-side-nav-view-css' => 92 83 array( 93 - 'uri' => '/res/472d41b4/rsrc/css/aphront/form-view.css', 84 + 'uri' => '/res/4f4c5ca8/rsrc/css/aphront/side-nav-view.css', 94 85 'type' => 'css', 95 86 'requires' => 96 87 array( 97 88 ), 98 - 'disk' => '/rsrc/css/aphront/form-view.css', 89 + 'disk' => '/rsrc/css/aphront/side-nav-view.css', 99 90 ), 100 - 'aphront-side-nav-view-css' => 91 + 'aphront-table-view-css' => 101 92 array( 102 - 'uri' => '/res/4f4c5ca8/rsrc/css/aphront/side-nav-view.css', 93 + 'uri' => '/res/7bf17fb8/rsrc/css/aphront/table-view.css', 103 94 'type' => 'css', 104 95 'requires' => 105 96 array( 106 97 ), 107 - 'disk' => '/rsrc/css/aphront/side-nav-view.css', 98 + 'disk' => '/rsrc/css/aphront/table-view.css', 108 99 ), 109 100 'aphront-tokenizer-control-css' => 110 101 array( ··· 116 107 ), 117 108 'disk' => '/rsrc/css/aphront/tokenizer.css', 118 109 ), 119 - 'aphront-crumbs-view-css' => 110 + 'aphront-typeahead-control-css' => 120 111 array( 121 - 'uri' => '/res/c666a518/rsrc/css/aphront/crumbs-view.css', 112 + 'uri' => '/res/928df9f0/rsrc/css/aphront/typeahead.css', 122 113 'type' => 'css', 123 114 'requires' => 124 115 array( 125 116 ), 126 - 'disk' => '/rsrc/css/aphront/crumbs-view.css', 117 + 'disk' => '/rsrc/css/aphront/typeahead.css', 127 118 ), 128 - 'aphront-request-failure-view-css' => 119 + 'phabricator-standard-page-view' => 129 120 array( 130 - 'uri' => '/res/97b8337a/rsrc/css/aphront/request-failure-view.css', 121 + 'uri' => '/res/0d41ea7c/rsrc/css/application/base/standard-page-view.css', 131 122 'type' => 'css', 132 123 'requires' => 133 124 array( 134 125 ), 135 - 'disk' => '/rsrc/css/aphront/request-failure-view.css', 126 + 'disk' => '/rsrc/css/application/base/standard-page-view.css', 136 127 ), 137 - 'aphront-typeahead-control-css' => 128 + 'differential-revision-add-comment-css' => 138 129 array( 139 - 'uri' => '/res/928df9f0/rsrc/css/aphront/typeahead.css', 130 + 'uri' => '/res/aaae14d3/rsrc/css/application/differential/add-comment.css', 140 131 'type' => 'css', 141 132 'requires' => 142 133 array( 143 134 ), 144 - 'disk' => '/rsrc/css/aphront/typeahead.css', 135 + 'disk' => '/rsrc/css/application/differential/add-comment.css', 145 136 ), 146 - 'aphront-table-view-css' => 137 + 'differential-changeset-view-css' => 147 138 array( 148 - 'uri' => '/res/7bf17fb8/rsrc/css/aphront/table-view.css', 139 + 'uri' => '/res/f26ca6f9/rsrc/css/application/differential/changeset-view.css', 149 140 'type' => 'css', 150 141 'requires' => 151 142 array( 152 143 ), 153 - 'disk' => '/rsrc/css/aphront/table-view.css', 144 + 'disk' => '/rsrc/css/application/differential/changeset-view.css', 154 145 ), 155 - 'diffusion-commit-view-css' => 146 + 'differential-core-view-css' => 156 147 array( 157 - 'uri' => '/res/8c139192/rsrc/css/application/diffusion/commit-view.css', 148 + 'uri' => '/res/525d1a12/rsrc/css/application/differential/core.css', 158 149 'type' => 'css', 159 150 'requires' => 160 151 array( 161 152 ), 162 - 'disk' => '/rsrc/css/application/diffusion/commit-view.css', 153 + 'disk' => '/rsrc/css/application/differential/core.css', 154 + ), 155 + 'differential-revision-comment-list-css' => 156 + array( 157 + 'uri' => '/res/10b9a829/rsrc/css/application/differential/revision-comment-list.css', 158 + 'type' => 'css', 159 + 'requires' => 160 + array( 161 + ), 162 + 'disk' => '/rsrc/css/application/differential/revision-comment-list.css', 163 163 ), 164 - 'diffusion-source-css' => 164 + 'differential-revision-comment-css' => 165 165 array( 166 - 'uri' => '/res/7f50817b/rsrc/css/application/diffusion/diffusion-source.css', 166 + 'uri' => '/res/b271baaf/rsrc/css/application/differential/revision-comment.css', 167 167 'type' => 'css', 168 168 'requires' => 169 169 array( 170 170 ), 171 - 'disk' => '/rsrc/css/application/diffusion/diffusion-source.css', 171 + 'disk' => '/rsrc/css/application/differential/revision-comment.css', 172 172 ), 173 - 'phabricator-standard-page-view' => 173 + 'differential-revision-detail-css' => 174 174 array( 175 - 'uri' => '/res/0d41ea7c/rsrc/css/application/base/standard-page-view.css', 175 + 'uri' => '/res/623e3946/rsrc/css/application/differential/revision-detail.css', 176 176 'type' => 'css', 177 177 'requires' => 178 178 array( 179 179 ), 180 - 'disk' => '/rsrc/css/application/base/standard-page-view.css', 180 + 'disk' => '/rsrc/css/application/differential/revision-detail.css', 181 181 ), 182 - 'maniphest-task-summary-css' => 182 + 'differential-revision-history-css' => 183 183 array( 184 - 'uri' => '/res/94d01e6f/rsrc/css/application/maniphest/task-summary.css', 184 + 'uri' => '/res/755f3da3/rsrc/css/application/differential/revision-history.css', 185 185 'type' => 'css', 186 186 'requires' => 187 187 array( 188 188 ), 189 - 'disk' => '/rsrc/css/application/maniphest/task-summary.css', 189 + 'disk' => '/rsrc/css/application/differential/revision-history.css', 190 190 ), 191 - 'maniphest-transaction-detail-css' => 191 + 'differential-table-of-contents-css' => 192 192 array( 193 - 'uri' => '/res/9418efc9/rsrc/css/application/maniphest/transaction-detail.css', 193 + 'uri' => '/res/e68f6f05/rsrc/css/application/differential/table-of-contents.css', 194 194 'type' => 'css', 195 195 'requires' => 196 196 array( 197 197 ), 198 - 'disk' => '/rsrc/css/application/maniphest/transaction-detail.css', 198 + 'disk' => '/rsrc/css/application/differential/table-of-contents.css', 199 199 ), 200 - 'mainphest-task-detail-css' => 200 + 'diffusion-commit-view-css' => 201 201 array( 202 - 'uri' => '/res/e5f3beca/rsrc/css/application/maniphest/task-detail.css', 202 + 'uri' => '/res/8c139192/rsrc/css/application/diffusion/commit-view.css', 203 203 'type' => 'css', 204 204 'requires' => 205 205 array( 206 206 ), 207 - 'disk' => '/rsrc/css/application/maniphest/task-detail.css', 207 + 'disk' => '/rsrc/css/application/diffusion/commit-view.css', 208 208 ), 209 - 'herald-test-css' => 209 + 'diffusion-source-css' => 210 210 array( 211 - 'uri' => '/res/28269358/rsrc/css/application/herald/herald-test.css', 211 + 'uri' => '/res/7f50817b/rsrc/css/application/diffusion/diffusion-source.css', 212 212 'type' => 'css', 213 213 'requires' => 214 214 array( 215 215 ), 216 - 'disk' => '/rsrc/css/application/herald/herald-test.css', 216 + 'disk' => '/rsrc/css/application/diffusion/diffusion-source.css', 217 217 ), 218 - 'herald-css' => 218 + 'phabricator-directory-css' => 219 219 array( 220 - 'uri' => '/res/211a4b1b/rsrc/css/application/herald/herald.css', 220 + 'uri' => '/res/6a000601/rsrc/css/application/directory/phabricator-directory.css', 221 221 'type' => 'css', 222 222 'requires' => 223 223 array( 224 224 ), 225 - 'disk' => '/rsrc/css/application/herald/herald.css', 225 + 'disk' => '/rsrc/css/application/directory/phabricator-directory.css', 226 226 ), 227 - 'differential-table-of-contents-css' => 227 + 'herald-test-css' => 228 228 array( 229 - 'uri' => '/res/e68f6f05/rsrc/css/application/differential/table-of-contents.css', 229 + 'uri' => '/res/28269358/rsrc/css/application/herald/herald-test.css', 230 230 'type' => 'css', 231 231 'requires' => 232 232 array( 233 233 ), 234 - 'disk' => '/rsrc/css/application/differential/table-of-contents.css', 234 + 'disk' => '/rsrc/css/application/herald/herald-test.css', 235 235 ), 236 - 'differential-revision-history-css' => 236 + 'herald-css' => 237 237 array( 238 - 'uri' => '/res/755f3da3/rsrc/css/application/differential/revision-history.css', 238 + 'uri' => '/res/211a4b1b/rsrc/css/application/herald/herald.css', 239 239 'type' => 'css', 240 240 'requires' => 241 241 array( 242 242 ), 243 - 'disk' => '/rsrc/css/application/differential/revision-history.css', 243 + 'disk' => '/rsrc/css/application/herald/herald.css', 244 244 ), 245 - 'differential-revision-add-comment-css' => 245 + 'mainphest-task-detail-css' => 246 246 array( 247 - 'uri' => '/res/aaae14d3/rsrc/css/application/differential/add-comment.css', 247 + 'uri' => '/res/e5f3beca/rsrc/css/application/maniphest/task-detail.css', 248 248 'type' => 'css', 249 249 'requires' => 250 250 array( 251 251 ), 252 - 'disk' => '/rsrc/css/application/differential/add-comment.css', 252 + 'disk' => '/rsrc/css/application/maniphest/task-detail.css', 253 253 ), 254 - 'differential-revision-comment-css' => 254 + 'maniphest-task-summary-css' => 255 255 array( 256 - 'uri' => '/res/b271baaf/rsrc/css/application/differential/revision-comment.css', 256 + 'uri' => '/res/94d01e6f/rsrc/css/application/maniphest/task-summary.css', 257 257 'type' => 'css', 258 258 'requires' => 259 259 array( 260 260 ), 261 - 'disk' => '/rsrc/css/application/differential/revision-comment.css', 261 + 'disk' => '/rsrc/css/application/maniphest/task-summary.css', 262 262 ), 263 - 'differential-revision-detail-css' => 263 + 'maniphest-transaction-detail-css' => 264 264 array( 265 - 'uri' => '/res/623e3946/rsrc/css/application/differential/revision-detail.css', 265 + 'uri' => '/res/16725026/rsrc/css/application/maniphest/transaction-detail.css', 266 266 'type' => 'css', 267 267 'requires' => 268 268 array( 269 269 ), 270 - 'disk' => '/rsrc/css/application/differential/revision-detail.css', 270 + 'disk' => '/rsrc/css/application/maniphest/transaction-detail.css', 271 271 ), 272 - 'differential-core-view-css' => 272 + 'phabricator-object-selector-css' => 273 273 array( 274 - 'uri' => '/res/525d1a12/rsrc/css/application/differential/core.css', 274 + 'uri' => '/res/52a7e289/rsrc/css/application/objectselector/object-selector.css', 275 275 'type' => 'css', 276 276 'requires' => 277 277 array( 278 + 0 => 'aphront-dialog-view-css', 278 279 ), 279 - 'disk' => '/rsrc/css/application/differential/core.css', 280 + 'disk' => '/rsrc/css/application/objectselector/object-selector.css', 280 281 ), 281 - 'differential-revision-comment-list-css' => 282 + 'phabricator-profile-css' => 282 283 array( 283 - 'uri' => '/res/10b9a829/rsrc/css/application/differential/revision-comment-list.css', 284 + 'uri' => '/res/259ad37f/rsrc/css/application/people/profile.css', 284 285 'type' => 'css', 285 286 'requires' => 286 287 array( 287 288 ), 288 - 'disk' => '/rsrc/css/application/differential/revision-comment-list.css', 289 + 'disk' => '/rsrc/css/application/people/profile.css', 289 290 ), 290 - 'differential-changeset-view-css' => 291 + 'phabricator-core-buttons-css' => 291 292 array( 292 - 'uri' => '/res/f26ca6f9/rsrc/css/application/differential/changeset-view.css', 293 + 'uri' => '/res/53b4f712/rsrc/css/core/buttons.css', 293 294 'type' => 'css', 294 295 'requires' => 295 296 array( 296 297 ), 297 - 'disk' => '/rsrc/css/application/differential/changeset-view.css', 298 + 'disk' => '/rsrc/css/core/buttons.css', 298 299 ), 299 - 'phabricator-directory-css' => 300 + 'phabricator-core-css' => 300 301 array( 301 - 'uri' => '/res/6a000601/rsrc/css/application/directory/phabricator-directory.css', 302 + 'uri' => '/res/6eebb99b/rsrc/css/core/core.css', 302 303 'type' => 'css', 303 304 'requires' => 304 305 array( 305 306 ), 306 - 'disk' => '/rsrc/css/application/directory/phabricator-directory.css', 307 + 'disk' => '/rsrc/css/core/core.css', 307 308 ), 308 - 'phabricator-object-selector-css' => 309 + 'phabricator-remarkup-css' => 309 310 array( 310 - 'uri' => '/res/52a7e289/rsrc/css/application/objectselector/object-selector.css', 311 + 'uri' => '/res/bf863100/rsrc/css/core/remarkup.css', 311 312 'type' => 'css', 312 313 'requires' => 313 314 array( 314 - 0 => 'aphront-dialog-view-css', 315 315 ), 316 - 'disk' => '/rsrc/css/application/objectselector/object-selector.css', 316 + 'disk' => '/rsrc/css/core/remarkup.css', 317 317 ), 318 - 'phabricator-profile-css' => 318 + 'syntax-highlighting-css' => 319 319 array( 320 - 'uri' => '/res/259ad37f/rsrc/css/application/people/profile.css', 320 + 'uri' => '/res/fb673ece/rsrc/css/core/syntax.css', 321 321 'type' => 'css', 322 322 'requires' => 323 323 array( 324 324 ), 325 - 'disk' => '/rsrc/css/application/people/profile.css', 325 + 'disk' => '/rsrc/css/core/syntax.css', 326 326 ), 327 - 'javelin-typeahead-dev' => 327 + 'javelin-behavior-dark-console' => 328 328 array( 329 - 'uri' => '/res/6de6ae59/rsrc/js/javelin/typeahead.dev.js', 329 + 'uri' => '/res/020b0265/rsrc/js/application/core/behavior-dark-console.js', 330 330 'type' => 'js', 331 331 'requires' => 332 332 array( 333 333 ), 334 - 'disk' => '/rsrc/js/javelin/typeahead.dev.js', 334 + 'disk' => '/rsrc/js/application/core/behavior-dark-console.js', 335 335 ), 336 - 'javelin-workflow-prod' => 336 + 'javelin-behavior-phabricator-object-selector' => 337 337 array( 338 - 'uri' => '/res/b758e0a0/rsrc/js/javelin/workflow.min.js', 338 + 'uri' => '/res/4fe735af/rsrc/js/application/core/behavior-object-selector.js', 339 339 'type' => 'js', 340 340 'requires' => 341 341 array( 342 + 0 => 'javelin-lib-dev', 342 343 ), 343 - 'disk' => '/rsrc/js/javelin/workflow.min.js', 344 + 'disk' => '/rsrc/js/application/core/behavior-object-selector.js', 344 345 ), 345 - 'javelin-workflow-dev' => 346 + 'javelin-behavior-aphront-basic-tokenizer' => 346 347 array( 347 - 'uri' => '/res/c6b17f93/rsrc/js/javelin/workflow.dev.js', 348 + 'uri' => '/res/8317d761/rsrc/js/application/core/behavior-tokenizer.js', 348 349 'type' => 'js', 349 350 'requires' => 350 351 array( 352 + 0 => 'javelin-lib-dev', 351 353 ), 352 - 'disk' => '/rsrc/js/javelin/workflow.dev.js', 354 + 'disk' => '/rsrc/js/application/core/behavior-tokenizer.js', 353 355 ), 354 - 'javelin-lib-dev' => 356 + 'javelin-behavior-workflow' => 355 357 array( 356 - 'uri' => '/res/a0e7a5e9/rsrc/js/javelin/javelin.dev.js', 358 + 'uri' => '/res/15446e7e/rsrc/js/application/core/behavior-workflow.js', 357 359 'type' => 'js', 358 360 'requires' => 359 361 array( 362 + 0 => 'javelin-lib-dev', 360 363 ), 361 - 'disk' => '/rsrc/js/javelin/javelin.dev.js', 364 + 'disk' => '/rsrc/js/application/core/behavior-workflow.js', 362 365 ), 363 - 'javelin-init-prod' => 366 + 'multirow-row-manager' => 364 367 array( 365 - 'uri' => '/res/1267c868/rsrc/js/javelin/init.min.js', 368 + 'uri' => '/res/330d076b/rsrc/js/application/core/MultirowRowManager.js', 366 369 'type' => 'js', 367 370 'requires' => 368 371 array( 372 + 0 => 'javelin-lib-dev', 369 373 ), 370 - 'disk' => '/rsrc/js/javelin/init.min.js', 374 + 'disk' => '/rsrc/js/application/core/MultirowRowManager.js', 371 375 ), 372 - 'javelin-typeahead-prod' => 376 + 'javelin-behavior-differential-add-reviewers' => 373 377 array( 374 - 'uri' => '/res/69d5fad1/rsrc/js/javelin/typeahead.min.js', 378 + 'uri' => '/res/330154e4/rsrc/js/application/differential/behavior-add-reviewers.js', 375 379 'type' => 'js', 376 380 'requires' => 377 381 array( 382 + 0 => 'javelin-lib-dev', 378 383 ), 379 - 'disk' => '/rsrc/js/javelin/typeahead.min.js', 384 + 'disk' => '/rsrc/js/application/differential/behavior-add-reviewers.js', 380 385 ), 381 - 'javelin-lib-prod' => 386 + 'javelin-behavior-differential-feedback-preview' => 382 387 array( 383 - 'uri' => '/res/2f2b3b2e/rsrc/js/javelin/javelin.min.js', 388 + 'uri' => '/res/8695d8b8/rsrc/js/application/differential/behavior-comment-preview.js', 384 389 'type' => 'js', 385 390 'requires' => 386 391 array( 392 + 0 => 'javelin-lib-dev', 387 393 ), 388 - 'disk' => '/rsrc/js/javelin/javelin.min.js', 394 + 'disk' => '/rsrc/js/application/differential/behavior-comment-preview.js', 389 395 ), 390 - 'javelin-magical-init' => 396 + 'javelin-behavior-differential-diff-radios' => 391 397 array( 392 - 'uri' => '/res/76614f84/rsrc/js/javelin/init.dev.js', 398 + 'uri' => '/res/fdeb3823/rsrc/js/application/differential/behavior-diff-radios.js', 393 399 'type' => 'js', 394 400 'requires' => 395 401 array( 402 + 0 => 'javelin-lib-dev', 396 403 ), 397 - 'disk' => '/rsrc/js/javelin/init.dev.js', 404 + 'disk' => '/rsrc/js/application/differential/behavior-diff-radios.js', 398 405 ), 399 - 'javelin-behavior-diffusion-jump-to' => 406 + 'javelin-behavior-differential-edit-inline-comments' => 400 407 array( 401 - 'uri' => '/res/4f3f6cdc/rsrc/js/application/diffusion/behavior-jump-to.js', 408 + 'uri' => '/res/74747b2e/rsrc/js/application/differential/behavior-edit-inline-comments.js', 402 409 'type' => 'js', 403 410 'requires' => 404 411 array( 405 412 0 => 'javelin-lib-dev', 406 413 ), 407 - 'disk' => '/rsrc/js/application/diffusion/behavior-jump-to.js', 414 + 'disk' => '/rsrc/js/application/differential/behavior-edit-inline-comments.js', 408 415 ), 409 - 'javelin-behavior-maniphest-transaction-controls' => 416 + 'javelin-behavior-differential-populate' => 410 417 array( 411 - 'uri' => '/res/fc6a8722/rsrc/js/application/maniphest/behavior-transaction-controls.js', 418 + 'uri' => '/res/a13dcd7e/rsrc/js/application/differential/behavior-populate.js', 412 419 'type' => 'js', 413 420 'requires' => 414 421 array( 415 422 0 => 'javelin-lib-dev', 416 423 ), 417 - 'disk' => '/rsrc/js/application/maniphest/behavior-transaction-controls.js', 424 + 'disk' => '/rsrc/js/application/differential/behavior-populate.js', 418 425 ), 419 - 'javelin-behavior-dark-console' => 426 + 'javelin-behavior-differential-show-all-comments' => 420 427 array( 421 - 'uri' => '/res/020b0265/rsrc/js/application/core/behavior-dark-console.js', 428 + 'uri' => '/res/2a3592b8/rsrc/js/application/differential/behavior-show-all-comments.js', 422 429 'type' => 'js', 423 430 'requires' => 424 431 array( 432 + 0 => 'javelin-lib-dev', 425 433 ), 426 - 'disk' => '/rsrc/js/application/core/behavior-dark-console.js', 434 + 'disk' => '/rsrc/js/application/differential/behavior-show-all-comments.js', 427 435 ), 428 - 'javelin-behavior-aphront-basic-tokenizer' => 436 + 'javelin-behavior-differential-show-more' => 429 437 array( 430 - 'uri' => '/res/8317d761/rsrc/js/application/core/behavior-tokenizer.js', 438 + 'uri' => '/res/ea998002/rsrc/js/application/differential/behavior-show-more.js', 431 439 'type' => 'js', 432 440 'requires' => 433 441 array( 434 442 0 => 'javelin-lib-dev', 435 443 ), 436 - 'disk' => '/rsrc/js/application/core/behavior-tokenizer.js', 444 + 'disk' => '/rsrc/js/application/differential/behavior-show-more.js', 437 445 ), 438 - 'multirow-row-manager' => 446 + 'javelin-behavior-diffusion-jump-to' => 439 447 array( 440 - 'uri' => '/res/330d076b/rsrc/js/application/core/MultirowRowManager.js', 448 + 'uri' => '/res/4f3f6cdc/rsrc/js/application/diffusion/behavior-jump-to.js', 441 449 'type' => 'js', 442 450 'requires' => 443 451 array( 444 452 0 => 'javelin-lib-dev', 445 453 ), 446 - 'disk' => '/rsrc/js/application/core/MultirowRowManager.js', 454 + 'disk' => '/rsrc/js/application/diffusion/behavior-jump-to.js', 447 455 ), 448 - 'javelin-behavior-phabricator-object-selector' => 456 + 'javelin-behavior-diffusion-pull-lastmodified' => 449 457 array( 450 - 'uri' => '/res/4fe735af/rsrc/js/application/core/behavior-object-selector.js', 458 + 'uri' => '/res/1c95a58e/rsrc/js/application/diffusion/behavior-pull-lastmodified.js', 451 459 'type' => 'js', 452 460 'requires' => 453 461 array( 454 462 0 => 'javelin-lib-dev', 455 463 ), 456 - 'disk' => '/rsrc/js/application/core/behavior-object-selector.js', 464 + 'disk' => '/rsrc/js/application/diffusion/behavior-pull-lastmodified.js', 457 465 ), 458 - 'javelin-behavior-workflow' => 466 + 'javelin-behavior-herald-rule-editor' => 459 467 array( 460 - 'uri' => '/res/15446e7e/rsrc/js/application/core/behavior-workflow.js', 468 + 'uri' => '/res/48108130/rsrc/js/application/herald/herald-rule-editor.js', 461 469 'type' => 'js', 462 470 'requires' => 463 471 array( 464 - 0 => 'javelin-lib-dev', 472 + 0 => 'herald-rule-editor', 473 + 1 => 'javelin-lib-dev', 465 474 ), 466 - 'disk' => '/rsrc/js/application/core/behavior-workflow.js', 475 + 'disk' => '/rsrc/js/application/herald/herald-rule-editor.js', 467 476 ), 468 477 'herald-rule-editor' => 469 478 array( ··· 472 481 'requires' => 473 482 array( 474 483 0 => 'multirow-row-manager', 484 + 1 => 'javelin-lib-dev', 485 + 2 => 'javelin-typeahead-dev', 475 486 ), 476 487 'disk' => '/rsrc/js/application/herald/HeraldRuleEditor.js', 477 488 ), 478 - 'javelin-behavior-herald-rule-editor' => 489 + 'javelin-behavior-maniphest-transaction-controls' => 479 490 array( 480 - 'uri' => '/res/48108130/rsrc/js/application/herald/herald-rule-editor.js', 491 + 'uri' => '/res/fc6a8722/rsrc/js/application/maniphest/behavior-transaction-controls.js', 481 492 'type' => 'js', 482 493 'requires' => 483 494 array( 484 - 0 => 'herald-rule-editor', 495 + 0 => 'javelin-lib-dev', 485 496 ), 486 - 'disk' => '/rsrc/js/application/herald/herald-rule-editor.js', 497 + 'disk' => '/rsrc/js/application/maniphest/behavior-transaction-controls.js', 487 498 ), 488 - 'javelin-behavior-differential-diff-radios' => 499 + 'javelin-magical-init' => 489 500 array( 490 - 'uri' => '/res/fdeb3823/rsrc/js/application/differential/behavior-diff-radios.js', 501 + 'uri' => '/res/76614f84/rsrc/js/javelin/init.dev.js', 491 502 'type' => 'js', 492 503 'requires' => 493 504 array( 494 - 0 => 'javelin-lib-dev', 495 505 ), 496 - 'disk' => '/rsrc/js/application/differential/behavior-diff-radios.js', 506 + 'disk' => '/rsrc/js/javelin/init.dev.js', 497 507 ), 498 - 'javelin-behavior-differential-show-more' => 508 + 'javelin-init-prod' => 499 509 array( 500 - 'uri' => '/res/ea998002/rsrc/js/application/differential/behavior-show-more.js', 510 + 'uri' => '/res/1267c868/rsrc/js/javelin/init.min.js', 501 511 'type' => 'js', 502 512 'requires' => 503 513 array( 504 - 0 => 'javelin-lib-dev', 505 514 ), 506 - 'disk' => '/rsrc/js/application/differential/behavior-show-more.js', 515 + 'disk' => '/rsrc/js/javelin/init.min.js', 507 516 ), 508 - 'javelin-behavior-differential-add-reviewers' => 517 + 'javelin-lib-dev' => 509 518 array( 510 - 'uri' => '/res/330154e4/rsrc/js/application/differential/behavior-add-reviewers.js', 519 + 'uri' => '/res/a0e7a5e9/rsrc/js/javelin/javelin.dev.js', 511 520 'type' => 'js', 512 521 'requires' => 513 522 array( 514 - 0 => 'javelin-lib-dev', 515 523 ), 516 - 'disk' => '/rsrc/js/application/differential/behavior-add-reviewers.js', 524 + 'disk' => '/rsrc/js/javelin/javelin.dev.js', 517 525 ), 518 - 'javelin-behavior-differential-feedback-preview' => 526 + 'javelin-lib-prod' => 519 527 array( 520 - 'uri' => '/res/8695d8b8/rsrc/js/application/differential/behavior-comment-preview.js', 528 + 'uri' => '/res/2f2b3b2e/rsrc/js/javelin/javelin.min.js', 521 529 'type' => 'js', 522 530 'requires' => 523 531 array( 524 - 0 => 'javelin-lib-dev', 525 532 ), 526 - 'disk' => '/rsrc/js/application/differential/behavior-comment-preview.js', 533 + 'disk' => '/rsrc/js/javelin/javelin.min.js', 534 + ), 535 + 'javelin-typeahead-dev' => 536 + array( 537 + 'uri' => '/res/6de6ae59/rsrc/js/javelin/typeahead.dev.js', 538 + 'type' => 'js', 539 + 'requires' => 540 + array( 541 + ), 542 + 'disk' => '/rsrc/js/javelin/typeahead.dev.js', 527 543 ), 528 - 'javelin-behavior-differential-populate' => 544 + 'javelin-typeahead-prod' => 529 545 array( 530 - 'uri' => '/res/a13dcd7e/rsrc/js/application/differential/behavior-populate.js', 546 + 'uri' => '/res/69d5fad1/rsrc/js/javelin/typeahead.min.js', 531 547 'type' => 'js', 532 548 'requires' => 533 549 array( 534 - 0 => 'javelin-lib-dev', 535 550 ), 536 - 'disk' => '/rsrc/js/application/differential/behavior-populate.js', 551 + 'disk' => '/rsrc/js/javelin/typeahead.min.js', 537 552 ), 538 - 'javelin-behavior-differential-edit-inline-comments' => 553 + 'javelin-workflow-dev' => 539 554 array( 540 - 'uri' => '/res/74747b2e/rsrc/js/application/differential/behavior-edit-inline-comments.js', 555 + 'uri' => '/res/c6b17f93/rsrc/js/javelin/workflow.dev.js', 541 556 'type' => 'js', 542 557 'requires' => 543 558 array( 544 - 0 => 'javelin-lib-dev', 545 559 ), 546 - 'disk' => '/rsrc/js/application/differential/behavior-edit-inline-comments.js', 560 + 'disk' => '/rsrc/js/javelin/workflow.dev.js', 547 561 ), 548 - 'javelin-behavior-differential-show-all-comments' => 562 + 'javelin-workflow-prod' => 549 563 array( 550 - 'uri' => '/res/2a3592b8/rsrc/js/application/differential/behavior-show-all-comments.js', 564 + 'uri' => '/res/b758e0a0/rsrc/js/javelin/workflow.min.js', 551 565 'type' => 'js', 552 566 'requires' => 553 567 array( 554 - 0 => 'javelin-lib-dev', 555 568 ), 556 - 'disk' => '/rsrc/js/application/differential/behavior-show-all-comments.js', 569 + 'disk' => '/rsrc/js/javelin/workflow.min.js', 557 570 ), 558 571 ), array ( 559 572 'packages' => 560 573 array ( 561 - 'abe939ec' => 574 + 'aa9bbfd1' => 562 575 array ( 563 576 'name' => 'core.pkg.css', 564 577 'symbols' => ··· 578 591 12 => 'phabricator-remarkup-css', 579 592 13 => 'syntax-highlighting-css', 580 593 ), 581 - 'uri' => '/res/pkg/abe939ec/core.pkg.css', 594 + 'uri' => '/res/pkg/aa9bbfd1/core.pkg.css', 582 595 'type' => 'css', 583 596 ), 584 597 '76f3c1f8' => ··· 625 638 ), 626 639 'reverse' => 627 640 array ( 628 - 'phabricator-core-css' => 'abe939ec', 629 - 'phabricator-core-buttons-css' => 'abe939ec', 630 - 'phabricator-standard-page-view' => 'abe939ec', 631 - 'aphront-dialog-view-css' => 'abe939ec', 632 - 'aphront-form-view-css' => 'abe939ec', 633 - 'aphront-panel-view-css' => 'abe939ec', 634 - 'aphront-side-nav-view-css' => 'abe939ec', 635 - 'aphront-table-view-css' => 'abe939ec', 636 - 'aphront-crumbs-view-css' => 'abe939ec', 637 - 'aphront-tokenizer-control-css' => 'abe939ec', 638 - 'aphront-typeahead-control-css' => 'abe939ec', 639 - 'phabricator-directory-css' => 'abe939ec', 640 - 'phabricator-remarkup-css' => 'abe939ec', 641 - 'syntax-highlighting-css' => 'abe939ec', 641 + 'phabricator-core-css' => 'aa9bbfd1', 642 + 'phabricator-core-buttons-css' => 'aa9bbfd1', 643 + 'phabricator-standard-page-view' => 'aa9bbfd1', 644 + 'aphront-dialog-view-css' => 'aa9bbfd1', 645 + 'aphront-form-view-css' => 'aa9bbfd1', 646 + 'aphront-panel-view-css' => 'aa9bbfd1', 647 + 'aphront-side-nav-view-css' => 'aa9bbfd1', 648 + 'aphront-table-view-css' => 'aa9bbfd1', 649 + 'aphront-crumbs-view-css' => 'aa9bbfd1', 650 + 'aphront-tokenizer-control-css' => 'aa9bbfd1', 651 + 'aphront-typeahead-control-css' => 'aa9bbfd1', 652 + 'phabricator-directory-css' => 'aa9bbfd1', 653 + 'phabricator-remarkup-css' => 'aa9bbfd1', 654 + 'syntax-highlighting-css' => 'aa9bbfd1', 642 655 'differential-core-view-css' => '76f3c1f8', 643 656 'differential-changeset-view-css' => '76f3c1f8', 644 657 'differential-revision-detail-css' => '76f3c1f8',
+7
src/__phutil_library_map__.php
··· 166 166 'DiffusionGitDiffQuery' => 'applications/diffusion/query/diff/git', 167 167 'DiffusionGitFileContentQuery' => 'applications/diffusion/query/filecontent/git', 168 168 'DiffusionGitHistoryQuery' => 'applications/diffusion/query/history/git', 169 + 'DiffusionGitLastModifiedQuery' => 'applications/diffusion/query/lastmodified/git', 169 170 'DiffusionGitPathIDQuery' => 'applications/diffusion/query/pathid/base', 170 171 'DiffusionGitRequest' => 'applications/diffusion/request/git', 171 172 'DiffusionHistoryController' => 'applications/diffusion/controller/history', 172 173 'DiffusionHistoryQuery' => 'applications/diffusion/query/history/base', 173 174 'DiffusionHistoryTableView' => 'applications/diffusion/view/historytable', 174 175 'DiffusionHomeController' => 'applications/diffusion/controller/home', 176 + 'DiffusionLastModifiedController' => 'applications/diffusion/controller/lastmodified', 177 + 'DiffusionLastModifiedQuery' => 'applications/diffusion/query/lastmodified/base', 175 178 'DiffusionPathChange' => 'applications/diffusion/data/pathchange', 176 179 'DiffusionPathChangeQuery' => 'applications/diffusion/query/pathchange/base', 177 180 'DiffusionRepositoryController' => 'applications/diffusion/controller/repository', ··· 181 184 'DiffusionSvnDiffQuery' => 'applications/diffusion/query/diff/svn', 182 185 'DiffusionSvnFileContentQuery' => 'applications/diffusion/query/filecontent/svn', 183 186 'DiffusionSvnHistoryQuery' => 'applications/diffusion/query/history/svn', 187 + 'DiffusionSvnLastModifiedQuery' => 'applications/diffusion/query/lastmodified/svn', 184 188 'DiffusionSvnRequest' => 'applications/diffusion/request/svn', 185 189 'DiffusionView' => 'applications/diffusion/view/base', 186 190 'HeraldAction' => 'applications/herald/storage/action', ··· 535 539 'DiffusionGitDiffQuery' => 'DiffusionDiffQuery', 536 540 'DiffusionGitFileContentQuery' => 'DiffusionFileContentQuery', 537 541 'DiffusionGitHistoryQuery' => 'DiffusionHistoryQuery', 542 + 'DiffusionGitLastModifiedQuery' => 'DiffusionLastModifiedQuery', 538 543 'DiffusionGitRequest' => 'DiffusionRequest', 539 544 'DiffusionHistoryController' => 'DiffusionController', 540 545 'DiffusionHistoryTableView' => 'DiffusionView', 541 546 'DiffusionHomeController' => 'DiffusionController', 547 + 'DiffusionLastModifiedController' => 'DiffusionController', 542 548 'DiffusionRepositoryController' => 'DiffusionController', 543 549 'DiffusionSvnBrowseQuery' => 'DiffusionBrowseQuery', 544 550 'DiffusionSvnDiffQuery' => 'DiffusionDiffQuery', 545 551 'DiffusionSvnFileContentQuery' => 'DiffusionFileContentQuery', 546 552 'DiffusionSvnHistoryQuery' => 'DiffusionHistoryQuery', 553 + 'DiffusionSvnLastModifiedQuery' => 'DiffusionLastModifiedQuery', 547 554 'DiffusionSvnRequest' => 'DiffusionRequest', 548 555 'DiffusionView' => 'AphrontView', 549 556 'HeraldAction' => 'HeraldDAO',
+5
src/aphront/default/configuration/AphrontDefaultApplicationConfiguration.php
··· 210 210 '(?:[;](?P<commit>[a-z0-9]+))?'. 211 211 '$' 212 212 => 'DiffusionDiffController', 213 + 'lastmodified/'. 214 + '(?P<path>.*?)'. 215 + '(?:[;](?P<commit>[a-z0-9]+))?'. 216 + '$' 217 + => 'DiffusionLastModifiedController', 213 218 ), 214 219 ), 215 220
+37
src/applications/diffusion/controller/lastmodified/DiffusionLastModifiedController.php
··· 1 + <?php 2 + 3 + /* 4 + * Copyright 2011 Facebook, Inc. 5 + * 6 + * Licensed under the Apache License, Version 2.0 (the "License"); 7 + * you may not use this file except in compliance with the License. 8 + * You may obtain a copy of the License at 9 + * 10 + * http://www.apache.org/licenses/LICENSE-2.0 11 + * 12 + * Unless required by applicable law or agreed to in writing, software 13 + * distributed under the License is distributed on an "AS IS" BASIS, 14 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 + * See the License for the specific language governing permissions and 16 + * limitations under the License. 17 + */ 18 + 19 + class DiffusionLastModifiedController extends DiffusionController { 20 + 21 + public function processRequest() { 22 + $drequest = $this->getDiffusionRequest(); 23 + $request = $this->getRequest(); 24 + 25 + $modified_query = DiffusionLastModifiedQuery::newFromDiffusionRequest( 26 + $drequest); 27 + list($commit, $commit_data) = $modified_query->loadLastModification(); 28 + 29 + $output = DiffusionBrowseTableView::renderLastModifiedColumns( 30 + $drequest->getRepository(), 31 + $commit, 32 + $commit_data); 33 + 34 + return id(new AphrontAjaxResponse()) 35 + ->setContent($output); 36 + } 37 + }
+17
src/applications/diffusion/controller/lastmodified/__init__.php
··· 1 + <?php 2 + /** 3 + * This file is automatically generated. Lint this module to rebuild it. 4 + * @generated 5 + */ 6 + 7 + 8 + 9 + phutil_require_module('phabricator', 'aphront/response/ajax'); 10 + phutil_require_module('phabricator', 'applications/diffusion/controller/base'); 11 + phutil_require_module('phabricator', 'applications/diffusion/query/lastmodified/base'); 12 + phutil_require_module('phabricator', 'applications/diffusion/view/browsetable'); 13 + 14 + phutil_require_module('phutil', 'utils'); 15 + 16 + 17 + phutil_require_source('DiffusionLastModifiedController.php');
+3 -1
src/applications/diffusion/query/history/svn/DiffusionSvnHistoryQuery.php
··· 35 35 $paths = ipull($paths, 'id', 'path'); 36 36 $path_id = $paths['/'.trim($path, '/')]; 37 37 38 - // TODO: isDirect junk 38 + // TODO: isDirect junk, but note that we need indirect events for the 39 + // svnlastmodified query! 39 40 40 41 $history_data = queryfx_all( 41 42 $conn_r, ··· 68 69 $history = array(); 69 70 foreach ($history_data as $row) { 70 71 $item = new DiffusionPathChange(); 72 + 71 73 $commit = idx($commits, $row['commitID']); 72 74 if ($commit) { 73 75 $item->setCommit($commit);
+61
src/applications/diffusion/query/lastmodified/base/DiffusionLastModifiedQuery.php
··· 1 + <?php 2 + 3 + /* 4 + * Copyright 2011 Facebook, Inc. 5 + * 6 + * Licensed under the Apache License, Version 2.0 (the "License"); 7 + * you may not use this file except in compliance with the License. 8 + * You may obtain a copy of the License at 9 + * 10 + * http://www.apache.org/licenses/LICENSE-2.0 11 + * 12 + * Unless required by applicable law or agreed to in writing, software 13 + * distributed under the License is distributed on an "AS IS" BASIS, 14 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 + * See the License for the specific language governing permissions and 16 + * limitations under the License. 17 + */ 18 + 19 + abstract class DiffusionLastModifiedQuery { 20 + 21 + private $request; 22 + 23 + final private function __construct() { 24 + // <private> 25 + } 26 + 27 + final public static function newFromDiffusionRequest( 28 + DiffusionRequest $request) { 29 + 30 + $repository = $request->getRepository(); 31 + 32 + switch ($repository->getVersionControlSystem()) { 33 + case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT: 34 + $class = 'DiffusionGitLastModifiedQuery'; 35 + break; 36 + case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN: 37 + $class = 'DiffusionSvnLastModifiedQuery'; 38 + break; 39 + default: 40 + throw new Exception("Unsupported VCS!"); 41 + } 42 + 43 + PhutilSymbolLoader::loadClass($class); 44 + $query = new $class(); 45 + 46 + $query->request = $request; 47 + 48 + return $query; 49 + } 50 + 51 + final protected function getRequest() { 52 + return $this->request; 53 + } 54 + 55 + final public function loadLastModification() { 56 + return $this->executeQuery(); 57 + } 58 + 59 + abstract protected function executeQuery(); 60 + 61 + }
+14
src/applications/diffusion/query/lastmodified/base/__init__.php
··· 1 + <?php 2 + /** 3 + * This file is automatically generated. Lint this module to rebuild it. 4 + * @generated 5 + */ 6 + 7 + 8 + 9 + phutil_require_module('phabricator', 'applications/repository/constants/repositorytype'); 10 + 11 + phutil_require_module('phutil', 'symbols'); 12 + 13 + 14 + phutil_require_source('DiffusionLastModifiedQuery.php');
+47
src/applications/diffusion/query/lastmodified/git/DiffusionGitLastModifiedQuery.php
··· 1 + <?php 2 + 3 + /* 4 + * Copyright 2011 Facebook, Inc. 5 + * 6 + * Licensed under the Apache License, Version 2.0 (the "License"); 7 + * you may not use this file except in compliance with the License. 8 + * You may obtain a copy of the License at 9 + * 10 + * http://www.apache.org/licenses/LICENSE-2.0 11 + * 12 + * Unless required by applicable law or agreed to in writing, software 13 + * distributed under the License is distributed on an "AS IS" BASIS, 14 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 + * See the License for the specific language governing permissions and 16 + * limitations under the License. 17 + */ 18 + 19 + final class DiffusionGitLastModifiedQuery extends DiffusionLastModifiedQuery { 20 + 21 + protected function executeQuery() { 22 + $drequest = $this->getRequest(); 23 + $repository = $drequest->getRepository(); 24 + 25 + list($hash) = execx( 26 + "(cd %s && git log -n1 --format=%%H %s -- %s)", 27 + $repository->getDetail('local-path'), 28 + $drequest->getCommit(), 29 + $drequest->getPath()); 30 + $hash = trim($hash); 31 + 32 + $commit_data = null; 33 + 34 + $commit = id(new PhabricatorRepositoryCommit())->loadOneWhere( 35 + 'repositoryID = %d AND commitIdentifier = %s', 36 + $repository->getID(), 37 + $hash); 38 + if ($commit) { 39 + $commit_data = id(new PhabricatorRepositoryCommitData())->loadOneWhere( 40 + 'commitID = %d', 41 + $commit->getID()); 42 + } 43 + 44 + return array($commit, $commit_data); 45 + } 46 + 47 + }
+17
src/applications/diffusion/query/lastmodified/git/__init__.php
··· 1 + <?php 2 + /** 3 + * This file is automatically generated. Lint this module to rebuild it. 4 + * @generated 5 + */ 6 + 7 + 8 + 9 + phutil_require_module('phabricator', 'applications/diffusion/query/lastmodified/base'); 10 + phutil_require_module('phabricator', 'applications/repository/storage/commit'); 11 + phutil_require_module('phabricator', 'applications/repository/storage/commitdata'); 12 + 13 + phutil_require_module('phutil', 'future/exec'); 14 + phutil_require_module('phutil', 'utils'); 15 + 16 + 17 + phutil_require_source('DiffusionGitLastModifiedQuery.php');
+36
src/applications/diffusion/query/lastmodified/svn/DiffusionSvnLastModifiedQuery.php
··· 1 + <?php 2 + 3 + /* 4 + * Copyright 2011 Facebook, Inc. 5 + * 6 + * Licensed under the Apache License, Version 2.0 (the "License"); 7 + * you may not use this file except in compliance with the License. 8 + * You may obtain a copy of the License at 9 + * 10 + * http://www.apache.org/licenses/LICENSE-2.0 11 + * 12 + * Unless required by applicable law or agreed to in writing, software 13 + * distributed under the License is distributed on an "AS IS" BASIS, 14 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 + * See the License for the specific language governing permissions and 16 + * limitations under the License. 17 + */ 18 + 19 + final class DiffusionSvnLastModifiedQuery extends DiffusionLastModifiedQuery { 20 + 21 + protected function executeQuery() { 22 + $drequest = $this->getRequest(); 23 + $repository = $drequest->getRepository(); 24 + 25 + $path = $drequest->getPath(); 26 + 27 + $history_query = DiffusionHistoryQuery::newFromDiffusionRequest( 28 + $drequest); 29 + $history_query->setLimit(1); 30 + $history_array = $history_query->loadHistory(); 31 + $history = reset($history_array); 32 + 33 + return array($history->getCommit(), $history->getCommitData()); 34 + } 35 + 36 + }
+13
src/applications/diffusion/query/lastmodified/svn/__init__.php
··· 1 + <?php 2 + /** 3 + * This file is automatically generated. Lint this module to rebuild it. 4 + * @generated 5 + */ 6 + 7 + 8 + 9 + phutil_require_module('phabricator', 'applications/diffusion/query/history/base'); 10 + phutil_require_module('phabricator', 'applications/diffusion/query/lastmodified/base'); 11 + 12 + 13 + phutil_require_source('DiffusionSvnLastModifiedQuery.php');
+66 -22
src/applications/diffusion/view/browsetable/DiffusionBrowseTableView.php
··· 25 25 return $this; 26 26 } 27 27 28 + public static function renderLastModifiedColumns( 29 + PhabricatorRepository $repository, 30 + PhabricatorRepositoryCommit $commit = null, 31 + PhabricatorRepositoryCommitData $data = null) { 32 + 33 + if ($commit) { 34 + $epoch = $commit->getEpoch(); 35 + $modified = DiffusionView::linkCommit( 36 + $repository, 37 + $commit->getCommitIdentifier()); 38 + $date = date('M j, Y', $epoch); 39 + $time = date('g:i A', $epoch); 40 + } else { 41 + $modified = ''; 42 + $date = ''; 43 + $time = ''; 44 + } 45 + 46 + if ($data) { 47 + $author = phutil_escape_html($data->getAuthorName()); 48 + $details = phutil_escape_html($data->getSummary()); 49 + } else { 50 + $author = ''; 51 + $details = ''; 52 + } 53 + 54 + return array( 55 + 'commit' => $modified, 56 + 'date' => $date, 57 + 'time' => $time, 58 + 'author' => $author, 59 + 'details' => $details, 60 + ); 61 + } 62 + 28 63 public function render() { 29 64 $request = $this->getDiffusionRequest(); 30 65 $repository = $request->getRepository(); ··· 34 69 $base_path = $base_path.'/'; 35 70 } 36 71 72 + $need_pull = array(); 37 73 $rows = array(); 38 74 foreach ($this->paths as $path) { 39 75 ··· 58 94 59 95 $commit = $path->getLastModifiedCommit(); 60 96 if ($commit) { 61 - $epoch = $commit->getEpoch(); 62 - $modified = $this->linkCommit( 97 + $dict = self::renderLastModifiedColumns( 63 98 $repository, 64 - $commit->getCommitIdentifier()); 65 - $date = date('M j, Y', $epoch); 66 - $time = date('g:i A', $epoch); 67 - } else { 68 - $modified = ''; 69 - $date = ''; 70 - $time = ''; 71 - } 72 - 73 - $data = $path->getLastCommitData(); 74 - if ($data) { 75 - $author = phutil_escape_html($data->getAuthorName()); 76 - $details = phutil_escape_html($data->getSummary()); 99 + $commit, 100 + $path->getLastCommitData()); 77 101 } else { 78 - $author = ''; 79 - $details = ''; 102 + $dict = array( 103 + 'commit' => celerity_generate_unique_node_id(), 104 + 'date' => celerity_generate_unique_node_id(), 105 + 'time' => celerity_generate_unique_node_id(), 106 + 'author' => celerity_generate_unique_node_id(), 107 + 'details' => celerity_generate_unique_node_id(), 108 + ); 109 + $uri = 110 + '/diffusion/'.$repository->getCallsign().'/lastmodified/'. 111 + $request->getBranchURIComponent($request->getBranch()). 112 + $base_path.$path->getPath(); 113 + if ($request->getRawCommit()) { 114 + $uri .= ';'.$request->getRawCommit(); 115 + } 116 + $need_pull[$uri] = $dict; 117 + foreach ($dict as $k => $uniq) { 118 + $dict[$k] = '<span id="'.$uniq.'"></span>'; 119 + } 80 120 } 81 121 82 122 $rows[] = array( 83 123 $this->linkHistory($base_path.$path->getPath().$dir_slash), 84 124 $browse_link, 85 - $modified, 86 - $date, 87 - $time, 88 - $author, 89 - $details, 125 + $dict['commit'], 126 + $dict['date'], 127 + $dict['time'], 128 + $dict['author'], 129 + $dict['details'], 90 130 ); 131 + } 132 + 133 + if ($need_pull) { 134 + Javelin::initBehavior('diffusion-pull-lastmodified', $need_pull); 91 135 } 92 136 93 137 $view = new AphrontTableView($rows);
+2
src/applications/diffusion/view/browsetable/__init__.php
··· 8 8 9 9 phutil_require_module('phabricator', 'applications/differential/constants/changetype'); 10 10 phutil_require_module('phabricator', 'applications/diffusion/view/base'); 11 + phutil_require_module('phabricator', 'infrastructure/celerity/api'); 12 + phutil_require_module('phabricator', 'infrastructure/javelin/api'); 11 13 phutil_require_module('phabricator', 'view/control/table'); 12 14 13 15 phutil_require_module('phutil', 'markup');
+19
webroot/rsrc/js/application/diffusion/behavior-pull-lastmodified.js
··· 1 + /** 2 + * @provides javelin-behavior-diffusion-pull-lastmodified 3 + * @requires javelin-lib-dev 4 + */ 5 + 6 + JX.behavior('diffusion-pull-lastmodified', function(config) { 7 + 8 + for (var uri in config) { 9 + new JX.Request(uri, JX.bind(config[uri], function(r) { 10 + for (var k in r) { 11 + if (this[k]) { 12 + JX.DOM.setContent(JX.$(this[k]), JX.HTML(r[k])); 13 + } 14 + } 15 + })).send(); 16 + } 17 + 18 + }); 19 +