|
|
@@ -137,14 +137,14 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
$displayForm=false;
|
|
|
} else {
|
|
|
$ID_WMS_LAYERS=V::get('ID_WMS_LAYERS',0,$_POST,'int');
|
|
|
- $file=V::get('file','',$_POST);
|
|
|
+ $form_file=V::get('file','',$_POST);
|
|
|
if ($ID_WMS_LAYERS!=0) {
|
|
|
- if ($file=='') SE_Layout::alert('danger','Nie wybrano żadnego pliku!');
|
|
|
+ if ($form_file=='') SE_Layout::alert('danger','Nie wybrano żadnego pliku!');
|
|
|
else {
|
|
|
$displayForm=false;
|
|
|
$resMsg="";
|
|
|
if ($ID_WMS_LAYERS==-1) {
|
|
|
- $ID_WMS_LAYERS=DB::getDB()->ADD_NEW_OBJ('WMS_LAYERS',(object) array('LAYER_NAME'=>$wizje[0]['LAYER_NAME']));
|
|
|
+ $ID_WMS_LAYERS=DB::getDB()->ADD_NEW_OBJ('WMS_LAYERS',(object) array('LAYER_NAME'=>$wizje[0]['LAYER_NAME'],'LAYER_TYPE'=>'GeoTIFF'));
|
|
|
$resMsg.="Utworzono nową warstwę WMS - ID ".$ID_WMS_LAYERS."<br/>\n";
|
|
|
}
|
|
|
$WmsLayerDir=$this->getDirectory('WMS_LAYERS',$ID_WMS_LAYERS);
|
|
|
@@ -155,7 +155,7 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
}
|
|
|
@chmod($WmsLayerDir, 0777);
|
|
|
exec("rm -f ".$WmsLayerDir."/*.tif 2>/dev/null");
|
|
|
- symlink($file,$WmsLayerDir."/".basename($file));
|
|
|
+ symlink($form_file,$WmsLayerDir."/".basename($form_file));
|
|
|
|
|
|
DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) array('ID'=>$ID_WMS_LAYERS,'FILE_STATUS_INFO'=>'Utoworzono link symboliczny z poziomu tabeli WIZJE_LOKALNE'));
|
|
|
|
|
|
@@ -178,13 +178,21 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
<?php
|
|
|
}
|
|
|
}
|
|
|
+ elseif ($_POST) {
|
|
|
+ $msgErr='Nie wybrano żadnej warstwy!';
|
|
|
+ if (!$form_file) $msgErr.="<br/>Nie wybrano żadnego pliku!";
|
|
|
+ SE_Layout::alert('danger',$msgErr);
|
|
|
+ }
|
|
|
}
|
|
|
if ($displayForm) {
|
|
|
if ($wizje[0]['WMS_LAYER_ID']) {
|
|
|
- $layers=DB::getPDO()->fetchall("select LAYER_NAME,LAYER_TYPE from WMS_LAYERS where ID='".$wizje[0]['WMS_LAYER_ID']."'");
|
|
|
+ $layers=DB::getPDO()->fetchall("select l.LAYER_NAME,l.LAYER_TYPE,l.ID_WMS_MAPS,m.MAP_NAME from WMS_LAYERS l left join WMS_MAPS m on l.ID_WMS_MAPS=m.ID where l.ID='".$wizje[0]['WMS_LAYER_ID']."'");
|
|
|
if ($layers[0]['LAYER_TYPE']!="GeoTIFF") throw new Exception("Niespójny typ wartstwy - należy zmienić typ warstwy ID ".$wizje[0]['WMS_LAYER_ID']." na GeoTIFF");
|
|
|
$LAYER_NAME=$layers[0]['LAYER_NAME'];
|
|
|
- if (!$LAYER_NAME) $LAYER_NAME="BRAK NAZWY WARSTWY";
|
|
|
+ if (!$LAYER_NAME) $LAYER_NAME="Brak nazwy warstwy";
|
|
|
+ $ID_WMS_MAPS=$layers[0]['ID_WMS_MAPS'];
|
|
|
+ $MAP_NAME=$layers[0]['MAP_NAME'];
|
|
|
+ if ($ID_WMS_MAPS && !$MAP_NAME) $MAP_NAME="Brak nazwy mapy";
|
|
|
}
|
|
|
if (!$wizje) throw new Exception("Błędne ID z tabeli WIZJE_LOKALNE");
|
|
|
?>
|
|
|
@@ -195,19 +203,37 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
<label class="col-sm-1 control-label">Warstwa</label>
|
|
|
<div class="col-sm-11">
|
|
|
<?php
|
|
|
- if ($wizje[0]['WMS_LAYER_ID']) echo '<p class="form-control-static">ID:'.$wizje[0]['WMS_LAYER_ID']." ".$LAYER_NAME.'</p><p style="color:red;">Uwaga! Ten rekord wizji lokalnej został już powiazany z daną warstwą i nie ma możliwości zmiany powiązania.<br/>Ponowne dodanie pliku GeoTIFF spowoduje usunięcie dotychczasowego pliku GeoTIFF z danej warstwy.</p>'."\n".'<input type="hidden" name="ID_WMS_LAYERS" value="'.$wizje[0]['WMS_LAYER_ID'].'"/>'."\n";
|
|
|
+ if ($wizje[0]['WMS_LAYER_ID']) echo '<p class="form-control-static">'.$wizje[0]['WMS_LAYER_ID'].": ".$LAYER_NAME.'</p><p style="color:red;">Uwaga! Ten rekord wizji lokalnej został już powiazany z daną warstwą i nie ma możliwości zmiany powiązania.<br/>Ponowne dodanie pliku GeoTIFF spowoduje usunięcie dotychczasowego pliku GeoTIFF z danej warstwy.</p>'."\n".'<input type="hidden" name="ID_WMS_LAYERS" value="'.$wizje[0]['WMS_LAYER_ID'].'"/>'."\n";
|
|
|
else {
|
|
|
?>
|
|
|
<select id="warstwa" class="form-control" name="ID_WMS_LAYERS">
|
|
|
<option value="-1">(Utwórz nową warstwę) <?php echo $wizje[0]['LAYER_NAME']?></option>
|
|
|
<?php
|
|
|
$layers=DB::getPDO()->fetchall("select ID,LAYER_NAME from WMS_LAYERS where LAYER_TYPE='GeoTIFF' and A_STATUS='WAITING'");
|
|
|
- foreach ($layers as $layer) echo '<option value="'.$layer['ID'].'"'.($layer['ID']==$ID_WMS_LAYERS?" selected":"").'>(Oczekująca warstwa) '.$layer['ID'].': '.$layer['LAYER_NAME'].'</option>\n';
|
|
|
+ foreach ($layers as $layer) echo '<option value="'.$layer['ID'].'"'.($layer['ID']==$ID_WMS_LAYERS?" selected":"").'>(Oczekująca warstwa) '.$layer['ID'].': '.$layer['LAYER_NAME']."</option>\n";
|
|
|
}
|
|
|
?>
|
|
|
</select>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-1 control-label">Mapa</label>
|
|
|
+ <div class="col-sm-11">
|
|
|
+<?php
|
|
|
+ if ($wizje[0]['WMS_LAYER_ID']) echo '<p class="form-control-static">'.(($ID_WMS_MAPS)?$ID_WMS_MAPS.": ".$MAP_NAME:'Brak').'</p>';
|
|
|
+ else {
|
|
|
+?>
|
|
|
+ <select id="mapa" class="form-control" name="ID_WMS_MAPS">
|
|
|
+ <option value="0">Brak</option>
|
|
|
+<?php
|
|
|
+ $maps=DB::getPDO()->fetchall("select ID,MAP_NAME from WMS_MAPS");
|
|
|
+ $form_ID_WMS_MAPS=V::get('ID_WMS_MAPS',0,$_POST,'int');
|
|
|
+ foreach ($maps as $map) echo '<option value="'.$map['ID'].'"'.($map['ID']==$form_ID_WMS_MAPS?" selected":"").">".$map['ID'].': '.$map['MAP_NAME']."</option>\n";
|
|
|
+ }
|
|
|
+?>
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div class="form-group">
|
|
|
<label class="col-sm-1 control-label">Status wizji lokalnej</label>
|
|
|
<div class="col-sm-11">
|
|
|
@@ -226,7 +252,7 @@ class Route_UrlAction_WmsGenerate extends RouteBase {
|
|
|
<tbody>
|
|
|
<?php
|
|
|
foreach ($files as $file)
|
|
|
- echo '<tr><td><input style="margin:0; position:relative;" type="radio" name="file" value="'.$file.'"/></td><td>'.substr($file,strlen($dirWizja)+1).'</td><td style="text-align:right;" nowrap>'.V::humanFileSize(filesize($file))."</td><td nowrap>".date("Y-m-d H:i:s",filectime($file))."</td></tr>\n";
|
|
|
+ echo '<tr><td><input style="margin:0; position:relative;" type="radio" name="file" value="'.$file.'"'.(($file==$form_file)?' checked':'').'/></td><td>'.substr($file,strlen($dirWizja)+1).'</td><td style="text-align:right;" nowrap>'.V::humanFileSize(filesize($file))."</td><td nowrap>".date("Y-m-d H:i:s",filectime($file))."</td></tr>\n";
|
|
|
?>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
@@ -247,6 +273,10 @@ $('#warstwa').selectize({
|
|
|
create: false,
|
|
|
openOnFocus: false
|
|
|
});
|
|
|
+$('#mapa').selectize({
|
|
|
+create: false,
|
|
|
+openOnFocus: false
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<?php
|
|
|
@@ -356,8 +386,12 @@ rm -rf $tmp
|
|
|
|
|
|
$xml->asXml($destFolderPath.'/.wms/wms.qgs');
|
|
|
unlink($destFolderPath.'/.wms/'.$layer['FILE_NAME']);
|
|
|
- DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) array('ID'=>$layer['ID'],'FILE_STATUS'=>'GENERATED','FILE_STATUS_INFO'=>'Plik przetworzony poprawnie','the_geom'=>"GeomFromText('{$geom}')",'EPSG'=>"{$epsg}",'EXTENT'=>"{$extent}"));
|
|
|
- if ($layer['A_STATUS']=='NORMAL') $mapsToGenerate[$layer['ID_WMS_MAPS']]=1;
|
|
|
+
|
|
|
+ $sqlArr=array('ID'=>$layer['ID'],'FILE_STATUS'=>'GENERATED','FILE_STATUS_INFO'=>'Plik przetworzony poprawnie','the_geom'=>"GeomFromText('{$geom}')",'EPSG'=>"{$epsg}",'EXTENT'=>"{$extent}");
|
|
|
+ if ($layer['A_STATUS']=="WAITING") $sqlArr['A_STATUS']='NORMAL';
|
|
|
+ DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) $sqlArr);
|
|
|
+
|
|
|
+ if ($layer['A_STATUS']=='WAITING' || $layer['A_STATUS']=='NORMAL') $mapsToGenerate[$layer['ID_WMS_MAPS']]=1;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -428,9 +462,13 @@ END
|
|
|
$replace=array($LAYER_NAME,$extent,$_SERVER['SERVER_NAME'],$layer['ID'],$layer['EPSG'],$destFolderPath.'/.wms/'.$layer['FILE_NAME']);
|
|
|
$map = str_replace($search,$replace,$mapSchema);
|
|
|
file_put_contents($destFolderPath.'/.wms/wms.map',$map);
|
|
|
- DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) array('ID'=>$layer['ID'],'FILE_STATUS'=>'GENERATED','FILE_STATUS_INFO'=>'Plik przetworzony poprawnie','the_geom'=>"GeomFromText('{$geom}')",'EXTENT'=>"{$extent}"));
|
|
|
+
|
|
|
+ $sqlArr=array('ID'=>$layer['ID'],'FILE_STATUS'=>'GENERATED','FILE_STATUS_INFO'=>'Plik przetworzony poprawnie','the_geom'=>"GeomFromText('{$geom}')",'EXTENT'=>"{$extent}");
|
|
|
+ if ($layer['A_STATUS']=="WAITING") $sqlArr['A_STATUS']='NORMAL';
|
|
|
+ DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) $sqlArr);
|
|
|
unlink($destFolderPath.'/.wms/.completed');
|
|
|
- if ($layer['A_STATUS']=='NORMAL') $mapsToGenerate[$layer['ID_WMS_MAPS']]=1;
|
|
|
+
|
|
|
+ if ($layer['A_STATUS']=='WAITING' || $layer['A_STATUS']=='NORMAL') $mapsToGenerate[$layer['ID_WMS_MAPS']]=1;
|
|
|
}
|
|
|
} else {
|
|
|
DB::getDB()->UPDATE_OBJ('WMS_LAYERS',(object) array('ID'=>$layer['ID'],'FILE_STATUS'=>'TO_GENERATE','FILE_STATUS_INFO'=>'Wystąpił błąd przetwarzania, ale nastąpi kolejna próba jego przetworzenia'));
|
|
|
@@ -449,7 +487,7 @@ END
|
|
|
|
|
|
|
|
|
### Aktywacja nieaktywnych warstw, ktore nalezy zaktywowac
|
|
|
- $layers=DB::getPDO()->fetchall("select ID,ID_WMS_MAPS,LAYER_TYPE from WMS_LAYERS where A_STATUS='NORMAL' and FILE_STATUS='GENERATED' and MAP_STATUS='INACTIVE'");
|
|
|
+ $layers=DB::getPDO()->fetchall("select ID,ID_WMS_MAPS,LAYER_TYPE,A_STATUS from WMS_LAYERS where A_STATUS='NORMAL' and FILE_STATUS='GENERATED' and MAP_STATUS='INACTIVE'");
|
|
|
foreach ($layers as $layer) {
|
|
|
if (!file_exists($wmsDirLocation.'/.maps/.single/'.$layer['ID'].$mapFileSuffix[$layer['LAYER_TYPE']])) {
|
|
|
$destFolderPath = $this->getDirectory('WMS_LAYERS',$layer['ID']);
|