Selaa lähdekoodia

Formatage des nombres

https://github.com/marienfressinaud/FreshRSS/pull/398
Alexandre Alapetite 12 vuotta sitten
vanhempi
commit
fdefc8c731

+ 2 - 2
app/Controllers/indexController.php

@@ -66,11 +66,11 @@ class FreshRSS_index_Controller extends Minz_ActionController {
 		// mise à jour des titres
 		$this->view->rss_title = $this->view->currentName . ' | ' . Minz_View::title();
 		if ($this->view->nb_not_read > 0) {
-			Minz_View::appendTitle (' (' . $this->view->nb_not_read . ')');
+			Minz_View::appendTitle (' (' . formatNumber($this->view->nb_not_read) . ')');
 		}
 		Minz_View::prependTitle (
 			$this->view->currentName .
-			($this->nb_not_read_cat > 0 ? ' (' . $this->nb_not_read_cat . ')' : '') .
+			($this->nb_not_read_cat > 0 ? ' (' . formatNumber($this->nb_not_read_cat) . ')' : '') .
 			' · '
 		);
 

+ 5 - 5
app/layout/aside_flux.phtml

@@ -21,7 +21,7 @@
 		?>
 		<li>
 			<div class="category all">
-				<a data-unread="<?php echo $this->nb_not_read; ?>" class="btn<?php echo $this->get_c == 'a' ? ' active' : ''; ?>" href="<?php echo Minz_Url::display($arUrl); ?>">
+				<a data-unread="<?php echo formatNumber($this->nb_not_read); ?>" class="btn<?php echo $this->get_c == 'a' ? ' active' : ''; ?>" href="<?php echo Minz_Url::display($arUrl); ?>">
 					<?php echo FreshRSS_Themes::icon('all'); ?>
 					<?php echo Minz_Translate::t ('main_stream'); ?>
 				</a>
@@ -30,9 +30,9 @@
 
 		<li>
 			<div class="category favorites">
-				<a data-unread="<?php echo $this->nb_favorites['unread']; ?>" class="btn<?php echo $this->get_c == 's' ? ' active' : ''; ?>" href="<?php $arUrl['params']['get'] = 's'; echo Minz_Url::display($arUrl); ?>">
+				<a data-unread="<?php echo formatNumber($this->nb_favorites['unread']); ?>" class="btn<?php echo $this->get_c == 's' ? ' active' : ''; ?>" href="<?php $arUrl['params']['get'] = 's'; echo Minz_Url::display($arUrl); ?>">
 					<?php echo FreshRSS_Themes::icon('bookmark'); ?>
-					<?php echo Minz_Translate::t ('favorite_feeds', $this->nb_favorites['all']); ?>
+					<?php echo Minz_Translate::t('favorite_feeds', formatNumber($this->nb_favorites['all'])); ?>
 				</a>
 			</div>
 		</li>
@@ -47,7 +47,7 @@
 					$c_active = true;
 				}
 				?><div class="category stick<?php echo $c_active ? ' active' : ''; ?>"><?php
-					?><a data-unread="<?php echo $cat->nbNotRead (); ?>" class="btn<?php echo $c_active ? ' active' : ''; ?>" href="<?php $arUrl['params']['get'] = 'c_' . $cat->id(); echo Minz_Url::display($arUrl); ?>"><?php echo $cat->name (); ?></a><?php
+					?><a data-unread="<?php echo formatNumber($cat->nbNotRead()); ?>" class="btn<?php echo $c_active ? ' active' : ''; ?>" href="<?php $arUrl['params']['get'] = 'c_' . $cat->id(); echo Minz_Url::display($arUrl); ?>"><?php echo $cat->name (); ?></a><?php
 					?><a class="btn dropdown-toggle" href="#"><?php echo FreshRSS_Themes::icon($c_active ? 'up' : 'down'); ?></a><?php
 				?></div><?php
 				?><ul class="feeds<?php echo $c_active ? ' active' : ''; ?>"><?php
@@ -62,7 +62,7 @@
 							/* feed_config_template */
 						?></div><?php
 						?> <img class="favicon" src="<?php echo $feed->favicon (); ?>" alt="✇" /> <?php
