]> _ Git - cubist_cms-back.git/commitdiff
wip #7868 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 10 Feb 2026 14:04:34 +0000 (15:04 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 10 Feb 2026 14:04:34 +0000 (15:04 +0100)
src/app/Magic/Traits/CustomDataSource.php
src/resources/views/columns/url.blade.php

index 856c6f6087ec63f05739b7803acaac37b277d938..a73f9a476793479793884352a1804686a3e3399b 100644 (file)
@@ -63,8 +63,9 @@ trait CustomDataSource
             $keys[] = $row[$pk];
         }
 
-        $toInsert = $keys;
+        $toInsert = array_diff($keys, $existingKeys);
         $toDelete = array_diff($existingKeys, $keys);
+        $toUpdate = array_diff(array_diff($keys, $toInsert), $toDelete);
 
         $inserts = [];
         foreach ($toInsert as $hash) {
@@ -72,20 +73,11 @@ trait CustomDataSource
                 $inserts[$hash] = $rows[$hash];
             }
         }
-
-
-        try {
-            foreach ($inserts as $key => $i) {
-                $id = [$pk => $key];
-                $data = $i;
-                unset($data[$pk]);
-                static::updateOrCreate($id, $data);
-            }
-        } catch (\Exception $e) {
-            $hadError = true;
-            Log::error($e);
+        foreach ($toUpdate as $hash) {
+            static::where($pk, $hash)->update($rows[$hash]);
         }
 
+        self::insert($inserts);
         static::whereIn($pk, $toDelete)->forceDelete();
         Cache::put(static::getCacheKey() . '_refresh', $hadError ? -1 : time());
     }
index 3933561d83264f47998a13f1a0c98d8b52c97c46..b4f375c61950920477bb7aeb8ea05cac84e88146 100644 (file)
@@ -2,10 +2,17 @@
 @php
     $value = data_get($entry, $column['name']);
     $value = is_array($value) ? json_encode($value) : $value;
+
+    $url=$value;
+    $url=preg_replace('/^https?:\/\//','',$url);
+    $limit=50;
+    if(strlen($url)>$limit){
+        $url=substr($url,0,$limit-3).'...';
+    }
 @endphp
 
 <span>
     @includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_start')
-    <a href="{{$value}}" target="_blank">{{ $value }}</a>
+    <a title="{{$value}}" href="{{$value}}" target="_blank">{{ $url }}</a>
     @includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_end')
 </span>