Bläddra i källkod

Merge branch 'master' of https://github.com/boonex/dolphin

AntonLV 11 år sedan
förälder
incheckning
9cc4e548aa

+ 1 - 1
inc/classes/BxDolService.php

@@ -72,7 +72,7 @@ class BxDolService extends BxDol
         if (false === $a || !is_array($a))
         if (false === $a || !is_array($a))
             return '';
             return '';
 
 
-        if (isset($a[$sReplaceIn]))
+        if (isset($a[$sReplaceIn]) && $aMarkers)
             $a[$sReplaceIn] = bx_replace_markers($a[$sReplaceIn], $aMarkers);
             $a[$sReplaceIn] = bx_replace_markers($a[$sReplaceIn], $aMarkers);
 
 
         return self::call($a['module'], $a['method'], isset($a['params']) ? $a['params'] : array(), isset($a['class']) ? $a['class'] : 'Module');
         return self::call($a['module'], $a['method'], isset($a['params']) ? $a['params'] : array(), isset($a['class']) ? $a['class'] : 'Module');

+ 1 - 0
inc/classes/BxDolTemplate.php

@@ -350,6 +350,7 @@ class BxDolTemplate extends BxDol implements iBxDolSingleton
             'jquery.webForms.js',
             'jquery.webForms.js',
             'jquery.dolPopup.js',
             'jquery.dolPopup.js',
             'marka/marka.min.js',
             'marka/marka.min.js',
+            'headroom.min.js',
         ));
         ));
 
 
         //--- Load default JS ---//
         //--- Load default JS ---//

+ 1 - 1
inc/js/functions.js

