In this code change, we are going to leverage the retrieved device Twin for device list updating to update the NameCache.
Since device method will not change while device running, we will update only tag, desired properties and reported properties. After extracted the full name of each tag or property, we will aggregate them to remove duplicated names. Then use batch operation to update the NameCache.
Add device method Reboot and FactoryReset
Factory Reset will generate a reported property "Method.FactoryReset.Log" = "Reset", and set reported property "FirmwareVersion" to "1.0", remove reported property "ConfigurationVersion"
Additional changes:
1. Never update reported proerties iothubDM.*.status (it will keep as-is on existing devices)
2. Change reported properties iothubDM.*.log to Method.*.Log
3. Remove the reboot time span from FirmwareUpdate log
4. Add reported property "StartupTime"
Fix datetime picker data format mismatch form user selection
Fix Tags/Properties page ajax cache issue
Remove resvered keywords from devicedetail/tags/properties
Add default job name with localizable string
Adjust input hint text in schedulejob/editTag/editProperties page
Adjust section label text in schedulejob/editTag/editProperties page
Disable value input/delete checkbox when property name is empty(same as tag page)
remove 'lenght' check from ko if
This is caused by deleted filer's id still exists in job table as row key.
The filter name has been cleared after the filter is deleted. Set filter
id to empty in the JobRepositoryModel to keep consistence.
Revert the changes in JobApiController and JobController which are
mistakenly commit [2866004b3e] in previous push.
This is caused by deleted filer's id still exists in job table as row key.
The filter name has been cleared after the filter is deleted. Set filter
id as empty in the JobController and JobApiController can handle it
correctly.
In previous code inherited from the C simulator, we just try to get the firmware version from the firmware URL itself, rather than try to download the file through internet. It cause difficult to demo some scenarios, such as downloading failed. By this code change, we are going to download the file and pick the version from file. Currently, the "firmware" file could only contains one line. The whole content will be treated as the version.
On the other hand, apply and reboot are still mocked. So a firmware with content "applyFail" will cause an applyFail error, to demo some error scenario.
Currently, the auto-generated device id is just a GUID. To optimize the visual effect, we are going to shorten it as pattern "SampleDevice_nnnn".
Considering the cost of holding a random generator across HTTP requests, the "nnnn" part will be generated from the first 4 bytes of a GUID, and verified to ensure no conflict.
It was confirmed that state "IN_PROGRESS" and "PENDING" indicate the locale is being changed. So we will not show the retrieved locale name in these two states.
Locale change is a long running process. We will retrieve the current locale and state of last "set" request at the same time. If the last request is not finished, we will show the state rather than the actual locale name.
1. Add hit counter for suggest clauses table
2. Save the clauses and increase hit counter for each clause
3. Get suggest clauses ordered by hit counter descendant.
[BugFix] use Id and Name in DataTablesRequest and keep consitent with
DeviceListFilter's property since js code of frontend has been changed
to use id, not filterId and filterName in the request.
Days ago, we found that "Mqtt" is not a valid transport type for IoT Hub device simulator running in WebJob. So we changed the transport to Mqtt_WebSocket_Only. While we just noticed that Mqtt_WebSocket_Only will introduce tons of "Channel closed" exception while the device simulator running in local debug environment. So we have to select transport according to the environment:
If there is no environment variable named as "WEBSITE_HOSTNAME", we suppose the device simulator is running in local debug environment, the transport type will be Mqtt. Otherwise, the default value Mqtt_WebSocket_Only will be chosen.
In previous code, the simulator will regenerate all the device properties (such as installedMemory, Location and Platform) every time it rebooted. It will confuse user especially when they trying to update firmware. By this code change, we will try to retrieve the existing properties from IoTHub reported properties, and only use the re-generated values when the reported value was absent.