Merge branch '2013.10' into 2014.09
authorPhilipp Schüle <p.schuele@metaways.de>
Mon, 22 Sep 2014 09:27:27 +0000 (11:27 +0200)
committerPhilipp Schüle <p.schuele@metaways.de>
Mon, 22 Sep 2014 09:27:27 +0000 (11:27 +0200)
Conflicts:
tests/tine20/Felamimail/Frontend/JsonTest.php
tine20/Calendar/Setup/Update/Release8.php
tine20/Calendar/Setup/setup.xml
tine20/Felamimail/Setup/Initialize.php
tine20/Filemanager/translations/de.po
tine20/Filemanager/translations/template.pot

Change-Id: Ibe7136f9b7b43ccae5ab7fa362d82b5b68a208cc

13 files changed:
1  2 
scripts/packaging/fedora/SPECS/tine20.spec
tests/tine20/Calendar/Controller/RecurTest.php
tests/tine20/Felamimail/Frontend/JsonTest.php
tine20/Calendar/Backend/Sql.php
tine20/Calendar/Setup/Update/Release8.php
tine20/Calendar/Setup/setup.xml
tine20/Courses/Controller/Course.php
tine20/Felamimail/Controller/Message.php
tine20/Felamimail/Setup/Initialize.php
tine20/Filemanager/js/NodeEditDialog.js
tine20/Filemanager/translations/template.pot
tine20/Tinebase/Backend/Sql/Abstract.php
tine20/Tinebase/User.php

@@@ -1668,16 -1655,15 +1668,29 @@@ class Felamimail_Frontend_JsonTest exte
      }
  
      /**
 +     * search preferences by application felamimail
 +     *
 +     */
 +    public function testSearchFelamimailPreferences()
 +    {
 +        // search prefs
 +        $result = $this->_frontend->searchPreferencesForApplication('Felamimail', '');
++        
 +        // check results
 +        $this->assertTrue(isset($result['results']));
 +        $this->assertGreaterThan(0, $result['totalcount']);
 +    }
++    
++    /**
+      * testGetRegistryData
+      * 
+      * @see 0010251: do not send unused config data to client
+      */
+     public function testGetRegistryData()
+     {
+         $regData = $this->_json->getRegistryData();
+         
+         $this->assertFalse(isset($regData['defaults']));
+         $this->assertEquals(5, $regData['supportedFlags']['totalcount']);
+     }
  }
