Honor locked status for msgflags prefs
authorMichael M Slusarz <slusarz@curecanti.org>
Mon, 12 Apr 2010 20:12:44 +0000 (14:12 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Mon, 12 Apr 2010 20:12:44 +0000 (14:12 -0600)
imp/lib/Prefs/Ui.php
imp/templates/prefs/flags.html

index 350358e..8cb4262 100644 (file)
@@ -106,8 +106,13 @@ class IMP_Prefs_Ui
             break;
 
         case 'flags':
-            Horde::addScriptFile('colorpicker.js', 'horde');
-            Horde::addScriptFile('flagprefs.js', 'imp');
+            if ($prefs->isLocked('msgflags') &&
+                $prefs->isLocked('msgflags_user')) {
+                $ui->nobuttons = true;
+            } else {
+                Horde::addScriptFile('colorpicker.js', 'horde');
+                Horde::addScriptFile('flagprefs.js', 'imp');
+            }
             break;
 
         case 'identities':
@@ -804,6 +809,9 @@ class IMP_Prefs_Ui
             'ImpFlagPrefs.confirm_delete = ' . Horde_Serialize::serialize(_("Are you sure you want to delete this flag?"), Horde_Serialize::JSON, Horde_Nls::getCharset())
         ));
 
+        $msgflags_locked = $GLOBALS['prefs']->isLocked('msgflags');
+        $userflags_locked = $GLOBALS['prefs']->isLocked('msgflags_user');
+
         $t = $GLOBALS['injector']->createInstance('Horde_Template');
         $t->setOption('gettext', true);
 
@@ -818,13 +826,19 @@ class IMP_Prefs_Ui
             $tmp = array();
 
             if ($val['t'] == 'imapp') {
-                $tmp['imapp'] = true;
-                $tmp['label_name'] = 'label_' . $hash;
                 $tmp['label'] = $label;
                 $tmp['icon'] = $bgstyle;
+                $tmp['imapp'] = true;
+                $tmp['label_name'] = 'label_' . $hash;
+                if ($userflags_locked) {
+                    $tmp['locked'] = true;
+                }
             } else {
                 $tmp['label'] = Horde::label($bgid, $label);
                 $tmp['icon'] = $val['div'];
+                if ($msgflags_locked) {
+                    $tmp['locked'] = true;
+                }
             }
 
             $tmp['colorstyle'] = $bgstyle . ';color:' . htmlspecialchars($val['f']);
@@ -838,6 +852,8 @@ class IMP_Prefs_Ui
         $t->set('picker_img', Horde::img('colorpicker.png', _("Color Picker")));
         $t->set('flag_del', !empty($val['d']));
 
+        $t->set('userflags_notlocked', !$userflags_locked);
+
         return $t->fetch(IMP_TEMPLATES . '/prefs/flags.html');
     }
 
index 0fdd4fe..b106375 100644 (file)
   <tr>
    <td>
 <if:flags.imapp>
+<if:flags.locked>
+    <tag:flags.label />
+<else:flags.locked>
     <input name="<tag:flags.label_name />" value="<tag:flags.label />" />
+</else:flags.locked></if:flags.locked>
 <else:flags.imapp>
     <tag:flags.label />
 </else:flags.imapp></if:flags.imapp>
 </else:flags.imapp></if:flags.imapp>
    </td>
    <td>
+<if:flags.locked>
+    <input size="7" disabled="disabled" style="<tag:flags.colorstyle />" value="<tag:flags.color />" />
+<else:flags.locked>
     <input size="7" style="<tag:flags.colorstyle />" id="<tag:flags.colorid />" name="<tag:flags.colorid />" value="<tag:flags.color />" />
     <a class="flagcolorpicker" href="#"><tag:picker_img /></a>
 <if:flags.flag_del>
     <a class="flagdelete" href="#"><span class="deleteImg"></span></a>
 </if:flags.flag_del>
+</else:flags.locked></if:flags.locked>
    </td>
   </tr>
  </tbody>
 </loop:flags>
 </table>
+
+<if:userflags_notlocked>
 <input id="new_button" type="button" class="button" value="<gettext>New Flag</gettext>" />
+</if:userflags_notlocked>