changeset 1:5821049f1791

most of the way to allowing arbitrarily many labels
author Charlie Root
date Thu, 04 Jan 2018 16:23:36 -0500
parents 1e000243b222
children c828b0fd4a6e
files plugins/thunderbird_labels/config.inc.php plugins/thunderbird_labels/localization/en_US.inc plugins/thunderbird_labels/tb_label.js plugins/thunderbird_labels/thunderbird_labels.php
diffstat 4 files changed, 36 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/thunderbird_labels/config.inc.php	Thu Jan 04 15:50:29 2018 -0500
+++ b/plugins/thunderbird_labels/config.inc.php	Thu Jan 04 16:23:36 2018 -0500
@@ -9,4 +9,5 @@
   $rcmail_config['tb_label_modify_labels'] = true;
   // style for UI: 'bullets' or 'thunderbird'
   $rcmail_config['tb_label_style'] = "bullets";
-
+  // Maximum label id
+  $rcmail_config['tb_max_label'] = 6;
--- a/plugins/thunderbird_labels/localization/en_US.inc	Thu Jan 04 15:50:29 2018 -0500
+++ b/plugins/thunderbird_labels/localization/en_US.inc	Thu Jan 04 16:23:36 2018 -0500
@@ -13,6 +13,7 @@
 $labels['label3'] = 'Personal';
 $labels['label4'] = 'To do';
 $labels['label5'] = 'Later';
+$labels['label6'] = 'new';
 
 $labels['tb_label_options'] = 'Thunderbird Labels Options';
 $labels['tb_label_enable_option'] = 'Enable labels';