Simple merge
@@@ -165,61 -165,26 +165,85 @@@ class Calendar_Setup_Update_Release8 ex
      }
      
      /**
 -    public function update_3()
 +     * update to 8.4
 +     * 
 +     * - adds etag column
 +     */
 +    public function update_3()
 +    {
 +        $declaration = new Setup_Backend_Schema_Field_Xml('
 +            <field>
 +                <name>etag</name>
 +                <type>text</type>
 +                <length>60</length>
 +            </field>');
 +        $this->_backend->addCol('cal_events', $declaration);
 +        
 +        $declaration = new Setup_Backend_Schema_Index_Xml('
 +            <index>
 +                <name>etag</name>
 +                <field>
 +                    <name>etag</name>
 +                </field>
 +            </index>');
 +        $this->_backend->addIndex('cal_events', $declaration);
 +        
 +        $this->setTableVersion('cal_events', 7);
 +        $this->setApplicationVersion('Calendar', '8.4');
 +    }
 +    
 +    /**
 +     * - update import / export
 +     */
 +    public function update_4()
 +    {
 +        Setup_Controller::getInstance()->createImportExportDefinitions(Tinebase_Application::getInstance()->getApplicationByName('Calendar'));
 +        $this->setTableVersion('cal_events', 7);
 +        $this->setApplicationVersion('Calendar', '8.5');
 +    }
 +    
 +    /**
 +     * adds external_seq col
 +     * 
 +     * @see 0009890: improve external event invitation support
 +     */
 +    public function update_5()
 +    {
 +        $seqCol = '<field>
 +            <name>external_seq</name>
 +            <type>integer</type>
 +            <notnull>true</notnull>
 +            <default>0</default>
 +        </field>';
 +        
 +        $declaration = new Setup_Backend_Schema_Field_Xml($seqCol);
 +        $this->_backend->addCol('cal_events', $declaration);
 +        
 +        $this->setTableVersion('cal_events', 8);
 +        $this->setApplicationVersion('Calendar', '8.6');
 +    }
++    
++    /**
+      * add rrule index
+      * 
+      * @see 0010214: improve calendar performance / yearly base events
+      */
 -        $this->setTableVersion('cal_events', '7');
 -        $this->setApplicationVersion('Calendar', '8.4');
++    public function update_6()
+     {
+         $declaration = new Setup_Backend_Schema_Index_Xml('
+             <index>
+                 <name>rrule</name>
+                 <field>
+                     <name>rrule</name>
+                 </field>
+             </index>');
+         try {
+             $this->_backend->addIndex('cal_events', $declaration);
+         } catch (Zend_Db_Statement_Exception $e) {
+             Tinebase_Exception::log($e);
+         }
+         
++        $this->setTableVersion('cal_events', '9');
++        $this->setApplicationVersion('Calendar', '8.7');
+     }
  }
@@@ -2,14 -2,14 +2,14 @@@
  <application>
      <name>Calendar</name>
      <!-- gettext('Calendar') -->   
-     <version>8.6</version>
 -    <version>8.4</version>
++    <version>8.7</version>
      <order>15</order>
      <status>enabled</status>
      <tables>
          <!-- events -->
          <table>
              <name>cal_events</name>
-             <version>8</version>
 -            <version>7</version>
++            <version>9</version>
              <declaration>
                  <field>
                      <name>id</name>
Simple merge
@@@ -55,8 -55,8 +55,8 @@@ class Felamimail_Setup_Initialize exten
              )
          ))));
  
 -        $myHighlightedPFilter = $pfe->create(new Tinebase_Model_PersistentFilter(array_merge($commonValues, array(
 +        $myHighlightedPFilter = $pfe->createDuringSetup(new Tinebase_Model_PersistentFilter(array_merge($commonValues, array(
-             'name'              => 'All Highlighted mail', // _("All highlighted mail")
+             'name'              => 'All highlighted mail', // _("All highlighted mail")
              'description'       => 'All highlighted mail of my email accounts', // _("All highlighted mail of my email accounts")
              'filters'           => array(
                  array('field' => 'flags'    , 'operator' => 'in', 'value' => Zend_Mail_Storage::FLAG_FLAGGED),
@@@ -13,32 -13,12 +13,7 @@@ msgstr "
  "X-Poedit-SourceCharset: utf-8\n"
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
  
--#: Controller.php:102
--#, python-format
--msgid "%s's personal files"
- msgstr ""
- #: Exception/DestinationIsSameNode.php:26
- msgid "Destination has the same Path"
- msgstr ""
- #: Exception/DestinationIsSameNode.php:31
- msgid ""
- "The destination has the same path the source has. No action has been "
- "performed."
- msgstr ""
- #: Exception/DestinationIsOwnChild.php:26
- msgid "Destination is a Subfolder"
- msgstr ""
- #: Exception/DestinationIsOwnChild.php:31
- msgid ""
- "The destination is a subfolder. It is not allowed to copy or move a folder "
- "into one of its subfolders."
--msgstr ""
--
 -#: Acl/Rights.php:97
 +#: Acl/Rights.php:103
  msgid "manage shared folders"
  msgstr ""
  
  msgid "Create new shared folders"
  msgstr ""
  
 -#: js/NodeEditDialog.js:44 js/Filemanager.js:44 js/NodeGridPanel.js:346
 -msgid "Save locally"
 +#: Acl/Rights.php:107
 +msgid "Manage anonymous download links"
  msgstr ""
  
 -#: js/NodeEditDialog.js:68
 -msgid "Edit folder"
 +#: Acl/Rights.php:108
 +msgid "Allow to see, add and delete download links of files and folders"
  msgstr ""
  
- #: js/NodeEditDialog.js:49 js/Filemanager.js:44 js/NodeGridPanel.js:339
- msgid "Save locally"
- msgstr ""
- #: js/NodeEditDialog.js:93
- msgid "Public Links"
- msgstr ""
- #: js/NodeEditDialog.js:107 js/NodeEditDialog.js:120
- msgid "Node"
- msgstr ""
- #: js/NodeEditDialog.js:126 js/NodeGridPanel.js:128
- msgid "Name"
- msgstr ""
- #: js/NodeEditDialog.js:133 js/Model.js:527
- msgid "Type"
- msgstr ""
- #: js/NodeEditDialog.js:141 js/DownloadLinkGridPanel.js:244
- #: js/NodeGridPanel.js:182
- msgid "Created By"
- msgstr ""
- #: js/NodeEditDialog.js:144 js/DownloadLinkGridPanel.js:252 js/Model.js:529
- #: js/NodeGridPanel.js:174
- msgid "Creation Time"
- msgstr ""
- #: js/NodeEditDialog.js:153
- msgid "Modified By"
- msgstr ""
- #: js/NodeEditDialog.js:156
- msgid "Last Modified"
- msgstr ""
- #: js/NodeEditDialog.js:179
- msgid "Description"
- msgstr ""
- #: js/NodeEditDialog.js:193
- msgid "Enter description"
- msgstr ""
- #: js/NodeTreePanel.js:692 js/NodeTreePanel.js:802 js/NodeGridPanel.js:695
- #: js/NodeGridPanel.js:847
- msgid "Upload Failed"
- msgstr ""
- #: js/NodeTreePanel.js:693 js/NodeGridPanel.js:696
- msgid ""
- "Could not upload file. Filesize could be too big. Please notify your "
- "Administrator. Max upload size:"
- msgstr ""
- #: js/NodeTreePanel.js:803 js/NodeGridPanel.js:848
- msgid "Putting files in this folder is not allowed!"
 -#: js/NodeEditDialog.js:68
 -msgid "edit file"
++#: Controller.php:102
++#, python-format
++msgid "%s's personal files"
  msgstr ""
  
 -#: js/NodeEditDialog.js:110 js/NodeEditDialog.js:123 js/Model.js:43
 -#: js/NodeGridPanel.js:157
 -msgid "Folder"
 -msgid_plural "Folders"
 -msgstr[0] ""
 -msgstr[1] ""
 -
 -#: js/NodeEditDialog.js:110 js/NodeEditDialog.js:123 js/Model.js:40
 -msgid "File"
 -msgid_plural "Files"
 -msgstr[0] ""
 -msgstr[1] ""
 +#: js/DownloadLinkGridPanel.js:63
 +msgid "Create Public Link"
 +msgstr ""
  
 -#: js/NodeEditDialog.js:129 js/NodeGridPanel.js:135
 -msgid "Name"
 +#: js/DownloadLinkGridPanel.js:71
 +msgid "Remove record"
  msgstr ""
  
 -#: js/NodeEditDialog.js:136 js/Model.js:530
 -msgid "Type"
 +#: js/DownloadLinkGridPanel.js:133
 +msgid "Creating new Download Link..."
  msgstr ""
  
 -#: js/NodeEditDialog.js:144 js/NodeGridPanel.js:189
 -msgid "Created By"
 +#: js/DownloadLinkGridPanel.js:171
 +msgid "Deleting Download Links..."
  msgstr ""
  
 -#: js/NodeEditDialog.js:147 js/Model.js:532 js/NodeGridPanel.js:181
 -msgid "Creation Time"
 +#: js/DownloadLinkGridPanel.js:171
 +msgid "Deleting Download Link..."
  msgstr ""
  
 -#: js/NodeEditDialog.js:156
 -msgid "Modified By"
 +#: js/DownloadLinkGridPanel.js:228
 +msgid "Url"
  msgstr ""
  
 -#: js/NodeEditDialog.js:159
 -msgid "Last Modified"
++#: js/DownloadLinkGridPanel.js:244 js/NodeEditDialog.js:161
++#: js/NodeGridPanel.js:182
++msgid "Created By"
+ msgstr ""
 -#: js/NodeEditDialog.js:182
 -msgid "Description"
++#: js/DownloadLinkGridPanel.js:252 js/Model.js:529 js/NodeEditDialog.js:164
++#: js/NodeGridPanel.js:174
++msgid "Creation Time"
+ msgstr ""
 -#: js/NodeEditDialog.js:196
 -msgid "Enter description"
 +#: js/DownloadLinkGridPanel.js:260
 +msgid "Expiration Time"
  msgstr ""
  
 -#: js/NodeTreePanel.js:660 js/NodeTreePanel.js:770 js/NodeGridPanel.js:653
 -#: js/NodeGridPanel.js:805
 -msgid "Upload Failed"
 +#: js/DownloadLinkGridPanel.js:269 js/NodeGridPanel.js:189
 +msgid "Last Modified Time"
  msgstr ""
  
 -#: js/NodeTreePanel.js:661 js/NodeGridPanel.js:654
 -msgid ""
 -"Could not upload file. Filesize could be too big. Please notify your "
 -"Administrator. Max upload size: "
 +#: js/DownloadLinkGridPanel.js:277 js/NodeGridPanel.js:196
 +msgid "Last Modified By"
  msgstr ""
  
 -#: js/NodeTreePanel.js:771 js/NodeGridPanel.js:806
 -msgid "Putting files in this folder is not allowed!"
++#: js/PathFilterModel.js:50
++msgid "path"
+ msgstr ""
  #: js/GridContextMenu.js:34
  #, python-brace-format
  msgid "Please enter the new name of the {0}:"
@@@ -170,55 -117,11 +103,60 @@@ msgstr "
  msgid "Do you really want to delete the following files?"
  msgstr ""
  
--#: js/Filemanager.js:36
--msgid "Filemanager"
++#: js/DownloadLinkDialog.js:52
++msgid "Node Download Links"
 +msgstr ""
 +
- #: js/PathFilterModel.js:50
- msgid "path"
++#: js/DownloadLinkDialog.js:83
++#, python-brace-format
++msgid "Sieve Filter Rules for {0}"
 +msgstr ""
 +
- #: js/Model.js:40
++#: js/Model.js:40 js/NodeEditDialog.js:67
 +msgid "File"
 +msgid_plural "Files"
 +msgstr[0] ""
 +msgstr[1] ""
 +
- #: js/Model.js:43 js/NodeGridPanel.js:150
++#: js/Model.js:43 js/NodeEditDialog.js:67 js/NodeGridPanel.js:150
 +msgid "Folder"
 +msgid_plural "Folders"
 +msgstr[0] ""
 +msgstr[1] ""
 +
 +#: js/Model.js:279 js/Model.js:295
 +#, python-brace-format
 +msgid "Copying data .. {0}"
 +msgstr ""
 +
 +#: js/Model.js:282 js/Model.js:297
 +#, python-brace-format
 +msgid "Moving data .. {0}"
 +msgstr ""
 +
 +#: js/Model.js:301
 +msgid "Please wait"
 +msgstr ""
 +
 +#: js/Model.js:526
 +msgid "Quick Search"
 +msgstr ""
 +
++#: js/Model.js:527 js/NodeEditDialog.js:153
++msgid "Type"
+ msgstr ""
 -#: js/Filemanager.js:91
 +#: js/Model.js:528 js/NodeGridPanel.js:142
 +msgid "Contenttype"
 +msgstr ""
 +
 +#: js/Model.js:553
 +msgid "Download Link"
 +msgid_plural "Download Links"
 +msgstr[0] ""
 +msgstr[1] ""
 +
 +#: js/ExceptionHandler.js:32
  msgid "Service Unavailable"
  msgstr ""
  
@@@ -245,28 -148,53 +183,74 @@@ msgstr "
  msgid "Item with this name already exists!"
  msgstr ""
  
- #: js/DownloadLinkDialog.js:52
- msgid "Node Download Links"
 -#: js/PathFilterModel.js:50
 -msgid "path"
++#: js/Filemanager.js:36
++msgid "Filemanager"
  msgstr ""
  
- #: js/DownloadLinkDialog.js:83
 -#: js/Model.js:281 js/Model.js:297
--#, python-brace-format
- msgid "Sieve Filter Rules for {0}"
 -msgid "Copying data .. {0}"
++#: js/Filemanager.js:44 js/NodeEditDialog.js:49 js/NodeGridPanel.js:339
++msgid "Save locally"
+ msgstr ""
 -#: js/Model.js:284 js/Model.js:299
 -#, python-brace-format
 -msgid "Moving data .. {0}"
++#: js/NodeTreePanel.js:692 js/NodeTreePanel.js:802 js/NodeGridPanel.js:695
++#: js/NodeGridPanel.js:847
++msgid "Upload Failed"
+ msgstr ""
 -#: js/Model.js:303
 -msgid "Please wait"
++#: js/NodeTreePanel.js:693 js/NodeGridPanel.js:696
++msgid ""
++"Could not upload file. Filesize could be too big. Please notify your "
++"Administrator. Max upload size:"
+ msgstr ""
 -#: js/Model.js:529
 -msgid "Quick Search"
++#: js/NodeTreePanel.js:803 js/NodeGridPanel.js:848
++msgid "Putting files in this folder is not allowed!"
+ msgstr ""
 -#: js/Model.js:531 js/NodeGridPanel.js:149
 -msgid "Contenttype"
++#: js/NodeEditDialog.js:65
++msgid "Edit folder"
+ msgstr ""
 -#: js/NodeGridPanel.js:127
 -msgid "Tags"
++#: js/NodeEditDialog.js:65
++msgid "edit file"
+ msgstr ""
 -#: js/NodeGridPanel.js:142
 -msgid "Size"
++#: js/NodeEditDialog.js:113
++msgid "Public Links"
+ msgstr ""
 -#: js/NodeGridPanel.js:166
 -msgid "Revision"
++#: js/NodeEditDialog.js:146 js/NodeGridPanel.js:128
++msgid "Name"
+ msgstr ""
 -#: js/NodeGridPanel.js:196
 -msgid "Last Modified Time"
++#: js/NodeEditDialog.js:173
++msgid "Modified By"
+ msgstr ""
 -#: js/NodeGridPanel.js:203
 -msgid "Last Modified By"
++#: js/NodeEditDialog.js:176
++msgid "Last Modified"
++msgstr ""
++
++#: js/NodeEditDialog.js:199
++msgid "Description"
++msgstr ""
++
++#: js/NodeEditDialog.js:213
++msgid "Enter description"
 +msgstr ""
 +
 +#: js/NodeGridPanel.js:120
 +msgid "Tags"
 +msgstr ""
 +
 +#: js/NodeGridPanel.js:135
 +msgid "Size"
  msgstr ""
  
 -#: js/NodeGridPanel.js:251
 +#: js/NodeGridPanel.js:159
 +msgid "Revision"
 +msgstr ""
 +
 +#: js/NodeGridPanel.js:244
  #, python-brace-format
  msgid "The max. Upload Filesize is {0} MB"
  msgstr ""
@@@ -326,6 -232,6 +310,26 @@@ msgstr "
  msgid "No {0} added"
  msgstr ""
  
++#: Exception/DestinationIsSameNode.php:26
++msgid "Destination has the same Path"
++msgstr ""
++
++#: Exception/DestinationIsSameNode.php:31
++msgid ""
++"The destination has the same path the source has. No action has been "
++"performed."
++msgstr ""
++
++#: Exception/DestinationIsOwnChild.php:26
++msgid "Destination is a Subfolder"
++msgstr ""
++
++#: Exception/DestinationIsOwnChild.php:31
++msgid ""
++"The destination is a subfolder. It is not allowed to copy or move a folder "
++"into one of its subfolders."
++msgstr ""
++
  #: Controller/Node.php:318
  msgid "My folders"
  msgstr ""
Simple merge