@@ -291,7 +291,7 @@ function bx_center_content (sSel, sBlockStyle, bListenOnResize) {
 function bx_menu_popup (o, e, options, vars) {
 function bx_menu_popup (o, e, options, vars) {
     var options = options || {};
     var options = options || {};
     var vars = vars || {};
     var vars = vars || {};
-    var o = $.extend({}, $.fn.dolPopupDefaultOptions, options, {id: o, url: bx_append_url_params('menu.php', $.extend({o:o}, vars))});
+    var o = $.extend({}, $.fn.dolPopupDefaultOptions, {id: o, url: bx_append_url_params('menu.php', $.extend({o:o}, vars))}, options);
     if ('undefined' == typeof(e))
     if ('undefined' == typeof(e))
         e = window;
         e = window;
     $(e).dolPopupAjax(o);
     $(e).dolPopupAjax(o);

+ 0 - 1
install/sql/system.sql

@@ -2646,7 +2646,6 @@ INSERT INTO `sys_objects_menu` (`object`, `title`, `set_name`, `module`, `templa
 ('sys_site', '_sys_menu_title_main', 'sys_site', 'system', 14, 0, 1, 'BxTemplMenuSite', ''),
 ('sys_site', '_sys_menu_title_main', 'sys_site', 'system', 14, 0, 1, 'BxTemplMenuSite', ''),
 ('sys_homepage', '_sys_menu_title_homepage', 'sys_homepage', 'system', 14, 0, 1, 'BxTemplMenuHomepage', ''),
 ('sys_homepage', '_sys_menu_title_homepage', 'sys_homepage', 'system', 14, 0, 1, 'BxTemplMenuHomepage', ''),
 ('sys_site_submenu', '_sys_menu_title_submenu', 'sys_site', 'system', 1, 0, 1, 'BxTemplMenuSubmenu', ''),
 ('sys_site_submenu', '_sys_menu_title_submenu', 'sys_site', 'system', 1, 0, 1, 'BxTemplMenuSubmenu', ''),
-('sys_site_submenu_main', '_sys_menu_title_submenu_main', 'sys_site', 'system', 8, 0, 1, '', ''),
 ('sys_footer', '_sys_menu_title_footer', 'sys_footer', 'system', 2, 0, 1, 'BxTemplMenuFooter', ''),
 ('sys_footer', '_sys_menu_title_footer', 'sys_footer', 'system', 2, 0, 1, 'BxTemplMenuFooter', ''),
 ('sys_toolbar_site', '_sys_menu_title_toolbar_site', 'sys_toolbar_site', 'system', 5, 0, 1, 'BxTemplMenuToolbar', ''),
 ('sys_toolbar_site', '_sys_menu_title_toolbar_site', 'sys_toolbar_site', 'system', 5, 0, 1, 'BxTemplMenuToolbar', ''),
 ('sys_toolbar_member', '_sys_menu_title_toolbar_member', 'sys_toolbar_member', 'system', 5, 0, 1, 'BxTemplMenuToolbar', ''),
 ('sys_toolbar_member', '_sys_menu_title_toolbar_member', 'sys_toolbar_member', 'system', 5, 0, 1, 'BxTemplMenuToolbar', ''),

+ 1 - 1
modules/boonex/convos/install/sql/enable.sql

@@ -105,7 +105,7 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 -- MENU: add menu item to profiles modules actions menu (trigger* menu sets are processed separately upon modules enable/disable)
 -- MENU: add menu item to profiles modules actions menu (trigger* menu sets are processed separately upon modules enable/disable)
 
 
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
 INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('trigger_profile_view_actions', 'bx_convos', 'convos-compose', '_bx_cnv_menu_item_title_system_message', '_bx_cnv_menu_item_title_message', 'page.php?i=start-convo&profiles={profile_id}', '', '', '', '', 2147483647, 1, 0, 0);
+('trigger_profile_view_actions', 'bx_convos', 'convos-compose', '_bx_cnv_menu_item_title_system_message', '_bx_cnv_menu_item_title_message', 'page.php?i=start-convo&profiles={profile_id}', '', '', 'envelope', '', 2147483647, 1, 0, 0);
 
 
 -- GRID
 -- GRID
 
 

+ 3 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -1831,6 +1831,8 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_template_title_custom"><![CDATA[Custom menu items]]></string>
 	<string name="_sys_menu_template_title_custom"><![CDATA[Custom menu items]]></string>
 	<string name="_sys_menu_title_account"><![CDATA[Account Menu]]></string>
 	<string name="_sys_menu_title_account"><![CDATA[Account Menu]]></string>
 	<string name="_sys_menu_title_account_dashboard_manage_tools"><![CDATA[Account Dashboard Manage Tools Menu]]></string>
 	<string name="_sys_menu_title_account_dashboard_manage_tools"><![CDATA[Account Dashboard Manage Tools Menu]]></string>
+	<string name="_sys_menu_title_account_notifications"><![CDATA[Notifications Items]]></string>
+	<string name="_sys_menu_title_account_popup"><![CDATA[Account Popup]]></string>
 	<string name="_sys_menu_title_account_settings"><![CDATA[Account Settings Menu]]></string>
 	<string name="_sys_menu_title_account_settings"><![CDATA[Account Settings Menu]]></string>
 	<string name="_sys_menu_title_account_settings_more"><![CDATA[Account Settings More Menu]]></string>
 	<string name="_sys_menu_title_account_settings_more"><![CDATA[Account Settings More Menu]]></string>
 	<string name="_sys_menu_title_add_content"><![CDATA[Add Content Menu]]></string>
 	<string name="_sys_menu_title_add_content"><![CDATA[Add Content Menu]]></string>
@@ -1843,6 +1845,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_title_profiles_create"><![CDATA[Create Profiles]]></string>
 	<string name="_sys_menu_title_profiles_create"><![CDATA[Create Profiles]]></string>
 	<string name="_sys_menu_title_profile_stats"><![CDATA[Profile Stats]]></string>
 	<string name="_sys_menu_title_profile_stats"><![CDATA[Profile Stats]]></string>
 	<string name="_sys_menu_title_rss"><![CDATA[RSS]]></string>
 	<string name="_sys_menu_title_rss"><![CDATA[RSS]]></string>
+	<string name="_sys_menu_title_set_acl_level"><![CDATA[ACL Levels]]></string>
 	<string name="_sys_menu_title_submenu"><![CDATA[Site Submenu]]></string>
 	<string name="_sys_menu_title_submenu"><![CDATA[Site Submenu]]></string>
 	<string name="_sys_menu_title_toolbar_member"><![CDATA[Member Toolbar]]></string>
 	<string name="_sys_menu_title_toolbar_member"><![CDATA[Member Toolbar]]></string>
 	<string name="_sys_menu_title_toolbar_site"><![CDATA[Site Toolbar]]></string>
 	<string name="_sys_menu_title_toolbar_site"><![CDATA[Site Toolbar]]></string>

+ 16 - 2
modules/boonex/ocean/data/template/system/_header.html

@@ -52,11 +52,25 @@
         }); 
         }); 
 
 
         $(document).ready(function () {
         $(document).ready(function () {
-            bx_time('__lang__');
+            bx_time('__lang__');            
+
+            bx_activate_anim_icons('#29789c');
 
 
             $('#bx-toolbar').css({opacity: 0.9});
             $('#bx-toolbar').css({opacity: 0.9});
 
 
-            bx_activate_anim_icons('#29789c');
+            // hide toolbar on scrolldown, show - on scroll up
+            new Headroom($('#bx-toolbar').get(0), {
+                tolerance: {
+                  down: 10,
+                  up: 20
+                },
+                offset: 200,
+                classes: {
+                  initial: "bx-toolbar-anim",
+                  pinned: "bx-toolbar-reset",
+                  unpinned: "bx-toolbar-up"
+                }
+            }).init();
         });
         });
 
 
         (function(w) {
         (function(w) {

+ 2 - 1
modules/boonex/posts/install/sql/enable.sql

@@ -49,10 +49,11 @@ INSERT INTO `sys_objects_page`(`object`, `title_system`, `title`, `module`, `lay
 ('bx_posts_view_entry', '_bx_posts_page_title_sys_view_entry', '_bx_posts_page_title_view_entry', 'bx_posts', 10, 2147483647, 1, 'view-post', '', '', '', '', 0, 1, 0, 'BxPostsPageEntry', 'modules/boonex/posts/classes/BxPostsPageEntry.php');
 ('bx_posts_view_entry', '_bx_posts_page_title_sys_view_entry', '_bx_posts_page_title_view_entry', 'bx_posts', 10, 2147483647, 1, 'view-post', '', '', '', '', 0, 1, 0, 'BxPostsPageEntry', 'modules/boonex/posts/classes/BxPostsPageEntry.php');
 
 
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES 
 INSERT INTO `sys_pages_blocks`(`object`, `cell_id`, `module`, `title_system`, `title`, `designbox_id`, `visible_for_levels`, `type`, `content`, `deletable`, `copyable`, `active`, `order`) VALUES 
-('bx_posts_view_entry', 3, 'bx_posts', '', '_bx_posts_page_block_title_entry_location', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:15:\"entity_location\";}', 0, 0, 1, 0),
 ('bx_posts_view_entry', 1, 'bx_posts', '', '_bx_posts_page_block_title_entry_text', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:17:\"entity_text_block\";}', 0, 0, 1, 0),
 ('bx_posts_view_entry', 1, 'bx_posts', '', '_bx_posts_page_block_title_entry_text', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:17:\"entity_text_block\";}', 0, 0, 1, 0),
 ('bx_posts_view_entry', 2, 'bx_posts', '', '_bx_posts_page_block_title_entry_author', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:13:\"entity_author\";}', 0, 0, 1, 0),
 ('bx_posts_view_entry', 2, 'bx_posts', '', '_bx_posts_page_block_title_entry_author', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:13:\"entity_author\";}', 0, 0, 1, 0),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_all_actions', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:18:\"entity_all_actions\";}', 0, 0, 1, 0),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_all_actions', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:18:\"entity_all_actions\";}', 0, 0, 1, 0),
+('bx_posts_view_entry', 3, 'bx_posts', '', '_bx_posts_page_block_title_entry_location', 3, 2147483647, 'service', 'a:4:{s:6:\"module\";s:6:\"system\";s:6:\"method\";s:13:\"locations_map\";s:6:\"params\";a:2:{i:0;s:8:\"bx_posts\";i:1;s:4:\"{id}\";}s:5:\"class\";s:20:\"TemplServiceMetatags\";}', 0, 0, 1, 0),
+('bx_posts_view_entry', 3, 'bx_posts', '', '_bx_posts_page_block_title_entry_location', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:15:\"entity_location\";}', 0, 0, 0, 1),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_actions', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:14:\"entity_actions\";}', 0, 0, 0, 1),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_actions', 13, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:14:\"entity_actions\";}', 0, 0, 0, 1),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_social_sharing', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:21:\"entity_social_sharing\";}', 0, 0, 0, 2),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_social_sharing', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:21:\"entity_social_sharing\";}', 0, 0, 0, 2),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_attachments', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:18:\"entity_attachments\";}', 0, 0, 0, 3),
 ('bx_posts_view_entry', 4, 'bx_posts', '', '_bx_posts_page_block_title_entry_attachments', 11, 2147483647, 'service', 'a:2:{s:6:\"module\";s:8:\"bx_posts\";s:6:\"method\";s:18:\"entity_attachments\";}', 0, 0, 0, 3),

+ 3 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -1831,6 +1831,8 @@
 	<string name="_sys_menu_template_title_custom"><![CDATA[Индивидуальные элементы меню]]></string>
 	<string name="_sys_menu_template_title_custom"><![CDATA[Индивидуальные элементы меню]]></string>
 	<string name="_sys_menu_title_account"><![CDATA[Аккаунт - Меню]]></string>
 	<string name="_sys_menu_title_account"><![CDATA[Аккаунт - Меню]]></string>
 	<string name="_sys_menu_title_account_dashboard_manage_tools"><![CDATA[Аккаунт Панель - Управление Меню Инструментов]]></string>
 	<string name="_sys_menu_title_account_dashboard_manage_tools"><![CDATA[Аккаунт Панель - Управление Меню Инструментов]]></string>
+    <string name="_sys_menu_title_account_notifications"><![CDATA[Меню с уведомлениями]]></string>
+    <string name="_sys_menu_title_account_popup"><![CDATA[Аккаунт - Всплывающее Меню]]></string>
 	<string name="_sys_menu_title_account_settings"><![CDATA[Аккаунт - Меню Настроек]]></string>
 	<string name="_sys_menu_title_account_settings"><![CDATA[Аккаунт - Меню Настроек]]></string>
 	<string name="_sys_menu_title_account_settings_more"><![CDATA[Аккаунт - Меню Дополнительных Настроек]]></string>
 	<string name="_sys_menu_title_account_settings_more"><![CDATA[Аккаунт - Меню Дополнительных Настроек]]></string>
 	<string name="_sys_menu_title_add_content"><![CDATA[Добавить Меню Содержимого]]></string>
 	<string name="_sys_menu_title_add_content"><![CDATA[Добавить Меню Содержимого]]></string>
@@ -1843,6 +1845,7 @@
 	<string name="_sys_menu_title_profiles_create"><![CDATA[Создать Профили]]></string>
 	<string name="_sys_menu_title_profiles_create"><![CDATA[Создать Профили]]></string>
 	<string name="_sys_menu_title_profile_stats"><![CDATA[Профиль - Статистика]]></string>
 	<string name="_sys_menu_title_profile_stats"><![CDATA[Профиль - Статистика]]></string>
 	<string name="_sys_menu_title_rss"><![CDATA[RSS]]></string>
 	<string name="_sys_menu_title_rss"><![CDATA[RSS]]></string>
+	<string name="_sys_menu_title_set_acl_level"><![CDATA[Уровни доступа]]></string>
 	<string name="_sys_menu_title_submenu"><![CDATA[Подменю Сайта]]></string>
 	<string name="_sys_menu_title_submenu"><![CDATA[Подменю Сайта]]></string>
 	<string name="_sys_menu_title_toolbar_member"><![CDATA[Пользователь - Панель Инструментов]]></string>
 	<string name="_sys_menu_title_toolbar_member"><![CDATA[Пользователь - Панель Инструментов]]></string>
 	<string name="_sys_menu_title_toolbar_site"><![CDATA[Сайт - Панель Инструментов]]></string>
 	<string name="_sys_menu_title_toolbar_site"><![CDATA[Сайт - Панель Инструментов]]></string>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 6 - 0
plugins_public/headroom.min.js


+ 17 - 2
template/_header.html

@@ -51,11 +51,25 @@
         });
         });
 
 
         $(document).ready(function () {
         $(document).ready(function () {
-            bx_time('__lang__');
+            bx_time('__lang__');            
+
+            bx_activate_anim_icons('#3e8685');
 
 
             $('#bx-toolbar').css({opacity: 0.9});
             $('#bx-toolbar').css({opacity: 0.9});
 
 
-            bx_activate_anim_icons('#3e8685');
+            // hide toolbar on scrolldown, show - on scroll up
+            new Headroom($('#bx-toolbar').get(0), {
+                tolerance: {
+                  down: 10,
+                  up: 20
+                },
+                offset: 200,
+                classes: {
+                  initial: "bx-toolbar-anim",
+                  pinned: "bx-toolbar-reset",
+                  unpinned: "bx-toolbar-up"
+                }
+            }).init();
         });
         });
 
 
         (function(w) {
         (function(w) {
@@ -66,6 +80,7 @@
             window.location.reload();
             window.location.reload();
         })(window);
         })(window);
 
 
+
     </script>
     </script>
     __extra_js__
     __extra_js__
 
 

+ 19 - 3
template/css/general.css

@@ -10,6 +10,25 @@
 
 
 /* --------------- toolbar */
 /* --------------- toolbar */
 
 
+.bx-toolbar-anim {
+    -webkit-transition: all .25s ease-in-out;
+    -moz-transition: all .25s ease-in-out;
+    -o-transition: all .25s ease-in-out;
+    transition: all .25s ease-in-out
+}
+
+.bx-toolbar-reset {
+    -webkit-transform: translateY(0);
+    -ms-transform: translateY(0);
+    transform: translateY(0)
+}
+
+.bx-toolbar-up {
+    -webkit-transform: translateY(-100%);
+    -ms-transform: translateY(-100%);
+    transform: translateY(-100%)
+}
+
 #bx-toolbar {
 #bx-toolbar {
     position:fixed;
     position:fixed;
     width:100%;
     width:100%;
@@ -19,9 +38,6 @@
     background-color:#3B8686;
     background-color:#3B8686;
 
 
     opacity:0;
     opacity:0;
-
-    -webkit-transition: opacity .2s;
-    transition: opacity .2s;
 }
 }
 
 
 #bx-toolbar-content {
 #bx-toolbar-content {

+ 15 - 0
template/css/metatags.css

@@ -6,3 +6,18 @@
     line-height:2rem;
     line-height:2rem;
     margin: 0 0.25rem 0 0;
     margin: 0 0.25rem 0 0;
 }
 }
+
+.bx-metatags-locations-map {
+    position:relative;
+    height:144px;
+    background-position:center center;
+    background-repeat:no-repeat;
+}
+
+.bx-metatags-locations-map-string {
+    position:absolute;
+    bottom:0;
+    left:0;
+    text-shadow:1px 1px 0.125rem #fff;
+    background-color:rgba(255,255,255,0.7);
+}

+ 3 - 0
template/metatags_locations_map.html

@@ -0,0 +1,3 @@
+<div class="bx-metatags-locations-map bx-def-round-corners bx-def-color-bg-box" style="background-image:url(__map_img__);">
+    <div class="bx-metatags-locations-map-string bx-def-font-grayed bx-def-padding-sec bx-def-round-corners">__location_string__</div>
+</div>

+ 26 - 0
template/scripts/BxBaseServiceMetatags.php

@@ -69,6 +69,32 @@ class BxBaseServiceMetatags extends BxDol
         return BxDolTemplate::getInstance()->parseHtmlByName('metatags_keywords_cloud.html', $aVars);
         return BxDolTemplate::getInstance()->parseHtmlByName('metatags_keywords_cloud.html', $aVars);
     }
     }
 
 