--- a/plugins/thunderbird_labels/tb_label.js	Thu Jan 04 15:50:29 2018 -0500
+++ b/plugins/thunderbird_labels/tb_label.js	Thu Jan 04 16:23:36 2018 -0500
@@ -181,7 +181,7 @@
 
 function rcm_tb_label_create_popupmenu()
 {
-	for (i = 0; i < 6; i++)
+	for (i = 0; i < 7; i++)
 	{
 		var cur_a = $('li.label' + i +' a');
 		
@@ -197,7 +197,7 @@
 
 function rcm_tb_label_init_onclick()
 {
-	for (i = 0; i < 6; i++)
+	for (i = 0; i < 7; i++)
 	{
 	  // find the "HTML a tags" of tb-label submenus
 		var cur_a = $('#tb_label_popup li.label' + i +' a');
@@ -219,7 +219,7 @@
 				if (toggle_label_no == 0)
 				{
 					from = 1;
-					to = 6;
+					to = 7;
 					unset_all = true;
 				}
 				for (i = from; i < to; i++)
--- a/plugins/thunderbird_labels/thunderbird_labels.php	Thu Jan 04 15:50:29 2018 -0500
+++ b/plugins/thunderbird_labels/thunderbird_labels.php	Thu Jan 04 16:23:36 2018 -0500
@@ -45,13 +45,11 @@
 			
 			$this->name = get_class($this);
 			# -- additional TB flags
-			$this->add_tb_flags = array(
-			'LABEL1' => '$Label1',
-			'LABEL2' => '$Label2',
-			'LABEL3' => '$Label3',
-			'LABEL4' => '$Label4',
-			'LABEL5' => '$Label5',
-			);
+			$this->add_tb_flags = array();
+			$max_id = $this->rc->config->get('tb_max_label');
+			for ($i = 1; $i <= $max_id; $i++) {
+			  $this->add_tb_flags['LABEL'.$i]='$Label'.$i;
+			}
 			$this->message_tb_labels = array();
 			
 			$this->add_button(
@@ -77,8 +75,12 @@
 				&& $this->require_plugin('contextmenu')
 				&& $this->rc->config->get('tb_label_enable_contextmenu'))
 			{
-				if ($this->rc->action == '')
+				if ($this->rc->action == 'list')
 					$this->add_hook('render_mailboxlist', array($this, 'show_tb_label_contextmenu'));
+			  rcube::write_log('lab','ctxt: '.$this->rc->action);
+			}
+			else {
+			  rcube::write_log('lab','no ctxt');
 			}
 		}
 		elseif ($this->rc->task == 'settings')
@@ -96,14 +98,13 @@
 		if (empty($c))
 		{
 			// if no user specific labels, use localized strings by default
-			$this->rc->config->set('tb_label_custom_labels', array(
-				0 => $this->getText('label0'),
-				1 => $this->getText('label1'),
-				2 => $this->getText('label2'),
-				3 => $this->getText('label3'),
-				4 => $this->getText('label4'),
-				5 => $this->getText('label5')
-			));
+			$max_id = $this->rc->config->get('tb_max_label');
+			$tb_flag_text = array();
+			for ($i = 0; $i <= $max_id; $i++) {
+			  $tb_flag_text[$i] = $this->getText('label'.$i);
+			}
+			$this->rc->config->set('tb_label_custom_labels',
+					       tb_flag_text);
 		}
 		// pass label strings to JS
 		$this->rc->output->set_env('tb_label_custom_labels', $this->rc->config->get('tb_label_custom_labels'));
@@ -183,7 +184,8 @@
 			&& $this->rc->config->get('tb_label_modify_labels'))
 		{
 			$old = $this->rc->config->get($key);
-			for($i=1; $i<=5; $i++)
+			$max_id = $this->rc->config->get('tb_max_label');
+			for($i=1; $i<=$max_id; $i++)
 			{
 				$input = new html_inputfield(array(
 					'name' => $key.$i,
@@ -224,14 +226,12 @@
 		if (!in_array('tb_label_custom_labels', $dont_override)
 			&& $this->rc->config->get('tb_label_modify_labels'))
 		{
-			$args['prefs']['tb_label_custom_labels'] = array(
-			0 => $this->gettext('label0'),
-			1 => rcube_utils::get_input_value('tb_label_custom_labels1', rcube_utils::INPUT_POST),
-			2 => rcube_utils::get_input_value('tb_label_custom_labels2', rcube_utils::INPUT_POST),
-			3 => rcube_utils::get_input_value('tb_label_custom_labels3', rcube_utils::INPUT_POST),
-			4 => rcube_utils::get_input_value('tb_label_custom_labels4', rcube_utils::INPUT_POST),
-			5 => rcube_utils::get_input_value('tb_label_custom_labels5', rcube_utils::INPUT_POST)
-			);
+		  $max_id = $this->rc->config->get('tb_max_label');
+		  $tb_lab_prefs = array();
+		  $tb_lab_prefs[0] = $this->gettext('label0');
+		  for ($i = 1; $i <= $max_id; $i++) {
+		    $tb_lab_prefs[$i] = rcube_utils::get_input_value('tb_label_custom_labels'.$i, rcube_utils::INPUT_POST);
+		  }
 		}
 	
 		return $args;
@@ -240,7 +240,7 @@
 	public function show_tb_label_contextmenu($args)
 	{
 		#$this->api->output->add_label('copymessage.copyingmessage');
-
+	  rcube::write_log('lab',"stblc");
 		$li = html::tag('li',
 		  array('class' => 'submenu'),
 		  '<span>'.rcube::Q($this->gettext('tb_label_contextmenu_title')).'</span>' . $this->_gen_label_submenu($args, 'tb_label_ctxm_submenu'));
@@ -252,7 +252,8 @@
 	{
 		$out = '';
 		$custom_labels = $this->rc->config->get('tb_label_custom_labels');
-		for ($i = 0; $i < 6; $i++)
+		$max_id = $this->rc->config->get('tb_max_label');
+		for ($i = 0; $i <= $max_id; $i++)
 		{
 			$separator = ($i == 0)? ' separator_below' :'';
 			$out .= '<li class="label'.$i.$separator.
@@ -365,9 +366,10 @@
 	function tb_label_popup()
 	{
 	  $custom_labels = $this->rc->config->get('tb_label_custom_labels');
+	  $max_id = $this->rc->config->get('tb_max_label');
 		$out = '<div id="tb_label_popup" class="popupmenu">
 			<ul class="toolbarmenu">';
-		for ($i = 0; $i < 6; $i++)
+		for ($i = 0; $i <= $max_id; $i++)
 		{
 			$separator = ($i == 0)? ' separator_below' :'';
 			$out .= '<li class="label'.$i.$separator.'"><a href="#" class="active">'.$i.' '.$custom_labels[$i].'</a></li>';