@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.

Popup datepicker should respect user preferred week start day

Summary: Fixes T8605, Popup datepicker should respect user preferred week start day

Test Plan: Edit event, open datepicker, calendar weeks should start on Sunday by default, and another day, if specified in User Preferences.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley, Korvin

Maniphest Tasks: T8605

Differential Revision: https://secure.phabricator.com/D13419

+31 -13
+9 -9
resources/celerity/map.php
··· 445 445 'rsrc/js/core/behavior-device.js' => 'a205cf28', 446 446 'rsrc/js/core/behavior-drag-and-drop-textarea.js' => '6d49590e', 447 447 'rsrc/js/core/behavior-error-log.js' => '6882e80a', 448 - 'rsrc/js/core/behavior-fancy-datepicker.js' => 'ea5cec5d', 448 + 'rsrc/js/core/behavior-fancy-datepicker.js' => '665cf6ac', 449 449 'rsrc/js/core/behavior-file-tree.js' => '88236f00', 450 450 'rsrc/js/core/behavior-form.js' => '5c54cbf3', 451 451 'rsrc/js/core/behavior-gesture.js' => '3ab51e2c', ··· 579 579 'javelin-behavior-durable-column' => 'c72aa091', 580 580 'javelin-behavior-error-log' => '6882e80a', 581 581 'javelin-behavior-event-all-day' => '38dcf3c8', 582 - 'javelin-behavior-fancy-datepicker' => 'ea5cec5d', 582 + 'javelin-behavior-fancy-datepicker' => '665cf6ac', 583 583 'javelin-behavior-global-drag-and-drop' => 'c8e57404', 584 584 'javelin-behavior-herald-rule-editor' => '7ebaeed3', 585 585 'javelin-behavior-high-security-warning' => 'a464fe03', ··· 1279 1279 'javelin-workflow', 1280 1280 'javelin-dom', 1281 1281 ), 1282 + '665cf6ac' => array( 1283 + 'javelin-behavior', 1284 + 'javelin-util', 1285 + 'javelin-dom', 1286 + 'javelin-stratcom', 1287 + 'javelin-vector', 1288 + ), 1282 1289 '6882e80a' => array( 1283 1290 'javelin-dom', 1284 1291 ), ··· 1908 1915 'javelin-workflow', 1909 1916 'javelin-dom', 1910 1917 'phabricator-draggable-list', 1911 - ), 1912 - 'ea5cec5d' => array( 1913 - 'javelin-behavior', 1914 - 'javelin-util', 1915 - 'javelin-dom', 1916 - 'javelin-stratcom', 1917 - 'javelin-vector', 1918 1918 ), 1919 1919 'ea681761' => array( 1920 1920 'javelin-behavior',
+5
src/view/form/control/AphrontFormDateControl.php
··· 259 259 ), 260 260 $time_sel); 261 261 262 + $preferences = $this->user->loadPreferences(); 263 + $pref_week_start = PhabricatorUserPreferences::PREFERENCE_WEEK_START_DAY; 264 + $week_start = $preferences->getPreference($pref_week_start, 0); 265 + 262 266 Javelin::initBehavior('fancy-datepicker', array( 263 267 'format' => $this->getDateFormat(), 268 + 'weekStart' => $week_start, 264 269 )); 265 270 266 271 $classes = array();
+17 -4
webroot/rsrc/js/core/behavior-fancy-datepicker.js
··· 46 46 return format; 47 47 }; 48 48 49 + var get_week_start = function() { 50 + var week_start = config.weekStart; 51 + 52 + if (week_start === null) { 53 + week_start = 0; 54 + } 55 + 56 + return week_start; 57 + }; 58 + 49 59 var onopen = function(e) { 50 60 e.kill(); 51 61 ··· 277 287 // First, render the weekday names. 278 288 var weekdays = 'SMTWTFS'; 279 289 var weekday_names = []; 280 - var ii; 281 - for (ii = 0; ii < weekdays.length; ii++) { 282 - weekday_names.push(cell(weekdays.charAt(ii), null, false, 'day-name')); 290 + var week_start = parseInt(get_week_start(), 10); 291 + var week_end = weekdays.length + week_start; 292 + 293 + for (var ii = week_start; ii < week_end; ii++) { 294 + var index = ii%7; 295 + weekday_names.push(cell(weekdays.charAt(index), null, false, 'day-name')); 283 296 } 284 297 weeks.push(JX.$N('tr', {}, weekday_names)); 285 298 ··· 290 303 var start = new Date( 291 304 valid_date.getYear() + 1900, 292 305 valid_date.getMonth(), 293 - 1).getDay(); 306 + 1).getDay() - week_start; 294 307 295 308 while (start--) { 296 309 days.push(cell('', null, false, 'day-placeholder'));