WIP EGroupware Tutorial:

- Add autoload tutorial to Home app
This commit is contained in:
Hadi Nategh 2015-10-09 07:31:35 +00:00
parent 7b0ba9fb95
commit 781f128265
3 changed files with 57 additions and 8 deletions

View File

@ -41,16 +41,31 @@ class home_tutorial_ui {
$apps = array(); $apps = array();
foreach ($tutorials as $app => $val) foreach ($tutorials as $app => $val)
{ {
$apps [$app] = $app; // show only apps user has access to them
if (in_array($app, array_keys($GLOBALS['egw_info']['user']['apps']))) $apps [$app] = $app;
} }
$sel_options = array( $sel_options = array(
'apps' => $apps, 'apps' => $apps,
); );
// Check if the user has right to see the app's tutorial
if (in_array($tuid_indx[0], array_keys($GLOBALS['egw_info']['user']['apps'])))
{
$content = array ( $content = array (
'src' => $tutorials[$tuid_indx[0]][$tuid_indx[1]][$tuid_indx[2]]['src'], 'src' => $tutorials[$tuid_indx[0]][$tuid_indx[1]][$tuid_indx[2]]['src'],
'title' => $tutorials[$tuid_indx[0]][$tuid_indx[1]][$tuid_indx[2]]['title'], 'title' => $tutorials[$tuid_indx[0]][$tuid_indx[1]][$tuid_indx[2]]['title'],
); );
} }
else
{
$content = array();
egw_framework::message(lang('You do not have permission to see this tutorial!'));
}
// If its the autoloading tutorial
if ($tuid_indx[3] === 'a')
{
$content ['discardbox'] = true;
}
}
$tmpl->exec('home.home_tutorial_ui.popup', $content,$sel_options,array(),array(),array(),2); $tmpl->exec('home.home_tutorial_ui.popup', $content,$sel_options,array(),array(),array(),2);
} }

View File

@ -99,6 +99,8 @@ app.classes.home = AppJS.extend(
// call parent // call parent
this._super.apply(this, arguments); this._super.apply(this, arguments);
this.tutorial_autoload_popup();
this.et2.set_id('home.index'); this.et2.set_id('home.index');
this.et2.set_actions(this.et2.getArrayMgr('modifications').getEntry('home.index')['actions']); this.et2.set_actions(this.et2.getArrayMgr('modifications').getEntry('home.index')['actions']);
@ -786,6 +788,35 @@ app.classes.home = AppJS.extend(
{ {
frame.set_value(widget.get_value()); frame.set_value(widget.get_value());
} }
},
/**
* Open tutorial popup with a general video about egroupware
* the popup can be discarded for the next time show if user
* check the discard checkbox
*/
tutorial_autoload_popup:function()
{
var discarded = this.egw.preference('egw_tutorial_autoload', 'home');
if (!discarded)
{
this.egwTutorialPopup('home-'+this.egw.preference('lang')+'-0-a');
}
},
/**
* Function calls on discard checkbox and will set
* the egw_tutorial_autoload preference
*
* @param {type} egw
* @param {type} widget
*/
tutorial_autoloadDiscard: function (egw, widget)
{
if (widget)
{
this.egw.set_preference('home', 'egw_tutorial_autoload', widget.get_value());
}
} }
}); });

View File

@ -8,7 +8,7 @@
</hbox> </hbox>
<hbox class="dialogFooterToolbar"> <hbox class="dialogFooterToolbar">
<button align="left" statustext="Close this window" label="Close" id="button[close]" onclick="window.close()" image="close" background_image="1"/> <button align="left" statustext="Close this window" label="Close" id="button[close]" onclick="window.close()" image="close" background_image="1"/>
<hbox> <hbox disabled="@discardbox">
<menulist> <menulist>
<menupopup id="apps" label="Applications" statustext="Please select application name" options="Please select" onchange="app.home.tutorial_appChange"/> <menupopup id="apps" label="Applications" statustext="Please select application name" options="Please select" onchange="app.home.tutorial_appChange"/>
</menulist> </menulist>
@ -16,6 +16,9 @@
<menupopup id="tutorials" label="Tutorilas" statustext="Please select a tutorial" options="Please select" onchange="app.home.tutorial_tutorialsChange"/> <menupopup id="tutorials" label="Tutorilas" statustext="Please select a tutorial" options="Please select" onchange="app.home.tutorial_tutorialsChange"/>
</menulist> </menulist>
</hbox> </hbox>
<hbox disabled="!@discardbox" class="discard_checkbox">
<checkbox id="checkbox" label="Do not show this video next time" onchange="app.home.tutorial_autoloadDiscard"/>
</hbox>
</hbox> </hbox>
</template> </template>
</overlay> </overlay>