1.8.1-1.JPのスクリーン内のグラフについて
Forumではいろいろお世話になっております。
また、自己では中々解決出来ない事項が出てきましたので質問致します。っていうか、仕様だとは思いますが一応お聞きします。
トラブルではありません。(只、某案件運用に使用します。)
監視ホストに対してグラフを作成しました。
そのグラフをスクリーンに貼って他のオブジェクトと共に確認できるようにしました。
そこで、このスクリーン上のグラフのデータ部以外の部分をクリックしてしまうと、スクリーンがこのグラフのみの画面に入れ替わってしまいます。
元々、はじめのスクリーンは最大化(FullScreen)で表示させていて、このグラフの画面も最大化で表示され元画面に戻るナビが表示されれば何も問題なかったのですが、最大化ではなくナビもありません。(ヒストリは存在しますが、思うような動きをしません。最大化で戻らないですし。)ブラウザの戻るボタンのみです。極力、上部のメニューを表示させない仕様を目指しているのでいろいろ工夫してみました。
未だいい方法が見つかっていません。
そこで、すでにこのバージョンのzabbixを使用されてる方で、見落としている設定や、回避策などがありましたらお教えください。
機能をdisableにするのが一番いいのかもしれませんね。
よろしくお願いします。
KAZ - 投稿数: 1085
fineさん
一番最初にスクリーン開いた人が、最大化する運用なのでしょうか?
常時最大化にしておくモードはちょっと分からないです。
また、フルスクリーンの状態で戻る方法も通常ではないかと。
私の調べた限りでは回避策はなさそうです。
ちょっとめんどくさいところなのでdisableにするのは難しい様な…A(^^;
fine - 投稿数: 64
KAZさん
お世話になります。
要は、
スクリーンで表示させたグラフのデータ部以外の場所をクリックすることによるグラフ詳細表示をdisabledにしたいのと。
或いは、このクリックで指定されるURLを別のものに置き換えたかった。
ということです。
はじめから仕様だと思っていましたがあえて投稿してみました。
ありがとうございました。
kodai - 投稿数: 1341
こんにちは。
仕様といってしまえばそうなのですが、オープンソースですからソースを修正してしまえば良いという考え方もあると思います。
調べてみたところ、Webインターフェースのinclude/screens.phpの929行目
<code>if($editmode == 0) $action = 'charts.php?graphid='.$resourceid.url_param('period').url_param('stime');</code>
の部分を
<code>if($editmode == 0) //$action = 'charts.php?graphid='.$resourceid.url_param('period').url_param('stime');</code>
と$actionの前に"//"を入れればグラフがクリックで拡大されないようにすることができました。
その他のところに影響が出るかどうかまでは試していないのですがご参考ください。
KAZ - 投稿数: 1085
kodaiさん
流石!
ブラウザの要素検証でみたらjavascriptが自動生成してるっぽかったのでどうしようかと思ってました。A(^^;
fine - 投稿数: 64
Kodaiさん
KAZさん
お世話になります。
include/screens.inc.php
の該当箇所をコメントアウトしてみました。
確かに、
「監視データ」⇒「スクリーン」のグラフが、クリックに反応しなくなりました。
ただ自分の環境(1.8.1-1.jp)では、
「設定」⇒「スクリーン」では以下エラーが出るようです。
Undefined variable: dom_graph_id[/usr/share/zabbix/include/screens.inc.php:993]
Undefined variable: dom_graph_id[/usr/share/zabbix/include/screens.inc.php:1060]
やはり未知の影響が出てるようです。
少し考え直して表示を工夫してみます。
いろいろありがとうございました。
TNK - 投稿数: 4734
変更を入れた部分は、中括弧でくくられたif文ではないので、
<code>
if($editmode == 0) //$action = 'charts.php?graphid='.$resourceid.url_param('period').url_param('stime');
</code>
ではなく、
<code>
//if($editmode == 0) $action = 'charts.php?graphid='.$resourceid.url_param('period').url_param('stime');
</code>
と1行丸ごとコメントアウトすればよいのではないでしょうか?
恐らく、「if($editmode == 0)」が生き残って、次の処理文とくっついてしまい、
<code>
if($editmode == 0) $dom_graph_id = 'graph_'.$screenitemid.'_'.$resourceid;
</code>
となり、編集モード時に「dom_graph_id」が設定されていない状態になってしまったのだと思われます。
kodai - 投稿数: 1341
すいません、初歩的なミスでした :-(
TNKさん、フォローありがとうございます。
fine - 投稿数: 64
Kodaiさん、KAZさん、TNKさん
お世話になります。
上記修正で使い勝手がかなりよくなりました。
いろいろ動作確認しましたが今のところ問題は
出ていません。
ありがとうございました。