-						?><a class="feed" data-unread="<?php echo $feed->nbNotRead (); ?>" data-priority="<?php echo $feed->priority (); ?>" href="<?php $arUrl['params']['get'] = 'f_' . $feed_id; echo Minz_Url::display($arUrl); ?>"><?php echo $feed->name(); ?></a><?php
+						?><a class="feed" data-unread="<?php echo formatNumber($feed->nbNotRead()); ?>" data-priority="<?php echo $feed->priority (); ?>" href="<?php $arUrl['params']['get'] = 'f_' . $feed_id; echo Minz_Url::display($arUrl); ?>"><?php echo $feed->name(); ?></a><?php
 					?></li><?php
 				}
 				?></ul><?php

+ 2 - 2
app/views/helpers/view/global_view.phtml

@@ -17,7 +17,7 @@
 ?>
 	<div class="box-category">
 		<div class="category">
-			<a data-unread="<?php echo $cat->nbNotRead (); ?>" class="btn" href="<?php $arUrl['params']['get'] = 'c_' . $cat->id (); echo Minz_Url::display($arUrl); ?>">
+			<a data-unread="<?php echo formatNumber($cat->nbNotRead()); ?>" class="btn" href="<?php $arUrl['params']['get'] = 'c_' . $cat->id (); echo Minz_Url::display($arUrl); ?>">
 			<?php echo $cat->name(); ?>
 			</a>
 		</div>
@@ -26,7 +26,7 @@
 			<?php $not_read = $feed->nbNotRead (); ?>
 			<li id="f_<?php echo $feed->id (); ?>" class="item<?php echo $feed->inError () ? ' error' : ''; ?><?php echo $feed->nbEntries () == 0 ? ' empty' : ''; ?>">
 				<img class="favicon" src="<?php echo $feed->favicon (); ?>" alt="✇" />
-				<a class="feed" data-unread="<?php echo $feed->nbNotRead (); ?>" data-priority="<?php echo $feed->priority (); ?>" href="<?php $arUrl['params']['get'] = 'f_' . $feed->id(); echo Minz_Url::display($arUrl); ?>">
+				<a class="feed" data-unread="<?php echo formatNumber($feed->nbNotRead()); ?>" data-priority="<?php echo $feed->priority (); ?>" href="<?php $arUrl['params']['get'] = 'f_' . $feed->id(); echo Minz_Url::display($arUrl); ?>">
 				<?php echo $feed->name(); ?>
 				</a>
 			</li>

+ 1 - 1
lib/lib_rss.php

