More robust solution for not showing what's new popup to new users
This commit is contained in:
parent
477708ecc9
commit
a75a9676f2
2 changed files with 17 additions and 7 deletions
|
@ -138,7 +138,13 @@ class Application_Model_Preference
|
|||
$st->execute();
|
||||
}
|
||||
|
||||
private static function getValue($key, $isUserValue = false)
|
||||
/**
|
||||
* @param string $key the preference key string
|
||||
* @param bool|false $isUserValue select the preference for the current user
|
||||
* @param bool|false $forceDefault only look for default (no user ID) values
|
||||
* @return mixed the preference value
|
||||
*/
|
||||
private static function getValue($key, $isUserValue = false, $forceDefault = false)
|
||||
{
|
||||
$cache = new Cache();
|
||||
|
||||
|
@ -164,6 +170,8 @@ class Application_Model_Preference
|
|||
if ($isUserValue) {
|
||||
$sql .= " AND subjid = :id";
|
||||
$paramMap[':id'] = $userId;
|
||||
} else if ($forceDefault) {
|
||||
$sql .= " AND subjid IS NULL";
|
||||
}
|
||||
|
||||
$result = Application_Common_Database::prepareAndExecute($sql, $paramMap, Application_Common_Database::COLUMN);
|
||||
|
@ -1482,6 +1490,11 @@ class Application_Model_Preference
|
|||
public static function getWhatsNewDialogViewed()
|
||||
{
|
||||
$val = self::getValue("whats_new_dialog_viewed", true);
|
||||
if (empty($val)) {
|
||||
// Check the default (no user ID) value if the user value is empty
|
||||
// This is so that new stations won't see the popup
|
||||
$val = self::getValue("whats_new_dialog_viewed", false, true);
|
||||
}
|
||||
return empty($val) ? false : $val;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,8 +19,6 @@ INSERT INTO cc_pref("keystr", "valstr") VALUES('stream_bitrate', '24, 32, 48, 64
|
|||
INSERT INTO cc_pref("keystr", "valstr") VALUES('num_of_streams', '3');
|
||||
INSERT INTO cc_pref("keystr", "valstr") VALUES('max_bitrate', '320');
|
||||
INSERT INTO cc_pref("keystr", "valstr") VALUES('plan_level', 'disabled');
|
||||
-- For now, just needs to be truthy - to be updated later; we should find a better way to implement this...
|
||||
INSERT INTO cc_pref("keystr", "valstr") VALUES('whats_new_dialog_viewed', 1);
|
||||
|
||||
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('output_sound_device', 'false', 'boolean');
|
||||
INSERT INTO cc_stream_setting ("keyname", "value", "type") VALUES ('output_sound_device_type', 'ALSA', 'string');
|
||||
|
@ -386,8 +384,7 @@ ALTER TABLE cc_pref ALTER COLUMN subjid SET DEFAULT NULL;
|
|||
CREATE UNIQUE INDEX cc_pref_key_idx ON cc_pref (keystr) WHERE subjid IS NULL;
|
||||
ANALYZE cc_pref; -- this validates the new partial index
|
||||
|
||||
--end added in 2.5.14
|
||||
-- end added in 2.5.14
|
||||
|
||||
INSERT INTO cc_pref (keystr, valstr, subjid) VALUES ('whats_new_dialog_viewed', 'true', '0');
|
||||
INSERT INTO cc_pref (keystr, valstr, subjid) VALUES ('whats_new_dialog_viewed', 'true', '1');
|
||||
INSERT INTO cc_pref (keystr, valstr, subjid) VALUES ('whats_new_dialog_viewed', 'true', '2');
|
||||
-- For now, just needs to be truthy - to be updated later; we should find a better way to implement this...
|
||||
INSERT INTO cc_pref("keystr", "valstr") VALUES('whats_new_dialog_viewed', 1);
|
Loading…
Add table
Add a link
Reference in a new issue