+    /**
+     * Get location map.
+     * @param $sObject metatgs object to get keywords cloud for
+     * @param $iId content id
+     * @return map HTML string
+     */
+    public function serviceLocationsMap ($sObject, $iId, $sMapSize = '1000x144', $sMapKey = '')
+    {
+        $o = BxDolMetatags::getObjectInstance($sObject);
+        $sLocationHtml = $o->locationsString($iId);
+        if (!$sLocationHtml)
+            return '';
+
+        $sLocationEncoded = rawurlencode(strip_tags($sLocationHtml));
+        $sProto = (0 == strncmp('https', BX_DOL_URL_ROOT, 5)) ? 'https' : 'http';
+        $iScale = isset($_COOKIE['devicePixelRatio']) && (int)$_COOKIE['devicePixelRatio'] >= 2 ? 2 : 1;
+        $sLang = BxDolLanguages::getInstance()->getCurrentLanguage();
+        $aVars = array (
+            'map_img' => $sProto . '://maps.googleapis.com/maps/api/staticmap?center=' . $sLocationEncoded . '&zoom=7&size=' . $sMapSize . '&maptype=roadmap&markers=size:small%7C' . $sLocationEncoded . '&scale=' . $iScale . '&language=' . $sLang  . ($sMapKey ? '&key=' . $sMapKey : ''),
+            'location_string' => $sLocationHtml,
+        );
+
+        $this->addCssJs();
+        return BxDolTemplate::getInstance()->parseHtmlByName('metatags_locations_map.html', $aVars);
+    }
+
     public function addCssJs()
     public function addCssJs()
     {
     {
         $oTemplate = BxDolTemplate::getInstance();
         $oTemplate = BxDolTemplate::getInstance();

Vissa filer visades inte eftersom för många filer har ändrats