@@ -63,7 +63,7 @@ function small_hash ($txt) {
 }
 
 function formatNumber($n, $precision = 0) {
-	return str_replace(' ', '&#8239;',	//Espace fine insécable
+	return str_replace(' ', ' ',	//Espace insécable	//TODO: remplacer par une espace _fine_ insécable
 		number_format($n, $precision, '.', ' '));	//number_format does not seem to be Unicode-compatible
 }
 

+ 15 - 43
p/scripts/main.js

@@ -21,14 +21,14 @@ function redirect(url, new_tab) {
 }
 
 function numberFormat(nStr) {
-	// Thx to http://www.mredkj.com/javascript/numberFormat.html
+	// http://www.mredkj.com/javascript/numberFormat.html
 	nStr += '';
-	var x = nStr.split('.');
-	var x1 = x[0];
-	var x2 = x.length > 1 ? '.' + x[1] : '';
-	var rgx = /(\d+)(\d{3})/;
+	var x = nStr.split('.'),
+		x1 = x[0],
+		x2 = x.length > 1 ? '.' + x[1] : '',
+		rgx = /(\d+)(\d{3})/;
 	while (rgx.test(x1)) {
-		x1 = x1.replace(rgx, '$1' + " " + '$2');
+		x1 = x1.replace(rgx, '$1' + ' ' + '$2');
 	}
 	return x1 + x2;
 }
@@ -42,7 +42,7 @@ function incUnreadsFeed(article, feed_id, nb) {
 	
 	//Update unread: feed
 	var elem = $('#' + feed_id + '>.feed').get(0),
-		feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0,
+		feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0,
 		feed_priority = elem ? (parseInt(elem.getAttribute('data-priority'), 10) || 0) : 0;
 	if (elem) {
 		elem.setAttribute('data-unread', numberFormat(Math.max(0, feed_unreads + nb)));
@@ -50,7 +50,7 @@ function incUnreadsFeed(article, feed_id, nb) {
 
 	//Update unread: category
 	elem = $('#' + feed_id).parent().prevAll('.category').children(':first').get(0);
-	feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
+	feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
 	if (elem) {
 		elem.setAttribute('data-unread', numberFormat(Math.max(0, feed_unreads + nb)));
 	}
@@ -59,7 +59,7 @@ function incUnreadsFeed(article, feed_id, nb) {
 	if (feed_priority > 0) {
 		elem = $('#aside_flux .all').children(':first').get(0);
 		if (elem) {
-			feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
+			feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
 			elem.setAttribute('data-unread', numberFormat(Math.max(0, feed_unreads + nb)));
 		}
 	}
@@ -68,7 +68,7 @@ function incUnreadsFeed(article, feed_id, nb) {
 	if (article && article.closest('div').hasClass('favorite')) {
 		elem = $('#aside_flux .favorites').children(':first').get(0);
 		if (elem) {
-			feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
+			feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
 			elem.setAttribute('data-unread', numberFormat(Math.max(0, feed_unreads + nb)));
 		}
 	}
@@ -157,7 +157,7 @@ function mark_favorite(active) {
 
 		if (active.closest('div').hasClass('not_read')) {
 			var elem = $('#aside_flux .favorites').children(':first').get(0),
-				feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
+				feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
 			if (elem) {
 				elem.setAttribute('data-unread', numberFormat(Math.max(0, feed_unreads + inc)));
 			}
@@ -544,7 +544,7 @@ function refreshUnreads() {
 		$.each(data, function(feed_id, nbUnreads) {
 			feed_id = 'f_' + feed_id;
 			var elem = $('#' + feed_id + '>.feed').get(0),
-				feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
+				feed_unreads = elem ? (parseInt(elem.getAttribute('data-unread').replace(' ', ''), 10) || 0) : 0;
 			if ((incUnreadsFeed(null, feed_id, nbUnreads - feed_unreads) || isAll) &&	//Update of current view?
 				(nbUnreads - feed_unreads > 0)) {
 				$('#new-article').show();
@@ -649,9 +649,9 @@ function init_loginForm() {
 						c = dcodeIO.bcrypt.hashSync(data.nonce + s, strong ? 4 : poormanSalt());
 					$('#challenge').val(c);
 					if (s == '' || c == '') {
-					        alert('Crypto error!');
+						alert('Crypto error!');
 					} else {
-					        success = true;
+						success = true;
 					}
 				} catch (e) {
 					alert('Crypto exception! ' + e);
@@ -755,34 +755,6 @@ function init_print_action() {
 	});
 }
 
-function init_number_formats() {
-	// Init global counter
-	var elem = $('#aside_flux .categories li .all a');
-	elem.attr('data-unread', numberFormat(elem.attr('data-unread')));
-	
-	// Init favorites counters
-	elem = $('#aside_flux .categories li .favorites a');
-	elem.attr('data-unread', numberFormat(elem.attr('data-unread')));
-	
-	var numFavorites = elem.text().replace(/((?: \(\d+\))?\s*)$/, function (m, p1) {
-		return numberFormat(p1)
-	});
-	elem.text(numFavorites);
-	
-	// Init feeds counters
-	$('#aside_flux .categories li .stick').each(function() {
-		// Category-level counter
-		elem = $(this).find('a');
-		elem.attr('data-unread', numberFormat(elem.attr('data-unread')));
-		
-		// Feeds counters
-		$(this).parent().find('ul.feeds li.item').each(function() {
-			elem = $(this).find('a.feed'); // There are two links here. a.feed is the title.
-			elem.attr('data-unread', numberFormat(elem.attr('data-unread')));
-		});
-	});
-}
-
 function init_all() {
 	if (!(window.$ && window.url_freshrss && ((!full_lazyload) || $.fn.lazyload))) {
 		if (window.console) {
@@ -813,7 +785,7 @@ function init_all() {
 		init_print_action();
 		window.setInterval(refreshUnreads, 120000);
 	}
-	init_number_formats();
+
 	if (window.console) {
 		console.log('FreshRSS init done.');
 	}